summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorSwastik Baranwal <swstkbaranwal@gmail.com>2019-06-23 18:47:35 +0530
committerGitHub <noreply@github.com>2019-06-23 18:47:35 +0530
commit99703c6ab831d34e6859d8a8f53ba8e73dc4d3d9 (patch)
tree3a712d3039d152616af58a45a13d82c40a87e58f /asm
parent6d190f861e3559eec922cd760778c0cba6e08397 (diff)
parent9ee0c34758a63f8c00724b6fc984b4e96be2f7af (diff)
Merge pull request #5 from pret/master
Take files
Diffstat (limited to 'asm')
-rw-r--r--asm/bag.s431
-rw-r--r--asm/battle_1.s68
-rw-r--r--asm/battle_2.s252
-rw-r--r--asm/battle_anim.s274
-rw-r--r--asm/battle_anim_80989F8.s2588
-rw-r--r--asm/battle_anim_80A22E8.s55436
-rw-r--r--asm/battle_anim_effects_1.s9882
-rw-r--r--asm/battle_anim_effects_2.s7946
-rw-r--r--asm/battle_anim_effects_3.s (renamed from asm/battle_anim_80DE2C0.s)830
-rw-r--r--asm/battle_anim_mons.s (renamed from asm/battle_anim_8074480.s)258
-rw-r--r--asm/battle_anim_sound_tasks.s76
-rw-r--r--asm/battle_anim_special.s (renamed from asm/battle_anim_80EEC0C.s)262
-rw-r--r--asm/battle_anim_status_effects.s (renamed from asm/battle_anim_8078178.s)20
-rw-r--r--asm/battle_anim_utility_funcs.s5133
-rw-r--r--asm/battle_controller_link_opponent.s100
-rw-r--r--asm/battle_controller_link_partner.s92
-rw-r--r--asm/battle_controller_oak.s100
-rw-r--r--asm/battle_controller_opponent.s108
-rw-r--r--asm/battle_controller_player.s188
-rw-r--r--asm/battle_controller_pokedude.s128
-rw-r--r--asm/battle_controller_safari.s28
-rw-r--r--asm/battle_controllers.s4
-rw-r--r--asm/battle_dome_cards.s1102
-rw-r--r--asm/battle_gfx_sfx_util.s88
-rw-r--r--asm/battle_interface.s2
-rw-r--r--asm/battle_message.s8
-rw-r--r--asm/battle_records.s24
-rw-r--r--asm/battle_script_commands.s64
-rw-r--r--asm/battle_setup.s94
-rw-r--r--asm/battle_tower.s14
-rw-r--r--asm/battle_transition.s314
-rw-r--r--asm/berry.s311
-rw-r--r--asm/berry_crush.s (renamed from asm/unk_814B6F0.s)8
-rw-r--r--asm/berry_crush_2.s (renamed from asm/unk_814BB4C.s)38
-rw-r--r--asm/berry_crush_3.s (renamed from asm/unk_814D5C8.s)66
-rw-r--r--asm/berry_fix_program.s344
-rw-r--r--asm/berry_pouch.s234
-rw-r--r--asm/bike.s14
-rw-r--r--asm/blend_palette.s186
-rw-r--r--asm/blit.s813
-rw-r--r--asm/braille_text.s587
-rw-r--r--asm/bug.s829
-rw-r--r--asm/buy_menu_helpers.s12
-rw-r--r--asm/cable_club.s20
-rw-r--r--asm/cereader_tool.s196
-rw-r--r--asm/clear_save_data_screen.s12
-rw-r--r--asm/coord_event_weather.s105
-rw-r--r--asm/credits.s24
-rw-r--r--asm/dark.s2323
-rw-r--r--asm/daycare.s3216
-rw-r--r--asm/decompress.s54
-rw-r--r--asm/diploma.s8
-rw-r--r--asm/dodrio_berry_picking.s (renamed from asm/unk_81507FC.s)32
-rw-r--r--asm/dodrio_berry_picking_2.s734
-rw-r--r--asm/dragon.s835
-rw-r--r--asm/egg_hatch.s1812
-rw-r--r--asm/electric.s2675
-rw-r--r--asm/evolution_scene.s272
-rw-r--r--asm/field_camera.s4
-rw-r--r--asm/field_control_avatar.s28
-rw-r--r--asm/field_door.s44
-rw-r--r--asm/field_effect.s94
-rw-r--r--asm/field_effect_helpers.s8
-rw-r--r--asm/field_fadetransition.s96
-rw-r--r--asm/field_map_obj.s42
-rw-r--r--asm/field_message_box.s6
-rw-r--r--asm/field_player_avatar.s12
-rw-r--r--asm/field_screen_effect.s28
-rw-r--r--asm/field_specials.s60
-rw-r--r--asm/field_tasks.s4
-rw-r--r--asm/field_weather.s22
-rw-r--r--asm/field_weather_effects.s12
-rw-r--r--asm/fieldmap.s2400
-rw-r--r--asm/fighting.s1746
-rw-r--r--asm/fire.s2500
-rw-r--r--asm/fldeff_berrytree.s13
-rw-r--r--asm/fldeff_cut.s26
-rw-r--r--asm/fldeff_flash.s12
-rw-r--r--asm/fldeff_softboiled.s366
-rw-r--r--asm/fldeff_strength.s12
-rw-r--r--asm/fldeff_sweetscent.s12
-rw-r--r--asm/fldeff_teleport.s92
-rw-r--r--asm/flying.s2945
-rw-r--r--asm/ghost.s4055
-rw-r--r--asm/ground.s1787
-rw-r--r--asm/hall_of_fame.s90
-rw-r--r--asm/heal_location.s254
-rw-r--r--asm/help_system.s2254
-rw-r--r--asm/help_system_812B1E0.s1761
-rw-r--r--asm/hof_pc.s8
-rw-r--r--asm/ice.s3099
-rw-r--r--asm/intro.s38
-rw-r--r--asm/item.s1853
-rw-r--r--asm/item_menu.s394
-rw-r--r--asm/item_menu_icons.s680
-rw-r--r--asm/item_pc.s2909
-rw-r--r--asm/item_use.s2410
-rw-r--r--asm/itemfinder.s4
-rw-r--r--asm/learn_move.s62
-rw-r--r--asm/link.s70
-rw-r--r--asm/link_rfu.s20
-rw-r--r--asm/link_rfu_2.s72
-rw-r--r--asm/link_rfu_3.s234
-rw-r--r--asm/link_rfu_4.s2316
-rw-r--r--asm/list_menu.s40
-rw-r--r--asm/m4a_1.s27
-rw-r--r--asm/m4a_3.s574
-rw-r--r--asm/macros.inc6
-rw-r--r--asm/macros/event.inc495
-rw-r--r--asm/macros/map.inc18
-rw-r--r--asm/macros/movement.inc4
-rw-r--r--asm/mail.s14
-rw-r--r--asm/mailbox_pc.s10
-rw-r--r--asm/main_menu.s44
-rw-r--r--asm/map_name_popup.s2
-rw-r--r--asm/map_obj_lock.s302
-rw-r--r--asm/map_preview_screen.s2
-rw-r--r--asm/menu.s64
-rw-r--r--asm/menu2.s563
-rw-r--r--asm/menu_helpers.s38
-rw-r--r--asm/menu_indicators.s18
-rw-r--r--asm/mystery_gift_menu.s410
-rw-r--r--asm/naming_screen.s20
-rw-r--r--asm/new_game.s6
-rw-r--r--asm/new_menu_helpers.s114
-rw-r--r--asm/normal.s1978
-rw-r--r--asm/oak_speech.s5728
-rw-r--r--asm/option_menu.s14
-rw-r--r--asm/overworld.s296
-rw-r--r--asm/party_menu.s340
-rw-r--r--asm/player_pc.s104
-rw-r--r--asm/poison.s326
-rw-r--r--asm/pokeball.s28
-rw-r--r--asm/pokedex_screen.s64
-rw-r--r--asm/pokemon_3.s6
-rw-r--r--asm/pokemon_jump.s (renamed from asm/unk_8147500.s)116
-rw-r--r--asm/pokemon_jump_2.s (renamed from asm/unk_8147AA8.s)68
-rw-r--r--asm/pokemon_special_anim.s38
-rw-r--r--asm/pokemon_storage_system.s92
-rw-r--r--asm/pokemon_summary_screen.s132
-rw-r--r--asm/prof_pc.s204
-rw-r--r--asm/psychic.s2180
-rw-r--r--asm/region_map.s30
-rw-r--r--asm/reshow_battle_screen.s60
-rw-r--r--asm/roamer.s531
-rw-r--r--asm/rock.s1558
-rw-r--r--asm/rom6.s24
-rw-r--r--asm/roulette_util.s1447
-rw-r--r--asm/safari_zone.s12
-rw-r--r--asm/save_failed_screen.s34
-rw-r--r--asm/scrcmd.s5612
-rw-r--r--asm/script_menu.s48
-rw-r--r--asm/script_pokemon_util_80A0058.s6
-rw-r--r--asm/script_pokemon_util_80BF8FC.s12
-rw-r--r--asm/seagallop.s795
-rw-r--r--asm/shop.s124
-rw-r--r--asm/slot_machine.s26
-rw-r--r--asm/ss_anne.s408
-rw-r--r--asm/start_menu.s100
-rw-r--r--asm/teachy_tv.s2912
-rw-r--r--asm/text_window.s948
-rw-r--r--asm/text_window_graphics.s30
-rw-r--r--asm/tileset_anims.s120
-rw-r--r--asm/title_screen.s48
-rw-r--r--asm/tm_case.s3999
-rw-r--r--asm/trade.s120
-rw-r--r--asm/trainer_card.s114
-rw-r--r--asm/trainer_see.s2
-rw-r--r--asm/trainer_tower.s1679
-rw-r--r--asm/trig.s97
-rw-r--r--asm/union_room_chat.s70
-rw-r--r--asm/unk_810C3A4.s389
-rw-r--r--asm/unk_8159F40.s1623
-rw-r--r--asm/unk_815C27C.s920
-rw-r--r--asm/unk_815C980.s1314
-rw-r--r--asm/unk_815EDDC.s462
-rw-r--r--asm/unk_815F138.s753
-rw-r--r--asm/unknown_task.s644
-rw-r--r--asm/util.s500
-rw-r--r--asm/water.s3775
-rw-r--r--asm/wild_encounter.s8
-rw-r--r--asm/wild_pokemon_area.s4
-rw-r--r--asm/wireless_communication_status_screen.s868
183 files changed, 60672 insertions, 122667 deletions
diff --git a/asm/bag.s b/asm/bag.s
deleted file mode 100644
index e7c72d082..000000000
--- a/asm/bag.s
+++ /dev/null
@@ -1,431 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810B858
-sub_810B858: @ 810B858
- push {r4,lr}
- ldr r0, _0810B86C @ =gUnknown_203ACFC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x3
- beq _0810B874
- ldr r0, _0810B870 @ =gUnknown_84530C4
- bl InitWindows
- b _0810B87A
- .align 2, 0
-_0810B86C: .4byte gUnknown_203ACFC
-_0810B870: .4byte gUnknown_84530C4
-_0810B874:
- ldr r0, _0810B8E4 @ =gUnknown_84530E4
- bl InitWindows
-_0810B87A:
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x64
- movs r2, 0xE0
- bl sub_815001C
- movs r0, 0
- movs r1, 0x6D
- movs r2, 0xD0
- bl sub_814FEAC
- movs r0, 0
- movs r1, 0x81
- movs r2, 0xC0
- bl sub_814FF2C
- ldr r0, _0810B8E8 @ =gUnknown_8453098
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0
-_0810B8A8:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810B8A8
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r4, 0
- ldr r3, _0810B8EC @ =gUnknown_203AD34
- movs r2, 0xFF
-_0810B8CC:
- adds r0, r4, r3
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _0810B8CC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B8E4: .4byte gUnknown_84530E4
-_0810B8E8: .4byte gUnknown_8453098
-_0810B8EC: .4byte gUnknown_203AD34
- thumb_func_end sub_810B858
-
- thumb_func_start sub_810B8F0
-sub_810B8F0: @ 810B8F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r3
- ldr r3, [sp, 0x30]
- ldr r4, [sp, 0x34]
- ldr r6, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- mov r8, r5
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- mov r9, r7
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, _0810B954 @ =gUnknown_84530B8
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r2, [sp, 0x10]
- mov r2, r9
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B954: .4byte gUnknown_84530B8
- thumb_func_end sub_810B8F0
-
- thumb_func_start sub_810B958
-sub_810B958: @ 810B958
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r2, 0x48
- subs r2, r0
- lsrs r2, 1
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0810B990 @ =gUnknown_84530B8
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B990: .4byte gUnknown_84530B8
- thumb_func_end sub_810B958
-
- thumb_func_start sub_810B994
-sub_810B994: @ 810B994
- push {r4,lr}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x81
- movs r3, 0xC
- bl SetWindowBorderStyle
- ldr r4, _0810B9D8 @ =gUnknown_84162E8
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r3, 0x40
- subs r3, r0
- lsrs r3, 1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B9D8: .4byte gUnknown_84162E8
- thumb_func_end sub_810B994
-
- thumb_func_start sub_810B9DC
-sub_810B9DC: @ 810B9DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r6, _0810BA10 @ =gUnknown_203AD34
- adds r4, r5, r6
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0810BA2A
- adds r0, r5, r1
- lsls r0, 3
- ldr r1, _0810BA14 @ =gUnknown_8453104
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- cmp r5, 0x6
- beq _0810BA18
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x64
- movs r3, 0xE
- bl SetWindowBorderStyle
- b _0810BA24
- .align 2, 0
-_0810BA10: .4byte gUnknown_203AD34
-_0810BA14: .4byte gUnknown_8453104
-_0810BA18:
- ldrb r0, [r6, 0x6]
- movs r1, 0
- movs r2, 0x81
- movs r3, 0xC
- bl SetWindowBorderStyle
-_0810BA24:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_0810BA2A:
- ldr r0, _0810BA38 @ =gUnknown_203AD34
- adds r0, r5, r0
- ldrb r0, [r0]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA38: .4byte gUnknown_203AD34
- thumb_func_end sub_810B9DC
-
- thumb_func_start sub_810BA3C
-sub_810BA3C: @ 810BA3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810BA6C @ =gUnknown_203AD34
- adds r4, r0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_810F4D8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BA6C: .4byte gUnknown_203AD34
- thumb_func_end sub_810BA3C
-
- thumb_func_start sub_810BA70
-sub_810BA70: @ 810BA70
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0810BA94 @ =gUnknown_203AD34
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0810BA8C
- lsls r0, r1, 3
- ldr r1, _0810BA98 @ =gUnknown_8453104
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
-_0810BA8C:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA94: .4byte gUnknown_203AD34
-_0810BA98: .4byte gUnknown_8453104
- thumb_func_end sub_810BA70
-
- thumb_func_start sub_810BA9C
-sub_810BA9C: @ 810BA9C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BAD4 @ =gUnknown_203AD34
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0810BACE
- movs r1, 0
- bl sub_810F260
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
-_0810BACE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAD4: .4byte gUnknown_203AD34
- thumb_func_end sub_810BA9C
-
- thumb_func_start sub_810BAD8
-sub_810BAD8: @ 810BAD8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BAE4 @ =gUnknown_203AD34
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810BAE4: .4byte gUnknown_203AD34
- thumb_func_end sub_810BAD8
-
- thumb_func_start sub_810BAE8
-sub_810BAE8: @ 810BAE8
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BB10 @ =gUnknown_845311C
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x64
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF5D0
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB10: .4byte gUnknown_845311C
- thumb_func_end sub_810BAE8
-
- thumb_func_start sub_810BB14
-sub_810BB14: @ 810BB14
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810BB3C @ =gUnknown_8453124
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x64
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF5D0
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB3C: .4byte gUnknown_8453124
- thumb_func_end sub_810BB14
-
- thumb_func_start sub_810BB40
-sub_810BB40: @ 810BB40
- push {r4,lr}
- movs r0, 0x2
- movs r1, 0
- bl sub_810B9DC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810BB70 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- adds r0, r4, 0
- movs r1, 0x81
- movs r2, 0xC
- bl PrintMoneyAmountInMoneyBoxWithBorder
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB70: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810BB40
-
- thumb_func_start sub_810BB74
-sub_810BB74: @ 810BB74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- movs r2, 0xE
- bl sub_8150048
- pop {r0}
- bx r0
- thumb_func_end sub_810BB74
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 72f5fe901..87cb0e750 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -223,11 +223,11 @@ sub_800F380: @ 800F380
movs r0, 0x2
movs r1, 0x12
movs r2, 0x10
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0x2
movs r1, 0x22
movs r2, 0x10
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
ldr r4, _0800F3F0 @ =gPlttBufferUnfaded
adds r0, r4, 0
adds r0, 0xB8
@@ -253,11 +253,11 @@ sub_800F380: @ 800F380
cmp r0, 0
beq _0800F3EA
movs r0, 0x70
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
movs r0, 0
movs r1, 0x30
movs r2, 0x70
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
adds r0, r4, 0
adds r0, 0xEC
movs r1, 0
@@ -294,7 +294,7 @@ sub_800F40C: @ 800F40C
thumb_func_start LoadBattleTextboxAndBackground
LoadBattleTextboxAndBackground: @ 800F420
push {lr}
- ldr r0, _0800F454 @ =gUnknown_8D00000
+ ldr r0, _0800F454 @ =gBattleTextboxTiles
movs r1, 0xC0
lsls r1, 19
bl LZDecompressVram
@@ -305,7 +305,7 @@ LoadBattleTextboxAndBackground: @ 800F420
bl CopyToBgTilemapBuffer
movs r0, 0
bl CopyBgTilemapBufferToVram
- ldr r0, _0800F45C @ =gUnknown_8D004D8
+ ldr r0, _0800F45C @ =gBattleTextboxPalette
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
@@ -314,9 +314,9 @@ LoadBattleTextboxAndBackground: @ 800F420
pop {r0}
bx r0
.align 2, 0
-_0800F454: .4byte gUnknown_8D00000
+_0800F454: .4byte gBattleTextboxTiles
_0800F458: .4byte gFile_graphics_interface_menu_map_tilemap
-_0800F45C: .4byte gUnknown_8D004D8
+_0800F45C: .4byte gBattleTextboxPalette
thumb_func_end LoadBattleTextboxAndBackground
thumb_func_start sub_800F460
@@ -517,7 +517,7 @@ _0800F5C8: .4byte 0x00006001
thumb_func_start sub_800F5CC
sub_800F5CC: @ 800F5CC
push {lr}
- ldr r0, _0800F5E0 @ =gUnknown_2023E8A
+ ldr r0, _0800F5E0 @ =gBattleOutcome
ldrb r2, [r0]
cmp r2, 0x3
bne _0800F5E8
@@ -526,7 +526,7 @@ sub_800F5CC: @ 800F5CC
bl sub_80D87BC
b _0800F6F0
.align 2, 0
-_0800F5E0: .4byte gUnknown_2023E8A
+_0800F5E0: .4byte gBattleOutcome
_0800F5E4: .4byte gUnknown_83FE883
_0800F5E8:
ldr r0, _0800F61C @ =gBattleTypeFlags
@@ -908,7 +908,7 @@ _0800F8F0:
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0800F958
- ldr r4, _0800F944 @ =gUnknown_2022978
+ ldr r4, _0800F944 @ =gBattle_BG1_X
ldrh r0, [r5, 0xA]
bl Sin2
lsls r0, 16
@@ -923,7 +923,7 @@ _0800F90A:
adds r0, r2, 0
subs r0, r1
strh r0, [r4]
- ldr r4, _0800F948 @ =gUnknown_202297C
+ ldr r4, _0800F948 @ =gBattle_BG2_X
ldrh r0, [r5, 0xC]
bl Sin2
lsls r0, 16
@@ -938,21 +938,21 @@ _0800F928:
adds r0, r3, 0
subs r0, r1
strh r0, [r4]
- ldr r0, _0800F94C @ =gUnknown_202297A
+ ldr r0, _0800F94C @ =gBattle_BG1_Y
ldr r2, _0800F950 @ =0x0000ffdc
adds r1, r2, 0
strh r1, [r0]
- ldr r0, _0800F954 @ =gUnknown_202297E
+ ldr r0, _0800F954 @ =gBattle_BG2_Y
strh r1, [r0]
b _0800F9C4
.align 2, 0
-_0800F944: .4byte gUnknown_2022978
-_0800F948: .4byte gUnknown_202297C
-_0800F94C: .4byte gUnknown_202297A
+_0800F944: .4byte gBattle_BG1_X
+_0800F948: .4byte gBattle_BG2_X
+_0800F94C: .4byte gBattle_BG1_Y
_0800F950: .4byte 0x0000ffdc
-_0800F954: .4byte gUnknown_202297E
+_0800F954: .4byte gBattle_BG2_Y
_0800F958:
- ldr r4, _0800F9E8 @ =gUnknown_2022978
+ ldr r4, _0800F9E8 @ =gBattle_BG1_X
ldrh r0, [r5, 0xA]
bl Sin2
lsls r0, 16
@@ -967,7 +967,7 @@ _0800F96A:
adds r0, r3, 0
subs r0, r1
strh r0, [r4]
- ldr r4, _0800F9EC @ =gUnknown_202297A
+ ldr r4, _0800F9EC @ =gBattle_BG1_Y
ldrh r0, [r5, 0xA]
bl Cos2
lsls r0, 16
@@ -979,7 +979,7 @@ _0800F988:
asrs r0, 5
subs r0, 0xA4
strh r0, [r4]
- ldr r4, _0800F9F0 @ =gUnknown_202297C
+ ldr r4, _0800F9F0 @ =gBattle_BG2_X
ldrh r0, [r5, 0xC]
bl Sin2
lsls r0, 16
@@ -994,7 +994,7 @@ _0800F9A0:
adds r0, r2, 0
subs r0, r1
strh r0, [r4]
- ldr r4, _0800F9F4 @ =gUnknown_202297E
+ ldr r4, _0800F9F4 @ =gBattle_BG2_Y
ldrh r0, [r5, 0xC]
bl Cos2
lsls r0, 16
@@ -1025,10 +1025,10 @@ _0800F9C4:
strh r0, [r1, 0xA]
b _0800FAC4
.align 2, 0
-_0800F9E8: .4byte gUnknown_2022978
-_0800F9EC: .4byte gUnknown_202297A
-_0800F9F0: .4byte gUnknown_202297C
-_0800F9F4: .4byte gUnknown_202297E
+_0800F9E8: .4byte gBattle_BG1_X
+_0800F9EC: .4byte gBattle_BG1_Y
+_0800F9F0: .4byte gBattle_BG2_X
+_0800F9F4: .4byte gBattle_BG2_Y
_0800F9F8: .4byte gTasks
_0800F9FC:
movs r3, 0x12
@@ -1190,11 +1190,11 @@ sub_800FAE0: @ 800FAE0
movs r0, 0x4A
movs r1, 0x36
bl SetGpuReg
- ldr r0, _0800FB84 @ =gUnknown_202297A
+ ldr r0, _0800FB84 @ =gBattle_BG1_Y
ldr r2, _0800FB88 @ =0x0000ff5c
adds r1, r2, 0
strh r1, [r0]
- ldr r0, _0800FB8C @ =gUnknown_202297E
+ ldr r0, _0800FB8C @ =gBattle_BG2_Y
strh r1, [r0]
ldr r0, _0800FB90 @ =gUnknown_8248318
bl sub_800F034
@@ -1208,9 +1208,9 @@ _0800FB74: .4byte 0x06010000
_0800FB78: .4byte gFile_graphics_battle_transitions_vs_frame_palette
_0800FB7C: .4byte 0x00005c04
_0800FB80: .4byte gFile_graphics_battle_transitions_vs_frame_tilemap
-_0800FB84: .4byte gUnknown_202297A
+_0800FB84: .4byte gBattle_BG1_Y
_0800FB88: .4byte 0x0000ff5c
-_0800FB8C: .4byte gUnknown_202297E
+_0800FB8C: .4byte gBattle_BG2_Y
_0800FB90: .4byte gUnknown_8248318
_0800FB94:
movs r0, 0x80
@@ -1385,13 +1385,13 @@ _0800FCD0:
.4byte _0800FD68
.4byte _0800FD8C
_0800FCEC:
- ldr r0, _0800FCF8 @ =gUnknown_8D00000
+ ldr r0, _0800FCF8 @ =gBattleTextboxTiles
movs r1, 0xC0
lsls r1, 19
bl LZDecompressVram
b _0800FD94
.align 2, 0
-_0800FCF8: .4byte gUnknown_8D00000
+_0800FCF8: .4byte gBattleTextboxTiles
_0800FCFC:
ldr r1, _0800FD10 @ =gFile_graphics_interface_menu_map_tilemap
movs r0, 0
@@ -1404,13 +1404,13 @@ _0800FCFC:
.align 2, 0
_0800FD10: .4byte gFile_graphics_interface_menu_map_tilemap
_0800FD14:
- ldr r0, _0800FD20 @ =gUnknown_8D004D8
+ ldr r0, _0800FD20 @ =gBattleTextboxPalette
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
b _0800FD94
.align 2, 0
-_0800FD20: .4byte gUnknown_8D004D8
+_0800FD20: .4byte gBattleTextboxPalette
_0800FD24:
bl sub_800FC2C
lsls r0, 24
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 1ecfe6ad3..0826ea927 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -45,11 +45,11 @@ _0800FDD8:
cmp r1, 0
beq _0800FDFE
movs r0, 0x19
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FDFE:
movs r0, 0x18
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FE06:
movs r0, 0x80
@@ -57,11 +57,11 @@ _0800FE06:
cmp r1, 0
beq _0800FE16
movs r0, 0x1A
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FE16:
movs r0, 0x17
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_0800FE1C:
pop {r4}
pop {r0}
@@ -104,8 +104,8 @@ sub_800FE24: @ 800FE24
strh r0, [r1]
ldr r0, _0800FF34 @ =gUnknown_2022986
strh r4, [r0]
- bl dp12_8087EA4
- ldr r0, _0800FF38 @ =gUnknown_2038700
+ bl ScanlineEffect_Clear
+ ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
movs r3, 0xF0
movs r1, 0xF0
lsls r1, 3
@@ -121,7 +121,7 @@ _0800FE88:
bge _0800FE88
movs r1, 0x50
ldr r4, _0800FF3C @ =gUnknown_824EFE4
- ldr r0, _0800FF38 @ =gUnknown_2038700
+ ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
ldr r3, _0800FF40 @ =0x0000ff10
movs r5, 0x82
lsls r5, 4
@@ -138,24 +138,24 @@ _0800FEA6:
ldr r0, [r4]
ldr r1, [r4, 0x4]
ldr r2, [r4, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
bl ResetPaletteFade
- ldr r0, _0800FF44 @ =gUnknown_2022974
+ ldr r0, _0800FF44 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _0800FF48 @ =gUnknown_2022976
+ ldr r0, _0800FF48 @ =gBattle_BG0_Y
strh r1, [r0]
- ldr r0, _0800FF4C @ =gUnknown_2022978
+ ldr r0, _0800FF4C @ =gBattle_BG1_X
strh r1, [r0]
- ldr r0, _0800FF50 @ =gUnknown_202297A
+ ldr r0, _0800FF50 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _0800FF54 @ =gUnknown_202297C
+ ldr r0, _0800FF54 @ =gBattle_BG2_X
strh r1, [r0]
- ldr r0, _0800FF58 @ =gUnknown_202297E
+ ldr r0, _0800FF58 @ =gBattle_BG2_Y
strh r1, [r0]
- ldr r0, _0800FF5C @ =gUnknown_2022980
+ ldr r0, _0800FF5C @ =gBattle_BG3_X
strh r1, [r0]
- ldr r0, _0800FF60 @ =gUnknown_2022982
+ ldr r0, _0800FF60 @ =gBattle_BG3_Y
strh r1, [r0]
bl sub_807FC5C
ldr r1, _0800FF64 @ =gUnknown_2022B50
@@ -186,17 +186,17 @@ _0800FF28: .4byte 0x05006000
_0800FF2C: .4byte 0x00005051
_0800FF30: .4byte gUnknown_2022984
_0800FF34: .4byte gUnknown_2022986
-_0800FF38: .4byte gUnknown_2038700
+_0800FF38: .4byte gScanlineEffectRegBuffers
_0800FF3C: .4byte gUnknown_824EFE4
_0800FF40: .4byte 0x0000ff10
-_0800FF44: .4byte gUnknown_2022974
-_0800FF48: .4byte gUnknown_2022976
-_0800FF4C: .4byte gUnknown_2022978
-_0800FF50: .4byte gUnknown_202297A
-_0800FF54: .4byte gUnknown_202297C
-_0800FF58: .4byte gUnknown_202297E
-_0800FF5C: .4byte gUnknown_2022980
-_0800FF60: .4byte gUnknown_2022982
+_0800FF44: .4byte gBattle_BG0_X
+_0800FF48: .4byte gBattle_BG0_Y
+_0800FF4C: .4byte gBattle_BG1_X
+_0800FF50: .4byte gBattle_BG1_Y
+_0800FF54: .4byte gBattle_BG2_X
+_0800FF58: .4byte gBattle_BG2_Y
+_0800FF5C: .4byte gBattle_BG3_X
+_0800FF60: .4byte gBattle_BG3_Y
_0800FF64: .4byte gUnknown_2022B50
_0800FF68: .4byte gReservedSpritePaletteCount
_0800FF6C: .4byte sub_80116F4
@@ -1645,7 +1645,7 @@ _08010B2A:
ldrb r0, [r0]
cmp r0, 0
beq _08010B64
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
beq _08010B82
@@ -2093,13 +2093,13 @@ _08010EE4:
bl bitmask_all_link_players_but_self
lsls r0, 24
lsrs r0, 24
- ldr r1, _08010EF8 @ =gUnknown_201C0C8
+ ldr r1, _08010EF8 @ =gDecompressionBuffer + 0x0C8
movs r2, 0x64
bl SendBlock
ldr r1, _08010EFC @ =gUnknown_2023E82
b _080110EA
.align 2, 0
-_08010EF8: .4byte gUnknown_201C0C8
+_08010EF8: .4byte gDecompressionBuffer + 0x0C8
_08010EFC: .4byte gUnknown_2023E82
_08010F00:
bl GetBlockReceivedStatus
@@ -2376,7 +2376,7 @@ sub_8011100: @ 8011100
cmp r0, 0
beq _08011158
ldr r2, _08011168 @ =gSpecialVar_Result
- ldr r1, _0801116C @ =gUnknown_2023E8A
+ ldr r1, _0801116C @ =gBattleOutcome
movs r0, 0x3
strb r0, [r1]
movs r0, 0x3
@@ -2399,7 +2399,7 @@ _08011158:
_08011160: .4byte gMain
_08011164: .4byte gBattleTypeFlags
_08011168: .4byte gSpecialVar_Result
-_0801116C: .4byte gUnknown_2023E8A
+_0801116C: .4byte gBattleOutcome
_08011170: .4byte CB2_QuitRecordedBattle
thumb_func_end sub_8011100
@@ -2410,7 +2410,7 @@ FreeRestoreBattleData: @ 8011174
ldr r0, _080111B0 @ =gUnknown_3004F80
ldr r0, [r0]
str r0, [r1]
- ldr r2, _080111B4 @ =gUnknown_2039600
+ ldr r2, _080111B4 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r2, 0x15]
ldr r0, _080111B8 @ =0x00000439
@@ -2431,7 +2431,7 @@ FreeRestoreBattleData: @ 8011174
.align 2, 0
_080111AC: .4byte gMain
_080111B0: .4byte gUnknown_3004F80
-_080111B4: .4byte gUnknown_2039600
+_080111B4: .4byte gScanlineEffect
_080111B8: .4byte 0x00000439
thumb_func_end FreeRestoreBattleData
@@ -3125,35 +3125,35 @@ _080116F0: .4byte 0x04000008
sub_80116F4: @ 80116F4
push {lr}
bl Random
- ldr r0, _08011788 @ =gUnknown_2022974
+ ldr r0, _08011788 @ =gBattle_BG0_X
ldrh r1, [r0]
movs r0, 0x10
bl SetGpuReg
- ldr r0, _0801178C @ =gUnknown_2022976
+ ldr r0, _0801178C @ =gBattle_BG0_Y
ldrh r1, [r0]
movs r0, 0x12
bl SetGpuReg
- ldr r0, _08011790 @ =gUnknown_2022978
+ ldr r0, _08011790 @ =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
- ldr r0, _08011794 @ =gUnknown_202297A
+ ldr r0, _08011794 @ =gBattle_BG1_Y
ldrh r1, [r0]
movs r0, 0x16
bl SetGpuReg
- ldr r0, _08011798 @ =gUnknown_202297C
+ ldr r0, _08011798 @ =gBattle_BG2_X
ldrh r1, [r0]
movs r0, 0x18
bl SetGpuReg
- ldr r0, _0801179C @ =gUnknown_202297E
+ ldr r0, _0801179C @ =gBattle_BG2_Y
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
- ldr r0, _080117A0 @ =gUnknown_2022980
+ ldr r0, _080117A0 @ =gBattle_BG3_X
ldrh r1, [r0]
movs r0, 0x1C
bl SetGpuReg
- ldr r0, _080117A4 @ =gUnknown_2022982
+ ldr r0, _080117A4 @ =gBattle_BG3_Y
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
@@ -3176,18 +3176,18 @@ sub_80116F4: @ 80116F4
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
-_08011788: .4byte gUnknown_2022974
-_0801178C: .4byte gUnknown_2022976
-_08011790: .4byte gUnknown_2022978
-_08011794: .4byte gUnknown_202297A
-_08011798: .4byte gUnknown_202297C
-_0801179C: .4byte gUnknown_202297E
-_080117A0: .4byte gUnknown_2022980
-_080117A4: .4byte gUnknown_2022982
+_08011788: .4byte gBattle_BG0_X
+_0801178C: .4byte gBattle_BG0_Y
+_08011790: .4byte gBattle_BG1_X
+_08011794: .4byte gBattle_BG1_Y
+_08011798: .4byte gBattle_BG2_X
+_0801179C: .4byte gBattle_BG2_Y
+_080117A0: .4byte gBattle_BG3_X
+_080117A4: .4byte gBattle_BG3_Y
_080117A8: .4byte gUnknown_2022984
_080117AC: .4byte gUnknown_2022986
_080117B0: .4byte gUnknown_2022988
@@ -3548,8 +3548,8 @@ sub_8011A1C: @ 8011A1C
strh r0, [r1]
ldr r0, _08011B4C @ =gUnknown_2022986
strh r4, [r0]
- bl dp12_8087EA4
- ldr r0, _08011B50 @ =gUnknown_2038700
+ bl ScanlineEffect_Clear
+ ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
movs r3, 0xF0
movs r1, 0xF0
lsls r1, 3
@@ -3564,7 +3564,7 @@ _08011A80:
cmp r1, 0
bge _08011A80
movs r1, 0x50
- ldr r0, _08011B50 @ =gUnknown_2038700
+ ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
ldr r3, _08011B54 @ =0x0000ff10
movs r4, 0x82
lsls r4, 4
@@ -3579,25 +3579,25 @@ _08011A9C:
cmp r1, 0x9F
ble _08011A9C
bl ResetPaletteFade
- ldr r0, _08011B58 @ =gUnknown_2022974
+ ldr r0, _08011B58 @ =gBattle_BG0_X
movs r4, 0
strh r4, [r0]
- ldr r0, _08011B5C @ =gUnknown_2022976
+ ldr r0, _08011B5C @ =gBattle_BG0_Y
strh r4, [r0]
- ldr r0, _08011B60 @ =gUnknown_2022978
+ ldr r0, _08011B60 @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _08011B64 @ =gUnknown_202297A
+ ldr r0, _08011B64 @ =gBattle_BG1_Y
strh r4, [r0]
- ldr r0, _08011B68 @ =gUnknown_202297C
+ ldr r0, _08011B68 @ =gBattle_BG2_X
strh r4, [r0]
- ldr r0, _08011B6C @ =gUnknown_202297E
+ ldr r0, _08011B6C @ =gBattle_BG2_Y
strh r4, [r0]
- ldr r0, _08011B70 @ =gUnknown_2022980
+ ldr r0, _08011B70 @ =gBattle_BG3_X
strh r4, [r0]
- ldr r0, _08011B74 @ =gUnknown_2022982
+ ldr r0, _08011B74 @ =gBattle_BG3_Y
strh r4, [r0]
bl sub_800F34C
- ldr r0, _08011B78 @ =gUnknown_8D004D8
+ ldr r0, _08011B78 @ =gBattleTextboxPalette
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
@@ -3645,17 +3645,17 @@ _08011B40: .4byte 0x05006000
_08011B44: .4byte 0x00005051
_08011B48: .4byte gUnknown_2022984
_08011B4C: .4byte gUnknown_2022986
-_08011B50: .4byte gUnknown_2038700
+_08011B50: .4byte gScanlineEffectRegBuffers
_08011B54: .4byte 0x0000ff10
-_08011B58: .4byte gUnknown_2022974
-_08011B5C: .4byte gUnknown_2022976
-_08011B60: .4byte gUnknown_2022978
-_08011B64: .4byte gUnknown_202297A
-_08011B68: .4byte gUnknown_202297C
-_08011B6C: .4byte gUnknown_202297E
-_08011B70: .4byte gUnknown_2022980
-_08011B74: .4byte gUnknown_2022982
-_08011B78: .4byte gUnknown_8D004D8
+_08011B58: .4byte gBattle_BG0_X
+_08011B5C: .4byte gBattle_BG0_Y
+_08011B60: .4byte gBattle_BG1_X
+_08011B64: .4byte gBattle_BG1_Y
+_08011B68: .4byte gBattle_BG2_X
+_08011B6C: .4byte gBattle_BG2_Y
+_08011B70: .4byte gBattle_BG3_X
+_08011B74: .4byte gBattle_BG3_Y
+_08011B78: .4byte gBattleTextboxPalette
_08011B7C: .4byte gReservedSpritePaletteCount
_08011B80: .4byte sub_80116F4
_08011B84: .4byte sub_800F6FC
@@ -4511,7 +4511,7 @@ _080121D4: .4byte SpriteCB_HealthBoxBounce
_080121D8: .4byte gUnknown_3004FF0
_080121DC: .4byte gSprites
_080121E0:
- ldr r0, _0801224C @ =gUnknown_2023D44
+ ldr r0, _0801224C @ =gBattlerSpriteIds
adds r0, r4, r0
ldrb r7, [r0]
ldr r2, _08012250 @ =gUnknown_2024018
@@ -4567,7 +4567,7 @@ _0801223C:
pop {r0}
bx r0
.align 2, 0
-_0801224C: .4byte gUnknown_2023D44
+_0801224C: .4byte gBattlerSpriteIds
_08012250: .4byte gUnknown_2024018
_08012254: .4byte gSprites
thumb_func_end dp11b_obj_instanciate
@@ -4966,7 +4966,7 @@ _08012522:
strb r0, [r2, 0x1D]
ldr r0, _08012724 @ =gUnknown_2023D72
strb r1, [r0]
- ldr r2, _08012728 @ =gUnknown_2023E8A
+ ldr r2, _08012728 @ =gBattleOutcome
strb r1, [r2]
ldr r0, _0801272C @ =gUnknown_2023BC8
str r1, [r0]
@@ -5194,7 +5194,7 @@ _08012718: .4byte 0x00010002
_0801271C: .4byte gSaveBlock2Ptr
_08012720: .4byte gBattleScripting
_08012724: .4byte gUnknown_2023D72
-_08012728: .4byte gUnknown_2023E8A
+_08012728: .4byte gBattleOutcome
_0801272C: .4byte gUnknown_2023BC8
_08012730: .4byte gUnknown_2023E7E
_08012734: .4byte gUnknown_2023E82
@@ -7783,7 +7783,7 @@ sub_8013BD4: @ 8013BD4
push {r5-r7}
movs r0, 0x1
bl TurnValuesCleanUp
- ldr r0, _08013C78 @ =gUnknown_2023E8A
+ ldr r0, _08013C78 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0
bne _08013C04
@@ -7844,7 +7844,7 @@ _08013C58:
subs r0, 0x1
cmp r0, r1
bge _08013C58
- ldr r0, _08013C78 @ =gUnknown_2023E8A
+ ldr r0, _08013C78 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0
beq _08013CB0
@@ -7856,7 +7856,7 @@ _08013C58:
str r0, [r1]
b _08013D20
.align 2, 0
-_08013C78: .4byte gUnknown_2023E8A
+_08013C78: .4byte gBattleOutcome
_08013C7C: .4byte gBattleStruct
_08013C80: .4byte gUnknown_2023DD0
_08013C84: .4byte 0xfffffdff
@@ -10971,7 +10971,7 @@ _080155C4: .4byte gBattleResources
thumb_func_start RunTurnActionsFunctions
RunTurnActionsFunctions: @ 80155C8
push {r4-r6,lr}
- ldr r6, _0801561C @ =gUnknown_2023E8A
+ ldr r6, _0801561C @ =gBattleOutcome
ldrb r0, [r6]
ldr r2, _08015620 @ =gUnknown_2023BE3
cmp r0, 0
@@ -11012,7 +11012,7 @@ _080155D8:
str r0, [r3]
b _0801565C
.align 2, 0
-_0801561C: .4byte gUnknown_2023E8A
+_0801561C: .4byte gBattleOutcome
_08015620: .4byte gUnknown_2023BE3
_08015624: .4byte gBattleStruct
_08015628: .4byte gUnknown_2023BE2
@@ -11058,7 +11058,7 @@ sub_8015670: @ 8015670
cmp r0, 0
beq _080156C4
ldr r1, _080156B0 @ =gBattleTextBuff1
- ldr r4, _080156B4 @ =gUnknown_2023E8A
+ ldr r4, _080156B4 @ =gBattleOutcome
ldrb r0, [r4]
strb r0, [r1]
movs r0, 0
@@ -11077,7 +11077,7 @@ sub_8015670: @ 8015670
_080156A8: .4byte gUnknown_2023BE3
_080156AC: .4byte gBattleTypeFlags
_080156B0: .4byte gBattleTextBuff1
-_080156B4: .4byte gUnknown_2023E8A
+_080156B4: .4byte gBattleOutcome
_080156B8: .4byte sBattler_AI
_080156BC: .4byte gUnknown_2023D74
_080156C0: .4byte gUnknown_81D88CC
@@ -11181,7 +11181,7 @@ sub_801578C: @ 801578C
cmp r0, 0
beq _080157E0
ldr r1, _080157CC @ =gBattleTextBuff1
- ldr r4, _080157D0 @ =gUnknown_2023E8A
+ ldr r4, _080157D0 @ =gBattleOutcome
ldrb r0, [r4]
strb r0, [r1]
movs r0, 0
@@ -11200,7 +11200,7 @@ sub_801578C: @ 801578C
_080157C4: .4byte gUnknown_2023BE3
_080157C8: .4byte gBattleTypeFlags
_080157CC: .4byte gBattleTextBuff1
-_080157D0: .4byte gUnknown_2023E8A
+_080157D0: .4byte gBattleOutcome
_080157D4: .4byte sBattler_AI
_080157D8: .4byte gUnknown_2023D74
_080157DC: .4byte gUnknown_81D88CC
@@ -11496,7 +11496,7 @@ sub_8015A30: @ 8015A30
ldrb r0, [r0]
cmp r0, 0
beq _08015A52
- ldr r0, _08015A60 @ =gUnknown_2023E8A
+ ldr r0, _08015A60 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _08015A6C
@@ -11507,7 +11507,7 @@ _08015A52:
.align 2, 0
_08015A58: .4byte gPaletteFade
_08015A5C: .4byte gUnknown_3004FD4
-_08015A60: .4byte gUnknown_2023E8A
+_08015A60: .4byte gBattleOutcome
_08015A64: .4byte gUnknown_3004F84
_08015A68: .4byte ReturnFromBattleToOverworld
_08015A6C:
@@ -11653,7 +11653,7 @@ _08015B74:
bne _08015BD4
_08015B86:
ldr r1, _08015BE8 @ =gSpecialVar_Result
- ldr r5, _08015BEC @ =gUnknown_2023E8A
+ ldr r5, _08015BEC @ =gBattleOutcome
ldrb r0, [r5]
strh r0, [r1]
ldr r3, _08015BF0 @ =gMain
@@ -11698,7 +11698,7 @@ _08015BDC: .4byte gBattleTypeFlags
_08015BE0: .4byte gPlayerParty
_08015BE4: .4byte gReceivedRemoteLinkPlayers
_08015BE8: .4byte gSpecialVar_Result
-_08015BEC: .4byte gUnknown_2023E8A
+_08015BEC: .4byte gBattleOutcome
_08015BF0: .4byte gMain
_08015BF4: .4byte 0x00000439
_08015BF8: .4byte gUnknown_3004F80
@@ -12610,10 +12610,10 @@ sub_8016374: @ 8016374
adds r0, r1
ldrb r0, [r0]
strb r0, [r3]
- ldr r0, _080163EC @ =gUnknown_2022974
+ ldr r0, _080163EC @ =gBattle_BG0_X
movs r2, 0
strh r2, [r0]
- ldr r0, _080163F0 @ =gUnknown_2022976
+ ldr r0, _080163F0 @ =gBattle_BG0_Y
strh r2, [r0]
ldr r1, _080163F4 @ =gUnknown_2023FF8
ldrb r0, [r3]
@@ -12661,8 +12661,8 @@ _080163DA:
_080163E0: .4byte sBattler_AI
_080163E4: .4byte gUnknown_2023BDE
_080163E8: .4byte gUnknown_2023BE2
-_080163EC: .4byte gUnknown_2022974
-_080163F0: .4byte gUnknown_2022976
+_080163EC: .4byte gBattle_BG0_X
+_080163F0: .4byte gBattle_BG0_Y
_080163F4: .4byte gUnknown_2023FF8
_080163F8: .4byte gUnknown_2023FFC
_080163FC: .4byte gBattleTextBuff1
@@ -12690,10 +12690,10 @@ sub_8016418: @ 8016418
ldrb r0, [r0]
strb r0, [r2]
strb r0, [r4]
- ldr r0, _08016484 @ =gUnknown_2022974
+ ldr r0, _08016484 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08016488 @ =gUnknown_2022976
+ ldr r0, _08016488 @ =gBattle_BG0_Y
strh r1, [r0]
ldrb r0, [r4]
bl ClearFuryCutterDestinyBondGrudge
@@ -12726,8 +12726,8 @@ _08016474: .4byte sBattler_AI
_08016478: .4byte gBattlerTarget
_0801647C: .4byte gUnknown_2023BDE
_08016480: .4byte gUnknown_2023BE2
-_08016484: .4byte gUnknown_2022974
-_08016488: .4byte gUnknown_2022976
+_08016484: .4byte gBattle_BG0_X
+_08016488: .4byte gBattle_BG0_Y
_0801648C: .4byte gUnknown_2023D68
_08016490: .4byte gUnknown_20233C4
_08016494: .4byte gUnknown_2023D74
@@ -13212,7 +13212,7 @@ _0801687A:
ldr r0, _0801689C @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r1]
- ldr r1, _080168A0 @ =gUnknown_2023E8A
+ ldr r1, _080168A0 @ =gBattleOutcome
movs r0, 0x4
strb r0, [r1]
_0801688C:
@@ -13224,7 +13224,7 @@ _0801688C:
_08016894: .4byte gBattleStruct
_08016898: .4byte gUnknown_2023BE2
_0801689C: .4byte gBattlersCount
-_080168A0: .4byte gUnknown_2023E8A
+_080168A0: .4byte gBattleOutcome
thumb_func_end sub_8016748
thumb_func_start sub_80168A4
@@ -13254,7 +13254,7 @@ sub_80168A4: @ 80168A4
beq _08016938
adds r4, r2, 0
ldr r6, _0801690C @ =gUnknown_2023D7C
- ldr r5, _08016910 @ =gUnknown_2023E8A
+ ldr r5, _08016910 @ =gBattleOutcome
_080168D8:
ldrb r0, [r4]
bl GetBattlerSide
@@ -13277,7 +13277,7 @@ _08016900: .4byte gBattleTypeFlags
_08016904: .4byte gBattlersCount
_08016908: .4byte gActiveBattler
_0801690C: .4byte gUnknown_2023D7C
-_08016910: .4byte gUnknown_2023E8A
+_08016910: .4byte gBattleOutcome
_08016914:
ldrb r0, [r4]
adds r0, r6
@@ -13300,7 +13300,7 @@ _08016926:
cmp r0, r1
bcc _080168D8
_08016938:
- ldr r0, _08016948 @ =gUnknown_2023E8A
+ ldr r0, _08016948 @ =gBattleOutcome
ldrb r1, [r0]
movs r2, 0x80
orrs r1, r2
@@ -13308,7 +13308,7 @@ _08016938:
b _080169D8
.align 2, 0
_08016944: .4byte gBattlersCount
-_08016948: .4byte gUnknown_2023E8A
+_08016948: .4byte gBattleOutcome
_0801694C:
ldrb r0, [r4]
bl GetBattlerSide
@@ -13368,7 +13368,7 @@ _080169CC:
ldr r0, _080169E0 @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r5]
- ldr r1, _080169E4 @ =gUnknown_2023E8A
+ ldr r1, _080169E4 @ =gBattleOutcome
movs r0, 0x6
_080169D6:
strb r0, [r1]
@@ -13378,7 +13378,7 @@ _080169D8:
bx r0
.align 2, 0
_080169E0: .4byte gBattlersCount
-_080169E4: .4byte gUnknown_2023E8A
+_080169E4: .4byte gBattleOutcome
thumb_func_end sub_80168A4
thumb_func_start sub_80169E8
@@ -13391,10 +13391,10 @@ sub_80169E8: @ 80169E8
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016A50 @ =gUnknown_2022974
+ ldr r0, _08016A50 @ =gBattle_BG0_X
movs r5, 0
strh r5, [r0]
- ldr r0, _08016A54 @ =gUnknown_2022976
+ ldr r0, _08016A54 @ =gBattle_BG0_Y
strh r5, [r0]
ldr r4, _08016A58 @ =gBattleStruct
ldr r1, [r4]
@@ -13431,8 +13431,8 @@ sub_80169E8: @ 80169E8
_08016A44: .4byte sBattler_AI
_08016A48: .4byte gUnknown_2023BDE
_08016A4C: .4byte gUnknown_2023BE2
-_08016A50: .4byte gUnknown_2022974
-_08016A54: .4byte gUnknown_2022976
+_08016A50: .4byte gBattle_BG0_X
+_08016A54: .4byte gBattle_BG0_Y
_08016A58: .4byte gBattleStruct
_08016A5C: .4byte gEnemyParty
_08016A60: .4byte gBaseStats
@@ -13492,10 +13492,10 @@ sub_8016AC0: @ 8016AC0
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016B04 @ =gUnknown_2022974
+ ldr r0, _08016B04 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08016B08 @ =gUnknown_2022976
+ ldr r0, _08016B08 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r1, _08016B0C @ =gUnknown_2039994
ldrb r0, [r1]
@@ -13516,8 +13516,8 @@ sub_8016AC0: @ 8016AC0
_08016AF8: .4byte sBattler_AI
_08016AFC: .4byte gUnknown_2023BDE
_08016B00: .4byte gUnknown_2023BE2
-_08016B04: .4byte gUnknown_2022974
-_08016B08: .4byte gUnknown_2022976
+_08016B04: .4byte gBattle_BG0_X
+_08016B08: .4byte gBattle_BG0_Y
_08016B0C: .4byte gUnknown_2039994
_08016B10: .4byte gUnknown_2023D68
_08016B14: .4byte gUnknown_2023D74
@@ -13535,10 +13535,10 @@ sub_8016B20: @ 8016B20
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016BA8 @ =gUnknown_2022974
+ ldr r0, _08016BA8 @ =gBattle_BG0_X
movs r7, 0
strh r7, [r0]
- ldr r0, _08016BAC @ =gUnknown_2022976
+ ldr r0, _08016BAC @ =gBattle_BG0_Y
strh r7, [r0]
bl Random
ldr r6, _08016BB0 @ =gBattleStruct
@@ -13592,8 +13592,8 @@ _08016B86:
_08016B9C: .4byte sBattler_AI
_08016BA0: .4byte gUnknown_2023BDE
_08016BA4: .4byte gUnknown_2023BE2
-_08016BA8: .4byte gUnknown_2022974
-_08016BAC: .4byte gUnknown_2022976
+_08016BA8: .4byte gBattle_BG0_X
+_08016BAC: .4byte gBattle_BG0_Y
_08016BB0: .4byte gBattleStruct
_08016BB4: .4byte gUnknown_2023D74
_08016BB8: .4byte gUnknown_81D9A04
@@ -13610,10 +13610,10 @@ sub_8016BC0: @ 8016BC0
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016C48 @ =gUnknown_2022974
+ ldr r0, _08016C48 @ =gBattle_BG0_X
movs r7, 0
strh r7, [r0]
- ldr r0, _08016C4C @ =gUnknown_2022976
+ ldr r0, _08016C4C @ =gBattle_BG0_Y
strh r7, [r0]
bl Random
ldr r6, _08016C50 @ =gBattleStruct
@@ -13667,8 +13667,8 @@ _08016C26:
_08016C3C: .4byte sBattler_AI
_08016C40: .4byte gUnknown_2023BDE
_08016C44: .4byte gUnknown_2023BE2
-_08016C48: .4byte gUnknown_2022974
-_08016C4C: .4byte gUnknown_2022976
+_08016C48: .4byte gBattle_BG0_X
+_08016C4C: .4byte gBattle_BG0_Y
_08016C50: .4byte gBattleStruct
_08016C54: .4byte gUnknown_2023D74
_08016C58: .4byte gUnknown_81D9A04
@@ -13690,7 +13690,7 @@ HandleAction_SafriZoneRun: @ 8016C60
ldr r0, _08016C94 @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r4]
- ldr r1, _08016C98 @ =gUnknown_2023E8A
+ ldr r1, _08016C98 @ =gBattleOutcome
movs r0, 0x4
strb r0, [r1]
pop {r4}
@@ -13701,7 +13701,7 @@ _08016C88: .4byte sBattler_AI
_08016C8C: .4byte gUnknown_2023BDE
_08016C90: .4byte gUnknown_2023BE2
_08016C94: .4byte gBattlersCount
-_08016C98: .4byte gUnknown_2023E8A
+_08016C98: .4byte gBattleOutcome
thumb_func_end HandleAction_SafriZoneRun
thumb_func_start HandleAction_Action9
@@ -13713,10 +13713,10 @@ HandleAction_Action9: @ 8016C9C
adds r0, r1
ldrb r2, [r0]
strb r2, [r3]
- ldr r0, _08016CF4 @ =gUnknown_2022974
+ ldr r0, _08016CF4 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08016CF8 @ =gUnknown_2022976
+ ldr r0, _08016CF8 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r1, _08016CFC @ =gBattleTextBuff1
movs r0, 0xFD
@@ -13747,8 +13747,8 @@ HandleAction_Action9: @ 8016C9C
_08016CE8: .4byte sBattler_AI
_08016CEC: .4byte gUnknown_2023BDE
_08016CF0: .4byte gUnknown_2023BE2
-_08016CF4: .4byte gUnknown_2022974
-_08016CF8: .4byte gUnknown_2022976
+_08016CF4: .4byte gBattle_BG0_X
+_08016CF8: .4byte gBattle_BG0_Y
_08016CFC: .4byte gBattleTextBuff1
_08016D00: .4byte gBattlerPartyIndexes
_08016D04: .4byte gUnknown_2023D74
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index 085b11f09..7e698830f 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -20,7 +20,7 @@ ClearBattleAnimationVars: @ 80724C0
strb r1, [r0]
ldr r0, _08072560 @ =gUnknown_2037EE3
strb r1, [r0]
- ldr r0, _08072564 @ =gUnknown_2037EE4
+ ldr r0, _08072564 @ =gAnimDisableStructPtr
movs r1, 0
str r1, [r0]
ldr r0, _08072568 @ =gUnknown_2037EE8
@@ -31,12 +31,12 @@ ClearBattleAnimationVars: @ 80724C0
ldr r0, _08072570 @ =gUnknown_2037EFE
strb r2, [r0]
ldr r4, _08072574 @ =gUnknown_2037F14
- ldr r5, _08072578 @ =gUnknown_2037F16
+ ldr r5, _08072578 @ =gAnimMoveTurn
ldr r6, _0807257C @ =gUnknown_2037F17
ldr r7, _08072580 @ =gUnknown_2037F18
- ldr r0, _08072584 @ =gUnknown_2037F1A
+ ldr r0, _08072584 @ =gBattleAnimAttacker
mov r12, r0
- ldr r1, _08072588 @ =gUnknown_2037F1B
+ ldr r1, _08072588 @ =gBattleAnimTarget
mov r8, r1
ldr r0, _0807258C @ =gUnknown_2037F24
mov r9, r0
@@ -52,7 +52,7 @@ _0807250A:
subs r2, 0x1
cmp r2, 0
bge _0807250A
- ldr r1, _08072598 @ =gUnknown_2037F02
+ ldr r1, _08072598 @ =gBattleAnimArgs
movs r2, 0
adds r0, r1, 0
adds r0, 0xE
@@ -88,20 +88,20 @@ _08072554: .4byte gUnknown_2037EE0
_08072558: .4byte gUnknown_2037EE1
_0807255C: .4byte gUnknown_2037EE2
_08072560: .4byte gUnknown_2037EE3
-_08072564: .4byte gUnknown_2037EE4
+_08072564: .4byte gAnimDisableStructPtr
_08072568: .4byte gUnknown_2037EE8
_0807256C: .4byte gUnknown_2037EEC
_08072570: .4byte gUnknown_2037EFE
_08072574: .4byte gUnknown_2037F14
-_08072578: .4byte gUnknown_2037F16
+_08072578: .4byte gAnimMoveTurn
_0807257C: .4byte gUnknown_2037F17
_08072580: .4byte gUnknown_2037F18
-_08072584: .4byte gUnknown_2037F1A
-_08072588: .4byte gUnknown_2037F1B
+_08072584: .4byte gBattleAnimAttacker
+_08072588: .4byte gBattleAnimTarget
_0807258C: .4byte gUnknown_2037F24
_08072590: .4byte 0x0000ffff
_08072594: .4byte gUnknown_2037EEE
-_08072598: .4byte gUnknown_2037F02
+_08072598: .4byte gBattleAnimArgs
thumb_func_end ClearBattleAnimationVars
thumb_func_start DoMoveAnim
@@ -110,11 +110,11 @@ DoMoveAnim: @ 807259C
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
- ldr r2, _080725C0 @ =gUnknown_2037F1A
+ ldr r2, _080725C0 @ =gBattleAnimAttacker
ldr r0, _080725C4 @ =sBattler_AI
ldrb r0, [r0]
strb r0, [r2]
- ldr r2, _080725C8 @ =gUnknown_2037F1B
+ ldr r2, _080725C8 @ =gBattleAnimTarget
ldr r0, _080725CC @ =gBattlerTarget
ldrb r0, [r0]
strb r0, [r2]
@@ -124,9 +124,9 @@ DoMoveAnim: @ 807259C
pop {r0}
bx r0
.align 2, 0
-_080725C0: .4byte gUnknown_2037F1A
+_080725C0: .4byte gBattleAnimAttacker
_080725C4: .4byte sBattler_AI
-_080725C8: .4byte gUnknown_2037F1B
+_080725C8: .4byte gBattleAnimTarget
_080725CC: .4byte gBattlerTarget
_080725D0: .4byte gUnknown_81C68F4
thumb_func_end DoMoveAnim
@@ -206,7 +206,7 @@ _08072658:
ldr r0, _080726D4 @ =gUnknown_2037EDC
mov r10, r0
ldr r7, _080726D8 @ =RunAnimScriptCommand
- ldr r1, _080726DC @ =gUnknown_2037F02
+ ldr r1, _080726DC @ =gBattleAnimArgs
movs r2, 0
adds r0, r1, 0
adds r0, 0xE
@@ -257,7 +257,7 @@ _080726CC: .4byte gUnknown_2037EE1
_080726D0: .4byte gUnknown_2037EE0
_080726D4: .4byte gUnknown_2037EDC
_080726D8: .4byte RunAnimScriptCommand
-_080726DC: .4byte gUnknown_2037F02
+_080726DC: .4byte gBattleAnimArgs
_080726E0: .4byte 0x0000ffff
_080726E4: .4byte gUnknown_2037EEE
_080726E8: .4byte gUnknown_81C68EC
@@ -581,7 +581,7 @@ ScriptCmd_createsprite: @ 807291C
cmp r0, 0
beq _0807296C
adds r6, r5, 0
- ldr r5, _08072988 @ =gUnknown_2037F02
+ ldr r5, _08072988 @ =gBattleAnimArgs
adds r3, r0, 0
_08072954:
ldr r2, [r6]
@@ -610,16 +610,16 @@ _0807296C:
b _0807298E
.align 2, 0
_08072984: .4byte gUnknown_2037ED4
-_08072988: .4byte gUnknown_2037F02
+_08072988: .4byte gBattleAnimArgs
_0807298C:
negs r0, r4
_0807298E:
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08072998 @ =gUnknown_2037F1B
+ ldr r0, _08072998 @ =gBattleAnimTarget
b _080729AE
.align 2, 0
-_08072998: .4byte gUnknown_2037F1B
+_08072998: .4byte gBattleAnimTarget
_0807299C:
cmp r4, 0x3F
bls _080729A6
@@ -631,7 +631,7 @@ _080729A6:
_080729A8:
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08072A04 @ =gUnknown_2037F1A
+ ldr r0, _08072A04 @ =gBattleAnimAttacker
_080729AE:
ldrb r0, [r0]
bl sub_807685C
@@ -648,7 +648,7 @@ _080729AE:
bgt _080729CC
movs r6, 0x3
_080729CC:
- ldr r5, _08072A08 @ =gUnknown_2037F1B
+ ldr r5, _08072A08 @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8074480
@@ -674,8 +674,8 @@ _080729CC:
pop {r0}
bx r0
.align 2, 0
-_08072A04: .4byte gUnknown_2037F1A
-_08072A08: .4byte gUnknown_2037F1B
+_08072A04: .4byte gBattleAnimAttacker
+_08072A08: .4byte gBattleAnimTarget
_08072A0C: .4byte gUnknown_2037EE2
thumb_func_end ScriptCmd_createsprite
@@ -707,7 +707,7 @@ ScriptCmd_createvisualtask: @ 8072A10
cmp r0, 0
beq _08072A60
adds r5, r4, 0
- ldr r4, _08072A84 @ =gUnknown_2037F02
+ ldr r4, _08072A84 @ =gBattleAnimArgs
adds r3, r0, 0
_08072A48:
ldr r2, [r5]
@@ -738,7 +738,7 @@ _08072A60:
bx r0
.align 2, 0
_08072A80: .4byte gUnknown_2037ED4
-_08072A84: .4byte gUnknown_2037F02
+_08072A84: .4byte gBattleAnimArgs
_08072A88: .4byte gUnknown_2037EE2
thumb_func_end ScriptCmd_createvisualtask
@@ -980,12 +980,12 @@ _08072C52:
cmp r6, 0x2
bne _08072C60
_08072C56:
- ldr r0, _08072C5C @ =gUnknown_2037F1A
+ ldr r0, _08072C5C @ =gBattleAnimAttacker
b _08072C62
.align 2, 0
-_08072C5C: .4byte gUnknown_2037F1A
+_08072C5C: .4byte gBattleAnimAttacker
_08072C60:
- ldr r0, _08072CD8 @ =gUnknown_2037F1B
+ ldr r0, _08072CD8 @ =gBattleAnimTarget
_08072C62:
ldrb r5, [r0]
adds r0, r5, 0
@@ -1008,7 +1008,7 @@ _08072C88:
adds r0, r5, 0
adds r1, r7, 0
bl sub_8072E48
- ldr r0, _08072CDC @ =gUnknown_2023D44
+ ldr r0, _08072CDC @ =gBattlerSpriteIds
adds r0, r5, r0
ldrb r4, [r0]
ldr r0, _08072CE0 @ =task_pA_ma0A_obj_to_bg_pal
@@ -1037,24 +1037,24 @@ _08072C88:
strh r1, [r2, 0xC]
cmp r7, 0
bne _08072CF4
- ldr r0, _08072CEC @ =gUnknown_2022978
+ ldr r0, _08072CEC @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072CF0 @ =gUnknown_202297A
+ ldr r0, _08072CF0 @ =gBattle_BG1_Y
b _08072CFC
.align 2, 0
-_08072CD8: .4byte gUnknown_2037F1B
-_08072CDC: .4byte gUnknown_2023D44
+_08072CD8: .4byte gBattleAnimTarget
+_08072CDC: .4byte gBattlerSpriteIds
_08072CE0: .4byte task_pA_ma0A_obj_to_bg_pal
_08072CE4: .4byte gTasks
_08072CE8: .4byte gSprites
-_08072CEC: .4byte gUnknown_2022978
-_08072CF0: .4byte gUnknown_202297A
+_08072CEC: .4byte gBattle_BG1_X
+_08072CF0: .4byte gBattle_BG1_Y
_08072CF4:
- ldr r0, _08072D8C @ =gUnknown_202297C
+ ldr r0, _08072D8C @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072D90 @ =gUnknown_202297E
+ ldr r0, _08072D90 @ =gBattle_BG2_Y
_08072CFC:
ldrh r0, [r0]
strh r0, [r2, 0x10]
@@ -1092,7 +1092,7 @@ _08072D3E:
adds r0, r5, 0
adds r1, r7, 0
bl sub_8072E48
- ldr r0, _08072D9C @ =gUnknown_2023D44
+ ldr r0, _08072D9C @ =gBattlerSpriteIds
adds r0, r5, r0
ldrb r4, [r0]
ldr r0, _08072DA0 @ =task_pA_ma0A_obj_to_bg_pal
@@ -1121,26 +1121,26 @@ _08072D3E:
strh r1, [r2, 0xC]
cmp r7, 0
bne _08072DB0
- ldr r0, _08072DA8 @ =gUnknown_2022978
+ ldr r0, _08072DA8 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072DAC @ =gUnknown_202297A
+ ldr r0, _08072DAC @ =gBattle_BG1_Y
b _08072DB8
.align 2, 0
-_08072D8C: .4byte gUnknown_202297C
-_08072D90: .4byte gUnknown_202297E
+_08072D8C: .4byte gBattle_BG2_X
+_08072D90: .4byte gBattle_BG2_Y
_08072D94: .4byte gTasks
_08072D98: .4byte gUnknown_2037F14
-_08072D9C: .4byte gUnknown_2023D44
+_08072D9C: .4byte gBattlerSpriteIds
_08072DA0: .4byte task_pA_ma0A_obj_to_bg_pal
_08072DA4: .4byte gSprites
-_08072DA8: .4byte gUnknown_2022978
-_08072DAC: .4byte gUnknown_202297A
+_08072DA8: .4byte gBattle_BG1_X
+_08072DAC: .4byte gBattle_BG1_Y
_08072DB0:
- ldr r0, _08072DDC @ =gUnknown_202297C
+ ldr r0, _08072DDC @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072DE0 @ =gUnknown_202297E
+ ldr r0, _08072DE0 @ =gBattle_BG2_Y
_08072DB8:
ldrh r0, [r0]
strh r0, [r2, 0x10]
@@ -1162,8 +1162,8 @@ _08072DCE:
pop {r0}
bx r0
.align 2, 0
-_08072DDC: .4byte gUnknown_202297C
-_08072DE0: .4byte gUnknown_202297E
+_08072DDC: .4byte gBattle_BG2_X
+_08072DE0: .4byte gBattle_BG2_Y
_08072DE4: .4byte gTasks
_08072DE8: .4byte gUnknown_2037F14
_08072DEC: .4byte gUnknown_2037ED4
@@ -1190,7 +1190,7 @@ sub_8072DF0: @ 8072DF0
cmp r0, 0
beq _08072E30
ldr r2, _08072E38 @ =gSprites
- ldr r0, _08072E3C @ =gUnknown_2023D44
+ ldr r0, _08072E3C @ =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -1208,7 +1208,7 @@ _08072E30:
.align 2, 0
_08072E34: .4byte gUnknown_2024018
_08072E38: .4byte gSprites
-_08072E3C: .4byte gUnknown_2023D44
+_08072E3C: .4byte gBattlerSpriteIds
_08072E40:
movs r0, 0
_08072E42:
@@ -1268,10 +1268,10 @@ _08072E5E:
movs r1, 0x1
movs r2, 0
bl SetAnimBgAttribute
- ldr r2, _08072F6C @ =gUnknown_2023D44
+ ldr r2, _08072F6C @ =gBattlerSpriteIds
adds r2, r7, r2
ldrb r0, [r2]
- ldr r5, _08072F70 @ =gUnknown_2022978
+ ldr r5, _08072F70 @ =gBattle_BG1_X
ldr r3, _08072F74 @ =gSprites
lsls r1, r0, 4
adds r1, r0
@@ -1283,7 +1283,7 @@ _08072E5E:
negs r0, r0
adds r0, 0x20
strh r0, [r5]
- ldr r4, _08072F78 @ =gUnknown_202297A
+ ldr r4, _08072F78 @ =gBattle_BG1_Y
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
@@ -1349,10 +1349,10 @@ _08072F5C: .4byte 0x06004000
_08072F60: .4byte 0x0600e000
_08072F64: .4byte 0x01000800
_08072F68: .4byte 0x01000400
-_08072F6C: .4byte gUnknown_2023D44
-_08072F70: .4byte gUnknown_2022978
+_08072F6C: .4byte gBattlerSpriteIds
+_08072F70: .4byte gBattle_BG1_X
_08072F74: .4byte gSprites
-_08072F78: .4byte gUnknown_202297A
+_08072F78: .4byte gBattle_BG1_Y
_08072F7C: .4byte gPlttBufferUnfaded + 0x200
_08072F80: .4byte 0x04000008
_08072F84:
@@ -1401,10 +1401,10 @@ _08072F84:
movs r1, 0x1
movs r2, 0
bl SetAnimBgAttribute
- ldr r2, _080730A4 @ =gUnknown_2023D44
+ ldr r2, _080730A4 @ =gBattlerSpriteIds
adds r2, r7, r2
ldrb r0, [r2]
- ldr r5, _080730A8 @ =gUnknown_202297C
+ ldr r5, _080730A8 @ =gBattle_BG2_X
ldr r3, _080730AC @ =gSprites
lsls r1, r0, 4
adds r1, r0
@@ -1416,7 +1416,7 @@ _08072F84:
negs r0, r0
adds r0, 0x20
strh r0, [r5]
- ldr r4, _080730B0 @ =gUnknown_202297E
+ ldr r4, _080730B0 @ =gBattle_BG2_Y
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
@@ -1483,10 +1483,10 @@ _08073094: .4byte 0x06006000
_08073098: .4byte 0x0600f000
_0807309C: .4byte 0x01000800
_080730A0: .4byte 0x01000400
-_080730A4: .4byte gUnknown_2023D44
-_080730A8: .4byte gUnknown_202297C
+_080730A4: .4byte gBattlerSpriteIds
+_080730A8: .4byte gBattle_BG2_X
_080730AC: .4byte gSprites
-_080730B0: .4byte gUnknown_202297E
+_080730B0: .4byte gBattle_BG2_Y
_080730B4: .4byte gPlttBufferUnfaded + 0x200
_080730B8: .4byte 0x05000120
_080730BC: .4byte 0x04000008
@@ -1563,21 +1563,21 @@ sub_8073128: @ 8073128
bne _08073154
movs r0, 0x1
bl sub_8075358
- ldr r0, _0807314C @ =gUnknown_2022978
+ ldr r0, _0807314C @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _08073150 @ =gUnknown_202297A
+ ldr r0, _08073150 @ =gBattle_BG1_Y
strh r4, [r0]
b _08073164
.align 2, 0
-_0807314C: .4byte gUnknown_2022978
-_08073150: .4byte gUnknown_202297A
+_0807314C: .4byte gBattle_BG1_X
+_08073150: .4byte gBattle_BG1_Y
_08073154:
movs r0, 0x2
bl sub_8075358
- ldr r0, _0807316C @ =gUnknown_202297C
+ ldr r0, _0807316C @ =gBattle_BG2_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08073170 @ =gUnknown_202297E
+ ldr r0, _08073170 @ =gBattle_BG2_Y
strh r1, [r0]
_08073164:
add sp, 0x10
@@ -1585,8 +1585,8 @@ _08073164:
pop {r0}
bx r0
.align 2, 0
-_0807316C: .4byte gUnknown_202297C
-_08073170: .4byte gUnknown_202297E
+_0807316C: .4byte gBattle_BG2_X
+_08073170: .4byte gBattle_BG2_Y
thumb_func_end sub_8073128
thumb_func_start task_pA_ma0A_obj_to_bg_pal
@@ -1627,13 +1627,13 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0807320C
- ldr r1, _080731F8 @ =gUnknown_2022978
+ ldr r1, _080731F8 @ =gBattle_BG1_X
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
- ldr r1, _080731FC @ =gUnknown_202297A
+ ldr r1, _080731FC @ =gBattle_BG1_Y
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
@@ -1654,19 +1654,19 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174
.align 2, 0
_080731F0: .4byte gTasks
_080731F4: .4byte gSprites
-_080731F8: .4byte gUnknown_2022978
-_080731FC: .4byte gUnknown_202297A
+_080731F8: .4byte gBattle_BG1_X
+_080731FC: .4byte gBattle_BG1_Y
_08073200: .4byte gPlttBufferFaded + 0x200
_08073204: .4byte 0xfffffe00
_08073208: .4byte 0x04000008
_0807320C:
- ldr r1, _0807323C @ =gUnknown_202297C
+ ldr r1, _0807323C @ =gBattle_BG2_X
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
- ldr r1, _08073240 @ =gUnknown_202297E
+ ldr r1, _08073240 @ =gBattle_BG2_Y
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
@@ -1684,8 +1684,8 @@ _08073232:
pop {r0}
bx r0
.align 2, 0
-_0807323C: .4byte gUnknown_202297C
-_08073240: .4byte gUnknown_202297E
+_0807323C: .4byte gBattle_BG2_X
+_08073240: .4byte gBattle_BG2_Y
_08073244: .4byte gPlttBufferFaded + 0x200
_08073248: .4byte 0x04000008
thumb_func_end task_pA_ma0A_obj_to_bg_pal
@@ -1715,12 +1715,12 @@ _0807326E:
cmp r4, 0x2
bne _0807327C
_08073272:
- ldr r0, _08073278 @ =gUnknown_2037F1A
+ ldr r0, _08073278 @ =gBattleAnimAttacker
b _0807327E
.align 2, 0
-_08073278: .4byte gUnknown_2037F1A
+_08073278: .4byte gBattleAnimAttacker
_0807327C:
- ldr r0, _080732D4 @ =gUnknown_2037F1B
+ ldr r0, _080732D4 @ =gBattleAnimTarget
_0807327E:
ldrb r5, [r0]
ldr r3, _080732D8 @ =gUnknown_2037F14
@@ -1728,7 +1728,7 @@ _0807327E:
cmp r0, 0xFF
beq _080732A4
ldr r2, _080732DC @ =gSprites
- ldr r0, _080732E0 @ =gUnknown_2023D44
+ ldr r0, _080732E0 @ =gBattlerSpriteIds
adds r0, r5, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -1748,7 +1748,7 @@ _080732A4:
cmp r0, 0xFF
beq _080732E4
ldr r3, _080732DC @ =gSprites
- ldr r2, _080732E0 @ =gUnknown_2023D44
+ ldr r2, _080732E0 @ =gBattlerSpriteIds
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
@@ -1766,10 +1766,10 @@ _080732A4:
strb r1, [r0]
b _080732E6
.align 2, 0
-_080732D4: .4byte gUnknown_2037F1B
+_080732D4: .4byte gBattleAnimTarget
_080732D8: .4byte gUnknown_2037F14
_080732DC: .4byte gSprites
-_080732E0: .4byte gUnknown_2023D44
+_080732E0: .4byte gBattlerSpriteIds
_080732E4:
movs r4, 0
_080732E6:
@@ -1888,12 +1888,12 @@ _080733BE:
cmp r5, 0x2
bne _080733CC
_080733C2:
- ldr r0, _080733C8 @ =gUnknown_2037F1A
+ ldr r0, _080733C8 @ =gBattleAnimAttacker
b _080733CE
.align 2, 0
-_080733C8: .4byte gUnknown_2037F1A
+_080733C8: .4byte gBattleAnimAttacker
_080733CC:
- ldr r0, _08073474 @ =gUnknown_2037F1B
+ ldr r0, _08073474 @ =gBattleAnimTarget
_080733CE:
ldrb r4, [r0]
adds r0, r4, 0
@@ -1916,7 +1916,7 @@ _080733F4:
adds r0, r4, 0
bl sub_8072E48
ldr r2, _08073478 @ =gSprites
- ldr r0, _0807347C @ =gUnknown_2023D44
+ ldr r0, _0807347C @ =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -1954,7 +1954,7 @@ _08073442:
adds r0, r4, 0
bl sub_8072E48
ldr r2, _08073478 @ =gSprites
- ldr r0, _0807347C @ =gUnknown_2023D44
+ ldr r0, _0807347C @ =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -1976,9 +1976,9 @@ _08073464:
pop {r0}
bx r0
.align 2, 0
-_08073474: .4byte gUnknown_2037F1B
+_08073474: .4byte gBattleAnimTarget
_08073478: .4byte gSprites
-_0807347C: .4byte gUnknown_2023D44
+_0807347C: .4byte gBattlerSpriteIds
_08073480: .4byte gUnknown_2037ED4
thumb_func_end sub_807339C
@@ -2007,12 +2007,12 @@ _080734A6:
cmp r5, 0x2
bne _080734B4
_080734AA:
- ldr r0, _080734B0 @ =gUnknown_2037F1A
+ ldr r0, _080734B0 @ =gBattleAnimAttacker
b _080734B6
.align 2, 0
-_080734B0: .4byte gUnknown_2037F1A
+_080734B0: .4byte gBattleAnimAttacker
_080734B4:
- ldr r0, _08073514 @ =gUnknown_2037F1B
+ ldr r0, _08073514 @ =gBattleAnimTarget
_080734B6:
ldrb r6, [r0]
adds r0, r6, 0
@@ -2021,7 +2021,7 @@ _080734B6:
cmp r0, 0
beq _080734E0
ldr r2, _08073518 @ =gSprites
- ldr r0, _0807351C @ =gUnknown_2023D44
+ ldr r0, _0807351C @ =gBattlerSpriteIds
adds r0, r6, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -2046,7 +2046,7 @@ _080734E0:
cmp r0, 0
beq _08073520
ldr r2, _08073518 @ =gSprites
- ldr r0, _0807351C @ =gUnknown_2023D44
+ ldr r0, _0807351C @ =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -2061,9 +2061,9 @@ _080734E0:
strb r1, [r0]
b _08073522
.align 2, 0
-_08073514: .4byte gUnknown_2037F1B
+_08073514: .4byte gBattleAnimTarget
_08073518: .4byte gSprites
-_0807351C: .4byte gUnknown_2023D44
+_0807351C: .4byte gBattlerSpriteIds
_08073520:
movs r5, 0
_08073522:
@@ -2290,7 +2290,7 @@ ScriptCmd_setarg: @ 80736AC
orrs r4, r0
adds r1, 0x4
str r1, [r5]
- ldr r0, _080736DC @ =gUnknown_2037F02
+ ldr r0, _080736DC @ =gBattleAnimArgs
lsls r2, 1
adds r2, r0
strh r4, [r2]
@@ -2299,7 +2299,7 @@ ScriptCmd_setarg: @ 80736AC
bx r0
.align 2, 0
_080736D8: .4byte gUnknown_2037ED4
-_080736DC: .4byte gUnknown_2037F02
+_080736DC: .4byte gBattleAnimArgs
thumb_func_end ScriptCmd_setarg
thumb_func_start ScriptCmd_choosetwoturnanim
@@ -2309,7 +2309,7 @@ ScriptCmd_choosetwoturnanim: @ 80736E0
ldr r2, [r3]
adds r0, r2, 0x1
str r0, [r3]
- ldr r0, _0807371C @ =gUnknown_2037F16
+ ldr r0, _0807371C @ =gAnimMoveTurn
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -2334,7 +2334,7 @@ _080736FA:
bx r0
.align 2, 0
_08073718: .4byte gUnknown_2037ED4
-_0807371C: .4byte gUnknown_2037F16
+_0807371C: .4byte gAnimMoveTurn
thumb_func_end ScriptCmd_choosetwoturnanim
thumb_func_start ScriptCmd_jumpifmoveturn
@@ -2347,7 +2347,7 @@ ScriptCmd_jumpifmoveturn: @ 8073720
ldrb r1, [r4, 0x1]
adds r3, r2, 0x1
str r3, [r5]
- ldr r0, _08073754 @ =gUnknown_2037F16
+ ldr r0, _08073754 @ =gAnimMoveTurn
ldrb r0, [r0]
cmp r1, r0
bne _08073758
@@ -2365,7 +2365,7 @@ ScriptCmd_jumpifmoveturn: @ 8073720
b _0807375C
.align 2, 0
_08073750: .4byte gUnknown_2037ED4
-_08073754: .4byte gUnknown_2037F16
+_08073754: .4byte gAnimMoveTurn
_08073758:
adds r0, r4, 0x6
str r0, [r5]
@@ -2469,7 +2469,7 @@ sub_80737E4: @ 80737E4
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08073828 @ =gUnknown_2037F1B
+ ldr r0, _08073828 @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -2485,7 +2485,7 @@ sub_80737E4: @ 80737E4
.align 2, 0
_08073820: .4byte gUnknown_2037ED4
_08073824: .4byte sub_8073850
-_08073828: .4byte gUnknown_2037F1B
+_08073828: .4byte gBattleAnimTarget
_0807382C: .4byte gTasks
_08073830:
ldr r1, _08073848 @ =gTasks
@@ -2774,7 +2774,7 @@ sub_8073A44: @ 8073A44
lsrs r4, r0, 24
ldr r0, _08073A78 @ =gUnknown_2024018
ldr r1, [r0]
- ldr r0, _08073A7C @ =gUnknown_2037F1A
+ ldr r0, _08073A7C @ =gBattleAnimAttacker
ldrb r2, [r0]
ldr r1, [r1, 0x4]
lsls r0, r2, 1
@@ -2796,14 +2796,14 @@ sub_8073A44: @ 8073A44
b _08073AE6
.align 2, 0
_08073A78: .4byte gUnknown_2024018
-_08073A7C: .4byte gUnknown_2037F1A
+_08073A7C: .4byte gBattleAnimAttacker
_08073A80:
adds r0, r2, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08073ABA
- ldr r0, _08073AA8 @ =gUnknown_2037F1B
+ ldr r0, _08073AA8 @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -2816,7 +2816,7 @@ _08073A80:
movs r4, 0xC0
b _08073AE6
.align 2, 0
-_08073AA8: .4byte gUnknown_2037F1B
+_08073AA8: .4byte gBattleAnimTarget
_08073AAC:
movs r0, 0x40
negs r0, r0
@@ -2826,7 +2826,7 @@ _08073AAC:
lsls r0, 24
b _08073AE4
_08073ABA:
- ldr r0, _08073ADC @ =gUnknown_2037F1B
+ ldr r0, _08073ADC @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -2842,7 +2842,7 @@ _08073ABA:
movs r4, 0x3F
b _08073AE6
.align 2, 0
-_08073ADC: .4byte gUnknown_2037F1B
+_08073ADC: .4byte gBattleAnimTarget
_08073AE0:
lsls r0, r4, 24
negs r0, r0
@@ -2876,7 +2876,7 @@ sub_8073B08: @ 8073B08
lsrs r4, r0, 24
ldr r0, _08073B3C @ =gUnknown_2024018
ldr r1, [r0]
- ldr r0, _08073B40 @ =gUnknown_2037F1A
+ ldr r0, _08073B40 @ =gBattleAnimAttacker
ldrb r2, [r0]
ldr r1, [r1, 0x4]
lsls r0, r2, 1
@@ -2898,7 +2898,7 @@ sub_8073B08: @ 8073B08
b _08073B56
.align 2, 0
_08073B3C: .4byte gUnknown_2024018
-_08073B40: .4byte gUnknown_2037F1A
+_08073B40: .4byte gBattleAnimAttacker
_08073B44:
adds r0, r2, 0
bl GetBattlerSide
@@ -3597,7 +3597,7 @@ ScriptCmd_createsoundtask: @ 807406C
cmp r0, 0
beq _080740B6
adds r5, r4, 0
- ldr r4, _080740D8 @ =gUnknown_2037F02
+ ldr r4, _080740D8 @ =gBattleAnimArgs
adds r3, r0, 0
_0807409E:
ldr r2, [r5]
@@ -3628,7 +3628,7 @@ _080740B6:
bx r0
.align 2, 0
_080740D4: .4byte gUnknown_2037ED4
-_080740D8: .4byte gUnknown_2037F02
+_080740D8: .4byte gBattleAnimArgs
_080740DC: .4byte gUnknown_2037EE3
thumb_func_end ScriptCmd_createsoundtask
@@ -3707,7 +3707,7 @@ ScriptCmd_jumpargeq: @ 8074164
ldrb r0, [r3, 0x2]
lsls r0, 8
orrs r1, r0
- ldr r0, _080741A8 @ =gUnknown_2037F02
+ ldr r0, _080741A8 @ =gBattleAnimArgs
lsls r2, 1
adds r2, r0
lsls r1, 16
@@ -3730,7 +3730,7 @@ ScriptCmd_jumpargeq: @ 8074164
b _080741B2
.align 2, 0
_080741A4: .4byte gUnknown_2037ED4
-_080741A8: .4byte gUnknown_2037F02
+_080741A8: .4byte gBattleAnimArgs
_080741AC:
adds r0, r4, 0
adds r0, 0x8
@@ -3762,13 +3762,13 @@ sub_80741C8: @ 80741C8
str r1, [r0]
cmp r2, 0
beq _080741E4
- ldr r0, _080741E0 @ =gUnknown_2037F1B
+ ldr r0, _080741E0 @ =gBattleAnimTarget
b _080741E6
.align 2, 0
_080741DC: .4byte gUnknown_2037ED4
-_080741E0: .4byte gUnknown_2037F1B
+_080741E0: .4byte gBattleAnimTarget
_080741E4:
- ldr r0, _08074210 @ =gUnknown_2037F1A
+ ldr r0, _08074210 @ =gBattleAnimAttacker
_080741E6:
ldrb r0, [r0]
bl GetBattlerPosition
@@ -3791,7 +3791,7 @@ _0807420C:
pop {r0}
bx r0
.align 2, 0
-_08074210: .4byte gUnknown_2037F1A
+_08074210: .4byte gBattleAnimAttacker
thumb_func_end sub_80741C8
thumb_func_start sub_8074214
@@ -3823,11 +3823,11 @@ sub_807423C: @ 807423C
ldrb r6, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
- ldr r7, _08074270 @ =gUnknown_2037F1A
+ ldr r7, _08074270 @ =gBattleAnimAttacker
ldrb r0, [r7]
bl GetBattlerSide
adds r4, r0, 0
- ldr r5, _08074274 @ =gUnknown_2037F1B
+ ldr r5, _08074274 @ =gBattleAnimTarget
ldrb r0, [r5]
bl GetBattlerSide
lsls r4, 24
@@ -3840,8 +3840,8 @@ sub_807423C: @ 807423C
b _0807427A
.align 2, 0
_0807426C: .4byte gUnknown_2037ED4
-_08074270: .4byte gUnknown_2037F1A
-_08074274: .4byte gUnknown_2037F1B
+_08074270: .4byte gBattleAnimAttacker
+_08074274: .4byte gBattleAnimTarget
_08074278:
ldrb r0, [r7]
_0807427A:
@@ -3946,11 +3946,11 @@ sub_8074320: @ 8074320
lsls r0, 24
cmp r0, 0
beq _080743C2
- ldr r6, _08074368 @ =gUnknown_2037F1A
+ ldr r6, _08074368 @ =gBattleAnimAttacker
ldrb r0, [r6]
bl GetBattlerSide
adds r4, r0, 0
- ldr r5, _0807436C @ =gUnknown_2037F1B
+ ldr r5, _0807436C @ =gBattleAnimTarget
ldrb r0, [r5]
bl GetBattlerSide
lsls r4, 24
@@ -3967,8 +3967,8 @@ sub_8074320: @ 8074320
b _0807437C
.align 2, 0
_08074364: .4byte gUnknown_2037ED4
-_08074368: .4byte gUnknown_2037F1A
-_0807436C: .4byte gUnknown_2037F1B
+_08074368: .4byte gBattleAnimAttacker
+_0807436C: .4byte gBattleAnimTarget
_08074370:
ldrb r0, [r5]
bl sub_80768B0
@@ -4028,11 +4028,11 @@ sub_80743C8: @ 80743C8
lsls r0, 24
cmp r0, 0
beq _0807444C
- ldr r6, _08074410 @ =gUnknown_2037F1A
+ ldr r6, _08074410 @ =gBattleAnimAttacker
ldrb r0, [r6]
bl GetBattlerSide
adds r4, r0, 0
- ldr r5, _08074414 @ =gUnknown_2037F1B
+ ldr r5, _08074414 @ =gBattleAnimTarget
ldrb r0, [r5]
bl GetBattlerSide
lsls r4, 24
@@ -4049,8 +4049,8 @@ sub_80743C8: @ 80743C8
b _08074424
.align 2, 0
_0807440C: .4byte gUnknown_2037ED4
-_08074410: .4byte gUnknown_2037F1A
-_08074414: .4byte gUnknown_2037F1B
+_08074410: .4byte gBattleAnimAttacker
+_08074414: .4byte gBattleAnimTarget
_08074418:
ldrb r0, [r5]
bl sub_80768B0
diff --git a/asm/battle_anim_80989F8.s b/asm/battle_anim_80989F8.s
deleted file mode 100644
index 41dc60f9f..000000000
--- a/asm/battle_anim_80989F8.s
+++ /dev/null
@@ -1,2588 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80989F8
-sub_80989F8: @ 80989F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _08098A18 @ =gUnknown_2037F02
- ldrb r0, [r4]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _08098A1C
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _08098A58
- .align 2, 0
-_08098A18: .4byte gUnknown_2037F02
-_08098A1C:
- ldr r1, _08098A60 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _08098A64 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x8]
- ldrh r1, [r4, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _08098A68 @ =sub_8098A6C
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_08098A58:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08098A60: .4byte gSprites
-_08098A64: .4byte gTasks
-_08098A68: .4byte sub_8098A6C
- thumb_func_end sub_80989F8
-
- thumb_func_start sub_8098A6C
-sub_8098A6C: @ 8098A6C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08098AA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xE]
- movs r2, 0xE
- ldrsh r5, [r3, r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _08098B12
- ldr r2, _08098AAC @ =gSprites
- movs r6, 0x8
- ldrsh r1, [r3, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r6, 0x24
- ldrsh r0, [r1, r6]
- adds r6, r2, 0
- cmp r0, 0
- bne _08098AB0
- ldrh r0, [r3, 0x10]
- strh r0, [r1, 0x24]
- b _08098AB2
- .align 2, 0
-_08098AA8: .4byte gTasks
-_08098AAC: .4byte gSprites
-_08098AB0:
- strh r5, [r1, 0x24]
-_08098AB2:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r7
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- movs r5, 0x26
- ldrsh r0, [r1, r5]
- cmp r0, 0
- bne _08098AD2
- ldrh r0, [r3, 0x12]
- b _08098AD4
-_08098AD2:
- movs r0, 0
-_08098AD4:
- strh r0, [r1, 0x26]
- adds r0, r2, r4
- lsls r0, 3
- adds r2, r0, r7
- ldrh r0, [r2, 0xC]
- strh r0, [r2, 0xE]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _08098B16
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x24]
- movs r5, 0x8
- ldrsh r1, [r2, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x26]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _08098B16
-_08098B12:
- subs r0, 0x1
- strh r0, [r3, 0xE]
-_08098B16:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8098A6C
-
- thumb_func_start sub_8098B1C
-sub_8098B1C: @ 8098B1C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08098B44 @ =gUnknown_2037F02
- ldrh r0, [r2]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x3
- bgt _08098B48
- lsls r0, 24
- lsrs r0, 24
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _08098B9E
- b _08098BA2
- .align 2, 0
-_08098B44: .4byte gUnknown_2037F02
-_08098B48:
- cmp r1, 0x8
- beq _08098B94
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x5
- beq _08098B68
- cmp r0, 0x5
- bgt _08098B5E
- cmp r0, 0x4
- beq _08098B64
- b _08098B70
-_08098B5E:
- cmp r0, 0x6
- beq _08098B6C
- b _08098B70
-_08098B64:
- movs r0, 0
- b _08098B72
-_08098B68:
- movs r0, 0x2
- b _08098B72
-_08098B6C:
- movs r0, 0x1
- b _08098B72
-_08098B70:
- movs r0, 0x3
-_08098B72:
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- bne _08098B88
- movs r6, 0x1
-_08098B88:
- ldr r0, _08098B90 @ =gUnknown_2023D44
- adds r0, r4, r0
- b _08098B9C
- .align 2, 0
-_08098B90: .4byte gUnknown_2023D44
-_08098B94:
- ldr r1, _08098BAC @ =gUnknown_2023D44
- ldr r0, _08098BB0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- adds r0, r1
-_08098B9C:
- ldrb r3, [r0]
-_08098B9E:
- cmp r6, 0
- beq _08098BB4
-_08098BA2:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _08098BF2
- .align 2, 0
-_08098BAC: .4byte gUnknown_2023D44
-_08098BB0: .4byte gUnknown_2037F1A
-_08098BB4:
- ldr r1, _08098BF8 @ =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldr r2, _08098BFC @ =gUnknown_2037F02
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _08098C00 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x8]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _08098C04 @ =sub_8098C08
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_08098BF2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098BF8: .4byte gSprites
-_08098BFC: .4byte gUnknown_2037F02
-_08098C00: .4byte gTasks
-_08098C04: .4byte sub_8098C08
- thumb_func_end sub_8098B1C
-
- thumb_func_start sub_8098C08
-sub_8098C08: @ 8098C08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08098C4C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _08098CC0
- ldr r2, _08098C50 @ =gSprites
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- ldrh r5, [r3, 0x10]
- movs r7, 0x10
- ldrsh r0, [r3, r7]
- adds r7, r2, 0
- cmp r1, r0
- bne _08098C54
- negs r0, r5
- strh r0, [r4, 0x24]
- b _08098C56
- .align 2, 0
-_08098C4C: .4byte gTasks
-_08098C50: .4byte gSprites
-_08098C54:
- strh r5, [r4, 0x24]
-_08098C56:
- lsls r3, r6, 2
- adds r1, r3, r6
- lsls r1, 3
- add r1, r12
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r7
- movs r0, 0x26
- ldrsh r2, [r4, r0]
- mov r8, r2
- ldrh r5, [r1, 0x12]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r8, r0
- bne _08098C80
- negs r0, r5
- strh r0, [r4, 0x26]
- b _08098C82
-_08098C80:
- strh r5, [r4, 0x26]
-_08098C82:
- adds r0, r3, r6
- lsls r0, 3
- mov r4, r12
- adds r3, r0, r4
- ldrh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08098CC4
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x24]
- movs r4, 0x8
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _08098CC4
-_08098CC0:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_08098CC4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8098C08
-
- thumb_func_start sub_8098CD0
-sub_8098CD0: @ 8098CD0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _08098CF0 @ =gUnknown_2037F02
- ldrb r0, [r4]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _08098CF4
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _08098D42
- .align 2, 0
-_08098CF0: .4byte gUnknown_2037F02
-_08098CF4:
- ldr r0, _08098D48 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x2]
- ldrh r2, [r1, 0x24]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x4]
- ldrh r6, [r1, 0x26]
- adds r0, r6
- strh r0, [r1, 0x26]
- ldr r0, _08098D4C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- strh r3, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r1, 0xC]
- strh r2, [r1, 0xE]
- ldrh r0, [r4, 0x8]
- strh r0, [r1, 0x10]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- lsls r0, 1
- strh r0, [r1, 0x12]
- movs r6, 0x4
- ldrsh r0, [r4, r6]
- lsls r0, 1
- strh r0, [r1, 0x14]
- ldr r2, _08098D50 @ =sub_8098D54
- str r2, [r1]
- adds r0, r5, 0
- bl _call_via_r2
-_08098D42:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098D48: .4byte gSprites
-_08098D4C: .4byte gTasks
-_08098D50: .4byte sub_8098D54
- thumb_func_end sub_8098CD0
-
- thumb_func_start sub_8098D54
-sub_8098D54: @ 8098D54
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08098DAC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- adds r6, r1, 0
- cmp r0, 0
- beq _08098D72
- b _08098E84
-_08098D72:
- ldrh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08098DB4
- ldr r2, _08098DB0 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r3, [r0, 0x24]
- adds r1, r3
- strh r1, [r0, 0x24]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x14]
- ldrh r3, [r0, 0x26]
- adds r1, r3
- strh r1, [r0, 0x26]
- adds r3, r2, 0
- b _08098DDE
- .align 2, 0
-_08098DAC: .4byte gTasks
-_08098DB0: .4byte gSprites
-_08098DB4:
- ldr r3, _08098E40 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- ldrh r2, [r4, 0x14]
- subs r1, r2
- strh r1, [r0, 0x26]
-_08098DDE:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r0, [r4, 0x10]
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0xA]
- adds r2, r0, 0x1
- strh r2, [r4, 0xA]
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0xC
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _08098E88
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08098E44
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r6, [r1, 0x24]
- adds r0, r6
- strh r0, [r1, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r3, [r1, 0x26]
- adds r0, r3
- strh r0, [r1, 0x26]
- b _08098E7C
- .align 2, 0
-_08098E40: .4byte gSprites
-_08098E44:
- movs r6, 0x8
- ldrsh r0, [r4, r6]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x26]
- subs r0, r1
- strh r0, [r2, 0x26]
-_08098E7C:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _08098E88
-_08098E84:
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
-_08098E88:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8098D54
-
- thumb_func_start sub_8098E90
-sub_8098E90: @ 8098E90
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08098EE0 @ =gUnknown_2037F02
- ldrb r0, [r5]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08098EE4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r5, 0x2]
- strh r2, [r1, 0x24]
- ldr r2, _08098EE8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r1, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r1, 0x10]
- ldr r2, _08098EEC @ =sub_8098EF0
- str r2, [r1]
- adds r0, r4, 0
- bl _call_via_r2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08098EE0: .4byte gUnknown_2037F02
-_08098EE4: .4byte gSprites
-_08098EE8: .4byte gTasks
-_08098EEC: .4byte sub_8098EF0
- thumb_func_end sub_8098E90
-
- thumb_func_start sub_8098EF0
-sub_8098EF0: @ 8098EF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _08098F7C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrb r5, [r3, 0x8]
- ldrh r4, [r3, 0xA]
- ldrh r1, [r3, 0x18]
- adds r0, r1, 0x1
- strh r0, [r3, 0x18]
- movs r7, 0xC
- ldrsh r0, [r3, r7]
- lsls r1, 16
- asrs r1, 16
- mov r12, r2
- ldr r7, _08098F80 @ =gSprites
- cmp r0, r1
- bne _08098F42
- movs r0, 0
- strh r0, [r3, 0x18]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, r0, r7
- ldrh r3, [r1, 0x24]
- movs r0, 0x24
- ldrsh r2, [r1, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r2, r0
- bne _08098F3A
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_08098F3A:
- lsls r0, r4, 16
- asrs r0, 16
- adds r0, r3
- strh r0, [r1, 0x24]
-_08098F42:
- lsls r2, r6, 2
- adds r2, r6
- lsls r2, 3
- add r2, r12
- strh r4, [r2, 0xA]
- ldrh r1, [r2, 0xE]
- ldrh r0, [r2, 0x1A]
- adds r1, r0
- strh r1, [r2, 0x1A]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r7
- lsls r1, 16
- asrs r1, 24
- strh r1, [r0, 0x26]
- ldrh r0, [r2, 0x10]
- subs r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _08098F74
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08098F74:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098F7C: .4byte gTasks
-_08098F80: .4byte gSprites
- thumb_func_end sub_8098EF0
-
- thumb_func_start sub_8098F84
-sub_8098F84: @ 8098F84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x1
- ldr r4, _08098FF8 @ =gUnknown_2037F02
- ldrb r0, [r4]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _08098FA8
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_08098FA8:
- movs r1, 0
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- adds r3, r4, 0
- ldr r2, _08098FFC @ =gTasks
- mov r12, r2
- lsls r4, r5, 2
- ldr r2, _08099000 @ =sub_8099004
- mov r8, r2
- cmp r1, r0
- bge _08098FCE
- adds r2, r0, 0
-_08098FC0:
- lsls r0, r6, 25
- lsrs r6, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- blt _08098FC0
-_08098FCE:
- adds r0, r4, r5
- lsls r0, 3
- add r0, r12
- strh r7, [r0, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r1, r8
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098FF8: .4byte gUnknown_2037F02
-_08098FFC: .4byte gTasks
-_08099000: .4byte sub_8099004
- thumb_func_end sub_8098F84
-
- thumb_func_start sub_8099004
-sub_8099004: @ 8099004
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _08099074 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrb r4, [r5, 0x8]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r2, _08099078 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r4, r1, r2
- strh r0, [r4, 0x24]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x10]
- ldrh r1, [r5, 0x12]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- cmp r0, 0
- bne _0809905C
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
-_0809905C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0809906E
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0809906E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08099074: .4byte gTasks
-_08099078: .4byte gSprites
- thumb_func_end sub_8099004
-
- thumb_func_start sub_809907C
-sub_809907C: @ 809907C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080990A4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08099098
- ldr r1, _080990A8 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_08099098:
- adds r0, r4, 0
- bl sub_8098F84
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080990A4: .4byte gUnknown_2037F1A
-_080990A8: .4byte gUnknown_2037F02
- thumb_func_end sub_809907C
-
- thumb_func_start sub_80990AC
-sub_80990AC: @ 80990AC
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080990D4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080990DC
- ldr r1, _080990D8 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- b _080990E0
- .align 2, 0
-_080990D4: .4byte gUnknown_2037F1A
-_080990D8: .4byte gUnknown_2037F02
-_080990DC:
- ldr r1, _0809910C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
-_080990E0:
- strh r0, [r4, 0x30]
- ldrh r2, [r1]
- movs r0, 0
- strh r2, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r1, _08099110 @ =gUnknown_2023D44
- ldr r0, _08099114 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _08099118 @ =sub_8099120
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _0809911C @ =sub_8074DC4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809910C: .4byte gUnknown_2037F02
-_08099110: .4byte gUnknown_2023D44
-_08099114: .4byte gUnknown_2037F1A
-_08099118: .4byte sub_8099120
-_0809911C: .4byte sub_8074DC4
- thumb_func_end sub_80990AC
-
- thumb_func_start sub_8099120
-sub_8099120: @ 8099120
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x30]
- negs r1, r1
- strh r1, [r0, 0x30]
- ldr r1, _0809913C @ =sub_8074DC4
- str r1, [r0, 0x1C]
- ldr r1, _08099140 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_0809913C: .4byte sub_8074DC4
-_08099140: .4byte DestroyAnimSprite
- thumb_func_end sub_8099120
-
- thumb_func_start sub_8099144
-sub_8099144: @ 8099144
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r5, _08099184 @ =gUnknown_2037F02
- ldrb r0, [r5, 0x4]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r5]
- movs r1, 0
- strh r2, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldrh r1, [r5, 0x2]
- strh r1, [r4, 0x32]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _08099188 @ =sub_8099190
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _0809918C @ =sub_8074DC4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099184: .4byte gUnknown_2037F02
-_08099188: .4byte sub_8099190
-_0809918C: .4byte sub_8074DC4
- thumb_func_end sub_8099144
-
- thumb_func_start sub_8099190
-sub_8099190: @ 8099190
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x32]
- negs r1, r1
- strh r1, [r0, 0x32]
- ldr r1, _080991AC @ =sub_8074DC4
- str r1, [r0, 0x1C]
- ldr r1, _080991B0 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080991AC: .4byte sub_8074DC4
-_080991B0: .4byte DestroyAnimSprite
- thumb_func_end sub_8099190
-
- thumb_func_start sub_80991B4
-sub_80991B4: @ 80991B4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _080991CC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080991D8
- ldr r1, _080991D0 @ =gUnknown_2023D44
- ldr r0, _080991D4 @ =gUnknown_2037F1A
- b _080991DC
- .align 2, 0
-_080991CC: .4byte gUnknown_2037F02
-_080991D0: .4byte gUnknown_2023D44
-_080991D4: .4byte gUnknown_2037F1A
-_080991D8:
- ldr r1, _0809923C @ =gUnknown_2023D44
- ldr r0, _08099240 @ =gUnknown_2037F1B
-_080991DC:
- ldrb r0, [r0]
- adds r0, r1
- ldrb r7, [r0]
- ldr r5, _08099244 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x4]
- movs r3, 0
- strh r0, [r6, 0x2E]
- ldr r0, _08099248 @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x20]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x22]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- str r3, [sp]
- bl sub_80754B8
- ldr r3, [sp]
- strh r3, [r6, 0x34]
- strh r3, [r6, 0x36]
- ldrh r0, [r4, 0x24]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x26]
- strh r0, [r6, 0x3A]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _0809924C
- strh r3, [r6, 0x32]
- b _08099252
- .align 2, 0
-_0809923C: .4byte gUnknown_2023D44
-_08099240: .4byte gUnknown_2037F1B
-_08099244: .4byte gUnknown_2037F02
-_08099248: .4byte gSprites
-_0809924C:
- cmp r0, 0x2
- bne _08099252
- strh r3, [r6, 0x30]
-_08099252:
- ldr r0, _08099268 @ =gUnknown_2037F02
- ldrh r1, [r0, 0x2]
- lsls r0, r7, 8
- orrs r0, r1
- strh r0, [r6, 0x3C]
- ldr r0, _0809926C @ =sub_8099270
- str r0, [r6, 0x1C]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099268: .4byte gUnknown_2037F02
-_0809926C: .4byte sub_8099270
- thumb_func_end sub_80991B4
-
- thumb_func_start sub_8099270
-sub_8099270: @ 8099270
- push {r4-r6,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3C]
- lsls r1, r0, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- lsls r0, 16
- asrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080992AC @ =gSprites
- adds r3, r1, r0
- ldrh r0, [r2, 0x2E]
- movs r6, 0x2E
- ldrsh r1, [r2, r6]
- cmp r1, 0
- bne _080992B0
- cmp r4, 0x1
- bhi _0809929A
- strh r1, [r3, 0x24]
-_0809929A:
- cmp r5, 0x2
- beq _080992A2
- cmp r5, 0
- bne _080992A4
-_080992A2:
- strh r1, [r3, 0x26]
-_080992A4:
- adds r0, r2, 0
- bl DestroyAnimSprite
- b _080992DA
- .align 2, 0
-_080992AC: .4byte gSprites
-_080992B0:
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- adds r1, r0
- strh r1, [r2, 0x34]
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r0, r4
- strh r0, [r2, 0x36]
- lsls r1, 16
- asrs r1, 24
- ldrh r6, [r2, 0x38]
- adds r1, r6
- strh r1, [r3, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r2, 0x3A]
- adds r0, r2
- strh r0, [r3, 0x26]
-_080992DA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8099270
-
- thumb_func_start sub_80992E0
-sub_80992E0: @ 80992E0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080992F4 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080992FC
- ldr r0, _080992F8 @ =gUnknown_2037F1A
- b _080992FE
- .align 2, 0
-_080992F4: .4byte gUnknown_2037F02
-_080992F8: .4byte gUnknown_2037F1A
-_080992FC:
- ldr r0, _0809937C @ =gUnknown_2037F1B
-_080992FE:
- ldrb r2, [r0]
- ldr r0, _08099380 @ =gUnknown_2023D44
- adds r0, r2, r0
- ldrb r6, [r0]
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08099328
- ldr r1, _08099384 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _08099328
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_08099328:
- ldr r2, _08099384 @ =gUnknown_2037F02
- ldrh r0, [r2, 0x8]
- movs r4, 0
- strh r0, [r5, 0x2E]
- ldr r0, _08099388 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x2]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x22]
- strh r0, [r5, 0x34]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80754B8
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- strh r6, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0809938C @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _08099390 @ =sub_8074E14
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809937C: .4byte gUnknown_2037F1B
-_08099380: .4byte gUnknown_2023D44
-_08099384: .4byte gUnknown_2037F02
-_08099388: .4byte gSprites
-_0809938C: .4byte DestroyAnimSprite
-_08099390: .4byte sub_8074E14
- thumb_func_end sub_80992E0
-
- thumb_func_start sub_8099394
-sub_8099394: @ 8099394
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080993B4 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080993BC
- ldr r0, _080993B8 @ =gUnknown_2037F1A
- b _080993BE
- .align 2, 0
-_080993B4: .4byte gUnknown_2037F02
-_080993B8: .4byte gUnknown_2037F1A
-_080993BC:
- ldr r0, _0809943C @ =gUnknown_2037F1B
-_080993BE:
- ldrb r1, [r0]
- ldr r0, _08099440 @ =gUnknown_2023D44
- adds r0, r1, r0
- ldrb r7, [r0]
- adds r0, r1, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080993E8
- ldr r1, _08099444 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080993E8
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080993E8:
- ldr r5, _08099444 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r0, _08099448 @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r6, 0x34]
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl sub_80754B8
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x26]
- lsls r0, 8
- strh r0, [r6, 0x36]
- strh r7, [r6, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r6, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bne _08099450
- ldr r1, _0809944C @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- b _08099458
- .align 2, 0
-_0809943C: .4byte gUnknown_2037F1B
-_08099440: .4byte gUnknown_2023D44
-_08099444: .4byte gUnknown_2037F02
-_08099448: .4byte gSprites
-_0809944C: .4byte DestroyAnimSprite
-_08099450:
- ldr r1, _08099464 @ =sub_809946C
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
-_08099458:
- ldr r0, _08099468 @ =sub_8074E14
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099464: .4byte sub_809946C
-_08099468: .4byte sub_8074E14
- thumb_func_end sub_8099394
-
- thumb_func_start sub_809946C
-sub_809946C: @ 809946C
- push {r4,lr}
- ldr r4, _08099498 @ =gSprites
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- movs r3, 0
- strh r3, [r1, 0x24]
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r3, [r1, 0x26]
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099498: .4byte gSprites
- thumb_func_end sub_809946C
-
- thumb_func_start sub_809949C
-sub_809949C: @ 809949C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08099520 @ =gUnknown_2037F02
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _08099524 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080994CE
- ldrh r0, [r5, 0x2]
- negs r0, r0
- strh r0, [r5, 0x2]
- ldrh r0, [r5, 0xA]
- negs r0, r0
- strh r0, [r5, 0xA]
-_080994CE:
- ldrb r0, [r5]
- bl GetAnimBankSpriteId
- ldr r1, _08099528 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- strh r7, [r4, 0x16]
- ldr r0, _0809952C @ =sub_8099530
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099520: .4byte gUnknown_2037F02
-_08099524: .4byte gUnknown_2037F1A
-_08099528: .4byte gTasks
-_0809952C: .4byte sub_8099530
- thumb_func_end sub_809949C
-
- thumb_func_start sub_8099530
-sub_8099530: @ 8099530
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08099588 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r1, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- ldrh r2, [r5, 0x1E]
- adds r0, r2
- strh r0, [r5, 0x1E]
- ldr r2, _0809958C @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r2
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x1C]
- lsrs r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x16]
- ldrh r1, [r5, 0x1C]
- adds r0, r1
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _08099580
- ldr r0, _08099590 @ =sub_8099594
- str r0, [r5]
-_08099580:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099588: .4byte gTasks
-_0809958C: .4byte gSprites
-_08099590: .4byte sub_8099594
- thumb_func_end sub_8099530
-
- thumb_func_start sub_8099594
-sub_8099594: @ 8099594
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080995B8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080995BC
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- b _080995F0
- .align 2, 0
-_080995B8: .4byte gTasks
-_080995BC:
- ldrb r0, [r4, 0x8]
- ldrh r2, [r4, 0x12]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldr r3, _080995F8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 24
- adds r2, r0
- strh r2, [r1, 0x24]
- ldrh r0, [r4, 0x14]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080995F0
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080995F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080995F8: .4byte gSprites
- thumb_func_end sub_8099594
-
- thumb_func_start sub_80995FC
-sub_80995FC: @ 80995FC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08099620 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _0809962A
- cmp r0, 0x2
- bgt _08099624
- cmp r0, 0
- blt _0809965C
- ldrb r0, [r1]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- b _08099664
- .align 2, 0
-_08099620: .4byte gUnknown_2037F02
-_08099624:
- cmp r0, 0x3
- beq _08099634
- b _0809965C
-_0809962A:
- ldr r5, _08099630 @ =gUnknown_2037F1A
- b _08099636
- .align 2, 0
-_08099630: .4byte gUnknown_2037F1A
-_08099634:
- ldr r5, _08099654 @ =gUnknown_2037F1B
-_08099636:
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _0809965C
- ldr r1, _08099658 @ =gUnknown_2023D44
- ldrb r0, [r5]
- eors r0, r4
- adds r0, r1
- ldrb r2, [r0]
- b _08099664
- .align 2, 0
-_08099654: .4byte gUnknown_2037F1B
-_08099658: .4byte gUnknown_2023D44
-_0809965C:
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080996A4
-_08099664:
- ldr r1, _08099684 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- strh r2, [r5, 0x8]
- ldr r0, _08099688 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08099690
- ldr r0, _0809968C @ =gUnknown_2037F02
- ldrh r0, [r0, 0x2]
- b _08099696
- .align 2, 0
-_08099684: .4byte gTasks
-_08099688: .4byte gUnknown_2037F1B
-_0809968C: .4byte gUnknown_2037F02
-_08099690:
- ldr r0, _080996AC @ =gUnknown_2037F02
- ldrh r0, [r0, 0x2]
- negs r0, r0
-_08099696:
- strh r0, [r5, 0xA]
- ldr r0, _080996B0 @ =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080996B4 @ =sub_80996B8
- str r0, [r1]
-_080996A4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080996AC: .4byte gUnknown_2037F02
-_080996B0: .4byte gTasks
-_080996B4: .4byte sub_80996B8
- thumb_func_end sub_80995FC
-
- thumb_func_start sub_80996B8
-sub_80996B8: @ 80996B8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080996FC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r2, [r1, 0x8]
- ldr r3, _08099700 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r1, 0xA]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _080996F6
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080996F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080996FC: .4byte gTasks
-_08099700: .4byte gSprites
- thumb_func_end sub_80996B8
-
- thumb_func_start sub_8099704
-sub_8099704: @ 8099704
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08099754 @ =gUnknown_2037F1A
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08099720
- ldr r1, _08099758 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_08099720:
- ldr r4, _08099758 @ =gUnknown_2037F02
- ldrb r0, [r4, 0x8]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809975C @ =gTasks
- lsls r3, r5, 2
- adds r1, r3, r5
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r4]
- strh r1, [r2, 0x8]
- ldrh r1, [r4, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r4, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r4, 0x6]
- strh r1, [r2, 0xE]
- strh r0, [r2, 0x10]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08099760
- ldrb r0, [r6]
- b _08099764
- .align 2, 0
-_08099754: .4byte gUnknown_2037F1A
-_08099758: .4byte gUnknown_2037F02
-_0809975C: .4byte gTasks
-_08099760:
- ldr r0, _0809977C @ =gUnknown_2037F1B
- ldrb r0, [r0]
-_08099764:
- strh r0, [r2, 0x12]
- ldr r1, _08099780 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r1, _08099784 @ =sub_8099788
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809977C: .4byte gUnknown_2037F1B
-_08099780: .4byte gTasks
-_08099784: .4byte sub_8099788
- thumb_func_end sub_8099704
-
- thumb_func_start sub_8099788
-sub_8099788: @ 8099788
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080997D8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrb r7, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- lsls r1, r0, 16
- strh r0, [r4, 0x1C]
- lsrs r1, 24
- mov r8, r1
- mov r0, r8
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- lsrs r5, r0, 16
- mov r9, r5
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080997E0
- ldr r0, _080997DC @ =gSprites
- lsls r2, r7, 4
- adds r1, r2, r7
- lsls r1, 2
- adds r1, r0
- strh r5, [r1, 0x24]
- mov r9, r0
- adds r4, r2, 0
- b _08099826
- .align 2, 0
-_080997D8: .4byte gTasks
-_080997DC: .4byte gSprites
-_080997E0:
- ldrb r0, [r4, 0x12]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08099808
- ldr r1, _08099804 @ =gSprites
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- lsls r0, r5, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _08099824
- b _08099822
- .align 2, 0
-_08099804: .4byte gSprites
-_08099808:
- ldr r1, _080998A8 @ =gSprites
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- mov r4, r9
- lsls r0, r4, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _08099822
- negs r0, r0
-_08099822:
- negs r0, r0
-_08099824:
- strh r0, [r3, 0x26]
-_08099826:
- mov r5, r8
- cmp r5, 0x7F
- bls _08099848
- ldr r1, _080998AC @ =gTasks
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0
- bne _08099848
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _0809986A
-_08099848:
- mov r2, r8
- cmp r2, 0x7E
- bhi _0809989C
- ldr r1, _080998AC @ =gTasks
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0x1
- bne _0809989C
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _0809989C
-_0809986A:
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x1E]
- movs r2, 0x1
- eors r0, r2
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- eors r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _0809989C
- adds r0, r4, r7
- lsls r0, 2
- add r0, r9
- strh r3, [r0, 0x24]
- strh r3, [r0, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0809989C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080998A8: .4byte gSprites
-_080998AC: .4byte gTasks
- thumb_func_end sub_8099788
-
- thumb_func_start sub_80998B0
-sub_80998B0: @ 80998B0
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _080998FC @ =gUnknown_2037F02
- ldrb r0, [r6, 0x6]
- bl GetAnimBankSpriteId
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r1, [r6, 0x8]
- adds r0, r5, 0
- bl sub_80758E0
- ldr r1, _08099900 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r6]
- strh r1, [r0, 0x8]
- ldrh r1, [r6, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xE]
- strh r5, [r0, 0x10]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1C]
- strh r1, [r0, 0x1E]
- ldr r1, _08099904 @ =sub_8099908
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080998FC: .4byte gUnknown_2037F02
-_08099900: .4byte gTasks
-_08099904: .4byte sub_8099908
- thumb_func_end sub_80998B0
-
- thumb_func_start sub_8099908
-sub_8099908: @ 8099908
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _08099968 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xA]
- ldrh r3, [r4, 0x1E]
- adds r0, r3
- strh r0, [r4, 0x1E]
- ldrb r0, [r4, 0x10]
- adds r6, r0, 0
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- movs r3, 0x1E
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _08099978
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- ble _0809996C
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- negs r0, r0
- strh r0, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r1, [r4, 0xE]
- b _08099978
- .align 2, 0
-_08099968: .4byte gTasks
-_0809996C:
- adds r0, r6, 0
- bl sub_8075980
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08099978:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8099908
-
- thumb_func_start sub_8099980
-sub_8099980: @ 8099980
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _080999BC @ =gUnknown_2037F02
- ldrb r0, [r4, 0x4]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_80758E0
- ldr r1, _080999C0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2, 0xA]
- ldrh r0, [r4]
- strh r0, [r2, 0xC]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- beq _080999C4
- strh r1, [r2, 0xE]
- b _080999D0
- .align 2, 0
-_080999BC: .4byte gUnknown_2037F02
-_080999C0: .4byte gTasks
-_080999C4:
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r3, r0, 0
- muls r3, r1
- adds r0, r3, 0
- strh r0, [r2, 0xE]
-_080999D0:
- ldr r1, _080999FC @ =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r6, _08099A00 @ =gUnknown_2037F02
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x10]
- mov r0, r8
- strh r0, [r5, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x14]
- bl sub_8073788
- lsls r0, 24
- mov r8, r4
- cmp r0, 0
- beq _08099A04
- movs r0, 0x1
- strh r0, [r5, 0x16]
- b _08099A28
- .align 2, 0
-_080999FC: .4byte gTasks
-_08099A00: .4byte gUnknown_2037F02
-_08099A04:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08099A14
- ldr r0, _08099A10 @ =gUnknown_2037F1A
- b _08099A16
- .align 2, 0
-_08099A10: .4byte gUnknown_2037F1A
-_08099A14:
- ldr r0, _08099A6C @ =gUnknown_2037F1B
-_08099A16:
- ldrb r0, [r0]
- bl GetBattlerSide
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _08099A26
- movs r1, 0x1
-_08099A26:
- strh r1, [r5, 0x16]
-_08099A28:
- ldr r0, _08099A70 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r4, r1, r0
- movs r3, 0x16
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08099A54
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _08099A54
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xE]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
-_08099A54:
- ldr r0, _08099A70 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _08099A74 @ =sub_8099B54
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099A6C: .4byte gUnknown_2037F1B
-_08099A70: .4byte gTasks
-_08099A74: .4byte sub_8099B54
- thumb_func_end sub_8099980
-
- thumb_func_start sub_8099A78
-sub_8099A78: @ 8099A78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _08099AB4 @ =gUnknown_2037F02
- ldrb r0, [r4, 0x4]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_80758E0
- ldr r1, _08099AB8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldrh r1, [r4]
- strh r1, [r0, 0xC]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08099AC0
- ldr r0, _08099ABC @ =gUnknown_2037F1A
- b _08099AC2
- .align 2, 0
-_08099AB4: .4byte gUnknown_2037F02
-_08099AB8: .4byte gTasks
-_08099ABC: .4byte gUnknown_2037F1A
-_08099AC0:
- ldr r0, _08099AF0 @ =gUnknown_2037F1B
-_08099AC2:
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08099AD4
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_08099AD4:
- ldr r0, _08099AF4 @ =gUnknown_2037F02
- movs r2, 0x6
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0x1
- beq _08099AFC
- ldr r2, _08099AF8 @ =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0xE]
- b _08099B16
- .align 2, 0
-_08099AF0: .4byte gUnknown_2037F1B
-_08099AF4: .4byte gUnknown_2037F02
-_08099AF8: .4byte gTasks
-_08099AFC:
- ldr r3, _08099B4C @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r3
- ldrh r2, [r6]
- ldrh r1, [r6, 0x2]
- adds r7, r2, 0
- muls r7, r1
- adds r1, r7, 0
- strh r1, [r0, 0xE]
- adds r2, r3, 0
- adds r3, r4, 0
-_08099B16:
- adds r1, r3, r5
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r6, 0x2]
- strh r0, [r1, 0x10]
- mov r0, r8
- strh r0, [r1, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r1, 0x14]
- movs r0, 0x1
- strh r0, [r1, 0x16]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0xE]
- movs r7, 0x10
- ldrsh r0, [r1, r7]
- negs r0, r0
- strh r0, [r1, 0x10]
- ldr r0, _08099B50 @ =sub_8099B54
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099B4C: .4byte gTasks
-_08099B50: .4byte sub_8099B54
- thumb_func_end sub_8099A78
-
- thumb_func_start sub_8099B54
-sub_8099B54: @ 8099B54
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08099BAC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrb r0, [r4, 0x12]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xE]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08099B88
- ldrb r0, [r4, 0x12]
- bl sub_80759DC
-_08099B88:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _08099BCE
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08099BB0
- cmp r0, 0x1
- ble _08099BB6
- cmp r0, 0x2
- beq _08099BBE
- b _08099BB6
- .align 2, 0
-_08099BAC: .4byte gTasks
-_08099BB0:
- ldrb r0, [r4, 0x12]
- bl sub_8075980
-_08099BB6:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _08099BCE
-_08099BBE:
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_08099BCE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8099B54
-
- thumb_func_start sub_8099BD4
-sub_8099BD4: @ 8099BD4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08099C00 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r8, r0
- cmp r1, 0
- bne _08099C0C
- ldr r4, _08099C04 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _08099C08 @ =gUnknown_2037EEC
- ldrh r0, [r0]
- movs r1, 0xC
- bl __udivsi3
- b _08099C20
- .align 2, 0
-_08099C00: .4byte gUnknown_2037F02
-_08099C04: .4byte gTasks
-_08099C08: .4byte gUnknown_2037EEC
-_08099C0C:
- ldr r4, _08099CA8 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _08099CAC @ =gUnknown_2037EE8
- ldr r0, [r0]
- movs r1, 0xC
- bl __divsi3
-_08099C20:
- strh r0, [r6, 0x26]
- lsls r0, 16
- adds r1, r4, 0
- cmp r0, 0
- bgt _08099C2E
- movs r0, 0x1
- strh r0, [r6, 0x26]
-_08099C2E:
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- cmp r0, 0x10
- ble _08099C3A
- movs r0, 0x10
- strh r0, [r6, 0x26]
-_08099C3A:
- adds r4, r5, r7
- lsls r4, 3
- adds r4, r1
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- movs r5, 0
- strh r1, [r4, 0x24]
- ldrh r2, [r4, 0x26]
- movs r0, 0x1
- ands r0, r2
- adds r1, r0
- strh r1, [r4, 0x22]
- strh r5, [r4, 0x20]
- mov r1, r8
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x1E]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r2, _08099CB0 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x18]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x1A]
- strh r5, [r4, 0x8]
- mov r1, r8
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _08099CB4 @ =sub_8099CB8
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099CA8: .4byte gTasks
-_08099CAC: .4byte gUnknown_2037EE8
-_08099CB0: .4byte gSprites
-_08099CB4: .4byte sub_8099CB8
- thumb_func_end sub_8099BD4
-
- thumb_func_start sub_8099CB8
-sub_8099CB8: @ 8099CB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08099D0C @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _08099D96
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0x20]
- adds r1, r0, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x20]
- movs r2, 0x1C
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _08099D2A
- cmp r1, 0
- beq _08099D14
- ldr r2, _08099D10 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x18]
- adds r1, r2
- b _08099D28
- .align 2, 0
-_08099D0C: .4byte gTasks
-_08099D10: .4byte gSprites
-_08099D14:
- ldr r2, _08099D50 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x18]
- ldrh r2, [r3, 0x24]
- subs r1, r2
-_08099D28:
- strh r1, [r0, 0x24]
-_08099D2A:
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08099D64
- movs r2, 0x20
- ldrsh r4, [r3, r2]
- cmp r4, 0
- beq _08099D54
- ldr r2, _08099D50 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x26]
- strh r1, [r0, 0x26]
- b _08099D64
- .align 2, 0
-_08099D50: .4byte gSprites
-_08099D54:
- ldr r2, _08099D9C @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
-_08099D64:
- ldrh r0, [r3, 0xC]
- subs r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- bne _08099D96
- ldr r2, _08099D9C @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x24]
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08099D96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099D9C: .4byte gSprites
- thumb_func_end sub_8099CB8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80A22E8.s b/asm/battle_anim_80A22E8.s
deleted file mode 100644
index e64654d57..000000000
--- a/asm/battle_anim_80A22E8.s
+++ /dev/null
@@ -1,55436 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A22E8
-sub_80A22E8: @ 80A22E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A231C @ =gUnknown_2037F02
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080A2320 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2324
- ldrh r0, [r5, 0x8]
- negs r0, r0
- b _080A2326
- .align 2, 0
-_080A231C: .4byte gUnknown_2037F02
-_080A2320: .4byte gUnknown_2037F1A
-_080A2324:
- ldrh r0, [r5, 0x8]
-_080A2326:
- strh r0, [r4, 0x34]
- ldr r0, _080A2338 @ =gUnknown_2037F02
- ldrh r0, [r0, 0xA]
- strh r0, [r4, 0x36]
- ldr r0, _080A233C @ =sub_80A2340
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2338: .4byte gUnknown_2037F02
-_080A233C: .4byte sub_80A2340
- thumb_func_end sub_80A22E8
-
- thumb_func_start sub_80A2340
-sub_80A2340: @ 80A2340
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A237C
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A2382
-_080A237C:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2382:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2340
-
- thumb_func_start sub_80A2388
-sub_80A2388: @ 80A2388
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080A23C8 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080A23CC @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A23D0 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080A23D4 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A23C8: .4byte gUnknown_2037F02
-_080A23CC: .4byte gUnknown_2037F1A
-_080A23D0: .4byte sub_8075590
-_080A23D4: .4byte move_anim_8074EE0
- thumb_func_end sub_80A2388
-
- thumb_func_start sub_80A23D8
-sub_80A23D8: @ 80A23D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080A2420 @ =gUnknown_2037F02
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080A2424 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A2428 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080A242C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2420: .4byte gUnknown_2037F02
-_080A2424: .4byte gUnknown_2037F1B
-_080A2428: .4byte sub_8075590
-_080A242C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A23D8
-
- thumb_func_start sub_80A2430
-sub_80A2430: @ 80A2430
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r6, _080A2480 @ =gUnknown_2037F02
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080A2484 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x38]
- ldr r1, _080A2488 @ =sub_80A248C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2480: .4byte gUnknown_2037F02
-_080A2484: .4byte gUnknown_2037F1B
-_080A2488: .4byte sub_80A248C
- thumb_func_end sub_80A2430
-
- thumb_func_start sub_80A248C
-sub_80A248C: @ 80A248C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A24A2
- adds r0, r4, 0
- bl DestroySprite
- b _080A24F6
-_080A24A2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080A24BC
- ldr r0, _080A24B8 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807685C
- adds r0, 0x1
- b _080A24C6
- .align 2, 0
-_080A24B8: .4byte gUnknown_2037F1B
-_080A24BC:
- ldr r0, _080A24FC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807685C
- adds r0, 0x6
-_080A24C6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0xF
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080A24F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A24FC: .4byte gUnknown_2037F1B
- thumb_func_end sub_80A248C
-
- thumb_func_start sub_80A2500
-sub_80A2500: @ 80A2500
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A2570 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- movs r2, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080A255A
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- movs r0, 0x6
- strh r0, [r5, 0x8]
- ldr r1, _080A2574 @ =gUnknown_2037F02
- movs r0, 0xF
- strh r0, [r1]
- strh r2, [r1, 0x2]
- movs r0, 0x50
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- ldr r4, _080A2578 @ =gUnknown_83E2A88
- ldr r0, _080A257C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807685C
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl CreateSpriteAndAnimate
-_080A255A:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- bne _080A2568
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A2568:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2570: .4byte gTasks
-_080A2574: .4byte gUnknown_2037F02
-_080A2578: .4byte gUnknown_83E2A88
-_080A257C: .4byte gUnknown_2037F1B
- thumb_func_end sub_80A2500
-
- thumb_func_start sub_80A2580
-sub_80A2580: @ 80A2580
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r6, _080A25C4 @ =gUnknown_2037F02
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x2E]
- ldr r5, _080A25C8 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_8075068
- ldr r0, _080A25CC @ =sub_80A25D0
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A25C4: .4byte gUnknown_2037F02
-_080A25C8: .4byte gUnknown_2037F1A
-_080A25CC: .4byte sub_80A25D0
- thumb_func_end sub_80A2580
-
- thumb_func_start sub_80A25D0
-sub_80A25D0: @ 80A25D0
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A25E4
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A25E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A25D0
-
- thumb_func_start sub_80A25EC
-sub_80A25EC: @ 80A25EC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x7
- ands r1, r0
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r4, _080A2634 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2638
- ldrh r0, [r5, 0x20]
- subs r0, 0x14
- b _080A263C
- .align 2, 0
-_080A2634: .4byte gUnknown_2037F1A
-_080A2638:
- ldrh r0, [r5, 0x20]
- adds r0, 0x14
-_080A263C:
- strh r0, [r5, 0x20]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- adds r0, 0x40
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080A269C @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8075804
- bl Random
- movs r1, 0xFF
- ands r1, r0
- strh r1, [r5, 0x38]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- strh r0, [r5, 0x3A]
- ldr r1, _080A26A0 @ =sub_80A26A4
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A269C: .4byte gUnknown_2037F1B
-_080A26A0: .4byte sub_80A26A4
- thumb_func_end sub_80A25EC
-
- thumb_func_start sub_80A26A4
-sub_80A26A4: @ 80A26A4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807578C
- lsls r0, 24
- cmp r0, 0
- beq _080A26BA
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080A26EA
-_080A26BA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7E
- bgt _080A26D6
- ldrh r0, [r4, 0x3A]
- b _080A26DA
-_080A26D6:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_080A26DA:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x18
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080A26EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A26A4
-
- thumb_func_start sub_80A26F0
-sub_80A26F0: @ 80A26F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080A2750 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2710
- ldr r1, _080A2754 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A2710:
- ldr r4, _080A2754 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080A2758 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_8075068
- ldr r0, _080A275C @ =sub_80A2760
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2750: .4byte gUnknown_2037F1A
-_080A2754: .4byte gUnknown_2037F02
-_080A2758: .4byte gUnknown_2037F1B
-_080A275C: .4byte sub_80A2760
- thumb_func_end sub_80A26F0
-
- thumb_func_start sub_80A2760
-sub_80A2760: @ 80A2760
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A278A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- ldr r0, _080A2790 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080A2794 @ =sub_80A2798
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080A278A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2790: .4byte sub_8074C44
-_080A2794: .4byte sub_80A2798
- thumb_func_end sub_80A2760
-
- thumb_func_start sub_80A2798
-sub_80A2798: @ 80A2798
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080A27C8 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080A27CC @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A27C8: .4byte sub_8074C44
-_080A27CC: .4byte DestroyAnimSprite
- thumb_func_end sub_80A2798
-
- thumb_func_start sub_80A27D0
-sub_80A27D0: @ 80A27D0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r5, _080A2814 @ =gUnknown_2037F02
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080A27FA
- ldrb r0, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080A27FA:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldr r1, _080A2818 @ =sub_80A281C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2814: .4byte gUnknown_2037F02
-_080A2818: .4byte sub_80A281C
- thumb_func_end sub_80A27D0
-
- thumb_func_start sub_80A281C
-sub_80A281C: @ 80A281C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x32]
- adds r1, 0x18
- strh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080A2870
- ldr r0, _080A286C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _080A2894
- .align 2, 0
-_080A286C: .4byte gUnknown_2037F1B
-_080A2870:
- ldr r0, _080A28C0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080A2884
- movs r2, 0x3
-_080A2884:
- movs r0, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
-_080A2894:
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080A28B8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A28B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A28C0: .4byte gUnknown_2037F1B
- thumb_func_end sub_80A281C
-
- thumb_func_start sub_80A28C4
-sub_80A28C4: @ 80A28C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A28DE
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- bne _080A28E6
-_080A28DE:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080A2918
-_080A28E6:
- ldr r0, _080A2904 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2908
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x3
- bl SetAnimBgAttribute
- b _080A2912
- .align 2, 0
-_080A2904: .4byte gUnknown_2037F1B
-_080A2908:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A2912:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A2918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A28C4
-
- thumb_func_start sub_80A2920
-sub_80A2920: @ 80A2920
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r5, _080A2968 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080A296C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080A2970 @ =sub_80A2974
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2968: .4byte gUnknown_2037F02
-_080A296C: .4byte gUnknown_2037F1A
-_080A2970: .4byte sub_80A2974
- thumb_func_end sub_80A2920
-
- thumb_func_start sub_80A2974
-sub_80A2974: @ 80A2974
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A29E0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080A29C0
- ldr r0, _080A29BC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- b _080A29CA
- .align 2, 0
-_080A29BC: .4byte gUnknown_2037F1A
-_080A29C0:
- ldr r0, _080A29DC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807685C
- adds r0, 0x1
-_080A29CA:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A29E6
- .align 2, 0
-_080A29DC: .4byte gUnknown_2037F1A
-_080A29E0:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A29E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2974
-
- thumb_func_start sub_80A29EC
-sub_80A29EC: @ 80A29EC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080A2A34 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080A2A38 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080A2A3C @ =sub_80A2A40
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A34: .4byte gUnknown_2037F02
-_080A2A38: .4byte gUnknown_2037F1A
-_080A2A3C: .4byte sub_80A2A40
- thumb_func_end sub_80A29EC
-
- thumb_func_start sub_80A2A40
-sub_80A2A40: @ 80A2A40
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A2A98
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x3B
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080A2A78
- adds r0, r1, 0
- subs r0, 0xBB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _080A2A8C
-_080A2A78:
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- eors r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
-_080A2A8C:
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A2A9E
-_080A2A98:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2A9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2A40
-
- thumb_func_start sub_80A2AA4
-sub_80A2AA4: @ 80A2AA4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A2AE0 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080A2AE4 @ =gUnknown_2037F02
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, _080A2AE8 @ =sub_80A2AEC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AE0: .4byte gUnknown_2037F1A
-_080A2AE4: .4byte gUnknown_2037F02
-_080A2AE8: .4byte sub_80A2AEC
- thumb_func_end sub_80A2AA4
-
- thumb_func_start sub_80A2AEC
-sub_80A2AEC: @ 80A2AEC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x32]
- movs r2, 0x32
- ldrsh r3, [r1, r2]
- cmp r3, 0
- bne _080A2B20
- ldrh r0, [r1, 0x30]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080A2B0E
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
- strh r3, [r1, 0x32]
- b _080A2B14
-_080A2B0E:
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
-_080A2B14:
- ldr r0, _080A2B1C @ =sub_80A2B38
- str r0, [r1, 0x1C]
- b _080A2B34
- .align 2, 0
-_080A2B1C: .4byte sub_80A2B38
-_080A2B20:
- subs r0, 0x1
- strh r0, [r1, 0x32]
- ldrh r0, [r1, 0x2E]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
-_080A2B34:
- pop {r0}
- bx r0
- thumb_func_end sub_80A2AEC
-
- thumb_func_start sub_80A2B38
-sub_80A2B38: @ 80A2B38
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A2B58 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2B5C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
- negs r0, r0
- b _080A2B66
- .align 2, 0
-_080A2B58: .4byte gUnknown_2037F1A
-_080A2B5C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
-_080A2B66:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A2B86
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
-_080A2B86:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080A2B94
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2B94:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B38
-
- thumb_func_start sub_80A2B9C
-sub_80A2B9C: @ 80A2B9C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080A2BF0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2BBC
- ldr r1, _080A2BF4 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A2BBC:
- ldr r6, _080A2BF4 @ =gUnknown_2037F02
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A2BFC
- ldr r4, _080A2BF8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- b _080A2C1C
- .align 2, 0
-_080A2BF0: .4byte gUnknown_2037F1A
-_080A2BF4: .4byte gUnknown_2037F02
-_080A2BF8: .4byte gUnknown_2037F1B
-_080A2BFC:
- ldr r0, _080A2C48 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_8076D9C
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
-_080A2C1C:
- strh r0, [r5, 0x36]
- ldr r0, _080A2C4C @ =gUnknown_2037F02
- ldrh r0, [r0, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_8075068
- ldr r0, _080A2C50 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080A2C48 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080A2C54
- movs r0, 0x1
- b _080A2C56
- .align 2, 0
-_080A2C48: .4byte gUnknown_2037F1B
-_080A2C4C: .4byte gUnknown_2037F02
-_080A2C50: .4byte gUnknown_2037F1A
-_080A2C54:
- movs r0, 0
-_080A2C56:
- strh r0, [r5, 0x2E]
- ldr r0, _080A2C64 @ =sub_80A2C68
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2C64: .4byte sub_80A2C68
- thumb_func_end sub_80A2B9C
-
- thumb_func_start sub_80A2C68
-sub_80A2C68: @ 80A2C68
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- ldrh r5, [r6, 0x2E]
- ldrh r4, [r6, 0x3C]
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- adds r0, r6, 0
- bl AnimateBallThrow
- ldrh r0, [r6, 0x3C]
- strh r5, [r6, 0x2E]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0xC8
- ble _080A2C9A
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- bgt _080A2C9A
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- bne _080A2CA0
- adds r0, 0x1
- strh r0, [r6, 0x6]
-_080A2C9A:
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- beq _080A2CD2
-_080A2CA0:
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080A2CD2
- adds r3, r6, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r6, 0x6]
- adds r0, 0x1
- strh r0, [r6, 0x6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bne _080A2CD2
- movs r7, 0x1
-_080A2CD2:
- movs r2, 0x20
- ldrsh r0, [r6, r2]
- movs r2, 0x24
- ldrsh r1, [r6, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080A2CFC
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080A2CFC
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080A2CFE
-_080A2CFC:
- movs r7, 0x1
-_080A2CFE:
- cmp r7, 0
- beq _080A2D08
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A2D08:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2C68
-
- thumb_func_start sub_80A2D10
-sub_80A2D10: @ 80A2D10
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A2D3C
- bl sub_8075290
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2D3C
- ldr r0, _080A2D64 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_8076D9C
-_080A2D3C:
- ldrh r0, [r4, 0x22]
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r1, _080A2D68 @ =gUnknown_2037F02
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x36]
- ldr r0, _080A2D6C @ =sub_80A2D70
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2D64: .4byte gUnknown_2037F1B
-_080A2D68: .4byte gUnknown_2037F02
-_080A2D6C: .4byte sub_80A2D70
- thumb_func_end sub_80A2D10
-
- thumb_func_start sub_80A2D70
-sub_80A2D70: @ 80A2D70
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bne _080A2D86
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- b _080A2D94
-_080A2D86:
- cmp r0, 0
- ble _080A2D94
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- subs r0, r1, 0x2
- strh r0, [r4, 0x30]
-_080A2D94:
- ldrh r3, [r4, 0x32]
- ldrh r5, [r4, 0x38]
- adds r2, r3, r5
- strh r2, [r4, 0x38]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r5, 0x36
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bge _080A2DAC
- adds r0, r2, r3
- strh r0, [r4, 0x38]
-_080A2DAC:
- ldrh r1, [r4, 0x38]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r5, 0x38
- ldrsh r0, [r4, r5]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080A2DEC
- ldr r0, _080A2DE8 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- b _080A2DFA
- .align 2, 0
-_080A2DE8: .4byte gUnknown_2037F1B
-_080A2DEC:
- ldr r0, _080A2E24 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
-_080A2DFA:
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080A2E1E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2E1E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E24: .4byte gUnknown_2037F1B
- thumb_func_end sub_80A2D70
-
- thumb_func_start sub_80A2E28
-sub_80A2E28: @ 80A2E28
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075114
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _080A2E5C @ =gUnknown_2037F02
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080A2E60 @ =sub_80A2E64
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E5C: .4byte gUnknown_2037F02
-_080A2E60: .4byte sub_80A2E64
- thumb_func_end sub_80A2E28
-
- thumb_func_start sub_80A2E64
-sub_80A2E64: @ 80A2E64
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A2E94 @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- ldr r0, _080A2E98 @ =0x0000ffff
- cmp r1, r0
- bne _080A2E8E
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x2E]
- ldr r0, _080A2E9C @ =sub_80A2EA0
- str r0, [r4, 0x1C]
-_080A2E8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E94: .4byte gUnknown_2037F02
-_080A2E98: .4byte 0x0000ffff
-_080A2E9C: .4byte sub_80A2EA0
- thumb_func_end sub_80A2E64
-
- thumb_func_start sub_80A2EA0
-sub_80A2EA0: @ 80A2EA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetAnimBankSpriteId
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A2EB8
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- b _080A2EBC
-_080A2EB8:
- ldrh r0, [r4, 0x2E]
- subs r0, 0xB
-_080A2EBC:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080A2ED8
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x32]
-_080A2ED8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A2F06
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- ble _080A2F00
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- b _080A2F06
-_080A2F00:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2F06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2EA0
-
- thumb_func_start sub_80A2F0C
-sub_80A2F0C: @ 80A2F0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A2F38 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080A2F3C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080A2F62
- .align 2, 0
-_080A2F38: .4byte gSprites
-_080A2F3C:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_80758E0
- ldr r1, _080A2F68 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A2F6C @ =gUnknown_2037F02
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1E]
- ldr r1, _080A2F70 @ =sub_80A2F74
- str r1, [r0]
-_080A2F62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2F68: .4byte gTasks
-_080A2F6C: .4byte gUnknown_2037F02
-_080A2F70: .4byte sub_80A2F74
- thumb_func_end sub_80A2F0C
-
- thumb_func_start sub_80A2F74
-sub_80A2F74: @ 80A2F74
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A2FF4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0
- strh r1, [r4, 0x1C]
- ldr r2, _080A2FF8 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r2
- lsls r1, 16
- asrs r1, 24
- strh r1, [r5, 0x24]
- ldr r0, _080A2FFC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2FBE
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080A2FBE:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x10
- strh r0, [r4, 0x1E]
- movs r0, 0x1E
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r6, 0
- bl sub_8076440
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080A2FEC
- strh r0, [r4, 0x8]
- ldr r0, _080A3000 @ =sub_80A3004
- str r0, [r4]
-_080A2FEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FF4: .4byte gTasks
-_080A2FF8: .4byte gSprites
-_080A2FFC: .4byte gUnknown_2037F1B
-_080A3000: .4byte sub_80A3004
- thumb_func_end sub_80A2F74
-
- thumb_func_start sub_80A3004
-sub_80A3004: @ 80A3004
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080A3050 @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- ldr r0, _080A3054 @ =0x0000ffff
- cmp r1, r0
- bne _080A3060
- ldr r0, _080A3058 @ =gTasks
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 3
- adds r6, r1, r0
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- adds r4, r0, 0
- cmp r5, 0
- bne _080A3074
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8075980
- ldr r1, _080A305C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r5, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080A308E
- .align 2, 0
-_080A3050: .4byte gUnknown_2037F02
-_080A3054: .4byte 0x0000ffff
-_080A3058: .4byte gTasks
-_080A305C: .4byte gSprites
-_080A3060:
- ldr r1, _080A3094 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _080A308E
-_080A3074:
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080A308E
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080A308E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3094: .4byte gTasks
- thumb_func_end sub_80A3004
-
- thumb_func_start sub_80A3098
-sub_80A3098: @ 80A3098
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A30AA
- cmp r0, 0x1
- beq _080A3104
- b _080A3156
-_080A30AA:
- ldr r6, _080A30FC @ =gUnknown_2037F1B
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A30C2
- ldr r1, _080A3100 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080A30C2:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A3100 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080A3156
- .align 2, 0
-_080A30FC: .4byte gUnknown_2037F1B
-_080A3100: .4byte gUnknown_2037F02
-_080A3104:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A3156
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, _080A315C @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080A3160 @ =sub_8075764
- str r0, [r5, 0x1C]
- ldr r1, _080A3164 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A3156:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A315C: .4byte gUnknown_2037F1A
-_080A3160: .4byte sub_8075764
-_080A3164: .4byte DestroyAnimSprite
- thumb_func_end sub_80A3098
-
- thumb_func_start sub_80A3168
-sub_80A3168: @ 80A3168
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A31D4
- ldr r4, _080A31E0 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080A31E4 @ =gUnknown_2037F02
- ldrh r0, [r4]
- strh r0, [r5, 0x24]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x26]
- ldrb r0, [r4, 0x4]
- adds r0, 0x1E
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r4, 0x6]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r2, 0x22
- ldrsh r0, [r5, r2]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _080A31D4
- ldrh r0, [r5, 0x22]
- adds r1, r0, 0
- subs r1, 0x78
- ldrh r2, [r5, 0x26]
- adds r0, r2
- adds r1, r0
- strh r1, [r5, 0x22]
-_080A31D4:
- ldr r0, _080A31E8 @ =sub_80A32DC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A31E0: .4byte gUnknown_2037F1A
-_080A31E4: .4byte gUnknown_2037F02
-_080A31E8: .4byte sub_80A32DC
- thumb_func_end sub_80A3168
-
- thumb_func_start sub_80A31EC
-sub_80A31EC: @ 80A31EC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, _080A32C8 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _080A32CC @ =gUnknown_2037F1B
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- adds r2, r0, 0
- lsls r2, 24
- subs r4, r5
- lsls r4, 16
- lsrs r2, 24
- mov r1, r8
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsrs r3, r4, 16
- mov r10, r3
- asrs r4, 16
- ldr r6, _080A32D0 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r6, r1]
- muls r0, r4
- movs r1, 0x64
- str r2, [sp]
- bl __divsi3
- adds r5, r0
- mov r3, r9
- strh r5, [r3, 0x20]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r6, r3]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- add r8, r0
- mov r1, r8
- mov r0, r9
- strh r1, [r0, 0x22]
- ldrh r0, [r6, 0x2]
- mov r3, r9
- strh r0, [r3, 0x24]
- ldrh r0, [r6, 0x4]
- strh r0, [r3, 0x26]
- ldrb r0, [r6, 0x6]
- adds r0, 0x1E
- mov r1, r9
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0x8]
- mov r0, r9
- bl StartSpriteAnim
- ldrh r0, [r6, 0xA]
- mov r1, r9
- strh r0, [r1, 0x32]
- ldr r0, _080A32D4 @ =sub_80A32DC
- str r0, [r1, 0x1C]
- ldr r1, _080A32D8 @ =gUnknown_203999C
- mov r3, r9
- ldrh r0, [r3, 0x20]
- strh r0, [r1]
- ldrh r0, [r3, 0x22]
- strh r0, [r1, 0x2]
- mov r0, r10
- strh r0, [r1, 0x4]
- ldr r2, [sp]
- strh r2, [r1, 0x6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A32C8: .4byte gUnknown_2037F1A
-_080A32CC: .4byte gUnknown_2037F1B
-_080A32D0: .4byte gUnknown_2037F02
-_080A32D4: .4byte sub_80A32DC
-_080A32D8: .4byte gUnknown_203999C
- thumb_func_end sub_80A31EC
-
- thumb_func_start sub_80A32DC
-sub_80A32DC: @ 80A32DC
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- adds r1, 0x1
- strh r1, [r3, 0x2E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080A331C
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- movs r2, 0x3E
- adds r2, r3
- mov r12, r2
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080A331C:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080A332E
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080A332E:
- pop {r0}
- bx r0
- thumb_func_end sub_80A32DC
-
- thumb_func_start sub_80A3334
-sub_80A3334: @ 80A3334
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A3374
- ldr r5, _080A33B0 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A33B4 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x34]
-_080A3374:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
- ldrh r1, [r6, 0x30]
- muls r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0xFF
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080A33AA
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A33AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A33B0: .4byte gUnknown_2037F1A
-_080A33B4: .4byte gUnknown_2037F02
- thumb_func_end sub_80A3334
-
- thumb_func_start sub_80A33B8
-sub_80A33B8: @ 80A33B8
- push {r4,r5,lr}
- movs r2, 0x20
- ldrsh r4, [r0, r2]
- lsls r4, 8
- movs r3, 0x22
- ldrsh r2, [r0, r3]
- orrs r4, r2
- movs r5, 0x3A
- ldrsh r2, [r0, r5]
- lsls r2, 8
- movs r5, 0x3C
- ldrsh r3, [r0, r5]
- orrs r2, r3
- lsls r1, 8
- strh r4, [r0, 0x38]
- strh r2, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A33B8
-
- thumb_func_start sub_80A33E0
-sub_80A33E0: @ 80A33E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- ldrh r0, [r0, 0x38]
- lsrs r1, r0, 8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- ldrh r0, [r1, 0x3A]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r1, [r1, 0x3C]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0xFF
- ands r3, r1
- cmp r2, 0
- bne _080A341A
- movs r2, 0x20
- negs r2, r2
- b _080A3422
-_080A341A:
- cmp r2, 0xFF
- bne _080A3422
- movs r2, 0x88
- lsls r2, 1
-_080A3422:
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r10
- subs r0, r2, r1
- lsls r5, r3, 16
- asrs r5, 16
- muls r0, r5
- lsls r1, r6, 16
- asrs r7, r1, 16
- adds r1, r7, 0
- bl __divsi3
- adds r6, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r5
- adds r1, r7, 0
- bl __divsi3
- add r6, r10
- mov r1, r8
- strh r6, [r1, 0x20]
- add r0, r9
- strh r0, [r1, 0x22]
- adds r5, 0x1
- lsls r5, 16
- lsrs r3, r5, 16
- asrs r5, 16
- cmp r5, r7
- beq _080A3474
- lsls r1, r7, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r1
- mov r1, r8
- strh r0, [r1, 0x3C]
- movs r0, 0
- b _080A3476
-_080A3474:
- movs r0, 0x1
-_080A3476:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A33E0
-
- thumb_func_start sub_80A3484
-sub_80A3484: @ 80A3484
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080A3498
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A3498:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080A34AC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A34AC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3484
-
- thumb_func_start sub_80A34B4
-sub_80A34B4: @ 80A34B4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080A34DE
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A34DE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A350E
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080A3514 @ =sub_80A3484
- str r0, [r4, 0x1C]
-_080A350E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3514: .4byte sub_80A3484
- thumb_func_end sub_80A34B4
-
- thumb_func_start sub_80A3518
-sub_80A3518: @ 80A3518
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r4, _080A3560 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A3564 @ =gUnknown_2037F1A
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080A3568
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x1
- b _080A357A
- .align 2, 0
-_080A3560: .4byte gUnknown_2037F1B
-_080A3564: .4byte gUnknown_2037F1A
-_080A3568:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x3
-_080A357A:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A358C @ =sub_80A34B4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A358C: .4byte sub_80A34B4
- thumb_func_end sub_80A3518
-
- thumb_func_start sub_80A3590
-sub_80A3590: @ 80A3590
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080A35BA
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A35BA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A35EC
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A35EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3590
-
- thumb_func_start sub_80A35F4
-sub_80A35F4: @ 80A35F4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A3630 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A3638
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80A33B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A3634 @ =sub_80A34B4
- b _080A3662
- .align 2, 0
-_080A3630: .4byte gUnknown_2037F1B
-_080A3634: .4byte sub_80A34B4
-_080A3638:
- movs r0, 0xFF
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A3650
- movs r0, 0
- strh r0, [r5, 0x3A]
-_080A3650:
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80A33B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A366C @ =sub_80A3590
-_080A3662:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A366C: .4byte sub_80A3590
- thumb_func_end sub_80A35F4
-
- thumb_func_start sub_80A3670
-sub_80A3670: @ 80A3670
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A368A
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075114
- ldr r0, _080A36B0 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x30]
-_080A368A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- muls r0, r1
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A36AA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A36AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A36B0: .4byte gUnknown_2037F02
- thumb_func_end sub_80A3670
-
- thumb_func_start sub_80A36B4
-sub_80A36B4: @ 80A36B4
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075114
- ldr r4, _080A36FC @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A3700 @ =gUnknown_2037F1B
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080A3704
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x1
- b _080A3716
- .align 2, 0
-_080A36FC: .4byte gUnknown_2037F1A
-_080A3700: .4byte gUnknown_2037F1B
-_080A3704:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x3
-_080A3716:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A3728 @ =sub_80A372C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3728: .4byte sub_80A372C
- thumb_func_end sub_80A36B4
-
- thumb_func_start sub_80A372C
-sub_80A372C: @ 80A372C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080A3756
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A3756:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _080A378A
- movs r0, 0x3F
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080A378A:
- adds r0, r4, 0
- bl sub_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A37B2
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080A37B8 @ =sub_80A3484
- str r0, [r4, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080A37B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A37B8: .4byte sub_80A3484
- thumb_func_end sub_80A372C
-
- thumb_func_start sub_80A37BC
-sub_80A37BC: @ 80A37BC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A3850
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A37E4
- ldr r0, _080A37E0 @ =gUnknown_2037F02
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x30]
- movs r1, 0x78
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080A3806
- .align 2, 0
-_080A37E0: .4byte gUnknown_2037F02
-_080A37E4:
- ldr r0, _080A3840 @ =gUnknown_2037F02
- movs r1, 0x2
- ldrsh r3, [r0, r1]
- adds r1, r3, 0
- subs r1, 0x20
- adds r2, r1, 0
- adds r5, r0, 0
- cmp r1, 0
- bge _080A37FA
- adds r2, r3, 0
- adds r2, 0xDF
-_080A37FA:
- asrs r0, r2, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- movs r0, 0x46
- strh r0, [r4, 0x20]
-_080A3806:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x32]
- movs r0, 0x14
- strh r0, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- ldr r0, _080A3844 @ =sub_80A3858
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080A3848
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080A384E
- .align 2, 0
-_080A3840: .4byte gUnknown_2037F02
-_080A3844: .4byte sub_80A3858
-_080A3848:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080A384E:
- strb r0, [r1]
-_080A3850:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A37BC
-
- thumb_func_start sub_80A3858
-sub_80A3858: @ 80A3858
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A386A
- cmp r0, 0x1
- beq _080A389A
- b _080A38BA
-_080A386A:
- ldrh r5, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x4E
- ble _080A3882
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080A38BA
-_080A3882:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- adds r0, r5, r0
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- adds r1, 0x3
- strh r1, [r4, 0x36]
- strh r0, [r4, 0x22]
- b _080A38BA
-_080A389A:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A38BA
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A38BA
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r0, _080A38C0 @ =sub_80A38C4
- str r0, [r4, 0x1C]
-_080A38BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A38C0: .4byte sub_80A38C4
- thumb_func_end sub_80A3858
-
- thumb_func_start sub_80A38C4
-sub_80A38C4: @ 80A38C4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A3908 @ =gUnknown_83E2F78
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r3, r0, r1
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrh r2, [r4, 0x32]
- movs r6, 0x32
- ldrsh r1, [r4, r6]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080A3910
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x7F
- bne _080A38FC
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080A390C @ =sub_80A397C
- str r0, [r4, 0x1C]
-_080A38FC:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A3976
- .align 2, 0
-_080A3908: .4byte gUnknown_83E2F78
-_080A390C: .4byte sub_80A397C
-_080A3910:
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r0, r5
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A395E
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080A3956
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080A395C
-_080A3956:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080A395C:
- strb r0, [r1]
-_080A395E:
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
-_080A3976:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A38C4
-
- thumb_func_start sub_80A397C
-sub_80A397C: @ 80A397C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080A398E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A398E:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A397C
-
- thumb_func_start sub_80A39C0
-sub_80A39C0: @ 80A39C0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A3B14 @ =gTasks
- adds r5, r0, r1
- ldr r4, _080A3B18 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8076B2C
- strh r0, [r5, 0x1C]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8076B2C
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0x1
- bne _080A3A28
- movs r1, 0x1
-_080A3A28:
- strh r1, [r5, 0x12]
- movs r3, 0x12
- ldrsh r0, [r5, r3]
- lsls r0, 6
- movs r1, 0x38
- subs r1, r0
- strh r1, [r5, 0x1A]
- ldrh r0, [r5, 0x16]
- subs r0, r1
- ldrh r1, [r5, 0x14]
- adds r0, r1
- strh r0, [r5, 0x18]
- ldr r0, _080A3B1C @ =gUnknown_83E2FF0
- movs r2, 0x18
- ldrsh r1, [r5, r2]
- movs r3, 0x1A
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- cmp r0, 0x40
- bne _080A3A60
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A3A60:
- ldr r4, _080A3B20 @ =gSprites
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x18]
- strh r1, [r0, 0x30]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- muls r1, r0
- ldrh r0, [r5, 0x14]
- subs r0, r1
- strh r0, [r2, 0x32]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x1A]
- strh r1, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r2, [r5, r3]
- muls r0, r2
- ldrh r2, [r5, 0x16]
- adds r0, r2
- strh r0, [r1, 0x36]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80A3F04
- movs r1, 0xC
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x38]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_8075068
- ldr r0, _080A3B24 @ =sub_80A3B28
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3B14: .4byte gTasks
-_080A3B18: .4byte gUnknown_2037F1B
-_080A3B1C: .4byte gUnknown_83E2FF0
-_080A3B20: .4byte gSprites
-_080A3B24: .4byte sub_80A3B28
- thumb_func_end sub_80A39C0
-
- thumb_func_start sub_80A3B28
-sub_80A3B28: @ 80A3B28
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A3B6C @ =gTasks
- adds r6, r0, r1
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A3B70 @ =gSprites
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- cmp r5, 0x7
- bne _080A3B50
- b _080A3D80
-_080A3B50:
- cmp r5, 0x7
- bgt _080A3B9E
- cmp r5, 0x3
- bne _080A3B5A
- b _080A3C72
-_080A3B5A:
- cmp r5, 0x3
- bgt _080A3B74
- cmp r5, 0x1
- beq _080A3C04
- cmp r5, 0x1
- bgt _080A3C54
- cmp r5, 0
- beq _080A3BE6
- b _080A3EFC
- .align 2, 0
-_080A3B6C: .4byte gTasks
-_080A3B70: .4byte gSprites
-_080A3B74:
- cmp r5, 0x5
- bne _080A3B7A
- b _080A3CE8
-_080A3B7A:
- cmp r5, 0x5
- ble _080A3B80
- b _080A3D62
-_080A3B80:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3B96
- b _080A3EFC
-_080A3B96:
- movs r0, 0x5
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3B9E:
- cmp r5, 0xB
- bne _080A3BA4
- b _080A3E64
-_080A3BA4:
- cmp r5, 0xB
- bgt _080A3BD2
- cmp r5, 0x9
- bne _080A3BAE
- b _080A3DD2
-_080A3BAE:
- cmp r5, 0x9
- ble _080A3BB4
- b _080A3E48
-_080A3BB4:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3BCA
- b _080A3EFC
-_080A3BCA:
- movs r0, 0x9
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3BD2:
- cmp r5, 0xD
- bne _080A3BD8
- b _080A3ED6
-_080A3BD8:
- cmp r5, 0xD
- bge _080A3BDE
- b _080A3EB6
-_080A3BDE:
- cmp r5, 0xFF
- bne _080A3BE4
- b _080A3EE6
-_080A3BE4:
- b _080A3EFC
-_080A3BE6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3BFC
- b _080A3EFC
-_080A3BFC:
- movs r0, 0x1
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3C04:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r0, [r6, 0x10]
- adds r0, 0x2
- strh r0, [r6, 0x10]
- strh r5, [r6, 0xE]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3C54:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3C6A
- b _080A3EFC
-_080A3C6A:
- movs r0, 0x3
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3C72:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r1, r0
- ldrh r0, [r6, 0x16]
- subs r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3CE8:
- ldrh r1, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r1, r3
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r2, 0x1E
- ldrsh r0, [r6, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x16]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x3
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3D62:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3D78
- b _080A3EFC
-_080A3D78:
- movs r0, 0x7
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3D80:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- adds r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x4
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3DD2:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r0, r1
- ldrh r3, [r6, 0x16]
- adds r0, r3
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- movs r0, 0x5
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3E48:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A3EFC
- movs r0, 0xB
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3E64:
- ldrh r2, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r2, r0
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x18]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x1A]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x6
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3EB6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A3EFC
- adds r0, r4, 0
- bl DestroySprite
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3ED6:
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A3EFC
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A3EFC
-_080A3EE6:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A3EFC
- movs r0, 0
- strh r0, [r6, 0xA]
- ldrh r0, [r6, 0x26]
-_080A3EFA:
- strh r0, [r6, 0x8]
-_080A3EFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3B28
-
- thumb_func_start sub_80A3F04
-sub_80A3F04: @ 80A3F04
- push {lr}
- movs r2, 0x8
- movs r3, 0x36
- ldrsh r1, [r0, r3]
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _080A3F1A
- negs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_080A3F1A:
- lsls r0, r2, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80A3F04
-
- thumb_func_start sub_80A3F24
-sub_80A3F24: @ 80A3F24
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080A3FBA
- movs r0, 0
- strh r0, [r6, 0x24]
- ldr r0, _080A3FC4 @ =gSprites
- mov r8, r0
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- ldrh r2, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r0
- ldr r0, _080A3FC8 @ =gUnknown_83E2FF0
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r3, [r6, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080A3FBA
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r0, r8
- adds r4, r5, r0
- strh r7, [r4, 0x3A]
- movs r0, 0xC
- strh r0, [r4, 0x3C]
- ldr r0, _080A3FCC @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldrh r2, [r6, 0x22]
- movs r0, 0x1
- ands r0, r2
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r6, 0x10]
- adds r4, 0x43
- strb r0, [r4]
- mov r0, r8
- adds r0, 0x1C
- adds r5, r0
- ldr r0, _080A3FD0 @ =sub_80A3FD4
- str r0, [r5]
-_080A3FBA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3FC4: .4byte gSprites
-_080A3FC8: .4byte gUnknown_83E2FF0
-_080A3FCC: .4byte gTasks
-_080A3FD0: .4byte sub_80A3FD4
- thumb_func_end sub_80A3F24
-
- thumb_func_start sub_80A3FD4
-sub_80A3FD4: @ 80A3FD4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4036
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A4036
- ldr r3, _080A403C @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080A4036:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A403C: .4byte gTasks
- thumb_func_end sub_80A3FD4
-
- thumb_func_start sub_80A4040
-sub_80A4040: @ 80A4040
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080A4054 @ =gUnknown_2037F02
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A405C
- ldr r0, _080A4058 @ =gUnknown_2037F1A
- b _080A405E
- .align 2, 0
-_080A4054: .4byte gUnknown_2037F02
-_080A4058: .4byte gUnknown_2037F1A
-_080A405C:
- ldr r0, _080A407C @ =gUnknown_2037F1B
-_080A405E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4088
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, _080A4080 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080A4084 @ =0x0000fff0
- b _080A4098
- .align 2, 0
-_080A407C: .4byte gUnknown_2037F1B
-_080A4080: .4byte gUnknown_2037F02
-_080A4084: .4byte 0x0000fff0
-_080A4088:
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r1, _080A40BC @ =gUnknown_2037F02
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r4, 0x32]
- movs r0, 0x80
- lsls r0, 1
-_080A4098:
- strh r0, [r4, 0x20]
- adds r7, r1, 0
- adds r5, r7, 0
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x34]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080A40CE
- cmp r0, 0x1
- bgt _080A40C0
- cmp r0, 0
- beq _080A40CA
- b _080A4138
- .align 2, 0
-_080A40BC: .4byte gUnknown_2037F02
-_080A40C0:
- cmp r0, 0x2
- beq _080A40D4
- cmp r0, 0x3
- beq _080A4100
- b _080A4138
-_080A40CA:
- ldrh r0, [r5]
- b _080A40E4
-_080A40CE:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- b _080A411A
-_080A40D4:
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5]
- adds r0, r5
-_080A40E4:
- strh r0, [r4, 0x22]
- adds r0, r6, 0
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080A4138
-_080A4100:
- ldr r0, _080A4144 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7]
- adds r0, r7
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBankSpriteId
-_080A411A:
- adds r0, r6, 0
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_080A4138:
- ldr r0, _080A4148 @ =sub_80A414C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4144: .4byte gUnknown_2037F1B
-_080A4148: .4byte sub_80A414C
- thumb_func_end sub_80A4040
-
- thumb_func_start sub_80A414C
-sub_80A414C: @ 80A414C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r3, [r4, r0]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- ldr r1, _080A41A0 @ =gUnknown_825E074
- movs r5, 0x2E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r0, 8
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- muls r0, r3
- strh r0, [r4, 0x24]
- movs r5, 0x34
- ldrsh r0, [r4, r5]
- muls r0, r3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A41A4
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r5, 0x20
- ldrsh r1, [r4, r5]
- adds r0, r1
- cmp r0, 0xF7
- ble _080A41BC
- b _080A41B6
- .align 2, 0
-_080A41A0: .4byte gUnknown_825E074
-_080A41A4:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _080A41BC
-_080A41B6:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080A41BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A414C
-
- thumb_func_start sub_80A41C4
-sub_80A41C4: @ 80A41C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A41E4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A41E8
- cmp r0, 0x1
- beq _080A421C
- b _080A4276
- .align 2, 0
-_080A41E4: .4byte gTasks
-_080A41E8:
- ldr r0, _080A4214 @ =0x0000274f
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2, 0
- adds r0, r4
- strh r0, [r5, 0x18]
- ldr r0, _080A4218 @ =0x000027b0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080A4276
- .align 2, 0
-_080A4214: .4byte 0x0000274f
-_080A4218: .4byte 0x000027b0
-_080A421C:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x1A]
- lsls r0, 16
- cmp r0, 0
- blt _080A4276
- strh r7, [r5, 0x1A]
- ldrh r0, [r5, 0x18]
- ldrb r2, [r5, 0x1C]
- ldr r4, _080A4290 @ =gUnknown_83E30F0
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x20]
- ldrb r2, [r5, 0x1C]
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- bne _080A4276
- strh r7, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bne _080A4276
- strh r7, [r5, 0x1E]
-_080A4276:
- ldr r0, _080A4294 @ =gUnknown_2037F02
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A428A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A428A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4290: .4byte gUnknown_83E30F0
-_080A4294: .4byte gUnknown_2037F02
- thumb_func_end sub_80A41C4
-
- thumb_func_start sub_80A4298
-sub_80A4298: @ 80A4298
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _080A42B0 @ =gUnknown_2037F02
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A42B4
- adds r0, r6, 0
- bl DestroyAnimSprite
- b _080A438E
- .align 2, 0
-_080A42B0: .4byte gUnknown_2037F02
-_080A42B4:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080A42C4
- ldr r4, _080A42C0 @ =gUnknown_2037F1A
- b _080A42C6
- .align 2, 0
-_080A42C0: .4byte gUnknown_2037F1A
-_080A42C4:
- ldr r4, _080A4300 @ =gUnknown_2037F1B
-_080A42C6:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A4304 @ =gUnknown_2037F02
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2E]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r7, r0, 0
- cmp r1, 0
- bne _080A4308
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x20]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x38]
- strh r2, [r6, 0x3A]
- b _080A4318
- .align 2, 0
-_080A4300: .4byte gUnknown_2037F1B
-_080A4304: .4byte gUnknown_2037F02
-_080A4308:
- strh r5, [r6, 0x20]
- strh r2, [r6, 0x22]
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x38]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x3A]
-_080A4318:
- ldrh r4, [r6, 0x20]
- lsls r0, r4, 4
- strh r0, [r6, 0x30]
- ldrh r5, [r6, 0x22]
- lsls r0, r5, 4
- strh r0, [r6, 0x32]
- movs r1, 0x38
- ldrsh r0, [r6, r1]
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x34]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x38]
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r6, 0x3A]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A437A
- ldr r1, _080A4398 @ =0xffff8000
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080A437A:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8075A1C
- ldr r0, _080A439C @ =sub_80A43A0
- str r0, [r6, 0x1C]
-_080A438E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4398: .4byte 0xffff8000
-_080A439C: .4byte sub_80A43A0
- thumb_func_end sub_80A4298
-
- thumb_func_start sub_80A43A0
-sub_80A43A0: @ 80A43A0
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080A43D0
- ldrh r0, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r0, r4
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r4, [r2, 0x32]
- adds r1, r4
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x2E]
- b _080A43D6
-_080A43D0:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080A43D6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A43A0
-
- thumb_func_start sub_80A43DC
-sub_80A43DC: @ 80A43DC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A43F2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A43F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80A43DC
-
- thumb_func_start sub_80A43F8
-sub_80A43F8: @ 80A43F8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A4418 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4420
- ldr r2, _080A441C @ =gUnknown_2037F02
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- b _080A442C
- .align 2, 0
-_080A4418: .4byte gUnknown_2037F1A
-_080A441C: .4byte gUnknown_2037F02
-_080A4420:
- ldr r0, _080A4444 @ =gUnknown_2037F02
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080A442C:
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080A4448 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _080A444C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4444: .4byte gUnknown_2037F02
-_080A4448: .4byte sub_8074F6C
-_080A444C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A43F8
-
- thumb_func_start sub_80A4450
-sub_80A4450: @ 80A4450
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A4488 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A446A
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A446A:
- ldr r0, _080A448C @ =sub_80A43DC
- str r0, [r5, 0x1C]
- ldr r4, _080A4490 @ =gUnknown_2037F02
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8074FF8
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4488: .4byte gUnknown_2037F1A
-_080A448C: .4byte sub_80A43DC
-_080A4490: .4byte gUnknown_2037F02
- thumb_func_end sub_80A4450
-
- thumb_func_start sub_80A4494
-sub_80A4494: @ 80A4494
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080A44D4 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080A44D8 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A44DC @ =sub_8074E70
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A44D4: .4byte gUnknown_2037F02
-_080A44D8: .4byte move_anim_8074EE0
-_080A44DC: .4byte sub_8074E70
- thumb_func_end sub_80A4494
-
- thumb_func_start sub_80A44E0
-sub_80A44E0: @ 80A44E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080A4530 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4514
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080A4514:
- ldr r0, _080A4534 @ =sub_80A46CC
- str r0, [r5, 0x1C]
- ldr r0, _080A4538 @ =gUnknown_2037F02
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080A453C
- ldrh r0, [r3]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080A4550
- .align 2, 0
-_080A4530: .4byte gUnknown_2037F1B
-_080A4534: .4byte sub_80A46CC
-_080A4538: .4byte gUnknown_2037F02
-_080A453C:
- ldrh r0, [r5, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r5, 0x20]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080A4550:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldr r1, _080A4584 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r5, 0x30]
- adds r1, r0, r2
- strh r1, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A457E
- negs r0, r1
- strh r0, [r5, 0x30]
-_080A457E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4584: .4byte 0xfffffc00
- thumb_func_end sub_80A44E0
-
- thumb_func_start sub_80A4588
-sub_80A4588: @ 80A4588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, _080A45A4 @ =gUnknown_2037F02
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080A45A8
- cmp r0, 0x1
- ble _080A4624
- cmp r0, 0x2
- beq _080A45C8
- b _080A4624
- .align 2, 0
-_080A45A4: .4byte gUnknown_2037F02
-_080A45A8:
- ldr r5, _080A45C4 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- eors r4, r0
- adds r0, r4, 0
- b _080A4634
- .align 2, 0
-_080A45C4: .4byte gUnknown_2037F1B
-_080A45C8:
- ldr r5, _080A4620 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- movs r2, 0x2
- mov r8, r2
- mov r1, r8
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A463E
- ldrb r0, [r5]
- mov r2, r8
- eors r0, r2
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- lsrs r7, r0, 1
- ldrb r0, [r5]
- mov r1, r8
- eors r0, r1
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- lsrs r4, r0, 1
- b _080A463E
- .align 2, 0
-_080A4620: .4byte gUnknown_2037F1B
-_080A4624:
- ldr r4, _080A4670 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
-_080A4634:
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r4, r0, 24
-_080A463E:
- strh r7, [r6, 0x20]
- strh r4, [r6, 0x22]
- ldr r0, _080A4670 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4656
- ldrh r0, [r6, 0x22]
- adds r0, 0x8
- strh r0, [r6, 0x22]
-_080A4656:
- ldr r0, _080A4674 @ =sub_80A46CC
- str r0, [r6, 0x1C]
- ldr r0, _080A4678 @ =gUnknown_2037F02
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080A467C
- ldrh r0, [r3]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- b _080A4690
- .align 2, 0
-_080A4670: .4byte gUnknown_2037F1B
-_080A4674: .4byte sub_80A46CC
-_080A4678: .4byte gUnknown_2037F02
-_080A467C:
- ldrh r0, [r6, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r6, 0x20]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080A4690:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldr r1, _080A46C8 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r6, 0x30]
- adds r1, r0, r2
- strh r1, [r6, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r6, 0x32]
- adds r0, r2
- strh r0, [r6, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A46BE
- negs r0, r1
- strh r0, [r6, 0x30]
-_080A46BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A46C8: .4byte 0xfffffc00
- thumb_func_end sub_80A4588
-
- thumb_func_start sub_80A46CC
-sub_80A46CC: @ 80A46CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A46EE
- adds r0, r1, 0
- adds r0, 0x18
- b _080A46F2
-_080A46EE:
- adds r0, r1, 0
- subs r0, 0x18
-_080A46F2:
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- subs r0, 0x18
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080A4728
- ldr r1, _080A4730 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _080A4734 @ =sub_8074C44
- str r0, [r4, 0x1C]
-_080A4728:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4730: .4byte DestroyAnimSprite
-_080A4734: .4byte sub_8074C44
- thumb_func_end sub_80A46CC
-
- thumb_func_start sub_80A4738
-sub_80A4738: @ 80A4738
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _080A47DC
- ldrh r1, [r5, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4794
- adds r3, r5, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r3]
- ldr r4, _080A4790 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r3, [r0]
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _080A47CA
- .align 2, 0
-_080A4790: .4byte gSprites
-_080A4794:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, _080A47D8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
-_080A47CA:
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- b _080A47E0
- .align 2, 0
-_080A47D8: .4byte gSprites
-_080A47DC:
- adds r0, r1, 0x1
- strh r0, [r5, 0x32]
-_080A47E0:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bne _080A4810
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080A4818 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyAnimSprite
-_080A4810:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4818: .4byte gSprites
- thumb_func_end sub_80A4738
-
- thumb_func_start sub_80A481C
-sub_80A481C: @ 80A481C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080A483C @ =gUnknown_2037F02
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080A4840 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4844
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080A484A
- .align 2, 0
-_080A483C: .4byte gUnknown_2037F02
-_080A4840: .4byte gUnknown_2037F1A
-_080A4844:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080A484A:
- strh r0, [r5, 0x20]
- ldr r4, _080A4878 @ =gUnknown_2037F02
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080A487C @ =sub_80A4880
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4878: .4byte gUnknown_2037F02
-_080A487C: .4byte sub_80A4880
- thumb_func_end sub_80A481C
-
- thumb_func_start sub_80A4880
-sub_80A4880: @ 80A4880
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080A48AC
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- b _080A48B2
-_080A48AC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0xE
-_080A48B2:
- strb r0, [r1]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x82
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080A48E8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A48E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4880
-
- thumb_func_start sub_80A48F0
-sub_80A48F0: @ 80A48F0
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A4906
- ldr r1, _080A4964 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- adds r0, 0x8
- strh r0, [r1, 0x2]
-_080A4906:
- ldr r6, _080A4968 @ =gUnknown_2037F1A
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074844
- lsls r0, 24
- ldr r4, _080A4964 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4944
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A496C
-_080A4944:
- ldrb r0, [r6]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- b _080A4984
- .align 2, 0
-_080A4964: .4byte gUnknown_2037F02
-_080A4968: .4byte gUnknown_2037F1A
-_080A496C:
- ldrb r0, [r6]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080A4984:
- ldr r0, _080A49C8 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080A49CC @ =0x00002828
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r5, 0x32]
- movs r4, 0x10
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r5, 0x3C]
- lsls r1, r0, 8
- subs r4, r0
- orrs r1, r4
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080A49D0 @ =sub_80A49D4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A49C8: .4byte gUnknown_2037F02
-_080A49CC: .4byte 0x00002828
-_080A49D0: .4byte sub_80A49D4
- thumb_func_end sub_80A48F0
-
- thumb_func_start sub_80A49D4
-sub_80A49D4: @ 80A49D4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x60
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4A32
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080A4A7C @ =gPlttBufferFaded
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- movs r2, 0
- adds r6, r1, 0
- adds r3, r6, 0
-_080A4A0C:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- adds r2, 0x1
- adds r0, r2
- lsls r1, r0, 1
- adds r1, r3
- adds r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- cmp r2, 0x5
- ble _080A4A0C
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x7
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_080A4A32:
- ldrh r2, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _080A4A6C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _080A4A80
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4A6C
- movs r0, 0
- strh r0, [r4, 0x3A]
- subs r2, 0x1
- strh r2, [r4, 0x3C]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_080A4A6C:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4A80
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080A4AC2
- .align 2, 0
-_080A4A7C: .4byte gPlttBufferFaded
-_080A4A80:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4AC2
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r2, 0x1
- strh r2, [r4, 0x3C]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A4AC2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A4AC8 @ =sub_8074F88
- str r0, [r4, 0x1C]
-_080A4AC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4AC8: .4byte sub_8074F88
- thumb_func_end sub_80A49D4
-
- thumb_func_start sub_80A4ACC
-sub_80A4ACC: @ 80A4ACC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A4B2C @ =gUnknown_2037F1B
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A4B30 @ =0x0000ffe8
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- strh r5, [r4, 0x3A]
- movs r0, 0x10
- strh r0, [r4, 0x3C]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080A4B34 @ =sub_80A4B38
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B2C: .4byte gUnknown_2037F1B
-_080A4B30: .4byte 0x0000ffe8
-_080A4B34: .4byte sub_80A4B38
- thumb_func_end sub_80A4ACC
-
- thumb_func_start sub_80A4B38
-sub_80A4B38: @ 80A4B38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080A4B46
- b _080A4C90
-_080A4B46:
- lsls r0, 2
- ldr r1, _080A4B50 @ =_080A4B54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A4B50: .4byte _080A4B54
- .align 2, 0
-_080A4B54:
- .4byte _080A4B68
- .4byte _080A4BCC
- .4byte _080A4BE8
- .4byte _080A4C66
- .4byte _080A4C7A
-_080A4B68:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080A4B76
- b _080A4C90
-_080A4B76:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4B98
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080A4BA6
- adds r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080A4BA6
-_080A4B98:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4BA6
- subs r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080A4BA6:
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A4C90
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A4C90
- strh r0, [r4, 0x30]
- b _080A4C72
-_080A4BCC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A4C90
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080A4C72
-_080A4BE8:
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x4
- bl sub_80A4C98
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A4C0A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080A4C0A:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080A4C90
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080A4C30
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4C3E
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080A4C3E
-_080A4C30:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080A4C3E
- adds r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080A4C3E:
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080A4C90
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080A4C90
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- b _080A4C72
-_080A4C66:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080A4C72:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A4C90
-_080A4C7A:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A4C90:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4B38
-
- thumb_func_start sub_80A4C98
-sub_80A4C98: @ 80A4C98
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0xB
- bgt _080A4CAA
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CAA:
- ldrh r5, [r4, 0x34]
- adds r0, r5, 0
- subs r0, 0x12
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- cmp r0, 0x17
- bhi _080A4CC0
- ldrh r0, [r4, 0x36]
- subs r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CC0:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _080A4CCE
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CCE:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x9
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bge _080A4CF4
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080A4CF4:
- adds r0, r5, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _080A4D04
- movs r0, 0
- strh r0, [r4, 0x34]
-_080A4D04:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4C98
-
- thumb_func_start sub_80A4D0C
-sub_80A4D0C: @ 80A4D0C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A4D50 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A4D20
- adds r0, r4, 0
- bl sub_8074FCC
-_080A4D20:
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_8074FF8
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080A4D54 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A4D58 @ =sub_8074D00
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4D50: .4byte gUnknown_2037F02
-_080A4D54: .4byte DestroyAnimSprite
-_080A4D58: .4byte sub_8074D00
- thumb_func_end sub_80A4D0C
-
- thumb_func_start sub_80A4D5C
-sub_80A4D5C: @ 80A4D5C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A4D70 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A4D78
- ldr r0, _080A4D74 @ =gUnknown_2037F1A
- b _080A4D7A
- .align 2, 0
-_080A4D70: .4byte gUnknown_2037F02
-_080A4D74: .4byte gUnknown_2037F1A
-_080A4D78:
- ldr r0, _080A4DBC @ =gUnknown_2037F1B
-_080A4D7A:
- ldrb r6, [r0]
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080A4DC4
- movs r1, 0x2
- adds r0, r6, 0
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A4DC4
- ldr r4, _080A4DC0 @ =gUnknown_2037F02
- ldrb r1, [r4, 0xC]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- adds r0, r6, 0
- bl sub_8076D9C
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl sub_8074FF8
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- b _080A4E14
- .align 2, 0
-_080A4DBC: .4byte gUnknown_2037F1B
-_080A4DC0: .4byte gUnknown_2037F02
-_080A4DC4:
- ldr r4, _080A4DE4 @ =gUnknown_2037F02
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A4DE8
- adds r0, r6, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- b _080A4DFA
- .align 2, 0
-_080A4DE4: .4byte gUnknown_2037F02
-_080A4DE8:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
-_080A4DFA:
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldr r0, _080A4E34 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_8074FF8
-_080A4E14:
- ldr r1, _080A4E34 @ =gUnknown_2037F02
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- ldr r1, _080A4E38 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A4E3C @ =sub_8074D00
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E34: .4byte gUnknown_2037F02
-_080A4E38: .4byte DestroyAnimSprite
-_080A4E3C: .4byte sub_8074D00
- thumb_func_end sub_80A4D5C
-
- thumb_func_start sub_80A4E40
-sub_80A4E40: @ 80A4E40
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080A4E6C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4E74
- ldr r0, _080A4E70 @ =gUnknown_2037F02
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _080A4E8E
- .align 2, 0
-_080A4E6C: .4byte gUnknown_2037F1A
-_080A4E70: .4byte gUnknown_2037F02
-_080A4E74:
- ldr r2, _080A4E98 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A4E8E:
- ldr r0, _080A4E9C @ =sub_80A4EA0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E98: .4byte gUnknown_2037F02
-_080A4E9C: .4byte sub_80A4EA0
- thumb_func_end sub_80A4E40
-
- thumb_func_start sub_80A4EA0
-sub_80A4EA0: @ 80A4EA0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080A4ED8
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x1E
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r4, 0x26]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 18
- asrs r0, 16
- movs r1, 0x3
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080A4ED8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A4EEC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A4EEC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4EA0
-
- thumb_func_start sub_80A4EF4
-sub_80A4EF4: @ 80A4EF4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080A4F24 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4F2C
- ldr r1, _080A4F28 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- b _080A4F4A
- .align 2, 0
-_080A4F24: .4byte gUnknown_2037F1A
-_080A4F28: .4byte gUnknown_2037F02
-_080A4F2C:
- ldr r2, _080A4F54 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldr r0, _080A4F58 @ =0x0000ffff
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A4F4A:
- ldr r0, _080A4F5C @ =sub_80A4F60
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4F54: .4byte gUnknown_2037F02
-_080A4F58: .4byte 0x0000ffff
-_080A4F5C: .4byte sub_80A4F60
- thumb_func_end sub_80A4EF4
-
- thumb_func_start sub_80A4F60
-sub_80A4F60: @ 80A4F60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080A4FA4
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080A4FA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4F60
-
- thumb_func_start sub_80A4FAC
-sub_80A4FAC: @ 80A4FAC
- push {lr}
- ldrh r1, [r0, 0x20]
- subs r1, 0x20
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x22]
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldr r1, _080A4FCC @ =sub_8074C44
- str r1, [r0, 0x1C]
- ldr r1, _080A4FD0 @ =sub_80A4FD4
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A4FCC: .4byte sub_8074C44
-_080A4FD0: .4byte sub_80A4FD4
- thumb_func_end sub_80A4FAC
-
- thumb_func_start sub_80A4FD4
-sub_80A4FD4: @ 80A4FD4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r6, [r5, 0x38]
- movs r1, 0x1
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080A4FEA
- cmp r0, 0x1
- beq _080A5004
- b _080A506A
-_080A4FEA:
- strh r1, [r5, 0x2E]
- ldr r0, _080A4FFC @ =sub_8074C44
- str r0, [r5, 0x1C]
- ldr r1, _080A5000 @ =sub_80A4FD4
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080A506A
- .align 2, 0
-_080A4FFC: .4byte sub_8074C44
-_080A5000: .4byte sub_80A4FD4
-_080A5004:
- ldrh r3, [r5, 0x24]
- ldrh r0, [r5, 0x20]
- adds r3, r0
- movs r0, 0
- strh r3, [r5, 0x20]
- ldrh r4, [r5, 0x26]
- ldrh r1, [r5, 0x22]
- adds r4, r1
- strh r4, [r5, 0x22]
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r2, _080A5078 @ =gUnknown_83E3548
- lsls r0, r6, 16
- asrs r0, 24
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r3, r1
- strh r3, [r5, 0x32]
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r0
- strh r4, [r5, 0x36]
- ldr r0, _080A507C @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A5080 @ =sub_80A5084
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- movs r0, 0x3F
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCB
- bl PlaySE12WithPanning
-_080A506A:
- ldrh r0, [r5, 0x38]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x38]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5078: .4byte gUnknown_83E3548
-_080A507C: .4byte sub_8075590
-_080A5080: .4byte sub_80A5084
- thumb_func_end sub_80A4FD4
-
- thumb_func_start sub_80A5084
-sub_80A5084: @ 80A5084
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _080A50AC
- movs r0, 0xA
- strh r0, [r2, 0x2E]
- ldr r0, _080A50A4 @ =sub_8074C44
- str r0, [r2, 0x1C]
- ldr r1, _080A50A8 @ =sub_80A50B8
- adds r0, r2, 0
- bl StoreSpriteCallbackInData6
- b _080A50B0
- .align 2, 0
-_080A50A4: .4byte sub_8074C44
-_080A50A8: .4byte sub_80A50B8
-_080A50AC:
- ldr r0, _080A50B4 @ =sub_80A4FD4
- str r0, [r2, 0x1C]
-_080A50B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A50B4: .4byte sub_80A4FD4
- thumb_func_end sub_80A5084
-
- thumb_func_start sub_80A50B8
-sub_80A50B8: @ 80A50B8
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x6]
- cmp r1, 0
- bne _080A50E0
- movs r0, 0x3
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldr r0, _080A50D8 @ =sub_8074C44
- str r0, [r5, 0x1C]
- ldr r1, _080A50DC @ =sub_80A5174
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080A5160
- .align 2, 0
-_080A50D8: .4byte sub_8074C44
-_080A50DC: .4byte sub_80A5174
-_080A50E0:
- ldrh r0, [r5, 0x6]
- cmp r0, 0x2
- beq _080A5100
- cmp r0, 0x2
- bgt _080A50F0
- cmp r0, 0x1
- beq _080A50F6
- b _080A5114
-_080A50F0:
- cmp r0, 0x3
- beq _080A5108
- b _080A5114
-_080A50F6:
- ldr r6, _080A50FC @ =0x0000fff8
- adds r7, r6, 0
- b _080A5118
- .align 2, 0
-_080A50FC: .4byte 0x0000fff8
-_080A5100:
- ldr r7, _080A5104 @ =0x0000fff8
- b _080A5116
- .align 2, 0
-_080A5104: .4byte 0x0000fff8
-_080A5108:
- movs r7, 0x8
- ldr r6, _080A5110 @ =0x0000fff8
- b _080A5118
- .align 2, 0
-_080A5110: .4byte 0x0000fff8
-_080A5114:
- movs r7, 0x8
-_080A5116:
- movs r6, 0x8
-_080A5118:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080A5168 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080A516C @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A5170 @ =sub_80A5220
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A5160:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5168: .4byte gUnknown_2037F1B
-_080A516C: .4byte sub_8075590
-_080A5170: .4byte sub_80A5220
- thumb_func_end sub_80A50B8
-
- thumb_func_start sub_80A5174
-sub_80A5174: @ 80A5174
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A5194
- ldrh r0, [r4, 0x30]
- adds r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A51A4
- movs r0, 0x10
- b _080A51A2
-_080A5194:
- ldrh r0, [r4, 0x30]
- subs r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080A51A4
- movs r0, 0
-_080A51A2:
- strh r0, [r4, 0x30]
-_080A51A4:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8075BE8
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A5200 @ =0x00007fff
- bl BlendPalettes
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _080A520C
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- lsls r0, r1, 5
- ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210
- adds r0, r2
- lsls r1, 4
- ldr r3, _080A5208 @ =0x00000101
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x3F
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xB9
- bl PlaySE12WithPanning
- b _080A5214
- .align 2, 0
-_080A5200: .4byte 0x00007fff
-_080A5204: .4byte gPlttBufferUnfaded + 0x210
-_080A5208: .4byte 0x00000101
-_080A520C:
- cmp r0, 0
- bne _080A5214
- ldr r0, _080A521C @ =sub_80A5220
- str r0, [r4, 0x1C]
-_080A5214:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A521C: .4byte sub_80A5220
- thumb_func_end sub_80A5174
-
- thumb_func_start sub_80A5220
-sub_80A5220: @ 80A5220
- push {lr}
- adds r2, r0, 0
- ldr r0, _080A523C @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- ldr r0, _080A5240 @ =0x0000ffff
- cmp r1, r0
- bne _080A5238
- movs r0, 0
- strh r0, [r2, 0x30]
- strh r0, [r2, 0x2E]
- ldr r0, _080A5244 @ =sub_80A5248
- str r0, [r2, 0x1C]
-_080A5238:
- pop {r0}
- bx r0
- .align 2, 0
-_080A523C: .4byte gUnknown_2037F02
-_080A5240: .4byte 0x0000ffff
-_080A5244: .4byte sub_80A5248
- thumb_func_end sub_80A5220
-
- thumb_func_start sub_80A5248
-sub_80A5248: @ 80A5248
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080A527C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080A527C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080A5290
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A5290:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5248
-
- thumb_func_start sub_80A5298
-sub_80A5298: @ 80A5298
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080A52B8 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A52BC
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- b _080A530E
- .align 2, 0
-_080A52B8: .4byte gUnknown_2037F02
-_080A52BC:
- cmp r0, 0x2
- bne _080A52D8
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- b _080A530A
-_080A52D8:
- cmp r0, 0x3
- bne _080A52F4
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- b _080A530A
-_080A52F4:
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
-_080A530A:
- orrs r0, r1
- strb r0, [r3, 0x3]
-_080A530E:
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _080A5334 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080A5338 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldr r1, _080A533C @ =sub_80A4FAC
- str r1, [r3, 0x1C]
- adds r0, r3, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5334: .4byte 0x000003ff
-_080A5338: .4byte 0xfffffc00
-_080A533C: .4byte sub_80A4FAC
- thumb_func_end sub_80A5298
-
- thumb_func_start sub_80A5340
-sub_80A5340: @ 80A5340
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldr r0, _080A5368 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080A537C
- cmp r0, 0x1
- bgt _080A536C
- cmp r0, 0
- beq _080A5372
- b _080A538C
- .align 2, 0
-_080A5368: .4byte gUnknown_2037F02
-_080A536C:
- cmp r0, 0x2
- beq _080A5384
- b _080A538C
-_080A5372:
- ldr r0, _080A5378 @ =sub_80A5398
- b _080A538E
- .align 2, 0
-_080A5378: .4byte sub_80A5398
-_080A537C:
- ldr r0, _080A5380 @ =sub_80A5474
- b _080A538E
- .align 2, 0
-_080A5380: .4byte sub_80A5474
-_080A5384:
- ldr r0, _080A5388 @ =sub_80A54C4
- b _080A538E
- .align 2, 0
-_080A5388: .4byte sub_80A54C4
-_080A538C:
- ldr r0, _080A5394 @ =sub_80A5584
-_080A538E:
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080A5394: .4byte sub_80A5584
- thumb_func_end sub_80A5340
-
- thumb_func_start sub_80A5398
-sub_80A5398: @ 80A5398
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- strh r0, [r4, 0x2E]
- ldr r5, _080A53D8 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- beq _080A53B6
- movs r1, 0x2
-_080A53B6:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A53DC @ =gUnknown_2023D44
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080A53E0 @ =sub_80A53E8
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A53E4 @ =sub_8074DC4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A53D8: .4byte gUnknown_2037F1A
-_080A53DC: .4byte gUnknown_2023D44
-_080A53E0: .4byte sub_80A53E8
-_080A53E4: .4byte sub_8074DC4
- thumb_func_end sub_80A5398
-
- thumb_func_start sub_80A53E8
-sub_80A53E8: @ 80A53E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _080A5424
- ldr r1, _080A5464 @ =gUnknown_2023D44
- ldr r4, _080A5468 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- movs r1, 0
- bl sub_80758E0
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldr r2, _080A546C @ =0xfffffd00
- adds r1, r2, 0
- cmp r0, 0
- beq _080A5420
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r0, 0
-_080A5420:
- strh r1, [r5, 0x36]
- strh r6, [r5, 0x38]
-_080A5424:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80759DC
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A545E
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A5470 @ =sub_80A5584
- str r0, [r5, 0x1C]
-_080A545E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5464: .4byte gUnknown_2023D44
-_080A5468: .4byte gUnknown_2037F1A
-_080A546C: .4byte 0xfffffd00
-_080A5470: .4byte sub_80A5584
- thumb_func_end sub_80A53E8
-
- thumb_func_start sub_80A5474
-sub_80A5474: @ 80A5474
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r5, _080A54B4 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080A5492
- movs r0, 0x3
- negs r0, r0
- adds r1, r0, 0
-_080A5492:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A54B8 @ =gUnknown_2023D44
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080A54BC @ =sub_80A5584
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A54C0 @ =sub_8074DC4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A54B4: .4byte gUnknown_2037F1A
-_080A54B8: .4byte gUnknown_2023D44
-_080A54BC: .4byte sub_80A5584
-_080A54C0: .4byte sub_8074DC4
- thumb_func_end sub_80A5474
-
- thumb_func_start sub_80A54C4
-sub_80A54C4: @ 80A54C4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A54DE
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080A54E4 @ =sub_80A54E8
- str r0, [r1, 0x1C]
-_080A54DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080A54E4: .4byte sub_80A54E8
- thumb_func_end sub_80A54C4
-
- thumb_func_start sub_80A54E8
-sub_80A54E8: @ 80A54E8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A5538
- ldr r1, _080A5524 @ =gUnknown_2023D44
- ldr r4, _080A5528 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A552C
- movs r0, 0xFC
- lsls r0, 8
- strh r0, [r5, 0x36]
- movs r0, 0xC0
- lsls r0, 4
- b _080A5536
- .align 2, 0
-_080A5524: .4byte gUnknown_2023D44
-_080A5528: .4byte gUnknown_2037F1A
-_080A552C:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r5, 0x36]
- movs r0, 0xF4
- lsls r0, 8
-_080A5536:
- strh r0, [r5, 0x38]
-_080A5538:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80759DC
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A5578
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8075980
- ldr r0, _080A5580 @ =sub_80A5584
- str r0, [r5, 0x1C]
-_080A5578:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5580: .4byte sub_80A5584
- thumb_func_end sub_80A54E8
-
- thumb_func_start sub_80A5584
-sub_80A5584: @ 80A5584
- push {lr}
- bl DestroyAnimSprite
- pop {r0}
- bx r0
- thumb_func_end sub_80A5584
-
- thumb_func_start sub_80A5590
-sub_80A5590: @ 80A5590
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080A559C @ =sub_80A55A0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A559C: .4byte sub_80A55A0
- thumb_func_end sub_80A5590
-
- thumb_func_start sub_80A55A0
-sub_80A55A0: @ 80A55A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080A55FA
- cmp r5, 0x1
- bgt _080A55B6
- cmp r5, 0
- beq _080A55BC
- b _080A568E
-_080A55B6:
- cmp r5, 0x2
- beq _080A564C
- b _080A568E
-_080A55BC:
- strh r5, [r4, 0x30]
- ldr r1, _080A5640 @ =gUnknown_2023D44
- ldr r2, _080A5644 @ =gUnknown_2037F1A
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldr r2, _080A5648 @ =0xfffffe00
- adds r1, r2, 0
- cmp r0, 0
- beq _080A55E4
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
-_080A55E4:
- strh r1, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80758E0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080A55FA:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80759DC
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A568E
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A568E
- .align 2, 0
-_080A5640: .4byte gUnknown_2023D44
-_080A5644: .4byte gUnknown_2037F1A
-_080A5648: .4byte 0xfffffe00
-_080A564C:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80759DC
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A568E
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8075980
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A568E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A55A0
-
- thumb_func_start sub_80A5694
-sub_80A5694: @ 80A5694
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A56D8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldr r1, _080A56DC @ =gUnknown_2023D44
- ldr r2, _080A56E0 @ =gUnknown_2037F1A
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r5, 0xA]
- strh r4, [r5, 0xC]
- ldr r0, _080A56E4 @ =gUnknown_2037F02
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- beq _080A56E8
- cmp r1, 0x1
- beq _080A5704
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080A5722
- .align 2, 0
-_080A56D8: .4byte gTasks
-_080A56DC: .4byte gUnknown_2023D44
-_080A56E0: .4byte gUnknown_2037F1A
-_080A56E4: .4byte gUnknown_2037F02
-_080A56E8:
- strh r1, [r5, 0xC]
- movs r0, 0x8
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r0, 0x3
- strh r0, [r5, 0x12]
- cmp r2, 0
- bne _080A56FC
- negs r0, r0
- strh r0, [r5, 0x12]
-_080A56FC:
- ldr r0, _080A5700 @ =sub_80A572C
- b _080A5720
- .align 2, 0
-_080A5700: .4byte sub_80A572C
-_080A5704:
- movs r0, 0x8
- strh r0, [r5, 0xE]
- movs r0, 0xC0
- lsls r0, 3
- strh r0, [r5, 0x10]
- movs r1, 0xC0
- strh r1, [r5, 0x12]
- cmp r2, 0
- bne _080A571E
- negs r0, r0
- strh r0, [r5, 0x10]
- negs r0, r1
- strh r0, [r5, 0x12]
-_080A571E:
- ldr r0, _080A5728 @ =sub_80A58EC
-_080A5720:
- str r0, [r5]
-_080A5722:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5728: .4byte sub_80A58EC
- thumb_func_end sub_80A5694
-
- thumb_func_start sub_80A572C
-sub_80A572C: @ 80A572C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A5750 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080A5746
- b _080A58E6
-_080A5746:
- lsls r0, 2
- ldr r1, _080A5754 @ =_080A5758
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A5750: .4byte gTasks
-_080A5754: .4byte _080A5758
- .align 2, 0
-_080A5758:
- .4byte _080A576C
- .4byte _080A579E
- .4byte _080A57F8
- .4byte _080A5870
- .4byte _080A58B4
-_080A576C:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _080A577C
- ldrh r2, [r4, 0x12]
- ldrh r3, [r4, 0x10]
- adds r2, r3
- b _080A58C2
-_080A577C:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0xC0
- cmp r0, 0
- bne _080A5792
- movs r2, 0xC0
- negs r2, r2
- adds r1, r2, 0
-_080A5792:
- strh r1, [r4, 0x12]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- bl sub_80758E0
- b _080A58A8
-_080A579E:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A57C4
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_80759DC
- b _080A58D4
-_080A57C4:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- ldr r2, _080A57F4 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080A57EA
- movs r1, 0x2
-_080A57EA:
- strh r1, [r4, 0x12]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080A58A8
- .align 2, 0
-_080A57F4: .4byte gSprites
-_080A57F8:
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A5854
- ldrh r1, [r4, 0x14]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A5812
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- b _080A58E6
-_080A5812:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080A5834
- ldr r2, _080A5830 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r4, 0x10]
- adds r1, r2
- b _080A5848
- .align 2, 0
-_080A5830: .4byte gSprites
-_080A5834:
- ldr r2, _080A5850 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0x12]
- subs r1, r2
-_080A5848:
- strh r1, [r0, 0x24]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080A58D4
- .align 2, 0
-_080A5850: .4byte gSprites
-_080A5854:
- ldr r2, _080A586C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x24]
- movs r0, 0xC
- strh r0, [r4, 0xE]
- b _080A58A8
- .align 2, 0
-_080A586C: .4byte gSprites
-_080A5870:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A5880
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080A58E6
-_080A5880:
- movs r0, 0x3
- strh r0, [r4, 0xE]
- ldr r2, _080A58B0 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080A58A6
- movs r1, 0x8
-_080A58A6:
- strh r1, [r4, 0x12]
-_080A58A8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080A58E6
- .align 2, 0
-_080A58B0: .4byte gSprites
-_080A58B4:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A58E0
- ldrh r2, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r2, r0
-_080A58C2:
- strh r2, [r4, 0x10]
- ldr r3, _080A58DC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
-_080A58D4:
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080A58E6
- .align 2, 0
-_080A58DC: .4byte gSprites
-_080A58E0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A58E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A572C
-
- thumb_func_start sub_80A58EC
-sub_80A58EC: @ 80A58EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A5928 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A592C
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_80759DC
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080A5938
- .align 2, 0
-_080A5928: .4byte gTasks
-_080A592C:
- ldrb r0, [r4, 0x8]
- bl sub_8075980
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A5938:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A58EC
-
- thumb_func_start sub_80A5940
-sub_80A5940: @ 80A5940
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A5954 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A595C
- ldr r4, _080A5958 @ =gUnknown_2037F1A
- b _080A595E
- .align 2, 0
-_080A5954: .4byte gUnknown_2037F02
-_080A5958: .4byte gUnknown_2037F1A
-_080A595C:
- ldr r4, _080A599C @ =gUnknown_2037F1B
-_080A595E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldr r1, _080A59A0 @ =sub_80A5A8C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A59A4 @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A599C: .4byte gUnknown_2037F1B
-_080A59A0: .4byte sub_80A5A8C
-_080A59A4: .4byte sub_8074F6C
- thumb_func_end sub_80A5940
-
- thumb_func_start sub_80A59A8
-sub_80A59A8: @ 80A59A8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A59E0 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A59E4 @ =0x0000ffd0
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080A59E8 @ =sub_80A5A44
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A59EC @ =sub_8074F6C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A59E0: .4byte gUnknown_2037F1B
-_080A59E4: .4byte 0x0000ffd0
-_080A59E8: .4byte sub_80A5A44
-_080A59EC: .4byte sub_8074F6C
- thumb_func_end sub_80A59A8
-
- thumb_func_start sub_80A59F0
-sub_80A59F0: @ 80A59F0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A5A34 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A5A38 @ =gUnknown_2037F02
- ldr r2, _080A5A3C @ =0x0000ffd0
- adds r0, r2
- ldrh r1, [r1]
- adds r0, r1
- movs r6, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- strh r6, [r4, 0x30]
- ldr r0, _080A5A40 @ =sub_80A5A8C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5A34: .4byte gUnknown_2037F1B
-_080A5A38: .4byte gUnknown_2037F02
-_080A5A3C: .4byte 0x0000ffd0
-_080A5A40: .4byte sub_80A5A8C
- thumb_func_end sub_80A59F0
-
- thumb_func_start sub_80A5A44
-sub_80A5A44: @ 80A5A44
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A5A6E
- movs r0, 0xC
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A5A74 @ =sub_80A5A7C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A5A78 @ =sub_8074CD0
- str r0, [r4, 0x1C]
-_080A5A6E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5A74: .4byte sub_80A5A7C
-_080A5A78: .4byte sub_8074CD0
- thumb_func_end sub_80A5A44
-
- thumb_func_start sub_80A5A7C
-sub_80A5A7C: @ 80A5A7C
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- ldr r1, _080A5A88 @ =sub_80A5A8C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A5A88: .4byte sub_80A5A8C
- thumb_func_end sub_80A5A7C
-
- thumb_func_start sub_80A5A8C
-sub_80A5A8C: @ 80A5A8C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A5AD4
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A5AD4
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080A5AD4:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5A8C
-
- thumb_func_start sub_80A5AD8
-sub_80A5AD8: @ 80A5AD8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A5AEC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A5AF4
- ldr r4, _080A5AF0 @ =gUnknown_2037F1A
- b _080A5AF6
- .align 2, 0
-_080A5AEC: .4byte gUnknown_2037F02
-_080A5AF0: .4byte gUnknown_2037F1A
-_080A5AF4:
- ldr r4, _080A5B30 @ =gUnknown_2037F1B
-_080A5AF6:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A5B34 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x30]
- ldr r0, _080A5B38 @ =sub_80A5B3C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5B30: .4byte gUnknown_2037F1B
-_080A5B34: .4byte gUnknown_2037F02
-_080A5B38: .4byte sub_80A5B3C
- thumb_func_end sub_80A5AD8
-
- thumb_func_start sub_80A5B3C
-sub_80A5B3C: @ 80A5B3C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _080A5B5C
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_080A5B5C:
- ldrh r0, [r2, 0x22]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x22]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A5B78
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A5B78:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5B3C
-
- thumb_func_start sub_80A5B7C
-sub_80A5B7C: @ 80A5B7C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A5BC4 @ =gUnknown_2037F1A
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0xC
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- movs r0, 0x2
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- subs r0, 0x42
- bl sub_8073A44
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _080A5BC8 @ =sub_80A5BCC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5BC4: .4byte gUnknown_2037F1A
-_080A5BC8: .4byte sub_80A5BCC
- thumb_func_end sub_80A5B7C
-
- thumb_func_start sub_80A5BCC
-sub_80A5BCC: @ 80A5BCC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080A5C38
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080A5C1E
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5C1E
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBB
- bl PlaySE12WithPanning
-_080A5C1E:
- movs r1, 0
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A5C38
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080A5C38:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A5C62
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- ble _080A5C62
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080A5C62
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A5C62:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5BCC
-
- thumb_func_start sub_80A5C68
-sub_80A5C68: @ 80A5C68
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A5CB2
- ldr r4, _080A5CC8 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- ldr r5, _080A5CCC @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x2]
- adds r0, r5
- strh r0, [r6, 0x22]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A5CAC
- ldrh r0, [r6, 0x22]
- adds r0, 0xA
- strh r0, [r6, 0x22]
-_080A5CAC:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
-_080A5CB2:
- ldr r0, _080A5CCC @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- ldr r0, _080A5CD0 @ =0x0000ffff
- cmp r1, r0
- bne _080A5CC2
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A5CC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5CC8: .4byte gUnknown_2037F1A
-_080A5CCC: .4byte gUnknown_2037F02
-_080A5CD0: .4byte 0x0000ffff
- thumb_func_end sub_80A5C68
-
- thumb_func_start sub_80A5CD4
-sub_80A5CD4: @ 80A5CD4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A5CF4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080A5D00
- ldr r1, _080A5CF8 @ =gUnknown_2037F02
- ldr r0, _080A5CFC @ =0x0000ffff
- strh r0, [r1, 0xE]
- b _080A5D3E
- .align 2, 0
-_080A5CF4: .4byte gTasks
-_080A5CF8: .4byte gUnknown_2037F02
-_080A5CFC: .4byte 0x0000ffff
-_080A5D00:
- cmp r0, 0x2
- bne _080A5D0C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A5D44
-_080A5D0C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A5D44
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r2, [r4, 0xA]
- adds r2, 0x1
- strh r2, [r4, 0xA]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A5D44
-_080A5D3E:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080A5D44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5CD4
-
- thumb_func_start sub_80A5D4C
-sub_80A5D4C: @ 80A5D4C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075114
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A5D74 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080A5D78 @ =sub_80A5D7C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D74: .4byte gUnknown_2037F02
-_080A5D78: .4byte sub_80A5D7C
- thumb_func_end sub_80A5D4C
-
- thumb_func_start sub_80A5D7C
-sub_80A5D7C: @ 80A5D7C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080A5D90
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080A5DCC
-_080A5D90:
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldr r4, _080A5DD4 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080A5DD8 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A5DDC @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A5DCC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5DD4: .4byte gUnknown_2037F1A
-_080A5DD8: .4byte sub_8075590
-_080A5DDC: .4byte DestroyAnimSprite
- thumb_func_end sub_80A5D7C
-
- thumb_func_start sub_80A5DE0
-sub_80A5DE0: @ 80A5DE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A5E30 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A5E28
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A5E28
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A5E28:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E30: .4byte gTasks
- thumb_func_end sub_80A5DE0
-
- thumb_func_start sub_80A5E34
-sub_80A5E34: @ 80A5E34
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _080A5E9C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080A5E90
- ldr r6, _080A5EA0 @ =gUnknown_2037F02
- ldr r5, _080A5EA4 @ =gUnknown_3004FF0
-_080A5E48:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080A5E64
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A5E64
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_080A5E64:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080A5E82
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5E82
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_080A5E82:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A5E9C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080A5E48
-_080A5E90:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E9C: .4byte gBattlersCount
-_080A5EA0: .4byte gUnknown_2037F02
-_080A5EA4: .4byte gUnknown_3004FF0
- thumb_func_end sub_80A5E34
-
- thumb_func_start sub_80A5EA8
-sub_80A5EA8: @ 80A5EA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _080A5EC2
-_080A5EB2:
- ldr r0, _080A5ED8 @ =gUnknown_3004FF0
- adds r0, r4, r0
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080A5EC2:
- ldr r0, _080A5EDC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080A5EB2
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5ED8: .4byte gUnknown_3004FF0
-_080A5EDC: .4byte gBattlersCount
- thumb_func_end sub_80A5EA8
-
- thumb_func_start sub_80A5EE0
-sub_80A5EE0: @ 80A5EE0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A5EF6
- movs r0, 0x30
- strh r0, [r4, 0x20]
- movs r0, 0x28
- b _080A5EFE
-_080A5EF6:
- ldr r0, _080A5F20 @ =gUnknown_2037F02
- ldrh r1, [r0]
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080A5EFE:
- strh r0, [r4, 0x22]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080A5F24 @ =sub_80A5F28
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5F20: .4byte gUnknown_2037F02
-_080A5F24: .4byte sub_80A5F28
- thumb_func_end sub_80A5EE0
-
- thumb_func_start sub_80A5F28
-sub_80A5F28: @ 80A5F28
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080A5F3A
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A5F3A:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F28
-
- thumb_func_start sub_80A5F40
-sub_80A5F40: @ 80A5F40
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A5F78 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r2, _080A5F7C @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r0, _080A5F80 @ =sub_80A5F84
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5F78: .4byte gUnknown_2037F1A
-_080A5F7C: .4byte gUnknown_2037F02
-_080A5F80: .4byte sub_80A5F84
- thumb_func_end sub_80A5F40
-
- thumb_func_start sub_80A5F84
-sub_80A5F84: @ 80A5F84
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A5FAE
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r2, [r1, 0x32]
- movs r3, 0x32
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _080A5FAE
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- adds r0, r2, 0x1
- strh r0, [r1, 0x32]
-_080A5FAE:
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080A5FBC
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A5FBC:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F84
-
- thumb_func_start sub_80A5FC0
-sub_80A5FC0: @ 80A5FC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- mov r8, r0
- ldr r0, _080A6090 @ =0x0000ffff
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldr r0, _080A6094 @ =gTasks
- mov r9, r0
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r6, r5, r0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0xA]
- strh r4, [r6, 0xC]
- strh r1, [r6, 0xE]
- strh r4, [r6, 0x10]
- strh r4, [r6, 0x12]
- strh r4, [r6, 0x14]
- movs r0, 0xD
- strh r0, [r6, 0x16]
- movs r0, 0xE
- strh r0, [r6, 0x18]
- movs r0, 0xF
- strh r0, [r6, 0x1A]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8075CB8
- mov r10, r0
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- movs r0, 0x8
- add r9, r0
- add r5, r9
- adds r0, r5, 0
- adds r0, 0x1C
- adds r5, 0x1E
- adds r1, r5, 0
- mov r2, r8
- bl sub_80765C0
- ldr r0, _080A6098 @ =0x000027d2
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- mov r0, r10
- orrs r0, r1
- mov r10, r0
- ldr r0, _080A609C @ =0x000027d3
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0
- mov r1, r10
- orrs r4, r1
- ldr r0, _080A60A0 @ =0x00007fbb
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080A60A4 @ =sub_80A60A8
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6090: .4byte 0x0000ffff
-_080A6094: .4byte gTasks
-_080A6098: .4byte 0x000027d2
-_080A609C: .4byte 0x000027d3
-_080A60A0: .4byte 0x00007fbb
-_080A60A4: .4byte sub_80A60A8
- thumb_func_end sub_80A5FC0
-
- thumb_func_start sub_80A60A8
-sub_80A60A8: @ 80A60A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A60D0 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080A6194
- cmp r1, 0x1
- bgt _080A60D4
- cmp r1, 0
- beq _080A60E2
- b _080A6232
- .align 2, 0
-_080A60D0: .4byte gTasks
-_080A60D4:
- cmp r1, 0x2
- bne _080A60DA
- b _080A61EC
-_080A60DA:
- cmp r1, 0x3
- bne _080A60E0
- b _080A6220
-_080A60E0:
- b _080A6232
-_080A60E2:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _080A60F0
- b _080A6232
-_080A60F0:
- strh r1, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080A613C
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r2, [r4, 0x18]
- ldrh r3, [r4, 0x12]
- adds r2, r3
- strh r2, [r4, 0x12]
- ldrh r1, [r4, 0x1A]
- ldrh r5, [r4, 0x14]
- adds r1, r5
- strh r1, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r2, 11
- orrs r0, r2
- lsrs r1, 6
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- b _080A6146
-_080A613C:
- ldr r7, _080A618C @ =0x00007fbb
- mov r12, r7
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080A6146:
- movs r2, 0x1
- movs r3, 0
- movs r1, 0
-_080A614C:
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- ands r0, r2
- lsls r5, r2, 17
- adds r6, r3, 0
- adds r6, 0x10
- adds r1, 0x1
- mov r8, r1
- cmp r0, 0
- beq _080A6178
- movs r1, 0x1
- ldr r2, _080A6190 @ =gPlttBufferFaded
-_080A6164:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r2
- mov r7, r12
- strh r7, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080A6164
-_080A6178:
- lsrs r2, r5, 16
- lsls r0, r6, 16
- lsrs r3, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080A614C
- b _080A6232
- .align 2, 0
-_080A618C: .4byte 0x00007fbb
-_080A6190: .4byte gPlttBufferFaded
-_080A6194:
- ldr r0, _080A61DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A6232
- movs r2, 0
- ldr r3, _080A61E0 @ =gSprites
- movs r5, 0x14
- adds r5, r3
- mov r12, r5
- ldr r7, _080A61E4 @ =gUnknown_83E3734
- mov r8, r7
- ldr r6, _080A61E8 @ =gUnknown_83E3764
- movs r5, 0x1
-_080A61B2:
- lsls r0, r2, 4
- adds r0, r2
- lsls r1, r0, 2
- mov r7, r12
- adds r0, r1, r7
- ldr r0, [r0]
- cmp r0, r8
- beq _080A61C6
- cmp r0, r6
- bne _080A61CA
-_080A61C6:
- adds r0, r1, r3
- strh r5, [r0, 0x2E]
-_080A61CA:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080A61B2
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080A6214
- .align 2, 0
-_080A61DC: .4byte gPaletteFade
-_080A61E0: .4byte gSprites
-_080A61E4: .4byte gUnknown_83E3734
-_080A61E8: .4byte gUnknown_83E3764
-_080A61EC:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080A6232
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- bl sub_80765C8
- ldr r1, _080A621C @ =0x00007fbb
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080A6214:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080A6232
- .align 2, 0
-_080A621C: .4byte 0x00007fbb
-_080A6220:
- ldr r0, _080A6240 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A6232
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A6232:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6240: .4byte gPaletteFade
- thumb_func_end sub_80A60A8
-
- thumb_func_start sub_80A6244
-sub_80A6244: @ 80A6244
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A62C8 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bgt _080A6256
- movs r0, 0x2
- strh r0, [r6, 0x4]
-_080A6256:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x7F
- ble _080A6262
- movs r0, 0x7F
- strh r0, [r6, 0x4]
-_080A6262:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x30]
- ldr r4, _080A62CC @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r1, [r5, 0x20]
- strh r1, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A62D4
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080A62D0 @ =0xffffec00
- b _080A62FA
- .align 2, 0
-_080A62C8: .4byte gUnknown_2037F02
-_080A62CC: .4byte gUnknown_2037F1B
-_080A62D0: .4byte 0xffffec00
-_080A62D4:
- ldr r0, _080A6314 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A631C
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 5
-_080A62FA:
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080A6318 @ =0xfffff600
- bl __divsi3
- strh r0, [r5, 0x38]
- b _080A6358
- .align 2, 0
-_080A6314: .4byte gUnknown_2037F1A
-_080A6318: .4byte 0xfffff600
-_080A631C:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- subs r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080A6364 @ =0xffffec00
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 4
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080A6358:
- ldr r0, _080A6368 @ =sub_80A636C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6364: .4byte 0xffffec00
-_080A6368: .4byte sub_80A636C
- thumb_func_end sub_80A6244
-
- thumb_func_start sub_80A636C
-sub_80A636C: @ 80A636C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A63A2
- ldrh r0, [r2, 0x3A]
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x22]
-_080A63A2:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080A63B0
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A63B0:
- pop {r0}
- bx r0
- thumb_func_end sub_80A636C
-
- thumb_func_start sub_80A63B4
-sub_80A63B4: @ 80A63B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080A6444 @ =gTasks
- adds r6, r0, r1
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x8]
- ldr r0, _080A6448 @ =0x00002771
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xA]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- lsls r0, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- ldr r2, _080A644C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- movs r5, 0x1
- ldr r2, _080A6450 @ =gPlttBufferUnfaded
-_080A640C:
- adds r1, r3, r5
- lsls r1, 1
- adds r1, r2
- adds r0, r4, r5
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080A640C
- adds r0, r3, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0
- bl BlendPalette
- movs r0, 0
- strh r0, [r6, 0xE]
- movs r5, 0
- ldr r7, _080A644C @ =gSprites
- movs r1, 0x1C
- adds r1, r7
- mov r9, r1
- b _080A6488
- .align 2, 0
-_080A6444: .4byte gTasks
-_080A6448: .4byte 0x00002771
-_080A644C: .4byte gSprites
-_080A6450: .4byte gPlttBufferUnfaded
-_080A6454:
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r6, 0xA]
- lsls r1, 4
- ldrb r3, [r4, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0
- strh r0, [r4, 0x2E]
- lsls r0, r5, 7
- strh r0, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x32]
- add r2, r9
- ldr r0, _080A64BC @ =sub_80A653C
- str r0, [r2]
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080A6488:
- cmp r5, 0x1
- bhi _080A649A
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A6454
-_080A649A:
- ldr r0, _080A64C0 @ =sub_80A64E0
- str r0, [r6]
- ldr r0, _080A64C4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A64C8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl ClearGpuRegBits
- b _080A64D2
- .align 2, 0
-_080A64BC: .4byte sub_80A653C
-_080A64C0: .4byte sub_80A64E0
-_080A64C4: .4byte gUnknown_2037F1A
-_080A64C8:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl ClearGpuRegBits
-_080A64D2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A63B4
-
- thumb_func_start sub_80A64E0
-sub_80A64E0: @ 80A64E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A6514 @ =gTasks
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6532
- ldr r0, _080A6518 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A651C
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _080A6526
- .align 2, 0
-_080A6514: .4byte gTasks
-_080A6518: .4byte gUnknown_2037F1A
-_080A651C:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_080A6526:
- ldr r0, _080A6538 @ =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A6532:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6538: .4byte 0x00002771
- thumb_func_end sub_80A64E0
-
- thumb_func_start sub_80A653C
-sub_80A653C: @ 80A653C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A6558
- movs r0, 0
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_080A6558:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- ble _080A6580
- ldr r2, _080A657C @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xE]
- subs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r5, 0
- bl obj_delete_but_dont_free_vram
- b _080A65C2
- .align 2, 0
-_080A657C: .4byte gTasks
-_080A6580:
- ldr r4, _080A65C8 @ =gUnknown_825E074
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x6
- bl __divsi3
- strh r0, [r5, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0xD
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrh r1, [r5, 0x30]
- adds r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
-_080A65C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65C8: .4byte gUnknown_825E074
- thumb_func_end sub_80A653C
-
- thumb_func_start sub_80A65CC
-sub_80A65CC: @ 80A65CC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080A65E0 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- ldr r0, _080A65E4 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65E0: .4byte DestroyAnimSprite
-_080A65E4: .4byte sub_8074F6C
- thumb_func_end sub_80A65CC
-
- thumb_func_start sub_80A65E8
-sub_80A65E8: @ 80A65E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _080A6698 @ =gUnknown_83E3898
- ldrh r0, [r4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- beq _080A662C
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r5, _080A669C @ =gPlttBufferFaded
-_080A6614:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r5
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080A6614
-_080A662C:
- movs r4, 0x1
- ldr r0, _080A6698 @ =gUnknown_83E3898
- mov r8, r0
-_080A6632:
- lsls r0, r4, 1
- adds r0, r4
- lsls r5, r0, 2
- mov r1, r8
- adds r0, r5, r1
- ldrh r0, [r0]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, 0x1
- mov r12, r4
- cmp r3, 0xFF
- beq _080A667A
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r7, _080A669C @ =gPlttBufferFaded
- ldr r6, _080A6698 @ =gUnknown_83E3898
- adds r4, r5, 0
-_080A6660:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r7
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080A6660
-_080A667A:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080A6632
- mov r0, r9
- bl DestroyAnimVisualTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6698: .4byte gUnknown_83E3898
-_080A669C: .4byte gPlttBufferFaded
- thumb_func_end sub_80A65E8
-
- thumb_func_start sub_80A66A0
-sub_80A66A0: @ 80A66A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0x1
- ldr r6, _080A66D0 @ =gUnknown_83E3898
-_080A66AA:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080A66AA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A66D0: .4byte gUnknown_83E3898
- thumb_func_end sub_80A66A0
-
- thumb_func_start sub_80A66D4
-sub_80A66D4: @ 80A66D4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8074FCC
- ldr r4, _080A672C @ =gUnknown_2037F02
- ldrb r1, [r4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r2, _080A6730 @ =gUnknown_83E3898
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A6710
- lsls r2, r0, 4
- ldrb r1, [r5, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
-_080A6710:
- ldrh r0, [r4, 0x2]
- movs r1, 0
- strh r0, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x34]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A6734
- movs r6, 0x30
- movs r3, 0x28
- b _080A674E
- .align 2, 0
-_080A672C: .4byte gUnknown_2037F02
-_080A6730: .4byte gUnknown_83E3898
-_080A6734:
- ldr r4, _080A6784 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r3, r0, 24
-_080A674E:
- ldrh r0, [r5, 0x20]
- lsls r1, r0, 4
- strh r1, [r5, 0x36]
- ldrh r1, [r5, 0x22]
- lsls r2, r1, 4
- strh r2, [r5, 0x38]
- subs r0, r6, r0
- lsls r0, 16
- asrs r0, 16
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- adds r2, r5, 0
- adds r2, 0x3A
- adds r3, r5, 0
- adds r3, 0x3C
- movs r4, 0x28
- str r4, [sp]
- bl sub_80A678C
- ldr r0, _080A6788 @ =sub_80A67E4
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6784: .4byte gUnknown_2037F1B
-_080A6788: .4byte sub_80A67E4
- thumb_func_end sub_80A66D4
-
- thumb_func_start sub_80A678C
-sub_80A678C: @ 80A678C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x18]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bge _080A67AE
- lsls r0, r1, 24
- negs r0, r0
- lsrs r1, r0, 24
-_080A67AE:
- lsls r5, r2, 8
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bne _080A67C2
- movs r4, 0x1
-_080A67C2:
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- strh r0, [r7]
- lsls r0, r6, 16
- asrs r0, 8
- adds r1, r4, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A678C
-
- thumb_func_start sub_80A67E4
-sub_80A67E4: @ 80A67E4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r1, r0, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _080A6800
- adds r0, 0xFF
-_080A6800:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- ldrh r3, [r4, 0x38]
- adds r2, r3
- strh r2, [r4, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xF
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bhi _080A684E
- lsls r0, r2, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _080A684E
- cmp r1, 0x80
- ble _080A6856
-_080A684E:
- adds r0, r4, 0
- bl move_anim_8074EE0
- b _080A68A6
-_080A6856:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _080A68A6
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r1
- ble _080A68A6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A687E
- strh r5, [r4, 0x30]
-_080A687E:
- ldr r2, _080A68AC @ =gUnknown_83E3898
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A68A6
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080A68A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A68AC: .4byte gUnknown_83E3898
- thumb_func_end sub_80A67E4
-
- thumb_func_start sub_80A68B0
-sub_80A68B0: @ 80A68B0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _080A6934 @ =gUnknown_2037F1A
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A68CE
- ldr r1, _080A6938 @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A68CE:
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A6938 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r7]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x32]
- strh r5, [r6, 0x34]
- ldrh r0, [r6, 0x20]
- lsls r0, 4
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x22]
- lsls r0, 4
- strh r0, [r6, 0x38]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- lsls r0, 4
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3A]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- lsls r0, 7
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3C]
- ldr r0, _080A693C @ =sub_80A6940
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6934: .4byte gUnknown_2037F1A
-_080A6938: .4byte gUnknown_2037F02
-_080A693C: .4byte sub_80A6940
- thumb_func_end sub_80A68B0
-
- thumb_func_start sub_80A6940
-sub_80A6940: @ 80A6940
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x22]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080A699E
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A699E
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x12
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x12
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A699E
- movs r0, 0x1
- strh r0, [r4, 0x34]
-_080A699E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- bne _080A69B2
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080A69B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6940
-
- thumb_func_start sub_80A69B8
-sub_80A69B8: @ 80A69B8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A69D8 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080A69DC
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
- movs r6, 0x10
- b _080A69DE
- .align 2, 0
-_080A69D8: .4byte gUnknown_2037F02
-_080A69DC:
- ldr r6, _080A6A18 @ =0x0000fff0
-_080A69DE:
- ldr r4, _080A6A1C @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x8
- strh r0, [r5, 0x22]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r0, _080A6A20 @ =sub_8074C44
- str r0, [r5, 0x1C]
- ldr r1, _080A6A24 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A18: .4byte 0x0000fff0
-_080A6A1C: .4byte gUnknown_2037F1A
-_080A6A20: .4byte sub_8074C44
-_080A6A24: .4byte DestroyAnimSprite
- thumb_func_end sub_80A69B8
-
- thumb_func_start sub_80A6A28
-sub_80A6A28: @ 80A6A28
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldr r5, _080A6AA0 @ =gUnknown_2037F02
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r2, _080A6AA4 @ =gUnknown_83E3898
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A6A68
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080A6A68:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- cmp r0, 0
- bne _080A6A74
- ldr r2, _080A6AA8 @ =0x0000ffe0
-_080A6A74:
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x20]
- strh r1, [r4, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- subs r0, 0x28
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x38]
- ldr r0, _080A6AAC @ =sub_80A6AB0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6AA0: .4byte gUnknown_2037F02
-_080A6AA4: .4byte gUnknown_83E3898
-_080A6AA8: .4byte 0x0000ffe0
-_080A6AAC: .4byte sub_80A6AB0
- thumb_func_end sub_80A6A28
-
- thumb_func_start sub_80A6AB0
-sub_80A6AB0: @ 80A6AB0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A6B00
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r4, 0x24]
- movs r3, 0x24
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080A6ADC
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080A6ADC:
- lsls r0, r1, 16
- asrs r0, 16
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A6B06
-_080A6B00:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A6B06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6AB0
-
- thumb_func_start sub_80A6B0C
-sub_80A6B0C: @ 80A6B0C
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A6B2C
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8076B2C
- adds r0, 0x8
- b _080A6B36
-_080A6B2C:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8076B2C
- subs r0, 0x8
-_080A6B36:
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8074480
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0
- bl sub_8076B2C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A6B58
- adds r0, 0x3
-_080A6B58:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6B0C
-
- thumb_func_start sub_80A6B64
-sub_80A6B64: @ 80A6B64
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A6B78 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6B80
- ldr r0, _080A6B7C @ =gUnknown_2037F1A
- b _080A6B82
- .align 2, 0
-_080A6B78: .4byte gUnknown_2037F02
-_080A6B7C: .4byte gUnknown_2037F1A
-_080A6B80:
- ldr r0, _080A6BC0 @ =gUnknown_2037F1B
-_080A6B82:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A6B0C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldr r0, _080A6BC4 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0x2E]
- adds r0, r1, 0x2
- strh r0, [r5, 0x30]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _080A6BC8 @ =sub_80A6BD0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6BCC @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6BC0: .4byte gUnknown_2037F1B
-_080A6BC4: .4byte gUnknown_2037F02
-_080A6BC8: .4byte sub_80A6BD0
-_080A6BCC: .4byte sub_8074F6C
- thumb_func_end sub_80A6B64
-
- thumb_func_start sub_80A6BD0
-sub_80A6BD0: @ 80A6BD0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080A6BF8
- ldr r1, _080A6C00 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080A6C04 @ =sub_8074F6C
- str r0, [r4, 0x1C]
-_080A6BF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C00: .4byte DestroyAnimSprite
-_080A6C04: .4byte sub_8074F6C
- thumb_func_end sub_80A6BD0
-
- thumb_func_start sub_80A6C08
-sub_80A6C08: @ 80A6C08
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A6C1C @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6C24
- ldr r0, _080A6C20 @ =gUnknown_2037F1A
- b _080A6C26
- .align 2, 0
-_080A6C1C: .4byte gUnknown_2037F02
-_080A6C20: .4byte gUnknown_2037F1A
-_080A6C24:
- ldr r0, _080A6C44 @ =gUnknown_2037F1B
-_080A6C26:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80A6B0C
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r1, _080A6C48 @ =sub_80A6C50
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6C4C @ =sub_8074F50
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C44: .4byte gUnknown_2037F1B
-_080A6C48: .4byte sub_80A6C50
-_080A6C4C: .4byte sub_8074F50
- thumb_func_end sub_80A6C08
-
- thumb_func_start sub_80A6C50
-sub_80A6C50: @ 80A6C50
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A6C76
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080A6C7C @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6C80 @ =sub_8074F50
- str r0, [r4, 0x1C]
-_080A6C76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C7C: .4byte move_anim_8074EE0
-_080A6C80: .4byte sub_8074F50
- thumb_func_end sub_80A6C50
-
- thumb_func_start sub_80A6C84
-sub_80A6C84: @ 80A6C84
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _080A6C98 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6CA0
- ldr r0, _080A6C9C @ =gUnknown_2037F1A
- b _080A6CA2
- .align 2, 0
-_080A6C98: .4byte gUnknown_2037F02
-_080A6C9C: .4byte gUnknown_2037F1A
-_080A6CA0:
- ldr r0, _080A6CF4 @ =gUnknown_2037F1B
-_080A6CA2:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8076B2C
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080A6CCA
- movs r0, 0xA
- strh r0, [r4, 0x22]
-_080A6CCA:
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r6, [r4, 0x30]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- strh r0, [r4, 0x32]
- ldrb r0, [r1]
- adds r0, 0x4
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x36]
- ldr r1, _080A6CF8 @ =sub_80A6D00
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6CFC @ =sub_8074F50
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6CF4: .4byte gUnknown_2037F1B
-_080A6CF8: .4byte sub_80A6D00
-_080A6CFC: .4byte sub_8074F50
- thumb_func_end sub_80A6C84
-
- thumb_func_start sub_80A6D00
-sub_80A6D00: @ 80A6D00
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080A6D16
- ldr r0, _080A6D1C @ =sub_80A6D20
- str r0, [r1, 0x1C]
-_080A6D16:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6D1C: .4byte sub_80A6D20
- thumb_func_end sub_80A6D00
-
- thumb_func_start sub_80A6D20
-sub_80A6D20: @ 80A6D20
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x4
- strh r1, [r2, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFE
- ble _080A6D52
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080A6D4C
- strh r0, [r2, 0x24]
- ldr r0, _080A6D48 @ =sub_80A6C50
- str r0, [r2, 0x1C]
- b _080A6D88
- .align 2, 0
-_080A6D48: .4byte sub_80A6C50
-_080A6D4C:
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2, 0x30]
-_080A6D52:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- ble _080A6D62
- ldrh r0, [r2, 0x34]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080A6D62:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x9F
- ble _080A6D72
- ldrh r0, [r2, 0x32]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080A6D72:
- ldr r1, _080A6D8C @ =gUnknown_825E074
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- asrs r1, r0, 1
- adds r0, r1
- strh r0, [r2, 0x24]
-_080A6D88:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6D8C: .4byte gUnknown_825E074
- thumb_func_end sub_80A6D20
-
- thumb_func_start sub_80A6D90
-sub_80A6D90: @ 80A6D90
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A6DA4 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6DAC
- ldr r0, _080A6DA8 @ =gUnknown_2037F1A
- b _080A6DAE
- .align 2, 0
-_080A6DA4: .4byte gUnknown_2037F02
-_080A6DA8: .4byte gUnknown_2037F1A
-_080A6DAC:
- ldr r0, _080A6DD0 @ =gUnknown_2037F1B
-_080A6DAE:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A6B0C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A6DD4
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x2
- b _080A6DDE
- .align 2, 0
-_080A6DD0: .4byte gUnknown_2037F1B
-_080A6DD4:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3
-_080A6DDE:
- strh r0, [r5, 0x2E]
- ldr r0, _080A6DEC @ =sub_80A6DF0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6DEC: .4byte sub_80A6DF0
- thumb_func_end sub_80A6D90
-
- thumb_func_start sub_80A6DF0
-sub_80A6DF0: @ 80A6DF0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080A6E1E
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, _080A6E24 @ =sub_80A6E2C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6E28 @ =sub_8074F6C
- str r0, [r4, 0x1C]
-_080A6E1E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6E24: .4byte sub_80A6E2C
-_080A6E28: .4byte sub_8074F6C
- thumb_func_end sub_80A6DF0
-
- thumb_func_start sub_80A6E2C
-sub_80A6E2C: @ 80A6E2C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A6E44
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A6E44:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6E2C
-
- thumb_func_start sub_80A6E48
-sub_80A6E48: @ 80A6E48
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r5, _080A6E8C @ =gUnknown_2037F02
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_8074FF8
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x36]
- ldr r1, _080A6E90 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080A6E94 @ =sub_8074BE4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6E8C: .4byte gUnknown_2037F02
-_080A6E90: .4byte move_anim_8074EE0
-_080A6E94: .4byte sub_8074BE4
- thumb_func_end sub_80A6E48
-
- thumb_func_start sub_80A6E98
-sub_80A6E98: @ 80A6E98
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A6EAC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6EB4
- ldr r0, _080A6EB0 @ =gUnknown_2037F1A
- b _080A6EB6
- .align 2, 0
-_080A6EAC: .4byte gUnknown_2037F02
-_080A6EB0: .4byte gUnknown_2037F1A
-_080A6EB4:
- ldr r0, _080A6ED0 @ =gUnknown_2037F1B
-_080A6EB6:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80A6B0C
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x30]
- ldr r0, _080A6ED4 @ =sub_80A6ED8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6ED0: .4byte gUnknown_2037F1B
-_080A6ED4: .4byte sub_80A6ED8
- thumb_func_end sub_80A6E98
-
- thumb_func_start sub_80A6ED8
-sub_80A6ED8: @ 80A6ED8
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080A6F0A
- cmp r0, 0x1
- bgt _080A6EEE
- cmp r0, 0
- beq _080A6EF4
- b _080A6F38
-_080A6EEE:
- cmp r0, 0x2
- beq _080A6F24
- b _080A6F38
-_080A6EF4:
- ldrh r0, [r1, 0x26]
- subs r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080A6F38
- b _080A6F1C
-_080A6F0A:
- ldrh r0, [r1, 0x26]
- adds r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080A6F38
-_080A6F1C:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080A6F38
-_080A6F24:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080A6F38
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A6F38:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6ED8
-
- thumb_func_start sub_80A6F3C
-sub_80A6F3C: @ 80A6F3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _080A6F88 @ =gSprites
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x30]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080A6F7A
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080A6F7A:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6F88: .4byte gSprites
- thumb_func_end sub_80A6F3C
-
- thumb_func_start sub_80A6F8C
-sub_80A6F8C: @ 80A6F8C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A6FD4 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080A6FD8 @ =gUnknown_2023D44
- ldr r0, _080A6FDC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A6FE4
- ldr r0, _080A6FE0 @ =gUnknown_2037F02
- ldrh r1, [r5, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r5, 0x20]
- adds r1, r0, 0
- b _080A6FEE
- .align 2, 0
-_080A6FD4: .4byte gUnknown_2037F1A
-_080A6FD8: .4byte gUnknown_2023D44
-_080A6FDC: .4byte gUnknown_2037F1B
-_080A6FE0: .4byte gUnknown_2037F02
-_080A6FE4:
- ldr r1, _080A7018 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080A6FEE:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- strh r6, [r5, 0x32]
- ldr r0, _080A701C @ =sub_80A6F3C
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7018: .4byte gUnknown_2037F02
-_080A701C: .4byte sub_80A6F3C
- thumb_func_end sub_80A6F8C
-
- thumb_func_start sub_80A7020
-sub_80A7020: @ 80A7020
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080A704C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x38]
- ldr r0, _080A7050 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080A7054 @ =sub_80A7058
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A704C: .4byte gUnknown_2037F02
-_080A7050: .4byte sub_8074C44
-_080A7054: .4byte sub_80A7058
- thumb_func_end sub_80A7020
-
- thumb_func_start sub_80A7058
-sub_80A7058: @ 80A7058
- push {lr}
- ldrh r1, [r0, 0x30]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0xF
- strh r1, [r0, 0x36]
- ldr r1, _080A7078 @ =sub_8075590
- str r1, [r0, 0x1C]
- ldr r1, _080A707C @ =sub_80A7080
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A7078: .4byte sub_8075590
-_080A707C: .4byte sub_80A7080
- thumb_func_end sub_80A7058
-
- thumb_func_start sub_80A7080
-sub_80A7080: @ 80A7080
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x38]
- movs r3, 0x38
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080A7096
- adds r0, r1, 0
- bl DestroyAnimSprite
- b _080A709A
-_080A7096:
- subs r0, r2, 0x1
- strh r0, [r1, 0x38]
-_080A709A:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7080
-
- thumb_func_start sub_80A70A0
-sub_80A70A0: @ 80A70A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A70CC @ =gUnknown_2023D44
- ldr r0, _080A70D0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_80758E0
- ldr r1, _080A70D4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A70D8 @ =sub_80A70DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A70CC: .4byte gUnknown_2023D44
-_080A70D0: .4byte gUnknown_2037F1A
-_080A70D4: .4byte gTasks
-_080A70D8: .4byte sub_80A70DC
- thumb_func_end sub_80A70A0
-
- thumb_func_start sub_80A70DC
-sub_80A70DC: @ 80A70DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A710C @ =gUnknown_2023D44
- ldr r0, _080A7110 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- adds r1, r0, r1
- ldrb r4, [r1]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7118
- ldr r1, _080A7114 @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r6, r2, 0
- b _080A7126
- .align 2, 0
-_080A710C: .4byte gUnknown_2023D44
-_080A7110: .4byte gUnknown_2037F1A
-_080A7114: .4byte gTasks
-_080A7118:
- ldr r2, _080A7158 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- ldrh r3, [r0, 0x8]
- adds r6, r1, 0
-_080A7126:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldr r1, _080A7158 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A7160
- ldrh r0, [r1, 0x8]
- adds r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080A715C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- b _080A718A
- .align 2, 0
-_080A7158: .4byte gTasks
-_080A715C: .4byte gSprites
-_080A7160:
- cmp r0, 0x1
- bne _080A7176
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bne _080A71D0
- movs r0, 0x2
- b _080A71CE
-_080A7176:
- ldrh r0, [r1, 0x8]
- subs r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080A71C4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- subs r1, 0x1
-_080A718A:
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- bl sub_80759DC
- ldr r0, _080A71C8 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r2, [r1, r3]
- movs r0, 0xF2
- lsls r0, 4
- cmp r2, r0
- beq _080A71AA
- cmp r2, 0
- bne _080A71D0
-_080A71AA:
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bne _080A71CC
- adds r0, r4, 0
- bl sub_8075980
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080A71D0
- .align 2, 0
-_080A71C4: .4byte gSprites
-_080A71C8: .4byte gTasks
-_080A71CC:
- adds r0, r2, 0x1
-_080A71CE:
- strh r0, [r1, 0xA]
-_080A71D0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A70DC
-
- thumb_func_start sub_80A71D8
-sub_80A71D8: @ 80A71D8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080A71FC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A7204
- ldr r0, _080A7200 @ =gUnknown_2037F02
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080A7210
- .align 2, 0
-_080A71FC: .4byte gUnknown_2037F1A
-_080A7200: .4byte gUnknown_2037F02
-_080A7204:
- ldr r1, _080A7244 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r5, r1, 0
-_080A7210:
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080A7248 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A724C
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x1
- adds r2, r0, 0
- orrs r2, r1
- strb r2, [r3]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A7260
- movs r0, 0x2
- orrs r2, r0
- strb r2, [r3]
- b _080A7260
- .align 2, 0
-_080A7244: .4byte gUnknown_2037F02
-_080A7248: .4byte gUnknown_2037F1A
-_080A724C:
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080A7260
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_080A7260:
- ldr r0, _080A7274 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _080A7278 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7274: .4byte sub_8074F6C
-_080A7278: .4byte DestroyAnimSprite
- thumb_func_end sub_80A71D8
-
- thumb_func_start sub_80A727C
-sub_80A727C: @ 80A727C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A7298 @ =sub_8074F50
- str r0, [r4, 0x1C]
- ldr r1, _080A729C @ =sub_80A72A0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7298: .4byte sub_8074F50
-_080A729C: .4byte sub_80A72A0
- thumb_func_end sub_80A727C
-
- thumb_func_start sub_80A72A0
-sub_80A72A0: @ 80A72A0
- push {lr}
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x36]
- ldr r1, _080A72C0 @ =sub_8075590
- str r1, [r0, 0x1C]
- ldr r1, _080A72C4 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A72C0: .4byte sub_8075590
-_080A72C4: .4byte DestroyAnimSprite
- thumb_func_end sub_80A72A0
-
- thumb_func_start sub_80A72C8
-sub_80A72C8: @ 80A72C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A72EC
- ldr r1, _080A72E8 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080A730E
- .align 2, 0
-_080A72E8: .4byte gUnknown_2037F02
-_080A72EC:
- ldr r0, _080A73B4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A730E
- ldr r1, _080A73B8 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080A730E:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r4, _080A73BC @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r6, _080A73B8 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- ldrh r1, [r5, 0x20]
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 24
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A7380
- ldr r2, _080A73C0 @ =0xffffa000
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080A7380:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8075A1C
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- mov r0, r8
- strh r0, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080A73C4 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A73C8 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A73B4: .4byte gUnknown_2037F1A
-_080A73B8: .4byte gUnknown_2037F02
-_080A73BC: .4byte gUnknown_2037F1B
-_080A73C0: .4byte 0xffffa000
-_080A73C4: .4byte sub_8075590
-_080A73C8: .4byte DestroyAnimSprite
- thumb_func_end sub_80A72C8
-
- thumb_func_start sub_80A73CC
-sub_80A73CC: @ 80A73CC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A73F6
- ldr r2, _080A73FC @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- adds r0, r3, 0
- bl DestroySprite
-_080A73F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080A73FC: .4byte gTasks
- thumb_func_end sub_80A73CC
-
- thumb_func_start sub_80A7400
-sub_80A7400: @ 80A7400
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080A7430 @ =gTasks
- adds r4, r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _080A7434
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- adds r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x36]
- ldrh r3, [r2, 0x3A]
- adds r0, r3
- b _080A7442
- .align 2, 0
-_080A7430: .4byte gTasks
-_080A7434:
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x34]
- subs r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- subs r0, r1
-_080A7442:
- strh r0, [r2, 0x3A]
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x30]
- adds r3, r0, r1
- strh r3, [r2, 0x30]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7466
- lsls r0, r3, 16
- lsrs r0, 24
- negs r0, r0
- b _080A746A
-_080A7466:
- lsls r0, r3, 16
- lsrs r0, 24
-_080A746A:
- strh r0, [r2, 0x24]
- ldrh r1, [r4, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A747E
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080A7482
-_080A747E:
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
-_080A7482:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A7498
- movs r0, 0x1E
- strh r0, [r2, 0x2E]
- ldr r0, _080A74A0 @ =sub_80A73CC
- str r0, [r2, 0x1C]
-_080A7498:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A74A0: .4byte sub_80A73CC
- thumb_func_end sub_80A7400
-
- thumb_func_start sub_80A74A4
-sub_80A74A4: @ 80A74A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080A74E8 @ =gTasks
- adds r6, r0, r1
- ldrh r2, [r6, 0x16]
- movs r1, 0x2
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- ldrh r3, [r7, 0x30]
- adds r2, r0, r3
- strh r2, [r7, 0x30]
- ldrh r0, [r6, 0x18]
- ands r1, r0
- ldrh r0, [r7, 0x32]
- adds r1, r0
- strh r1, [r7, 0x32]
- ldrh r1, [r6, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A74EC
- lsls r0, r2, 16
- lsrs r0, 24
- negs r0, r0
- b _080A74F0
- .align 2, 0
-_080A74E8: .4byte gTasks
-_080A74EC:
- lsls r0, r2, 16
- lsrs r0, 24
-_080A74F0:
- strh r0, [r7, 0x24]
- ldrh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7504
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080A7508
-_080A7504:
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
-_080A7508:
- strh r0, [r7, 0x26]
- ldrh r0, [r7, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r7, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A75D4
- movs r4, 0
- movs r0, 0x8
- strh r0, [r7, 0x2E]
- movs r0, 0x4
- strh r0, [r6, 0x12]
- movs r0, 0x80
- lsls r0, 5
- bl sub_80D8B90
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r2, r0, r1
- strh r2, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r3, [r7, 0x22]
- adds r0, r3
- strh r0, [r7, 0x22]
- strh r4, [r7, 0x26]
- strh r4, [r7, 0x24]
- ldrh r3, [r6, 0x1E]
- movs r0, 0x1E
- ldrsh r1, [r6, r0]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- blt _080A7552
- subs r0, r3, r2
- b _080A7554
-_080A7552:
- subs r0, r2, r3
-_080A7554:
- lsls r0, 24
- lsrs r4, r0, 16
- ldrh r3, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r7, 0x22]
- movs r6, 0x22
- ldrsh r0, [r7, r6]
- cmp r1, r0
- blt _080A756C
- subs r0, r3, r2
- b _080A756E
-_080A756C:
- subs r0, r2, r3
-_080A756E:
- lsls r0, 24
- lsrs r0, 16
- mov r8, r0
- movs r0, 0
- strh r0, [r7, 0x32]
- strh r0, [r7, 0x30]
- strh r0, [r7, 0x3A]
- strh r0, [r7, 0x38]
- lsls r0, r4, 16
- asrs r0, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r5, 0
- bl sub_80D8AA0
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r6, 0
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- strh r0, [r7, 0x34]
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_80D8AA0
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r6, 0
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- strh r0, [r7, 0x36]
- ldr r0, _080A75E0 @ =sub_80A7400
- str r0, [r7, 0x1C]
-_080A75D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A75E0: .4byte sub_80A7400
- thumb_func_end sub_80A74A4
-
- thumb_func_start sub_80A75E4
-sub_80A75E4: @ 80A75E4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A7608 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A7602
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A7602:
- pop {r0}
- bx r0
- .align 2, 0
-_080A7608: .4byte gTasks
- thumb_func_end sub_80A75E4
-
- thumb_func_start sub_80A760C
-sub_80A760C: @ 80A760C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080A7660 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r1, r0, 0x1
- strh r1, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bgt _080A76E0
- ldr r0, _080A7664 @ =gUnknown_83E3C28
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- movs r3, 0x1C
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0xC]
- ldrb r4, [r5, 0xA]
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r0, 4
- add r0, r12
- lsls r0, 2
- ldr r1, _080A7668 @ =gSprites
- adds r6, r0, r1
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080A766C
- cmp r0, 0x2
- beq _080A7682
- b _080A7690
- .align 2, 0
-_080A7660: .4byte gTasks
-_080A7664: .4byte gUnknown_83E3C28
-_080A7668: .4byte gSprites
-_080A766C:
- ldrb r2, [r6, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x3]
- b _080A7690
-_080A7682:
- ldrb r0, [r6, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r6, 0x3]
-_080A7690:
- ldr r3, _080A76E8 @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r4, r2, r3
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x14]
- subs r0, r1
- strh r0, [r6, 0x2E]
- strh r7, [r6, 0x3C]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xD
- lsls r0, 1
- adds r0, r2
- adds r3, 0x8
- adds r0, r3
- mov r2, r12
- strh r2, [r0]
- ldrh r0, [r4, 0xE]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0x3F
- negs r0, r0
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x93
- bl PlaySE12WithPanning
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- ble _080A76E0
- ldr r0, _080A76EC @ =sub_80A75E4
- str r0, [r4]
-_080A76E0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A76E8: .4byte gTasks
-_080A76EC: .4byte sub_80A75E4
- thumb_func_end sub_80A760C
-
- thumb_func_start sub_80A76F0
-sub_80A76F0: @ 80A76F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- movs r5, 0
- mov r0, sp
- mov r1, r9
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x2
- strh r1, [r4]
- bl sub_8073788
- lsls r0, 24
- mov r10, r4
- cmp r0, 0
- beq _080A775C
- ldr r1, _080A774C @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r3, _080A7750 @ =gUnknown_2037F02
- ldrh r0, [r3]
- negs r0, r0
- strh r0, [r3]
- ldrh r1, [r3, 0x4]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _080A7754
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strh r0, [r3, 0x4]
- b _080A77B6
- .align 2, 0
-_080A774C: .4byte gTasks
-_080A7750: .4byte gUnknown_2037F02
-_080A7754:
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _080A77B6
-_080A775C:
- ldr r1, _080A77A0 @ =gUnknown_2023BD6
- ldr r0, _080A77A4 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0
- bne _080A77B6
- ldr r1, _080A77A8 @ =gTasks
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x10]
- ldr r2, _080A77AC @ =gUnknown_2037F02
- ldrh r0, [r2]
- negs r0, r0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- negs r0, r0
- strh r0, [r2, 0x2]
- ldrh r1, [r2, 0x4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080A77B0
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- b _080A77B4
- .align 2, 0
-_080A77A0: .4byte gUnknown_2023BD6
-_080A77A4: .4byte gUnknown_2037F1B
-_080A77A8: .4byte gTasks
-_080A77AC: .4byte gUnknown_2037F02
-_080A77B0:
- movs r0, 0x1
- orrs r0, r1
-_080A77B4:
- strh r0, [r2, 0x4]
-_080A77B6:
- ldr r5, _080A7810 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- ldr r1, _080A7814 @ =gTasks
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- adds r6, r0, 0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- mov r9, r0
- ldr r0, _080A7818 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7820
- ldr r4, _080A781C @ =gUnknown_2037F1B
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A7820
- ldrb r0, [r4]
- movs r1, 0
- mov r2, sp
- mov r3, r10
- bl sub_8076D9C
- b _080A7842
- .align 2, 0
-_080A7810: .4byte gUnknown_2037F1A
-_080A7814: .4byte gTasks
-_080A7818: .4byte gBattleTypeFlags
-_080A781C: .4byte gUnknown_2037F1B
-_080A7820:
- mov r5, sp
- ldr r4, _080A787C @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r1, r10
- strh r0, [r1]
-_080A7842:
- mov r4, sp
- ldr r0, _080A7880 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- mov r2, sp
- ldr r3, _080A7884 @ =gUnknown_2037F02
- ldrh r0, [r3]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r1, 0x1E]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- mov r3, r10
- ldrh r3, [r3]
- adds r0, r3
- strh r0, [r1, 0x20]
- mov r1, r10
- strh r0, [r1]
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0
- cmp r0, r1
- blt _080A7888
- subs r0, r2, r1
- b _080A788A
- .align 2, 0
-_080A787C: .4byte gUnknown_2037F1B
-_080A7880: .4byte gTasks
-_080A7884: .4byte gUnknown_2037F02
-_080A7888:
- subs r0, r1, r2
-_080A788A:
- lsls r0, 16
- lsrs r0, 16
- lsls r4, r0, 16
- asrs r4, 16
- ldr r5, _080A7900 @ =gUnknown_2037F02
- ldrh r1, [r5, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- ldr r2, _080A7904 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r6, r1, r2
- strh r0, [r6, 0x12]
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- movs r1, 0x80
- bl sub_80D8AA0
- strh r0, [r6, 0x14]
- ldrh r0, [r5, 0x4]
- strh r0, [r6, 0x16]
- mov r2, r10
- ldrh r1, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- mov r4, r9
- cmp r0, r4
- blt _080A7908
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- strh r1, [r6, 0x18]
- b _080A7928
- .align 2, 0
-_080A7900: .4byte gUnknown_2037F02
-_080A7904: .4byte gTasks
-_080A7908:
- subs r4, r1
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r6, 0x18]
-_080A7928:
- ldr r1, _080A7968 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r4, _080A796C @ =gUnknown_2037F02
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0xE]
- ldrh r1, [r4, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080A7978
- movs r0, 0x80
- eors r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080A79A0
- ldr r0, _080A7970 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A7974 @ =0x0000ffc0
- adds r1, r2, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080A79B0
- .align 2, 0
-_080A7968: .4byte gTasks
-_080A796C: .4byte gUnknown_2037F02
-_080A7970: .4byte gUnknown_2037F1B
-_080A7974: .4byte 0x0000ffc0
-_080A7978:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080A79A0
- ldr r0, _080A7998 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080A799C @ =0x0000ffc0
- adds r1, r3, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080A79B0
- .align 2, 0
-_080A7998: .4byte gUnknown_2037F1B
-_080A799C: .4byte 0x0000ffc0
-_080A79A0:
- ldr r0, _080A79DC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- subs r0, r1
-_080A79B0:
- strh r0, [r5, 0xC]
- ldr r0, _080A79E0 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _080A79C8
- movs r0, 0x3
- strh r0, [r1, 0xC]
-_080A79C8:
- ldr r0, _080A79E4 @ =sub_80A760C
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A79DC: .4byte gUnknown_2037F1B
-_080A79E0: .4byte gTasks
-_080A79E4: .4byte sub_80A760C
- thumb_func_end sub_80A76F0
-
- thumb_func_start sub_80A79E8
-sub_80A79E8: @ 80A79E8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A7A10 @ =gUnknown_83E3D18
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x2E]
- ldr r0, _080A7A14 @ =sub_80A7A18
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A10: .4byte gUnknown_83E3D18
-_080A7A14: .4byte sub_80A7A18
- thumb_func_end sub_80A79E8
-
- thumb_func_start sub_80A7A18
-sub_80A7A18: @ 80A7A18
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080A7A7C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r5, [r4, 0x2E]
- ldr r1, _080A7A84 @ =gPlttBufferFaded
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- adds r6, r1, 0
- adds r1, r5, 0
- adds r1, 0x9
- lsls r0, r5, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- movs r3, 0x7
- lsls r1, 1
- adds r1, r6
-_080A7A50:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080A7A50
- adds r0, r5, 0
- adds r0, 0xF
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _080A7A7C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7A7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A84: .4byte gPlttBufferFaded
- thumb_func_end sub_80A7A18
-
- thumb_func_start sub_80A7A88
-sub_80A7A88: @ 80A7A88
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r4, _080A7B28 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A7B2C @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080A7B30 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A7ACC
- ldrh r0, [r4, 0x4]
- negs r0, r0
- strh r0, [r4, 0x4]
-_080A7ACC:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- ldrh r1, [r5, 0x20]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8075A1C
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080A7B34 @ =sub_80756A4
- str r0, [r5, 0x1C]
- ldr r1, _080A7B38 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B28: .4byte gUnknown_2037F1B
-_080A7B2C: .4byte gUnknown_2037F02
-_080A7B30: .4byte gUnknown_2037F1A
-_080A7B34: .4byte sub_80756A4
-_080A7B38: .4byte DestroyAnimSprite
- thumb_func_end sub_80A7A88
-
- thumb_func_start sub_80A7B3C
-sub_80A7B3C: @ 80A7B3C
- ldr r1, _080A7B4C @ =0x0000fff0
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldr r1, _080A7B50 @ =sub_80A7B54
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A7B4C: .4byte 0x0000fff0
-_080A7B50: .4byte sub_80A7B54
- thumb_func_end sub_80A7B3C
-
- thumb_func_start sub_80A7B54
-sub_80A7B54: @ 80A7B54
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldr r0, _080A7BC0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7B78
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080A7B78:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080A7BB8
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080A7BB8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7BB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7BC0: .4byte gUnknown_2037F1A
- thumb_func_end sub_80A7B54
-
- thumb_func_start sub_80A7BC4
-sub_80A7BC4: @ 80A7BC4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080A7C10 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A7C14 @ =sub_8075590
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080A7C18 @ =sub_80A7C1C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C10: .4byte gUnknown_2037F1B
-_080A7C14: .4byte sub_8075590
-_080A7C18: .4byte sub_80A7C1C
- thumb_func_end sub_80A7BC4
-
- thumb_func_start sub_80A7C1C
-sub_80A7C1C: @ 80A7C1C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3F
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9F
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- movs r2, 0
- movs r1, 0x7
- adds r0, r4, 0
- adds r0, 0x3C
-_080A7C50:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A7C50
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r2, _080A7C98 @ =0x0000fff4
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r4, 0x3A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA0
- bl __umodsi3
- adds r0, 0xA0
- strh r0, [r4, 0x3C]
- ldr r0, _080A7C9C @ =sub_80A7CA0
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C98: .4byte 0x0000fff4
-_080A7C9C: .4byte sub_80A7CA0
- thumb_func_end sub_80A7C1C
-
- thumb_func_start sub_80A7CA0
-sub_80A7CA0: @ 80A7CA0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x2E]
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 24
- strh r2, [r4, 0x24]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7CBE
- negs r0, r2
- strh r0, [r4, 0x24]
-_080A7CBE:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080A7CFE
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A7CFE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7CFE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7CA0
-
- thumb_func_start sub_80A7D04
-sub_80A7D04: @ 80A7D04
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A7D54 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7D22
- ldrh r0, [r4, 0x22]
- adds r0, 0x10
- strh r0, [r4, 0x22]
-_080A7D22:
- ldr r1, _080A7D58 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080A7D5C @ =sub_8074A80
- str r0, [r4, 0x1C]
- ldr r1, _080A7D60 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7D54: .4byte gUnknown_2037F1A
-_080A7D58: .4byte gUnknown_2037F02
-_080A7D5C: .4byte sub_8074A80
-_080A7D60: .4byte DestroyAnimSprite
- thumb_func_end sub_80A7D04
-
- thumb_func_start sub_80A7D64
-sub_80A7D64: @ 80A7D64
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r7, 0x20
- ldr r4, _080A7DE0 @ =0x0000ffe0
- movs r0, 0x10
- mov r8, r0
- ldr r6, _080A7DE4 @ =0x0000fff0
- ldr r0, _080A7DE8 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080A7D90
- adds r7, r4, 0
- movs r4, 0x20
- mov r8, r6
- movs r6, 0x10
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A7D90:
- lsls r0, r7, 16
- asrs r0, 16
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080A7DEC @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- add r0, r8
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080A7DF0 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A7DF4 @ =sub_80A7DF8
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7DE0: .4byte 0x0000ffe0
-_080A7DE4: .4byte 0x0000fff0
-_080A7DE8: .4byte gUnknown_2037F02
-_080A7DEC: .4byte gUnknown_2037F1B
-_080A7DF0: .4byte sub_8075590
-_080A7DF4: .4byte sub_80A7DF8
- thumb_func_end sub_80A7D64
-
- thumb_func_start sub_80A7DF8
-sub_80A7DF8: @ 80A7DF8
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A7E0E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A7E0E:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7DF8
-
- thumb_func_start sub_80A7E14
-sub_80A7E14: @ 80A7E14
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0x20
- mov r8, r0
- ldr r4, _080A7EA8 @ =0x0000ffe0
- movs r2, 0x10
- mov r9, r2
- ldr r6, _080A7EAC @ =0x0000fff0
- ldr r7, _080A7EB0 @ =gUnknown_2037F02
- ldrh r1, [r7]
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- beq _080A7E48
- mov r8, r4
- movs r4, 0x20
- mov r9, r6
- movs r6, 0x10
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_080A7E48:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080A7EB4 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- add r0, r9
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r7]
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x3A]
- ldr r0, _080A7EB8 @ =sub_80A7EBC
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7EA8: .4byte 0x0000ffe0
-_080A7EAC: .4byte 0x0000fff0
-_080A7EB0: .4byte gUnknown_2037F02
-_080A7EB4: .4byte gUnknown_2037F1B
-_080A7EB8: .4byte sub_80A7EBC
- thumb_func_end sub_80A7E14
-
- thumb_func_start sub_80A7EBC
-sub_80A7EBC: @ 80A7EBC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A7F20
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A7F20
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- ldr r0, _080A7F28 @ =0x0000fffe
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- eors r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x36]
- strh r2, [r4, 0x34]
- ldr r0, _080A7F2C @ =sub_80A7F30
- str r0, [r4, 0x1C]
-_080A7F20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7F28: .4byte 0x0000fffe
-_080A7F2C: .4byte sub_80A7F30
- thumb_func_end sub_80A7EBC
-
- thumb_func_start sub_80A7F30
-sub_80A7F30: @ 80A7F30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A7F48
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080A7F48:
- ldrh r0, [r4, 0x34]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080A7F8A
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- movs r1, 0x1
- eors r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080A7F90 @ =sub_80A7F94
- str r0, [r4, 0x1C]
-_080A7F8A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7F90: .4byte sub_80A7F94
- thumb_func_end sub_80A7F30
-
- thumb_func_start sub_80A7F94
-sub_80A7F94: @ 80A7F94
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A7FA8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7FA8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7F94
-
- thumb_func_start sub_80A7FB0
-sub_80A7FB0: @ 80A7FB0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80758E0
- adds r0, r4, 0
- movs r1, 0xD0
- movs r2, 0xD0
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080A8008 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8075B48
- ldr r1, _080A800C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x50
- strh r1, [r0, 0x8]
- ldr r1, _080A8010 @ =sub_80A8014
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8008: .4byte gSprites
-_080A800C: .4byte gTasks
-_080A8010: .4byte sub_80A8014
- thumb_func_end sub_80A7FB0
-
- thumb_func_start sub_80A8014
-sub_80A8014: @ 80A8014
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A806C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A8064
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8075980
- ldr r1, _080A8070 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0x1
- bl sub_8075B48
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A8064:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A806C: .4byte gTasks
-_080A8070: .4byte gSprites
- thumb_func_end sub_80A8014
-
- thumb_func_start sub_80A8074
-sub_80A8074: @ 80A8074
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A80C0 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x8]
- movs r1, 0
- bl sub_80758E0
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldr r0, _080A80C4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r0, _080A80C8 @ =sub_80A80CC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A80C0: .4byte gTasks
-_080A80C4: .4byte gUnknown_2037F1A
-_080A80C8: .4byte sub_80A80CC
- thumb_func_end sub_80A8074
-
- thumb_func_start sub_80A80CC
-sub_80A80CC: @ 80A80CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A80F0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080A80E6
- b _080A81F6
-_080A80E6:
- lsls r0, 2
- ldr r1, _080A80F4 @ =_080A80F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A80F0: .4byte gTasks
-_080A80F4: .4byte _080A80F8
- .align 2, 0
-_080A80F8:
- .4byte _080A8110
- .4byte _080A8158
- .4byte _080A818E
- .4byte _080A8194
- .4byte _080A81A4
- .4byte _080A81D8
-_080A8110:
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A8120
- cmp r0, 0x3
- beq _080A8120
- cmp r0, 0x6
- bne _080A8128
-_080A8120:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A8200
-_080A8128:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x28
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8076440
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080A81F6
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _080A81D0
-_080A8158:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A81F6
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r1, 0x3
- bne _080A816E
- strh r0, [r4, 0xC]
- strh r1, [r4, 0xA]
- b _080A81F6
-_080A816E:
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8076440
- movs r0, 0x2
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A818E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A8194:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080A81F6
- b _080A81CC
-_080A81A4:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- subs r0, 0x50
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8076440
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080A81F6
-_080A81CC:
- movs r0, 0
- strh r0, [r4, 0xC]
-_080A81D0:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A81D8:
- ldrb r0, [r4, 0x8]
- bl sub_8075980
- ldr r2, _080A81FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A81F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A81FC: .4byte gSprites
- thumb_func_end sub_80A80CC
-
- thumb_func_start sub_80A8200
-sub_80A8200: @ 80A8200
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _080A82DA
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080A8244
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080A8240 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- b _080A82DA
- .align 2, 0
-_080A8240: .4byte gSprites
-_080A8244:
- ldr r5, _080A82E8 @ =gSprites
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r4, r3, r5
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrb r0, [r7, 0x16]
- ldrb r1, [r7, 0xE]
- subs r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r7, 0xE]
- adds r0, 0x1
- strh r0, [r7, 0xE]
- ldrh r0, [r7, 0x14]
- adds r0, 0x1
- strh r0, [r7, 0x14]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- movs r0, 0x6
- strh r0, [r4, 0x32]
- adds r5, 0x1C
- adds r3, r5
- ldr r0, _080A82EC @ =sub_80A82F0
- str r0, [r3]
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x10
- ldrsh r2, [r7, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x1]
- movs r3, 0x4
- negs r3, r3
- ands r3, r0
- movs r0, 0x1
- orrs r3, r0
- strb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
-_080A82DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A82E8: .4byte gSprites
-_080A82EC: .4byte sub_80A82F0
- thumb_func_end sub_80A8200
-
- thumb_func_start sub_80A82F0
-sub_80A82F0: @ 80A82F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080A832E
- ldr r3, _080A8334 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080A832E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8334: .4byte gTasks
- thumb_func_end sub_80A82F0
-
- thumb_func_start sub_80A8338
-sub_80A8338: @ 80A8338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A835C @ =gTasks
- adds r4, r0, r1
- ldr r5, _080A8360 @ =gUnknown_2037F02
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A8364
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A838A
- .align 2, 0
-_080A835C: .4byte gTasks
-_080A8360: .4byte gUnknown_2037F02
-_080A8364:
- ldrb r0, [r5]
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- strh r1, [r4, 0x8]
- strh r2, [r4, 0xA]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r2, [r4, 0x10]
- ldr r2, _080A8390 @ =gUnknown_83E3E60
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A8394 @ =sub_80A8398
- str r0, [r4]
-_080A838A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8390: .4byte gUnknown_83E3E60
-_080A8394: .4byte sub_80A8398
- thumb_func_end sub_80A8338
-
- thumb_func_start sub_80A8398
-sub_80A8398: @ 80A8398
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A83BC @ =gTasks
- adds r4, r0, r1
- movs r0, 0xA
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080A8400
- cmp r5, 0x1
- bgt _080A83C0
- cmp r5, 0
- beq _080A83CA
- b _080A84A8
- .align 2, 0
-_080A83BC: .4byte gTasks
-_080A83C0:
- cmp r5, 0x2
- beq _080A8434
- cmp r5, 0x3
- beq _080A8464
- b _080A84A8
-_080A83CA:
- adds r0, r4, 0
- bl sub_8076308
- ldrh r2, [r4, 0x10]
- adds r2, 0x3
- strh r2, [r4, 0x10]
- ldr r3, _080A83FC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080A84A8
- strh r5, [r4, 0xE]
- b _080A845C
- .align 2, 0
-_080A83FC: .4byte gSprites
-_080A8400:
- adds r0, r4, 0
- bl sub_8076308
- ldr r2, _080A8430 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080A84A8
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080A845C
- .align 2, 0
-_080A8430: .4byte gSprites
-_080A8434:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A845C
- ldr r2, _080A8458 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x10]
- subs r0, 0x2
- strh r0, [r4, 0x10]
- b _080A84A8
- .align 2, 0
-_080A8458: .4byte gSprites
-_080A845C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080A84A8
-_080A8464:
- adds r0, r4, 0
- bl sub_8076308
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A84A8
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080A849C
- ldr r2, _080A8498 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080A84A8
- .align 2, 0
-_080A8498: .4byte gSprites
-_080A849C:
- ldrb r1, [r4, 0x8]
- ldr r2, _080A84B0 @ =gUnknown_83E3E60
- adds r0, r4, 0
- bl sub_80762D0
- strh r5, [r4, 0xA]
-_080A84A8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84B0: .4byte gUnknown_83E3E60
- thumb_func_end sub_80A8398
-
- thumb_func_start sub_80A84B4
-sub_80A84B4: @ 80A84B4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A84E4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A84E8 @ =gUnknown_83E3E80
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A84EC @ =sub_80A84F0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84E4: .4byte gTasks
-_080A84E8: .4byte gUnknown_83E3E80
-_080A84EC: .4byte sub_80A84F0
- thumb_func_end sub_80A84B4
-
- thumb_func_start sub_80A84F0
-sub_80A84F0: @ 80A84F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8518 @ =gTasks
- adds r0, r1
- bl sub_8076308
- lsls r0, 24
- cmp r0, 0
- bne _080A8510
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8518: .4byte gTasks
- thumb_func_end sub_80A84F0
-
- thumb_func_start sub_80A851C
-sub_80A851C: @ 80A851C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A854C @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A8550
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080A856A
- .align 2, 0
-_080A854C: .4byte gUnknown_2037F1A
-_080A8550:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x20
- strh r0, [r4, 0x20]
- ldr r0, _080A859C @ =0x0000ffc0
-_080A856A:
- strh r0, [r4, 0x30]
- ldr r0, _080A85A0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r0, 0x34
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- strh r1, [r4, 0x36]
- ldr r1, _080A85A4 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A85A8 @ =sub_8074D00
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A859C: .4byte 0x0000ffc0
-_080A85A0: .4byte gUnknown_2037F1A
-_080A85A4: .4byte DestroyAnimSprite
-_080A85A8: .4byte sub_8074D00
- thumb_func_end sub_80A851C
-
- thumb_func_start sub_80A85AC
-sub_80A85AC: @ 80A85AC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080A85C0 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A85C8
- ldr r0, _080A85C4 @ =gUnknown_2037F1A
- b _080A85CA
- .align 2, 0
-_080A85C0: .4byte gUnknown_2037F02
-_080A85C4: .4byte gUnknown_2037F1A
-_080A85C8:
- ldr r0, _080A8628 @ =gUnknown_2037F1B
-_080A85CA:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A85E4
- ldr r1, _080A862C @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A85E4:
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A862C @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x4]
- adds r0, r4
- strh r0, [r6, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _080A8616
- movs r0, 0x8
- strh r0, [r6, 0x22]
-_080A8616:
- ldr r1, _080A8630 @ =move_anim_8074EE0
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A8634 @ =sub_8074F50
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8628: .4byte gUnknown_2037F1B
-_080A862C: .4byte gUnknown_2037F02
-_080A8630: .4byte move_anim_8074EE0
-_080A8634: .4byte sub_8074F50
- thumb_func_end sub_80A85AC
-
- thumb_func_start sub_80A8638
-sub_80A8638: @ 80A8638
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A866C @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- strh r1, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r2, _080A8670 @ =gUnknown_83E3F1C
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A8674 @ =sub_80A8678
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A866C: .4byte gTasks
-_080A8670: .4byte gUnknown_83E3F1C
-_080A8674: .4byte sub_80A8678
- thumb_func_end sub_80A8638
-
- thumb_func_start sub_80A8678
-sub_80A8678: @ 80A8678
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A86A0 @ =gTasks
- adds r0, r1
- bl sub_8076308
- lsls r0, 24
- cmp r0, 0
- bne _080A8698
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8698:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A86A0: .4byte gTasks
- thumb_func_end sub_80A8678
-
- thumb_func_start sub_80A86A4
-sub_80A86A4: @ 80A86A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A8718 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- movs r0, 0x4
- strh r0, [r4, 0xC]
- movs r0, 0x7
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x10]
- ldr r3, _080A871C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- strh r2, [r4, 0x16]
- strh r2, [r4, 0x18]
- movs r0, 0x2
- strh r0, [r4, 0x1A]
- ldr r0, _080A8720 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A870E
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xC]
-_080A870E:
- ldr r0, _080A8724 @ =sub_80A8728
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8718: .4byte gTasks
-_080A871C: .4byte gSprites
-_080A8720: .4byte gUnknown_2037F1A
-_080A8724: .4byte sub_80A8728
- thumb_func_end sub_80A86A4
-
- thumb_func_start sub_80A8728
-sub_80A8728: @ 80A8728
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8770 @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x16]
- adds r0, 0x1
- strh r0, [r3, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A878E
- movs r0, 0
- strh r0, [r3, 0x16]
- ldrh r0, [r3, 0x18]
- adds r0, 0x1
- strh r0, [r3, 0x18]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8778
- ldr r2, _080A8774 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x1A]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- b _080A878C
- .align 2, 0
-_080A8770: .4byte gTasks
-_080A8774: .4byte gSprites
-_080A8778:
- ldr r2, _080A87A0 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
-_080A878C:
- strh r1, [r0, 0x22]
-_080A878E:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080A87DC
- cmp r0, 0x1
- bgt _080A87A4
- cmp r0, 0
- beq _080A87AA
- b _080A886C
- .align 2, 0
-_080A87A0: .4byte gSprites
-_080A87A4:
- cmp r0, 0x2
- beq _080A880C
- b _080A886C
-_080A87AA:
- ldr r2, _080A87D8 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080A886C
- movs r0, 0xE
- strh r0, [r3, 0xE]
- movs r0, 0x1
- strh r0, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A87D8: .4byte gSprites
-_080A87DC:
- ldr r2, _080A8808 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- ldrh r2, [r3, 0xC]
- subs r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080A886C
- movs r0, 0x7
- strh r0, [r3, 0xE]
- movs r0, 0x2
- strh r0, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A8808: .4byte gSprites
-_080A880C:
- ldr r2, _080A8844 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r5, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080A886C
- ldrh r0, [r3, 0x10]
- subs r0, 0x1
- strh r0, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _080A8848
- movs r0, 0x7
- strh r0, [r3, 0xE]
- strh r1, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A8844: .4byte gSprites
-_080A8848:
- ldrh r1, [r3, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8866
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
- strh r1, [r0, 0x22]
-_080A8866:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A886C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8728
-
- thumb_func_start sub_80A8874
-sub_80A8874: @ 80A8874
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A88C4 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080A88C8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- movs r1, 0
- strh r0, [r5, 0x8]
- movs r0, 0x4
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- strh r1, [r5, 0x10]
- strh r1, [r5, 0x12]
- ldrb r0, [r4]
- bl sub_8076B2C
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A88D4
- ldr r0, _080A88CC @ =gUnknown_2022978
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080A88D0 @ =0x04000014
- b _080A88DC
- .align 2, 0
-_080A88C4: .4byte gTasks
-_080A88C8: .4byte gUnknown_2037F1B
-_080A88CC: .4byte gUnknown_2022978
-_080A88D0: .4byte 0x04000014
-_080A88D4:
- ldr r0, _080A8940 @ =gUnknown_202297C
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080A8944 @ =0x04000018
-_080A88DC:
- str r0, [sp]
- ldrh r0, [r5, 0x8]
- adds r1, r0, 0
- subs r1, 0x40
- lsls r2, r1, 16
- lsls r0, 16
- cmp r2, r0
- bgt _080A891A
- ldr r4, _080A8948 @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080A88F4:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080A890C
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r1]
-_080A890C:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- cmp r1, r0
- ble _080A88F4
-_080A891A:
- ldr r0, _080A894C @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- ldr r0, _080A8950 @ =sub_80A8954
- str r0, [r5]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8940: .4byte gUnknown_202297C
-_080A8944: .4byte 0x04000018
-_080A8948: .4byte gUnknown_2038700
-_080A894C: .4byte 0xa2600001
-_080A8950: .4byte sub_80A8954
- thumb_func_end sub_80A8874
-
- thumb_func_start sub_80A8954
-sub_80A8954: @ 80A8954
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8974 @ =gTasks
- adds r3, r0, r1
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080A8978
- cmp r0, 0x1
- beq _080A898E
- b _080A8A0E
- .align 2, 0
-_080A8974: .4byte gTasks
-_080A8978:
- ldrh r0, [r3, 0x12]
- adds r0, 0x1
- strh r0, [r3, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080A8A0E
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- b _080A8A0E
-_080A898E:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A8A0E
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xE]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- subs r0, r1
- strh r0, [r3, 0x12]
- movs r2, 0xC
- ldrsh r1, [r3, r2]
- cmp r1, 0x1
- beq _080A89C4
- cmp r1, 0x1
- ble _080A89CC
- cmp r1, 0x2
- beq _080A89C8
- cmp r1, 0x3
- beq _080A89C8
- b _080A89CC
-_080A89C4:
- subs r0, 0x2
- b _080A89CA
-_080A89C8:
- adds r0, 0x1
-_080A89CA:
- strh r0, [r3, 0x12]
-_080A89CC:
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _080A89F0
- ldr r2, _080A8A14 @ =gUnknown_2038700
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 1
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
-_080A89F0:
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _080A8A0E
- ldr r1, _080A8A18 @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8A0E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A14: .4byte gUnknown_2038700
-_080A8A18: .4byte gUnknown_2039600
- thumb_func_end sub_80A8954
-
- thumb_func_start sub_80A8A1C
-sub_80A8A1C: @ 80A8A1C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A8A70 @ =gUnknown_2037F1B
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x36]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8076B2C
- adds r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x3F
- bl sub_8073A44
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- ldr r0, _080A8A74 @ =sub_80A8A78
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A70: .4byte gUnknown_2037F1B
-_080A8A74: .4byte sub_80A8A78
- thumb_func_end sub_80A8A1C
-
- thumb_func_start sub_80A8A78
-sub_80A8A78: @ 80A8A78
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080A8ADC
- cmp r1, 0x1
- bgt _080A8A8E
- cmp r1, 0
- beq _080A8A94
- b _080A8BBC
-_080A8A8E:
- cmp r1, 0x2
- beq _080A8B6E
- b _080A8BBC
-_080A8A94:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A8ABE
- strh r1, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080A8ABE:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A8BBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- b _080A8B66
-_080A8ADC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A8B22
- ldrh r2, [r4, 0x32]
- movs r3, 0x32
- ldrsh r1, [r4, r3]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080A8B22
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080A8B22
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC6
- bl PlaySE12WithPanning
-_080A8B22:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- adds r1, r0, r2
- strh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0x1F
- ble _080A8B36
- movs r0, 0x40
- b _080A8B44
-_080A8B36:
- movs r0, 0x20
- negs r0, r0
- cmp r2, r0
- bgt _080A8B50
- movs r2, 0x40
- negs r2, r2
- adds r0, r2, 0
-_080A8B44:
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x34]
-_080A8B50:
- ldrh r0, [r4, 0x36]
- movs r2, 0
- strh r0, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080A8BBC
- strh r2, [r4, 0x30]
- strh r2, [r4, 0x32]
-_080A8B66:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A8BBC
-_080A8B6E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A8B9A
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080A8B9A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A8BBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A8BBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8A78
-
- thumb_func_start sub_80A8BC4
-sub_80A8BC4: @ 80A8BC4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r5, 0
- mov r0, sp
- strh r5, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r5, [r1]
- ldr r0, _080A8BE8 @ =gUnknown_2037F02
- movs r3, 0x4
- ldrsh r2, [r0, r3]
- adds r7, r1, 0
- adds r1, r0, 0
- cmp r2, 0
- bne _080A8BF0
- ldr r0, _080A8BEC @ =gUnknown_2037F1A
- b _080A8BF2
- .align 2, 0
-_080A8BE8: .4byte gUnknown_2037F02
-_080A8BEC: .4byte gUnknown_2037F1A
-_080A8BF0:
- ldr r0, _080A8C2C @ =gUnknown_2037F1B
-_080A8BF2:
- ldrb r5, [r0]
- ldrb r1, [r1, 0x6]
- movs r0, 0x1
- adds r4, r0, 0
- eors r4, r1
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080A8C6A
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8C6A
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl sub_8076D9C
- cmp r4, 0
- bne _080A8C30
- adds r0, r5, 0
- movs r1, 0
- b _080A8C34
- .align 2, 0
-_080A8C2C: .4byte gUnknown_2037F1B
-_080A8C30:
- adds r0, r5, 0
- movs r1, 0x2
-_080A8C34:
- bl sub_8074480
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8C60
- ldr r2, _080A8C5C @ =gUnknown_2037F02
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r4
- ldrh r0, [r2]
- subs r1, r0
- subs r0, r1
- strh r0, [r2]
- b _080A8C6A
- .align 2, 0
-_080A8C5C: .4byte gUnknown_2037F02
-_080A8C60:
- ldr r1, _080A8C7C @ =gUnknown_2037F02
- mov r0, sp
- ldrh r0, [r0]
- subs r0, r4
- strh r0, [r1]
-_080A8C6A:
- ldr r1, _080A8C80 @ =sub_8075D9C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8C7C: .4byte gUnknown_2037F02
-_080A8C80: .4byte sub_8075D9C
- thumb_func_end sub_80A8BC4
-
- thumb_func_start sub_80A8C84
-sub_80A8C84: @ 80A8C84
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A8C9E
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A8C9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8C84
-
- thumb_func_start sub_80A8CA4
-sub_80A8CA4: @ 80A8CA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r6, 0
- mov r0, sp
- strh r6, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r6, [r1]
- ldr r0, _080A8CD0 @ =gUnknown_2037F02
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080A8CDC
- ldr r0, _080A8CD4 @ =gUnknown_2037F1A
- ldrb r7, [r0]
- ldr r0, _080A8CD8 @ =gUnknown_2037F1B
- b _080A8CE2
- .align 2, 0
-_080A8CD0: .4byte gUnknown_2037F02
-_080A8CD4: .4byte gUnknown_2037F1A
-_080A8CD8: .4byte gUnknown_2037F1B
-_080A8CDC:
- ldr r0, _080A8CFC @ =gUnknown_2037F1B
- ldrb r7, [r0]
- ldr r0, _080A8D00 @ =gUnknown_2037F1A
-_080A8CE2:
- ldrb r0, [r0]
- mov r8, r0
- ldr r0, _080A8D04 @ =gUnknown_2037F02
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080A8D08
- movs r0, 0
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _080A8D10
- .align 2, 0
-_080A8CFC: .4byte gUnknown_2037F1B
-_080A8D00: .4byte gUnknown_2037F1A
-_080A8D04: .4byte gUnknown_2037F02
-_080A8D08:
- movs r2, 0x2
- mov r10, r2
- movs r3, 0x3
- str r3, [sp, 0x4]
-_080A8D10:
- adds r0, r7, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8D6C
- adds r0, r7, 0
- mov r1, r10
- bl sub_8074480
- lsls r0, 24
- ldr r1, _080A8D50 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x2
- mov r4, r8
- eors r4, r0
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8D5C
- ldr r2, _080A8D54 @ =gSprites
- ldr r0, _080A8D58 @ =gUnknown_2023D44
- adds r0, r4, r0
- b _080A8DEA
- .align 2, 0
-_080A8D50: .4byte gUnknown_2037F02
-_080A8D54: .4byte gSprites
-_080A8D58: .4byte gUnknown_2023D44
-_080A8D5C:
- ldr r2, _080A8D64 @ =gSprites
- ldr r0, _080A8D68 @ =gUnknown_2023D44
- add r0, r8
- b _080A8DEA
- .align 2, 0
-_080A8D64: .4byte gSprites
-_080A8D68: .4byte gUnknown_2023D44
-_080A8D6C:
- adds r0, r7, 0
- mov r1, r10
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A8DD4 @ =gUnknown_2037F02
- ldrh r1, [r1]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A8DE4
- movs r0, 0x2
- adds r4, r7, 0
- eors r4, r0
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8DE4
- ldr r3, _080A8DD8 @ =gSprites
- ldr r2, _080A8DDC @ =gUnknown_2023D44
- adds r0, r7, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r3
- adds r2, r4, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r3, 0x20
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080A8DE0
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
- b _080A8DFA
- .align 2, 0
-_080A8DD4: .4byte gUnknown_2037F02
-_080A8DD8: .4byte gSprites
-_080A8DDC: .4byte gUnknown_2023D44
-_080A8DE0:
- adds r0, r6, 0
- b _080A8DF4
-_080A8DE4:
- ldr r2, _080A8E40 @ =gSprites
- ldr r0, _080A8E44 @ =gUnknown_2023D44
- adds r0, r7, r0
-_080A8DEA:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
-_080A8DF4:
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
-_080A8DFA:
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A8E48 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A8E4C
- movs r1, 0x2
- mov r0, r8
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8E4C
- ldrb r1, [r4, 0xC]
- mov r0, r8
- mov r2, sp
- mov r3, sp
- adds r3, 0x2
- bl sub_8076D9C
- b _080A8E6C
- .align 2, 0
-_080A8E40: .4byte gSprites
-_080A8E44: .4byte gUnknown_2023D44
-_080A8E48: .4byte gUnknown_2037F02
-_080A8E4C:
- mov r4, sp
- mov r0, r8
- mov r1, r10
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r2, sp
- strh r0, [r2, 0x2]
-_080A8E6C:
- mov r0, r8
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8E90
- mov r3, sp
- mov r2, sp
- ldr r1, _080A8E8C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x6]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r3]
- adds r2, r1, 0
- b _080A8E9E
- .align 2, 0
-_080A8E8C: .4byte gUnknown_2037F02
-_080A8E90:
- mov r3, sp
- mov r0, sp
- ldr r2, _080A8EE0 @ =gUnknown_2037F02
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r3]
-_080A8E9E:
- ldrh r1, [r2, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0x2]
- adds r1, r3
- mov r0, sp
- strh r1, [r0, 0x2]
- mov r3, r9
- strh r3, [r5, 0x30]
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x34]
- strh r6, [r5, 0x22]
- ldrh r0, [r0]
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x36]
- ldrh r0, [r2]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080A8EE4 @ =sub_80A8C84
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8EE0: .4byte gUnknown_2037F02
-_080A8EE4: .4byte sub_80A8C84
- thumb_func_end sub_80A8CA4
-
- thumb_func_start sub_80A8EE8
-sub_80A8EE8: @ 80A8EE8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A8F28 @ =0x000027db
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A8F0E
- lsls r0, 20
- ldr r1, _080A8F2C @ =0x01010000
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080A8F30 @ =gUnknown_2037F02
- ldrb r2, [r1, 0xA]
- ldrh r3, [r1, 0x8]
- movs r1, 0xF
- bl BlendPalette
-_080A8F0E:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080A8F34 @ =sub_8075D9C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8F28: .4byte 0x000027db
-_080A8F2C: .4byte 0x01010000
-_080A8F30: .4byte gUnknown_2037F02
-_080A8F34: .4byte sub_8075D9C
- thumb_func_end sub_80A8EE8
-
- thumb_func_start sub_80A8F38
-sub_80A8F38: @ 80A8F38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A8F6C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080A8F54
- ldr r1, _080A8F70 @ =0x0000ff60
-_080A8F54:
- movs r0, 0xE0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _080A8F74 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080A8F78 @ =sub_80A8F7C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8F6C: .4byte gUnknown_2037F1A
-_080A8F70: .4byte 0x0000ff60
-_080A8F74: .4byte gUnknown_2037F02
-_080A8F78: .4byte sub_80A8F7C
- thumb_func_end sub_80A8F38
-
- thumb_func_start sub_80A8F7C
-sub_80A8F7C: @ 80A8F7C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- subs r1, r0
- movs r5, 0
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- subs r2, 0x20
- strh r2, [r4, 0x2E]
- ldr r0, _080A8FE8 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080A8FAC
- ldr r1, _080A8FEC @ =0x0000ff60
-_080A8FAC:
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x26]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A8FE0
- ldrh r2, [r4, 0x22]
- adds r0, r1, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080A8FF0 @ =sub_80A8FF4
- str r0, [r4, 0x1C]
-_080A8FE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8FE8: .4byte gUnknown_2037F1A
-_080A8FEC: .4byte 0x0000ff60
-_080A8FF0: .4byte sub_80A8FF4
- thumb_func_end sub_80A8F7C
-
- thumb_func_start sub_80A8FF4
-sub_80A8FF4: @ 80A8FF4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080A9012
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080A9018 @ =sub_80A901C
- str r0, [r4, 0x1C]
-_080A9012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9018: .4byte sub_80A901C
- thumb_func_end sub_80A8FF4
-
- thumb_func_start sub_80A901C
-sub_80A901C: @ 80A901C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A9082
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9068
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _080A905C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080A9060 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080A9064 @ =sub_80A9094
- b _080A9080
- .align 2, 0
-_080A905C: .4byte 0x000003ff
-_080A9060: .4byte 0xfffffc00
-_080A9064: .4byte sub_80A9094
-_080A9068:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r3, _080A9088 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080A908C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080A9090 @ =sub_80A911C
-_080A9080:
- str r0, [r4, 0x1C]
-_080A9082:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9088: .4byte 0x000003ff
-_080A908C: .4byte 0xfffffc00
-_080A9090: .4byte sub_80A911C
- thumb_func_end sub_80A901C
-
- thumb_func_start sub_80A9094
-sub_80A9094: @ 80A9094
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x26]
- subs r0, 0x2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _080A90CA
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x2E]
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080A90D0 @ =sub_80A90D4
- str r0, [r4, 0x1C]
-_080A90CA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A90D0: .4byte sub_80A90D4
- thumb_func_end sub_80A9094
-
- thumb_func_start sub_80A90D4
-sub_80A90D4: @ 80A90D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080A9112
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9112
- ldr r0, _080A9118 @ =sub_80A911C
- str r0, [r4, 0x1C]
-_080A9112:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9118: .4byte sub_80A911C
- thumb_func_end sub_80A90D4
-
- thumb_func_start sub_80A911C
-sub_80A911C: @ 80A911C
- push {lr}
- adds r3, r0, 0
- ldr r0, _080A9144 @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- ldr r0, _080A9148 @ =0x0000ffff
- cmp r1, r0
- bne _080A9154
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080A9150
- ldr r0, _080A914C @ =sub_80A915C
- b _080A9152
- .align 2, 0
-_080A9144: .4byte gUnknown_2037F02
-_080A9148: .4byte 0x0000ffff
-_080A914C: .4byte sub_80A915C
-_080A9150:
- ldr r0, _080A9158 @ =DestroyAnimSprite
-_080A9152:
- str r0, [r3, 0x1C]
-_080A9154:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9158: .4byte DestroyAnimSprite
- thumb_func_end sub_80A911C
-
- thumb_func_start sub_80A915C
-sub_80A915C: @ 80A915C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A915C
-
- thumb_func_start sub_80A917C
-sub_80A917C: @ 80A917C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A91AC @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080A91B0 @ =gUnknown_83E4128
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A91B4 @ =sub_80A91B8
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A91AC: .4byte gTasks
-_080A91B0: .4byte gUnknown_83E4128
-_080A91B4: .4byte sub_80A91B8
- thumb_func_end sub_80A917C
-
- thumb_func_start sub_80A91B8
-sub_80A91B8: @ 80A91B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9208 @ =gTasks
- adds r4, r0, r1
- adds r0, r4, 0
- bl sub_8076308
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080A9202
- ldr r2, _080A920C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A9202:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9208: .4byte gTasks
-_080A920C: .4byte gSprites
- thumb_func_end sub_80A91B8
-
- thumb_func_start sub_80A9210
-sub_80A9210: @ 80A9210
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A9244 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x20]
- ldr r0, _080A9248 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A9250
- ldr r0, _080A924C @ =0x0000ffff
- strh r0, [r4, 0x22]
- movs r0, 0x8
- b _080A9256
- .align 2, 0
-_080A9244: .4byte gTasks
-_080A9248: .4byte gUnknown_2037F1B
-_080A924C: .4byte 0x0000ffff
-_080A9250:
- movs r0, 0x1
- strh r0, [r4, 0x22]
- ldr r0, _080A9270 @ =0x0000fff8
-_080A9256:
- strh r0, [r4, 0x24]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A9274 @ =sub_80A9278
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9270: .4byte 0x0000fff8
-_080A9274: .4byte sub_80A9278
- thumb_func_end sub_80A9210
-
- thumb_func_start sub_80A9278
-sub_80A9278: @ 80A9278
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A929C @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- cmp r4, 0x1
- beq _080A92CC
- cmp r4, 0x1
- bgt _080A92A0
- cmp r4, 0
- beq _080A92AA
- b _080A9392
- .align 2, 0
-_080A929C: .4byte gTasks
-_080A92A0:
- cmp r4, 0x2
- beq _080A9348
- cmp r4, 0x3
- beq _080A9362
- b _080A9392
-_080A92AA:
- ldr r2, _080A92C8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- strh r4, [r3, 0xA]
- strh r4, [r3, 0xC]
- strh r4, [r3, 0xE]
- b _080A935A
- .align 2, 0
-_080A92C8: .4byte gSprites
-_080A92CC:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A9392
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- ands r0, r4
- lsls r0, 16
- cmp r0, 0
- beq _080A9304
- ldr r2, _080A9300 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x6
- b _080A9316
- .align 2, 0
-_080A9300: .4byte gSprites
-_080A9304:
- ldr r2, _080A9344 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- subs r1, 0x6
-_080A9316:
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080A9392
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A935A
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- subs r0, 0x6
- strh r0, [r1, 0x24]
- b _080A935A
- .align 2, 0
-_080A9344: .4byte gSprites
-_080A9348:
- ldrh r0, [r3, 0x20]
- subs r0, 0x1
- strh r0, [r3, 0x20]
- lsls r0, 16
- cmp r0, 0
- beq _080A935A
- movs r0, 0
- strh r0, [r3, 0x8]
- b _080A9392
-_080A935A:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080A9392
-_080A9362:
- ldr r2, _080A9398 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A9392
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A9392:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9398: .4byte gSprites
- thumb_func_end sub_80A9278
-
- thumb_func_start sub_80A939C
-sub_80A939C: @ 80A939C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A93D8 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r0, 0xE
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A93DC @ =sub_80A93E0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A93D8: .4byte gTasks
-_080A93DC: .4byte sub_80A93E0
- thumb_func_end sub_80A939C
-
- thumb_func_start sub_80A93E0
-sub_80A93E0: @ 80A93E0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9434 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080A94A6
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _080A94A6
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A943C
- ldr r3, _080A9438 @ =gSprites
- movs r6, 0x26
- ldrsh r1, [r4, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _080A9452
- .align 2, 0
-_080A9434: .4byte gTasks
-_080A9438: .4byte gSprites
-_080A943C:
- ldr r3, _080A9484 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_080A9452:
- strb r1, [r0]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x22
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080A94A6
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x24
- ldrsh r1, [r4, r6]
- cmp r0, r1
- bge _080A9488
- strh r2, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- b _080A94A6
- .align 2, 0
-_080A9484: .4byte gSprites
-_080A9488:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A94A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A93E0
-
- thumb_func_start sub_80A94AC
-sub_80A94AC: @ 80A94AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A94FC @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- movs r1, 0x4
- strh r1, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- strh r0, [r4, 0x12]
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- strh r0, [r4, 0x18]
- strh r0, [r4, 0x22]
- ldr r5, _080A9500 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A9504 @ =sub_80A9508
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A94FC: .4byte gTasks
-_080A9500: .4byte gUnknown_2037F1A
-_080A9504: .4byte sub_80A9508
- thumb_func_end sub_80A94AC
-
- thumb_func_start sub_80A9508
-sub_80A9508: @ 80A9508
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A952C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x18
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A9574
- cmp r2, 0x1
- bgt _080A9530
- cmp r2, 0
- beq _080A9536
- b _080A9590
- .align 2, 0
-_080A952C: .4byte gTasks
-_080A9530:
- cmp r2, 0x2
- beq _080A958C
- b _080A9590
-_080A9536:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A9590
- strh r2, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080A9590
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A956E
- strh r2, [r4, 0x14]
- movs r0, 0x1
- strh r0, [r4, 0x18]
- b _080A9590
-_080A956E:
- movs r0, 0x2
- strh r0, [r4, 0x18]
- b _080A9590
-_080A9574:
- movs r1, 0
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080A9590
- strh r2, [r4, 0x16]
- strh r1, [r4, 0x18]
- b _080A9590
-_080A958C:
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_080A9590:
- movs r2, 0x8
- ldrsh r5, [r4, r2]
- cmp r5, 0
- beq _080A959E
- cmp r5, 0x1
- beq _080A9634
- b _080A9642
-_080A959E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080A9642
- strh r5, [r4, 0xA]
- ldr r0, _080A9628 @ =gUnknown_83E4154
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080A9642
- ldr r0, _080A962C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- strh r6, [r1, 0x2E]
- movs r0, 0xD
- strh r0, [r1, 0x30]
- ldr r2, _080A9630 @ =gUnknown_83E416C
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x24]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A9642
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A9642
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080A9642
- .align 2, 0
-_080A9628: .4byte gUnknown_83E4154
-_080A962C: .4byte gSprites
-_080A9630: .4byte gUnknown_83E416C
-_080A9634:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9642
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9642:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9508
-
- thumb_func_start sub_80A9648
-sub_80A9648: @ 80A9648
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _080A96B0 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r2, 0x1
- ldrb r1, [r0, 0x12]
- ands r1, r2
- lsls r1, 2
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A96AA
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x8
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroySprite
-_080A96AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A96B0: .4byte gTasks
- thumb_func_end sub_80A9648
-
- thumb_func_start sub_80A96B4
-sub_80A96B4: @ 80A96B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080A9750 @ =0x000027de
- bl IndexOfSpritePaletteTag
- mov r1, sp
- strb r0, [r1]
- movs r4, 0x1
- ldr r0, _080A9754 @ =0x00002710
- adds r5, r0, 0
-_080A96CC:
- subs r0, r5, r4
- lsls r0, 16
- lsrs r0, 16
- bl AllocSpritePalette
- mov r2, sp
- adds r1, r2, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x2
- ble _080A96CC
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- adds r1, r0, 0
- ldr r0, _080A9758 @ =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette
- bl LZDecompressWram
- movs r4, 0
-_080A9700:
- ldr r5, _080A9758 @ =gMonSpritesGfxPtr
- ldr r0, [r5]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- lsls r1, r4, 6
- ldr r0, [r0]
- adds r0, r1
- mov r2, sp
- adds r1, r2, r4
- ldrb r1, [r1]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x1
- cmp r4, 0x2
- ble _080A9700
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9750: .4byte 0x000027de
-_080A9754: .4byte 0x00002710
-_080A9758: .4byte gMonSpritesGfxPtr
-_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette
- thumb_func_end sub_80A96B4
-
- thumb_func_start sub_80A9760
-sub_80A9760: @ 80A9760
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080A9784 @ =gUnknown_83E41C8
- movs r4, 0x2
-_080A976A:
- ldrh r0, [r5]
- bl FreeSpritePaletteByTag
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080A976A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9784: .4byte gUnknown_83E41C8
- thumb_func_end sub_80A9760
-
- thumb_func_start sub_80A9788
-sub_80A9788: @ 80A9788
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- movs r0, 0x1
- ands r3, r0
- negs r0, r3
- orrs r0, r3
- asrs r0, 31
- movs r3, 0x20
- ands r0, r3
- ldrh r4, [r5, 0x4]
- lsls r3, r4, 22
- lsrs r3, 22
- lsrs r1, 22
- adds r0, r1
- adds r3, r0
- ldr r1, _080A97DC @ =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldr r0, _080A97E0 @ =0xfffffc00
- ands r0, r4
- orrs r0, r3
- strh r0, [r5, 0x4]
- ldr r0, _080A97E4 @ =gUnknown_83E41C8
- lsrs r2, 25
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r5, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A97DC: .4byte 0x000003ff
-_080A97E0: .4byte 0xfffffc00
-_080A97E4: .4byte gUnknown_83E41C8
- thumb_func_end sub_80A9788
-
- thumb_func_start sub_80A97E8
-sub_80A97E8: @ 80A97E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r6, _080A9850 @ =gUnknown_2037F1A
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A9808
- ldr r1, _080A9854 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A9808:
- ldr r4, _080A9854 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldr r0, _080A9858 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A985C @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- ldrb r2, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80A9788
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9850: .4byte gUnknown_2037F1A
-_080A9854: .4byte gUnknown_2037F02
-_080A9858: .4byte sub_8075590
-_080A985C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A97E8
-
- thumb_func_start sub_80A9860
-sub_80A9860: @ 80A9860
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A987A
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075160
-_080A987A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x32]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- subs r2, 0x80
- strh r2, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bne _080A98AA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A98AA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9860
-
- thumb_func_start sub_80A98B0
-sub_80A98B0: @ 80A98B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_8073788
- lsls r0, 24
- movs r6, 0xF0
- cmp r0, 0
- beq _080A98C4
- movs r6, 0x98
-_080A98C4:
- movs r5, 0
- ldr r1, _080A9918 @ =gUnknown_2022984
- strh r6, [r1]
- ldr r4, _080A991C @ =gUnknown_2022986
- movs r0, 0xA0
- strh r0, [r4]
- ldrh r1, [r1]
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- ldr r1, _080A9920 @ =0x00003f1f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080A9924 @ =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0xC8
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0x10
- bl SetGpuReg
- ldr r1, _080A9928 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- ldr r1, _080A992C @ =sub_80A9930
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9918: .4byte gUnknown_2022984
-_080A991C: .4byte gUnknown_2022986
-_080A9920: .4byte 0x00003f1f
-_080A9924: .4byte 0x00003f3f
-_080A9928: .4byte gTasks
-_080A992C: .4byte sub_80A9930
- thumb_func_end sub_80A98B0
-
- thumb_func_start sub_80A9930
-sub_80A9930: @ 80A9930
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9964 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x8]
- adds r4, r0, 0
- adds r4, 0xD
- strh r4, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r2, r0, 0
- subs r2, 0xD
- strh r2, [r3, 0xA]
- lsls r1, r4, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080A9970
- ldr r0, _080A9968 @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080A996C @ =sub_80A9984
- str r0, [r3]
- b _080A9978
- .align 2, 0
-_080A9964: .4byte gTasks
-_080A9968: .4byte gUnknown_2022984
-_080A996C: .4byte sub_80A9984
-_080A9970:
- ldr r1, _080A9980 @ =gUnknown_2022984
- lsls r0, r4, 8
- orrs r2, r0
- strh r2, [r1]
-_080A9978:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9980: .4byte gUnknown_2022984
- thumb_func_end sub_80A9930
-
- thumb_func_start sub_80A9984
-sub_80A9984: @ 80A9984
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A99D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080A99D8
- movs r0, 0x88
- strh r0, [r1, 0x1E]
- movs r0, 0x50
- movs r1, 0x88
- bl SetGpuReg
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- ldr r2, _080A99D4 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- b _080A9A0C
- .align 2, 0
-_080A99D0: .4byte gTasks
-_080A99D4: .4byte 0x00007fff
-_080A99D8:
- cmp r0, 0x4
- ble _080A9A0C
- ldr r0, _080A9A14 @ =gUnknown_2022984
- strh r4, [r0]
- ldr r0, _080A9A18 @ =gUnknown_2022986
- strh r4, [r0]
- ldr r4, _080A9A1C @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A9A0C:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9A14: .4byte gUnknown_2022984
-_080A9A18: .4byte gUnknown_2022986
-_080A9A1C: .4byte 0x00003f3f
- thumb_func_end sub_80A9984
-
- thumb_func_start sub_80A9A20
-sub_80A9A20: @ 80A9A20
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9A70 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A9A7C
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A9A74 @ =gUnknown_83E4200
- adds r0, r5, 0
- bl sub_80762D0
- ldr r1, _080A9A78 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080A9AA4
- .align 2, 0
-_080A9A70: .4byte gTasks
-_080A9A74: .4byte gUnknown_83E4200
-_080A9A78: .4byte gSprites
-_080A9A7C:
- ldr r1, _080A9AAC @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_8076308
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A9AA4
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9AA4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9AAC: .4byte gSprites
- thumb_func_end sub_80A9A20
-
- thumb_func_start sub_80A9AB0
-sub_80A9AB0: @ 80A9AB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9B00 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A9B0C
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A9B04 @ =gUnknown_83E4200
- adds r0, r5, 0
- bl sub_80762D0
- ldr r1, _080A9B08 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080A9B34
- .align 2, 0
-_080A9B00: .4byte gTasks
-_080A9B04: .4byte gUnknown_83E4200
-_080A9B08: .4byte gSprites
-_080A9B0C:
- ldr r1, _080A9B3C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_8076308
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A9B34
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9B34:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9B3C: .4byte gSprites
- thumb_func_end sub_80A9AB0
-
- thumb_func_start sub_80A9B40
-sub_80A9B40: @ 80A9B40
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- movs r0, 0x5F
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080A9B84 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080A9B88 @ =sub_80A9B8C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9B84: .4byte gUnknown_2037F1B
-_080A9B88: .4byte sub_80A9B8C
- thumb_func_end sub_80A9B40
-
- thumb_func_start sub_80A9B8C
-sub_80A9B8C: @ 80A9B8C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A9BB6
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A9BBC
-_080A9BB6:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9BBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9B8C
-
- thumb_func_start sub_80A9BC4
-sub_80A9BC4: @ 80A9BC4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9BE8
- ldr r1, _080A9BE4 @ =gUnknown_2037F02
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080A9C44
- .align 2, 0
-_080A9BE4: .4byte gUnknown_2037F02
-_080A9BE8:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080A9C36
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080A9C36:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080A9C44
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9C44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9BC4
-
- thumb_func_start sub_80A9C4C
-sub_80A9C4C: @ 80A9C4C
- push {lr}
- ldr r2, _080A9C70 @ =gUnknown_2037F02
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x30]
- ldr r1, _080A9C74 @ =sub_8074C44
- str r1, [r0, 0x1C]
- ldr r1, _080A9C78 @ =sub_80A9C7C
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A9C70: .4byte gUnknown_2037F02
-_080A9C74: .4byte sub_8074C44
-_080A9C78: .4byte sub_80A9C7C
- thumb_func_end sub_80A9C4C
-
- thumb_func_start sub_80A9C7C
-sub_80A9C7C: @ 80A9C7C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- lsls r0, 16
- lsrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x48
- bgt _080A9CE2
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- cmp r5, 0x40
- bgt _080A9CE2
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9CE2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9C7C
-
- thumb_func_start sub_80A9CE8
-sub_80A9CE8: @ 80A9CE8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9DA0 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x3
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A9D2A
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A9D2A:
- ldr r0, _080A9DA4 @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080A9DA8 @ =gUnknown_202297A
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap
- bl sub_807543C
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A9D88
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080A9D88:
- ldr r0, _080A9DB8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A9DBC @ =sub_80A9DC0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DA0: .4byte 0x00003f42
-_080A9DA4: .4byte gUnknown_2022978
-_080A9DA8: .4byte gUnknown_202297A
-_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap
-_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet
-_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette
-_080A9DB8: .4byte gTasks
-_080A9DBC: .4byte sub_80A9DC0
- thumb_func_end sub_80A9CE8
-
- thumb_func_start sub_80A9DC0
-sub_80A9DC0: @ 80A9DC0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9DE8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080A9DDE
- b _080A9F08
-_080A9DDE:
- lsls r0, 2
- ldr r1, _080A9DEC @ =_080A9DF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A9DE8: .4byte gTasks
-_080A9DEC: .4byte _080A9DF0
- .align 2, 0
-_080A9DF0:
- .4byte _080A9E04
- .4byte _080A9E48
- .4byte _080A9E6A
- .4byte _080A9EAE
- .4byte _080A9ED4
-_080A9E04:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A9F08
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A9F08
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080A9F08
-_080A9E48:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8D
- bne _080A9F08
- movs r0, 0x10
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080A9F08
-_080A9E6A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A9F08
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080A9F08
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080A9F08
-_080A9EAE:
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_8075358
- ldr r1, _080A9ED0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- b _080A9F08
- .align 2, 0
-_080A9ED0: .4byte gTasks
-_080A9ED4:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A9EE8
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080A9EE8:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A9F08:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9DC0
-
- thumb_func_start sub_80A9F10
-sub_80A9F10: @ 80A9F10
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9F88 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A9F52
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A9F52:
- ldr r0, _080A9F8C @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080A9F90 @ =gUnknown_202297A
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80752A0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A9F98
- ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080A9FC6
- .align 2, 0
-_080A9F88: .4byte 0x00003f42
-_080A9F8C: .4byte gUnknown_2022978
-_080A9F90: .4byte gUnknown_202297A
-_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
-_080A9F98:
- ldr r0, _080A9FB4 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A9FBC
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
- bl sub_807543C
- b _080A9FC6
- .align 2, 0
-_080A9FB4: .4byte gUnknown_2037F1B
-_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
-_080A9FBC:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
- bl sub_807543C
-_080A9FC6:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A9FFA
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080A9FFA:
- ldr r0, _080AA01C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AA020 @ =sub_80AA024
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
-_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
-_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
-_080AA01C: .4byte gTasks
-_080AA020: .4byte sub_80AA024
- thumb_func_end sub_80A9F10
-
- thumb_func_start sub_80AA024
-sub_80AA024: @ 80AA024
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AA04C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080AA042
- b _080AA168
-_080AA042:
- lsls r0, 2
- ldr r1, _080AA050 @ =_080AA054
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AA04C: .4byte gTasks
-_080AA050: .4byte _080AA054
- .align 2, 0
-_080AA054:
- .4byte _080AA068
- .4byte _080AA0AC
- .4byte _080AA0CE
- .4byte _080AA112
- .4byte _080AA134
-_080AA068:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080AA168
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xE
- bne _080AA168
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080AA168
-_080AA0AC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080AA168
- movs r0, 0xE
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080AA168
-_080AA0CE:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080AA168
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080AA168
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080AA168
-_080AA112:
- mov r0, sp
- bl sub_80752A0
- movs r0, 0x1
- bl sub_8075358
- movs r0, 0x2
- bl sub_8075358
- ldr r0, _080AA170 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080AA134:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AA148
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080AA148:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AA168:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA170: .4byte gTasks
- thumb_func_end sub_80AA024
-
- thumb_func_start sub_80AA174
-sub_80AA174: @ 80AA174
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080AA1C8 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080AA1CC @ =gUnknown_2037F02
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3C]
- ldr r1, _080AA1D0 @ =sub_80AA1D4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA1C8: .4byte gUnknown_2037F1A
-_080AA1CC: .4byte gUnknown_2037F02
-_080AA1D0: .4byte sub_80AA1D4
- thumb_func_end sub_80AA174
-
- thumb_func_start sub_80AA1D4
-sub_80AA1D4: @ 80AA1D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080AA1EA
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- b _080AA1EE
-_080AA1EA:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
-_080AA1EE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- beq _080AA260
- cmp r2, 0x1
- bne _080AA290
- ldr r1, _080AA258 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _080AA25C @ =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080AA290
- movs r0, 0x2
- strh r0, [r4, 0x38]
- b _080AA2A0
- .align 2, 0
-_080AA258: .4byte 0xfffffc00
-_080AA25C: .4byte 0xffffff00
-_080AA260:
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080AA290
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_080AA290:
- ldr r0, _080AA2A8 @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- ldr r0, _080AA2AC @ =0x0000ffff
- cmp r1, r0
- bne _080AA2A0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA2A0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA2A8: .4byte gUnknown_2037F02
-_080AA2AC: .4byte 0x0000ffff
- thumb_func_end sub_80AA1D4
-
- thumb_func_start sub_80AA2B0
-sub_80AA2B0: @ 80AA2B0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080AA2F8 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080AA2FC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldr r0, _080AA300 @ =sub_80AA304
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA2F8: .4byte gUnknown_2037F1A
-_080AA2FC: .4byte gUnknown_2037F02
-_080AA300: .4byte sub_80AA304
- thumb_func_end sub_80AA2B0
-
- thumb_func_start sub_80AA304
-sub_80AA304: @ 80AA304
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080AA342
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080AA342
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080AA348
-_080AA342:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA348:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA304
-
- thumb_func_start sub_80AA34C
-sub_80AA34C: @ 80AA34C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080AA378
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA378:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA34C
-
- thumb_func_start sub_80AA37C
-sub_80AA37C: @ 80AA37C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080AA3C8 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080AA3CC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x32]
- ldr r0, _080AA3D0 @ =sub_80AA34C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA3C8: .4byte gUnknown_2037F1A
-_080AA3CC: .4byte gUnknown_2037F02
-_080AA3D0: .4byte sub_80AA34C
- thumb_func_end sub_80AA37C
-
- thumb_func_start sub_80AA3D4
-sub_80AA3D4: @ 80AA3D4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA3EA
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA3EA:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA3D4
-
- thumb_func_start sub_80AA3F0
-sub_80AA3F0: @ 80AA3F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080AA404 @ =sub_80AA3D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA404: .4byte sub_80AA3D4
- thumb_func_end sub_80AA3F0
-
- thumb_func_start sub_80AA408
-sub_80AA408: @ 80AA408
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA426
- ldr r0, _080AA498 @ =gUnknown_2037F02
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080AA426:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r5, r0, 1
- movs r0, 0xFF
- ands r5, r0
- adds r0, r5, 0
- movs r1, 0x50
- bl Sin
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4F
- bgt _080AA46A
- adds r0, r5, 0
- movs r1, 0x50
- bl Cos
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- lsls r0, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x26]
-_080AA46A:
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0x5A
- ble _080AA488
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
-_080AA488:
- cmp r2, 0x64
- ble _080AA492
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA492:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA498: .4byte gUnknown_2037F02
- thumb_func_end sub_80AA408
-
- thumb_func_start sub_80AA49C
-sub_80AA49C: @ 80AA49C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080AA4F2
- adds r1, r0, 0
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080AA4F2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- ble _080AA500
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA500:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA49C
-
- thumb_func_start sub_80AA508
-sub_80AA508: @ 80AA508
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA52C
- ldr r1, _080AA528 @ =gUnknown_2037F02
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080AA580
- .align 2, 0
-_080AA528: .4byte gUnknown_2037F02
-_080AA52C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- movs r5, 0
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x46
- ble _080AA580
- ldr r0, _080AA588 @ =sub_80AA49C
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r0, r2, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- bl __umodsi3
- strh r0, [r4, 0x34]
-_080AA580:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA588: .4byte sub_80AA49C
- thumb_func_end sub_80AA508
-
- thumb_func_start sub_80AA58C
-sub_80AA58C: @ 80AA58C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA5C6
- ldr r1, _080AA688 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _080AA68C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080AA5C6:
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r0, r1, 0
- cmp r1, 0
- bge _080AA5DC
- adds r0, 0xFF
-_080AA5DC:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080AA5EE
- movs r0, 0
- strh r0, [r4, 0x30]
-_080AA5EE:
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080AA5FC
- adds r0, 0x3
-_080AA5FC:
- asrs r0, 2
- movs r1, 0x1E
- subs r1, r0
- adds r0, r2, 0
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080AA618
- adds r0, 0x7
-_080AA618:
- asrs r0, 3
- movs r1, 0xA
- subs r1, r0
- adds r0, r2, 0
- bl Sin
- strh r0, [r4, 0x26]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- ble _080AA63C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080AA63C
- ldr r0, _080AA690 @ =0x0000ffff
- strh r0, [r4, 0x32]
-_080AA63C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA650
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080AA650
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080AA650:
- ldrh r0, [r4, 0x34]
- adds r1, r0, 0x1
- strh r1, [r4, 0x34]
- subs r0, 0x9
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x46
- bls _080AA694
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080AA6A2
- .align 2, 0
-_080AA688: .4byte gUnknown_2037F02
-_080AA68C: .4byte gUnknown_2037F1B
-_080AA690: .4byte 0x0000ffff
-_080AA694:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080AA6A2:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x5A
- ble _080AA6B0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA6B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA58C
-
- thumb_func_start sub_80AA6B8
-sub_80AA6B8: @ 80AA6B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA6EC
- ldr r1, _080AA6E8 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080AA700
- .align 2, 0
-_080AA6E8: .4byte gUnknown_2037F02
-_080AA6EC:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA700
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA700:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA6B8
-
- thumb_func_start sub_80AA708
-sub_80AA708: @ 80AA708
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _080AA720 @ =gUnknown_2037F02
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AA724
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _080AA788
- .align 2, 0
-_080AA720: .4byte gUnknown_2037F02
-_080AA724:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AA734
- ldr r4, _080AA730 @ =gUnknown_2037F1A
- b _080AA736
- .align 2, 0
-_080AA730: .4byte gUnknown_2037F1A
-_080AA734:
- ldr r4, _080AA764 @ =gUnknown_2037F1B
-_080AA736:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080AA768 @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _080AA76C
- ldrh r0, [r5, 0x20]
- adds r0, 0x20
- b _080AA770
- .align 2, 0
-_080AA764: .4byte gUnknown_2037F1B
-_080AA768: .4byte gUnknown_2037F02
-_080AA76C:
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
-_080AA770:
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080AA790 @ =sub_80AA794
- str r0, [r5, 0x1C]
-_080AA788:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA790: .4byte sub_80AA794
- thumb_func_end sub_80AA708
-
- thumb_func_start sub_80AA794
-sub_80AA794: @ 80AA794
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA7C4
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- beq _080AA7BE
- ldrh r1, [r2, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080AA7C4
-_080AA7BE:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA7C4:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA794
-
- thumb_func_start sub_80AA7C8
-sub_80AA7C8: @ 80AA7C8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080AA7FC @ =gUnknown_2037F02
- ldrb r0, [r0]
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080AA800 @ =gTasks
- adds r4, r0
- ldr r2, _080AA804 @ =gUnknown_83E4410
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080AA808 @ =sub_80AA80C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA7FC: .4byte gUnknown_2037F02
-_080AA800: .4byte gTasks
-_080AA804: .4byte gUnknown_83E4410
-_080AA808: .4byte sub_80AA80C
- thumb_func_end sub_80AA7C8
-
- thumb_func_start sub_80AA80C
-sub_80AA80C: @ 80AA80C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080AA834 @ =gTasks
- adds r0, r1
- bl sub_8076308
- lsls r0, 24
- cmp r0, 0
- bne _080AA82C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AA82C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA834: .4byte gTasks
- thumb_func_end sub_80AA80C
-
- thumb_func_start sub_80AA838
-sub_80AA838: @ 80AA838
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080AA84C @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AA854
- ldr r0, _080AA850 @ =gUnknown_2037F1A
- b _080AA856
- .align 2, 0
-_080AA84C: .4byte gUnknown_2037F02
-_080AA850: .4byte gUnknown_2037F1A
-_080AA854:
- ldr r0, _080AA8EC @ =gUnknown_2037F1B
-_080AA856:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AA870
- ldr r1, _080AA8F0 @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080AA870:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r7, _080AA8F0 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r3, [r7, 0x2]
- adds r0, r3
- movs r4, 0
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x4]
- adds r0, r1
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x2E]
- ldrh r1, [r5, 0x20]
- lsls r1, 3
- strh r1, [r5, 0x30]
- lsls r0, 3
- strh r0, [r5, 0x32]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 3
- cmp r0, 0
- bge _080AA8B0
- adds r0, 0x7
-_080AA8B0:
- asrs r0, 3
- strh r0, [r5, 0x34]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- lsls r0, 3
- cmp r0, 0
- bge _080AA8C0
- adds r0, 0x7
-_080AA8C0:
- asrs r0, 3
- strh r0, [r5, 0x36]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- lsls r0, 4
- adds r1, r0
- ldr r3, _080AA8F4 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080AA8F8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080AA8FC @ =sub_80AA900
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA8EC: .4byte gUnknown_2037F1B
-_080AA8F0: .4byte gUnknown_2037F02
-_080AA8F4: .4byte 0x000003ff
-_080AA8F8: .4byte 0xfffffc00
-_080AA8FC: .4byte sub_80AA900
- thumb_func_end sub_80AA838
-
- thumb_func_start sub_80AA900
-sub_80AA900: @ 80AA900
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r3, [r2, 0x32]
- adds r1, r3
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080AA934
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA934:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA900
-
- thumb_func_start sub_80AA938
-sub_80AA938: @ 80AA938
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA95A
- ldr r0, _080AA994 @ =gUnknown_2037F02
- ldrh r1, [r0]
- movs r0, 0x78
- subs r0, r1
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080AA95A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080AA978
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8075B48
-_080AA978:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, 0x50
- cmp r1, r0
- bne _080AA98C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA98C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA994: .4byte gUnknown_2037F02
- thumb_func_end sub_80AA938
-
- thumb_func_start sub_80AA998
-sub_80AA998: @ 80AA998
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080AA9C6
- movs r5, 0x78
- strh r5, [r6, 0x20]
- ldr r4, _080AAA48 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0xF
- strh r0, [r6, 0x22]
- ldrb r1, [r4, 0x2]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x38]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x34]
-_080AA9C6:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r6, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r6, 0x30]
- movs r2, 0x2E
- ldrsh r0, [r6, r2]
- lsls r4, r0, 1
- adds r4, r0
- ldrh r0, [r6, 0x34]
- adds r4, r0
- movs r2, 0xFF
- ldrh r0, [r6, 0x3A]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3A]
- ands r4, r2
- adds r0, r4, 0
- movs r1, 0x64
- bl Cos
- strh r0, [r6, 0x24]
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r1, 0x4
- bl Cos
- ldrh r2, [r6, 0x30]
- adds r4, r2
- adds r0, r4
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x38
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080AAA42
- ldr r0, _080AAA4C @ =sub_80AAA50
- str r0, [r6, 0x1C]
- strh r5, [r6, 0x2E]
- adds r0, r6, 0
- bl oamt_add_pos2_onto_pos1
- movs r0, 0x5
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x36]
- strh r5, [r6, 0x34]
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080AAA42:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA48: .4byte gUnknown_2037F02
-_080AAA4C: .4byte sub_80AAA50
- thumb_func_end sub_80AA998
-
- thumb_func_start sub_80AAA50
-sub_80AAA50: @ 80AAA50
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080AAA6A
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080AAA70 @ =sub_80AAA74
- str r0, [r1, 0x1C]
-_080AAA6A:
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA70: .4byte sub_80AAA74
- thumb_func_end sub_80AAA50
-
- thumb_func_start sub_80AAA74
-sub_80AAA74: @ 80AAA74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x26]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _080AAA9E
- lsls r0, r1, 16
- cmp r0, 0
- ble _080AAA9E
- ldrh r0, [r4, 0x36]
- subs r1, r0, 0x5
- strh r1, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_080AAA9E:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080AAAD0
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AAAD0:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _080AAADE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AAADE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AAA74
-
- thumb_func_start sub_80AAAE4
-sub_80AAAE4: @ 80AAAE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080AAB28 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AAB30
- ldr r4, _080AAB2C @ =gUnknown_2037F1A
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080AAB30
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_8076D9C
- ldrh r0, [r5, 0x22]
- adds r0, 0x28
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080AAB50
- .align 2, 0
-_080AAB28: .4byte gBattleTypeFlags
-_080AAB2C: .4byte gUnknown_2037F1A
-_080AAB30:
- ldr r4, _080AAB70 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
- strh r0, [r5, 0x22]
-_080AAB50:
- movs r0, 0xD
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- subs r0, 0x48
- strh r0, [r5, 0x36]
- ldr r0, _080AAB74 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080AAB78 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB70: .4byte gUnknown_2037F1A
-_080AAB74: .4byte sub_8075590
-_080AAB78: .4byte DestroyAnimSprite
- thumb_func_end sub_80AAAE4
-
- thumb_func_start sub_80AAB7C
-sub_80AAB7C: @ 80AAB7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080AAB98 @ =gUnknown_2037F02
- ldr r1, _080AAB9C @ =gUnknown_2037EE4
- ldr r1, [r1]
- ldrb r2, [r1, 0x10]
- movs r1, 0x1
- ands r1, r2
- strh r1, [r3, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB98: .4byte gUnknown_2037F02
-_080AAB9C: .4byte gUnknown_2037EE4
- thumb_func_end sub_80AAB7C
-
- thumb_func_start update_fury_cutter_counter_copy
-update_fury_cutter_counter_copy: @ 80AABA0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AABB8 @ =gUnknown_2037F02
- ldr r1, _080AABBC @ =gUnknown_2037EE4
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- strh r1, [r2, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080AABB8: .4byte gUnknown_2037F02
-_080AABBC: .4byte gUnknown_2037EE4
- thumb_func_end update_fury_cutter_counter_copy
-
- thumb_func_start sub_80AABC0
-sub_80AABC0: @ 80AABC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080AAC48 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AABE8
- ldr r1, _080AAC4C @ =gUnknown_2037F02
- ldrh r0, [r1]
- strh r0, [r5, 0xA]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0xC]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0xE]
-_080AABE8:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __modsi3
- cmp r0, 0x1
- bne _080AAC30
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x50
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080AAC50 @ =gUnknown_83E5898
- adds r1, r4, 0
- movs r3, 0x4
- bl CreateSprite
-_080AAC30:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _080AAC42
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080AAC42:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAC48: .4byte gTasks
-_080AAC4C: .4byte gUnknown_2037F02
-_080AAC50: .4byte gUnknown_83E5898
- thumb_func_end sub_80AABC0
-
- thumb_func_start sub_80AAC54
-sub_80AAC54: @ 80AAC54
- ldr r1, _080AAC5C @ =sub_80AAC60
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080AAC5C: .4byte sub_80AAC60
- thumb_func_end sub_80AAC54
-
- thumb_func_start sub_80AAC60
-sub_80AAC60: @ 80AAC60
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080AAC7E
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- adds r0, 0x4
- strh r0, [r2, 0x26]
-_080AAC7E:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AAC92
- adds r0, r2, 0
- bl DestroySprite
-_080AAC92:
- pop {r0}
- bx r0
- thumb_func_end sub_80AAC60
-
- thumb_func_start sub_80AAC98
-sub_80AAC98: @ 80AAC98
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080AACC0 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AACC8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080AACC4 @ =gUnknown_2037F02
- ldrh r1, [r4]
- subs r0, r1
- b _080AACDA
- .align 2, 0
-_080AACC0: .4byte gUnknown_2037F1A
-_080AACC4: .4byte gUnknown_2037F02
-_080AACC8:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080AADA0 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
-_080AACDA:
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r6, 0x22]
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080AADA4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AAD10
- ldr r1, _080AADA0 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080AAD10:
- ldr r5, _080AADA0 @ =gUnknown_2037F02
- ldrh r0, [r5, 0xC]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r4, _080AADA8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080AADAC @ =SpriteCallbackDummy
- bl CreateInvisibleSpriteWithCallback
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r6, 0x38]
- ldrb r0, [r5, 0x8]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r6, 0x20]
- subs r1, r0
- strh r1, [r6, 0x20]
- ldrb r0, [r5, 0x8]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- ldrh r1, [r6, 0x22]
- subs r1, r0
- strh r1, [r6, 0x22]
- ldr r0, _080AADB0 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r1, 0x32]
- ldrb r0, [r5, 0x8]
- lsls r0, 8
- strh r0, [r1, 0x34]
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x36]
- ldr r1, _080AADB4 @ =sub_80AADB8
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AADA0: .4byte gUnknown_2037F02
-_080AADA4: .4byte gUnknown_2037F1A
-_080AADA8: .4byte gUnknown_2037F1B
-_080AADAC: .4byte SpriteCallbackDummy
-_080AADB0: .4byte gSprites
-_080AADB4: .4byte sub_80AADB8
- thumb_func_end sub_80AAC98
-
- thumb_func_start sub_80AADB8
-sub_80AADB8: @ 80AADB8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r1, [r5, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080AAE20 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r7, r0, r2
- ldrh r4, [r7, 0x36]
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r7, 0x34]
- mov r8, r0
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_80755E0
- mov r1, r8
- lsrs r6, r1, 8
- movs r0, 0x2E
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Sin
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r0, 0x30
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Cos
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r0, [r7, 0x32]
- mov r1, r8
- adds r1, r0
- strh r1, [r7, 0x34]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0
- beq _080AAE24
- strh r4, [r7, 0x36]
- b _080AAE2E
- .align 2, 0
-_080AAE20: .4byte gSprites
-_080AAE24:
- ldr r0, _080AAE3C @ =sub_80AAE40
- str r0, [r5, 0x1C]
- adds r0, r7, 0
- bl DestroySprite
-_080AAE2E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAE3C: .4byte sub_80AAE40
- thumb_func_end sub_80AADB8
-
- thumb_func_start sub_80AAE40
-sub_80AAE40: @ 80AAE40
- push {lr}
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldr r1, _080AAE60 @ =sub_8074F6C
- str r1, [r0, 0x1C]
- ldr r1, _080AAE64 @ =sub_80AAE68
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080AAE60: .4byte sub_8074F6C
-_080AAE64: .4byte sub_80AAE68
- thumb_func_end sub_80AAE40
-
- thumb_func_start sub_80AAE68
-sub_80AAE68: @ 80AAE68
- push {lr}
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- ldr r1, _080AAE7C @ =sub_8074C44
- str r1, [r0, 0x1C]
- ldr r1, _080AAE80 @ =move_anim_8074EE0
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080AAE7C: .4byte sub_8074C44
-_080AAE80: .4byte move_anim_8074EE0
- thumb_func_end sub_80AAE68
-
- thumb_func_start sub_80AAE84
-sub_80AAE84: @ 80AAE84
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080AAEAC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AAEB4
- ldr r1, _080AAEB0 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r1, 0
- b _080AAEBA
- .align 2, 0
-_080AAEAC: .4byte gUnknown_2037F1A
-_080AAEB0: .4byte gUnknown_2037F02
-_080AAEB4:
- ldr r0, _080AAF10 @ =gUnknown_2037F02
- ldrh r6, [r0, 0x4]
- adds r7, r0, 0
-_080AAEBA:
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080AAF14 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7, 0x6]
- adds r0, r7
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080AAF18 @ =sub_80AAF1C
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAF10: .4byte gUnknown_2037F02
-_080AAF14: .4byte gUnknown_2037F1B
-_080AAF18: .4byte sub_80AAF1C
- thumb_func_end sub_80AAE84
-
- thumb_func_start sub_80AAF1C
-sub_80AAF1C: @ 80AAF1C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AAF58 @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- ldr r0, _080AAF5C @ =0x0000ffff
- cmp r1, r0
- bne _080AAF3E
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_080AAF3E:
- adds r0, r4, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080AAF50
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AAF50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAF58: .4byte gUnknown_2037F02
-_080AAF5C: .4byte 0x0000ffff
- thumb_func_end sub_80AAF1C
-
- thumb_func_start sub_80AAF60
-sub_80AAF60: @ 80AAF60
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080AAF94 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, _080AAF98 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r4, 0x8]
- ldr r0, _080AAF9C @ =0x0000279c
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _080AAFA0 @ =sub_80AAFA4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAF94: .4byte gTasks
-_080AAF98: .4byte gUnknown_2037F02
-_080AAF9C: .4byte 0x0000279c
-_080AAFA0: .4byte sub_80AAFA4
- thumb_func_end sub_80AAF60
-
- thumb_func_start sub_80AAFA4
-sub_80AAFA4: @ 80AAFA4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AB01C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0x3
- bne _080AAFF6
- movs r0, 0
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080AB020 @ =gPlttBufferFaded
- lsls r0, r5, 1
- adds r0, r1
- ldrh r6, [r0]
- adds r7, r1, 0
- adds r3, r0, 0x2
- movs r1, 0x6
- adds r2, r0, 0
-_080AAFE0:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080AAFE0
- adds r0, r5, 0x7
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
-_080AAFF6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _080AB016
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AB016:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB01C: .4byte gTasks
-_080AB020: .4byte gPlttBufferFaded
- thumb_func_end sub_80AAFA4
-
- thumb_func_start sub_80AB024
-sub_80AB024: @ 80AB024
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080AB08C @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r0, 0xD2
- lsls r0, 8
- bl __divsi3
- strh r0, [r5, 0x38]
- ldr r0, _080AB090 @ =gUnknown_2037F02
- ldrh r2, [r0, 0x6]
- strh r2, [r5, 0x3C]
- ldrh r1, [r0, 0xE]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r0, 0x7F
- ble _080AB094
- adds r0, r1, 0
- subs r0, 0x7F
- lsls r0, 8
- strh r0, [r5, 0x3A]
- negs r0, r2
- strh r0, [r5, 0x3C]
- b _080AB098
- .align 2, 0
-_080AB08C: .4byte gUnknown_2037F1B
-_080AB090: .4byte gUnknown_2037F02
-_080AB094:
- lsls r0, r1, 8
- strh r0, [r5, 0x3A]
-_080AB098:
- ldr r1, _080AB0A8 @ =sub_80AB0AC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB0A8: .4byte sub_80AB0AC
- thumb_func_end sub_80AB024
-
- thumb_func_start sub_80AB0AC
-sub_80AB0AC: @ 80AB0AC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080AB0C0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AB0C0:
- ldrh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- adds r0, r1
- asrs r0, 8
- cmp r0, 0x7F
- ble _080AB0F0
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- negs r0, r0
- strh r0, [r4, 0x3C]
- b _080AB0F8
-_080AB0F0:
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x3A]
-_080AB0F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AB0AC
-
- thumb_func_start sub_80AB100
-sub_80AB100: @ 80AB100
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AB120 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080AB124 @ =gUnknown_2037F02
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r3, 0xE]
- ldr r0, _080AB128 @ =sub_80AB12C
- str r0, [r1]
- bx lr
- .align 2, 0
-_080AB120: .4byte gTasks
-_080AB124: .4byte gUnknown_2037F02
-_080AB128: .4byte sub_80AB12C
- thumb_func_end sub_80AB100
-
- thumb_func_start sub_80AB12C
-sub_80AB12C: @ 80AB12C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080AB160 @ =gUnknown_2037F02
- ldrh r0, [r2, 0xE]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0xE]
- ldr r1, _080AB164 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080AB15A
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080AB15A:
- pop {r0}
- bx r0
- .align 2, 0
-_080AB160: .4byte gUnknown_2037F02
-_080AB164: .4byte gTasks
- thumb_func_end sub_80AB12C
-
- thumb_func_start sub_80AB168
-sub_80AB168: @ 80AB168
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r7, _080AB1B4 @ =gUnknown_2037F1A
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r7]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r6, _080AB1B8 @ =0x0000fff6
- strh r6, [r4, 0x26]
- ldrb r0, [r7]
- bl sub_807685C
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AB1C2
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AB1BC
- movs r0, 0xA
- strh r0, [r4, 0x24]
- b _080AB1C4
- .align 2, 0
-_080AB1B4: .4byte gUnknown_2037F1A
-_080AB1B8: .4byte 0x0000fff6
-_080AB1BC:
- strh r6, [r4, 0x24]
- subs r0, r5, 0x2
- b _080AB1C6
-_080AB1C2:
- strh r6, [r4, 0x24]
-_080AB1C4:
- adds r0, r5, 0x2
-_080AB1C6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r0, _080AB1D8 @ =sub_80AB1DC
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB1D8: .4byte sub_80AB1DC
- thumb_func_end sub_80AB168
-
- thumb_func_start sub_80AB1DC
-sub_80AB1DC: @ 80AB1DC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080AB1F2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AB1F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80AB1DC
-
- thumb_func_start sub_80AB1F8
-sub_80AB1F8: @ 80AB1F8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r5, _080AB2B8 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080AB2BC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080AB242
- ldr r4, _080AB2C0 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- beq _080AB23A
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AB242
-_080AB23A:
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
-_080AB242:
- ldr r5, _080AB2C0 @ =gUnknown_2037F02
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _080AB256
- movs r1, 0x1
-_080AB256:
- ldrb r0, [r5, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _080AB260
- movs r7, 0x3
-_080AB260:
- adds r0, r6, 0
- bl sub_8075160
- ldr r0, _080AB2B8 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AB27A
- ldrh r0, [r5, 0x4]
- negs r0, r0
- strh r0, [r5, 0x4]
-_080AB27A:
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r4, _080AB2BC @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r6, 0x36]
- ldr r0, _080AB2C4 @ =sub_8075590
- str r0, [r6, 0x1C]
- ldr r1, _080AB2C8 @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB2B8: .4byte gUnknown_2037F1A
-_080AB2BC: .4byte gUnknown_2037F1B
-_080AB2C0: .4byte gUnknown_2037F02
-_080AB2C4: .4byte sub_8075590
-_080AB2C8: .4byte DestroyAnimSprite
- thumb_func_end sub_80AB1F8
-
- thumb_func_start sub_80AB2CC
-sub_80AB2CC: @ 80AB2CC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r0, _080AB2FC @ =gUnknown_2037F02
- ldrh r1, [r0, 0x8]
- strh r1, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x36]
- ldr r0, _080AB300 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080AB304 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB2FC: .4byte gUnknown_2037F02
-_080AB300: .4byte sub_8075590
-_080AB304: .4byte DestroyAnimSprite
- thumb_func_end sub_80AB2CC
-
- thumb_func_start sub_80AB308
-sub_80AB308: @ 80AB308
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AB320 @ =gUnknown_2037F02
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080AB324
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- b _080AB32C
- .align 2, 0
-_080AB320: .4byte gUnknown_2037F02
-_080AB324:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075160
-_080AB32C:
- ldr r0, _080AB33C @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080AB340 @ =sub_80AB344
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB33C: .4byte gUnknown_2037F02
-_080AB340: .4byte sub_80AB344
- thumb_func_end sub_80AB308
-
- thumb_func_start sub_80AB344
-sub_80AB344: @ 80AB344
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080AB384
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AB384:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AB344
-
- thumb_func_start sub_80AB38C
-sub_80AB38C: @ 80AB38C
- 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 r10, r0
- ldr r1, _080AB3FC @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl SetAnimBgAttribute
- mov r0, sp
- bl sub_80752A0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AB418
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, _080AB400 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AB408
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap
- bl sub_807543C
- b _080AB42E
- .align 2, 0
-_080AB3FC: .4byte 0x00003f42
-_080AB400: .4byte gUnknown_2037F1A
-_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap
-_080AB408:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap
- bl sub_807543C
- b _080AB42E
- .align 2, 0
-_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap
-_080AB418:
- ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0x1
- bl sub_80730C0
-_080AB42E:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080AB460 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AB468
- ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080AB476
- .align 2, 0
-_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap
-_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet
-_080AB460: .4byte gUnknown_2037F02
-_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette
-_080AB468:
- ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080AB476:
- ldr r0, _080AB4E4 @ =sub_80AB79C
- ldr r4, _080AB4E8 @ =gTasks
- mov r2, r10
- lsls r5, r2, 2
- adds r1, r5, r2
- lsls r1, 3
- adds r6, r1, r4
- ldrb r1, [r6, 0x7]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- mov r9, r0
- mov r1, r8
- strh r1, [r6, 0x26]
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r7, r0, r4
- mov r0, r9
- strh r0, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r7, 0xA]
- strh r0, [r7, 0xC]
- bl sub_8073788
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080AB4F8
- ldr r1, _080AB4EC @ =0x0000ffb0
- adds r0, r1, 0
- ldr r2, _080AB4F0 @ =gUnknown_2022978
- strh r0, [r2]
- adds r1, 0x20
- adds r0, r1, 0
- ldr r2, _080AB4F4 @ =gUnknown_202297A
- strh r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- mov r0, r9
- strh r0, [r7, 0xE]
- b _080AB552
- .align 2, 0
-_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette
-_080AB4E4: .4byte sub_80AB79C
-_080AB4E8: .4byte gTasks
-_080AB4EC: .4byte 0x0000ffb0
-_080AB4F0: .4byte gUnknown_2022978
-_080AB4F4: .4byte gUnknown_202297A
-_080AB4F8:
- ldr r0, _080AB528 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080AB53C
- ldr r2, _080AB52C @ =0x0000ff20
- adds r0, r2, 0
- ldr r2, _080AB530 @ =gUnknown_2022978
- strh r0, [r2]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldr r2, _080AB534 @ =gUnknown_202297A
- strh r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- ldr r0, _080AB538 @ =0x0000ffff
- strh r0, [r6, 0xA]
- strh r1, [r7, 0xE]
- b _080AB552
- .align 2, 0
-_080AB528: .4byte gUnknown_2037F1A
-_080AB52C: .4byte 0x0000ff20
-_080AB530: .4byte gUnknown_2022978
-_080AB534: .4byte gUnknown_202297A
-_080AB538: .4byte 0x0000ffff
-_080AB53C:
- ldr r0, _080AB584 @ =gUnknown_2022978
- strh r4, [r0]
- ldr r1, _080AB588 @ =0x0000ffd0
- adds r0, r1, 0
- ldr r2, _080AB58C @ =gUnknown_202297A
- strh r0, [r2]
- ldr r0, _080AB590 @ =0x0000fffe
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r7, 0xE]
-_080AB552:
- ldr r0, _080AB584 @ =gUnknown_2022978
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r2, _080AB58C @ =gUnknown_202297A
- ldrh r1, [r2]
- movs r0, 0x16
- bl SetGpuReg
- ldr r1, _080AB594 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AB598
- movs r0, 0x30
- strh r0, [r1, 0x10]
- movs r0, 0x70
- b _080AB59C
- .align 2, 0
-_080AB584: .4byte gUnknown_2022978
-_080AB588: .4byte 0x0000ffd0
-_080AB58C: .4byte gUnknown_202297A
-_080AB590: .4byte 0x0000fffe
-_080AB594: .4byte gTasks
-_080AB598:
- movs r0, 0
- strh r0, [r1, 0x10]
-_080AB59C:
- strh r0, [r1, 0x12]
- ldr r1, _080AB5C0 @ =gTasks
- mov r2, r10
- adds r0, r5, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x14]
- ldr r1, _080AB5C4 @ =sub_80AB5C8
- str r1, [r0]
- 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
-_080AB5C0: .4byte gTasks
-_080AB5C4: .4byte sub_80AB5C8
- thumb_func_end sub_80AB38C
-
- thumb_func_start sub_80AB5C8
-sub_80AB5C8: @ 80AB5C8
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080AB6F4 @ =gUnknown_2022978
- ldr r2, _080AB6F8 @ =gUnknown_202297A
- ldr r0, _080AB6FC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x8]
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- ldrh r0, [r4, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- mov r0, sp
- bl sub_80752A0
- ldrh r0, [r4, 0xA]
- ldrh r3, [r4, 0xC]
- adds r0, r3
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080AB65C
- ldr r1, _080AB700 @ =gPlttBufferFaded
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- adds r0, 0x7
- lsls r0, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r2, 0x6
- adds r7, r1, 0
- adds r3, r7, 0
- mov r4, sp
-_080AB622:
- ldrb r0, [r4, 0x8]
- lsls r0, 4
- adds r1, r2, 0x1
- adds r0, r1
- lsls r1, r0, 1
- adds r1, r3
- subs r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080AB622
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- adds r0, 0x1
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
- ldr r1, _080AB6FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
-_080AB65C:
- ldr r1, _080AB6FC @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x14]
- adds r0, 0x1
- strh r0, [r3, 0x14]
- lsls r0, 16
- asrs r0, 16
- adds r4, r1, 0
- adds r6, r2, 0
- cmp r0, 0x1
- ble _080AB6CA
- movs r0, 0
- strh r0, [r3, 0x14]
- ldrh r0, [r3, 0xE]
- adds r2, r0, 0x1
- strh r2, [r3, 0xE]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080AB6A6
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
-_080AB6A6:
- movs r1, 0xE
- ldrsh r0, [r3, r1]
- cmp r0, 0x36
- ble _080AB6CA
- ldrh r2, [r3, 0x10]
- subs r2, 0x1
- strh r2, [r3, 0x10]
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
-_080AB6CA:
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r4
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldrh r0, [r0, 0xA]
- movs r3, 0x1F
- ands r3, r0
- cmp r3, 0
- bne _080AB6EC
- strh r3, [r2, 0x8]
- ldr r0, _080AB704 @ =sub_80AB708
- str r0, [r2]
-_080AB6EC:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB6F4: .4byte gUnknown_2022978
-_080AB6F8: .4byte gUnknown_202297A
-_080AB6FC: .4byte gTasks
-_080AB700: .4byte gPlttBufferFaded
-_080AB704: .4byte sub_80AB708
- thumb_func_end sub_80AB5C8
-
- thumb_func_start sub_80AB708
-sub_80AB708: @ 80AB708
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r7, _080AB740 @ =gUnknown_2022978
- ldr r0, _080AB744 @ =gUnknown_202297A
- mov r8, r0
- ldr r6, _080AB748 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AB74C
- movs r0, 0x1
- bl sub_8075358
- movs r0, 0x2
- bl sub_8075358
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AB78E
- .align 2, 0
-_080AB740: .4byte gUnknown_2022978
-_080AB744: .4byte gUnknown_202297A
-_080AB748: .4byte gTasks
-_080AB74C:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AB760
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080AB760:
- movs r0, 0
- strh r0, [r7]
- mov r1, r8
- strh r0, [r1]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldr r1, _080AB798 @ =0x0000ffff
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080AB78E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB798: .4byte 0x0000ffff
- thumb_func_end sub_80AB708
-
- thumb_func_start sub_80AB79C
-sub_80AB79C: @ 80AB79C
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080AB7C4 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080AB7B8
- b _080AB8F0
-_080AB7B8:
- cmp r0, 0x1
- bgt _080AB7C8
- cmp r0, 0
- beq _080AB7D0
- b _080ABA66
- .align 2, 0
-_080AB7C4: .4byte gTasks
-_080AB7C8:
- cmp r0, 0x2
- bne _080AB7CE
- b _080AB9BC
-_080AB7CE:
- b _080ABA66
-_080AB7D0:
- movs r3, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- ldr r1, _080AB8A0 @ =gUnknown_2038700
- mov r12, r1
- cmp r3, r0
- bge _080AB80E
- mov r7, r12
- movs r5, 0xF0
- lsls r5, 3
- add r5, r12
- ldr r6, _080AB8A4 @ =0x0000ffff
-_080AB7E8:
- lsls r2, r3, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r7
- adds r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080AB7E8
-_080AB80E:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080AB848
- ldr r5, _080AB8A0 @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080AB8A4 @ =0x0000ffff
-_080AB826:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldrh r1, [r4, 0xA]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080AB826
-_080AB848:
- ldrh r3, [r4, 0x12]
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- bgt _080AB87E
- ldr r5, _080AB8A0 @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080AB8A4 @ =0x0000ffff
-_080AB85C:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- ble _080AB85C
-_080AB87E:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AB8A8
- lsls r0, r3, 16
- asrs r0, 15
- mov r3, r12
- adds r2, r0, r3
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xA]
- strh r1, [r0]
- ldrh r0, [r4, 0xA]
- b _080AB8BE
- .align 2, 0
-_080AB8A0: .4byte gUnknown_2038700
-_080AB8A4: .4byte 0x0000ffff
-_080AB8A8:
- lsls r0, r3, 16
- asrs r0, 15
- mov r1, r12
- adds r2, r0, r1
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xC]
- strh r1, [r0]
- ldrh r0, [r4, 0xC]
-_080AB8BE:
- strh r0, [r2]
- ldr r0, _080AB8E8 @ =0x04000052
- str r0, [sp]
- ldr r0, _080AB8EC @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080ABA66
- .align 2, 0
-_080AB8E8: .4byte 0x04000052
-_080AB8EC: .4byte 0xa2600001
-_080AB8F0:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080AB908
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _080AB91C
- strh r1, [r4, 0x10]
- b _080AB916
-_080AB908:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080AB91C
-_080AB916:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080AB91C:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080AB950
- ldr r6, _080AB9B4 @ =gUnknown_2038700
- ldr r5, _080AB9B8 @ =gUnknown_2039600
-_080AB92A:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080AB92A
-_080AB950:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080AB984
- ldr r6, _080AB9B4 @ =gUnknown_2038700
- ldr r5, _080AB9B8 @ =gUnknown_2039600
-_080AB962:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080AB962
-_080AB984:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080ABA66
- ldr r6, _080AB9B4 @ =gUnknown_2038700
- ldr r5, _080AB9B8 @ =gUnknown_2039600
-_080AB992:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080AB992
- b _080ABA66
- .align 2, 0
-_080AB9B4: .4byte gUnknown_2038700
-_080AB9B8: .4byte gUnknown_2039600
-_080AB9BC:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080AB9F0
- ldr r6, _080ABA70 @ =gUnknown_2038700
- ldr r5, _080ABA74 @ =gUnknown_2039600
-_080AB9CA:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080AB9CA
-_080AB9F0:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080ABA24
- ldr r6, _080ABA70 @ =gUnknown_2038700
- ldr r5, _080ABA74 @ =gUnknown_2039600
-_080ABA02:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080ABA02
-_080ABA24:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080ABA50
- ldr r6, _080ABA70 @ =gUnknown_2038700
- ldr r5, _080ABA74 @ =gUnknown_2039600
-_080ABA32:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080ABA32
-_080ABA50:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ABA66
- bl remove_some_task
- adds r0, r7, 0
- bl DestroyTask
-_080ABA66:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABA70: .4byte gUnknown_2038700
-_080ABA74: .4byte gUnknown_2039600
- thumb_func_end sub_80AB79C
-
- thumb_func_start sub_80ABA78
-sub_80ABA78: @ 80ABA78
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080ABACC @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080ABAD0 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080ABAD4 @ =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080ABABE
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080ABABE:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080ABAD8 @ =sub_80ABADC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABACC: .4byte 0x000003ff
-_080ABAD0: .4byte 0xfffffc00
-_080ABAD4: .4byte 0x000001ff
-_080ABAD8: .4byte sub_80ABADC
- thumb_func_end sub_80ABA78
-
- thumb_func_start sub_80ABADC
-sub_80ABADC: @ 80ABADC
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080ABB00
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080ABB04
-_080ABB00:
- lsls r0, r3, 16
- asrs r0, 24
-_080ABB04:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080ABB22
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080ABB22:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ABADC
-
- thumb_func_start sub_80ABB28
-sub_80ABB28: @ 80ABB28
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080ABB78 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r2, _080ABB7C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x12]
- bl sub_80ABDC8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80758E0
- ldr r0, _080ABB80 @ =sub_80ABB84
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABB78: .4byte gTasks
-_080ABB7C: .4byte gSprites
-_080ABB80: .4byte sub_80ABB84
- thumb_func_end sub_80ABB28
-
- thumb_func_start sub_80ABB84
-sub_80ABB84: @ 80ABB84
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080ABBAC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _080ABBA0
- b _080ABDBE
-_080ABBA0:
- lsls r0, 2
- ldr r1, _080ABBB0 @ =_080ABBB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ABBAC: .4byte gTasks
-_080ABBB0: .4byte _080ABBB4
- .align 2, 0
-_080ABBB4:
- .4byte _080ABBD4
- .4byte _080ABBFA
- .4byte _080ABC8C
- .4byte _080ABCC2
- .4byte _080ABCD6
- .4byte _080ABCE4
- .4byte _080ABD64
- .4byte _080ABDB0
-_080ABBD4:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_80765D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080ABBFA:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080ABC56
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ABC44
- ldr r2, _080ABC40 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
- b _080ABC56
- .align 2, 0
-_080ABC40: .4byte gSprites
-_080ABC44:
- ldr r2, _080ABC84 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080ABC88 @ =0x0000fffd
- strh r1, [r0, 0x24]
-_080ABC56:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080ABC66
- b _080ABDBE
-_080ABC66:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076440
- ldr r2, _080ABC84 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xE]
- b _080ABDA0
- .align 2, 0
-_080ABC84: .4byte gSprites
-_080ABC88: .4byte 0x0000fffd
-_080ABC8C:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080ABC9C
- b _080ABDBE
-_080ABC9C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xE0
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_80765D4
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080ABDA2
-_080ABCC2:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080ABDBE
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080ABDA2
-_080ABCD6:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80ABE4C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080ABCE4:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080ABDBE
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ABD1C
- ldr r2, _080ABD18 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x2
- b _080ABD2E
- .align 2, 0
-_080ABD18: .4byte gSprites
-_080ABD1C:
- ldr r2, _080ABD60 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
-_080ABD2E:
- strh r1, [r0, 0x26]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080ABDBE
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xE0
- bl sub_80765D4
- movs r0, 0
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080ABDA2
- .align 2, 0
-_080ABD60: .4byte gSprites
-_080ABD64:
- ldr r6, _080ABDAC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080ABDBE
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8075980
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x22]
-_080ABDA0:
- strh r5, [r4, 0x10]
-_080ABDA2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080ABDBE
- .align 2, 0
-_080ABDAC: .4byte gSprites
-_080ABDB0:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080ABDBE
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080ABDBE:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80ABB84
-
- thumb_func_start sub_80ABDC8
-sub_80ABDC8: @ 80ABDC8
- push {r4,r5,lr}
- ldr r4, _080ABDEC @ =gUnknown_2037F1A
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080ABDFC
- ldr r1, _080ABDF0 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080ABDF4 @ =gPlayerParty
- b _080ABE0C
- .align 2, 0
-_080ABDEC: .4byte gUnknown_2037F1A
-_080ABDF0: .4byte gBattlerPartyIndexes
-_080ABDF4: .4byte gPlayerParty
-_080ABDF8:
- adds r0, r2, 0
- b _080ABE3E
-_080ABDFC:
- ldr r1, _080ABE44 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080ABE48 @ =gEnemyParty
-_080ABE0C:
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- lsrs r4, 18
- movs r2, 0
-_080ABE2A:
- adds r1, r2, 0x1
- adds r0, r4, 0
- muls r0, r1
- cmp r3, r0
- blt _080ABDF8
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080ABE2A
- movs r0, 0x3
-_080ABE3E:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080ABE44: .4byte gBattlerPartyIndexes
-_080ABE48: .4byte gEnemyParty
- thumb_func_end sub_80ABDC8
-
- thumb_func_start sub_80ABE4C
-sub_80ABE4C: @ 80ABE4C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- ldr r4, _080ABF54 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0xAC
- ldrb r0, [r4]
- bl sub_807685C
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldrh r1, [r7, 0xA]
- movs r0, 0x4
- subs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bgt _080ABE9C
- movs r1, 0x1
-_080ABE9C:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r1, 16
- mov r10, r8
- mov r9, r6
- mov r1, r10
- lsls r1, 4
- str r1, [sp, 0xC]
- mov r1, r9
- lsls r1, 4
- str r1, [sp, 0x10]
- asrs r0, 16
- mov r8, r0
-_080ABEB6:
- ldr r0, _080ABF58 @ =gUnknown_83E5AE0
- mov r1, r10
- mov r2, r9
- ldr r3, [sp, 0x8]
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r6, r5, 16
- cmp r2, 0x40
- beq _080ABF1E
- ldr r1, _080ABF5C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r5, 0x32]
- mov r0, sp
- ldrh r0, [r0, 0x10]
- strh r0, [r5, 0x34]
- asrs r4, r6, 16
- adds r0, r4, 0
- movs r1, 0x40
- bl Cos
- strh r0, [r5, 0x36]
- adds r0, r4, 0
- movs r1, 0x40
- bl Sin
- strh r0, [r5, 0x38]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r5, 0x3A]
- movs r0, 0x2
- strh r0, [r5, 0x3C]
- ldrh r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ABF18
- adds r0, r5, 0
- bl sub_80ABF60
-_080ABF18:
- ldrh r0, [r7, 0xC]
- adds r0, 0x1
- strh r0, [r7, 0xC]
-_080ABF1E:
- mov r1, r8
- lsls r0, r1, 1
- asrs r1, r6, 16
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r5, r0, 16
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
- str r1, [sp, 0x4]
- asrs r0, 16
- cmp r0, 0x13
- ble _080ABEB6
- 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
-_080ABF54: .4byte gUnknown_2037F1A
-_080ABF58: .4byte gUnknown_83E5AE0
-_080ABF5C: .4byte gSprites
- thumb_func_end sub_80ABE4C
-
- thumb_func_start sub_80ABF60
-sub_80ABF60: @ 80ABF60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ABF72
- cmp r0, 0x1
- beq _080ABFA8
- b _080AC002
-_080ABF72:
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x36]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080ABFA8:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r2, r1, 20
- strh r2, [r4, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080ABFDE
- adds r1, r2, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080ABFDE
- cmp r1, 0x78
- ble _080AC002
-_080ABFDE:
- ldr r3, _080AC008 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080AC002:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC008: .4byte gTasks
- thumb_func_end sub_80ABF60
-
- thumb_func_start sub_80AC00C
-sub_80AC00C: @ 80AC00C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AC03C @ =gTasks
- adds r4, r1, r0
- bl sub_80ABDC8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldr r0, _080AC040 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AC044
- movs r0, 0x88
- strh r0, [r4, 0x10]
- movs r0, 0x28
- b _080AC04A
- .align 2, 0
-_080AC03C: .4byte gTasks
-_080AC040: .4byte gUnknown_2037F1A
-_080AC044:
- movs r0, 0x10
- strh r0, [r4, 0x10]
- movs r0, 0x50
-_080AC04A:
- strh r0, [r4, 0x14]
- movs r0, 0x62
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x31
- strh r0, [r4, 0x16]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x5
- strh r0, [r4, 0x20]
- ldr r0, _080AC06C @ =sub_80AC070
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC06C: .4byte sub_80AC070
- thumb_func_end sub_80AC00C
-
- thumb_func_start sub_80AC070
-sub_80AC070: @ 80AC070
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r7, _080AC094 @ =gTasks
- adds r4, r0, r7
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _080AC098
- cmp r2, 0x1
- beq _080AC148
- b _080AC156
- .align 2, 0
-_080AC094: .4byte gTasks
-_080AC098:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080AC0AE
- strh r2, [r4, 0xC]
- adds r0, r4, 0
- bl sub_80AC160
-_080AC0AE:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AC128
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AC128
- ldr r5, _080AC13C @ =gUnknown_2037F02
- movs r1, 0x1
- mov r8, r1
- mov r2, r8
- strh r2, [r5]
- strh r0, [r5, 0x2]
- movs r0, 0xC
- strh r0, [r5, 0x4]
- ldr r6, _080AC140 @ =sub_80B94B4
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080AC0F8
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080AC144 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080AC0F8:
- movs r0, 0x3
- strh r0, [r5]
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080AC124
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080AC144 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080AC124:
- mov r0, r8
- strh r0, [r4, 0x22]
-_080AC128:
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080AC156
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AC156
- .align 2, 0
-_080AC13C: .4byte gUnknown_2037F02
-_080AC140: .4byte sub_80B94B4
-_080AC144: .4byte gUnknown_2037EE2
-_080AC148:
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AC156
- adds r0, r1, 0
- bl DestroyAnimVisualTask
-_080AC156:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC070
-
- thumb_func_start sub_80AC160
-sub_80AC160: @ 80AC160
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080AC1EC @ =gUnknown_825E074
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x3
- asrs r0, 4
- ldrh r2, [r4, 0x14]
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080AC1F0 @ =gUnknown_83E5AE0
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080AC1BA
- ldr r3, _080AC1F4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080AC1F8 @ =sub_80AC204
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x38]
- strh r6, [r0, 0x3A]
- movs r1, 0x9
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
-_080AC1BA:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x18]
- adds r0, 0x27
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x18]
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- ldr r0, _080AC1FC @ =0x41c64e6d
- muls r0, r1
- ldr r1, _080AC200 @ =0x00003039
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r4, 0x10]
- adds r1, r0
- strh r1, [r4, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC1EC: .4byte gUnknown_825E074
-_080AC1F0: .4byte gUnknown_83E5AE0
-_080AC1F4: .4byte gSprites
-_080AC1F8: .4byte sub_80AC204
-_080AC1FC: .4byte 0x41c64e6d
-_080AC200: .4byte 0x00003039
- thumb_func_end sub_80AC160
-
- thumb_func_start sub_80AC204
-sub_80AC204: @ 80AC204
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AC29A
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080AC29A
- ldr r2, _080AC2A0 @ =gTasks
- movs r3, 0x3A
- ldrsh r1, [r5, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x1C]
- ldr r0, _080AC2A4 @ =gUnknown_83E7C38
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- cmp r0, 0x40
- beq _080AC294
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080AC2A8 @ =gSprites
- adds r0, r4
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3A]
- strh r1, [r0, 0x3A]
- movs r3, 0x30
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3C]
- strh r1, [r0, 0x3C]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080AC2AC @ =sub_80AC2B0
- str r1, [r0]
-_080AC294:
- adds r0, r5, 0
- bl DestroySprite
-_080AC29A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC2A0: .4byte gTasks
-_080AC2A4: .4byte gUnknown_83E7C38
-_080AC2A8: .4byte gSprites
-_080AC2AC: .4byte sub_80AC2B0
- thumb_func_end sub_80AC204
-
- thumb_func_start sub_80AC2B0
-sub_80AC2B0: @ 80AC2B0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AC31C
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080AC31C
- ldr r3, _080AC324 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080AC31C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC324: .4byte gTasks
- thumb_func_end sub_80AC2B0
-
- thumb_func_start sub_80AC328
-sub_80AC328: @ 80AC328
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AC3AC @ =gTasks
- adds r5, r1, r0
- ldr r4, _080AC3B0 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080AC36C
- movs r1, 0x1
-_080AC36C:
- strh r1, [r5, 0x16]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080AC380
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x16]
-_080AC380:
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r0, 3
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0x12]
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- lsls r1, 3
- ldrh r0, [r5, 0x10]
- subs r0, r1
- strh r0, [r5, 0x14]
- ldr r0, _080AC3B4 @ =0x0000ffe0
- strh r0, [r5, 0x1A]
- strh r6, [r5, 0xA]
- strh r6, [r5, 0x8]
- ldr r0, _080AC3B8 @ =sub_80AC3BC
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC3AC: .4byte gTasks
-_080AC3B0: .4byte gUnknown_2037F1A
-_080AC3B4: .4byte 0x0000ffe0
-_080AC3B8: .4byte sub_80AC3BC
- thumb_func_end sub_80AC328
-
- thumb_func_start sub_80AC3BC
-sub_80AC3BC: @ 80AC3BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080AC3E0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080AC3D6
- b _080AC4F6
-_080AC3D6:
- lsls r0, 2
- ldr r1, _080AC3E4 @ =_080AC3E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AC3E0: .4byte gTasks
-_080AC3E4: .4byte _080AC3E8
- .align 2, 0
-_080AC3E8:
- .4byte _080AC404
- .4byte _080AC414
- .4byte _080AC42E
- .4byte _080AC470
- .4byte _080AC492
- .4byte _080AC4C0
- .4byte _080AC4E6
-_080AC404:
- adds r0, r4, 0
- bl sub_80AC504
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AC4FC
- b _080AC4EE
-_080AC414:
- adds r0, r4, 0
- bl sub_80AC504
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080AC4FC
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080AC4EE
-_080AC42E:
- adds r0, r4, 0
- bl sub_80AC504
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- adds r1, r0
- movs r2, 0
- strh r1, [r4, 0x12]
- adds r1, 0x10
- lsls r1, 16
- movs r0, 0x88
- lsls r0, 17
- cmp r1, r0
- bls _080AC4FC
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080AC46C
- movs r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x6
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- b _080AC4FC
-_080AC46C:
- strh r2, [r4, 0xA]
- b _080AC4EE
-_080AC470:
- adds r0, r4, 0
- bl sub_80AC504
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080AC4FC
- b _080AC4EE
-_080AC492:
- adds r0, r4, 0
- bl sub_80AC504
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x12]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bls _080AC4FC
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080AC4EE
-_080AC4C0:
- adds r0, r4, 0
- bl sub_80AC504
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080AC4FC
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080AC4FC
-_080AC4E6:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AC4FC
-_080AC4EE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AC4FC
-_080AC4F6:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080AC4FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC3BC
-
- thumb_func_start sub_80AC504
-sub_80AC504: @ 80AC504
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AC55E
- movs r0, 0
- strh r0, [r6, 0xC]
- ldr r0, _080AC564 @ =gUnknown_83E5AE0
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- movs r3, 0x10
- ldrsh r2, [r6, r3]
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080AC55E
- ldr r5, _080AC568 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldrh r1, [r6, 0x12]
- strh r1, [r0, 0x32]
- ldrh r1, [r6, 0x14]
- strh r1, [r0, 0x36]
- ldrh r1, [r6, 0x1A]
- strh r1, [r0, 0x38]
- bl sub_8075068
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080AC56C @ =sub_80AC570
- str r0, [r4]
- ldrh r0, [r6, 0x18]
- adds r0, 0x1
- strh r0, [r6, 0x18]
-_080AC55E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC564: .4byte gUnknown_83E5AE0
-_080AC568: .4byte gSprites
-_080AC56C: .4byte sub_80AC570
- thumb_func_end sub_80AC504
-
- thumb_func_start sub_80AC570
-sub_80AC570: @ 80AC570
- push {r4-r6,lr}
- adds r6, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080AC5CA
- ldrh r0, [r6, 0x24]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrh r0, [r6, 0x26]
- ldrh r1, [r6, 0x22]
- adds r0, r1
- strh r0, [r6, 0x22]
- movs r0, 0x6
- strh r0, [r6, 0x2E]
- bl Random
- movs r4, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldr r5, _080AC5D0 @ =0x0000fff0
- adds r1, r5
- ldrh r0, [r6, 0x20]
- adds r1, r0
- strh r1, [r6, 0x32]
- bl Random
- ands r4, r0
- adds r4, r5
- ldrh r1, [r6, 0x22]
- adds r4, r1
- strh r4, [r6, 0x36]
- bl Random
- movs r1, 0x7
- ands r1, r0
- mvns r1, r1
- strh r1, [r6, 0x38]
- adds r0, r6, 0
- bl sub_8075068
- ldr r0, _080AC5D4 @ =sub_80AC5D8
- str r0, [r6, 0x1C]
-_080AC5CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC5D0: .4byte 0x0000fff0
-_080AC5D4: .4byte sub_80AC5D8
- thumb_func_end sub_80AC570
-
- thumb_func_start sub_80AC5D8
-sub_80AC5D8: @ 80AC5D8
- push {r4-r6,lr}
- adds r5, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080AC614
- movs r4, 0
- ldr r6, _080AC61C @ =gTasks
-_080AC5EA:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r6
- ldr r1, [r2]
- ldr r0, _080AC620 @ =sub_80AC3BC
- cmp r1, r0
- bne _080AC60A
- movs r0, 0x1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0x18]
- subs r0, 0x1
- strh r0, [r2, 0x18]
- adds r0, r5, 0
- bl DestroySprite
-_080AC60A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080AC5EA
-_080AC614:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC61C: .4byte gTasks
-_080AC620: .4byte sub_80AC3BC
- thumb_func_end sub_80AC5D8
-
- thumb_func_start sub_80AC624
-sub_80AC624: @ 80AC624
- ldr r2, _080AC644 @ =gUnknown_2037F02
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0x30]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x34]
- ldr r1, _080AC648 @ =sub_80AC64C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080AC644: .4byte gUnknown_2037F02
-_080AC648: .4byte sub_80AC64C
- thumb_func_end sub_80AC624
-
- thumb_func_start sub_80AC64C
-sub_80AC64C: @ 80AC64C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080AC690
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AC690:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC64C
-
- thumb_func_start sub_80AC698
-sub_80AC698: @ 80AC698
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080AC6D0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080AC6D0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC698
-
- thumb_func_start sub_80AC6D8
-sub_80AC6D8: @ 80AC6D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080AC714 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r1, _080AC718 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080AC71C @ =sub_80AC720
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC714: .4byte gUnknown_2037F1B
-_080AC718: .4byte gUnknown_2037F02
-_080AC71C: .4byte sub_80AC720
- thumb_func_end sub_80AC6D8
-
- thumb_func_start sub_80AC720
-sub_80AC720: @ 80AC720
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- subs r6, r1, r0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- subs r5, r1, r0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r6
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r5
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080AC778
- movs r0, 0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80AC798
-_080AC778:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080AC78A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AC78A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC720
-
- thumb_func_start sub_80AC798
-sub_80AC798: @ 80AC798
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r1, 0
- adds r5, r2, 0
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- lsls r1, 15
- lsrs r1, 16
- str r1, [sp]
- ldrh r1, [r0, 0x24]
- ldrh r3, [r0, 0x20]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, r5, r0
- subs r0, 0x5
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl Random
- negs r4, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0
- subs r4, 0x5
- lsls r4, 16
- lsrs r7, r4, 16
- movs r6, 0
- mov r0, r8
- lsls r0, 16
- mov r8, r0
- mov r1, r10
- lsls r1, 16
- str r1, [sp, 0xC]
- ldr r2, [sp]
- lsls r2, 16
- str r2, [sp, 0x10]
- asrs r1, 16
- lsls r0, r7, 16
- asrs r5, r0, 16
- str r0, [sp, 0x14]
- negs r3, r5
- str r3, [sp, 0x4]
- asrs r0, r2, 16
- adds r1, r0
- lsls r1, 16
- mov r10, r1
-_080AC826:
- ldr r0, _080AC868 @ =gUnknown_83E5B88
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080AC86C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080AC870 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- bge _080AC874
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r4, 0x32]
- b _080AC876
- .align 2, 0
-_080AC868: .4byte gUnknown_83E5B88
-_080AC86C: .4byte gSprites
-_080AC870: .4byte gUnknown_2037F1A
-_080AC874:
- strh r7, [r4, 0x32]
-_080AC876:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080AC826
- movs r6, 0
- ldr r3, [sp, 0xC]
- asrs r1, r3, 16
- ldr r0, [sp, 0x14]
- asrs r5, r0, 16
- negs r2, r5
- str r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- asrs r0, r3, 16
- subs r1, r0
- lsls r1, 16
- mov r10, r1
-_080AC89C:
- ldr r0, _080AC8E0 @ =gUnknown_83E5B88
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080AC8E4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080AC8E8 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- ble _080AC8EC
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- b _080AC8EE
- .align 2, 0
-_080AC8E0: .4byte gUnknown_83E5B88
-_080AC8E4: .4byte gSprites
-_080AC8E8: .4byte gUnknown_2037F1A
-_080AC8EC:
- strh r7, [r4, 0x32]
-_080AC8EE:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080AC89C
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC798
-
- thumb_func_start sub_80AC90C
-sub_80AC90C: @ 80AC90C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AC940 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080AC944 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080AC948 @ =sub_8074AE0
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC940: .4byte gUnknown_2037F02
-_080AC944: .4byte DestroyAnimSprite
-_080AC948: .4byte sub_8074AE0
- thumb_func_end sub_80AC90C
-
- thumb_func_start sub_80AC94C
-sub_80AC94C: @ 80AC94C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080AC984 @ =gUnknown_2037F02
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_8074FF8
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080AC988 @ =sub_8074D00
- str r0, [r4, 0x1C]
- ldr r1, _080AC98C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC984: .4byte gUnknown_2037F02
-_080AC988: .4byte sub_8074D00
-_080AC98C: .4byte DestroyAnimSprite
- thumb_func_end sub_80AC94C
-
- thumb_func_start sub_80AC990
-sub_80AC990: @ 80AC990
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080AC9C4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AC9CC
- ldr r2, _080AC9C8 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080AC9E2
- .align 2, 0
-_080AC9C4: .4byte gUnknown_2037F1A
-_080AC9C8: .4byte gUnknown_2037F02
-_080AC9CC:
- ldr r1, _080AC9F8 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
-_080AC9E2:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080AC9FC @ =sub_80ACA6C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC9F8: .4byte gUnknown_2037F02
-_080AC9FC: .4byte sub_80ACA6C
- thumb_func_end sub_80AC990
-
- thumb_func_start sub_80ACA00
-sub_80ACA00: @ 80ACA00
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080ACA2C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ACA34
- ldr r2, _080ACA30 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080ACA4C
- .align 2, 0
-_080ACA2C: .4byte gUnknown_2037F1A
-_080ACA30: .4byte gUnknown_2037F02
-_080ACA34:
- ldr r1, _080ACA64 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
-_080ACA4C:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080ACA68 @ =sub_80ACA6C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACA64: .4byte gUnknown_2037F02
-_080ACA68: .4byte sub_80ACA6C
- thumb_func_end sub_80ACA00
-
- thumb_func_start sub_80ACA6C
-sub_80ACA6C: @ 80ACA6C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _080ACA92
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
-_080ACA92:
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _080ACAA4
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080ACAA4:
- pop {r0}
- bx r0
- thumb_func_end sub_80ACA6C
-
- thumb_func_start sub_80ACAA8
-sub_80ACAA8: @ 80ACAA8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080ACACC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ACAD4
- ldr r0, _080ACAD0 @ =gUnknown_2037F02
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080ACAE6
- .align 2, 0
-_080ACACC: .4byte gUnknown_2037F1A
-_080ACAD0: .4byte gUnknown_2037F02
-_080ACAD4:
- ldr r0, _080ACB14 @ =gUnknown_2037F02
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- adds r2, r4, 0
- adds r2, 0x43
- movs r1, 0x8
- strb r1, [r2]
-_080ACAE6:
- adds r2, r0, 0
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r2, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r2, 0xC]
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- ldr r0, _080ACB18 @ =sub_80ACB1C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACB14: .4byte gUnknown_2037F02
-_080ACB18: .4byte sub_80ACB1C
- thumb_func_end sub_80ACAA8
-
- thumb_func_start sub_80ACB1C
-sub_80ACB1C: @ 80ACB1C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ACBA4
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- ldr r0, _080ACB88 @ =0x00002710
- cmp r1, r0
- ble _080ACB3A
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
-_080ACB3A:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080ACB90
- ldr r2, _080ACB8C @ =0xffffff00
- b _080ACB98
- .align 2, 0
-_080ACB88: .4byte 0x00002710
-_080ACB8C: .4byte 0xffffff00
-_080ACB90:
- cmp r0, 0
- bge _080ACB9C
- movs r2, 0x80
- lsls r2, 1
-_080ACB98:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080ACB9C:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080ACBAA
-_080ACBA4:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080ACBAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACB1C
-
- thumb_func_start sub_80ACBB0
-sub_80ACBB0: @ 80ACBB0
- push {lr}
- movs r1, 0
- strh r1, [r0, 0x20]
- strh r1, [r0, 0x22]
- movs r1, 0x3C
- strh r1, [r0, 0x2E]
- movs r1, 0x8C
- strh r1, [r0, 0x32]
- movs r1, 0x50
- strh r1, [r0, 0x36]
- ldr r1, _080ACBD4 @ =sub_8075590
- str r1, [r0, 0x1C]
- ldr r1, _080ACBD8 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080ACBD4: .4byte sub_8075590
-_080ACBD8: .4byte DestroyAnimSprite
- thumb_func_end sub_80ACBB0
-
- thumb_func_start sub_80ACBDC
-sub_80ACBDC: @ 80ACBDC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080ACC34 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080ACC38 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080ACC22
- movs r0, 0x2
- bl GetBattlerAtPosition
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _080ACC1A
- movs r0, 0x3
- bl GetBattlerAtPosition
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080ACC22
-_080ACC1A:
- ldr r1, _080ACC3C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080ACC22:
- ldr r1, _080ACC40 @ =sub_8075F0C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACC34: .4byte gUnknown_2037F1A
-_080ACC38: .4byte gUnknown_2037F1B
-_080ACC3C: .4byte gUnknown_2037F02
-_080ACC40: .4byte sub_8075F0C
- thumb_func_end sub_80ACBDC
-
- thumb_func_start sub_80ACC44
-sub_80ACC44: @ 80ACC44
- ldr r2, _080ACC58 @ =gUnknown_2037F02
- ldrh r1, [r2]
- negs r1, r1
- strh r1, [r2]
- ldrh r1, [r2, 0x4]
- negs r1, r1
- strh r1, [r2, 0x4]
- ldr r1, _080ACC5C @ =sub_8075F0C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080ACC58: .4byte gUnknown_2037F02
-_080ACC5C: .4byte sub_8075F0C
- thumb_func_end sub_80ACC44
-
- thumb_func_start sub_80ACC60
-sub_80ACC60: @ 80ACC60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080ACC80 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x2E]
- ldr r0, _080ACC84 @ =sub_80ACC88
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACC80: .4byte gUnknown_2037F02
-_080ACC84: .4byte sub_80ACC88
- thumb_func_end sub_80ACC60
-
- thumb_func_start sub_80ACC88
-sub_80ACC88: @ 80ACC88
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80ACD7C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x12
- bne _080ACCD2
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080ACCD8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080ACCDC @ =sub_80ACCE0
- str r0, [r5, 0x1C]
-_080ACCD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACCD8: .4byte gUnknown_2037F1B
-_080ACCDC: .4byte sub_80ACCE0
- thumb_func_end sub_80ACC88
-
- thumb_func_start sub_80ACCE0
-sub_80ACCE0: @ 80ACCE0
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080ACD28
- movs r4, 0
- strh r4, [r6, 0x2E]
- ldr r5, _080ACD20 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r4, [r6, 0x26]
- strh r4, [r6, 0x24]
- ldr r1, _080ACD24 @ =sub_80ACD58
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- b _080ACD52
- .align 2, 0
-_080ACD20: .4byte gUnknown_2037F1B
-_080ACD24: .4byte sub_80ACD58
-_080ACD28:
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Sin
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Cos
- ldrh r1, [r6, 0x26]
- adds r0, r1
- strh r0, [r6, 0x26]
- ldrh r0, [r6, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3C]
-_080ACD52:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACCE0
-
- thumb_func_start sub_80ACD58
-sub_80ACD58: @ 80ACD58
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80ACD7C
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080ACD74
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080ACD74:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACD58
-
- thumb_func_start sub_80ACD7C
-sub_80ACD7C: @ 80ACD7C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACD7C
-
- thumb_func_start sub_80ACDA8
-sub_80ACDA8: @ 80ACDA8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080ACDDC @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080ACDE0 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080ACDE4 @ =sub_8074CD0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACDDC: .4byte gUnknown_2037F02
-_080ACDE0: .4byte DestroyAnimSprite
-_080ACDE4: .4byte sub_8074CD0
- thumb_func_end sub_80ACDA8
-
- thumb_func_start sub_80ACDE8
-sub_80ACDE8: @ 80ACDE8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080ACE1C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080ACE20 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080ACE24 @ =sub_80ACE28
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACE1C: .4byte gUnknown_2037F02
-_080ACE20: .4byte sub_8074C44
-_080ACE24: .4byte sub_80ACE28
- thumb_func_end sub_80ACDE8
-
- thumb_func_start sub_80ACE28
-sub_80ACE28: @ 80ACE28
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldrh r1, [r0, 0x30]
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- ldr r1, _080ACE4C @ =sub_80ACE50
- str r1, [r0, 0x1C]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080ACE4C: .4byte sub_80ACE50
- thumb_func_end sub_80ACE28
-
- thumb_func_start sub_80ACE50
-sub_80ACE50: @ 80ACE50
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0xD0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080ACE9C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080ACE9C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACE50
-
- thumb_func_start sub_80ACEA4
-sub_80ACEA4: @ 80ACEA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080ACF04 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldr r2, _080ACF08 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x10]
- ldr r0, _080ACF0C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80758E0
- ldr r0, _080ACF10 @ =sub_80ACF14
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACF04: .4byte gTasks
-_080ACF08: .4byte gSprites
-_080ACF0C: .4byte gUnknown_2037F1A
-_080ACF10: .4byte sub_80ACF14
- thumb_func_end sub_80ACEA4
-
- thumb_func_start sub_80ACF14
-sub_80ACF14: @ 80ACF14
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080ACF3C @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080ACF30
- b _080AD1EE
-_080ACF30:
- lsls r0, 2
- ldr r1, _080ACF40 @ =_080ACF44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ACF3C: .4byte gTasks
-_080ACF40: .4byte _080ACF44
- .align 2, 0
-_080ACF44:
- .4byte _080ACF60
- .4byte _080ACF86
- .4byte _080AD038
- .4byte _080AD098
- .4byte _080AD0B6
- .4byte _080AD18C
- .4byte _080AD1E0
-_080ACF60:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_80765D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080ACF86:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080ACFCE
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ACFBC
- ldr r2, _080ACFB8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- b _080ACFCC
- .align 2, 0
-_080ACFB8: .4byte gSprites
-_080ACFBC:
- ldr r2, _080AD030 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080AD034 @ =0x0000fffd
-_080ACFCC:
- strh r1, [r0, 0x24]
-_080ACFCE:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ACFFC
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080ACFFC
- movs r0, 0
- strh r0, [r4, 0xE]
- ldr r2, _080AD030 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
-_080ACFFC:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080AD00C
- b _080AD1EE
-_080AD00C:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076440
- ldr r2, _080AD030 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- b _080AD1D4
- .align 2, 0
-_080AD030: .4byte gSprites
-_080AD034: .4byte 0x0000fffd
-_080AD038:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080AD048
- b _080AD1EE
-_080AD048:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AD072
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xF0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_80765D4
- b _080AD092
-_080AD072:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xC0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_80765D4
-_080AD092:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080AD1D4
-_080AD098:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- cmp r0, 0
- beq _080AD0A6
- b _080AD1EE
-_080AD0A6:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_80AD1F8
- b _080AD1D4
-_080AD0B6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AD104
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD0F0
- ldr r2, _080AD0EC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- b _080AD102
- .align 2, 0
-_080AD0EC: .4byte gSprites
-_080AD0F0:
- ldr r2, _080AD13C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
-_080AD102:
- strh r1, [r0, 0x26]
-_080AD104:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _080AD1EE
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AD140
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xF0
- bl sub_80765D4
- b _080AD15E
- .align 2, 0
-_080AD13C: .4byte gSprites
-_080AD140:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xC0
- bl sub_80765D4
-_080AD15E:
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD17C
- ldr r2, _080AD188 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
-_080AD17C:
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- b _080AD1D4
- .align 2, 0
-_080AD188: .4byte gSprites
-_080AD18C:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AD1A8
- ldr r2, _080AD1DC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_080AD1A8:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080AD1EE
- ldr r2, _080AD1DC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x22]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8075980
- strh r5, [r4, 0xC]
-_080AD1D4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AD1EE
- .align 2, 0
-_080AD1DC: .4byte gSprites
-_080AD1E0:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AD1EE
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080AD1EE:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACF14
-
- thumb_func_start sub_80AD1F8
-sub_80AD1F8: @ 80AD1F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- adds r0, r4, 0
- bl sub_80AD374
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r1, _080AD248 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x20]
- ldr r0, _080AD24C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AD250
- adds r0, r4, 0
- subs r0, 0xC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- b _080AD25A
- .align 2, 0
-_080AD248: .4byte gSprites
-_080AD24C: .4byte gUnknown_2037F1A
-_080AD250:
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xFF
-_080AD25A:
- movs r6, 0
- movs r5, 0
- lsls r4, 16
- str r4, [sp, 0x8]
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x4]
- ldr r2, _080AD314 @ =gUnknown_83E5E44
- mov r9, r2
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r3, r8
- lsls r3, 1
- mov r10, r3
-_080AD278:
- ldr r0, _080AD318 @ =gUnknown_83E5E2C
- ldr r2, [sp, 0x8]
- asrs r1, r2, 16
- ldr r3, [sp, 0x4]
- asrs r2, r3, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080AD2FA
- ldr r1, _080AD31C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- lsls r0, r5, 2
- adds r0, 0x40
- adds r1, r0
- ldr r3, _080AD320 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r3, _080AD324 @ =0xfffffc00
- adds r0, r3, 0
- ands r2, r0
- orrs r2, r1
- strh r2, [r4, 0x4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080AD2C2
- movs r5, 0
-_080AD2C2:
- lsls r2, r6, 2
- mov r1, r9
- adds r0, r2, r1
- ldrh r0, [r0]
- ldr r3, [sp]
- adds r1, r0, 0
- muls r1, r3
- lsls r1, 16
- asrs r1, 16
- ldr r0, _080AD328 @ =gUnknown_83E5E46
- adds r2, r0
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r0, r4, 0
- bl sub_80AD3C8
- strh r7, [r4, 0x3A]
- mov r0, r8
- strh r0, [r4, 0x3C]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- add r0, r10
- ldr r1, _080AD32C @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
-_080AD2FA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x6
- bls _080AD278
- 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
-_080AD314: .4byte gUnknown_83E5E44
-_080AD318: .4byte gUnknown_83E5E2C
-_080AD31C: .4byte gSprites
-_080AD320: .4byte 0x000003ff
-_080AD324: .4byte 0xfffffc00
-_080AD328: .4byte gUnknown_83E5E46
-_080AD32C: .4byte gTasks+0x8
- thumb_func_end sub_80AD1F8
-
- thumb_func_start sub_80AD330
-sub_80AD330: @ 80AD330
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80AD3E4
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080AD36A
- ldr r3, _080AD370 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080AD36A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD370: .4byte gTasks
- thumb_func_end sub_80AD330
-
- thumb_func_start sub_80AD374
-sub_80AD374: @ 80AD374
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AD3AC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x26]
- ldrh r0, [r1, 0x22]
- adds r2, r0
- adds r1, 0x29
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080AD3B0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AD3B4
- lsls r0, r4, 16
- movs r1, 0x94
- lsls r1, 15
- b _080AD3BA
- .align 2, 0
-_080AD3AC: .4byte gSprites
-_080AD3B0: .4byte gUnknown_2037F1A
-_080AD3B4:
- lsls r0, r4, 16
- movs r1, 0xB0
- lsls r1, 14
-_080AD3BA:
- adds r0, r1
- lsrs r4, r0, 16
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80AD374
-
- thumb_func_start sub_80AD3C8
-sub_80AD3C8: @ 80AD3C8
- movs r3, 0
- strh r3, [r0, 0x2E]
- strh r3, [r0, 0x30]
- ldrh r3, [r0, 0x20]
- lsls r3, 3
- strh r3, [r0, 0x32]
- ldrh r3, [r0, 0x22]
- lsls r3, 3
- strh r3, [r0, 0x34]
- lsls r1, 3
- strh r1, [r0, 0x36]
- lsls r2, 3
- strh r2, [r0, 0x38]
- bx lr
- thumb_func_end sub_80AD3C8
-
- thumb_func_start sub_80AD3E4
-sub_80AD3E4: @ 80AD3E4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080AD40E
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r3, [r2, 0x34]
- adds r0, r3
- strh r0, [r2, 0x34]
-_080AD40E:
- ldrh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r1, 16
- asrs r3, r1, 19
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080AD444
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080AD444
- cmp r1, 0x78
- ble _080AD450
-_080AD444:
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080AD450:
- pop {r0}
- bx r0
- thumb_func_end sub_80AD3E4
-
- thumb_func_start sub_80AD454
-sub_80AD454: @ 80AD454
- push {r4,r5,lr}
- ldr r3, _080AD498 @ =gUnknown_2037F02
- ldrh r1, [r3]
- movs r2, 0
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x32]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0x3A]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0x3C]
- ldrh r4, [r0, 0x4]
- lsls r2, r4, 22
- lsrs r2, 22
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r1, 4
- adds r2, r1
- ldr r3, _080AD49C @ =0x000003ff
- adds r1, r3, 0
- ands r2, r1
- ldr r1, _080AD4A0 @ =0xfffffc00
- ands r1, r4
- orrs r1, r2
- strh r1, [r0, 0x4]
- ldr r1, _080AD4A4 @ =sub_80AD4A8
- str r1, [r0, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD498: .4byte gUnknown_2037F02
-_080AD49C: .4byte 0x000003ff
-_080AD4A0: .4byte 0xfffffc00
-_080AD4A4: .4byte sub_80AD4A8
- thumb_func_end sub_80AD454
-
- thumb_func_start sub_80AD4A8
-sub_80AD4A8: @ 80AD4A8
- push {r4,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080AD4DA
- cmp r0, 0x1
- bgt _080AD4BE
- cmp r0, 0
- beq _080AD4C4
- b _080AD538
-_080AD4BE:
- cmp r0, 0x2
- beq _080AD4F8
- b _080AD538
-_080AD4C4:
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080AD4D4
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
- b _080AD538
-_080AD4D4:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_080AD4DA:
- ldrh r0, [r2, 0x22]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r2, 0x3C]
- movs r4, 0x3C
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _080AD538
- strh r3, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _080AD538
-_080AD4F8:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AD524
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD520
- ldr r0, _080AD51C @ =0x0000fffd
- b _080AD522
- .align 2, 0
-_080AD51C: .4byte 0x0000fffd
-_080AD520:
- movs r0, 0x3
-_080AD522:
- strh r0, [r2, 0x26]
-_080AD524:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080AD538
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AD538:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD4A8
-
- thumb_func_start sub_80AD540
-sub_80AD540: @ 80AD540
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080AD5B4
- cmp r0, 0x1
- bgt _080AD556
- cmp r0, 0
- beq _080AD55C
- b _080AD682
-_080AD556:
- cmp r0, 0x2
- beq _080AD612
- b _080AD682
-_080AD55C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075160
- ldr r4, _080AD584 @ =gUnknown_2037F02
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3C]
- ldr r0, _080AD588 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AD58C
- movs r0, 0x4
- b _080AD58E
- .align 2, 0
-_080AD584: .4byte gUnknown_2037F02
-_080AD588: .4byte gUnknown_2037F1A
-_080AD58C:
- ldr r0, _080AD5AC @ =0x0000fffc
-_080AD58E:
- strh r0, [r5, 0x36]
- ldr r0, _080AD5B0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080AD60A
- .align 2, 0
-_080AD5AC: .4byte 0x0000fffc
-_080AD5B0: .4byte gUnknown_2037F1B
-_080AD5B4:
- ldrh r0, [r5, 0x30]
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldr r0, _080AD5D4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AD5D8
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _080AD5DE
- .align 2, 0
-_080AD5D4: .4byte gUnknown_2037F1A
-_080AD5D8:
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
-_080AD5DE:
- strh r0, [r5, 0x26]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080AD682
- movs r0, 0
- strh r0, [r5, 0x34]
-_080AD60A:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080AD682
-_080AD612:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- adds r2, r0, 0
- movs r3, 0
- strh r2, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080AD682
- ldrh r0, [r5, 0x20]
- adds r1, r2, r0
- strh r1, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r3, [r5, 0x26]
- strh r3, [r5, 0x24]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080AD688 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8075678
- ldr r0, _080AD68C @ =sub_80AD690
- str r0, [r5, 0x1C]
-_080AD682:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD688: .4byte gUnknown_2037F1B
-_080AD68C: .4byte sub_80AD690
- thumb_func_end sub_80AD540
-
- thumb_func_start sub_80AD690
-sub_80AD690: @ 80AD690
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080AD6E8
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080AD6C6
- cmp r2, 0xC4
- ble _080AD6EE
-_080AD6C6:
- lsls r0, 16
- cmp r0, 0
- ble _080AD6EE
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AD6EE
- ldr r0, _080AD6E4 @ =gUnknown_2037F24
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x89
- bl PlaySE12WithPanning
- b _080AD6EE
- .align 2, 0
-_080AD6E4: .4byte gUnknown_2037F24
-_080AD6E8:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AD6EE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD690
-
- thumb_func_start sub_80AD6F4
-sub_80AD6F4: @ 80AD6F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AD70C
- ldr r0, _080AD778 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_080AD70C:
- movs r0, 0xC0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0xA0
- strh r0, [r4, 0x36]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x36]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AD7A8
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080AD780
- ldr r0, _080AD77C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080AD7C4
- .align 2, 0
-_080AD778: .4byte gUnknown_2037F02
-_080AD77C: .4byte gUnknown_2037F1B
-_080AD780:
- ldr r0, _080AD7A4 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080AD7C4
- .align 2, 0
-_080AD7A4: .4byte gUnknown_2037F1B
-_080AD7A8:
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080AD7BC
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _080AD7C2
-_080AD7BC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_080AD7C2:
- strb r0, [r1]
-_080AD7C4:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080AD7EC
- 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]
-_080AD7EC:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x1E
- bne _080AD7FA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AD7FA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD6F4
-
- thumb_func_start sub_80AD800
-sub_80AD800: @ 80AD800
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AD860 @ =gTasks
- adds r4, r1, r0
- ldr r0, _080AD864 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080AD826
- movs r1, 0x1
-_080AD826:
- strh r1, [r4, 0x20]
- ldr r0, _080AD868 @ =gUnknown_2037F1B
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r0, 0x3
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080AD86C @ =sub_80AD870
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD860: .4byte gTasks
-_080AD864: .4byte gUnknown_2037F1A
-_080AD868: .4byte gUnknown_2037F1B
-_080AD86C: .4byte sub_80AD870
- thumb_func_end sub_80AD800
-
- thumb_func_start sub_80AD870
-sub_80AD870: @ 80AD870
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080AD894 @ =gTasks
- adds r2, r0, r1
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- cmp r3, 0x1
- beq _080AD938
- cmp r3, 0x1
- bgt _080AD898
- cmp r3, 0
- beq _080AD8A6
- b _080ADA98
- .align 2, 0
-_080AD894: .4byte gTasks
-_080AD898:
- cmp r3, 0x2
- bne _080AD89E
- b _080AD9C0
-_080AD89E:
- cmp r3, 0x3
- bne _080AD8A4
- b _080ADA54
-_080AD8A4:
- b _080ADA98
-_080AD8A6:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 1
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AD8D8
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD8D4
- movs r0, 0x2
- b _080AD8D6
-_080AD8D4:
- ldr r0, _080AD930 @ =0x0000fffe
-_080AD8D6:
- strh r0, [r2, 0x1E]
-_080AD8D8:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080AD91A
- ldr r4, _080AD934 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080AD8EA:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080AD8EA
-_080AD91A:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080AD92A
- b _080ADA98
-_080AD92A:
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080ADA44
- .align 2, 0
-_080AD930: .4byte 0x0000fffe
-_080AD934: .4byte gSprites
-_080AD938:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080AD960
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ands r0, r3
- lsls r0, 16
- cmp r0, 0
- beq _080AD95C
- movs r0, 0x2
- b _080AD95E
-_080AD95C:
- ldr r0, _080AD9B8 @ =0x0000fffe
-_080AD95E:
- strh r0, [r2, 0x1E]
-_080AD960:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080AD9A2
- ldr r4, _080AD9BC @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080AD972:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080AD972
-_080AD9A2:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x60
- bne _080ADA98
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080ADA44
- .align 2, 0
-_080AD9B8: .4byte 0x0000fffe
-_080AD9BC: .4byte gSprites
-_080AD9C0:
- movs r7, 0x20
- ldrsh r1, [r2, r7]
- lsls r1, 1
- ldrh r0, [r2, 0x1C]
- subs r0, r1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AD9F4
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD9F0
- strh r3, [r2, 0x1E]
- b _080AD9F4
-_080AD9F0:
- ldr r0, _080ADA4C @ =0x0000fffe
- strh r0, [r2, 0x1E]
-_080AD9F4:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080ADA36
- ldr r4, _080ADA50 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080ADA06:
- movs r5, 0xE
- ldrsh r0, [r2, r5]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r0, [r0, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080ADA06
-_080ADA36:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080ADA98
-_080ADA44:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080ADA98
- .align 2, 0
-_080ADA4C: .4byte 0x0000fffe
-_080ADA50: .4byte gSprites
-_080ADA54:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080ADA92
- ldr r6, _080ADAA0 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
- movs r5, 0
-_080ADA68:
- movs r7, 0xE
- ldrsh r0, [r2, r7]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080ADA68
-_080ADA92:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080ADA98:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADAA0: .4byte gSprites
- thumb_func_end sub_80AD870
-
- thumb_func_start sub_80ADAA4
-sub_80ADAA4: @ 80ADAA4
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- ldr r1, _080ADAD4 @ =gUnknown_2037F02
- ldrb r2, [r1]
- ldrh r3, [r1, 0x2]
- movs r1, 0x10
- bl BlendPalette
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADAD4: .4byte gUnknown_2037F02
- thumb_func_end sub_80ADAA4
-
- thumb_func_start sub_80ADAD8
-sub_80ADAD8: @ 80ADAD8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080ADB30 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- mov r9, r1
- ldr r4, _080ADB34 @ =gUnknown_2037F02
- mov r8, r4
- cmp r0, 0
- bne _080ADB0E
- ldrh r0, [r4]
- strh r0, [r2, 0xA]
- ldrh r0, [r4, 0x2]
- strh r0, [r2, 0xC]
- ldrh r0, [r4, 0x4]
- strh r0, [r2, 0xE]
- ldrh r0, [r4, 0x6]
- strh r0, [r2, 0x10]
-_080ADB0E:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _080ADB38 @ =gUnknown_2023D44
- ldr r0, _080ADB3C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- movs r5, 0x10
- ldrsh r0, [r2, r5]
- cmp r0, 0
- bne _080ADB44
- ldr r4, _080ADB40 @ =gUnknown_83E5EFC
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- b _080ADB4A
- .align 2, 0
-_080ADB30: .4byte gTasks
-_080ADB34: .4byte gUnknown_2037F02
-_080ADB38: .4byte gUnknown_2023D44
-_080ADB3C: .4byte gUnknown_2037F1B
-_080ADB40: .4byte gUnknown_83E5EFC
-_080ADB44:
- ldr r4, _080ADB90 @ =gUnknown_83E5F0C
- movs r3, 0x8
- ldrsh r0, [r2, r3]
-_080ADB4A:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r0, r4
- ldrb r5, [r0]
- lsls r0, r7, 2
- adds r1, r0, r7
- lsls r1, 3
- add r1, r9
- movs r4, 0xE
- ldrsh r1, [r1, r4]
- mov r12, r0
- cmp r1, 0x1
- bne _080ADB98
- ldr r2, _080ADB94 @ =gSprites
- lsls r3, r6, 4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- mov r10, r0
- mov r0, r8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r5, 24
- asrs r0, 24
- muls r0, r1
- cmp r0, 0
- bge _080ADB88
- negs r0, r0
-_080ADB88:
- mov r5, r10
- strh r0, [r5, 0x26]
- b _080ADBB2
- .align 2, 0
-_080ADB90: .4byte gUnknown_83E5F0C
-_080ADB94: .4byte gSprites
-_080ADB98:
- ldr r3, _080ADBE8 @ =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- lsls r0, r5, 24
- asrs r0, 24
- mov r5, r8
- ldrh r1, [r5, 0x2]
- muls r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_080ADBB2:
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r9
- movs r4, 0x8
- ldrsh r1, [r0, r4]
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _080ADBD8
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080ADBD8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADBE8: .4byte gSprites
- thumb_func_end sub_80ADAD8
-
- thumb_func_start sub_80ADBEC
-sub_80ADBEC: @ 80ADBEC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080ADC0C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ADC14
- ldr r0, _080ADC10 @ =gUnknown_2037F02
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080ADC20
- .align 2, 0
-_080ADC0C: .4byte gUnknown_2037F1A
-_080ADC10: .4byte gUnknown_2037F02
-_080ADC14:
- ldr r1, _080ADC34 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080ADC20:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080ADC38 @ =sub_80ADC3C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADC34: .4byte gUnknown_2037F02
-_080ADC38: .4byte sub_80ADC3C
- thumb_func_end sub_80ADBEC
-
- thumb_func_start sub_80ADC3C
-sub_80ADC3C: @ 80ADC3C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080ADC52
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080ADC52:
- pop {r0}
- bx r0
- thumb_func_end sub_80ADC3C
-
- thumb_func_start sub_80ADC58
-sub_80ADC58: @ 80ADC58
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080ADC78 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ADC80
- ldr r0, _080ADC7C @ =gUnknown_2037F02
- ldrh r1, [r4, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080ADC8A
- .align 2, 0
-_080ADC78: .4byte gUnknown_2037F1A
-_080ADC7C: .4byte gUnknown_2037F02
-_080ADC80:
- ldr r0, _080ADC94 @ =gUnknown_2037F02
- ldrh r0, [r0]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080ADC8A:
- ldr r0, _080ADC98 @ =sub_80ADC9C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADC94: .4byte gUnknown_2037F02
-_080ADC98: .4byte sub_80ADC9C
- thumb_func_end sub_80ADC58
-
- thumb_func_start sub_80ADC9C
-sub_80ADC9C: @ 80ADC9C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080ADCB2
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080ADCB2:
- pop {r0}
- bx r0
- thumb_func_end sub_80ADC9C
-
- thumb_func_start sub_80ADCB8
-sub_80ADCB8: @ 80ADCB8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080ADCFC @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080ADD00 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ADD08
- ldr r2, _080ADD04 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x22]
- b _080ADD1C
- .align 2, 0
-_080ADCFC: .4byte gUnknown_2037F1B
-_080ADD00: .4byte gUnknown_2037F1A
-_080ADD04: .4byte gUnknown_2037F02
-_080ADD08:
- ldr r0, _080ADD40 @ =gUnknown_2037F02
- ldrh r1, [r0]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r2, [r5, 0x22]
- adds r1, r2
- strh r1, [r5, 0x22]
- adds r2, r0, 0
-_080ADD1C:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080ADD44 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080ADD48 @ =sub_8074A80
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADD40: .4byte gUnknown_2037F02
-_080ADD44: .4byte move_anim_8074EE0
-_080ADD48: .4byte sub_8074A80
- thumb_func_end sub_80ADCB8
-
- thumb_func_start sub_80ADD4C
-sub_80ADD4C: @ 80ADD4C
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080ADD64 @ =gUnknown_2037F02
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080ADDC4
- cmp r0, 0x1
- bgt _080ADD68
- cmp r0, 0
- beq _080ADD72
- b _080ADDC4
- .align 2, 0
-_080ADD64: .4byte gUnknown_2037F02
-_080ADD68:
- cmp r0, 0x2
- beq _080ADD7C
- cmp r0, 0x3
- beq _080ADDA0
- b _080ADDC4
-_080ADD72:
- ldr r0, _080ADD78 @ =gUnknown_2037F1A
- b _080ADDC6
- .align 2, 0
-_080ADD78: .4byte gUnknown_2037F1A
-_080ADD7C:
- ldr r4, _080ADD94 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- bne _080ADD98
- ldrb r4, [r4]
- b _080ADDC8
- .align 2, 0
-_080ADD94: .4byte gUnknown_2037F1A
-_080ADD98:
- ldrb r0, [r4]
- adds r4, r6, 0
- eors r4, r0
- b _080ADDC8
-_080ADDA0:
- ldr r0, _080ADDBC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- movs r4, 0x2
- eors r0, r4
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080ADDC4
- ldr r0, _080ADDC0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- eors r4, r0
- b _080ADDC8
- .align 2, 0
-_080ADDBC: .4byte gUnknown_2037F1A
-_080ADDC0: .4byte gUnknown_2037F1B
-_080ADDC4:
- ldr r0, _080ADDE8 @ =gUnknown_2037F1B
-_080ADDC6:
- ldrb r4, [r0]
-_080ADDC8:
- ldr r0, _080ADDEC @ =gUnknown_2037F02
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080ADDF0
- adds r0, r4, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x1
- b _080ADE02
- .align 2, 0
-_080ADDE8: .4byte gUnknown_2037F1B
-_080ADDEC: .4byte gUnknown_2037F02
-_080ADDF0:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x3
-_080ADE02:
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r7, _080ADEA0 @ =gUnknown_825E074
- ldr r6, _080ADEA4 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r1, [r6, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ADE66
- adds r0, r4, 0
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
-_080ADE66:
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- ldr r3, _080ADEA8 @ =gOamMatrices
- lsls r2, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r7
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldr r0, _080ADEAC @ =sub_80B1D3C
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADEA0: .4byte gUnknown_825E074
-_080ADEA4: .4byte gUnknown_2037F02
-_080ADEA8: .4byte gOamMatrices
-_080ADEAC: .4byte sub_80B1D3C
- thumb_func_end sub_80ADD4C
-
- thumb_func_start sub_80ADEB0
-sub_80ADEB0: @ 80ADEB0
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080ADF24 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r6, _080ADF28 @ =gUnknown_2037F1B
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x3A]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080ADF2C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080ADF30 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r1, _080ADF34 @ =sub_80ADF38
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADF24: .4byte gUnknown_2037F02
-_080ADF28: .4byte gUnknown_2037F1B
-_080ADF2C: .4byte 0x000003ff
-_080ADF30: .4byte 0xfffffc00
-_080ADF34: .4byte sub_80ADF38
- thumb_func_end sub_80ADEB0
-
- thumb_func_start sub_80ADF38
-sub_80ADF38: @ 80ADF38
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080ADFA2
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080ADFA8
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080ADFA8
-_080ADFA2:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080ADFA8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ADF38
-
- thumb_func_start sub_80ADFB0
-sub_80ADFB0: @ 80ADFB0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x38]
- subs r0, 0x1
- strh r0, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080ADFE8
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x36]
- strh r0, [r3, 0x38]
-_080ADFE8:
- ldrh r0, [r3, 0x34]
- subs r1, r0, 0x1
- strh r1, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080ADFFA
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080ADFFA:
- pop {r0}
- bx r0
- thumb_func_end sub_80ADFB0
-
- thumb_func_start sub_80AE000
-sub_80AE000: @ 80AE000
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AE01C
- ldr r0, _080AE060 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AE024
-_080AE01C:
- ldr r1, _080AE064 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080AE024:
- ldr r5, _080AE060 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080AE064 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4]
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x36]
- strh r0, [r6, 0x38]
- ldr r0, _080AE068 @ =sub_80ADFB0
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE060: .4byte gUnknown_2037F1B
-_080AE064: .4byte gUnknown_2037F02
-_080AE068: .4byte sub_80ADFB0
- thumb_func_end sub_80AE000
-
- thumb_func_start sub_80AE06C
-sub_80AE06C: @ 80AE06C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080AE088 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080AE090
- ldr r0, _080AE08C @ =gUnknown_2037F1B
- b _080AE092
- .align 2, 0
-_080AE088: .4byte gUnknown_2037F02
-_080AE08C: .4byte gUnknown_2037F1B
-_080AE090:
- ldr r0, _080AE118 @ =gUnknown_2037F1A
-_080AE092:
- ldrb r6, [r0]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AE0AA
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AE0B2
-_080AE0AA:
- ldr r1, _080AE11C @ =gUnknown_2037F02
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080AE0B2:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080AE11C @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r3, [r4]
- adds r0, r3
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldr r0, _080AE120 @ =0x00007fff
- ands r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x3C]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080AE124 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080AE128 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r1, _080AE12C @ =sub_80AE130
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE118: .4byte gUnknown_2037F1A
-_080AE11C: .4byte gUnknown_2037F02
-_080AE120: .4byte 0x00007fff
-_080AE124: .4byte 0x000003ff
-_080AE128: .4byte 0xfffffc00
-_080AE12C: .4byte sub_80AE130
- thumb_func_end sub_80AE06C
-
- thumb_func_start sub_80AE130
-sub_80AE130: @ 80AE130
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _080AE186
- 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]
-_080AE186:
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080AE198
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AE198:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AE130
-
- thumb_func_start sub_80AE1A0
-sub_80AE1A0: @ 80AE1A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075114
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080AE1DC @ =gUnknown_2037F02
- movs r5, 0x6
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r1, r0
- ldr r5, _080AE1E0 @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _080AE1E4 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _080AE1E8
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- b _080AE1F6
- .align 2, 0
-_080AE1DC: .4byte gUnknown_2037F02
-_080AE1E0: .4byte 0x000003ff
-_080AE1E4: .4byte 0xfffffc00
-_080AE1E8:
- cmp r0, 0x2
- bne _080AE1FA
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x20
-_080AE1F6:
- orrs r1, r0
- strb r1, [r4, 0x3]
-_080AE1FA:
- ldr r0, _080AE214 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080AE218 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080AE21C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE214: .4byte gUnknown_2037F02
-_080AE218: .4byte sub_8074C44
-_080AE21C: .4byte DestroyAnimSprite
- thumb_func_end sub_80AE1A0
-
- thumb_func_start sub_80AE220
-sub_80AE220: @ 80AE220
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _080AE268 @ =gUnknown_2037F1B
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- ldr r1, _080AE26C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- ldr r5, _080AE270 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _080AE274 @ =sub_80AE278
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE268: .4byte gUnknown_2037F1B
-_080AE26C: .4byte gTasks
-_080AE270: .4byte gUnknown_2037F02
-_080AE274: .4byte sub_80AE278
- thumb_func_end sub_80AE220
-
- thumb_func_start sub_80AE278
-sub_80AE278: @ 80AE278
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r5, 0
- movs r7, 0
- ldr r1, _080AE2B8 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0xC]
- str r2, [sp]
- ldrh r4, [r0, 0x8]
- ldrh r6, [r0, 0xA]
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0
- bne _080AE2BC
- movs r0, 0
- mov r8, r0
- movs r2, 0x1
- movs r1, 0x10
- mov r12, r1
- b _080AE2C6
- .align 2, 0
-_080AE2B8: .4byte gTasks
-_080AE2BC:
- movs r2, 0x10
- mov r12, r2
- movs r3, 0x8
- mov r8, r3
- movs r2, 0x4
-_080AE2C6:
- mov r0, r9
- lsls r1, r0, 2
- adds r0, r1, r0
- lsls r0, 3
- add r0, r10
- movs r3, 0x1C
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0xA
- bhi _080AE3BC
- lsls r0, 2
- ldr r1, _080AE2E4 @ =_080AE2E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AE2E4: .4byte _080AE2E8
- .align 2, 0
-_080AE2E8:
- .4byte _080AE314
- .4byte _080AE3BC
- .4byte _080AE328
- .4byte _080AE3BC
- .4byte _080AE348
- .4byte _080AE3BC
- .4byte _080AE35E
- .4byte _080AE3BC
- .4byte _080AE380
- .4byte _080AE3BC
- .4byte _080AE3B4
-_080AE314:
- ldr r0, _080AE324 @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r4, r12
- lsls r3, r4, 16
- b _080AE396
- .align 2, 0
-_080AE324: .4byte gUnknown_83E60A0
-_080AE328:
- mov r0, r12
- lsls r3, r0, 17
- mov r1, r8
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080AE344 @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080AE396
- .align 2, 0
-_080AE344: .4byte gUnknown_83E60A0
-_080AE348:
- mov r3, r12
- lsls r0, r3, 16
- asrs r0, 16
- lsls r3, r0, 1
- adds r3, r0
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _080AE38A
-_080AE35E:
- mov r0, r12
- lsls r3, r0, 18
- lsls r0, r2, 1
- adds r0, r2
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080AE37C @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080AE396
- .align 2, 0
-_080AE37C: .4byte gUnknown_83E60A0
-_080AE380:
- mov r1, r12
- lsls r0, r1, 16
- asrs r0, 16
- lsls r3, r0, 2
- adds r3, r0
-_080AE38A:
- ldr r0, _080AE3B0 @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- lsls r3, 16
-_080AE396:
- asrs r3, 16
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _080AE3BC
- .align 2, 0
-_080AE3B0: .4byte gUnknown_83E60A0
-_080AE3B4:
- mov r0, r9
- bl DestroyAnimVisualTask
- b _080AE400
-_080AE3BC:
- cmp r7, 0
- beq _080AE3F0
- ldr r4, _080AE410 @ =gSprites
- lsls r3, r5, 4
- adds r3, r5
- lsls r3, 2
- adds r0, r3, r4
- ldrh r5, [r0, 0x4]
- lsls r2, r5, 22
- lsrs r2, 22
- add r2, r8
- ldr r6, _080AE414 @ =0x000003ff
- adds r1, r6, 0
- ands r2, r1
- ldr r1, _080AE418 @ =0xfffffc00
- ands r1, r5
- orrs r1, r2
- strh r1, [r0, 0x4]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- adds r4, 0x1C
- adds r3, r4
- ldr r1, [r3]
- bl _call_via_r1
-_080AE3F0:
- ldr r0, _080AE41C @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
-_080AE400:
- 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
-_080AE410: .4byte gSprites
-_080AE414: .4byte 0x000003ff
-_080AE418: .4byte 0xfffffc00
-_080AE41C: .4byte gTasks
- thumb_func_end sub_80AE278
-
- thumb_func_start sub_80AE420
-sub_80AE420: @ 80AE420
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080AE442
- ldrb r1, [r3, 0x1]
- movs r2, 0x3F
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r2, r0
- strb r2, [r3, 0x3]
- b _080AE456
-_080AE442:
- ldrb r2, [r3, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r3, 0x3]
-_080AE456:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _080AE46A
- adds r0, r3, 0
- bl DestroySprite
-_080AE46A:
- pop {r0}
- bx r0
- thumb_func_end sub_80AE420
-
- thumb_func_start sub_80AE470
-sub_80AE470: @ 80AE470
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080AE4D8 @ =gUnknown_2037F02
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- ldr r0, _080AE4DC @ =gUnknown_83E60B8
- adds r1, 0x20
- lsls r1, 16
- asrs r1, 16
- movs r7, 0x22
- ldrsh r2, [r4, r7]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080AE4E0 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r6, r2, r3
- ldrh r5, [r6, 0x4]
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r7, _080AE4E4 @ =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080AE4E8 @ =0xfffffc00
- ands r0, r5
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080AE4EC @ =gUnknown_2037EE2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080AE4F0 @ =sub_80AE4F4
- str r0, [r2]
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE4D8: .4byte gUnknown_2037F02
-_080AE4DC: .4byte gUnknown_83E60B8
-_080AE4E0: .4byte gSprites
-_080AE4E4: .4byte 0x000003ff
-_080AE4E8: .4byte 0xfffffc00
-_080AE4EC: .4byte gUnknown_2037EE2
-_080AE4F0: .4byte sub_80AE4F4
- thumb_func_end sub_80AE470
-
- thumb_func_start sub_80AE4F4
-sub_80AE4F4: @ 80AE4F4
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080AE528
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080AE528:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080AE53C
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080AE53C:
- pop {r0}
- bx r0
- thumb_func_end sub_80AE4F4
-
- thumb_func_start sub_80AE540
-sub_80AE540: @ 80AE540
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AE560 @ =gTasks
- adds r5, r1, r0
- ldr r0, _080AE564 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AE56C
- ldr r4, _080AE568 @ =gUnknown_2037F1A
- b _080AE56E
- .align 2, 0
-_080AE560: .4byte gTasks
-_080AE564: .4byte gUnknown_2037F02
-_080AE568: .4byte gUnknown_2037F1A
-_080AE56C:
- ldr r4, _080AE5B0 @ =gUnknown_2037F1B
-_080AE56E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x26]
- ldr r2, _080AE5B4 @ =gUnknown_2037F02
- ldrh r0, [r2, 0x2]
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- strh r1, [r5, 0x18]
- strh r1, [r5, 0x1A]
- strh r1, [r5, 0x1C]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x1E]
- strh r1, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x22]
- ldr r0, _080AE5B8 @ =sub_80AE5BC
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE5B0: .4byte gUnknown_2037F1B
-_080AE5B4: .4byte gUnknown_2037F02
-_080AE5B8: .4byte sub_80AE5BC
- thumb_func_end sub_80AE540
-
- thumb_func_start sub_80AE5BC
-sub_80AE5BC: @ 80AE5BC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r2, r6, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080AE6A4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080AE6BC
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- cmp r0, r1
- ble _080AE6CA
- strh r7, [r5, 0x20]
- ldr r0, _080AE6A8 @ =gUnknown_83E6120
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- movs r3, 0x26
- ldrsh r2, [r5, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080AE6CA
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080AE6AC @ =gSprites
- adds r4, r0
- ldr r1, _080AE6B0 @ =gUnknown_83E60D0
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x20]
- adds r3, r0
- strh r3, [r4, 0x20]
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r4, 0x22]
- adds r2, r0
- strh r2, [r4, 0x22]
- movs r1, 0x18
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0x28
- subs r0, r1
- strh r0, [r4, 0x2E]
- strh r3, [r4, 0x30]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- ldrh r0, [r5, 0x26]
- strh r0, [r4, 0x36]
- strh r6, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080AE6B4 @ =sub_80AE704
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AE6B8 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- strh r0, [r5, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080AE674
- strh r7, [r5, 0x1A]
-_080AE674:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080AE696
- strh r7, [r5, 0x1C]
- ldrh r1, [r5, 0x18]
- movs r3, 0x18
- ldrsh r0, [r5, r3]
- cmp r0, 0x5
- bgt _080AE696
- adds r0, r1, 0x1
- strh r0, [r5, 0x18]
-_080AE696:
- ldrh r0, [r5, 0x16]
- adds r0, 0x1
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x14]
- subs r0, 0x1
- strh r0, [r5, 0x14]
- b _080AE6CA
- .align 2, 0
-_080AE6A4: .4byte gTasks
-_080AE6A8: .4byte gUnknown_83E6120
-_080AE6AC: .4byte gSprites
-_080AE6B0: .4byte gUnknown_83E60D0
-_080AE6B4: .4byte sub_80AE704
-_080AE6B8: .4byte sub_8074F6C
-_080AE6BC:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AE6CA
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080AE6CA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AE5BC
-
- thumb_func_start sub_80AE6D0
-sub_80AE6D0: @ 80AE6D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080AE6F8
- ldr r2, _080AE700 @ =gTasks
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x16]
- subs r1, 0x1
- strh r1, [r0, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080AE6F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE700: .4byte gTasks
- thumb_func_end sub_80AE6D0
-
- thumb_func_start sub_80AE704
-sub_80AE704: @ 80AE704
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080AE718 @ =sub_80AE6D0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE718: .4byte sub_80AE6D0
- thumb_func_end sub_80AE704
-
- thumb_func_start sub_80AE71C
-sub_80AE71C: @ 80AE71C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080AE730 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AE738
- ldr r4, _080AE734 @ =gUnknown_2037F1A
- b _080AE73A
- .align 2, 0
-_080AE730: .4byte gUnknown_2037F02
-_080AE734: .4byte gUnknown_2037F1A
-_080AE738:
- ldr r4, _080AE768 @ =gUnknown_2037F1B
-_080AE73A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080AE76C @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AE770 @ =sub_8074F50
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE768: .4byte gUnknown_2037F1B
-_080AE76C: .4byte move_anim_8074EE0
-_080AE770: .4byte sub_8074F50
- thumb_func_end sub_80AE71C
-
- thumb_func_start sub_80AE774
-sub_80AE774: @ 80AE774
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080AE788 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AE790
- ldr r4, _080AE78C @ =gUnknown_2037F1A
- b _080AE792
- .align 2, 0
-_080AE788: .4byte gUnknown_2037F02
-_080AE78C: .4byte gUnknown_2037F1A
-_080AE790:
- ldr r4, _080AE7CC @ =gUnknown_2037F1B
-_080AE792:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080AE7D0 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x24]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x26]
- ldr r1, _080AE7D4 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AE7D8 @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE7CC: .4byte gUnknown_2037F1B
-_080AE7D0: .4byte gUnknown_2037F02
-_080AE7D4: .4byte DestroyAnimSprite
-_080AE7D8: .4byte sub_8074F6C
- thumb_func_end sub_80AE774
-
- thumb_func_start sub_80AE7DC
-sub_80AE7DC: @ 80AE7DC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r4, _080AE834 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AE82A
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x3C]
-_080AE82A:
- ldr r0, _080AE838 @ =sub_80AE83C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE834: .4byte gUnknown_2037F1A
-_080AE838: .4byte sub_80AE83C
- thumb_func_end sub_80AE7DC
-
- thumb_func_start sub_80AE83C
-sub_80AE83C: @ 80AE83C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AE84E
- cmp r0, 0x1
- beq _080AE864
- b _080AE894
-_080AE84E:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080AE894
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080AE894
-_080AE864:
- ldrh r2, [r4, 0x3C]
- ldrh r1, [r4, 0x20]
- adds r0, r2, r1
- strh r0, [r4, 0x20]
- ldr r3, _080AE89C @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- adds r2, r1
- strh r2, [r0, 0x24]
- ldrh r0, [r4, 0x20]
- adds r0, 0x50
- lsls r0, 16
- movs r1, 0xC8
- lsls r1, 17
- cmp r0, r1
- bls _080AE894
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080AE894:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE89C: .4byte gSprites
- thumb_func_end sub_80AE83C
-
- thumb_func_start sub_80AE8A0
-sub_80AE8A0: @ 80AE8A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080AE8C4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080AE934
- cmp r0, 0x1
- bgt _080AE8C8
- cmp r0, 0
- beq _080AE8D4
- b _080AEA04
- .align 2, 0
-_080AE8C4: .4byte gTasks
-_080AE8C8:
- cmp r0, 0x2
- beq _080AE990
- cmp r0, 0x3
- bne _080AE8D2
- b _080AE9E4
-_080AE8D2:
- b _080AEA04
-_080AE8D4:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x26]
- ldr r4, _080AE908 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AE910
- ldr r0, _080AE90C @ =0x0000ffe0
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _080AE916
- .align 2, 0
-_080AE908: .4byte gUnknown_2037F1A
-_080AE90C: .4byte 0x0000ffe0
-_080AE910:
- movs r0, 0x20
- strh r0, [r5, 0x24]
- ldr r0, _080AE92C @ =0x0000fffe
-_080AE916:
- strh r0, [r5, 0x22]
- ldr r2, _080AE930 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r5, 0x24]
- strh r1, [r0, 0x24]
- b _080AE9D6
- .align 2, 0
-_080AE92C: .4byte 0x0000fffe
-_080AE930: .4byte gSprites
-_080AE934:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AEA04
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r4, _080AE98C @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r1, [r5, 0x24]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080AE9D6
- ldrh r2, [r5, 0x22]
- adds r2, r1, r2
- strh r2, [r5, 0x24]
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- b _080AEA04
- .align 2, 0
-_080AE98C: .4byte gSprites
-_080AE990:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AEA04
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r1, _080AE9E0 @ =gSprites
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080AEA04
-_080AE9D6:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080AEA04
- .align 2, 0
-_080AE9E0: .4byte gSprites
-_080AE9E4:
- ldr r2, _080AEA0C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080AEA04:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEA0C: .4byte gSprites
- thumb_func_end sub_80AE8A0
-
- thumb_func_start sub_80AEA10
-sub_80AEA10: @ 80AEA10
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080AEA34 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080AEA2A
- b _080AEB50
-_080AEA2A:
- cmp r0, 0x1
- bgt _080AEA38
- cmp r0, 0
- beq _080AEA40
- b _080AEB92
- .align 2, 0
-_080AEA34: .4byte gTasks
-_080AEA38:
- cmp r0, 0x2
- bne _080AEA3E
- b _080AEB84
-_080AEA3E:
- b _080AEB92
-_080AEA40:
- ldr r4, _080AEA80 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080AEA56
- movs r1, 0x1
-_080AEA56:
- movs r6, 0
- strh r1, [r5, 0xA]
- ldr r0, _080AEA84 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r3, r0, 0
- cmp r2, 0
- beq _080AEA8C
- cmp r2, 0x4
- beq _080AEAB4
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AEAEC
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0xE]
- ldr r0, _080AEA88 @ =0x0000fff0
- b _080AEAF4
- .align 2, 0
-_080AEA80: .4byte gUnknown_2037F1A
-_080AEA84: .4byte gUnknown_2037F02
-_080AEA88: .4byte 0x0000fff0
-_080AEA8C:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 7
- adds r0, 0x78
- strh r0, [r5, 0x10]
- b _080AEB2A
-_080AEAB4:
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r1, 7
- movs r0, 0x78
- subs r0, r1
- strh r0, [r5, 0xE]
- ldr r4, _080AEAE8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r1, 5
- subs r0, r1
- strh r0, [r5, 0x10]
- b _080AEB2A
- .align 2, 0
-_080AEAE8: .4byte gUnknown_2037F1B
-_080AEAEC:
- ldr r0, _080AEB10 @ =0x0000fff0
- strh r0, [r5, 0xE]
- movs r0, 0x80
- lsls r0, 1
-_080AEAF4:
- strh r0, [r5, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080AEB14
- movs r2, 0
- ldrsh r0, [r3, r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0x50
- subs r0, r1
- strh r0, [r5, 0x12]
- b _080AEB2A
- .align 2, 0
-_080AEB10: .4byte 0x0000fff0
-_080AEB14:
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x28
- strh r0, [r5, 0x12]
- ldrh r1, [r5, 0xE]
- ldrh r0, [r5, 0x10]
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
-_080AEB2A:
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bge _080AEB40
- movs r1, 0
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0x14]
- b _080AEB7C
-_080AEB40:
- ldr r0, _080AEB4C @ =0x0000ffff
- strh r0, [r5, 0xA]
- movs r0, 0x3
- strh r0, [r5, 0x14]
- b _080AEB7C
- .align 2, 0
-_080AEB4C: .4byte 0x0000ffff
-_080AEB50:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- ble _080AEB92
- movs r0, 0
- strh r0, [r5, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AEB98
- lsls r0, 24
- cmp r0, 0
- bne _080AEB7C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AEB98
- lsls r0, 24
- cmp r0, 0
- beq _080AEB92
-_080AEB7C:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080AEB92
-_080AEB84:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AEB92
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AEB92:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80AEA10
-
- thumb_func_start sub_80AEB98
-sub_80AEB98: @ 80AEB98
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080AEC24 @ =gUnknown_83E6278
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r3, 0x12
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080AEBCE
- ldr r1, _080AEC28 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x3A]
- movs r1, 0x7
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080AEBCE:
- ldrh r1, [r4, 0xA]
- ldrh r5, [r4, 0x14]
- adds r0, r1, r5
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bge _080AEBE0
- movs r0, 0x3
- strh r0, [r4, 0x14]
-_080AEBE0:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _080AEBEC
- movs r0, 0
- strh r0, [r4, 0x14]
-_080AEBEC:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- lsls r0, 4
- ldrh r5, [r4, 0xE]
- adds r2, r0, r5
- strh r2, [r4, 0xE]
- lsls r0, r1, 16
- asrs r3, r0, 16
- cmp r3, 0x1
- bne _080AEC0C
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x10
- ldrsh r1, [r4, r5]
- cmp r0, r1
- bge _080AEC20
-_080AEC0C:
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _080AEC2C
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bgt _080AEC2C
-_080AEC20:
- movs r0, 0x1
- b _080AEC2E
- .align 2, 0
-_080AEC24: .4byte gUnknown_83E6278
-_080AEC28: .4byte gSprites
-_080AEC2C:
- movs r0, 0
-_080AEC2E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80AEB98
-
- thumb_func_start sub_80AEC34
-sub_80AEC34: @ 80AEC34
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080AEC74
- ldr r3, _080AEC7C @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080AEC74:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEC7C: .4byte gTasks
- thumb_func_end sub_80AEC34
-
- thumb_func_start sub_80AEC80
-sub_80AEC80: @ 80AEC80
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080AEC92
- cmp r0, 0x1
- beq _080AECC4
- b _080AECD8
-_080AEC92:
- ldr r4, _080AECC0 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080AECD8
- .align 2, 0
-_080AECC0: .4byte gUnknown_2037F1A
-_080AECC4:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080AECD8
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080AECD8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AEC80
-
- thumb_func_start sub_80AECE0
-sub_80AECE0: @ 80AECE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080AED04 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080AECFA
- b _080AEE6C
-_080AECFA:
- lsls r0, 2
- ldr r1, _080AED08 @ =_080AED0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AED04: .4byte gTasks
-_080AED08: .4byte _080AED0C
- .align 2, 0
-_080AED0C:
- .4byte _080AED20
- .4byte _080AEDB0
- .4byte _080AEDEC
- .4byte _080AEE48
- .4byte _080AEE58
-_080AED20:
- ldr r4, _080AEDA4 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- ldr r0, _080AEDA8 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r5, r2]
- movs r2, 0x14
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x5
- bl __divsi3
- strh r0, [r5, 0x1A]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080AEDAC @ =0x0000ffff
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- subs r0, 0x4C
- bl sub_8073A44
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x20]
- movs r0, 0x3F
- bl sub_8073A44
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x22]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x24]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- b _080AEE6A
- .align 2, 0
-_080AEDA4: .4byte gUnknown_2037F1A
-_080AEDA8: .4byte gUnknown_2037F1B
-_080AEDAC: .4byte 0x0000ffff
-_080AEDB0:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _080AEDE0
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80AEE74
- lsls r0, 24
- cmp r0, 0
- beq _080AEDE0
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bne _080AEDDA
- movs r0, 0x3
- b _080AEDDE
-_080AEDDA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
-_080AEDDE:
- strh r0, [r5, 0x8]
-_080AEDE0:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080AEE6C
- b _080AEE62
-_080AEDEC:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080AEDFA
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
-_080AEDFA:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080AEE6C
- strh r3, [r5, 0xA]
- ldrh r1, [r5, 0xC]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080AEE26
- movs r0, 0x4
- strh r0, [r5, 0x16]
- movs r0, 0x44
- strh r0, [r5, 0x18]
- strh r3, [r5, 0x10]
- strh r2, [r5, 0x12]
- b _080AEE36
-_080AEE26:
- movs r0, 0x44
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080AEE44 @ =0x0000ffff
- strh r0, [r5, 0x12]
-_080AEE36:
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080AEE68
- movs r0, 0x4
- b _080AEE6A
- .align 2, 0
-_080AEE44: .4byte 0x0000ffff
-_080AEE48:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AEE6C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080AEE6C
-_080AEE58:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080AEE68
-_080AEE62:
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
- b _080AEE6C
-_080AEE68:
- movs r0, 0x1
-_080AEE6A:
- strh r0, [r5, 0x8]
-_080AEE6C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AECE0
-
- thumb_func_start sub_80AEE74
-sub_80AEE74: @ 80AEE74
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080AEF3C @ =gUnknown_83E62A8
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r3, 0x16
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080AEEE0
- ldr r1, _080AEF40 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldrh r6, [r4, 0x10]
- adds r1, r6
- ldr r6, _080AEF44 @ =0x000003ff
- adds r0, r6, 0
- ands r1, r0
- ldr r0, _080AEF48 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _080AEEC8
- movs r0, 0x7
- strh r0, [r4, 0x10]
-_080AEEC8:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- ble _080AEED4
- movs r0, 0
- strh r0, [r4, 0x10]
-_080AEED4:
- strh r5, [r3, 0x3A]
- movs r0, 0x3
- strh r0, [r3, 0x3C]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080AEEE0:
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080AEF02
- movs r5, 0x12
- ldrsh r0, [r4, r5]
- cmp r0, 0
- ble _080AEF02
- ldrh r1, [r4, 0x26]
- ldrh r6, [r4, 0x24]
- adds r1, r6
- strh r1, [r4, 0x24]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x6F
- bl PlaySE12WithPanning
-_080AEF02:
- movs r0, 0x12
- ldrsh r3, [r4, r0]
- ldrh r2, [r4, 0x16]
- cmp r3, 0
- bge _080AEF18
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x18
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080AEF28
-_080AEF18:
- cmp r3, 0
- ble _080AEF4C
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0x18
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080AEF4C
-_080AEF28:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1A]
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r0, 0x1
- b _080AEF58
- .align 2, 0
-_080AEF3C: .4byte gUnknown_83E62A8
-_080AEF40: .4byte gSprites
-_080AEF44: .4byte 0x000003ff
-_080AEF48: .4byte 0xfffffc00
-_080AEF4C:
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r0, r2, r0
- strh r0, [r4, 0x16]
- movs r0, 0
-_080AEF58:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80AEE74
-
- thumb_func_start sub_80AEF60
-sub_80AEF60: @ 80AEF60
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080AEF96
- ldr r3, _080AEF9C @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080AEF96:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEF9C: .4byte gTasks
- thumb_func_end sub_80AEF60
-
- thumb_func_start sub_80AEFA0
-sub_80AEFA0: @ 80AEFA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080AEFC4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080AF01C
- cmp r0, 0x1
- bgt _080AEFC8
- cmp r0, 0
- beq _080AEFCE
- b _080AF052
- .align 2, 0
-_080AEFC4: .4byte gTasks
-_080AEFC8:
- cmp r0, 0x2
- beq _080AF044
- b _080AF052
-_080AEFCE:
- ldr r0, _080AF018 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- cmp r0, 0x10
- ble _080AEFF8
- adds r2, r0, 0
-_080AEFE8:
- adds r1, r2, 0
- subs r1, 0x20
- adds r2, r1, 0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x10
- bgt _080AEFE8
- strh r1, [r5, 0x24]
-_080AEFF8:
- ldr r4, _080AF018 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _080AF03C
- .align 2, 0
-_080AF018: .4byte gUnknown_2037F1B
-_080AF01C:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AF052
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80AF058
- lsls r0, 24
- cmp r0, 0
- beq _080AF052
-_080AF03C:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080AF052
-_080AF044:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AF052
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080AF052:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AEFA0
-
- thumb_func_start sub_80AF058
-sub_80AF058: @ 80AF058
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080AF0B4 @ =gUnknown_83E5F38
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- ldrh r3, [r4, 0x20]
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080AF09C
- ldr r3, _080AF0B8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080AF0BC @ =sub_80AF0C8
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x3A]
- movs r1, 0xA
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
-_080AF09C:
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080AF0C0
- adds r0, r2, 0
- adds r0, 0x20
- strh r0, [r4, 0x24]
- movs r0, 0
- b _080AF0C2
- .align 2, 0
-_080AF0B4: .4byte gUnknown_83E5F38
-_080AF0B8: .4byte gSprites
-_080AF0BC: .4byte sub_80AF0C8
-_080AF0C0:
- movs r0, 0x1
-_080AF0C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80AF058
-
- thumb_func_start sub_80AF0C8
-sub_80AF0C8: @ 80AF0C8
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AF0FC
- ldr r3, _080AF104 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080AF0FC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF104: .4byte gTasks
- thumb_func_end sub_80AF0C8
-
- thumb_func_start sub_80AF108
-sub_80AF108: @ 80AF108
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x7
- ldr r3, _080AF210 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080AF214 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r4, _080AF218 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080AF21C @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- str r3, [sp]
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080AF220 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1]
- ldr r3, [sp]
- adds r0, r3
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x4]
- mov r4, r9
- adds r0, r4, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- adds r0, r6
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x6]
- mov r7, r8
- adds r0, r7, r0
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8074C80
- adds r4, 0x20
- movs r0, 0x98
- lsls r0, 1
- mov r12, r0
- ldr r3, [sp]
- cmp r4, r12
- bhi _080AF1E2
- adds r0, r7, 0
- adds r0, 0x20
- ldrh r1, [r5, 0x30]
- ldrh r2, [r5, 0x32]
- cmp r0, 0xE0
- bhi _080AF1E2
- adds r4, r1, 0
- mov r10, r12
-_080AF1AE:
- mov r7, r9
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r4
- lsls r1, 16
- mov r7, r8
- lsls r0, r7, 16
- asrs r0, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r0, r1, 16
- mov r9, r0
- movs r7, 0x80
- lsls r7, 14
- adds r1, r7
- lsrs r1, 16
- cmp r1, r10
- bhi _080AF1E2
- mov r1, r8
- lsls r0, r1, 16
- adds r0, r7
- lsrs r0, 16
- cmp r0, 0xE0
- bls _080AF1AE
-_080AF1E2:
- ldrh r0, [r5, 0x30]
- negs r7, r0
- strh r7, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- negs r4, r0
- strh r4, [r5, 0x32]
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r0, 16
- movs r2, 0x98
- lsls r2, 1
- mov r12, r2
- ldr r1, _080AF220 @ =gUnknown_2037F02
- mov r10, r1
- cmp r0, r12
- bhi _080AF24E
- lsls r1, r6, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r1, r2
- b _080AF246
- .align 2, 0
-_080AF210: .4byte 0x000003ff
-_080AF214: .4byte 0xfffffc00
-_080AF218: .4byte gUnknown_2037F1B
-_080AF21C: .4byte gUnknown_2037F1A
-_080AF220: .4byte gUnknown_2037F02
-_080AF224:
- lsls r1, r3, 16
- asrs r1, 16
- adds r1, r7
- lsls r1, 16
- asrs r0, r2, 16
- adds r0, r4
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r3, r1, 16
- movs r0, 0x80
- lsls r0, 14
- adds r1, r0
- lsrs r1, 16
- cmp r1, r12
- bhi _080AF24E
- lsls r1, r6, 16
- adds r0, r1, r0
-_080AF246:
- lsrs r0, 16
- adds r2, r1, 0
- cmp r0, 0xE0
- bls _080AF224
-_080AF24E:
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x22]
- mov r1, r10
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- strh r3, [r5, 0x30]
- mov r2, r9
- strh r2, [r5, 0x32]
- strh r6, [r5, 0x34]
- mov r3, r8
- strh r3, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8074C80
- mov r7, r10
- ldrh r0, [r7, 0xA]
- strh r0, [r5, 0x34]
- ldrh r0, [r7, 0xC]
- strh r0, [r5, 0x36]
- ldr r0, _080AF288 @ =sub_80AF28C
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF288: .4byte sub_80AF28C
- thumb_func_end sub_80AF108
-
- thumb_func_start sub_80AF28C
-sub_80AF28C: @ 80AF28C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AF2E4
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- strh r1, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- b _080AF2EA
-_080AF2E4:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AF2EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF28C
-
- thumb_func_start sub_80AF2F0
-sub_80AF2F0: @ 80AF2F0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AF324 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080AF328 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080AF32C @ =sub_8074AE0
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF324: .4byte gUnknown_2037F02
-_080AF328: .4byte DestroyAnimSprite
-_080AF32C: .4byte sub_8074AE0
- thumb_func_end sub_80AF2F0
-
- thumb_func_start sub_80AF330
-sub_80AF330: @ 80AF330
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080AF364 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r0, _080AF368 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AF370
- ldr r0, _080AF36C @ =gUnknown_2037F02
- ldrh r1, [r4, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r4, 0x32]
- b _080AF37A
- .align 2, 0
-_080AF364: .4byte gUnknown_2037F1B
-_080AF368: .4byte gUnknown_2037F1A
-_080AF36C: .4byte gUnknown_2037F02
-_080AF370:
- ldr r0, _080AF3A8 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
-_080AF37A:
- ldr r0, _080AF3AC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- ldr r1, _080AF3A8 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r2, [r1, 0x6]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, _080AF3B0 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AF3B4 @ =sub_8075590
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF3A8: .4byte gUnknown_2037F02
-_080AF3AC: .4byte gUnknown_2037F1B
-_080AF3B0: .4byte DestroyAnimSprite
-_080AF3B4: .4byte sub_8075590
- thumb_func_end sub_80AF330
-
- thumb_func_start sub_80AF3B8
-sub_80AF3B8: @ 80AF3B8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080AF3D0 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AF3D4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- b _080AF40A
- .align 2, 0
-_080AF3D0: .4byte gUnknown_2037F02
-_080AF3D4:
- ldr r0, _080AF41C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_8076D9C
- ldr r0, _080AF420 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AF3FA
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080AF3FA:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080AF40A:
- ldr r1, _080AF424 @ =sub_80AF42C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AF428 @ =sub_8074F50
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF41C: .4byte gUnknown_2037F1B
-_080AF420: .4byte gUnknown_2037F1A
-_080AF424: .4byte sub_80AF42C
-_080AF428: .4byte sub_8074F50
- thumb_func_end sub_80AF3B8
-
- thumb_func_start sub_80AF42C
-sub_80AF42C: @ 80AF42C
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080AF462
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080AF462:
- pop {r0}
- bx r0
- thumb_func_end sub_80AF42C
-
- thumb_func_start sub_80AF468
-sub_80AF468: @ 80AF468
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r6, _080AF4B0 @ =gUnknown_2037F02
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080AF4B8
- ldr r4, _080AF4B4 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x36]
- b _080AF4CA
- .align 2, 0
-_080AF4B0: .4byte gUnknown_2037F02
-_080AF4B4: .4byte gUnknown_2037F1B
-_080AF4B8:
- ldr r0, _080AF4E4 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_8076D9C
-_080AF4CA:
- ldr r0, _080AF4E8 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AF4F0
- ldr r0, _080AF4EC @ =gUnknown_2037F02
- ldrh r1, [r5, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r5, 0x32]
- b _080AF4FA
- .align 2, 0
-_080AF4E4: .4byte gUnknown_2037F1B
-_080AF4E8: .4byte gUnknown_2037F1A
-_080AF4EC: .4byte gUnknown_2037F02
-_080AF4F0:
- ldr r0, _080AF598 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080AF4FA:
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080AF504:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080AF504
- adds r0, r5, 0
- bl sub_8075804
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080AF526:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_807578C
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080AF55A
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080AF55A
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080AF526
-_080AF55A:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r6, _080AF59C @ =sub_8075830
- ldr r1, _080AF5A0 @ =sub_80AF5A4
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080AF57A:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080AF57A
- str r6, [r5, 0x1C]
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF598: .4byte gUnknown_2037F02
-_080AF59C: .4byte sub_8075830
-_080AF5A0: .4byte sub_80AF5A4
- thumb_func_end sub_80AF468
-
- thumb_func_start sub_80AF5A4
-sub_80AF5A4: @ 80AF5A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- ldr r0, _080AF600 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _080AF604 @ =0x0000ffec
- cmp r0, 0
- beq _080AF5D4
- movs r1, 0x14
-_080AF5D4:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x34]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldr r1, _080AF608 @ =sub_80AF60C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF600: .4byte gUnknown_2037F1A
-_080AF604: .4byte 0x0000ffec
-_080AF608: .4byte sub_80AF60C
- thumb_func_end sub_80AF5A4
-
- thumb_func_start sub_80AF60C
-sub_80AF60C: @ 80AF60C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AF660 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _080AF664 @ =0x0000ffec
- cmp r0, 0
- beq _080AF622
- movs r1, 0x14
-_080AF622:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x1F
- bgt _080AF668
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x36]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _080AF686
- .align 2, 0
-_080AF660: .4byte gUnknown_2037F1A
-_080AF664: .4byte 0x0000ffec
-_080AF668:
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- ldr r0, _080AF68C @ =sub_80AF690
- str r0, [r4, 0x1C]
-_080AF686:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF68C: .4byte sub_80AF690
- thumb_func_end sub_80AF60C
-
- thumb_func_start sub_80AF690
-sub_80AF690: @ 80AF690
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_807578C
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080AF6CC
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r1, r0, r1
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bgt _080AF6CC
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080AF6D2
-_080AF6CC:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AF6D2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF690
-
- thumb_func_start sub_80AF6D8
-sub_80AF6D8: @ 80AF6D8
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080AF71C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AF724
- ldr r4, _080AF720 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080AF736
- .align 2, 0
-_080AF71C: .4byte gUnknown_2037F02
-_080AF720: .4byte gUnknown_2037F1B
-_080AF724:
- ldr r0, _080AF754 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_8076D9C
-_080AF736:
- ldr r0, _080AF758 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AF760
- ldr r0, _080AF75C @ =gUnknown_2037F02
- ldrh r1, [r5, 0x32]
- ldrh r2, [r0, 0x4]
- subs r1, r2
- strh r1, [r5, 0x32]
- adds r1, r0, 0
- b _080AF76A
- .align 2, 0
-_080AF754: .4byte gUnknown_2037F1B
-_080AF758: .4byte gUnknown_2037F1A
-_080AF75C: .4byte gUnknown_2037F02
-_080AF760:
- ldr r1, _080AF814 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080AF76A:
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8075804
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080AF782:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080AF782
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080AF79E:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_807578C
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080AF7D2
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080AF7D2
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080AF79E
-_080AF7D2:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r1, _080AF814 @ =gUnknown_2037F02
- ldr r6, _080AF818 @ =sub_80AF81C
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080AF7F2:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080AF7F2
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r1, 0xC]
- strh r0, [r5, 0x3A]
- str r6, [r5, 0x1C]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF814: .4byte gUnknown_2037F02
-_080AF818: .4byte sub_80AF81C
- thumb_func_end sub_80AF6D8
-
- thumb_func_start sub_80AF81C
-sub_80AF81C: @ 80AF81C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807578C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AF830
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_080AF830:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080AF886
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080AF880
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080AF880
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080AF886
-_080AF880:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AF886:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF81C
-
- thumb_func_start sub_80AF88C
-sub_80AF88C: @ 80AF88C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AF8F8
- ldr r5, _080AF8AC @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AF8B0
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075114
- b _080AF8E6
- .align 2, 0
-_080AF8AC: .4byte gUnknown_2037F02
-_080AF8B0:
- ldr r0, _080AF8F0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_8076D9C
- ldr r0, _080AF8F4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AF8D6
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080AF8D6:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080AF8E6:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080AF90C
- .align 2, 0
-_080AF8F0: .4byte gUnknown_2037F1B
-_080AF8F4: .4byte gUnknown_2037F1A
-_080AF8F8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AF90C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AF90C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF88C
-
- thumb_func_start sub_80AF914
-sub_80AF914: @ 80AF914
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080AF934 @ =gUnknown_2037F02
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080AF984
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080AF938
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075160
- b _080AF976
- .align 2, 0
-_080AF934: .4byte gUnknown_2037F02
-_080AF938:
- ldr r4, _080AF960 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_8076D9C
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AF964
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080AF96A
- .align 2, 0
-_080AF960: .4byte gUnknown_2037F1A
-_080AF964:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080AF96A:
- strh r0, [r5, 0x20]
- ldr r0, _080AF97C @ =gUnknown_2037F02
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080AF976:
- ldr r0, _080AF980 @ =gUnknown_2037F1A
- b _080AF9D4
- .align 2, 0
-_080AF97C: .4byte gUnknown_2037F02
-_080AF980: .4byte gUnknown_2037F1A
-_080AF984:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080AF996
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075114
- b _080AF9D2
-_080AF996:
- ldr r4, _080AF9BC @ =gUnknown_2037F1B
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_8076D9C
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AF9C0
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080AF9C6
- .align 2, 0
-_080AF9BC: .4byte gUnknown_2037F1B
-_080AF9C0:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080AF9C6:
- strh r0, [r5, 0x20]
- ldr r0, _080AF9F0 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080AF9D2:
- ldr r0, _080AF9F4 @ =gUnknown_2037F1B
-_080AF9D4:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- ldr r0, _080AF9F0 @ =gUnknown_2037F02
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080AF9EC
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- bne _080AF9F8
-_080AF9EC:
- movs r0, 0x20
- b _080AF9FA
- .align 2, 0
-_080AF9F0: .4byte gUnknown_2037F02
-_080AF9F4: .4byte gUnknown_2037F1B
-_080AF9F8:
- movs r0, 0x40
-_080AF9FA:
- strh r0, [r5, 0x3A]
- ldr r0, _080AFA40 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AFA10
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080AFA10:
- ldr r1, _080AFA44 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrh r1, [r1, 0x4]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r5, 0x38]
- ldr r1, _080AFA48 @ =sub_80AFA4C
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFA40: .4byte gUnknown_2037F1B
-_080AFA44: .4byte gUnknown_2037F02
-_080AFA48: .4byte sub_80AFA4C
- thumb_func_end sub_80AF914
-
- thumb_func_start sub_80AFA4C
-sub_80AFA4C: @ 80AFA4C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080AFAD6
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080AFAA8
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080AFACA
-_080AFAA8:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_080AFACA:
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080AFADC
-_080AFAD6:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AFADC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AFA4C
-
- thumb_func_start sub_80AFAE4
-sub_80AFAE4: @ 80AFAE4
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080AFBA0 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AFB26
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080AFB26:
- ldr r0, _080AFBA4 @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080AFBA8 @ =gUnknown_202297A
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AFBAC @ =gUnknown_83C3540
- movs r2, 0x80
- lsls r2, 4
- mov r3, sp
- ldrh r3, [r3, 0xA]
- bl LoadBgTiles
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
- bl sub_807543C
- ldr r0, _080AFBB4 @ =gUnknown_83C2CE0
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080AFB88
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080AFB88:
- ldr r0, _080AFBB8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AFBBC @ =sub_80AFBC0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFBA0: .4byte 0x00003f42
-_080AFBA4: .4byte gUnknown_2022978
-_080AFBA8: .4byte gUnknown_202297A
-_080AFBAC: .4byte gUnknown_83C3540
-_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
-_080AFBB4: .4byte gUnknown_83C2CE0
-_080AFBB8: .4byte gTasks
-_080AFBBC: .4byte sub_80AFBC0
- thumb_func_end sub_80AFAE4
-
- thumb_func_start sub_80AFBC0
-sub_80AFBC0: @ 80AFBC0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AFBF4 @ =gUnknown_2022978
- ldr r2, _080AFBF8 @ =0x0000ffff
- adds r0, r2, 0
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- ldr r1, _080AFBFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080AFBEA
- b _080AFD36
-_080AFBEA:
- lsls r0, 2
- ldr r1, _080AFC00 @ =_080AFC04
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AFBF4: .4byte gUnknown_2022978
-_080AFBF8: .4byte 0x0000ffff
-_080AFBFC: .4byte gTasks
-_080AFC00: .4byte _080AFC04
- .align 2, 0
-_080AFC04:
- .4byte _080AFC18
- .4byte _080AFC70
- .4byte _080AFC92
- .4byte _080AFCD6
- .4byte _080AFCF8
-_080AFC18:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080AFC32
- b _080AFD36
-_080AFC32:
- strh r5, [r4, 0x1C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r1, _080AFC6C @ =gUnknown_83E64D4
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bne _080AFD36
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080AFD36
- .align 2, 0
-_080AFC6C: .4byte gUnknown_83E64D4
-_080AFC70:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080AFD36
- movs r0, 0x9
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080AFD36
-_080AFC92:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080AFD36
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080AFD36
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080AFD36
-_080AFCD6:
- mov r0, sp
- bl sub_80752A0
- movs r0, 0x1
- bl sub_8075358
- movs r0, 0x2
- bl sub_8075358
- ldr r0, _080AFD40 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080AFCF8:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AFD0C
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080AFD0C:
- ldr r0, _080AFD44 @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080AFD48 @ =gUnknown_202297A
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AFD36:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFD40: .4byte gTasks
-_080AFD44: .4byte gUnknown_2022978
-_080AFD48: .4byte gUnknown_202297A
- thumb_func_end sub_80AFBC0
-
- thumb_func_start sub_80AFD4C
-sub_80AFD4C: @ 80AFD4C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080AFD78 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080AFD7C @ =sub_8075DF4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFD78: .4byte gUnknown_2037F1A
-_080AFD7C: .4byte sub_8075DF4
- thumb_func_end sub_80AFD4C
-
- thumb_func_start sub_80AFD80
-sub_80AFD80: @ 80AFD80
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080AFE40 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AFDC2
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080AFDC2:
- ldr r0, _080AFE44 @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080AFE48 @ =gUnknown_202297A
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AFE4C @ =gUnknown_83C3540
- movs r2, 0x80
- lsls r2, 4
- mov r3, sp
- ldrh r3, [r3, 0xA]
- bl LoadBgTiles
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
- bl sub_807543C
- ldr r0, _080AFE54 @ =gUnknown_83C2CE0
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080AFE24
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080AFE24:
- ldr r1, _080AFE58 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080AFE5C @ =0x0000ffff
- strh r1, [r0, 0x26]
- ldr r1, _080AFE60 @ =sub_80AFE64
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFE40: .4byte 0x00003f42
-_080AFE44: .4byte gUnknown_2022978
-_080AFE48: .4byte gUnknown_202297A
-_080AFE4C: .4byte gUnknown_83C3540
-_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
-_080AFE54: .4byte gUnknown_83C2CE0
-_080AFE58: .4byte gTasks
-_080AFE5C: .4byte 0x0000ffff
-_080AFE60: .4byte sub_80AFE64
- thumb_func_end sub_80AFD80
-
- thumb_func_start sub_80AFE64
-sub_80AFE64: @ 80AFE64
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080AFE94 @ =gUnknown_2022978
- ldr r3, _080AFE98 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0x26]
- ldrh r5, [r2]
- adds r0, r5
- strh r0, [r2]
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- bls _080AFE8A
- b _080AFFBE
-_080AFE8A:
- lsls r0, 2
- ldr r1, _080AFE9C @ =_080AFEA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AFE94: .4byte gUnknown_2022978
-_080AFE98: .4byte gTasks
-_080AFE9C: .4byte _080AFEA0
- .align 2, 0
-_080AFEA0:
- .4byte _080AFEB4
- .4byte _080AFEF8
- .4byte _080AFF1A
- .4byte _080AFF5E
- .4byte _080AFF80
-_080AFEB4:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r1, _080AFEF4 @ =gUnknown_83E6500
- movs r5, 0x1A
- ldrsh r0, [r4, r5]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r4, 0x1E]
- movs r0, 0x11
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _080AFFBE
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x1E]
- b _080AFFBE
- .align 2, 0
-_080AFEF4: .4byte gUnknown_83E6500
-_080AFEF8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080AFFBE
- movs r0, 0x5
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080AFFBE
-_080AFF1A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080AFFBE
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080AFFBE
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080AFFBE
-_080AFF5E:
- mov r0, sp
- bl sub_80752A0
- movs r0, 0x1
- bl sub_8075358
- movs r0, 0x2
- bl sub_8075358
- ldr r0, _080AFFC8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080AFF80:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AFF94
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080AFF94:
- ldr r0, _080AFFCC @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080AFFD0 @ =gUnknown_202297A
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AFFBE:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFFC8: .4byte gTasks
-_080AFFCC: .4byte gUnknown_2022978
-_080AFFD0: .4byte gUnknown_202297A
- thumb_func_end sub_80AFE64
-
- thumb_func_start sub_80AFFD4
-sub_80AFFD4: @ 80AFFD4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldr r6, _080B00BC @ =gUnknown_2037F02
- ldrh r0, [r6]
- strh r0, [r5, 0x2E]
- ldr r0, _080B00C0 @ =gUnknown_2037F1A
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8074480
- adds r4, r0, 0
- ldr r7, _080B00C4 @ =gUnknown_2037F1B
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8074480
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _080B0008
- movs r0, 0x80
- lsls r0, 8
- strh r0, [r5, 0x3C]
-_080B0008:
- ldr r3, _080B00C8 @ =gUnknown_2023BD6
- ldrb r0, [r7]
- adds r0, r3
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080B0068
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
- ldrh r0, [r6, 0x6]
- negs r0, r0
- strh r0, [r6, 0x6]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080B0064
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080B0064
- movs r0, 0x1
- bl GetAnimBankSpriteId
- ldr r2, _080B00CC @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
-_080B0064:
- movs r0, 0x1
- strh r0, [r5, 0x3A]
-_080B0068:
- ldr r4, _080B00C0 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r6, _080B00BC @ =gUnknown_2037F02
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080B00D0
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080B00C4 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- b _080B00F8
- .align 2, 0
-_080B00BC: .4byte gUnknown_2037F02
-_080B00C0: .4byte gUnknown_2037F1A
-_080B00C4: .4byte gUnknown_2037F1B
-_080B00C8: .4byte gUnknown_2023BD6
-_080B00CC: .4byte gSprites
-_080B00D0:
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080B0140 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x1
-_080B00F8:
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x8]
- adds r0, r6
- strh r0, [r5, 0x36]
- ldrb r0, [r4]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 16
- ldrh r1, [r5, 0x3C]
- orrs r0, r1
- strh r0, [r5, 0x3C]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B012C
- movs r0, 0x1
- strh r0, [r5, 0x3A]
- adds r1, r5, 0
- adds r1, 0x43
- movs r0, 0x80
- strb r0, [r1]
-_080B012C:
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080B0144 @ =sub_80B0148
- str r0, [r5, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0140: .4byte gUnknown_2037F1B
-_080B0144: .4byte sub_80B0148
- thumb_func_end sub_80AFFD4
-
- thumb_func_start sub_80B0148
-sub_80B0148: @ 80B0148
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- movs r5, 0xFF
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x1
- beq _080B0230
- cmp r1, 0x1
- bgt _080B0162
- cmp r1, 0
- beq _080B016A
- b _080B0380
-_080B0162:
- cmp r1, 0x2
- bne _080B0168
- b _080B0344
-_080B0168:
- b _080B0380
-_080B016A:
- adds r0, r4, 0
- bl sub_80755E0
- ldr r1, _080B0194 @ =gUnknown_825E074
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 4
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B0198
- ldrh r0, [r4, 0x38]
- subs r0, 0x8
- b _080B019C
- .align 2, 0
-_080B0194: .4byte gUnknown_825E074
-_080B0198:
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
-_080B019C:
- ands r0, r5
- strh r0, [r4, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080B01AA
- b _080B0380
-_080B01AA:
- movs r5, 0x50
- strh r5, [r4, 0x2E]
- ldr r6, _080B01F8 @ =gUnknown_2037F1B
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x1D
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B0200
- ldr r1, _080B01FC @ =gUnknown_2023BD6
- ldrb r0, [r6]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B0200
- movs r0, 0xCC
- strh r0, [r4, 0x38]
- b _080B0202
- .align 2, 0
-_080B01F8: .4byte gUnknown_2037F1B
-_080B01FC: .4byte gUnknown_2023BD6
-_080B0200:
- strh r5, [r4, 0x38]
-_080B0202:
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080B022C @ =gUnknown_825E074
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 3
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _080B0380
- .align 2, 0
-_080B022C: .4byte gUnknown_825E074
-_080B0230:
- adds r0, r4, 0
- bl sub_80755E0
- ldr r1, _080B028C @ =gUnknown_825E074
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r0, 3
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- negs r0, r0
- asrs r0, 8
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B02AE
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- adds r3, r1, 0
- cmp r0, 0x7F
- bhi _080B0290
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- b _080B0298
- .align 2, 0
-_080B028C: .4byte gUnknown_825E074
-_080B0290:
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- adds r1, 0x1
-_080B0298:
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r3, 0x4
- b _080B02CE
-_080B02AE:
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080B02C2
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x80
- b _080B02C8
-_080B02C2:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x8C
-_080B02C8:
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- subs r0, 0x4
-_080B02CE:
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bgt _080B0380
- movs r5, 0
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x4
- strh r0, [r4, 0x36]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B0328
- ldr r1, _080B0320 @ =gUnknown_2023BD6
- ldr r0, _080B0324 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B0328
- movs r0, 0x80
- lsls r0, 1
- b _080B032A
- .align 2, 0
-_080B0320: .4byte gUnknown_2023BD6
-_080B0324: .4byte gUnknown_2037F1B
-_080B0328:
- ldr r0, _080B0340 @ =0x0000fff0
-_080B032A:
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl sub_8075678
- b _080B0380
- .align 2, 0
-_080B0340: .4byte 0x0000fff0
-_080B0344:
- adds r0, r4, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080B0380
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B0372
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_080B0372:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080B0388 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080B0380:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0388: .4byte gUnknown_2037EE2
- thumb_func_end sub_80B0148
-
- thumb_func_start sub_80B038C
-sub_80B038C: @ 80B038C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B03A0 @ =gTasks
- adds r1, r0
- ldr r0, _080B03A4 @ =sub_80B03A8
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B03A0: .4byte gTasks
-_080B03A4: .4byte sub_80B03A8
- thumb_func_end sub_80B038C
-
- thumb_func_start sub_80B03A8
-sub_80B03A8: @ 80B03A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B03CC @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080B03EC
- cmp r5, 0x1
- bgt _080B03D0
- cmp r5, 0
- beq _080B03D6
- b _080B0450
- .align 2, 0
-_080B03CC: .4byte gTasks
-_080B03D0:
- cmp r5, 0x2
- beq _080B0442
- b _080B0450
-_080B03D6:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B0450
- strh r5, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0xC]
- b _080B0428
-_080B03EC:
- ldrh r1, [r4, 0x12]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080B043C
- ldrb r0, [r4, 0xE]
- ldrb r1, [r4, 0xC]
- movs r3, 0x1
- bl sub_80B0458
- lsls r0, 24
- cmp r0, 0
- beq _080B040C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
-_080B040C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080B0438
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080B0430
-_080B0428:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B0450
-_080B0430:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _080B0450
-_080B0438:
- strh r5, [r4, 0x12]
- b _080B0450
-_080B043C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
- b _080B0450
-_080B0442:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B0450
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B0450:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B03A8
-
- thumb_func_start sub_80B0458
-sub_80B0458: @ 80B0458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r1, _080B04D0 @ =gUnknown_83E652C
- lsrs r0, 22
- adds r4, r0, r1
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- asrs r0, 28
- mov r8, r0
- cmp r0, 0x2
- beq _080B0544
- ldrh r0, [r4, 0x2]
- lsls r0, 20
- lsrs r0, 24
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B0544
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r8
- cmp r1, 0
- beq _080B04D4
- cmp r1, 0x1
- beq _080B050A
- b _080B0556
- .align 2, 0
-_080B04D0: .4byte gUnknown_83E652C
-_080B04D4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8076B2C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_8076B2C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r0
- b _080B053E
-_080B050A:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8076B2C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_8076B2C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- adds r1, r0
-_080B053E:
- lsls r1, 16
- lsrs r6, r1, 16
- b _080B0556
-_080B0544:
- ldrh r0, [r4]
- lsls r0, 22
- asrs r0, 6
- lsrs r7, r0, 16
- ldr r0, [r4]
- lsls r0, 12
- asrs r0, 22
- lsls r0, 16
- lsrs r6, r0, 16
-_080B0556:
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, 0x8
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- ldr r0, _080B05B0 @ =gUnknown_83E65A4
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- negs r2, r2
- movs r3, 0x12
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080B05B8
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _080B05B4 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- mov r1, r9
- bl StartSpriteAffineAnim
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- strh r7, [r4, 0x34]
- strh r6, [r4, 0x36]
- mov r1, r9
- strh r1, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- mov r1, r10
- strh r1, [r4, 0x3C]
- movs r0, 0x1
- b _080B05BA
- .align 2, 0
-_080B05B0: .4byte gUnknown_83E65A4
-_080B05B4: .4byte gSprites
-_080B05B8:
- movs r0, 0
-_080B05BA:
- 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_80B0458
-
- thumb_func_start sub_80B05CC
-sub_80B05CC: @ 80B05CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r2, r1, 0
- adds r2, 0x8
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _080B05F6
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080B06A6
-_080B05F6:
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080B0678
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B0678
- ldr r0, _080B066C @ =gUnknown_83E63E0
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- movs r3, 0x36
- ldrsh r2, [r4, r3]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- cmp r0, 0x40
- beq _080B065A
- ldr r2, _080B0670 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080B0674 @ =sub_80B06B0
- str r1, [r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3A]
- strh r1, [r0, 0x3A]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3C]
- strh r1, [r0, 0x3C]
-_080B065A:
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _080B06A6
- .align 2, 0
-_080B066C: .4byte gUnknown_83E63E0
-_080B0670: .4byte gSprites
-_080B0674: .4byte sub_80B06B0
-_080B0678:
- ldr r3, _080B06AC @ =gTasks
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080B06A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B06AC: .4byte gTasks
- thumb_func_end sub_80B05CC
-
- thumb_func_start sub_80B06B0
-sub_80B06B0: @ 80B06B0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080B06F0
- ldr r3, _080B06F8 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080B06F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B06F8: .4byte gTasks
- thumb_func_end sub_80B06B0
-
- thumb_func_start unc_080B06FC
-unc_080B06FC: @ 80B06FC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080B077C @ =gUnknown_2037EE4
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080B071A
- movs r1, 0x4
-_080B071A:
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r6, _080B0780 @ =gUnknown_2037F02
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080B0784 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B0742
- ldrh r0, [r6, 0x4]
- negs r0, r0
- strh r0, [r6, 0x4]
-_080B0742:
- ldr r4, _080B0788 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_8075068
- ldr r0, _080B078C @ =sub_80B0790
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B077C: .4byte gUnknown_2037EE4
-_080B0780: .4byte gUnknown_2037F02
-_080B0784: .4byte gUnknown_2037F1A
-_080B0788: .4byte gUnknown_2037F1B
-_080B078C: .4byte sub_80B0790
- thumb_func_end unc_080B06FC
-
- thumb_func_start sub_80B0790
-sub_80B0790: @ 80B0790
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B07B2
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080B07B8 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _080B07BC @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080B07B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B07B8: .4byte sub_8074F6C
-_080B07BC: .4byte DestroyAnimSprite
- thumb_func_end sub_80B0790
-
- thumb_func_start sub_80B07C0
-sub_80B07C0: @ 80B07C0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080B0814 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080B0818 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080B081C @ =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080B0806
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080B0806:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080B0820 @ =sub_80B0824
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0814: .4byte 0x000003ff
-_080B0818: .4byte 0xfffffc00
-_080B081C: .4byte 0x000001ff
-_080B0820: .4byte sub_80B0824
- thumb_func_end sub_80B07C0
-
- thumb_func_start sub_80B0824
-sub_80B0824: @ 80B0824
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080B0848
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080B084C
-_080B0848:
- lsls r0, r3, 16
- asrs r0, 24
-_080B084C:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080B086A
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080B086A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B0824
-
- thumb_func_start sub_80B0870
-sub_80B0870: @ 80B0870
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B0898 @ =gUnknown_2037F02
- ldrb r3, [r1]
- lsls r3, 1
- adds r3, r1
- ldr r1, _080B089C @ =gUnknown_2037EE4
- ldr r1, [r1]
- ldrb r1, [r1, 0x11]
- lsrs r2, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r2, r1
- subs r2, 0x1
- strh r2, [r3]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B0898: .4byte gUnknown_2037F02
-_080B089C: .4byte gUnknown_2037EE4
- thumb_func_end sub_80B0870
-
- thumb_func_start unc_080B08A0
-unc_080B08A0: @ 80B08A0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B08D0 @ =gUnknown_2037F02
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_8074FF8
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0xF
- strh r0, [r4, 0x2E]
- ldr r0, _080B08D4 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080B08D8 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B08D0: .4byte gUnknown_2037F02
-_080B08D4: .4byte sub_8074C44
-_080B08D8: .4byte DestroyAnimSprite
- thumb_func_end unc_080B08A0
-
- thumb_func_start sub_80B08DC
-sub_80B08DC: @ 80B08DC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B0920 @ =gUnknown_2037F02
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080B0904
- ldr r0, _080B0924 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B0904
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r4, 0x6]
-_080B0904:
- ldr r4, _080B0920 @ =gUnknown_2037F02
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0xC]
- adds r0, r5, 0
- bl sub_8075F0C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0920: .4byte gUnknown_2037F02
-_080B0924: .4byte gUnknown_2037F1A
- thumb_func_end sub_80B08DC
-
- thumb_func_start sub_80B0928
-sub_80B0928: @ 80B0928
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B0944
- ldr r0, _080B0950 @ =gUnknown_2037F02
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080B0944:
- adds r0, r4, 0
- bl sub_80B08DC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0950: .4byte gUnknown_2037F02
- thumb_func_end sub_80B0928
-
- thumb_func_start sub_80B0954
-sub_80B0954: @ 80B0954
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B0974 @ =gUnknown_2037F02
- ldrb r1, [r4, 0x8]
- bl StartSpriteAnim
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B0978
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- b _080B0980
- .align 2, 0
-_080B0974: .4byte gUnknown_2037F02
-_080B0978:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075114
-_080B0980:
- ldr r0, _080B0998 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080B099C @ =sub_8074C44
- str r0, [r5, 0x1C]
- ldr r1, _080B09A0 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0998: .4byte gUnknown_2037F02
-_080B099C: .4byte sub_8074C44
-_080B09A0: .4byte DestroyAnimSprite
- thumb_func_end sub_80B0954
-
- thumb_func_start sub_80B09A4
-sub_80B09A4: @ 80B09A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _080B09C0 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r9, r0
- cmp r1, 0
- bne _080B09C8
- ldr r0, _080B09C4 @ =gUnknown_2037F1A
- b _080B09CA
- .align 2, 0
-_080B09C0: .4byte gUnknown_2037F02
-_080B09C4: .4byte gUnknown_2037F1A
-_080B09C8:
- ldr r0, _080B0B10 @ =gUnknown_2037F1B
-_080B09CA:
- ldrb r0, [r0]
- mov r8, r0
- mov r4, r9
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080B09E8
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x4]
-_080B09E8:
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- mov r0, r8
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- mov r0, r8
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- mov r0, r8
- movs r1, 0x1
- bl sub_8076B2C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r6, r1, 16
- mov r0, r8
- movs r1, 0
- bl sub_8076B2C
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080B0A32
- adds r0, 0x3
-_080B0A32:
- lsls r4, r0, 14
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080B0A74
- lsls r0, r6, 16
- negs r0, r0
- lsrs r6, r0, 16
-_080B0A74:
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080B0A86
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080B0A86:
- ldr r0, _080B0B14 @ =gUnknown_2023BD6
- add r0, r8
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080B0A9C
- lsls r0, r4, 16
- ldr r1, _080B0B18 @ =0xfff00000
- adds r0, r1
- lsrs r4, r0, 16
-_080B0A9C:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- mov r1, r9
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080B0B1C @ =gUnknown_83E7C08
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- adds r3, r5, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3C]
- cmp r0, 0x40
- beq _080B0B00
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080B0B20 @ =gSprites
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r2, 0x3C
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080B0B24 @ =SpriteCallbackDummy
- str r1, [r0]
-_080B0B00:
- ldr r0, _080B0B28 @ =sub_80B0B2C
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0B10: .4byte gUnknown_2037F1B
-_080B0B14: .4byte gUnknown_2023BD6
-_080B0B18: .4byte 0xfff00000
-_080B0B1C: .4byte gUnknown_83E7C08
-_080B0B20: .4byte gSprites
-_080B0B24: .4byte SpriteCallbackDummy
-_080B0B28: .4byte sub_80B0B2C
- thumb_func_end sub_80B09A4
-
- thumb_func_start sub_80B0B2C
-sub_80B0B2C: @ 80B0B2C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080B0B74
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- beq _080B0B68
- ldr r4, _080B0B70 @ =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_080B0B68:
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _080B0B78
- .align 2, 0
-_080B0B70: .4byte gSprites
-_080B0B74:
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
-_080B0B78:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B0B2C
-
- thumb_func_start sub_80B0B80
-sub_80B0B80: @ 80B0B80
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- ldr r0, _080B0BA0 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B0BA4
- ldrh r0, [r4, 0x20]
- subs r0, 0x14
- strh r0, [r4, 0x32]
- b _080B0BB6
- .align 2, 0
-_080B0BA0: .4byte gUnknown_2037F02
-_080B0BA4:
- ldrh r0, [r4, 0x20]
- adds r0, 0x14
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080B0BB6:
- ldrh r0, [r4, 0x22]
- subs r0, 0x14
- strh r0, [r4, 0x36]
- ldr r0, _080B0BD0 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080B0BD4 @ =sub_80B0BD8
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0BD0: .4byte sub_8075590
-_080B0BD4: .4byte sub_80B0BD8
- thumb_func_end sub_80B0B80
-
- thumb_func_start sub_80B0BD8
-sub_80B0BD8: @ 80B0BD8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080B0C18
- ldrh r2, [r5, 0x20]
- ldrh r4, [r5, 0x24]
- subs r0, r2, r4
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x22]
- ldrh r3, [r5, 0x26]
- subs r0, r1, r3
- strh r0, [r5, 0x36]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- adds r2, r4
- strh r2, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x22]
- strh r6, [r5, 0x26]
- strh r6, [r5, 0x24]
- ldr r0, _080B0C20 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080B0C24 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080B0C18:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0C20: .4byte sub_8075590
-_080B0C24: .4byte DestroyAnimSprite
- thumb_func_end sub_80B0BD8
-
- thumb_func_start sub_80B0C28
-sub_80B0C28: @ 80B0C28
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080B0CA4 @ =gUnknown_2037F1A
- ldrb r1, [r0]
- movs r0, 0x2
- ldr r2, _080B0CA8 @ =gUnknown_2037F1B
- eors r0, r1
- ldrb r1, [r2]
- cmp r0, r1
- bne _080B0C54
- ldrb r0, [r2]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080B0C54
- ldr r1, _080B0CAC @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080B0C54:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r0, _080B0CA4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B0C72
- ldr r1, _080B0CAC @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080B0C72:
- ldr r4, _080B0CAC @ =gUnknown_2037F02
- ldrh r0, [r4, 0x6]
- movs r5, 0
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x3A]
- strh r5, [r6, 0x3C]
- ldr r0, _080B0CB0 @ =sub_80B0CB4
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0CA4: .4byte gUnknown_2037F1A
-_080B0CA8: .4byte gUnknown_2037F1B
-_080B0CAC: .4byte gUnknown_2037F02
-_080B0CB0: .4byte sub_80B0CB4
- thumb_func_end sub_80B0C28
-
- thumb_func_start sub_80B0CB4
-sub_80B0CB4: @ 80B0CB4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080B0CE0
- ldrh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- strh r0, [r4, 0x3C]
- b _080B0CE6
-_080B0CE0:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B0CE6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B0CB4
-
- thumb_func_start sub_80B0CEC
-sub_80B0CEC: @ 80B0CEC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r5, _080B0D18 @ =gUnknown_2037F02
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldr r0, _080B0D1C @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080B0D20 @ =sub_80B0D24
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0D18: .4byte gUnknown_2037F02
-_080B0D1C: .4byte sub_8074C44
-_080B0D20: .4byte sub_80B0D24
- thumb_func_end sub_80B0CEC
-
- thumb_func_start sub_80B0D24
-sub_80B0D24: @ 80B0D24
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r0, _080B0D50 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080B0D54 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0D50: .4byte sub_8074C44
-_080B0D54: .4byte DestroyAnimSprite
- thumb_func_end sub_80B0D24
-
- thumb_func_start sub_80B0D58
-sub_80B0D58: @ 80B0D58
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r0, _080B0D74 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080B0D78 @ =sub_80B0D7C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0D74: .4byte gUnknown_2037F02
-_080B0D78: .4byte sub_80B0D7C
- thumb_func_end sub_80B0D58
-
- thumb_func_start sub_80B0D7C
-sub_80B0D7C: @ 80B0D7C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080B0DC0
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080B0DC8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080B0DCC @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080B0DD0 @ =sub_80B0DD4
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080B0DC0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0DC8: .4byte gUnknown_2037F1B
-_080B0DCC: .4byte sub_8075590
-_080B0DD0: .4byte sub_80B0DD4
- thumb_func_end sub_80B0D7C
-
- thumb_func_start sub_80B0DD4
-sub_80B0DD4: @ 80B0DD4
- push {lr}
- movs r1, 0xF
- strh r1, [r0, 0x2E]
- ldr r1, _080B0DE8 @ =sub_8074C44
- str r1, [r0, 0x1C]
- ldr r1, _080B0DEC @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080B0DE8: .4byte sub_8074C44
-_080B0DEC: .4byte DestroyAnimSprite
- thumb_func_end sub_80B0DD4
-
- thumb_func_start sub_80B0DF0
-sub_80B0DF0: @ 80B0DF0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B0E1C
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r1, _080B0E18 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080B0E78
- .align 2, 0
-_080B0E18: .4byte gUnknown_2037F02
-_080B0E1C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080B0E6A
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080B0E6A:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080B0E78
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B0E78:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B0DF0
-
- thumb_func_start sub_80B0E80
-sub_80B0E80: @ 80B0E80
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B0E94 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B0E9C
- ldr r4, _080B0E98 @ =gUnknown_2037F1A
- b _080B0E9E
- .align 2, 0
-_080B0E94: .4byte gUnknown_2037F02
-_080B0E98: .4byte gUnknown_2037F1A
-_080B0E9C:
- ldr r4, _080B0EE4 @ =gUnknown_2037F1B
-_080B0E9E:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080B0EE8 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x4]
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- strh r2, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldr r0, _080B0EEC @ =sub_80B0EF0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0EE4: .4byte gUnknown_2037F1B
-_080B0EE8: .4byte gUnknown_2037F02
-_080B0EEC: .4byte sub_80B0EF0
- thumb_func_end sub_80B0E80
-
- thumb_func_start sub_80B0EF0
-sub_80B0EF0: @ 80B0EF0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080B0F02
- cmp r2, 0x1
- beq _080B0F26
- b _080B0F60
-_080B0F02:
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B0F60
- movs r2, 0x32
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B0F1E
- adds r0, r1, 0
- bl DestroyAnimSprite
- b _080B0F60
-_080B0F1E:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080B0F60
-_080B0F26:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B0F4E
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r0, [r1, 0x34]
- adds r0, 0x1
- strh r0, [r1, 0x34]
- ands r0, r2
- lsls r0, 16
- cmp r0, 0
- beq _080B0F4A
- movs r0, 0x2
- b _080B0F4C
-_080B0F4A:
- ldr r0, _080B0F64 @ =0x0000fffe
-_080B0F4C:
- strh r0, [r1, 0x24]
-_080B0F4E:
- ldrh r0, [r1, 0x32]
- subs r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _080B0F60
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080B0F60:
- pop {r0}
- bx r0
- .align 2, 0
-_080B0F64: .4byte 0x0000fffe
- thumb_func_end sub_80B0EF0
-
- thumb_func_start sub_80B0F68
-sub_80B0F68: @ 80B0F68
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080B0F8C @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080B0F94
- ldr r4, _080B0F90 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x4]
- adds r0, r2
- b _080B0FA6
- .align 2, 0
-_080B0F8C: .4byte gUnknown_2037F02
-_080B0F90: .4byte gUnknown_2037F1A
-_080B0F94:
- ldr r4, _080B0FF0 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
-_080B0FA6:
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080B0FF4 @ =gUnknown_2037F02
- movs r4, 0x2
- ldrsh r0, [r3, r4]
- lsls r0, 4
- adds r1, r0
- ldr r4, _080B0FF8 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080B0FFC @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _080B1014
- cmp r0, 0x1
- bgt _080B1000
- cmp r0, 0
- beq _080B100A
- b _080B103A
- .align 2, 0
-_080B0FF0: .4byte gUnknown_2037F1B
-_080B0FF4: .4byte gUnknown_2037F02
-_080B0FF8: .4byte 0x000003ff
-_080B0FFC: .4byte 0xfffffc00
-_080B1000:
- cmp r0, 0x2
- beq _080B1024
- cmp r0, 0x3
- beq _080B1034
- b _080B103A
-_080B100A:
- ldr r0, _080B1010 @ =0x0000fffd
- b _080B1034
- .align 2, 0
-_080B1010: .4byte 0x0000fffd
-_080B1014:
- movs r0, 0x3
- strh r0, [r5, 0x3A]
- ldr r0, _080B1020 @ =0x0000fffd
- strh r0, [r5, 0x3C]
- b _080B1042
- .align 2, 0
-_080B1020: .4byte 0x0000fffd
-_080B1024:
- ldr r0, _080B1030 @ =0x0000fffd
- strh r0, [r5, 0x3A]
- movs r0, 0x3
- strh r0, [r5, 0x3C]
- b _080B1042
- .align 2, 0
-_080B1030: .4byte 0x0000fffd
-_080B1034:
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- b _080B1042
-_080B103A:
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _080B1046
-_080B1042:
- ldr r0, _080B104C @ =sub_80B1050
- str r0, [r5, 0x1C]
-_080B1046:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B104C: .4byte sub_80B1050
- thumb_func_end sub_80B0F68
-
- thumb_func_start sub_80B1050
-sub_80B1050: @ 80B1050
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x3A]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x3C]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080B1078
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080B1078:
- pop {r0}
- bx r0
- thumb_func_end sub_80B1050
-
- thumb_func_start sub_80B107C
-sub_80B107C: @ 80B107C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B10C8 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B10D8
- ldr r4, _080B10CC @ =sBattler_AI
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080B10D0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080B10D4 @ =gUnknown_2037F1B
- b _080B10F4
- .align 2, 0
-_080B10C8: .4byte gUnknown_2037F02
-_080B10CC: .4byte sBattler_AI
-_080B10D0: .4byte gUnknown_2037F1A
-_080B10D4: .4byte gUnknown_2037F1B
-_080B10D8:
- ldr r0, _080B1110 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080B1114 @ =gUnknown_2037F1A
-_080B10F4:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r0, 0xC
- strh r0, [r5, 0x30]
- movs r0, 0x8
- strh r0, [r5, 0x32]
- ldr r0, _080B1118 @ =sub_80B111C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1110: .4byte gUnknown_2037F1B
-_080B1114: .4byte gUnknown_2037F1A
-_080B1118: .4byte sub_80B111C
- thumb_func_end sub_80B107C
-
- thumb_func_start sub_80B111C
-sub_80B111C: @ 80B111C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB4
- bne _080B1178
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080B1180 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080B1184 @ =sub_807563C
- str r0, [r4, 0x1C]
-_080B1178:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1180: .4byte move_anim_8074EE0
-_080B1184: .4byte sub_807563C
- thumb_func_end sub_80B111C
-
- thumb_func_start sub_80B1188
-sub_80B1188: @ 80B1188
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B11D4 @ =gUnknown_2037F02
- ldrh r0, [r4]
- strh r0, [r5, 0x20]
- movs r2, 0x78
- strh r2, [r5, 0x22]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- adds r0, 0x36
- adds r1, r5, 0
- adds r1, 0x38
- lsls r2, 8
- bl sub_80765C0
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080B11D8 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080B11DC @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080B11E0 @ =sub_80B11E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B11D4: .4byte gUnknown_2037F02
-_080B11D8: .4byte 0x000003ff
-_080B11DC: .4byte 0xfffffc00
-_080B11E0: .4byte sub_80B11E4
- thumb_func_end sub_80B1188
-
- thumb_func_start sub_80B11E4
-sub_80B11E4: @ 80B11E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080B1236
- movs r2, 0x36
- ldrsh r0, [r7, r2]
- movs r2, 0x38
- ldrsh r1, [r7, r2]
- bl sub_80765C8
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- subs r4, r0
- adds r0, r7, 0
- adds r0, 0x36
- adds r1, r7, 0
- adds r1, 0x38
- adds r2, r4, 0
- bl sub_80765C0
- asrs r4, 8
- strh r4, [r7, 0x22]
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x8
- negs r0, r0
- cmp r4, r0
- bge _080B122E
- adds r0, r7, 0
- bl DestroyAnimSprite
- b _080B128C
-_080B122E:
- ldrh r0, [r7, 0x2E]
- subs r0, 0x1
- strh r0, [r7, 0x2E]
- b _080B128C
-_080B1236:
- ldr r4, _080B1298 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r2, _080B129C @ =gUnknown_2037F1B
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0x2
- bl sub_8074480
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- subs r4, r6
- strh r4, [r7, 0x2E]
- lsrs r0, 24
- subs r0, r5
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x20]
- lsls r0, 4
- strh r0, [r7, 0x32]
- ldrh r0, [r7, 0x22]
- lsls r0, 4
- strh r0, [r7, 0x34]
- ldr r0, _080B12A0 @ =sub_80B12A4
- str r0, [r7, 0x1C]
-_080B128C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1298: .4byte gUnknown_2037F1A
-_080B129C: .4byte gUnknown_2037F1B
-_080B12A0: .4byte sub_80B12A4
- thumb_func_end sub_80B11E4
-
- thumb_func_start sub_80B12A4
-sub_80B12A4: @ 80B12A4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080B12DE
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080B12DE
- cmp r1, 0x78
- ble _080B12E4
-_080B12DE:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080B12E4:
- pop {r0}
- bx r0
- thumb_func_end sub_80B12A4
-
- thumb_func_start sub_80B12E8
-sub_80B12E8: @ 80B12E8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B131C @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B132C
- ldr r4, _080B1320 @ =sBattler_AI
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080B1324 @ =gUnknown_2037F1B
- ldrb r4, [r0]
- ldr r0, _080B1328 @ =gUnknown_2037F1A
- b _080B1332
- .align 2, 0
-_080B131C: .4byte gUnknown_2037F02
-_080B1320: .4byte sBattler_AI
-_080B1324: .4byte gUnknown_2037F1B
-_080B1328: .4byte gUnknown_2037F1A
-_080B132C:
- ldr r0, _080B1364 @ =gUnknown_2037F1A
- ldrb r4, [r0]
- ldr r0, _080B1368 @ =gUnknown_2037F1B
-_080B1332:
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B136C
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- b _080B1386
- .align 2, 0
-_080B1364: .4byte gUnknown_2037F1A
-_080B1368: .4byte gUnknown_2037F1B
-_080B136C:
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B138C
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
-_080B1386:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080B138C:
- movs r0, 0x10
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080B13CC @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080B13D0 @ =sub_807563C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B13CC: .4byte DestroyAnimSprite
-_080B13D0: .4byte sub_807563C
- thumb_func_end sub_80B12E8
-
- thumb_func_start sub_80B13D4
-sub_80B13D4: @ 80B13D4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080B13EA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B13EA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B13D4
-
- thumb_func_start sub_80B13F8
-sub_80B13F8: @ 80B13F8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080B1474 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080B1478 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1]
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x36]
- ldr r0, _080B147C @ =gUnknown_2037F16
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B1442
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080B1442:
- movs r0, 0x1
- ands r6, r0
- cmp r6, 0
- beq _080B1456
- ldrh r0, [r5, 0x32]
- negs r0, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
-_080B1456:
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x32]
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x26]
- ldr r0, _080B1480 @ =sub_80B13D4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1474: .4byte gUnknown_2037F1B
-_080B1478: .4byte gUnknown_2037F02
-_080B147C: .4byte gUnknown_2037F16
-_080B1480: .4byte sub_80B13D4
- thumb_func_end sub_80B13F8
-
- thumb_func_start sub_80B1484
-sub_80B1484: @ 80B1484
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080B149C @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B14A0
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075160
- b _080B14A8
- .align 2, 0
-_080B149C: .4byte gUnknown_2037F02
-_080B14A0:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075114
-_080B14A8:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B14BC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- b _080B14D2
-_080B14BC:
- ldr r0, _080B14E4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B14D2
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080B14D2:
- ldr r0, _080B14E8 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _080B14EC @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B14E4: .4byte gUnknown_2037F1A
-_080B14E8: .4byte sub_8074F6C
-_080B14EC: .4byte DestroyAnimSprite
- thumb_func_end sub_80B1484
-
- thumb_func_start sub_80B14F0
-sub_80B14F0: @ 80B14F0
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B152A
- ldrh r0, [r4, 0x30]
- adds r0, 0x28
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080B152A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B152A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B14F0
-
- thumb_func_start sub_80B1530
-sub_80B1530: @ 80B1530
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080B1560 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B1568
- cmp r0, 0x1
- bgt _080B1582
- cmp r0, 0
- bne _080B1582
- movs r0, 0
- bl sub_8075458
- ldr r0, _080B1564 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r4, 0x18]
- b _080B157A
- .align 2, 0
-_080B1560: .4byte gTasks
-_080B1564: .4byte gUnknown_2037F02
-_080B1568:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080B158E
-_080B157A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B158E
-_080B1582:
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
-_080B158E:
- movs r2, 0xB0
- lsls r2, 4
- adds r0, r2, 0
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldr r0, _080B15BC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B15C4
- ldr r1, _080B15C0 @ =gUnknown_2022980
- ldrh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r7, r1, 0
- b _080B15D4
- .align 2, 0
-_080B15BC: .4byte gUnknown_2037F1B
-_080B15C0: .4byte gUnknown_2022980
-_080B15C4:
- ldr r2, _080B1614 @ =gUnknown_2022980
- ldrh r1, [r4, 0x1A]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r7, r2, 0
-_080B15D4:
- ldr r3, _080B1618 @ =gUnknown_2022982
- ldrh r2, [r4, 0x1C]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- movs r0, 0xFF
- ldrb r1, [r4, 0x1A]
- movs r5, 0
- strh r1, [r4, 0x1A]
- ands r0, r2
- strh r0, [r4, 0x1C]
- ldr r0, _080B161C @ =gUnknown_2037F02
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B160C
- strh r5, [r7]
- strh r5, [r3]
- movs r0, 0x1
- bl sub_8075458
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080B160C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1614: .4byte gUnknown_2022980
-_080B1618: .4byte gUnknown_2022982
-_080B161C: .4byte gUnknown_2037F02
- thumb_func_end sub_80B1530
-
- thumb_func_start sub_80B1620
-sub_80B1620: @ 80B1620
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B1674 @ =gUnknown_2037F02
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B1636
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080B1636:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r4, _080B1678 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080B167C @ =0x0000ffe2
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_8075068
- ldr r0, _080B1680 @ =sub_80B1684
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1674: .4byte gUnknown_2037F02
-_080B1678: .4byte gUnknown_2037F1B
-_080B167C: .4byte 0x0000ffe2
-_080B1680: .4byte sub_80B1684
- thumb_func_end sub_80B1620
-
- thumb_func_start sub_80B1684
-sub_80B1684: @ 80B1684
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B1698
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B1698:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B1684
-
- thumb_func_start sub_80B16A0
-sub_80B16A0: @ 80B16A0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r5, _080B1714 @ =gUnknown_2037F02
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080B16B8
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080B16B8:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080B1718 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- mov r6, sp
- adds r6, 0x2
- movs r1, 0x1
- mov r2, sp
- adds r3, r6, 0
- bl sub_8076D9C
- ldr r0, _080B171C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B16E6
- ldrh r0, [r5, 0x8]
- negs r0, r0
- strh r0, [r5, 0x8]
-_080B16E6:
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- mov r1, sp
- ldrh r0, [r5, 0x8]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- ldrh r6, [r6]
- adds r0, r6
- strh r0, [r4, 0x36]
- ldr r0, _080B1720 @ =0x0000ffe2
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_8075068
- ldr r0, _080B1724 @ =sub_80B1728
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1714: .4byte gUnknown_2037F02
-_080B1718: .4byte gUnknown_2037F1B
-_080B171C: .4byte gUnknown_2037F1A
-_080B1720: .4byte 0x0000ffe2
-_080B1724: .4byte sub_80B1728
- thumb_func_end sub_80B16A0
-
- thumb_func_start sub_80B1728
-sub_80B1728: @ 80B1728
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B173C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B173C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B1728
-
- thumb_func_start sub_80B1744
-sub_80B1744: @ 80B1744
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B1790 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80754B8
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x38]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x3A]
- ldr r0, _080B1794 @ =sub_80B1798
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1790: .4byte gUnknown_2037F02
-_080B1794: .4byte sub_80B1798
- thumb_func_end sub_80B1744
-
- thumb_func_start sub_80B1798
-sub_80B1798: @ 80B1798
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074D00
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- subs r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B17BE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B17BE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B1798
-
- thumb_func_start sub_80B17C4
-sub_80B17C4: @ 80B17C4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080B1824 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_8076D9C
- ldr r0, _080B1828 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B17F0
- ldr r1, _080B182C @ =gUnknown_2037F02
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080B17F0:
- ldr r0, _080B182C @ =gUnknown_2037F02
- ldrh r2, [r0]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- ldrh r3, [r0, 0x8]
- strh r3, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- adds r2, r0
- strh r2, [r4, 0x32]
- adds r1, r3
- strh r1, [r4, 0x36]
- ldr r0, _080B1830 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080B1834 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1824: .4byte gUnknown_2037F1B
-_080B1828: .4byte gUnknown_2037F1A
-_080B182C: .4byte gUnknown_2037F02
-_080B1830: .4byte sub_8075590
-_080B1834: .4byte DestroyAnimSprite
- thumb_func_end sub_80B17C4
-
- thumb_func_start sub_80B1838
-sub_80B1838: @ 80B1838
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B1850 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080B1854
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- b _080B188A
- .align 2, 0
-_080B1850: .4byte gUnknown_2037F02
-_080B1854:
- ldr r0, _080B1894 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_8076D9C
- ldr r0, _080B1898 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B187A
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080B187A:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080B188A:
- ldr r0, _080B189C @ =sub_80B18A0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1894: .4byte gUnknown_2037F1B
-_080B1898: .4byte gUnknown_2037F1A
-_080B189C: .4byte sub_80B18A0
- thumb_func_end sub_80B1838
-
- thumb_func_start sub_80B18A0
-sub_80B18A0: @ 80B18A0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B18DC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B18DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B18A0
-
- thumb_func_start sub_80B18E4
-sub_80B18E4: @ 80B18E4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075114
- ldrh r0, [r4, 0x22]
- adds r0, 0x14
- strh r0, [r4, 0x22]
- movs r0, 0xBF
- strh r0, [r4, 0x30]
- ldr r1, _080B1908 @ =sub_80B190C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1908: .4byte sub_80B190C
- thumb_func_end sub_80B18E4
-
- thumb_func_start sub_80B190C
-sub_80B190C: @ 80B190C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x47
- bne _080B1946
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B1946:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B190C
-
- thumb_func_start sub_80B194C
-sub_80B194C: @ 80B194C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B197C @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r1, _080B1980 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- ldr r0, _080B1984 @ =0x00002719
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldr r0, _080B1988 @ =sub_80B198C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B197C: .4byte gTasks
-_080B1980: .4byte gUnknown_2037F02
-_080B1984: .4byte 0x00002719
-_080B1988: .4byte sub_80B198C
- thumb_func_end sub_80B194C
-
- thumb_func_start sub_80B198C
-sub_80B198C: @ 80B198C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080B1A0C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xA
- ldrsh r1, [r3, r4]
- adds r7, r2, 0
- cmp r0, r1
- bne _080B19EA
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrb r0, [r3, 0xC]
- ldr r2, _080B1A10 @ =gPlttBufferFaded
- lsls r0, 4
- movs r3, 0x84
- lsls r3, 1
- adds r1, r0, r3
- lsls r1, 1
- adds r1, r2
- ldrh r6, [r1]
- movs r4, 0x7
- mov r12, r0
- ldr r0, _080B1A14 @ =0x00000107
- add r0, r12
- lsls r0, 1
- adds r3, r0, r2
-_080B19D2:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _080B19D2
- ldr r0, _080B1A18 @ =0x00000101
- add r0, r12
- lsls r0, 1
- adds r0, r2
- strh r6, [r0]
-_080B19EA:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080B1A04
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B1A04:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1A0C: .4byte gTasks
-_080B1A10: .4byte gPlttBufferFaded
-_080B1A14: .4byte 0x00000107
-_080B1A18: .4byte 0x00000101
- thumb_func_end sub_80B198C
-
- thumb_func_start sub_80B1A1C
-sub_80B1A1C: @ 80B1A1C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080B1A88 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B1A3C
- ldr r1, _080B1A8C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080B1A3C:
- ldr r4, _080B1A8C @ =gUnknown_2037F02
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r5, _080B1A90 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080B1A94 @ =sub_8074F50
- str r0, [r6, 0x1C]
- ldr r1, _080B1A98 @ =sub_80B1A9C
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1A88: .4byte gUnknown_2037F1A
-_080B1A8C: .4byte gUnknown_2037F02
-_080B1A90: .4byte gUnknown_2037F1B
-_080B1A94: .4byte sub_8074F50
-_080B1A98: .4byte sub_80B1A9C
- thumb_func_end sub_80B1A1C
-
- thumb_func_start sub_80B1A9C
-sub_80B1A9C: @ 80B1A9C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080B1AB0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B1AB0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B1A9C
-
- thumb_func_start sub_80B1AB8
-sub_80B1AB8: @ 80B1AB8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B1B54 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B1AE4
- ldr r1, _080B1B58 @ =gUnknown_2037F02
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080B1AE4:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B1AFC
- ldr r0, _080B1B58 @ =gUnknown_2037F02
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080B1AFC:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- ldr r2, _080B1B58 @ =gUnknown_2037F02
- ldrh r1, [r2]
- ldrh r3, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x20]
- lsrs r0, 24
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x2E]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080B1B60
- ldr r4, _080B1B5C @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080B1B72
- .align 2, 0
-_080B1B54: .4byte gUnknown_2037F1A
-_080B1B58: .4byte gUnknown_2037F02
-_080B1B5C: .4byte gUnknown_2037F1B
-_080B1B60:
- ldr r0, _080B1BA0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_8076D9C
-_080B1B72:
- ldr r4, _080B1BA4 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- ldrh r3, [r5, 0x36]
- adds r0, r3
- strh r0, [r5, 0x36]
- ldr r0, _080B1BA8 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080B1BAC @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1BA0: .4byte gUnknown_2037F1B
-_080B1BA4: .4byte gUnknown_2037F02
-_080B1BA8: .4byte sub_8075590
-_080B1BAC: .4byte DestroyAnimSprite
- thumb_func_end sub_80B1AB8
-
- thumb_func_start sub_80B1BB0
-sub_80B1BB0: @ 80B1BB0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080B1BEC @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080B1BF0 @ =sub_80B1BF8
- str r0, [r4, 0x1C]
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080B1BF4 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1BEC: .4byte gUnknown_2037F02
-_080B1BF0: .4byte sub_80B1BF8
-_080B1BF4: .4byte gSprites
- thumb_func_end sub_80B1BB0
-
- thumb_func_start sub_80B1BF8
-sub_80B1BF8: @ 80B1BF8
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080B1C0C
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080B1C1E
-_080B1C0C:
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
-_080B1C1E:
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080B1C36
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080B1C36:
- pop {r0}
- bx r0
- thumb_func_end sub_80B1BF8
-
- thumb_func_start sub_80B1C3C
-sub_80B1C3C: @ 80B1C3C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B1C64 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B1C6C
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldr r0, _080B1C68 @ =0x0000ffe0
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080B1C72
- .align 2, 0
-_080B1C64: .4byte gUnknown_2037F1A
-_080B1C68: .4byte 0x0000ffe0
-_080B1C6C:
- ldr r0, _080B1CB0 @ =0x0000ffe0
- strh r0, [r5, 0x20]
- strh r0, [r5, 0x22]
-_080B1C72:
- ldr r0, _080B1CB4 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080B1CB8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080B1CBC @ =sub_80B1CC0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1CB0: .4byte 0x0000ffe0
-_080B1CB4: .4byte gUnknown_2037F02
-_080B1CB8: .4byte gUnknown_2037F1B
-_080B1CBC: .4byte sub_80B1CC0
- thumb_func_end sub_80B1C3C
-
- thumb_func_start sub_80B1CC0
-sub_80B1CC0: @ 80B1CC0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80755E0
- ldrh r1, [r4, 0x34]
- lsrs r0, r1, 8
- cmp r0, 0xC8
- bls _080B1CE8
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
-_080B1CE8:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bhi _080B1D0A
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- ble _080B1D30
-_080B1D0A:
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080B1D38 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B1D30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1D38: .4byte gSprites
- thumb_func_end sub_80B1CC0
-
- thumb_func_start sub_80B1D3C
-sub_80B1D3C: @ 80B1D3C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080B1D7C
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B1D6E
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_080B1D6E:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080B1D84 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080B1D7C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1D84: .4byte gUnknown_2037EE2
- thumb_func_end sub_80B1D3C
-
- thumb_func_start sub_80B1D88
-sub_80B1D88: @ 80B1D88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r5, r7, 0
- adds r5, 0x2E
- ldr r0, _080B1DA8 @ =gUnknown_2037F02
- ldrh r1, [r0, 0xE]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080B1DB0
- ldr r0, _080B1DAC @ =gUnknown_2037F1A
- b _080B1DB2
- .align 2, 0
-_080B1DA8: .4byte gUnknown_2037F02
-_080B1DAC: .4byte gUnknown_2037F1A
-_080B1DB0:
- ldr r0, _080B1E5C @ =gUnknown_2037F1B
-_080B1DB2:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B1DC8
- ldr r1, _080B1E60 @ =gUnknown_2037F02
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080B1DC8:
- adds r0, r6, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080B1E60 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- ldrh r1, [r4, 0x2]
- lsrs r0, 24
- adds r1, r0, r1
- strh r1, [r7, 0x22]
- lsls r1, 8
- strh r1, [r5, 0x8]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 1
- ldrh r2, [r5, 0xE]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0xE]
- ldrb r0, [r5]
- movs r2, 0x4
- mov r8, r2
- mov r1, r8
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r4, 0x4]
- ldrb r1, [r4, 0x4]
- strh r1, [r5, 0x2]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x4]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x6]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0xC]
- subs r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x7F
- bhi _080B1EBE
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B1E64
- adds r0, r6, 0
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r7, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- b _080B1E7C
- .align 2, 0
-_080B1E5C: .4byte gUnknown_2037F1B
-_080B1E60: .4byte gUnknown_2037F02
-_080B1E64:
- adds r0, r6, 0
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
-_080B1E7C:
- ldrb r1, [r5, 0xE]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r5, 0xE]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _080B1F1E
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- b _080B1F16
-_080B1EBE:
- adds r0, r6, 0
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- ldrb r0, [r5, 0xE]
- movs r4, 0x1
- orrs r0, r4
- strb r0, [r5, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080B1F1E
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- ands r1, r4
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- mov r2, r8
- orrs r0, r2
-_080B1F16:
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
-_080B1F1E:
- ldrh r1, [r5, 0x2]
- lsrs r1, 6
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r3, _080B1F88 @ =gUnknown_825E074
- ldrh r0, [r5, 0x2]
- lsls r0, 1
- adds r0, r3
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldrb r0, [r5, 0xC]
- muls r0, r1
- asrs r0, 8
- strh r0, [r7, 0x24]
- ldrb r2, [r7, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r1, 0x24
- ldrsh r0, [r7, r1]
- negs r0, r0
- asrs r0, 1
- ldrb r5, [r5, 0xA]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r4, [r1]
- ldr r1, _080B1F8C @ =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r4, [r2, 0x2]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldr r0, _080B1F90 @ =sub_80B1F94
- str r0, [r7, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1F88: .4byte gUnknown_825E074
-_080B1F8C: .4byte gOamMatrices
-_080B1F90: .4byte sub_80B1F94
- thumb_func_end sub_80B1D88
-
- thumb_func_start sub_80B1F94
-sub_80B1F94: @ 80B1F94
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r6, 0
- adds r4, r5, 0
- adds r4, 0x2E
- ldrb r2, [r4]
- movs r7, 0x1
- movs r0, 0x1
- mov r9, r0
- ands r0, r2
- cmp r0, 0
- beq _080B1FCE
- ldrb r0, [r4, 0x1]
- adds r1, r0, 0
- adds r1, 0xFF
- strb r1, [r4, 0x1]
- lsls r0, 24
- cmp r0, 0
- beq _080B1FC2
- b _080B24AA
-_080B1FC2:
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080B24AA
-_080B1FCE:
- ldrh r0, [r4, 0x2]
- lsrs r1, r0, 6
- mov r12, r0
- cmp r1, 0x1
- bne _080B1FDA
- b _080B20FE
-_080B1FDA:
- cmp r1, 0x1
- bgt _080B1FE4
- cmp r1, 0
- beq _080B1FF2
- b _080B23F0
-_080B1FE4:
- cmp r1, 0x2
- bne _080B1FEA
- b _080B21F2
-_080B1FEA:
- cmp r1, 0x3
- bne _080B1FF0
- b _080B22E6
-_080B1FF0:
- b _080B23F0
-_080B1FF2:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080B2006
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080B20F4
-_080B2006:
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080B2028
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- strb r1, [r4]
- strb r6, [r4, 0x1]
- b _080B20F4
-_080B2028:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080B20F4
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B20E6
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B20B6
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B209C
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B20D4
-_080B209C:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B20D4
-_080B20B6:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B20CA
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _080B20D2
-_080B20CA:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_080B20D2:
- strb r0, [r1]
-_080B20D4:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_080B20E6:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_080B20F4:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r4]
- b _080B23F0
-_080B20FE:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080B210C
- movs r0, 0x8
- orrs r0, r2
- b _080B2114
-_080B210C:
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080B211C
- adds r0, r2, 0
-_080B2114:
- orrs r0, r7
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080B21E8
-_080B211C:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080B21E8
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B21DA
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B21AA
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B2190
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B21C8
-_080B2190:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B21C8
-_080B21AA:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B21BE
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _080B21C6
-_080B21BE:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_080B21C6:
- strb r0, [r1]
-_080B21C8:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_080B21DA:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_080B21E8:
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x10
- b _080B23EC
-_080B21F2:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080B2200
- movs r0, 0x8
- orrs r0, r2
- b _080B2208
-_080B2200:
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080B2210
- adds r0, r2, 0
-_080B2208:
- orrs r0, r7
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080B22DC
-_080B2210:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080B22DC
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B22CE
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B229E
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B2284
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B22BC
-_080B2284:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B22BC
-_080B229E:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B22B2
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _080B22BA
-_080B22B2:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_080B22BA:
- strb r0, [r1]
-_080B22BC:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_080B22CE:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_080B22DC:
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x20
- b _080B23EC
-_080B22E6:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080B22F6
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r4]
- b _080B23E4
-_080B22F6:
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080B2318
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- strb r1, [r4]
- strb r6, [r4, 0x1]
- b _080B23E4
-_080B2318:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080B23E4
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B23D6
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B23A6
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B238C
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B23C4
-_080B238C:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080B23C4
-_080B23A6:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080B23BA
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _080B23C2
-_080B23BA:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_080B23C2:
- strb r0, [r1]
-_080B23C4:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_080B23D6:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_080B23E4:
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x30
-_080B23EC:
- orrs r1, r0
- strb r1, [r4]
-_080B23F0:
- ldrb r1, [r4]
- lsls r1, 30
- lsrs r1, 31
- adds r0, r4, 0
- adds r0, 0xC
- adds r0, r1
- ldrb r1, [r0]
- ldr r3, _080B2478 @ =gUnknown_825E074
- mov r2, r12
- lsls r0, r2, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- negs r0, r0
- asrs r0, 1
- ldrb r1, [r4, 0xA]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r6, [r1]
- ldr r1, _080B247C @ =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r6, [r2, 0x2]
- lsls r0, r6, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldrh r0, [r4, 0x6]
- ldrh r2, [r4, 0x8]
- adds r0, r2
- strh r0, [r4, 0x8]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080B2480
- ldrh r0, [r4, 0x4]
- subs r1, 0x1
- ands r1, r0
- ldrh r0, [r4, 0x2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2]
- b _080B2490
- .align 2, 0
-_080B2478: .4byte gUnknown_825E074
-_080B247C: .4byte gOamMatrices
-_080B2480:
- ldrh r0, [r4, 0x4]
- ldr r1, _080B24B8 @ =0x00007fff
- ands r1, r0
- ldrh r2, [r4, 0x2]
- adds r1, r2
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x2]
-_080B2490:
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- ldrh r0, [r4, 0xE]
- lsrs r0, 1
- cmp r1, r0
- blt _080B24AA
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080B24BC @ =sub_80B1D3C
- str r0, [r5, 0x1C]
-_080B24AA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B24B8: .4byte 0x00007fff
-_080B24BC: .4byte sub_80B1D3C
- thumb_func_end sub_80B1F94
-
- thumb_func_start sub_80B24C0
-sub_80B24C0: @ 80B24C0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _080B2508 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r5, _080B250C @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080B2510 @ =sub_8075DF4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2508: .4byte gUnknown_2037F1B
-_080B250C: .4byte gUnknown_2037F1A
-_080B2510: .4byte sub_8075DF4
- thumb_func_end sub_80B24C0
-
- thumb_func_start sub_80B2514
-sub_80B2514: @ 80B2514
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _080B2554 @ =gUnknown_2037F02
- ldrh r0, [r5]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x34]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B25C4
- ldr r0, _080B2558 @ =gUnknown_2023BD6
- ldr r1, _080B255C @ =gUnknown_2037F1B
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B2560
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- b _080B256E
- .align 2, 0
-_080B2554: .4byte gUnknown_2037F02
-_080B2558: .4byte gUnknown_2023BD6
-_080B255C: .4byte gUnknown_2037F1B
-_080B2560:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
-_080B256E:
- strh r0, [r4, 0x3C]
- ldr r0, _080B259C @ =gUnknown_2037F02
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080B25A4
- ldr r0, _080B25A0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080B25D8
- .align 2, 0
-_080B259C: .4byte gUnknown_2037F02
-_080B25A0: .4byte gUnknown_2037F1B
-_080B25A4:
- ldr r0, _080B25C0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_8076884
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080B25D8
- .align 2, 0
-_080B25C0: .4byte gUnknown_2037F1B
-_080B25C4:
- ldr r0, _080B267C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x3C]
-_080B25D8:
- ldr r5, _080B2680 @ =gUnknown_825E074
- ldrh r3, [r4, 0x30]
- movs r1, 0xFF
- ands r1, r3
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r4, 0x36]
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x38]
- strh r2, [r4, 0x3A]
- strh r2, [r4, 0x26]
- strh r2, [r4, 0x24]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r6, r0, 27
- lsls r3, 16
- lsrs r3, 24
- strh r3, [r4, 0x30]
- bl Random
- lsls r0, 16
- asrs r7, r0, 16
- movs r0, 0x80
- lsls r0, 8
- ands r0, r7
- cmp r0, 0
- beq _080B2622
- ldrh r1, [r4, 0x30]
- movs r0, 0xFF
- subs r0, r1
- strh r0, [r4, 0x30]
-_080B2622:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r3, _080B2684 @ =gOamMatrices
- lsls r2, r6, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _080B2672
- adds r2, r4, 0
- adds r2, 0x2A
- movs r1, 0x1
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r3]
- orrs r0, r1
- strb r0, [r3]
-_080B2672:
- ldr r0, _080B2688 @ =sub_80B268C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B267C: .4byte gUnknown_2037F1B
-_080B2680: .4byte gUnknown_825E074
-_080B2684: .4byte gOamMatrices
-_080B2688: .4byte sub_80B268C
- thumb_func_end sub_80B2514
-
- thumb_func_start sub_80B268C
-sub_80B268C: @ 80B268C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r4, 0
- adds r5, 0x2E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- mov r8, r1
- movs r7, 0
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080B2770
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r6, r0, 8
- strh r6, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r3, r0, 8
- strh r3, [r4, 0x26]
- ldrh r2, [r4, 0x34]
- movs r1, 0xFF
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- ands r1, r2
- cmp r0, r1
- blt _080B2770
- ldrh r0, [r4, 0x20]
- adds r0, r6
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- strh r7, [r4, 0x24]
- strh r7, [r4, 0x26]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x10
- bl memcpy
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldrh r0, [r4, 0x22]
- lsls r0, 8
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0, 0x6]
- lsrs r1, r0, 8
- strh r1, [r5, 0x6]
- strh r7, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B2740
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080B2738
- ldr r0, _080B2734 @ =0x00008001
- b _080B274E
- .align 2, 0
-_080B2734: .4byte 0x00008001
-_080B2738:
- ldr r0, _080B273C @ =0x00008002
- b _080B274E
- .align 2, 0
-_080B273C: .4byte 0x00008002
-_080B2740:
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080B274C
- movs r0, 0x1
- b _080B274E
-_080B274C:
- movs r0, 0x2
-_080B274E:
- strh r0, [r5, 0x4]
- mov r0, sp
- ldrh r0, [r0, 0x4]
- lsrs r0, 8
- strb r0, [r5, 0xC]
- subs r0, 0x2
- strb r0, [r5, 0xD]
- mov r0, sp
- ldrh r1, [r0, 0xE]
- lsls r1, 1
- ldrh r2, [r5, 0xE]
- movs r0, 0x1
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _080B277C @ =sub_80B1F94
- str r0, [r4, 0x1C]
-_080B2770:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B277C: .4byte sub_80B1F94
- thumb_func_end sub_80B268C
-
- thumb_func_start sub_80B2780
-sub_80B2780: @ 80B2780
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B2798 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B279C
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075160
- b _080B27A4
- .align 2, 0
-_080B2798: .4byte gUnknown_2037F02
-_080B279C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075114
-_080B27A4:
- ldr r4, _080B280C @ =gUnknown_2037F02
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B27BC
- ldr r0, _080B2810 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B27D2
-_080B27BC:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080B27D8
- ldr r0, _080B2814 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B27D8
-_080B27D2:
- ldrh r0, [r5, 0x20]
- adds r0, 0x8
- strh r0, [r5, 0x20]
-_080B27D8:
- ldr r4, _080B280C @ =gUnknown_2037F02
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl SeekSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
- strh r0, [r5, 0x20]
- ldr r0, _080B2818 @ =0x00000ccc
- strh r0, [r5, 0x30]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- strh r1, [r5, 0x2E]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080B281C @ =sub_80B2820
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B280C: .4byte gUnknown_2037F02
-_080B2810: .4byte gUnknown_2037F1A
-_080B2814: .4byte gUnknown_2037F1B
-_080B2818: .4byte 0x00000ccc
-_080B281C: .4byte sub_80B2820
- thumb_func_end sub_80B2780
-
- thumb_func_start sub_80B2820
-sub_80B2820: @ 80B2820
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080B284A
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl StartSpriteAnim
-_080B284A:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080B2862
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B2862:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B2820
-
- thumb_func_start sub_80B2868
-sub_80B2868: @ 80B2868
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080B2900 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x8]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080B28E2
- ldr r1, _080B2904 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- movs r5, 0xD
- negs r5, r5
- adds r1, r5, 0
- bl Sin
- ldr r4, _080B2908 @ =gUnknown_2037F02
- strh r0, [r4]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- adds r1, r5, 0
- bl Cos
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4, 0x4]
- movs r0, 0x3
- strh r0, [r4, 0x6]
- ldr r0, _080B290C @ =gUnknown_83E7C98
- mov r8, r0
- ldr r5, _080B2910 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0x3
- bl CreateSpriteAndAnimate
-_080B28E2:
- ldrh r0, [r7, 0x8]
- adds r0, 0x8
- strh r0, [r7, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080B28F6
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080B28F6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2900: .4byte gTasks
-_080B2904: .4byte gUnknown_2037EE2
-_080B2908: .4byte gUnknown_2037F02
-_080B290C: .4byte gUnknown_83E7C98
-_080B2910: .4byte gUnknown_2037F1B
- thumb_func_end sub_80B2868
-
- thumb_func_start sub_80B2914
-sub_80B2914: @ 80B2914
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B2926
- cmp r0, 0x1
- beq _080B2958
- b _080B296C
-_080B2926:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075160
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080B2954 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080B296C
- .align 2, 0
-_080B2954: .4byte gSprites
-_080B2958:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B296C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B296C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B2914
-
- thumb_func_start sub_80B2974
-sub_80B2974: @ 80B2974
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B29AC
- cmp r0, 0x1
- bgt _080B298A
- cmp r0, 0
- beq _080B2990
- b _080B29FE
-_080B298A:
- cmp r0, 0x2
- beq _080B29C0
- b _080B29FE
-_080B2990:
- ldr r0, _080B29A8 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r4, 0x26]
- b _080B29B8
- .align 2, 0
-_080B29A8: .4byte gUnknown_2037F1B
-_080B29AC:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080B29FE
-_080B29B8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080B29FE
-_080B29C0:
- ldrh r0, [r4, 0x26]
- subs r0, 0xA
- strh r0, [r4, 0x26]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080B29FE
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080B2A04 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B29FE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2A04: .4byte gSprites
- thumb_func_end sub_80B2974
-
- thumb_func_start sub_80B2A08
-sub_80B2A08: @ 80B2A08
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080B2A44 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080B2A48 @ =sub_80B2A50
- str r0, [r4, 0x1C]
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r2, _080B2A4C @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2A44: .4byte gUnknown_2037F02
-_080B2A48: .4byte sub_80B2A50
-_080B2A4C: .4byte gSprites
- thumb_func_end sub_80B2A08
-
- thumb_func_start sub_80B2A50
-sub_80B2A50: @ 80B2A50
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080B2A64
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080B2AA8
-_080B2A64:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080B2A8A
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
- b _080B2AA8
-_080B2A8A:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B2AA8
- ldr r0, _080B2AAC @ =sub_80B2AB0
- str r0, [r2, 0x1C]
-_080B2AA8:
- pop {r0}
- bx r0
- .align 2, 0
-_080B2AAC: .4byte sub_80B2AB0
- thumb_func_end sub_80B2A50
-
- thumb_func_start sub_80B2AB0
-sub_80B2AB0: @ 80B2AB0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080B2AE0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080B2AE0:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _080B2AEE
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080B2AEE:
- pop {r0}
- bx r0
- thumb_func_end sub_80B2AB0
-
- thumb_func_start sub_80B2AF4
-sub_80B2AF4: @ 80B2AF4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080B2B08
- cmp r0, 0x1
- beq _080B2B60
- b _080B2BCC
-_080B2B08:
- ldr r0, _080B2B18 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080B2B20
- ldr r4, _080B2B1C @ =gUnknown_2037F1A
- b _080B2B22
- .align 2, 0
-_080B2B18: .4byte gUnknown_2037F02
-_080B2B1C: .4byte gUnknown_2037F1A
-_080B2B20:
- ldr r4, _080B2B5C @ =gUnknown_2037F1B
-_080B2B22:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- movs r3, 0x80
- lsls r3, 2
- strh r3, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075A1C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080B2BCC
- .align 2, 0
-_080B2B5C: .4byte gUnknown_2037F1B
-_080B2B60:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0xB
- bgt _080B2B6E
- ldrh r0, [r5, 0x30]
- subs r0, 0x28
- b _080B2B72
-_080B2B6E:
- ldrh r0, [r5, 0x30]
- adds r0, 0x28
-_080B2B72:
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x30
- ldrsh r3, [r5, r0]
- str r1, [sp]
- adds r0, r5, 0
- bl sub_8075A1C
- ldrb r1, [r5, 0x3]
- lsls r1, 26
- lsrs r1, 27
- movs r0, 0xF4
- lsls r0, 6
- ldr r2, _080B2BD4 @ =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- adds r1, r0, 0x1
- cmp r1, 0x80
- ble _080B2BAC
- movs r1, 0x80
-_080B2BAC:
- movs r0, 0x40
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r1, r0, 1
- strh r1, [r5, 0x26]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x18
- bne _080B2BCC
- adds r0, r5, 0
- bl sub_8075AD8
- adds r0, r5, 0
- bl DestroyAnimSprite
-_080B2BCC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2BD4: .4byte gOamMatrices
- thumb_func_end sub_80B2AF4
-
- thumb_func_start sub_80B2BD8
-sub_80B2BD8: @ 80B2BD8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- ldr r4, _080B2BFC @ =0x000001ff
- ands r4, r0
- bl Random
- movs r1, 0x7F
- ands r1, r0
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080B2C00
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r4, r2
- b _080B2C08
- .align 2, 0
-_080B2BFC: .4byte 0x000001ff
-_080B2C00:
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r4
-_080B2C08:
- strh r0, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B2C1C
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- adds r0, r1, r0
- b _080B2C24
-_080B2C1C:
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r1
-_080B2C24:
- strh r0, [r5, 0x30]
- ldr r2, _080B2C4C @ =gUnknown_2037F02
- ldrh r0, [r2]
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- beq _080B2C40
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
-_080B2C40:
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080B2C54
- ldr r4, _080B2C50 @ =gUnknown_2037F1A
- b _080B2C56
- .align 2, 0
-_080B2C4C: .4byte gUnknown_2037F02
-_080B2C50: .4byte gUnknown_2037F1A
-_080B2C54:
- ldr r4, _080B2C80 @ =gUnknown_2037F1B
-_080B2C56:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x22]
- ldr r0, _080B2C84 @ =sub_80B2C88
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2C80: .4byte gUnknown_2037F1B
-_080B2C84: .4byte sub_80B2C88
- thumb_func_end sub_80B2BD8
-
- thumb_func_start sub_80B2C88
-sub_80B2C88: @ 80B2C88
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B2CA0
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _080B2CAA
-_080B2CA0:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_080B2CAA:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- strh r3, [r4, 0x2E]
- adds r0, r2, 0
- subs r0, 0x20
- strh r0, [r4, 0x30]
- lsls r0, r3, 16
- cmp r0, 0
- bge _080B2CCA
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080B2CCA:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080B2CDE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B2CDE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B2C88
-
- thumb_func_start sub_80B2CE4
-sub_80B2CE4: @ 80B2CE4
- movs r1, 0
- strh r1, [r0, 0x3A]
- movs r1, 0x40
- strh r1, [r0, 0x3C]
- ldr r1, _080B2CF4 @ =sub_80B2CF8
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080B2CF4: .4byte sub_80B2CF8
- thumb_func_end sub_80B2CE4
-
- thumb_func_start sub_80B2CF8
-sub_80B2CF8: @ 80B2CF8
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080B2D0A
- cmp r1, 0x1
- beq _080B2D58
- b _080B2D5E
-_080B2D0A:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080B2D5E
- strh r1, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080B2D5E
- ldrb r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B2D5E
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080B2D5E
-_080B2D58:
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080B2D5E:
- pop {r0}
- bx r0
- thumb_func_end sub_80B2CF8
-
- thumb_func_start sub_80B2D64
-sub_80B2D64: @ 80B2D64
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- ldrh r4, [r0, 0x20]
- ldrh r5, [r0, 0x22]
- ldr r6, _080B2E18 @ =gUnknown_2037F1A
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r2, r8
- strh r6, [r2, 0x22]
- ldrh r0, [r2, 0x20]
- mov r9, r0
- mov r1, r9
- lsls r0, r1, 4
- strh r0, [r2, 0x36]
- lsls r0, r6, 4
- strh r0, [r2, 0x38]
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- subs r0, r4, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3A]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- subs r0, r5, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- subs r5, r6
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8075B30
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x1
- adds r2, r3, 0
- bl sub_8075A1C
- ldr r0, _080B2E1C @ =sub_80B2E20
- mov r2, r8
- str r0, [r2, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2E18: .4byte gUnknown_2037F1A
-_080B2E1C: .4byte sub_80B2E20
- thumb_func_end sub_80B2D64
-
- thumb_func_start sub_80B2E20
-sub_80B2E20: @ 80B2E20
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x3C]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x2D
- lsls r0, 16
- movs r1, 0xA5
- lsls r1, 17
- cmp r0, r1
- bhi _080B2E5A
- adds r1, r3, 0
- cmp r1, 0x9D
- bgt _080B2E5A
- movs r0, 0x2D
- negs r0, r0
- cmp r1, r0
- bge _080B2E60
-_080B2E5A:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080B2E60:
- pop {r0}
- bx r0
- thumb_func_end sub_80B2E20
-
- thumb_func_start sub_80B2E64
-sub_80B2E64: @ 80B2E64
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B2E94 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B2E9C
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B2E98 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- b _080B2EBA
- .align 2, 0
-_080B2E94: .4byte gUnknown_2037F02
-_080B2E98: .4byte gSprites
-_080B2E9C:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B2EC8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_080B2EBA:
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2EC8: .4byte gSprites
- thumb_func_end sub_80B2E64
-
- thumb_func_start sub_80B2ECC
-sub_80B2ECC: @ 80B2ECC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, _080B2F84 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B2EE8
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B2EFE
-_080B2EE8:
- ldrb r1, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r1, r6, 0
- adds r1, 0x43
- movs r0, 0xC8
- strb r0, [r1]
-_080B2EFE:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B2F5A
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r4, 0
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B2F3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8072E48
-_080B2F3C:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r7
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B2F5A
- movs r0, 0x1
- eors r5, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8072E48
-_080B2F5A:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B2F90
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080B2F90
- ldr r0, _080B2F84 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B2F88
- movs r0, 0x48
- strh r0, [r6, 0x20]
- movs r0, 0x50
- b _080B2FCA
- .align 2, 0
-_080B2F84: .4byte gUnknown_2037F1A
-_080B2F88:
- movs r0, 0xB0
- strh r0, [r6, 0x20]
- movs r0, 0x28
- b _080B2FCA
-_080B2F90:
- ldr r5, _080B3000 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B2FA6
- ldr r1, _080B3004 @ =gUnknown_2037F02
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080B2FA6:
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080B3004 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
-_080B2FCA:
- strh r0, [r6, 0x22]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B2FDC
- ldrh r0, [r6, 0x22]
- adds r0, 0x9
- strh r0, [r6, 0x22]
-_080B2FDC:
- ldr r0, _080B3004 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x2E]
- ldr r1, _080B3008 @ =sub_80B300C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3000: .4byte gUnknown_2037F1A
-_080B3004: .4byte gUnknown_2037F02
-_080B3008: .4byte sub_80B300C
- thumb_func_end sub_80B2ECC
-
- thumb_func_start sub_80B300C
-sub_80B300C: @ 80B300C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0xD
- bne _080B3038
- ldr r0, _080B3034 @ =sub_80B3044
- str r0, [r4, 0x1C]
- b _080B303C
- .align 2, 0
-_080B3034: .4byte sub_80B3044
-_080B3038:
- adds r0, r1, 0x1
- strh r0, [r4, 0x34]
-_080B303C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B300C
-
- thumb_func_start sub_80B3044
-sub_80B3044: @ 80B3044
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080B30A2
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r4, [r3, 0x2E]
- ldr r1, _080B30A8 @ =gPlttBufferFaded
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- movs r5, 0x8
- adds r6, r1, 0
- adds r1, r4, 0x7
- lsls r0, r4, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- lsls r1, 1
- adds r1, r6
-_080B307A:
- ldrh r0, [r1]
- strh r0, [r2]
- subs r1, 0x2
- subs r2, 0x2
- subs r5, 0x1
- cmp r5, 0
- bgt _080B307A
- adds r0, r4, 0x1
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080B30A2
- ldr r0, _080B30AC @ =sub_80B30B0
- str r0, [r3, 0x1C]
-_080B30A2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B30A8: .4byte gPlttBufferFaded
-_080B30AC: .4byte sub_80B30B0
- thumb_func_end sub_80B3044
-
- thumb_func_start sub_80B30B0
-sub_80B30B0: @ 80B30B0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080B3156
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B3146
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B3118
- ldr r2, _080B315C @ =gSprites
- ldr r0, _080B3160 @ =gUnknown_2023D44
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080B3118:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r6
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B3146
- ldr r2, _080B315C @ =gSprites
- ldr r0, _080B3160 @ =gUnknown_2023D44
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080B3146:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B3164 @ =sub_80B3168
- str r0, [r5, 0x1C]
-_080B3156:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B315C: .4byte gSprites
-_080B3160: .4byte gUnknown_2023D44
-_080B3164: .4byte sub_80B3168
- thumb_func_end sub_80B30B0
-
- thumb_func_start sub_80B3168
-sub_80B3168: @ 80B3168
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B31C0
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B31A6
- adds r0, r5, 0
- bl sub_8073128
-_080B31A6:
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B31C0
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8073128
-_080B31C0:
- ldr r0, _080B31CC @ =DestroyAnimSprite
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B31CC: .4byte DestroyAnimSprite
- thumb_func_end sub_80B3168
-
- thumb_func_start sub_80B31D0
-sub_80B31D0: @ 80B31D0
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B325C
- ldr r5, _080B321C @ =gUnknown_2037F02
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- movs r6, 0
- cmp r0, 0
- bne _080B31EA
- movs r6, 0x1
-_080B31EA:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B3232
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080B3232
- ldr r0, _080B3220 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B3224
- ldrh r0, [r5]
- movs r1, 0x48
- subs r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x50
- strh r0, [r4, 0x22]
- b _080B3254
- .align 2, 0
-_080B321C: .4byte gUnknown_2037F02
-_080B3220: .4byte gUnknown_2037F1A
-_080B3224:
- ldrh r0, [r5]
- adds r0, 0xB0
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x28
- strh r0, [r4, 0x22]
- b _080B3254
-_080B3232:
- ldr r0, _080B3248 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B324C
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8075160
- b _080B3254
- .align 2, 0
-_080B3248: .4byte gUnknown_2037F02
-_080B324C:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8075114
-_080B3254:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080B3270
-_080B325C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _080B3270
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080B3270:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B31D0
-
- thumb_func_start sub_80B3278
-sub_80B3278: @ 80B3278
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B32C0 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B32C8
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xA
- strh r0, [r5, 0x22]
- ldr r0, _080B32C4 @ =0x0000ffff
- b _080B32D6
- .align 2, 0
-_080B32C0: .4byte gUnknown_2037F1A
-_080B32C4: .4byte 0x0000ffff
-_080B32C8:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- subs r0, 0xA
- strh r0, [r5, 0x22]
- movs r0, 0x1
-_080B32D6:
- strh r0, [r5, 0x30]
- ldr r1, _080B32EC @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080B32F0 @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B32EC: .4byte DestroyAnimSprite
-_080B32F0: .4byte sub_8074F6C
- thumb_func_end sub_80B3278
-
- thumb_func_start sub_80B32F4
-sub_80B32F4: @ 80B32F4
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _080B3378 @ =gUnknown_2037F1A
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8076B2C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r4, r1, 16
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8076B2C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- negs r1, r1
- lsls r1, 16
- lsrs r7, r1, 16
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B333A
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080B333A:
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080B3366
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_080B3366:
- ldr r1, _080B337C @ =sub_80B3384
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080B3380 @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3378: .4byte gUnknown_2037F1A
-_080B337C: .4byte sub_80B3384
-_080B3380: .4byte sub_8074F6C
- thumb_func_end sub_80B32F4
-
- thumb_func_start sub_80B3384
-sub_80B3384: @ 80B3384
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080B33B0 @ =gUnknown_83E6FF0
- str r0, [r4, 0x10]
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldr r0, _080B33B4 @ =sub_80B33B8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B33B0: .4byte gUnknown_83E6FF0
-_080B33B4: .4byte sub_80B33B8
- thumb_func_end sub_80B3384
-
- thumb_func_start sub_80B33B8
-sub_80B33B8: @ 80B33B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B33CA
- cmp r0, 0x1
- beq _080B33F8
- b _080B3410
-_080B33CA:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B3410
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x12
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080B3410
-_080B33F8:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080B3410
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B3410:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B33B8
-
- thumb_func_start sub_80B3418
-sub_80B3418: @ 80B3418
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080B3448 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080B344C @ =gUnknown_83E700C
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080B3450 @ =sub_80B3454
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3448: .4byte gTasks
-_080B344C: .4byte gUnknown_83E700C
-_080B3450: .4byte sub_80B3454
- thumb_func_end sub_80B3418
-
- thumb_func_start sub_80B3454
-sub_80B3454: @ 80B3454
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080B347C @ =gTasks
- adds r0, r1
- bl sub_8076308
- lsls r0, 24
- cmp r0, 0
- bne _080B3474
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080B3474:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B347C: .4byte gTasks
- thumb_func_end sub_80B3454
-
- thumb_func_start sub_80B3480
-sub_80B3480: @ 80B3480
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B34CC @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- ldr r0, _080B34D0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x8
- cmp r0, 0
- beq _080B34B4
- movs r1, 0x4
-_080B34B4:
- strh r1, [r4, 0xE]
- ldrb r1, [r4, 0x8]
- ldr r2, _080B34D4 @ =gUnknown_83E702C
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080B34D8 @ =sub_80B34DC
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B34CC: .4byte gTasks
-_080B34D0: .4byte gUnknown_2037F1A
-_080B34D4: .4byte gUnknown_83E702C
-_080B34D8: .4byte sub_80B34DC
- thumb_func_end sub_80B3480
-
- thumb_func_start sub_80B34DC
-sub_80B34DC: @ 80B34DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B34FC @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B3500
- cmp r0, 0x1
- beq _080B351C
- b _080B357A
- .align 2, 0
-_080B34FC: .4byte gTasks
-_080B3500:
- adds r0, r4, 0
- bl sub_8076308
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080B357A
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080B357A
-_080B351C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B3544
- ldr r2, _080B3540 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080B357A
- .align 2, 0
-_080B3540: .4byte gSprites
-_080B3544:
- ldr r3, _080B3580 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- ldrb r0, [r4, 0x8]
- bl sub_8075980
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B357A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3580: .4byte gSprites
- thumb_func_end sub_80B34DC
-
- thumb_func_start sub_80B3584
-sub_80B3584: @ 80B3584
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B360C @ =gTasks
- adds r5, r1, r0
- movs r1, 0
- movs r0, 0x10
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- ldr r4, _080B3610 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8076B2C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8076B2C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, r6
- bcs _080B35EE
- adds r1, r6, 0
-_080B35EE:
- strh r1, [r5, 0x20]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- ldr r0, _080B3614 @ =sub_80B3618
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B360C: .4byte gTasks
-_080B3610: .4byte gUnknown_2037F1A
-_080B3614: .4byte sub_80B3618
- thumb_func_end sub_80B3584
-
- thumb_func_start sub_80B3618
-sub_80B3618: @ 80B3618
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B363C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080B3718
- cmp r1, 0x1
- bgt _080B3640
- cmp r1, 0
- beq _080B364E
- b _080B379E
- .align 2, 0
-_080B363C: .4byte gTasks
-_080B3640:
- cmp r1, 0x2
- bne _080B3646
- b _080B377A
-_080B3646:
- cmp r1, 0x3
- bne _080B364C
- b _080B3788
-_080B364C:
- b _080B379E
-_080B364E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bgt _080B365E
- b _080B379E
-_080B365E:
- strh r1, [r4, 0xA]
- ldr r0, _080B369C @ =gUnknown_83E7044
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- adds r1, 0x8
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- strh r2, [r0]
- cmp r2, 0x40
- beq _080B3702
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B36BC
- cmp r0, 0x1
- bgt _080B36A0
- cmp r0, 0
- beq _080B36AA
- b _080B3702
- .align 2, 0
-_080B369C: .4byte gUnknown_83E7044
-_080B36A0:
- cmp r0, 0x2
- beq _080B36D4
- cmp r0, 0x3
- beq _080B36EC
- b _080B3702
-_080B36AA:
- ldr r0, _080B36B8 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- b _080B36FA
- .align 2, 0
-_080B36B8: .4byte gSprites
-_080B36BC:
- ldr r0, _080B36D0 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- b _080B3700
- .align 2, 0
-_080B36D0: .4byte gSprites
-_080B36D4:
- ldr r1, _080B36E8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x26]
- b _080B3702
- .align 2, 0
-_080B36E8: .4byte gSprites
-_080B36EC:
- ldr r0, _080B3714 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080B36FA:
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080B3700:
- strh r0, [r1, 0x26]
-_080B3702:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080B379E
- b _080B377A
- .align 2, 0
-_080B3714: .4byte gSprites
-_080B3718:
- ldrh r0, [r4, 0xA]
- ands r1, r0
- cmp r1, 0
- beq _080B3728
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080B372E
-_080B3728:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
-_080B372E:
- ldrh r1, [r4, 0x10]
- lsls r1, 8
- ldrh r0, [r4, 0xE]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _080B379E
- movs r5, 0x8
- adds r6, r4, 0
- adds r6, 0x8
-_080B3754:
- lsls r0, r5, 1
- adds r1, r6, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x40
- beq _080B3770
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B3784 @ =gSprites
- adds r0, r1
- bl DestroySprite
-_080B3770:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xC
- bls _080B3754
-_080B377A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B379E
- .align 2, 0
-_080B3784: .4byte gSprites
-_080B3788:
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B379E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3618
-
- thumb_func_start sub_80B37A4
-sub_80B37A4: @ 80B37A4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080B37CE
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080B37CE:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080B37E0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B37E0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B37A4
-
- thumb_func_start sub_80B37EC
-sub_80B37EC: @ 80B37EC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080B3828 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080B3818
- ldr r4, _080B382C @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080B3818:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080B3830 @ =sub_80B37A4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3828: .4byte gUnknown_2037F02
-_080B382C: .4byte gUnknown_2037F1A
-_080B3830: .4byte sub_80B37A4
- thumb_func_end sub_80B37EC
-
- thumb_func_start sub_80B3834
-sub_80B3834: @ 80B3834
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B3890 @ =gTasks
- adds r5, r1, r0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B38D8
- ldr r0, _080B3894 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080B38A4
- ldr r0, _080B3898 @ =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, _080B389C @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_8076B2C
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080B38A0 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_8076B2C
- subs r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x8
- b _080B3962
- .align 2, 0
-_080B3890: .4byte gTasks
-_080B3894: .4byte gUnknown_2037F02
-_080B3898: .4byte 0x0000fff6
-_080B389C: .4byte gUnknown_2037F1B
-_080B38A0: .4byte gUnknown_2037F1A
-_080B38A4:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080B38D0 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_8076B2C
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8076B2C
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080B38D4 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_8076B2C
- adds r0, 0x8
- b _080B3956
- .align 2, 0
-_080B38D0: .4byte gUnknown_2037F1A
-_080B38D4: .4byte gUnknown_2037F1B
-_080B38D8:
- ldr r0, _080B391C @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080B392C
- ldr r0, _080B3920 @ =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, _080B3924 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_8076B2C
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080B3928 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_8076B2C
- adds r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x8
- b _080B3962
- .align 2, 0
-_080B391C: .4byte gUnknown_2037F02
-_080B3920: .4byte 0x0000fff6
-_080B3924: .4byte gUnknown_2037F1B
-_080B3928: .4byte gUnknown_2037F1A
-_080B392C:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080B3974 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_8076B2C
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8076B2C
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080B3978 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_8076B2C
- subs r0, 0x8
-_080B3956:
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8076B2C
- subs r0, 0x8
-_080B3962:
- strh r0, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0xA]
- ldr r0, _080B397C @ =sub_80B3980
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3974: .4byte gUnknown_2037F1A
-_080B3978: .4byte gUnknown_2037F1B
-_080B397C: .4byte sub_80B3980
- thumb_func_end sub_80B3834
-
- thumb_func_start sub_80B3980
-sub_80B3980: @ 80B3980
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B39A0 @ =gTasks
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _080B39A4
- cmp r1, 0x1
- beq _080B3A18
- b _080B3A2C
- .align 2, 0
-_080B39A0: .4byte gTasks
-_080B39A4:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080B3A2C
- strh r1, [r5, 0xA]
- ldr r0, _080B3A10 @ =gUnknown_83E7114
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- movs r3, 0x20
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080B39F8
- ldr r0, _080B3A14 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x22]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x36]
- ldrh r0, [r5, 0x1C]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_8075068
- ldrb r0, [r5, 0xC]
- movs r1, 0x3
- ands r1, r0
- adds r0, r4, 0
- bl StartSpriteAffineAnim
-_080B39F8:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080B3A2C
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080B3A2C
- .align 2, 0
-_080B3A10: .4byte gUnknown_83E7114
-_080B3A14: .4byte gSprites
-_080B3A18:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _080B3A2C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B3A2C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3980
-
- thumb_func_start sub_80B3A34
-sub_80B3A34: @ 80B3A34
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B3A52
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080B3A52:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3A34
-
- thumb_func_start sub_80B3A58
-sub_80B3A58: @ 80B3A58
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B3A90 @ =gTasks
- adds r4, r1, r0
- ldr r0, _080B3A94 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_807492C
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- subs r0, 0x20
- strh r0, [r4, 0x24]
- ldr r0, _080B3A98 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x1
- beq _080B3AAE
- cmp r0, 0x1
- bgt _080B3A9C
- cmp r0, 0
- beq _080B3AA2
- b _080B3ACA
- .align 2, 0
-_080B3A90: .4byte gTasks
-_080B3A94: .4byte gUnknown_2037F1B
-_080B3A98: .4byte gUnknown_2037F02
-_080B3A9C:
- cmp r0, 0x2
- beq _080B3ABA
- b _080B3ACA
-_080B3AA2:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080B3AC2
-_080B3AAE:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- b _080B3AC2
-_080B3ABA:
- movs r0, 0x4
- strh r0, [r4, 0x1E]
- strh r0, [r4, 0x20]
- movs r0, 0
-_080B3AC2:
- strh r0, [r4, 0x22]
- adds r0, r1, 0
- adds r0, 0x20
- strh r0, [r4, 0x26]
-_080B3ACA:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080B3AD6
- movs r0, 0
- strh r0, [r4, 0x24]
-_080B3AD6:
- ldr r0, _080B3AF0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3AFC
- ldr r0, _080B3AF4 @ =gUnknown_2022978
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080B3AF8 @ =0x04000014
- b _080B3B04
- .align 2, 0
-_080B3AF0: .4byte gUnknown_2037F1B
-_080B3AF4: .4byte gUnknown_2022978
-_080B3AF8: .4byte 0x04000014
-_080B3AFC:
- ldr r0, _080B3B64 @ =gUnknown_202297C
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080B3B68 @ =0x04000018
-_080B3B04:
- str r0, [sp]
- ldrh r1, [r4, 0x24]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- bgt _080B3B3E
- ldr r5, _080B3B6C @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080B3B1E:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1C]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- ble _080B3B1E
-_080B3B3E:
- ldr r0, _080B3B70 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- ldr r0, _080B3B74 @ =sub_80B3B78
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3B64: .4byte gUnknown_202297C
-_080B3B68: .4byte 0x04000018
-_080B3B6C: .4byte gUnknown_2038700
-_080B3B70: .4byte 0xa2600001
-_080B3B74: .4byte sub_80B3B78
- thumb_func_end sub_80B3A58
-
- thumb_func_start sub_80B3B78
-sub_80B3B78: @ 80B3B78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B3BA0 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080B3C52
- cmp r0, 0x1
- bgt _080B3BA4
- cmp r0, 0
- beq _080B3BAA
- b _080B3C6A
- .align 2, 0
-_080B3BA0: .4byte gTasks
-_080B3BA4:
- cmp r0, 0x2
- beq _080B3C64
- b _080B3C6A
-_080B3BAA:
- ldrh r3, [r5, 0x22]
- ldrh r4, [r5, 0x24]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bgt _080B3C42
- ldr r0, _080B3BF4 @ =gUnknown_825E074
- mov r9, r0
- movs r7, 0x3
- ldr r1, _080B3BF8 @ =gUnknown_2038700
- mov r12, r1
- movs r2, 0xF0
- lsls r2, 3
- add r2, r12
- mov r8, r2
-_080B3BCC:
- lsls r2, r3, 16
- asrs r0, r2, 15
- add r0, r9
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r3, 0x20
- ldrsh r1, [r5, r3]
- asrs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r3, r0, 16
- adds r6, r2, 0
- cmp r3, 0
- ble _080B3BFC
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- adds r0, r3, r0
- b _080B3C08
- .align 2, 0
-_080B3BF4: .4byte gUnknown_825E074
-_080B3BF8: .4byte gUnknown_2038700
-_080B3BFC:
- cmp r3, 0
- bge _080B3C0C
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- subs r0, r3, r0
-_080B3C08:
- lsls r0, 16
- lsrs r1, r0, 16
-_080B3C0C:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- mov r0, r12
- adds r4, r3, r0
- ldrh r0, [r5, 0x1C]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1, r0
- strh r0, [r4]
- add r3, r8
- ldrh r0, [r5, 0x1C]
- adds r1, r0
- strh r1, [r3]
- asrs r0, r6, 16
- ldrh r1, [r5, 0x1E]
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r2, r0
- ble _080B3BCC
-_080B3C42:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _080B3C6A
- b _080B3C58
-_080B3C52:
- ldr r1, _080B3C60 @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080B3C58:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080B3C6A
- .align 2, 0
-_080B3C60: .4byte gUnknown_2039600
-_080B3C64:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B3C6A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3B78
-
- thumb_func_start sub_80B3C78
-sub_80B3C78: @ 80B3C78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080B3CAC @ =gTasks
- adds r7, r0, r1
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r5, r0, 24
- mov r10, r5
- adds r6, r5, 0
- cmp r6, 0xFF
- bne _080B3CB0
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080B3D5A
- .align 2, 0
-_080B3CAC: .4byte gTasks
-_080B3CB0:
- ldr r1, _080B3CD4 @ =gUnknown_2037F02
- ldrb r0, [r1]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r1, r0, 16
- mov r9, r1
- asrs r0, 16
- cmp r0, 0
- bge _080B3CD8
- adds r0, r5, 0
- bl FreeOamMatrix
- mov r0, r8
- bl DestroyAnimVisualTask
- b _080B3D5A
- .align 2, 0
-_080B3CD4: .4byte gUnknown_2037F02
-_080B3CD8:
- ldr r2, _080B3D68 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r2, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, _080B3D6C @ =SpriteCallbackDummy
- str r1, [r0]
- adds r4, r2
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- ldr r1, _080B3D70 @ =gUnknown_2037F02
- ldrb r0, [r1]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r0, r10
- strh r0, [r7, 0x24]
- mov r1, r9
- strh r1, [r7, 0x26]
- ldr r0, _080B3D74 @ =sub_80B3D78
- str r0, [r7]
-_080B3D5A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3D68: .4byte gSprites
-_080B3D6C: .4byte SpriteCallbackDummy
-_080B3D70: .4byte gUnknown_2037F02
-_080B3D74: .4byte sub_80B3D78
- thumb_func_end sub_80B3C78
-
- thumb_func_start sub_80B3D78
-sub_80B3D78: @ 80B3D78
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B3D9C @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B3DFC
- cmp r0, 0x1
- bgt _080B3DA0
- cmp r0, 0
- beq _080B3DAA
- b _080B3E7C
- .align 2, 0
-_080B3D9C: .4byte gTasks
-_080B3DA0:
- cmp r0, 0x2
- beq _080B3E4C
- cmp r0, 0x3
- beq _080B3E6C
- b _080B3E7C
-_080B3DAA:
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080B3DF8 @ =gUnknown_825E074
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8076494
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x30
- bne _080B3E7C
- b _080B3E5E
- .align 2, 0
-_080B3DF8: .4byte gUnknown_825E074
-_080B3DFC:
- ldrh r0, [r4, 0xA]
- subs r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080B3E48 @ =gUnknown_825E074
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8076494
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B3E7C
- b _080B3E5E
- .align 2, 0
-_080B3E48: .4byte gUnknown_825E074
-_080B3E4C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B3E68 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_080B3E5E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B3E7C
- .align 2, 0
-_080B3E68: .4byte gSprites
-_080B3E6C:
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bl FreeOamMatrix
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B3E7C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3D78
-
- thumb_func_start sub_80B3E84
-sub_80B3E84: @ 80B3E84
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080B3EFC
- cmp r0, 0x1
- bgt _080B3E9A
- cmp r0, 0
- beq _080B3EA4
- b _080B3FA4
-_080B3E9A:
- cmp r0, 0x2
- beq _080B3F2E
- cmp r0, 0x3
- beq _080B3F8E
- b _080B3FA4
-_080B3EA4:
- ldr r4, _080B3EF8 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B3ED2
- ldrh r0, [r5, 0x22]
- adds r0, 0xC
- strh r0, [r5, 0x22]
-_080B3ED2:
- movs r0, 0x8
- strh r0, [r5, 0x30]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r5, 0x30]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- b _080B3F26
- .align 2, 0
-_080B3EF8: .4byte gUnknown_2037F1A
-_080B3EFC:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B3FA4
- movs r0, 0x40
- negs r0, r0
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC4
- bl PlaySE12WithPanning
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_080B3F26:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080B3FA4
-_080B3F2E:
- ldrh r0, [r5, 0x32]
- adds r1, r0, 0x1
- strh r1, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B3F72
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x30]
- subs r1, 0x1
- strh r1, [r5, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080B3F72
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080B3F72:
- movs r0, 0xE0
- lsls r0, 2
- adds r2, r0, 0
- ldrh r1, [r5, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r5, 0x26]
- subs r0, r1
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r5, 0x34]
- b _080B3FA4
-_080B3F8E:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimSprite
-_080B3FA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3E84
-
- thumb_func_start sub_80B3FAC
-sub_80B3FAC: @ 80B3FAC
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B3FD8
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080B3FD4 @ =gUnknown_2037F02
- ldrh r1, [r0, 0x4]
- negs r1, r1
- strh r1, [r0, 0x4]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
- b _080B4008
- .align 2, 0
-_080B3FD4: .4byte gUnknown_2037F02
-_080B3FD8:
- ldr r0, _080B406C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B4008
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080B4070 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080B4008:
- ldr r5, _080B406C @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074844
- lsls r0, 24
- ldr r4, _080B4070 @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080B4074 @ =sub_8075590
- str r0, [r6, 0x1C]
- ldr r1, _080B4078 @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B406C: .4byte gUnknown_2037F1B
-_080B4070: .4byte gUnknown_2037F02
-_080B4074: .4byte sub_8075590
-_080B4078: .4byte DestroyAnimSprite
- thumb_func_end sub_80B3FAC
-
- thumb_func_start sub_80B407C
-sub_80B407C: @ 80B407C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B40A0
- ldr r1, _080B409C @ =gUnknown_2037F02
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _080B40BC
- .align 2, 0
-_080B409C: .4byte gUnknown_2037F02
-_080B40A0:
- ldr r0, _080B4118 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B40BC
- ldr r0, _080B411C @ =gUnknown_2037F02
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
-_080B40BC:
- ldr r5, _080B4118 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074844
- lsls r0, 24
- ldr r4, _080B411C @ =gUnknown_2037F02
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- ldr r0, _080B4120 @ =sub_8075590
- str r0, [r6, 0x1C]
- ldr r1, _080B4124 @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4118: .4byte gUnknown_2037F1B
-_080B411C: .4byte gUnknown_2037F02
-_080B4120: .4byte sub_8075590
-_080B4124: .4byte DestroyAnimSprite
- thumb_func_end sub_80B407C
-
- thumb_func_start sub_80B4128
-sub_80B4128: @ 80B4128
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B4144
- ldr r0, _080B4184 @ =gUnknown_2037F02
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r0, 0x4]
-_080B4144:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080B4184 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B418C
- ldr r4, _080B4188 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080B419E
- .align 2, 0
-_080B4184: .4byte gUnknown_2037F02
-_080B4188: .4byte gUnknown_2037F1B
-_080B418C:
- ldr r0, _080B41B4 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_8076D9C
-_080B419E:
- adds r0, r5, 0
- bl sub_8075678
- ldr r0, _080B41B8 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x38]
- ldr r0, _080B41BC @ =sub_80B41C0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B41B4: .4byte gUnknown_2037F1B
-_080B41B8: .4byte gUnknown_2037F02
-_080B41BC: .4byte sub_80B41C0
- thumb_func_end sub_80B4128
-
- thumb_func_start sub_80B41C0
-sub_80B41C0: @ 80B41C0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080B41D6
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080B41F2
-_080B41D6:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0xD
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
-_080B41F2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B41C0
-
- thumb_func_start sub_80B41F8
-sub_80B41F8: @ 80B41F8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080B4228 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_8076D9C
- ldr r0, _080B422C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B4234
- ldr r0, _080B4230 @ =gUnknown_2037F02
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080B4240
- .align 2, 0
-_080B4228: .4byte gUnknown_2037F1B
-_080B422C: .4byte gUnknown_2037F1A
-_080B4230: .4byte gUnknown_2037F02
-_080B4234:
- ldr r1, _080B4268 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080B4240:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080B426C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B425C
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_080B425C:
- ldr r0, _080B4270 @ =sub_80B4274
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4268: .4byte gUnknown_2037F02
-_080B426C: .4byte gUnknown_2037F1B
-_080B4270: .4byte sub_80B4274
- thumb_func_end sub_80B41F8
-
- thumb_func_start sub_80B4274
-sub_80B4274: @ 80B4274
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080B42A8
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080B42A8:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080B42BC
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080B42BC:
- pop {r0}
- bx r0
- thumb_func_end sub_80B4274
-
- thumb_func_start sub_80B42C0
-sub_80B42C0: @ 80B42C0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldr r0, _080B42E4 @ =sub_80B42E8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B42E4: .4byte sub_80B42E8
- thumb_func_end sub_80B42C0
-
- thumb_func_start sub_80B42E8
-sub_80B42E8: @ 80B42E8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x13
- bgt _080B42FC
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
- b _080B433A
-_080B42FC:
- ldrh r1, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B433A
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B433A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B4340 @ =sub_80B4344
- str r0, [r4, 0x1C]
-_080B433A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4340: .4byte sub_80B4344
- thumb_func_end sub_80B42E8
-
- thumb_func_start sub_80B4344
-sub_80B4344: @ 80B4344
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B4344
-
- thumb_func_start sub_80B4364
-sub_80B4364: @ 80B4364
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B4384
- ldr r1, _080B4380 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080B43A6
- .align 2, 0
-_080B4380: .4byte gUnknown_2037F02
-_080B4384:
- ldr r0, _080B4480 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B43A6
- ldr r1, _080B4484 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080B43A6:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B43F6
- ldr r0, _080B4480 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r5, _080B4488 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B43F6
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- beq _080B43E4
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B43F6
-_080B43E4:
- ldr r0, _080B4484 @ =gUnknown_2037F02
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x4]
- movs r2, 0
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0]
-_080B43F6:
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080B4488 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- adds r4, r0, 0
- lsls r4, 24
- ldr r6, _080B4484 @ =gUnknown_2037F02
- lsrs r4, 24
- ldrh r0, [r6, 0x4]
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r6, 0x6]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r7, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r7, 0x22]
- lsrs r5, r1, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8075A1C
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0x2E]
- strh r4, [r7, 0x32]
- strh r5, [r7, 0x36]
- ldr r0, _080B448C @ =sub_8075590
- str r0, [r7, 0x1C]
- ldr r1, _080B4490 @ =DestroyAnimSprite
- adds r0, r7, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4480: .4byte gUnknown_2037F1A
-_080B4484: .4byte gUnknown_2037F02
-_080B4488: .4byte gUnknown_2037F1B
-_080B448C: .4byte sub_8075590
-_080B4490: .4byte DestroyAnimSprite
- thumb_func_end sub_80B4364
-
- thumb_func_start sub_80B4494
-sub_80B4494: @ 80B4494
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080B4500 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B44B4
- ldr r1, _080B4504 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080B44B4:
- ldr r4, _080B4504 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080B4508 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_8075068
- ldr r0, _080B450C @ =sub_80B4510
- str r0, [r6, 0x1C]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4500: .4byte gUnknown_2037F1A
-_080B4504: .4byte gUnknown_2037F02
-_080B4508: .4byte gUnknown_2037F1B
-_080B450C: .4byte sub_80B4510
- thumb_func_end sub_80B4494
-
- thumb_func_start sub_80B4510
-sub_80B4510: @ 80B4510
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B453C
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080B45CC
-_080B453C:
- movs r0, 0x2E
- adds r0, r4
- mov r8, r0
- ldrh r7, [r4, 0x20]
- ldrh r5, [r4, 0x24]
- ldrh r1, [r4, 0x22]
- mov r12, r1
- ldrh r6, [r4, 0x26]
- mov r2, r8
- add r1, sp, 0x4
- movs r3, 0x7
-_080B4552:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080B4552
- adds r0, r7, r5
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080B45CC
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r1, r5, 16
- asrs r1, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r1, r2
- lsls r2, r6, 16
- asrs r2, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8075A1C
- add r2, sp, 0x4
- mov r1, r8
- movs r3, 0x7
-_080B45BE:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080B45BE
-_080B45CC:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B4510
-
- thumb_func_start sub_80B45D8
-sub_80B45D8: @ 80B45D8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B45EC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B45F4
- ldr r4, _080B45F0 @ =gUnknown_2037F1A
- b _080B45F6
- .align 2, 0
-_080B45EC: .4byte gUnknown_2037F02
-_080B45F0: .4byte gUnknown_2037F1A
-_080B45F4:
- ldr r4, _080B4628 @ =gUnknown_2037F1B
-_080B45F6:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x12
- strh r0, [r5, 0x22]
- ldr r1, _080B462C @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080B4630 @ =sub_8074F50
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4628: .4byte gUnknown_2037F1B
-_080B462C: .4byte move_anim_8074EE0
-_080B4630: .4byte sub_8074F50
- thumb_func_end sub_80B45D8
-
- thumb_func_start sub_80B4634
-sub_80B4634: @ 80B4634
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080B46A0 @ =gUnknown_2037F02
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080B4654
- ldr r0, _080B46A4 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_8076D9C
-_080B4654:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r4, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xE
- strh r0, [r5, 0x22]
- ldrb r1, [r6, 0x2]
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- strh r4, [r5, 0x2E]
- strh r4, [r5, 0x30]
- movs r0, 0x4
- strh r0, [r5, 0x32]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldr r0, _080B46A8 @ =0x0000ffba
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x38]
- ldr r1, _080B46AC @ =sub_80B46B4
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080B46B0 @ =sub_8074BE4
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B46A0: .4byte gUnknown_2037F02
-_080B46A4: .4byte gUnknown_2037F1B
-_080B46A8: .4byte 0x0000ffba
-_080B46AC: .4byte sub_80B46B4
-_080B46B0: .4byte sub_8074BE4
- thumb_func_end sub_80B4634
-
- thumb_func_start sub_80B46B4
-sub_80B46B4: @ 80B46B4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x20]
- adds r0, r1, r2
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x4
- strh r0, [r4, 0x32]
- movs r0, 0x20
- strh r0, [r4, 0x34]
- ldr r0, _080B46EC @ =0x0000ffe8
- strh r0, [r4, 0x36]
- ldr r1, _080B46F0 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080B46F4 @ =sub_8074BE4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B46EC: .4byte 0x0000ffe8
-_080B46F0: .4byte move_anim_8074EE0
-_080B46F4: .4byte sub_8074BE4
- thumb_func_end sub_80B46B4
-
- thumb_func_start sub_80B46F8
-sub_80B46F8: @ 80B46F8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B4720 @ =gUnknown_2037F02
- ldrb r1, [r4, 0xA]
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- ldr r0, _080B4724 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B4728
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080B472E
- .align 2, 0
-_080B4720: .4byte gUnknown_2037F02
-_080B4724: .4byte gUnknown_2037F1A
-_080B4728:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080B472E:
- strh r0, [r5, 0x20]
- ldr r3, _080B4770 @ =gUnknown_2037F02
- ldrh r2, [r3, 0x2]
- ldrh r0, [r5, 0x22]
- adds r2, r0
- movs r4, 0
- strh r2, [r5, 0x22]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r1, [r3, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldrh r0, [r3, 0x6]
- adds r2, r0
- strh r2, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80754B8
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, _080B4774 @ =sub_8074D00
- str r0, [r5, 0x1C]
- ldr r1, _080B4778 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4770: .4byte gUnknown_2037F02
-_080B4774: .4byte sub_8074D00
-_080B4778: .4byte move_anim_8074EE0
- thumb_func_end sub_80B46F8
-
- thumb_func_start sub_80B477C
-sub_80B477C: @ 80B477C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080B4794 @ =gUnknown_2037F02
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B4798
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075160
- b _080B47A0
- .align 2, 0
-_080B4794: .4byte gUnknown_2037F02
-_080B4798:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075114
-_080B47A0:
- ldr r1, _080B47BC @ =gUnknown_2037F02
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080B47C0 @ =sub_80B47C4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B47BC: .4byte gUnknown_2037F02
-_080B47C0: .4byte sub_80B47C4
- thumb_func_end sub_80B477C
-
- thumb_func_start sub_80B47C4
-sub_80B47C4: @ 80B47C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080B480A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B480A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B47C4
-
- thumb_func_start do_boulder_dust
-do_boulder_dust: @ 80B4810
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _080B48E4 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B4854
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080B4854:
- ldr r0, _080B48E8 @ =gUnknown_2022978
- strh r5, [r0]
- ldr r4, _080B48EC @ =gUnknown_202297A
- strh r5, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
- bl sub_807543C
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B48B0
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080B48B0:
- ldr r0, _080B48FC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080B48CA
- ldr r0, _080B4900 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B48CA
- movs r5, 0x1
-_080B48CA:
- ldr r0, _080B4904 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x8]
- ldr r0, _080B4908 @ =sub_80B490C
- str r0, [r1]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B48E4: .4byte 0x00003f42
-_080B48E8: .4byte gUnknown_2022978
-_080B48EC: .4byte gUnknown_202297A
-_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
-_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
-_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette
-_080B48FC: .4byte gUnknown_2037F02
-_080B4900: .4byte gUnknown_2037F1A
-_080B4904: .4byte gTasks
-_080B4908: .4byte sub_80B490C
- thumb_func_end do_boulder_dust
-
- thumb_func_start sub_80B490C
-sub_80B490C: @ 80B490C
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080B4934 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0
- bne _080B4940
- ldr r1, _080B4938 @ =gUnknown_2022978
- ldr r3, _080B493C @ =0x0000fffa
- adds r0, r3, 0
- ldrh r3, [r1]
- adds r0, r3
- b _080B4946
- .align 2, 0
-_080B4934: .4byte gTasks
-_080B4938: .4byte gUnknown_2022978
-_080B493C: .4byte 0x0000fffa
-_080B4940:
- ldr r1, _080B4974 @ =gUnknown_2022978
- ldrh r0, [r1]
- adds r0, 0x6
-_080B4946:
- strh r0, [r1]
- ldr r1, _080B4978 @ =gUnknown_202297A
- ldr r3, _080B497C @ =0x0000ffff
- adds r0, r3, 0
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r3, 0x20
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _080B4968
- b _080B4A96
-_080B4968:
- lsls r0, 2
- ldr r1, _080B4980 @ =_080B4984
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4974: .4byte gUnknown_2022978
-_080B4978: .4byte gUnknown_202297A
-_080B497C: .4byte 0x0000ffff
-_080B4980: .4byte _080B4984
- .align 2, 0
-_080B4984:
- .4byte _080B4998
- .4byte _080B49DA
- .4byte _080B49F4
- .4byte _080B4A36
- .4byte _080B4A58
-_080B4998:
- adds r0, r4, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080B4A96
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _080B4A96
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080B4A96
-_080B49DA:
- adds r0, r4, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _080B4A96
- movs r0, 0x7
- strh r0, [r1, 0x1E]
- b _080B4A4C
-_080B49F4:
- adds r0, r4, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080B4A96
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080B4A96
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080B4A96
-_080B4A36:
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_8075358
- ldr r0, _080B4A54 @ =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
-_080B4A4C:
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080B4A96
- .align 2, 0
-_080B4A54: .4byte gTasks
-_080B4A58:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B4A6C
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080B4A6C:
- ldr r0, _080B4AA0 @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080B4AA4 @ =gUnknown_202297A
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B4A96:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4AA0: .4byte gUnknown_2022978
-_080B4AA4: .4byte gUnknown_202297A
- thumb_func_end sub_80B490C
-
- thumb_func_start sub_80B4AA8
-sub_80B4AA8: @ 80B4AA8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080B4B24
- ldr r4, _080B4AEC @ =gUnknown_2037F02
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B4AF4
- ldr r0, _080B4AF0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B4AF4
- movs r0, 0x98
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- subs r0, 0x40
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _080B4AF8
- .align 2, 0
-_080B4AEC: .4byte gUnknown_2037F02
-_080B4AF0: .4byte gUnknown_2037F1A
-_080B4AF4:
- ldr r0, _080B4B18 @ =0x0000ffc0
- strh r0, [r5, 0x20]
-_080B4AF8:
- ldr r4, _080B4B1C @ =gUnknown_2037F02
- ldrh r0, [r4]
- strh r0, [r5, 0x22]
- ldr r1, _080B4B20 @ =gUnknown_83E7470
- adds r0, r5, 0
- bl SetSubspriteTables
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080B4B80
- .align 2, 0
-_080B4B18: .4byte 0x0000ffc0
-_080B4B1C: .4byte gUnknown_2037F02
-_080B4B20: .4byte gUnknown_83E7470
-_080B4B24:
- ldrh r1, [r5, 0x30]
- ldrh r3, [r5, 0x34]
- adds r1, r3
- ldrh r2, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r2, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r3, [r5, 0x24]
- adds r0, r3
- strh r0, [r5, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r3, [r5, 0x26]
- adds r0, r3
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x34]
- ands r2, r0
- strh r2, [r5, 0x36]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080B4B6A
- movs r2, 0x20
- ldrsh r0, [r5, r2]
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- adds r0, r1
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- ble _080B4B80
- b _080B4B7C
-_080B4B6A:
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080B4B80
-_080B4B7C:
- ldr r0, _080B4B88 @ =DestroyAnimSprite
- str r0, [r5, 0x1C]
-_080B4B80:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4B88: .4byte DestroyAnimSprite
- thumb_func_end sub_80B4AA8
-
- thumb_func_start sub_80B4B8C
-sub_80B4B8C: @ 80B4B8C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B4BC4 @ =gUnknown_2037F02
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075160
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldr r0, _080B4BC8 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080B4BCC @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4BC4: .4byte gUnknown_2037F02
-_080B4BC8: .4byte sub_8075590
-_080B4BCC: .4byte DestroyAnimSprite
- thumb_func_end sub_80B4B8C
-
- thumb_func_start sub_80B4BD0
-sub_80B4BD0: @ 80B4BD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B4C50 @ =gTasks
- adds r6, r1, r0
- ldr r5, _080B4C54 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r7, r0, 16
- ldr r4, _080B4C58 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xC0
- lsls r2, 13
- adds r0, r2
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080B4C40
- mov r8, r7
-_080B4C40:
- bl sub_80B4FB8
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _080B4C5C
- movs r0, 0x20
- b _080B4C62
- .align 2, 0
-_080B4C50: .4byte gTasks
-_080B4C54: .4byte gUnknown_2037F1A
-_080B4C58: .4byte gUnknown_2037F1B
-_080B4C5C:
- lsls r1, r5, 3
- movs r0, 0x30
- subs r0, r1
-_080B4C62:
- strh r0, [r6, 0x18]
- movs r4, 0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0x1E]
- strh r4, [r6, 0x1A]
- movs r0, 0x1
- strh r0, [r6, 0x20]
- movs r1, 0x18
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _080B4C7A
- adds r0, 0x7
-_080B4C7A:
- asrs r0, 3
- subs r0, 0x1
- strh r0, [r6, 0x1C]
- mov r2, r9
- lsls r0, r2, 3
- strh r0, [r6, 0xC]
- lsls r0, r7, 3
- strh r0, [r6, 0xE]
- mov r1, r10
- subs r0, r1, r2
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x10]
- mov r1, r8
- subs r0, r1, r7
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x12]
- strh r4, [r6, 0x14]
- strh r4, [r6, 0x16]
- movs r0, 0x40
- negs r0, r0
- bl sub_8073A44
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 8
- lsrs r4, 16
- movs r0, 0x3F
- bl sub_8073A44
- lsls r0, 24
- strh r4, [r6, 0x22]
- asrs r0, 24
- lsls r4, 16
- asrs r4, 16
- subs r0, r4
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x24]
- strh r5, [r6, 0xA]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- ldr r0, _080B4CFC @ =sub_80B4D00
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4CFC: .4byte sub_80B4D00
- thumb_func_end sub_80B4BD0
-
- thumb_func_start sub_80B4D00
-sub_80B4D00: @ 80B4D00
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B4D24 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080B4D1A
- b _080B4E68
-_080B4D1A:
- lsls r0, 2
- ldr r1, _080B4D28 @ =_080B4D2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4D24: .4byte gTasks
-_080B4D28: .4byte _080B4D2C
- .align 2, 0
-_080B4D2C:
- .4byte _080B4D40
- .4byte _080B4DA4
- .4byte _080B4DAC
- .4byte _080B4E08
- .4byte _080B4E5A
-_080B4D40:
- ldrh r2, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- subs r2, r0
- strh r2, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- ldr r3, _080B4DA0 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- lsls r2, 16
- asrs r2, 19
- strh r2, [r0, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080B4D90
- movs r0, 0x14
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B4D90:
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9B
- bl PlaySE12WithPanning
- b _080B4E68
- .align 2, 0
-_080B4DA0: .4byte gSprites
-_080B4DA4:
- ldrh r0, [r4, 0x1E]
- subs r0, 0x1
- strh r0, [r4, 0x1E]
- b _080B4E4C
-_080B4DAC:
- ldrh r0, [r4, 0x1A]
- subs r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _080B4DCC
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0x14]
- adds r0, r2
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- b _080B4DD6
-_080B4DCC:
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B4DD6:
- ldr r2, _080B4E04 @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- b _080B4E68
- .align 2, 0
-_080B4E04: .4byte gSprites
-_080B4E08:
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080B4E46
- movs r0, 0
- strh r0, [r4, 0x1A]
- adds r0, r4, 0
- bl sub_80B4E70
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA8
- bl PlaySE12WithPanning
-_080B4E46:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
-_080B4E4C:
- lsls r0, 16
- cmp r0, 0
- bne _080B4E68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B4E68
-_080B4E5A:
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B4E68
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B4E68:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B4D00
-
- thumb_func_start sub_80B4E70
-sub_80B4E70: @ 80B4E70
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bhi _080B4F60
- lsls r0, 2
- ldr r1, _080B4E8C @ =_080B4E90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4E8C: .4byte _080B4E90
- .align 2, 0
-_080B4E90:
- .4byte _080B4EA4
- .4byte _080B4EB0
- .4byte _080B4EB0
- .4byte _080B4EBC
- .4byte _080B4EC8
-_080B4EA4:
- ldr r3, _080B4EAC @ =gUnknown_83E74D8
- movs r5, 0
- b _080B4ECC
- .align 2, 0
-_080B4EAC: .4byte gUnknown_83E74D8
-_080B4EB0:
- ldr r3, _080B4EB8 @ =gUnknown_83E74F0
- movs r5, 0x50
- b _080B4ECC
- .align 2, 0
-_080B4EB8: .4byte gUnknown_83E74F0
-_080B4EBC:
- ldr r3, _080B4EC4 @ =gUnknown_83E74F0
- movs r5, 0x40
- b _080B4ECC
- .align 2, 0
-_080B4EC4: .4byte gUnknown_83E74F0
-_080B4EC8:
- ldr r3, _080B4F68 @ =gUnknown_83E74F0
- movs r5, 0x30
-_080B4ECC:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0xE]
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- lsls r0, 2
- adds r1, r0
- lsls r1, 16
- lsrs r6, r1, 16
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r0, r3, 0
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080B4F58
- ldr r1, _080B4F6C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x12
- strh r1, [r0, 0x2E]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 2
- adds r2, r6, r2
- movs r6, 0xA
- ldrsh r3, [r4, r6]
- lsls r1, r3, 1
- adds r1, r3
- adds r2, r1
- strh r2, [r0, 0x32]
- strh r7, [r0, 0x36]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r2, 1
- movs r3, 0x10
- negs r3, r3
- adds r1, r3, 0
- subs r1, r2
- strh r1, [r0, 0x38]
- ldrh r3, [r0, 0x4]
- lsls r2, r3, 22
- lsrs r2, 22
- adds r2, r5
- ldr r5, _080B4F70 @ =0x000003ff
- adds r1, r5, 0
- ands r2, r1
- ldr r1, _080B4F74 @ =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- bl sub_8075068
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
-_080B4F58:
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- negs r0, r0
- strh r0, [r4, 0x20]
-_080B4F60:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4F68: .4byte gUnknown_83E74F0
-_080B4F6C: .4byte gSprites
-_080B4F70: .4byte 0x000003ff
-_080B4F74: .4byte 0xfffffc00
- thumb_func_end sub_80B4E70
-
- thumb_func_start sub_80B4F78
-sub_80B4F78: @ 80B4F78
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B4FAA
- ldr r0, _080B4FB0 @ =sub_80B4D00
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080B4FA4
- ldr r0, _080B4FB4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- subs r0, 0x1
- strh r0, [r1, 0x1E]
-_080B4FA4:
- adds r0, r4, 0
- bl DestroySprite
-_080B4FAA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4FB0: .4byte sub_80B4D00
-_080B4FB4: .4byte gTasks
- thumb_func_end sub_80B4F78
-
- thumb_func_start sub_80B4FB8
-sub_80B4FB8: @ 80B4FB8
- push {lr}
- ldr r0, _080B4FE0 @ =gUnknown_2037EE4
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B4FDA
- movs r1, 0x1
-_080B4FDA:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B4FE0: .4byte gUnknown_2037EE4
- thumb_func_end sub_80B4FB8
-
- thumb_func_start sub_80B4FE4
-sub_80B4FE4: @ 80B4FE4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B501C @ =gUnknown_2037F02
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- ldrh r1, [r5, 0x4]
- subs r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080B5020 @ =sub_80B5024
- str r0, [r4, 0x1C]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B501C: .4byte gUnknown_2037F02
-_080B5020: .4byte sub_80B5024
- thumb_func_end sub_80B4FE4
-
- thumb_func_start sub_80B5024
-sub_80B5024: @ 80B5024
- push {lr}
- adds r2, r0, 0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x34]
- movs r3, 0x34
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080B505C
- ldrh r3, [r2, 0x32]
- adds r0, r1, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r1, r0
- strh r1, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r1, 16
- cmp r1, 0
- ble _080B506E
- movs r0, 0
- strh r0, [r2, 0x34]
- b _080B506E
-_080B505C:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B506E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080B506E:
- pop {r0}
- bx r0
- thumb_func_end sub_80B5024
-
- thumb_func_start sub_80B5074
-sub_80B5074: @ 80B5074
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080B509C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B5090
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080B5090:
- adds r0, r4, 0
- bl sub_8075DF4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B509C: .4byte gUnknown_2037F1A
- thumb_func_end sub_80B5074
-
- thumb_func_start sub_80B50A0
-sub_80B50A0: @ 80B50A0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B50EC @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B50F0 @ =gUnknown_2037F02
- ldrh r3, [r2]
- ldrh r5, [r4, 0x20]
- adds r1, r3, r5
- strh r1, [r4, 0x20]
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r3, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x38]
- ldrb r1, [r2, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080B50F4 @ =sub_80B50F8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B50EC: .4byte gUnknown_2037F1B
-_080B50F0: .4byte gUnknown_2037F02
-_080B50F4: .4byte sub_80B50F8
- thumb_func_end sub_80B50A0
-
- thumb_func_start sub_80B50F8
-sub_80B50F8: @ 80B50F8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- ldrh r1, [r4, 0x24]
- adds r1, r0
- strh r1, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- subs r1, r0
- strh r1, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8C
- ble _080B5142
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B5142:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B50F8
-
- thumb_func_start sub_80B5148
-sub_80B5148: @ 80B5148
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080B5180 @ =gUnknown_2037EE8
- ldr r0, [r2]
- cmp r0, 0x20
- bgt _080B515C
- ldr r1, _080B5184 @ =gUnknown_2037F02
- movs r0, 0
- strh r0, [r1, 0xE]
-_080B515C:
- ldr r2, [r2]
- adds r0, r2, 0
- subs r0, 0x21
- cmp r0, 0x20
- bhi _080B516C
- ldr r1, _080B5184 @ =gUnknown_2037F02
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080B516C:
- cmp r2, 0x41
- ble _080B5176
- ldr r1, _080B5184 @ =gUnknown_2037F02
- movs r0, 0x2
- strh r0, [r1, 0xE]
-_080B5176:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B5180: .4byte gUnknown_2037EE8
-_080B5184: .4byte gUnknown_2037F02
- thumb_func_end sub_80B5148
-
- thumb_func_start sub_80B5188
-sub_80B5188: @ 80B5188
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080B51E4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080B51AA
- movs r0, 0
- bl sub_8075458
- movs r0, 0xC8
- strh r0, [r5, 0xA]
-_080B51AA:
- ldr r4, _080B51E8 @ =gUnknown_2022982
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- ldrh r0, [r5, 0xA]
- subs r0, 0x3
- strh r0, [r5, 0xA]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x78
- bne _080B51D6
- movs r0, 0x1
- bl sub_8075458
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080B51D6:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B51E4: .4byte gTasks
-_080B51E8: .4byte gUnknown_2022982
- thumb_func_end sub_80B5188
-
- thumb_func_start sub_80B51EC
-sub_80B51EC: @ 80B51EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080B5258 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B5218
- movs r0, 0
- bl sub_8075458
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080B525C @ =gUnknown_2022982
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
-_080B5218:
- ldrh r0, [r4, 0xA]
- adds r0, 0x50
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0xA]
- ldr r6, _080B525C @ =gUnknown_2022982
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0x4
- bl Cos
- ldrh r4, [r4, 0xC]
- adds r0, r4
- strh r0, [r6]
- ldr r0, _080B5260 @ =gUnknown_2037F02
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- ldr r0, _080B5264 @ =0x00000fff
- cmp r1, r0
- bne _080B5250
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8075458
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B5250:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5258: .4byte gTasks
-_080B525C: .4byte gUnknown_2022982
-_080B5260: .4byte gUnknown_2037F02
-_080B5264: .4byte 0x00000fff
- thumb_func_end sub_80B51EC
-
- thumb_func_start sub_80B5268
-sub_80B5268: @ 80B5268
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080B52C4 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080B52C8 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8075678
- ldr r0, _080B52CC @ =sub_80B52D0
- str r0, [r4, 0x1C]
- movs r0, 0x10
- strh r0, [r4, 0x3A]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x3A]
- movs r0, 0x52
- bl SetGpuReg
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B52C4: .4byte gUnknown_2037F02
-_080B52C8: .4byte gUnknown_2037F1B
-_080B52CC: .4byte sub_80B52D0
- thumb_func_end sub_80B5268
-
- thumb_func_start sub_80B52D0
-sub_80B52D0: @ 80B52D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B53C0
- adds r0, r4, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080B52F0
- ldr r0, _080B52EC @ =sub_80B5344
- str r0, [r4, 0x1C]
- b _080B533A
- .align 2, 0
-_080B52EC: .4byte sub_80B5344
-_080B52F0:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080B5328
- cmp r2, 0xC4
- ble _080B533A
-_080B5328:
- lsls r0, 16
- cmp r0, 0
- ble _080B533A
- ldr r0, _080B5340 @ =gUnknown_2037F24
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xBD
- bl PlaySE12WithPanning
-_080B533A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5340: .4byte gUnknown_2037F24
- thumb_func_end sub_80B52D0
-
- thumb_func_start sub_80B5344
-sub_80B5344: @ 80B5344
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80755E0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080B538A
- cmp r2, 0xC4
- ble _080B5396
-_080B538A:
- lsls r0, 16
- cmp r0, 0
- ble _080B5396
- movs r0, 0xBD
- bl PlaySE
-_080B5396:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B53B4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B53B0 @ =sub_8074F88
- str r0, [r4, 0x1C]
- b _080B53BA
- .align 2, 0
-_080B53B0: .4byte sub_8074F88
-_080B53B4:
- adds r0, r4, 0
- bl sub_80B53C0
-_080B53BA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5344
-
- thumb_func_start sub_80B53C0
-sub_80B53C0: @ 80B53C0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- ble _080B53E4
- adds r0, r2, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- ldr r1, _080B53E0 @ =0x010d0000
- cmp r0, r1
- bne _080B544A
- movs r0, 0
- b _080B5448
- .align 2, 0
-_080B53E0: .4byte 0x010d0000
-_080B53E4:
- ldrh r1, [r4, 0x3C]
- adds r3, r1, 0x1
- strh r3, [r4, 0x3C]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- bne _080B544A
- ldr r1, _080B5408 @ =0xffffff00
- ands r1, r3
- strh r1, [r4, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080B540C
- adds r0, r2, 0x1
- b _080B540E
- .align 2, 0
-_080B5408: .4byte 0xffffff00
-_080B540C:
- subs r0, r2, 0x1
-_080B540E:
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3A]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B5430
- cmp r0, 0x10
- bne _080B543C
-_080B5430:
- ldrh r0, [r4, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r4, 0x3C]
-_080B543C:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B544A
- movs r0, 0x80
- lsls r0, 1
-_080B5448:
- strh r0, [r4, 0x3A]
-_080B544A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B53C0
-
- thumb_func_start sub_80B5450
-sub_80B5450: @ 80B5450
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r1, _080B546C @ =sub_80B5470
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B546C: .4byte sub_80B5470
- thumb_func_end sub_80B5450
-
- thumb_func_start sub_80B5470
-sub_80B5470: @ 80B5470
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x82
- bhi _080B54A4
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x8
- b _080B54AE
-_080B54A4:
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
-_080B54AE:
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x13
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x50
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3D
- bne _080B54E0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B54E0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5470
-
- thumb_func_start sub_80B54E8
-sub_80B54E8: @ 80B54E8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80758E0
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x80
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080B5560 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r1, _080B5564 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x80
- strh r1, [r0, 0x8]
- ldr r1, _080B5568 @ =gUnknown_2037F02
- ldrh r1, [r1]
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x10
- strh r1, [r0, 0xE]
- ldr r1, _080B556C @ =sub_80B5570
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5560: .4byte gSprites
-_080B5564: .4byte gTasks
-_080B5568: .4byte gUnknown_2037F02
-_080B556C: .4byte sub_80B5570
- thumb_func_end sub_80B54E8
-
- thumb_func_start sub_80B5570
-sub_80B5570: @ 80B5570
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B55C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080B55B8
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0xC]
- adds r1, 0x1
- strh r1, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bne _080B55B8
- ldr r0, _080B55C4 @ =sub_80B55C8
- str r0, [r4]
-_080B55B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B55C0: .4byte gTasks
-_080B55C4: .4byte sub_80B55C8
- thumb_func_end sub_80B5570
-
- thumb_func_start sub_80B55C8
-sub_80B55C8: @ 80B55C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080B55EC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080B55F0
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080B5634
- .align 2, 0
-_080B55EC: .4byte gTasks
-_080B55F0:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4, 0x8]
- adds r0, 0x8
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _080B5618
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- adds r0, r1, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- b _080B5634
-_080B5618:
- adds r0, r1, 0
- bl sub_8075980
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
-_080B5634:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B55C8
-
- thumb_func_start sub_80B563C
-sub_80B563C: @ 80B563C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r5, [r4, 0x20]
- ldrh r6, [r4, 0x22]
- ldr r0, _080B56D8 @ =gUnknown_2037F1A
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- strh r0, [r4, 0x20]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- mov r1, r9
- strh r1, [r4, 0x2E]
- ldr r2, _080B56DC @ =gUnknown_2037F02
- ldrh r1, [r2]
- strh r1, [r4, 0x30]
- ldrh r1, [r2, 0x2]
- strh r1, [r4, 0x32]
- ldrh r1, [r2, 0x4]
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x20]
- lsls r1, 4
- strh r1, [r4, 0x36]
- lsls r0, 4
- strh r0, [r4, 0x38]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- subs r5, r0
- lsls r5, 4
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r5, 0
- str r2, [sp]
- bl __divsi3
- strh r0, [r4, 0x3A]
- lsls r6, 16
- asrs r6, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- subs r6, r0
- lsls r6, 4
- ldr r2, [sp]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r6, 0
- bl __divsi3
- strh r0, [r4, 0x3C]
- ldr r0, _080B56E0 @ =sub_80B56E4
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B56D8: .4byte gUnknown_2037F1A
-_080B56DC: .4byte gUnknown_2037F02
-_080B56E0: .4byte sub_80B56E4
- thumb_func_end sub_80B563C
-
- thumb_func_start sub_80B56E4
-sub_80B56E4: @ 80B56E4
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080B572E
- cmp r0, 0x1
- bgt _080B56FA
- cmp r0, 0
- beq _080B5704
- b _080B57F2
-_080B56FA:
- cmp r0, 0x2
- beq _080B5798
- cmp r0, 0x3
- beq _080B57EC
- b _080B57F2
-_080B5704:
- ldrh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x36]
- adds r0, r2
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- cmp r0, 0
- bgt _080B57F2
- b _080B57DE
-_080B572E:
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080B57F2
- ldr r4, _080B5794 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x20]
- lsls r0, 4
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x22]
- lsls r0, 4
- strh r0, [r5, 0x38]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3A]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3C]
- b _080B57DE
- .align 2, 0
-_080B5794: .4byte gUnknown_2037F1B
-_080B5798:
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080B57F2
- ldr r4, _080B57E8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080B57DE:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080B57F2
- .align 2, 0
-_080B57E8: .4byte gUnknown_2037F1B
-_080B57EC:
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080B57F2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B56E4
-
- thumb_func_start sub_80B57F8
-sub_80B57F8: @ 80B57F8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r0, _080B580C @ =sub_80B5810
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B580C: .4byte sub_80B5810
- thumb_func_end sub_80B57F8
-
- thumb_func_start sub_80B5810
-sub_80B5810: @ 80B5810
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r5, 0
- movs r6, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B58A6
- adds r1, r3, 0
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x4
- ands r0, r2
- adds r4, r1, 0
- cmp r0, 0
- bne _080B583A
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r4]
-_080B583A:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080B584A
- cmp r0, 0x1
- beq _080B5854
- movs r6, 0x1
- b _080B585E
-_080B584A:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _080B585E
- b _080B5862
-_080B5854:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bne _080B585E
- movs r5, 0x1
-_080B585E:
- cmp r5, 0
- beq _080B5894
-_080B5862:
- ldrb r2, [r4]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080B58A6
- strh r1, [r3, 0x32]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080B58A6
-_080B5894:
- cmp r6, 0
- beq _080B58A0
- adds r0, r3, 0
- bl DestroyAnimSprite
- b _080B58A6
-_080B58A0:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_080B58A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5810
-
- thumb_func_start sub_80B58AC
-sub_80B58AC: @ 80B58AC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080B58D8 @ =gTasks
- adds r5, r0, r1
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- movs r6, 0
- movs r1, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080B58DC
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080B59B8
- .align 2, 0
-_080B58D8: .4byte gTasks
-_080B58DC:
- strh r1, [r5, 0xA]
- movs r0, 0xF
- strh r0, [r5, 0xC]
- movs r0, 0x2
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r5, 0xE]
- lsls r1, 8
- ldrh r0, [r5, 0xC]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r4, _080B5944 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x50
- strh r1, [r0, 0x2E]
- ldr r0, _080B5948 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B5950
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080B594C @ =0x0000ff70
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x70
- b _080B596E
- .align 2, 0
-_080B5944: .4byte gSprites
-_080B5948: .4byte gUnknown_2037F1B
-_080B594C: .4byte 0x0000ff70
-_080B5950:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x90
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080B59C0 @ =0x0000ff90
-_080B596E:
- strh r1, [r0, 0x32]
- ldr r4, _080B59C4 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x34]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x36]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080B59C8 @ =SpriteCallbackDummy
- bl StoreSpriteCallbackInData6
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080B59CC @ =sub_8074D00
- str r1, [r0]
- ldr r0, _080B59D0 @ =sub_80B59D4
- str r0, [r5]
-_080B59B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B59C0: .4byte 0x0000ff90
-_080B59C4: .4byte gSprites
-_080B59C8: .4byte SpriteCallbackDummy
-_080B59CC: .4byte sub_8074D00
-_080B59D0: .4byte sub_80B59D4
- thumb_func_end sub_80B58AC
-
- thumb_func_start sub_80B59D4
-sub_80B59D4: @ 80B59D4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B59F8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B5A78
- cmp r0, 0x1
- bgt _080B59FC
- cmp r0, 0
- beq _080B5A02
- b _080B5AA4
- .align 2, 0
-_080B59F8: .4byte gTasks
-_080B59FC:
- cmp r0, 0x2
- beq _080B5A9E
- b _080B5AA4
-_080B5A02:
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0x1
- bne _080B5A20
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080B5A20
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
-_080B5A20:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _080B5A36
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080B5A36
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
-_080B5A36:
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0xC]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, [r4, 0xC]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080B5AA4
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080B5AA4
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B5A74 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- movs r0, 0x1
- strh r0, [r4, 0x10]
- b _080B5AA4
- .align 2, 0
-_080B5A74: .4byte gSprites
-_080B5A78:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B5AA4
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- b _080B5AA4
-_080B5A9E:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B5AA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B59D4
-
- thumb_func_start sub_80B5AAC
-sub_80B5AAC: @ 80B5AAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080B5ACC @ =gTasks
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- ldr r2, _080B5AD0 @ =sub_80B5AD4
- str r2, [r1]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080B5ACC: .4byte gTasks
-_080B5AD0: .4byte sub_80B5AD4
- thumb_func_end sub_80B5AAC
-
- thumb_func_start sub_80B5AD4
-sub_80B5AD4: @ 80B5AD4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080B5B0C @ =gTasks
- adds r5, r0, r1
- ldr r0, _080B5B10 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080B5B00
- b _080B5D22
-_080B5B00:
- lsls r0, 2
- ldr r1, _080B5B14 @ =_080B5B18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B5B0C: .4byte gTasks
-_080B5B10: .4byte gUnknown_2037F1B
-_080B5B14: .4byte _080B5B18
- .align 2, 0
-_080B5B18:
- .4byte _080B5B2C
- .4byte _080B5C2C
- .4byte _080B5C70
- .4byte _080B5CD8
- .4byte _080B5D04
-_080B5B2C:
- ldr r7, _080B5B64 @ =0x00002771
- adds r0, r7, 0
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- mov r8, r2
- strh r0, [r5, 0x24]
- cmp r0, 0xFF
- beq _080B5B5A
- cmp r0, 0xF
- beq _080B5B5A
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080B5B68
- adds r0, r7, 0
- bl FreeSpritePaletteByTag
-_080B5B5A:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080B5D28
- .align 2, 0
-_080B5B64: .4byte 0x00002771
-_080B5B68:
- ldr r4, _080B5C14 @ =gSprites
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r2, [r5, 0x24]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _080B5C18 @ =gUnknown_2024018
- ldr r1, [r0]
- ldr r0, _080B5C1C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 31
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- mov r2, r8
- strh r2, [r5, 0xA]
- strh r2, [r5, 0xC]
- movs r0, 0x10
- strh r0, [r5, 0xE]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x10]
- cmp r6, 0x1
- bne _080B5C20
- movs r1, 0x80
- lsls r1, 2
- b _080B5C24
- .align 2, 0
-_080B5C14: .4byte gSprites
-_080B5C18: .4byte gUnknown_2024018
-_080B5C1C: .4byte gUnknown_2037F1B
-_080B5C20:
- movs r1, 0x80
- lsls r1, 3
-_080B5C24:
- movs r0, 0
- bl ClearGpuRegBits
- b _080B5D22
-_080B5C2C:
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x24]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- lsls r0, 1
- ldr r1, _080B5C60 @ =gPlttBufferUnfaded
- adds r0, r1
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- lsls r1, 1
- ldr r2, _080B5C64 @ =gPlttBufferFaded
- adds r1, r2
- ldr r2, _080B5C68 @ =0x04000008
- bl CpuSet
- ldrh r0, [r5, 0x10]
- ldr r3, _080B5C6C @ =0x00003c0d
- movs r1, 0x10
- movs r2, 0xA
- bl BlendPalette
- b _080B5D22
- .align 2, 0
-_080B5C60: .4byte gPlttBufferUnfaded
-_080B5C64: .4byte gPlttBufferFaded
-_080B5C68: .4byte 0x04000008
-_080B5C6C: .4byte 0x00003c0d
-_080B5C70:
- ldr r2, _080B5CAC @ =gSprites
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- subs r1, 0x20
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _080B5C90
- movs r2, 0
-_080B5C90:
- cmp r6, 0x1
- bne _080B5CB0
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x4
- str r2, [sp, 0x4]
- str r6, [sp, 0x8]
- b _080B5CC8
- .align 2, 0
-_080B5CAC: .4byte gSprites
-_080B5CB0:
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x8
- str r2, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
-_080B5CC8:
- movs r2, 0x2
- movs r3, 0x6
- bl sub_8088230
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- b _080B5D22
-_080B5CD8:
- cmp r6, 0x1
- bne _080B5CEC
- ldr r1, _080B5CE8 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- b _080B5CF4
- .align 2, 0
-_080B5CE8: .4byte 0x00003f42
-_080B5CEC:
- ldr r1, _080B5D00 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
-_080B5CF4:
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- b _080B5D22
- .align 2, 0
-_080B5D00: .4byte 0x00003f44
-_080B5D04:
- cmp r6, 0x1
- bne _080B5D14
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _080B5D1E
-_080B5D14:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_080B5D1E:
- ldr r0, _080B5D34 @ =sub_80B5D38
- str r0, [r5]
-_080B5D22:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
-_080B5D28:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5D34: .4byte sub_80B5D38
- thumb_func_end sub_80B5AD4
-
- thumb_func_start sub_80B5D38
-sub_80B5D38: @ 80B5D38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B5DC0 @ =gTasks
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0
- bne _080B5D70
- ldr r1, _080B5DC4 @ =gUnknown_825E074
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- strh r0, [r4, 0xC]
-_080B5D70:
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _080B5D92
- ldr r1, _080B5DC4 @ =gUnknown_825E074
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- movs r1, 0x10
- subs r1, r0
- strh r1, [r4, 0xE]
-_080B5D92:
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0xC]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- bne _080B5DBA
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080B5DC8 @ =sub_80B5DCC
- str r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
-_080B5DBA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5DC0: .4byte gTasks
-_080B5DC4: .4byte gUnknown_825E074
-_080B5DC8: .4byte sub_80B5DCC
- thumb_func_end sub_80B5D38
-
- thumb_func_start sub_80B5DCC
-sub_80B5DCC: @ 80B5DCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B5DFC @ =gTasks
- adds r4, r0, r1
- ldr r0, _080B5E00 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B5E38
- cmp r0, 0x1
- bgt _080B5E04
- cmp r0, 0
- beq _080B5E0A
- b _080B5EB4
- .align 2, 0
-_080B5DFC: .4byte gTasks
-_080B5E00: .4byte gUnknown_2037F1B
-_080B5E04:
- cmp r0, 0x2
- beq _080B5E4C
- b _080B5EB4
-_080B5E0A:
- ldr r1, _080B5E28 @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- cmp r6, 0x1
- bne _080B5E2C
- movs r1, 0x80
- lsls r1, 2
- b _080B5E30
- .align 2, 0
-_080B5E28: .4byte gUnknown_2039600
-_080B5E2C:
- movs r1, 0x80
- lsls r1, 3
-_080B5E30:
- movs r0, 0
- bl ClearGpuRegBits
- b _080B5EB4
-_080B5E38:
- ldrh r0, [r4, 0x10]
- ldr r3, _080B5E48 @ =0x00003c0d
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- b _080B5EB4
- .align 2, 0
-_080B5E48: .4byte 0x00003c0d
-_080B5E4C:
- ldr r3, _080B5E9C @ =gSprites
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl obj_delete_but_dont_free_vram
- ldr r0, _080B5EA0 @ =0x00002771
- bl FreeSpritePaletteByTag
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- cmp r6, 0x1
- bne _080B5EA4
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _080B5EAE
- .align 2, 0
-_080B5E9C: .4byte gSprites
-_080B5EA0: .4byte 0x00002771
-_080B5EA4:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_080B5EAE:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B5EB4:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5DCC
-
- thumb_func_start sub_80B5EC0
-sub_80B5EC0: @ 80B5EC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldr r0, _080B5EFC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B5F08
- ldr r4, _080B5F00 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080B5F04 @ =gUnknown_2037F1B
- b _080B5F2C
- .align 2, 0
-_080B5EFC: .4byte gUnknown_2037F02
-_080B5F00: .4byte gUnknown_2037F1A
-_080B5F04: .4byte gUnknown_2037F1B
-_080B5F08:
- ldr r4, _080B5FD0 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080B5FD4 @ =gUnknown_2037F1A
-_080B5F2C:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xE0
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- mov r9, r0
- mov r8, r5
- mov r2, r9
- subs r4, r2, r5
- lsls r4, 16
- lsrs r4, 16
- lsls r0, r6, 4
- strh r0, [r7, 0x2E]
- lsls r0, r5, 4
- strh r0, [r7, 0x30]
- mov r1, r10
- subs r0, r1, r6
- lsls r0, 4
- ldr r5, _080B5FD8 @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r7, 0x32]
- lsls r4, 16
- asrs r4, 12
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl __divsi3
- strh r0, [r7, 0x34]
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0x36]
- mov r1, r10
- strh r1, [r7, 0x38]
- mov r2, r9
- strh r2, [r7, 0x3A]
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r7, 0x3C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x5]
- strh r6, [r7, 0x20]
- mov r2, r8
- strh r2, [r7, 0x22]
- ldr r0, _080B5FDC @ =sub_80B5FE0
- str r0, [r7, 0x1C]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5FD0: .4byte gUnknown_2037F1B
-_080B5FD4: .4byte gUnknown_2037F1A
-_080B5FD8: .4byte gUnknown_2037F02
-_080B5FDC: .4byte sub_80B5FE0
- thumb_func_end sub_80B5EC0
-
- thumb_func_start sub_80B5FE0
-sub_80B5FE0: @ 80B5FE0
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x36]
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080B6018
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x2E]
- adds r0, r4
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r1, r4
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080B6018
- strh r0, [r2, 0x2E]
-_080B6018:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5FE0
-
- thumb_func_start sub_80B6020
-sub_80B6020: @ 80B6020
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B6170 @ =gTasks
- adds r1, r0
- str r1, [sp]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0
- ldr r1, [sp]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- strh r0, [r1, 0x16]
- strh r0, [r1, 0x18]
- movs r0, 0x10
- strh r0, [r1, 0x1A]
- ldr r2, _080B6174 @ =gUnknown_2037F02
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldr r4, _080B6178 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8076B2C
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B6090
- b _080B618C
-_080B6090:
- movs r4, 0
-_080B6092:
- lsls r1, r4, 16
- asrs r3, r1, 16
- ldr r0, _080B6178 @ =gUnknown_2037F1A
- ldrb r2, [r0]
- str r1, [sp, 0x10]
- cmp r3, r2
- beq _080B615E
- movs r0, 0x2
- eors r2, r0
- cmp r3, r2
- beq _080B615E
- lsls r0, r4, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B615E
- ldr r6, [sp, 0x4]
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- asrs r7, r0, 16
- ldr r0, _080B617C @ =gUnknown_83E7668
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080B615E
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8076B2C
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r1, _080B6180 @ =gSprites
- adds r4, r5, r1
- lsls r0, r6, 4
- strh r0, [r4, 0x2E]
- lsls r0, r7, 4
- strh r0, [r4, 0x30]
- mov r2, r10
- subs r0, r2, r6
- lsls r0, 4
- ldr r3, _080B6174 @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- lsls r0, r3, 16
- asrs r0, 16
- subs r0, r7
- lsls r0, 4
- ldr r2, _080B6174 @ =gUnknown_2037F02
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080B6174 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- ldr r0, _080B6184 @ =gSprites + 0x1C
- adds r5, r0
- ldr r0, _080B6188 @ =sub_80B5FE0
- str r0, [r5]
- ldr r2, [sp]
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- adds r1, 0xD
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
-_080B615E:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080B6092
- b _080B6210
- .align 2, 0
-_080B6170: .4byte gTasks
-_080B6174: .4byte gUnknown_2037F02
-_080B6178: .4byte gUnknown_2037F1A
-_080B617C: .4byte gUnknown_83E7668
-_080B6180: .4byte gSprites
-_080B6184: .4byte gSprites + 0x1C
-_080B6188: .4byte sub_80B5FE0
-_080B618C:
- ldr r0, _080B6228 @ =gUnknown_83E7668
- ldr r7, [sp, 0x4]
- ldr r2, [sp, 0x8]
- lsls r1, r2, 16
- asrs r1, 16
- str r1, [sp, 0xC]
- adds r1, r7, 0
- ldr r2, [sp, 0xC]
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080B6210
- movs r3, 0x30
- mov r10, r3
- movs r0, 0x28
- mov r9, r0
- ldr r6, _080B622C @ =gSprites
- mov r1, r8
- lsls r5, r1, 4
- add r5, r8
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, r7, 4
- strh r0, [r4, 0x2E]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 4
- strh r0, [r4, 0x30]
- subs r0, r3, r7
- lsls r0, 4
- ldr r3, _080B6230 @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- ldr r1, [sp, 0xC]
- subs r0, r3, r1
- lsls r0, 4
- ldr r2, _080B6230 @ =gUnknown_2037F02
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080B6230 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, _080B6234 @ =sub_80B5FE0
- str r0, [r5]
- mov r1, r8
- ldr r0, [sp]
- strh r1, [r0, 0x22]
- movs r0, 0x1
- ldr r2, [sp]
- strh r0, [r2, 0x20]
-_080B6210:
- ldr r0, _080B6238 @ =sub_80B623C
- ldr r3, [sp]
- str r0, [r3]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6228: .4byte gUnknown_83E7668
-_080B622C: .4byte gSprites
-_080B6230: .4byte gUnknown_2037F02
-_080B6234: .4byte sub_80B5FE0
-_080B6238: .4byte sub_80B623C
- thumb_func_end sub_80B6020
-
- thumb_func_start sub_80B623C
-sub_80B623C: @ 80B623C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B6260 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080B62F2
- cmp r1, 0x1
- bgt _080B6264
- cmp r1, 0
- beq _080B6272
- b _080B63AE
- .align 2, 0
-_080B6260: .4byte gTasks
-_080B6264:
- cmp r1, 0x2
- bne _080B626A
- b _080B6384
-_080B626A:
- cmp r1, 0x3
- bne _080B6270
- b _080B6398
-_080B6270:
- b _080B63AE
-_080B6272:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B62D8
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B62D8
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B62A8
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080B62B6
- adds r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080B62B6
-_080B62A8:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B62B6
- subs r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080B62B6:
- ldrh r1, [r4, 0x1A]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- ble _080B62D8
- movs r0, 0
- strh r0, [r4, 0x16]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_080B62D8:
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B62E8
- subs r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _080B63AE
-_080B62E8:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B63AE
- b _080B6390
-_080B62F2:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B63AE
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- ands r0, r1
- lsls r0, 16
- cmp r0, 0
- beq _080B6322
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B6330
- subs r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080B6330
-_080B6322:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080B6330
- adds r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080B6330:
- ldrh r1, [r4, 0x1A]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, [r4, 0x18]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080B63AE
- movs r5, 0
- b _080B6374
-_080B6350:
- adds r1, r5, 0
- adds r1, 0xD
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B6380 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080B6374:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _080B6350
- b _080B6390
- .align 2, 0
-_080B6380: .4byte gSprites
-_080B6384:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- cmp r0, 0
- ble _080B63AE
-_080B6390:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B63AE
-_080B6398:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B63AE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B623C
-
- thumb_func_start sub_80B63B4
-sub_80B63B4: @ 80B63B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080B6400 @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080B6404 @ =gUnknown_2022986
- strh r1, [r0]
- ldr r1, _080B6408 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080B640C @ =0x00003f1f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0xC8
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0x10
- bl SetGpuReg
- ldr r0, _080B6410 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B63FC
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080B6414
-_080B63FC:
- movs r6, 0x28
- b _080B6416
- .align 2, 0
-_080B6400: .4byte gUnknown_2022984
-_080B6404: .4byte gUnknown_2022986
-_080B6408: .4byte 0x00003f3f
-_080B640C: .4byte 0x00003f1f
-_080B6410: .4byte gUnknown_2037F1A
-_080B6414:
- movs r6, 0xC8
-_080B6416:
- ldr r1, _080B6454 @ =gUnknown_2022984
- lsls r3, r6, 16
- asrs r2, r3, 16
- lsls r0, r2, 8
- orrs r0, r2
- strh r0, [r1]
- ldr r1, _080B6458 @ =gUnknown_2022986
- movs r5, 0x28
- ldr r0, _080B645C @ =0x00002828
- strh r0, [r1]
- lsrs r3, 16
- movs r1, 0xF0
- subs r1, r2
- movs r4, 0x48
- ldr r2, _080B6460 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- strh r3, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r5, [r0, 0xE]
- strh r4, [r0, 0x10]
- strh r6, [r0, 0x12]
- strh r5, [r0, 0x14]
- ldr r1, _080B6464 @ =sub_80B6468
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6454: .4byte gUnknown_2022984
-_080B6458: .4byte gUnknown_2022986
-_080B645C: .4byte 0x00002828
-_080B6460: .4byte gTasks
-_080B6464: .4byte sub_80B6468
- thumb_func_end sub_80B63B4
-
- thumb_func_start sub_80B6468
-sub_80B6468: @ 80B6468
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B6588 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- ldrh r5, [r4, 0xA]
- ldrh r7, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- mov r10, r0
- ldrh r2, [r4, 0x10]
- str r2, [sp, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r2, [r4, 0x14]
- mov r8, r2
- lsls r1, 16
- asrs r6, r1, 16
- cmp r6, 0xF
- ble _080B64A4
- b _080B6594
-_080B64A4:
- lsls r0, 16
- asrs r0, 16
- bl __floatsidf
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- lsls r0, r5, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080B658C @ =0x3fb00000
- ldr r3, _080B6590 @ =0x00000000
- bl __muldf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- bl __floatsidf
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r0, r7, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080B658C @ =0x3fb00000
- ldr r3, _080B6590 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- adds r5, r1, 0
- adds r4, r0, 0
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080B658C @ =0x3fb00000
- ldr r3, _080B6590 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, [sp, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080B658C @ =0x3fb00000
- ldr r3, _080B6590 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r5, r0, 16
- b _080B65C2
- .align 2, 0
-_080B6588: .4byte gTasks
-_080B658C: .4byte 0x3fb00000
-_080B6590: .4byte 0x00000000
-_080B6594:
- movs r2, 0
- mov r9, r2
- movs r7, 0xF0
- movs r6, 0
- movs r5, 0x70
- str r6, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_8075BE8
- lsls r0, 16
- lsrs r0, 16
- str r6, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080B65E4 @ =sub_80B65F0
- str r0, [r4]
-_080B65C2:
- ldr r1, _080B65E8 @ =gUnknown_2022984
- mov r2, r9
- lsls r0, r2, 8
- orrs r7, r0
- strh r7, [r1]
- ldr r1, _080B65EC @ =gUnknown_2022986
- lsls r0, r6, 8
- orrs r5, r0
- strh r5, [r1]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B65E4: .4byte sub_80B65F0
-_080B65E8: .4byte gUnknown_2022984
-_080B65EC: .4byte gUnknown_2022986
- thumb_func_end sub_80B6468
-
- thumb_func_start sub_80B65F0
-sub_80B65F0: @ 80B65F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080B663C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080B6636
- ldr r0, _080B6640 @ =gUnknown_2022984
- strh r1, [r0]
- ldr r0, _080B6644 @ =gUnknown_2022986
- strh r1, [r0]
- ldr r4, _080B6648 @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B6636:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B663C: .4byte gPaletteFade
-_080B6640: .4byte gUnknown_2022984
-_080B6644: .4byte gUnknown_2022986
-_080B6648: .4byte 0x00003f3f
- thumb_func_end sub_80B65F0
-
- thumb_func_start sub_80B664C
-sub_80B664C: @ 80B664C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080B6678 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B6680
- movs r2, 0x18
- ldr r3, _080B667C @ =0x0000fffe
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
- b _080B6684
- .align 2, 0
-_080B6678: .4byte gUnknown_2037F1A
-_080B667C: .4byte 0x0000fffe
-_080B6680:
- ldr r2, _080B66A0 @ =0x0000ffe8
- movs r3, 0x2
-_080B6684:
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r3, [r4, 0x30]
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080B66A4 @ =sub_80B66A8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B66A0: .4byte 0x0000ffe8
-_080B66A4: .4byte sub_80B66A8
- thumb_func_end sub_80B664C
-
- thumb_func_start sub_80B66A8
-sub_80B66A8: @ 80B66A8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080B66BA
- subs r0, r1, 0x1
- b _080B671E
-_080B66BA:
- ldrh r0, [r3, 0x30]
- ldrh r4, [r3, 0x24]
- adds r1, r0, r4
- strh r1, [r3, 0x24]
- adds r0, r1, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bls _080B6720
- ldrh r0, [r3, 0x20]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0
- strh r0, [r3, 0x24]
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r4, _080B670C @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080B6710 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080B671C
- movs r0, 0x1E
- strh r0, [r3, 0x2E]
- ldr r0, _080B6714 @ =sub_8074C44
- str r0, [r3, 0x1C]
- ldr r1, _080B6718 @ =sub_80B6728
- adds r0, r3, 0
- bl StoreSpriteCallbackInData6
- b _080B6720
- .align 2, 0
-_080B670C: .4byte 0x000003ff
-_080B6710: .4byte 0xfffffc00
-_080B6714: .4byte sub_8074C44
-_080B6718: .4byte sub_80B6728
-_080B671C:
- movs r0, 0x28
-_080B671E:
- strh r0, [r3, 0x2E]
-_080B6720:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B66A8
-
- thumb_func_start sub_80B6728
-sub_80B6728: @ 80B6728
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _080B6752
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- b _080B6796
-_080B6752:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bgt _080B6762
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080B6796
-_080B6762:
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x10
- subs r1, r0
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080B6796
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B679C @ =sub_80B67A0
- str r0, [r4, 0x1C]
-_080B6796:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B679C: .4byte sub_80B67A0
- thumb_func_end sub_80B6728
-
- thumb_func_start sub_80B67A0
-sub_80B67A0: @ 80B67A0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- ldr r0, _080B67CC @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080B67D0 @ =gUnknown_2022986
- strh r1, [r0]
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B67CC: .4byte gUnknown_2022984
-_080B67D0: .4byte gUnknown_2022986
- thumb_func_end sub_80B67A0
-
- thumb_func_start sub_80B67D4
-sub_80B67D4: @ 80B67D4
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r1, 0xC
- bl Sin
- strh r0, [r5, 0x24]
- ldr r0, _080B683C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B67F8
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080B67F8:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080B6844
- ldr r0, _080B6840 @ =0x0000050b
- strh r0, [r5, 0x3A]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r5, 0x3A]
- movs r0, 0x52
- bl SetGpuReg
- b _080B689C
- .align 2, 0
-_080B683C: .4byte gUnknown_2037F1A
-_080B6840: .4byte 0x0000050b
-_080B6844:
- cmp r0, 0x1E
- ble _080B689C
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x3A]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- movs r6, 0xFF
- ands r6, r1
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r7, r0, 16
- cmp r7, 0x10
- bls _080B6868
- movs r7, 0x10
-_080B6868:
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r0, 0
- bge _080B6874
- movs r6, 0
-_080B6874:
- lsls r4, r7, 8
- orrs r4, r6
- lsls r1, r4, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- strh r4, [r5, 0x3A]
- cmp r7, 0x10
- bne _080B689C
- cmp r6, 0
- bne _080B689C
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B68A4 @ =sub_80B68A8
- str r0, [r5, 0x1C]
-_080B689C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B68A4: .4byte sub_80B68A8
- thumb_func_end sub_80B67D4
-
- thumb_func_start sub_80B68A8
-sub_80B68A8: @ 80B68A8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B68A8
-
- thumb_func_start sub_80B68C8
-sub_80B68C8: @ 80B68C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080B6960 @ =gTasks
- adds r4, r0
- movs r6, 0
- strh r6, [r4, 0x8]
- movs r0, 0x10
- mov r8, r0
- mov r0, r8
- strh r0, [r4, 0xA]
- ldr r5, _080B6964 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- ldrb r0, [r5]
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8076B2C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- adds r1, 0x8
- strh r1, [r4, 0x1E]
- strh r6, [r4, 0x16]
- ldrb r0, [r5]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- ldrb r0, [r5]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r4, 0x14]
- strh r6, [r4, 0xE]
- mov r0, r8
- strh r0, [r4, 0x10]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- strh r6, [r4, 0x18]
- ldr r0, _080B6968 @ =sub_80B696C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6960: .4byte gTasks
-_080B6964: .4byte gUnknown_2037F1A
-_080B6968: .4byte sub_80B696C
- thumb_func_end sub_80B68C8
-
- thumb_func_start sub_80B696C
-sub_80B696C: @ 80B696C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080B6990 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080B6986
- b _080B6AF2
-_080B6986:
- lsls r0, 2
- ldr r1, _080B6994 @ =_080B6998
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B6990: .4byte gTasks
-_080B6994: .4byte _080B6998
- .align 2, 0
-_080B6998:
- .4byte _080B69B0
- .4byte _080B6A20
- .4byte _080B6A62
- .4byte _080B6A76
- .4byte _080B6ACC
- .4byte _080B6ADC
-_080B69B0:
- movs r6, 0
-_080B69B2:
- movs r2, 0x1A
- ldrsh r1, [r4, r2]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- ldrb r3, [r4, 0x14]
- ldr r0, _080B6A14 @ =gUnknown_83E76E0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080B6A06
- ldr r1, _080B6A18 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- strh r7, [r5, 0x2E]
- ldr r0, _080B6A1C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080B69E8
- movs r1, 0x1
-_080B69E8:
- strh r1, [r5, 0x30]
- movs r0, 0x2A
- muls r0, r6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x1E]
- strh r0, [r5, 0x34]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080B6A06:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080B69B2
- b _080B6AD4
- .align 2, 0
-_080B6A14: .4byte gUnknown_83E76E0
-_080B6A18: .4byte gSprites
-_080B6A1C: .4byte gUnknown_2037F1A
-_080B6A20:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B6A3E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xD
- bgt _080B6A4C
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080B6A4C
-_080B6A3E:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- ble _080B6A4C
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080B6A4C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r2, [r4, 0xE]
- ldrh r1, [r4, 0x10]
- cmp r0, 0xE
- bne _080B6ABC
- cmp r1, 0x4
- bne _080B6ABC
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080B6AB6
-_080B6A62:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080B6AF2
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080B6AD4
-_080B6A76:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B6A94
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080B6AA2
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080B6AA2
-_080B6A94:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080B6AA2
- adds r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080B6AA2:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r2, [r4, 0xE]
- ldrh r1, [r4, 0x10]
- cmp r0, 0
- bne _080B6ABC
- cmp r1, 0x10
- bne _080B6ABC
- movs r0, 0x1
- strh r0, [r4, 0x18]
-_080B6AB6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6ABC:
- lsls r1, 8
- orrs r1, r2
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- b _080B6AF2
-_080B6ACC:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B6AF2
-_080B6AD4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B6AF2
-_080B6ADC:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080B6AF2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B696C
-
- thumb_func_start sub_80B6AF8
-sub_80B6AF8: @ 80B6AF8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B6B0A
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- b _080B6B0E
-_080B6B0A:
- ldrh r0, [r4, 0x32]
- subs r0, 0x2
-_080B6B0E:
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7E
- bhi _080B6B50
- ldr r2, _080B6B4C @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x12]
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- b _080B6B64
- .align 2, 0
-_080B6B4C: .4byte gTasks
-_080B6B50:
- ldr r2, _080B6BB8 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x3
- ldrb r1, [r0, 0x12]
- ands r1, r2
-_080B6B64:
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r0, 3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r1, 0x7
- bl Sin
- strh r0, [r4, 0x26]
- ldr r2, _080B6BB8 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x18
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080B6BB2
- ldrh r0, [r1, 0x16]
- subs r0, 0x1
- strh r0, [r1, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080B6BB2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6BB8: .4byte gTasks
- thumb_func_end sub_80B6AF8
-
- thumb_func_start sub_80B6BBC
-sub_80B6BBC: @ 80B6BBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080B6BDC @ =gTasks
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- ldr r2, _080B6BE0 @ =sub_80B6BE4
- str r2, [r1]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080B6BDC: .4byte gTasks
-_080B6BE0: .4byte sub_80B6BE4
- thumb_func_end sub_80B6BBC
-
- thumb_func_start sub_80B6BE4
-sub_80B6BE4: @ 80B6BE4
- push {r4-r6,lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B6C18 @ =gTasks
- adds r6, r1, r0
- ldr r0, _080B6C1C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0x26
- ldrsh r0, [r6, r1]
- cmp r0, 0x7
- bls _080B6C0C
- b _080B6F1E
-_080B6C0C:
- lsls r0, 2
- ldr r1, _080B6C20 @ =_080B6C24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B6C18: .4byte gTasks
-_080B6C1C: .4byte gUnknown_2037F1A
-_080B6C20: .4byte _080B6C24
- .align 2, 0
-_080B6C24:
- .4byte _080B6C44
- .4byte _080B6CCC
- .4byte _080B6D28
- .4byte _080B6D8C
- .4byte _080B6E04
- .4byte _080B6E6C
- .4byte _080B6E82
- .4byte _080B6EEC
-_080B6C44:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x2
- bl SetAnimBgAttribute
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0
- strh r0, [r6, 0xA]
- strh r0, [r6, 0xC]
- movs r0, 0x10
- strh r0, [r6, 0xE]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x10]
- ldr r3, _080B6CC8 @ =gSprites
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsls r0, 28
- lsrs r0, 30
- strh r0, [r6, 0x12]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r6, 0x14]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r0, 0x10
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r0, 0x80
- strh r0, [r6, 0x16]
- b _080B6F1E
- .align 2, 0
-_080B6CC8: .4byte gSprites
-_080B6CCC:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- beq _080B6CDC
- b _080B6F24
-_080B6CDC:
- ldrh r0, [r6, 0x14]
- ldrb r2, [r6, 0xC]
- ldr r4, _080B6D08 @ =0x000066e0
- movs r1, 0x10
- adds r3, r4, 0
- bl BlendPalette
- ldrh r0, [r6, 0x16]
- ldrb r2, [r6, 0xC]
- movs r1, 0x10
- adds r3, r4, 0
- bl BlendPalette
- ldrh r1, [r6, 0xC]
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0xB
- bgt _080B6D0C
- adds r0, r1, 0x1
- strh r0, [r6, 0xC]
- b _080B6F24
- .align 2, 0
-_080B6D08: .4byte 0x000066e0
-_080B6D0C:
- strh r5, [r6, 0xA]
- strh r5, [r6, 0xC]
- ldr r1, _080B6D24 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- b _080B6F1E
- .align 2, 0
-_080B6D24: .4byte 0x00003f44
-_080B6D28:
- movs r0, 0x2
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- ldr r0, _080B6D7C @ =gUnknown_202297C
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080B6D80 @ =gUnknown_202297E
- strh r1, [r4]
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x1A
- bl SetGpuReg
- add r0, sp, 0xC
- movs r1, 0x2
- bl sub_80752C8
- add r0, sp, 0xC
- ldrb r0, [r0, 0x9]
- ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
- add r2, sp, 0xC
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
- add r1, sp, 0xC
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080B6F1E
- .align 2, 0
-_080B6D7C: .4byte gUnknown_202297C
-_080B6D80: .4byte gUnknown_202297E
-_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
-_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
-_080B6D8C:
- add r0, sp, 0xC
- movs r1, 0x2
- bl sub_80752C8
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- adds r1, r0, 0
- ldr r5, _080B6DFC @ =gMonSpritesGfxPtr
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- str r1, [r0]
- ldr r0, _080B6E00 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
- bl LZDecompressWram
- add r0, sp, 0xC
- ldrb r0, [r0, 0x8]
- ldr r1, [r5]
- adds r1, r4
- ldr r1, [r1]
- movs r2, 0x80
- lsls r2, 1
- movs r3, 0
- bl sub_80730C0
- add r0, sp, 0xC
- ldrb r0, [r0, 0x9]
- ldr r1, [r5]
- adds r1, r4
- ldr r1, [r1]
- movs r2, 0x20
- str r2, [sp]
- str r2, [sp, 0x4]
- movs r2, 0x11
- str r2, [sp, 0x8]
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- ldr r0, [r5]
- adds r0, r4
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- str r1, [r0]
- b _080B6F1E
- .align 2, 0
-_080B6DFC: .4byte gMonSpritesGfxPtr
-_080B6E00: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
-_080B6E04:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B6E14
- b _080B6F24
-_080B6E14:
- ldrh r1, [r6, 0xC]
- adds r1, 0x1
- strh r1, [r6, 0xC]
- ldrh r0, [r6, 0xE]
- subs r0, 0x1
- strh r0, [r6, 0xE]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080B6F24
- strh r0, [r6, 0xA]
- strh r0, [r6, 0xC]
- movs r0, 0x10
- strh r0, [r6, 0xE]
- ldr r1, _080B6E68 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x2
- bl SetAnimBgAttribute
- b _080B6F1E
- .align 2, 0
-_080B6E68: .4byte 0x00003f42
-_080B6E6C:
- cmp r4, 0x1
- bne _080B6E76
- movs r1, 0x80
- lsls r1, 2
- b _080B6E7A
-_080B6E76:
- movs r1, 0x80
- lsls r1, 3
-_080B6E7A:
- movs r0, 0
- bl ClearGpuRegBits
- b _080B6F1E
-_080B6E82:
- ldr r2, _080B6EC0 @ =gSprites
- movs r0, 0x10
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- subs r1, 0x20
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _080B6EA2
- movs r2, 0
-_080B6EA2:
- cmp r4, 0x1
- bne _080B6EC4
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x4
- str r2, [sp, 0x4]
- str r4, [sp, 0x8]
- b _080B6EDE
- .align 2, 0
-_080B6EC0: .4byte gSprites
-_080B6EC4:
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x8
- str r2, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
- movs r2, 0x4
-_080B6EDE:
- movs r3, 0x8
- bl sub_8088230
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1C]
- b _080B6F1E
-_080B6EEC:
- ldrh r0, [r6, 0x16]
- ldr r3, _080B6F08 @ =0x000077ff
- movs r1, 0x10
- movs r2, 0xC
- bl BlendPalette
- cmp r4, 0x1
- bne _080B6F0C
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _080B6F16
- .align 2, 0
-_080B6F08: .4byte 0x000077ff
-_080B6F0C:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_080B6F16:
- ldr r0, _080B6F2C @ =sub_80B6F30
- str r0, [r6]
- movs r0, 0
- strh r0, [r6, 0x26]
-_080B6F1E:
- ldrh r0, [r6, 0x26]
- adds r0, 0x1
- strh r0, [r6, 0x26]
-_080B6F24:
- add sp, 0x1C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6F2C: .4byte sub_80B6F30
- thumb_func_end sub_80B6BE4
-
- thumb_func_start sub_80B6F30
-sub_80B6F30: @ 80B6F30
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B6FB8 @ =gTasks
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- strh r0, [r4, 0x18]
- cmp r0, 0
- bne _080B6F68
- ldr r1, _080B6FBC @ =gUnknown_825E074
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- strh r0, [r4, 0xC]
-_080B6F68:
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _080B6F8A
- ldr r1, _080B6FBC @ =gUnknown_825E074
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- movs r1, 0x10
- subs r1, r0
- strh r1, [r4, 0xE]
-_080B6F8A:
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0xC]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- bne _080B6FB2
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080B6FC0 @ =sub_80B6FC4
- str r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
-_080B6FB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6FB8: .4byte gTasks
-_080B6FBC: .4byte gUnknown_825E074
-_080B6FC0: .4byte sub_80B6FC4
- thumb_func_end sub_80B6F30
-
- thumb_func_start sub_80B6FC4
-sub_80B6FC4: @ 80B6FC4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080B6FE8 @ =gTasks
- adds r6, r0, r1
- movs r1, 0x26
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _080B6FDE
- b _080B7148
-_080B6FDE:
- lsls r0, 2
- ldr r1, _080B6FEC @ =_080B6FF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B6FE8: .4byte gTasks
-_080B6FEC: .4byte _080B6FF0
- .align 2, 0
-_080B6FF0:
- .4byte _080B7008
- .4byte _080B7024
- .4byte _080B7044
- .4byte _080B707C
- .4byte _080B709C
- .4byte _080B70E8
-_080B7008:
- ldr r1, _080B701C @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
- ldrh r0, [r6, 0x16]
- ldr r3, _080B7020 @ =0x000066e0
- movs r1, 0x10
- movs r2, 0xC
- bl BlendPalette
- b _080B7148
- .align 2, 0
-_080B701C: .4byte gUnknown_2039600
-_080B7020: .4byte 0x000066e0
-_080B7024:
- ldr r1, _080B7040 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- movs r1, 0
- movs r0, 0x10
- strh r0, [r6, 0xC]
- strh r1, [r6, 0xE]
- b _080B7148
- .align 2, 0
-_080B7040: .4byte 0x00003f44
-_080B7044:
- ldrh r1, [r6, 0xC]
- subs r1, 0x1
- strh r1, [r6, 0xC]
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xE
- ldrsh r0, [r6, r2]
- cmp r0, 0xF
- ble _080B714E
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x2
- bl SetAnimBgAttribute
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x2
- bl SetAnimBgAttribute
- b _080B7148
-_080B707C:
- movs r0, 0x2
- bl sub_8075358
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
- movs r0, 0x2
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0xC
- strh r0, [r6, 0xA]
- b _080B7148
-_080B709C:
- ldrh r0, [r6, 0x14]
- ldrb r2, [r6, 0xA]
- ldr r4, _080B70C8 @ =0x000066e0
- movs r1, 0x10
- adds r3, r4, 0
- bl BlendPalette
- ldrh r0, [r6, 0x16]
- ldrb r2, [r6, 0xA]
- movs r1, 0x10
- adds r3, r4, 0
- bl BlendPalette
- ldrh r0, [r6, 0xA]
- movs r2, 0xA
- ldrsh r1, [r6, r2]
- cmp r1, 0
- beq _080B70CC
- subs r0, 0x1
- strh r0, [r6, 0xA]
- b _080B714E
- .align 2, 0
-_080B70C8: .4byte 0x000066e0
-_080B70CC:
- strh r1, [r6, 0xA]
- ldr r1, _080B70E4 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- b _080B7148
- .align 2, 0
-_080B70E4: .4byte 0x00003f44
-_080B70E8:
- ldr r5, _080B7154 @ =gSprites
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x3
- ldrb r2, [r6, 0x12]
- ands r2, r0
- lsls r2, 2
- ldrb r4, [r1, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r0, r4
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r3, r1
- strb r3, [r0, 0x1]
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080B7148:
- ldrh r0, [r6, 0x26]
- adds r0, 0x1
- strh r0, [r6, 0x26]
-_080B714E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7154: .4byte gSprites
- thumb_func_end sub_80B6FC4
-
- thumb_func_start sub_80B7158
-sub_80B7158: @ 80B7158
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r2, _080B719C @ =gUnknown_2023D44
- ldr r1, _080B71A0 @ =gUnknown_2037F1A
- ldrb r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- strh r1, [r0, 0x38]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0xA
- strh r1, [r0, 0x30]
- ldr r2, _080B71A4 @ =gUnknown_2037F02
- ldrh r1, [r2]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x34]
- ldr r1, _080B71A8 @ =sub_80B71B0
- str r1, [r0, 0x1C]
- ldr r2, _080B71AC @ =gSprites
- movs r3, 0x38
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080B719C: .4byte gUnknown_2023D44
-_080B71A0: .4byte gUnknown_2037F1A
-_080B71A4: .4byte gUnknown_2037F02
-_080B71A8: .4byte sub_80B71B0
-_080B71AC: .4byte gSprites
- thumb_func_end sub_80B7158
-
- thumb_func_start sub_80B71B0
-sub_80B71B0: @ 80B71B0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- movs r1, 0x34
- ldrsh r3, [r5, r1]
- cmp r3, 0
- beq _080B7218
- subs r0, 0x1
- strh r0, [r5, 0x34]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r4, _080B7210 @ =gSprites
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Cos
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x32]
- ldrh r2, [r5, 0x2E]
- adds r1, r0, r2
- strh r1, [r5, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080B724C
- ldr r2, _080B7214 @ =0xffffff00
- adds r0, r1, r2
- strh r0, [r5, 0x2E]
- b _080B724C
- .align 2, 0
-_080B7210: .4byte gSprites
-_080B7214: .4byte 0xffffff00
-_080B7218:
- ldr r2, _080B7254 @ =gSprites
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x8
- strh r1, [r0, 0x22]
- ldr r0, _080B7258 @ =move_anim_8074EE0
- str r0, [r5, 0x1C]
-_080B724C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7254: .4byte gSprites
-_080B7258: .4byte move_anim_8074EE0
- thumb_func_end sub_80B71B0
-
- thumb_func_start sub_80B725C
-sub_80B725C: @ 80B725C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B72A4 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B72AC
- ldr r2, _080B72A8 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x6]
- negs r0, r0
- strh r0, [r2, 0x6]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r2, 0x8]
- adds r1, r2, 0
- b _080B72B6
- .align 2, 0
-_080B72A4: .4byte gUnknown_2037F1A
-_080B72A8: .4byte gUnknown_2037F02
-_080B72AC:
- ldr r1, _080B72EC @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080B72B6:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080B72F0 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080B72F4 @ =sub_8074E70
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B72EC: .4byte gUnknown_2037F02
-_080B72F0: .4byte move_anim_8074EE0
-_080B72F4: .4byte sub_8074E70
- thumb_func_end sub_80B725C
-
- thumb_func_start sub_80B72F8
-sub_80B72F8: @ 80B72F8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8074FCC
- ldr r4, _080B7350 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080B7354 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B735C
- ldr r2, _080B7358 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x32]
- ldrh r1, [r2, 0x4]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- b _080B7386
- .align 2, 0
-_080B7350: .4byte gUnknown_2037F1B
-_080B7354: .4byte gUnknown_2037F1A
-_080B7358: .4byte gUnknown_2037F02
-_080B735C:
- ldr r1, _080B73A0 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080B7386:
- ldr r0, _080B73A0 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080B73A4 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080B73A8 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B73A0: .4byte gUnknown_2037F02
-_080B73A4: .4byte sub_8075590
-_080B73A8: .4byte move_anim_8074EE0
- thumb_func_end sub_80B72F8
-
- thumb_func_start sub_80B73AC
-sub_80B73AC: @ 80B73AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B73C0 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B73C8
- ldr r4, _080B73C4 @ =gUnknown_2037F1A
- b _080B73CA
- .align 2, 0
-_080B73C0: .4byte gUnknown_2037F02
-_080B73C4: .4byte gUnknown_2037F1A
-_080B73C8:
- ldr r4, _080B740C @ =gUnknown_2037F1B
-_080B73CA:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080B7410 @ =gUnknown_2037F02
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8074FF8
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, _080B7414 @ =sub_8074F6C
- str r0, [r5, 0x1C]
- ldr r1, _080B7418 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B740C: .4byte gUnknown_2037F1B
-_080B7410: .4byte gUnknown_2037F02
-_080B7414: .4byte sub_8074F6C
-_080B7418: .4byte move_anim_8074EE0
- thumb_func_end sub_80B73AC
-
- thumb_func_start sub_80B741C
-sub_80B741C: @ 80B741C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080B7444 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B7436
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080B7436:
- adds r0, r4, 0
- bl sub_80B72F8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7444: .4byte gUnknown_2037F1A
- thumb_func_end sub_80B741C
-
- thumb_func_start sub_80B7448
-sub_80B7448: @ 80B7448
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r4, _080B749C @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x36]
- movs r0, 0x1
- strh r0, [r6, 0x38]
- ldr r0, _080B74A0 @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r6, 0x3A]
- ldr r4, _080B74A4 @ =sBattler_AI
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8076B2C
- lsls r7, r0, 16
- lsrs r5, r7, 16
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8076B2C
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r5, r0
- bls _080B74A8
- lsrs r0, r7, 17
- b _080B74AA
- .align 2, 0
-_080B749C: .4byte gUnknown_2037F1A
-_080B74A0: .4byte gUnknown_2037F02
-_080B74A4: .4byte sBattler_AI
-_080B74A8:
- lsrs r0, r1, 17
-_080B74AA:
- strh r0, [r6, 0x3C]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Cos
- strh r0, [r6, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- ldr r0, _080B74D4 @ =sub_80B74D8
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B74D4: .4byte sub_80B74D8
- thumb_func_end sub_80B7448
-
- thumb_func_start sub_80B74D8
-sub_80B74D8: @ 80B74D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080B74EA
- cmp r5, 0x1
- beq _080B7556
- b _080B75DA
-_080B74EA:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080B753C
- strh r5, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080B753C
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080B753C
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080B753C:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B75DA
- movs r0, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080B75DA
-_080B7556:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x95
- bgt _080B757E
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x95
- ble _080B757E
- movs r0, 0x96
- strh r0, [r4, 0x3C]
-_080B757E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080B75C6
- movs r0, 0
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080B75C6
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080B75C6
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080B75C6:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B75DA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B75DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B74D8
-
- thumb_func_start sub_80B75E0
-sub_80B75E0: @ 80B75E0
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B760C @ =gTasks
- adds r4, r1, r0
- ldr r0, _080B7610 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B761C
- ldr r0, _080B7614 @ =0x04000014
- str r0, [sp]
- ldr r0, _080B7618 @ =gUnknown_2022978
- b _080B7622
- .align 2, 0
-_080B760C: .4byte gTasks
-_080B7610: .4byte gUnknown_2037F1A
-_080B7614: .4byte 0x04000014
-_080B7618: .4byte gUnknown_2022978
-_080B761C:
- ldr r0, _080B7698 @ =0x04000018
- str r0, [sp]
- ldr r0, _080B769C @ =gUnknown_202297C
-_080B7622:
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
- ldr r0, _080B76A0 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r5, [r0, 0x9]
- ldr r0, _080B76A4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0xE]
- adds r0, 0x20
- strh r0, [r4, 0x10]
- cmp r1, 0
- bge _080B7652
- strh r5, [r4, 0xE]
-_080B7652:
- ldrh r3, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bgt _080B7680
- ldr r5, _080B76A8 @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080B7664:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- ble _080B7664
-_080B7680:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- ldr r0, _080B76AC @ =sub_80B76B0
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7698: .4byte 0x04000018
-_080B769C: .4byte gUnknown_202297C
-_080B76A0: .4byte 0xa2600001
-_080B76A4: .4byte gUnknown_2037F1A
-_080B76A8: .4byte gUnknown_2038700
-_080B76AC: .4byte sub_80B76B0
- thumb_func_end sub_80B75E0
-
- thumb_func_start sub_80B76B0
-sub_80B76B0: @ 80B76B0
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080B76D4 @ =gTasks
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _080B7766
- lsls r0, 2
- ldr r1, _080B76D8 @ =_080B76DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B76D4: .4byte gTasks
-_080B76D8: .4byte _080B76DC
- .align 2, 0
-_080B76DC:
- .4byte _080B76F0
- .4byte _080B7712
- .4byte _080B7722
- .4byte _080B774E
- .4byte _080B7760
-_080B76F0:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B7746
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- adds r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080B7746
- b _080B7740
-_080B7712:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B7746
- b _080B7740
-_080B7722:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B7746
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- subs r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080B7746
-_080B7740:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_080B7746:
- adds r0, r2, 0
- bl sub_80B776C
- b _080B7766
-_080B774E:
- ldr r1, _080B775C @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080B7766
- .align 2, 0
-_080B775C: .4byte gUnknown_2039600
-_080B7760:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080B7766:
- pop {r0}
- bx r0
- thumb_func_end sub_80B76B0
-
- thumb_func_start sub_80B776C
-sub_80B776C: @ 80B776C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r3, [r5, 0x12]
- ldrh r4, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r4, r0
- bgt _080B77C2
- ldr r7, _080B77D8 @ =gUnknown_2038700
- mov r12, r7
- ldr r0, _080B77DC @ =gUnknown_825E074
- mov r8, r0
- ldr r6, _080B77E0 @ =gUnknown_2039600
-_080B778A:
- lsls r2, r4, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- lsls r0, r3, 1
- add r0, r8
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x14
- ldrsh r0, [r5, r7]
- muls r0, r1
- asrs r0, 7
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r2]
- adds r3, 0x8
- movs r0, 0xFF
- ands r3, r0
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0x10
- ldrsh r0, [r5, r7]
- cmp r4, r0
- ble _080B778A
-_080B77C2:
- ldrh r0, [r5, 0x12]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B77D8: .4byte gUnknown_2038700
-_080B77DC: .4byte gUnknown_825E074
-_080B77E0: .4byte gUnknown_2039600
- thumb_func_end sub_80B776C
-
- thumb_func_start sub_80B77E4
-sub_80B77E4: @ 80B77E4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, _080B7884 @ =gUnknown_2037F02
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x5
- bl __divsi3
- adds r6, r0, 0
- ldr r1, _080B7888 @ =gUnknown_2037F1A
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r5, 0x8]
- adds r0, r3
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r4, 0x30]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- lsls r6, 16
- asrs r6, 16
- adds r1, r6, 0
- bl Sin
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- ldrh r2, [r5]
- adds r3, r2, 0
- muls r3, r1
- adds r1, r3, 0
- ldrh r3, [r4, 0x20]
- adds r1, r3
- strh r1, [r4, 0x20]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x34]
- ldr r0, _080B788C @ =sub_80B7894
- str r0, [r4, 0x1C]
- adds r4, 0x2E
- ldr r2, _080B7890 @ =gUnknown_20399A4
- movs r1, 0x6
-_080B786C:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080B786C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7884: .4byte gUnknown_2037F02
-_080B7888: .4byte gUnknown_2037F1A
-_080B788C: .4byte sub_80B7894
-_080B7890: .4byte gUnknown_20399A4
- thumb_func_end sub_80B77E4
-
- thumb_func_start sub_80B7894
-sub_80B7894: @ 80B7894
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _080B78D8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B78D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7894
-
- thumb_func_start sub_80B78E0
-sub_80B78E0: @ 80B78E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080B791C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B7920 @ =gUnknown_2037F02
- ldrh r1, [r1]
- strh r1, [r0, 0x8]
- ldr r1, _080B7924 @ =gUnknown_2037F1A
- ldrb r4, [r1]
- movs r1, 0x10
- strh r1, [r0, 0xA]
- movs r0, 0x52
- bl SetGpuReg
- adds r0, r4, 0
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B792C
- ldr r1, _080B7928 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- b _080B7934
- .align 2, 0
-_080B791C: .4byte gTasks
-_080B7920: .4byte gUnknown_2037F02
-_080B7924: .4byte gUnknown_2037F1A
-_080B7928: .4byte 0x00003f42
-_080B792C:
- ldr r1, _080B7948 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
-_080B7934:
- ldr r0, _080B794C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080B7950 @ =sub_80B7954
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7948: .4byte 0x00003f44
-_080B794C: .4byte gTasks
-_080B7950: .4byte sub_80B7954
- thumb_func_end sub_80B78E0
-
- thumb_func_start sub_80B7954
-sub_80B7954: @ 80B7954
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080B79C0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0xA]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- ldrb r2, [r6, 0x8]
- cmp r0, r2
- bne _080B79D0
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 8
- orrs r1, r0
- movs r5, 0
- strh r1, [r6, 0xA]
- ldrh r1, [r6, 0xA]
- movs r0, 0x52
- bl SetGpuReg
- strh r5, [r6, 0xC]
- cmp r4, 0x10
- bne _080B79D6
- ldr r2, _080B79C4 @ =gSprites
- ldr r1, _080B79C8 @ =gUnknown_2023D44
- ldr r0, _080B79CC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- b _080B79D6
- .align 2, 0
-_080B79C0: .4byte gTasks
-_080B79C4: .4byte gSprites
-_080B79C8: .4byte gUnknown_2023D44
-_080B79CC: .4byte gUnknown_2037F1A
-_080B79D0:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
-_080B79D6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7954
-
- thumb_func_start sub_80B79DC
-sub_80B79DC: @ 80B79DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B7A08 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r0, _080B7A0C @ =gUnknown_2037F02
- ldrh r0, [r0]
- strh r0, [r2, 0x8]
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r2, 0xA]
- ldr r0, _080B7A10 @ =sub_80B7A14
- str r0, [r2]
- movs r0, 0x52
- bl SetGpuReg
- pop {r0}
- bx r0
- .align 2, 0
-_080B7A08: .4byte gTasks
-_080B7A0C: .4byte gUnknown_2037F02
-_080B7A10: .4byte sub_80B7A14
- thumb_func_end sub_80B79DC
-
- thumb_func_start sub_80B7A14
-sub_80B7A14: @ 80B7A14
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080B7A70 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0xA]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- ldrb r2, [r6, 0x8]
- cmp r0, r2
- bne _080B7A74
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 8
- orrs r1, r0
- movs r5, 0
- strh r1, [r6, 0xA]
- ldrh r1, [r6, 0xA]
- movs r0, 0x52
- bl SetGpuReg
- strh r5, [r6, 0xC]
- cmp r4, 0
- bne _080B7A7A
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- b _080B7A7A
- .align 2, 0
-_080B7A70: .4byte gTasks
-_080B7A74:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
-_080B7A7A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7A14
-
- thumb_func_start sub_80B7A80
-sub_80B7A80: @ 80B7A80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080B7AAC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B7AB4
- ldr r1, _080B7AB0 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- b _080B7ABC
- .align 2, 0
-_080B7AAC: .4byte gUnknown_2037F1A
-_080B7AB0: .4byte 0x00003f42
-_080B7AB4:
- ldr r1, _080B7AC8 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
-_080B7ABC:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7AC8: .4byte 0x00003f44
- thumb_func_end sub_80B7A80
-
- thumb_func_start sub_80B7ACC
-sub_80B7ACC: @ 80B7ACC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080B7B38 @ =gUnknown_2037F1B
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldr r5, _080B7B3C @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- movs r0, 0x7E
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80754B8
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldr r0, _080B7B40 @ =0x0000ffd8
- strh r0, [r4, 0x3A]
- ldr r1, _080B7B44 @ =sub_80B7B48
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7B38: .4byte gUnknown_2037F1B
-_080B7B3C: .4byte gUnknown_2037F1A
-_080B7B40: .4byte 0x0000ffd8
-_080B7B44: .4byte sub_80B7B48
- thumb_func_end sub_80B7ACC
-
- thumb_func_start sub_80B7B48
-sub_80B7B48: @ 80B7B48
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r5, [r4, 0x30]
- ldrh r0, [r4, 0x34]
- adds r2, r5, r0
- strh r2, [r4, 0x34]
- ldrh r3, [r4, 0x32]
- ldrh r6, [r4, 0x36]
- adds r1, r3, r6
- strh r1, [r4, 0x36]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- movs r6, 0x3C
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _080B7B8A
- adds r0, r2, r5
- strh r0, [r4, 0x34]
- adds r1, r3
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
-_080B7B8A:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r6, [r4, 0x26]
- adds r0, r6
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- cmp r0, 0x7F
- ble _080B7BBA
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x14
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
-_080B7BBA:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080B7BCC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B7BCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7B48
-
- thumb_func_start sub_80B7BD4
-sub_80B7BD4: @ 80B7BD4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B7C08 @ =gUnknown_2037F02
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x32]
- ldr r0, _080B7C0C @ =sub_80B7C10
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7C08: .4byte gUnknown_2037F02
-_080B7C0C: .4byte sub_80B7C10
- thumb_func_end sub_80B7BD4
-
- thumb_func_start sub_80B7C10
-sub_80B7C10: @ 80B7C10
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _080B7C46
- ldr r0, _080B7C4C @ =sub_80B7C50
- str r0, [r2, 0x1C]
-_080B7C46:
- pop {r0}
- bx r0
- .align 2, 0
-_080B7C4C: .4byte sub_80B7C50
- thumb_func_end sub_80B7C10
-
- thumb_func_start sub_80B7C50
-sub_80B7C50: @ 80B7C50
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x36]
- ldrh r0, [r3, 0x2E]
- subs r1, r0
- strh r1, [r3, 0x36]
- ldrh r0, [r3, 0x38]
- ldrh r2, [r3, 0x30]
- subs r0, r2
- strh r0, [r3, 0x38]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r3, 0x24]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080B7C82
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080B7C82:
- pop {r0}
- bx r0
- thumb_func_end sub_80B7C50
-
- thumb_func_start sub_80B7C88
-sub_80B7C88: @ 80B7C88
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080B7C9C @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080B7CA4
- ldr r0, _080B7CA0 @ =gUnknown_2037F1A
- b _080B7CA6
- .align 2, 0
-_080B7C9C: .4byte gUnknown_2037F02
-_080B7CA0: .4byte gUnknown_2037F1A
-_080B7CA4:
- ldr r0, _080B7CD4 @ =gUnknown_2037F1B
-_080B7CA6:
- ldrb r5, [r0]
- movs r6, 0x14
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- ldr r7, _080B7CD8 @ =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080B7CDC @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080B7D04
- cmp r0, 0x1
- bgt _080B7CE0
- cmp r0, 0
- beq _080B7CEA
- b _080B7D58
- .align 2, 0
-_080B7CD4: .4byte gUnknown_2037F1B
-_080B7CD8: .4byte 0x000003ff
-_080B7CDC: .4byte 0xfffffc00
-_080B7CE0:
- cmp r0, 0x2
- beq _080B7D1E
- cmp r0, 0x3
- beq _080B7D36
- b _080B7D58
-_080B7CEA:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8076B2C
- subs r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x8
- strh r0, [r4, 0x22]
- b _080B7D58
-_080B7D04:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8076B2C
- subs r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x10
- strh r0, [r4, 0x22]
- b _080B7D58
-_080B7D1E:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8076B2C
- adds r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x8
- b _080B7D4C
-_080B7D36:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8076B2C
- adds r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8076B2C
- adds r0, 0x10
-_080B7D4C:
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r6, 0xEC
-_080B7D58:
- movs r0, 0x20
- strh r0, [r4, 0x2E]
- lsls r0, r6, 24
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r0, 0xC
- strh r0, [r4, 0x36]
- ldr r0, _080B7D80 @ =0x0000fff4
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_8075068
- ldr r0, _080B7D84 @ =sub_80B7D88
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7D80: .4byte 0x0000fff4
-_080B7D84: .4byte sub_80B7D88
- thumb_func_end sub_80B7C88
-
- thumb_func_start sub_80B7D88
-sub_80B7D88: @ 80B7D88
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B7D9C
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080B7D9C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7D88
-
- thumb_func_start sub_80B7DA4
-sub_80B7DA4: @ 80B7DA4
- push {r4-r7,lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B7E08 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080B7E0C @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8076B2C
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- strh r1, [r5, 0x12]
- strh r0, [r5, 0x10]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r5, 0x24]
- adds r0, 0x20
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B7E14
- ldr r0, _080B7E10 @ =0x0000fff4
- b _080B7E16
- .align 2, 0
-_080B7E08: .4byte gTasks
-_080B7E0C: .4byte gUnknown_2037F1A
-_080B7E10: .4byte 0x0000fff4
-_080B7E14:
- ldr r0, _080B7E60 @ =0x0000ffc0
-_080B7E16:
- strh r0, [r5, 0x18]
- ldr r0, _080B7E64 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080B7E78
- add r4, sp, 0xC
- adds r0, r4, 0
- bl sub_80752A0
- ldr r0, _080B7E68 @ =gUnknown_202297A
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080B7E6C @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldrb r1, [r4, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080B7E70 @ =0x04000016
- str r0, [sp]
- movs r7, 0x2
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B7EA8
- ldr r1, _080B7E74 @ =gUnknown_202297C
- b _080B7EA2
- .align 2, 0
-_080B7E60: .4byte 0x0000ffc0
-_080B7E64: .4byte gUnknown_2037F1A
-_080B7E68: .4byte gUnknown_202297A
-_080B7E6C: .4byte 0x00003f42
-_080B7E70: .4byte 0x04000016
-_080B7E74: .4byte gUnknown_202297C
-_080B7E78:
- ldr r0, _080B7F30 @ =gUnknown_202297E
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080B7F34 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080B7F38 @ =0x0400001a
- str r0, [sp]
- movs r7, 0x4
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B7EA8
- ldr r1, _080B7F3C @ =gUnknown_2022978
-_080B7EA2:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
-_080B7EA8:
- ldr r0, _080B7F40 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r2, sp
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- mov r0, sp
- strb r1, [r0, 0x9]
- strh r1, [r5, 0x1E]
- movs r0, 0x10
- strh r0, [r5, 0x20]
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- strh r1, [r5, 0xC]
- movs r0, 0x3
- bl sub_80B856C
- movs r3, 0
- ldr r4, _080B7F44 @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080B7ED4:
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x1C]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080B7ED4
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- movs r0, 0x3F
- eors r7, r0
- movs r1, 0xFC
- lsls r1, 6
- adds r0, r1, 0
- orrs r7, r0
- movs r0, 0x4A
- adds r1, r7, 0
- bl SetGpuReg
- ldr r1, _080B7F48 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r2, _080B7F4C @ =gUnknown_2022984
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080B7F50 @ =gUnknown_2022986
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080B7F54 @ =sub_80B7F58
- str r0, [r5]
- add sp, 0x1C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7F30: .4byte gUnknown_202297E
-_080B7F34: .4byte 0x00003f44
-_080B7F38: .4byte 0x0400001a
-_080B7F3C: .4byte gUnknown_2022978
-_080B7F40: .4byte 0xa2600001
-_080B7F44: .4byte gUnknown_2038700
-_080B7F48: .4byte 0x00003f3f
-_080B7F4C: .4byte gUnknown_2022984
-_080B7F50: .4byte gUnknown_2022986
-_080B7F54: .4byte sub_80B7F58
- thumb_func_end sub_80B7DA4
-
- thumb_func_start sub_80B7F58
-sub_80B7F58: @ 80B7F58
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B7F7C @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080B7F72
- b _080B806A
-_080B7F72:
- lsls r0, 2
- ldr r1, _080B7F80 @ =_080B7F84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B7F7C: .4byte gTasks
-_080B7F80: .4byte _080B7F84
- .align 2, 0
-_080B7F84:
- .4byte _080B7F98
- .4byte _080B7FFA
- .4byte _080B8014
- .4byte _080B8050
- .4byte _080B8064
-_080B7F98:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B806A
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B7FC8
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0xC
- beq _080B7FD6
- adds r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080B7FD6
-_080B7FC8:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _080B7FD6
- subs r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080B7FD6:
- ldrh r1, [r4, 0x20]
- lsls r1, 8
- ldrh r0, [r4, 0x1E]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- bne _080B806A
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _080B806A
- b _080B8056
-_080B7FFA:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80B843C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _080B806A
- b _080B8056
-_080B8014:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80B843C
- ldrh r1, [r4, 0x24]
- adds r1, 0x4
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r2, r0, 0x4
- strh r2, [r4, 0x26]
- lsls r1, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080B8036
- strh r2, [r4, 0x24]
-_080B8036:
- ldr r3, _080B804C @ =gUnknown_2022984
- ldrh r2, [r4, 0x24]
- lsls r0, r2, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r3]
- lsls r2, 16
- lsls r1, 16
- cmp r2, r1
- bne _080B806A
- b _080B8056
- .align 2, 0
-_080B804C: .4byte gUnknown_2022984
-_080B8050:
- ldr r1, _080B8060 @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080B8056:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B806A
- .align 2, 0
-_080B8060: .4byte gUnknown_2039600
-_080B8064:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B806A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7F58
-
- thumb_func_start sub_80B8070
-sub_80B8070: @ 80B8070
- push {r4-r7,lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080B8098 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080B808C
- b _080B829E
-_080B808C:
- lsls r0, 2
- ldr r1, _080B809C @ =_080B80A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B8098: .4byte gTasks
-_080B809C: .4byte _080B80A0
- .align 2, 0
-_080B80A0:
- .4byte _080B80B4
- .4byte _080B8138
- .4byte _080B817C
- .4byte _080B81E8
- .4byte _080B8250
-_080B80B4:
- bl sub_8073788
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B80F0
- ldr r0, _080B80E4 @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080B80E8 @ =gUnknown_2022986
- strh r1, [r0]
- ldr r4, _080B80EC @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080B829E
- .align 2, 0
-_080B80E4: .4byte gUnknown_2022984
-_080B80E8: .4byte gUnknown_2022986
-_080B80EC: .4byte 0x00003f3f
-_080B80F0:
- ldr r0, _080B8110 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080B811C
- ldr r1, _080B8114 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, _080B8118 @ =gUnknown_202297C
- b _080B8126
- .align 2, 0
-_080B8110: .4byte gUnknown_2037F1B
-_080B8114: .4byte 0x00003f42
-_080B8118: .4byte gUnknown_202297C
-_080B811C:
- ldr r1, _080B8130 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, _080B8134 @ =gUnknown_2022978
-_080B8126:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
- b _080B823C
- .align 2, 0
-_080B8130: .4byte 0x00003f44
-_080B8134: .4byte gUnknown_2022978
-_080B8138:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080B8160
- mov r0, sp
- bl sub_80752A0
- ldr r0, _080B815C @ =gUnknown_202297A
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- b _080B8170
- .align 2, 0
-_080B815C: .4byte gUnknown_202297A
-_080B8160:
- ldr r0, _080B8178 @ =gUnknown_202297E
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
-_080B8170:
- movs r0, 0x3
- bl sub_80B856C
- b _080B823C
- .align 2, 0
-_080B8178: .4byte gUnknown_202297E
-_080B817C:
- ldr r4, _080B81C8 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8076B2C
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x4
- strh r1, [r5, 0x24]
- adds r0, 0x4
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080B81D0
- ldr r0, _080B81CC @ =0x0000fff4
- b _080B81D2
- .align 2, 0
-_080B81C8: .4byte gUnknown_2037F1B
-_080B81CC: .4byte 0x0000fff4
-_080B81D0:
- ldr r0, _080B81E4 @ =0x0000ffc0
-_080B81D2:
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- movs r0, 0x8
- strh r0, [r5, 0x20]
- b _080B823C
- .align 2, 0
-_080B81E4: .4byte 0x0000ffc0
-_080B81E8:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080B81F8
- ldr r0, _080B81F4 @ =0x04000016
- b _080B81FA
- .align 2, 0
-_080B81F4: .4byte 0x04000016
-_080B81F8:
- ldr r0, _080B8244 @ =0x0400001a
-_080B81FA:
- str r0, [sp, 0x10]
- movs r3, 0
- add r4, sp, 0x10
- ldr r6, _080B8248 @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r7, r6, r0
-_080B8208:
- lsls r1, r3, 1
- adds r2, r1, r6
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r2]
- adds r1, r7
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080B8208
- ldr r1, _080B824C @ =0xa2600001
- str r1, [r4, 0x4]
- movs r2, 0
- movs r0, 0x1
- strb r0, [r4, 0x8]
- strb r2, [r4, 0x9]
- ldr r0, [sp, 0x10]
- ldr r2, [r4, 0x8]
- bl sub_8087EE4
-_080B823C:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080B829E
- .align 2, 0
-_080B8244: .4byte 0x0400001a
-_080B8248: .4byte gUnknown_2038700
-_080B824C: .4byte 0xa2600001
-_080B8250:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080B8268
- ldr r1, _080B8264 @ =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- b _080B8270
- .align 2, 0
-_080B8264: .4byte 0x00003f3d
-_080B8268:
- ldr r1, _080B82A8 @ =0x00003f3b
- movs r0, 0x4A
- bl SetGpuReg
-_080B8270:
- ldr r1, _080B82AC @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r2, _080B82B0 @ =gUnknown_2022984
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080B82B4 @ =gUnknown_2022986
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldr r1, _080B82B8 @ =0x0000080c
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080B82BC @ =sub_80B82C0
- str r0, [r5]
-_080B829E:
- add sp, 0x1C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B82A8: .4byte 0x00003f3b
-_080B82AC: .4byte 0x00003f3f
-_080B82B0: .4byte gUnknown_2022984
-_080B82B4: .4byte gUnknown_2022986
-_080B82B8: .4byte 0x0000080c
-_080B82BC: .4byte sub_80B82C0
- thumb_func_end sub_80B8070
-
- thumb_func_start sub_80B82C0
-sub_80B82C0: @ 80B82C0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B82E4 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080B82DA
- b _080B842A
-_080B82DA:
- lsls r0, 2
- ldr r1, _080B82E8 @ =_080B82EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B82E4: .4byte gTasks
-_080B82E8: .4byte _080B82EC
- .align 2, 0
-_080B82EC:
- .4byte _080B8300
- .4byte _080B832C
- .4byte _080B8394
- .4byte _080B83F6
- .4byte _080B8408
-_080B8300:
- ldrh r0, [r4, 0x12]
- adds r0, 0x8
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x16]
- movs r3, 0x16
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080B8316
- strh r2, [r4, 0x12]
-_080B8316:
- adds r0, r4, 0
- bl sub_80B843C
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080B832A
- b _080B842A
-_080B832A:
- b _080B83FC
-_080B832C:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- subs r0, r1
- cmp r0, 0x3F
- bgt _080B8348
- ldrh r0, [r4, 0x24]
- subs r0, 0x4
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- adds r0, 0x4
- strh r0, [r4, 0x26]
- b _080B834C
-_080B8348:
- movs r0, 0x1
- strh r0, [r4, 0xA]
-_080B834C:
- ldr r2, _080B8390 @ =gUnknown_2022984
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x14]
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080B836E
- strh r2, [r4, 0x10]
-_080B836E:
- adds r0, r4, 0
- bl sub_80B843C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080B842A
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080B842A
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080B83FC
- .align 2, 0
-_080B8390: .4byte gUnknown_2022984
-_080B8394:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B842A
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B83C4
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B83D2
- subs r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080B83D2
-_080B83C4:
- ldrh r1, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _080B83D2
- adds r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080B83D2:
- ldrh r1, [r4, 0x20]
- lsls r1, 8
- ldrh r0, [r4, 0x1E]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B842A
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080B842A
- b _080B83FC
-_080B83F6:
- ldr r1, _080B8404 @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080B83FC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B842A
- .align 2, 0
-_080B8404: .4byte gUnknown_2039600
-_080B8408:
- ldr r0, _080B8430 @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080B8434 @ =gUnknown_2022986
- strh r1, [r0]
- ldr r4, _080B8438 @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080B842A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8430: .4byte gUnknown_2022984
-_080B8434: .4byte gUnknown_2022986
-_080B8438: .4byte 0x00003f3f
- thumb_func_end sub_80B82C0
-
- thumb_func_start sub_80B843C
-sub_80B843C: @ 80B843C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r0, [r6, 0x12]
- ldrh r4, [r6, 0x10]
- subs r0, r4
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080B8530
- movs r2, 0x22
- ldrsh r0, [r6, r2]
- bl __divsi3
- mov r8, r0
- movs r3, 0x14
- ldrsh r0, [r6, r3]
- lsls r5, r0, 8
- lsls r0, r4, 16
- movs r4, 0
- cmp r0, 0
- ble _080B849C
- ldr r0, _080B8528 @ =gUnknown_2038700
- mov r12, r0
- ldr r7, _080B852C @ =gUnknown_2039600
-_080B8470:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- add r3, r12
- adds r1, r2, 0
- subs r1, 0x9F
- ldrh r0, [r6, 0x1C]
- subs r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r2, r0
- blt _080B8470
-_080B849C:
- ldrh r4, [r6, 0x10]
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- bgt _080B84E6
- ldr r0, _080B8528 @ =gUnknown_2038700
- mov r12, r0
- ldr r7, _080B852C @ =gUnknown_2039600
-_080B84B0:
- asrs r4, r3, 16
- cmp r4, 0
- blt _080B84D2
- asrs r1, r5, 8
- subs r1, r4
- lsls r3, r4, 1
- ldrb r2, [r7, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- add r3, r12
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6, 0x1C]
- adds r1, r2
- strh r1, [r3]
-_080B84D2:
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080B84B0
-_080B84E6:
- movs r3, 0x1C
- ldrsh r0, [r6, r3]
- adds r0, 0x9F
- lsls r2, r4, 16
- asrs r1, r2, 16
- subs r5, r0, r1
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bge _080B855E
- ldr r7, _080B8528 @ =gUnknown_2038700
- ldr r4, _080B852C @ =gUnknown_2039600
-_080B84FE:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080B8516
- lsls r2, r3, 1
- ldrb r1, [r4, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- strh r5, [r2]
- subs r5, 0x1
-_080B8516:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- blt _080B84FE
- b _080B855E
- .align 2, 0
-_080B8528: .4byte gUnknown_2038700
-_080B852C: .4byte gUnknown_2039600
-_080B8530:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- adds r5, r0, 0
- adds r5, 0x9F
- movs r4, 0
- ldr r3, _080B8568 @ =gUnknown_2038700
- movs r2, 0xF0
- lsls r2, 3
- adds r6, r3, r2
-_080B8542:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r2, r0, 1
- adds r1, r2, r3
- strh r5, [r1]
- adds r2, r6
- strh r5, [r2]
- subs r5, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080B8542
-_080B855E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8568: .4byte gUnknown_2038700
- thumb_func_end sub_80B843C
-
- thumb_func_start sub_80B856C
-sub_80B856C: @ 80B856C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- ldr r7, _080B85B4 @ =gSprites
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r0, 0xD
- negs r0, r0
- adds r6, r0, 0
-_080B8582:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B85A2
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r0, r6
- orrs r0, r5
- strb r0, [r1, 0x5]
-_080B85A2:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080B8582
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B85B4: .4byte gSprites
- thumb_func_end sub_80B856C
-
- thumb_func_start sub_80B85B8
-sub_80B85B8: @ 80B85B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r6, _080B8658 @ =gUnknown_2037F1A
- ldrb r0, [r6]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- ldrb r0, [r6]
- adds r1, r4, 0
- bl sub_8072E48
- ldr r0, _080B865C @ =gSprites
- mov r9, r0
- ldr r0, _080B8660 @ =gUnknown_2023D44
- mov r8, r0
- ldrb r0, [r6]
- add r0, r8
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r7, 0x5
- negs r7, r7
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B8642
- ldrb r0, [r6]
- eors r0, r5
- movs r1, 0x1
- eors r4, r1
- adds r1, r4, 0
- bl sub_8072E48
- ldrb r0, [r6]
- eors r0, r5
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
-_080B8642:
- mov r0, r10
- bl DestroyAnimVisualTask
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8658: .4byte gUnknown_2037F1A
-_080B865C: .4byte gSprites
-_080B8660: .4byte gUnknown_2023D44
- thumb_func_end sub_80B85B8
-
- thumb_func_start sub_80B8664
-sub_80B8664: @ 80B8664
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _080B86AC @ =gUnknown_2037F1A
- ldrb r0, [r4]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r5, 0
- bl sub_8073128
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B86A0
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8073128
-_080B86A0:
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B86AC: .4byte gUnknown_2037F1A
- thumb_func_end sub_80B8664
-
- thumb_func_start sub_80B86B0
-sub_80B86B0: @ 80B86B0
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080B86E0 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080B86E4 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _080B86E8 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B86E0: .4byte gUnknown_2037F02
-_080B86E4: .4byte sub_8074F6C
-_080B86E8: .4byte DestroyAnimSprite
- thumb_func_end sub_80B86B0
-
- thumb_func_start sub_80B86EC
-sub_80B86EC: @ 80B86EC
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r0, _080B87EC @ =gUnknown_2022984
- strh r6, [r0]
- ldr r0, _080B87F0 @ =gUnknown_2022986
- strh r6, [r0]
- ldr r1, _080B87F4 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080B87F8 @ =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, _080B87FC @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, _080B8800 @ =0x00000c08
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B8750
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080B8750:
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080B87CA
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B87CA
- ldr r4, _080B8804 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080B8780
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _080B87CA
-_080B8780:
- ldrb r0, [r4]
- movs r5, 0x2
- eors r0, r5
- bl sub_8072DF0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B87CA
- ldr r3, _080B8808 @ =gSprites
- ldr r1, _080B880C @ =gUnknown_2023D44
- ldrb r0, [r4]
- eors r0, r5
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r6, 0x1
-_080B87CA:
- ldr r4, _080B8804 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B8818
- ldr r1, _080B8810 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080B8814 @ =gEnemyParty
- b _080B8828
- .align 2, 0
-_080B87EC: .4byte gUnknown_2022984
-_080B87F0: .4byte gUnknown_2022986
-_080B87F4: .4byte 0x00003f3f
-_080B87F8: .4byte 0x00003f3d
-_080B87FC: .4byte 0x00003f42
-_080B8800: .4byte 0x00000c08
-_080B8804: .4byte gUnknown_2037F1A
-_080B8808: .4byte gSprites
-_080B880C: .4byte gUnknown_2023D44
-_080B8810: .4byte gBattlerPartyIndexes
-_080B8814: .4byte gEnemyParty
-_080B8818:
- ldr r1, _080B88B8 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080B88BC @ =gPlayerParty
-_080B8828:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B88C0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8076E34
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap
- bl sub_807543C
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r2, _080B88D0 @ =gUnknown_2022978
- ldr r0, _080B88D4 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x60
- strh r0, [r2]
- ldr r2, _080B88D8 @ =gUnknown_202297A
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- ldr r2, _080B88DC @ =gUnknown_2037F02
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080B88E0
- adds r0, r1, 0
- movs r1, 0
- bl sub_8075B48
- b _080B88EC
- .align 2, 0
-_080B88B8: .4byte gBattlerPartyIndexes
-_080B88BC: .4byte gPlayerParty
-_080B88C0: .4byte gUnknown_2037F1A
-_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap
-_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet
-_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette
-_080B88D0: .4byte gUnknown_2022978
-_080B88D4: .4byte gSprites
-_080B88D8: .4byte gUnknown_202297A
-_080B88DC: .4byte gUnknown_2037F02
-_080B88E0:
- lsls r0, r1, 4
- ldrh r3, [r2, 0x4]
- movs r1, 0x10
- movs r2, 0xB
- bl BlendPalette
-_080B88EC:
- ldr r1, _080B8914 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r2, _080B8918 @ =gUnknown_2037F02
- ldrh r1, [r2]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0xE]
- strh r6, [r0, 0x14]
- ldr r1, _080B891C @ =sub_80B8920
- str r1, [r0]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8914: .4byte gTasks
-_080B8918: .4byte gUnknown_2037F02
-_080B891C: .4byte sub_80B8920
- thumb_func_end sub_80B86EC
-
- thumb_func_start sub_80B8920
-sub_80B8920: @ 80B8920
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080B89E8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r2, _080B89EC @ =gUnknown_2022978
- ldrh r3, [r2]
- subs r1, r3, 0x4
- strh r1, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x80
- beq _080B894E
- b _080B8A5E
-_080B894E:
- strh r5, [r4, 0x1C]
- adds r0, r3, 0
- adds r0, 0x7C
- strh r0, [r2]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080B89FC
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080B89F0 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B8990
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_8075B48
-_080B8990:
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_8075358
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080B8A5E
- ldr r2, _080B89F4 @ =gUnknown_2023D44
- ldr r0, _080B89F8 @ =gUnknown_2037F1A
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- b _080B8A5E
- .align 2, 0
-_080B89E8: .4byte gTasks
-_080B89EC: .4byte gUnknown_2022978
-_080B89F0: .4byte gSprites
-_080B89F4: .4byte gUnknown_2023D44
-_080B89F8: .4byte gUnknown_2037F1A
-_080B89FC:
- cmp r0, 0x3
- bne _080B8A5E
- ldr r0, _080B8A68 @ =gUnknown_2022984
- strh r5, [r0]
- ldr r0, _080B8A6C @ =gUnknown_2022986
- strh r5, [r0]
- ldr r4, _080B8A70 @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080B8A2E
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080B8A2E:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080B8A5E:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8A68: .4byte gUnknown_2022984
-_080B8A6C: .4byte gUnknown_2022986
-_080B8A70: .4byte 0x00003f3f
- thumb_func_end sub_80B8920
-
- thumb_func_start sub_80B8A74
-sub_80B8A74: @ 80B8A74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080B8A94 @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0x7
- bhi _080B8AD8
- lsls r0, r1, 2
- ldr r1, _080B8A98 @ =_080B8A9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B8A94: .4byte gUnknown_2037F02
-_080B8A98: .4byte _080B8A9C
- .align 2, 0
-_080B8A9C:
- .4byte _080B8ABC
- .4byte _080B8ABC
- .4byte _080B8ABC
- .4byte _080B8ABC
- .4byte _080B8AC8
- .4byte _080B8ACC
- .4byte _080B8AD0
- .4byte _080B8AD4
-_080B8ABC:
- ldrb r0, [r2]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- b _080B8ADA
-_080B8AC8:
- movs r4, 0
- b _080B8AE0
-_080B8ACC:
- movs r4, 0x2
- b _080B8AE0
-_080B8AD0:
- movs r4, 0x1
- b _080B8AE0
-_080B8AD4:
- movs r4, 0x3
- b _080B8AE0
-_080B8AD8:
- movs r2, 0xFF
-_080B8ADA:
- movs r0, 0
- cmp r0, 0
- beq _080B8B06
-_080B8AE0:
- adds r0, r4, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B8B04
- ldr r0, _080B8B00 @ =gUnknown_2023D44
- adds r0, r4, r0
- ldrb r2, [r0]
- b _080B8B06
- .align 2, 0
-_080B8B00: .4byte gUnknown_2023D44
-_080B8B04:
- movs r2, 0xFF
-_080B8B06:
- cmp r2, 0xFF
- beq _080B8B22
- ldr r1, _080B8B30 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- ldr r1, _080B8B34 @ =gUnknown_2037F02
- ldrb r1, [r1, 0x2]
- bl sub_8075B48
-_080B8B22:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8B30: .4byte gSprites
-_080B8B34: .4byte gUnknown_2037F02
- thumb_func_end sub_80B8A74
-
- thumb_func_start sub_80B8B38
-sub_80B8B38: @ 80B8B38
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080B8B64 @ =gUnknown_2037F16
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _080B8B4C
- ldr r1, _080B8B68 @ =gUnknown_2037F02
- movs r0, 0
- strh r0, [r1, 0xE]
-_080B8B4C:
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080B8B58
- ldr r1, _080B8B68 @ =gUnknown_2037F02
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080B8B58:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B8B64: .4byte gUnknown_2037F16
-_080B8B68: .4byte gUnknown_2037F02
- thumb_func_end sub_80B8B38
-
- thumb_func_start sub_80B8B6C
-sub_80B8B6C: @ 80B8B6C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B8BC4 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080B8BC8 @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080B8BCC @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_8075068
- ldr r0, _080B8BD0 @ =sub_80B8BD4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8BC4: .4byte gUnknown_2037F1A
-_080B8BC8: .4byte gUnknown_2037F1B
-_080B8BCC: .4byte 0x0000ffd8
-_080B8BD0: .4byte sub_80B8BD4
- thumb_func_end sub_80B8B6C
-
- thumb_func_start sub_80B8BD4
-sub_80B8BD4: @ 80B8BD4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B8C28
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, _080B8C30 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_8075068
- ldr r0, _080B8C34 @ =sub_80B8C38
- str r0, [r5, 0x1C]
-_080B8C28:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8C30: .4byte gUnknown_2037F1A
-_080B8C34: .4byte sub_80B8C38
- thumb_func_end sub_80B8BD4
-
- thumb_func_start sub_80B8C38
-sub_80B8C38: @ 80B8C38
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B8C4C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B8C4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B8C38
-
- thumb_func_start sub_80B8C54
-sub_80B8C54: @ 80B8C54
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r0, _080B8CB4 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080B8C74
- ldr r1, _080B8CB8 @ =gUnknown_2037F02
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080B8C74:
- ldr r4, _080B8CB8 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080B8CBC @ =gUnknown_2037F1B
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080B8CC0 @ =sub_8075590
- str r0, [r6, 0x1C]
- ldr r1, _080B8CC4 @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8CB4: .4byte gUnknown_2037F1A
-_080B8CB8: .4byte gUnknown_2037F02
-_080B8CBC: .4byte gUnknown_2037F1B
-_080B8CC0: .4byte sub_8075590
-_080B8CC4: .4byte DestroyAnimSprite
- thumb_func_end sub_80B8C54
-
- thumb_func_start sub_80B8CC8
-sub_80B8CC8: @ 80B8CC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r4, _080B8D48 @ =gUnknown_2037F1B
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074844
- lsls r0, 24
- lsrs r7, r0, 24
- bl Random
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- bl Random
- ands r4, r0
- adds r1, r5, 0
- cmp r1, 0x10
- ble _080B8D10
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_080B8D10:
- lsls r0, r4, 16
- asrs r1, r0, 16
- cmp r1, 0x10
- ble _080B8D20
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080B8D20:
- ldr r0, _080B8D4C @ =gUnknown_2037F02
- ldrh r0, [r0, 0x4]
- strh r0, [r6, 0x2E]
- mov r1, r8
- adds r0, r1, r5
- strh r0, [r6, 0x32]
- adds r0, r7, r4
- strh r0, [r6, 0x36]
- ldr r0, _080B8D50 @ =sub_8075590
- str r0, [r6, 0x1C]
- ldr r1, _080B8D54 @ =move_anim_8074EE0
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8D48: .4byte gUnknown_2037F1B
-_080B8D4C: .4byte gUnknown_2037F02
-_080B8D50: .4byte sub_8075590
-_080B8D54: .4byte move_anim_8074EE0
- thumb_func_end sub_80B8CC8
-
- thumb_func_start sub_80B8D58
-sub_80B8D58: @ 80B8D58
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x1
- ldr r3, _080B8DB8 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080B8DBC @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r6, _080B8DC0 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080B8DCC
- ldr r4, _080B8DC4 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x2]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r6, 0x4]
- adds r0, r3
- strh r0, [r5, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- ble _080B8DB2
- movs r1, 0x1
-_080B8DB2:
- strh r1, [r5, 0x2E]
- ldr r0, _080B8DC8 @ =sub_80B8DE8
- b _080B8DDA
- .align 2, 0
-_080B8DB8: .4byte 0x000003ff
-_080B8DBC: .4byte 0xfffffc00
-_080B8DC0: .4byte gUnknown_2037F02
-_080B8DC4: .4byte gUnknown_2037F1A
-_080B8DC8: .4byte sub_80B8DE8
-_080B8DCC:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x22]
- negs r0, r0
- strh r0, [r5, 0x26]
- ldr r0, _080B8DE4 @ =sub_80B8E24
-_080B8DDA:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8DE4: .4byte sub_80B8E24
- thumb_func_end sub_80B8D58
-
- thumb_func_start sub_80B8DE8
-sub_80B8DE8: @ 80B8DE8
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B8E06
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
-_080B8E06:
- ldrh r0, [r2, 0x22]
- subs r0, 0x4
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080B8E1E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080B8E1E:
- pop {r0}
- bx r0
- thumb_func_end sub_80B8DE8
-
- thumb_func_start sub_80B8E24
-sub_80B8E24: @ 80B8E24
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080B8E36
- cmp r1, 0x1
- beq _080B8E4C
- b _080B8E8E
-_080B8E36:
- ldrh r0, [r3, 0x26]
- adds r0, 0x4
- strh r0, [r3, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080B8E8E
- strh r1, [r3, 0x26]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080B8E8E
-_080B8E4C:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _080B8E8E
- movs r0, 0
- strh r0, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080B8E8E
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080B8E8E:
- pop {r0}
- bx r0
- thumb_func_end sub_80B8E24
-
- thumb_func_start sub_80B8E94
-sub_80B8E94: @ 80B8E94
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B8EB4 @ =gTasks
- adds r1, r0, r1
- ldr r0, _080B8EB8 @ =gUnknown_2037F02
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080B8EC0
- ldr r0, _080B8EBC @ =sub_80B8ED4
- b _080B8EC2
- .align 2, 0
-_080B8EB4: .4byte gTasks
-_080B8EB8: .4byte gUnknown_2037F02
-_080B8EBC: .4byte sub_80B8ED4
-_080B8EC0:
- ldr r0, _080B8ED0 @ =sub_80B908C
-_080B8EC2:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080B8ED0: .4byte sub_80B908C
- thumb_func_end sub_80B8E94
-
- thumb_func_start sub_80B8ED4
-sub_80B8ED4: @ 80B8ED4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B8EF8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080B8EEE
- b _080B9082
-_080B8EEE:
- lsls r0, 2
- ldr r1, _080B8EFC @ =_080B8F00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B8EF8: .4byte gTasks
-_080B8EFC: .4byte _080B8F00
- .align 2, 0
-_080B8F00:
- .4byte _080B8F14
- .4byte _080B8F9C
- .4byte _080B8FAC
- .4byte _080B9050
- .4byte _080B9064
-_080B8F14:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080B8F3C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080B8F48
- ldr r0, _080B8F40 @ =gUnknown_2022978
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080B8F44 @ =gUnknown_202297A
- b _080B8F50
- .align 2, 0
-_080B8F3C: .4byte gUnknown_2037F1A
-_080B8F40: .4byte gUnknown_2022978
-_080B8F44: .4byte gUnknown_202297A
-_080B8F48:
- ldr r0, _080B8F8C @ =gUnknown_202297C
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080B8F90 @ =gUnknown_202297E
-_080B8F50:
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080B8F94 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- cmp r1, 0
- bge _080B8F72
- movs r0, 0
- strh r0, [r4, 0x24]
-_080B8F72:
- ldr r2, _080B8F98 @ =gSprites
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _080B9056
- .align 2, 0
-_080B8F8C: .4byte gUnknown_202297C
-_080B8F90: .4byte gUnknown_202297E
-_080B8F94: .4byte gUnknown_2037F1A
-_080B8F98: .4byte gSprites
-_080B8F9C:
- ldrb r0, [r4, 0x1E]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- bl sub_80B92B8
- b _080B9056
-_080B8FAC:
- ldrh r0, [r4, 0xC]
- adds r0, 0x6
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B8FCE
- movs r0, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080B8FCE:
- ldr r1, _080B8FF0 @ =gUnknown_825E074
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- ldrh r3, [r4, 0xE]
- adds r2, r0, r3
- strh r2, [r4, 0x12]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080B8FF8
- ldr r1, _080B8FF4 @ =gUnknown_202297A
- b _080B8FFA
- .align 2, 0
-_080B8FF0: .4byte gUnknown_825E074
-_080B8FF4: .4byte gUnknown_202297A
-_080B8FF8:
- ldr r1, _080B901C @ =gUnknown_202297E
-_080B8FFA:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _080B9082
- ldrh r0, [r4, 0x24]
- movs r1, 0x78
- subs r2, r1, r0
- strh r2, [r4, 0x12]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080B9024
- ldr r1, _080B9020 @ =gUnknown_202297A
- b _080B9026
- .align 2, 0
-_080B901C: .4byte gUnknown_202297E
-_080B9020: .4byte gUnknown_202297A
-_080B9024:
- ldr r1, _080B9048 @ =gUnknown_202297E
-_080B9026:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- ldr r2, _080B904C @ =gSprites
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r3, 0
- subs r0, r2
- strh r0, [r1, 0x24]
- b _080B9056
- .align 2, 0
-_080B9048: .4byte gUnknown_202297E
-_080B904C: .4byte gSprites
-_080B9050:
- ldr r1, _080B9060 @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080B9056:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B9082
- .align 2, 0
-_080B9060: .4byte gUnknown_2039600
-_080B9064:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- ldr r2, _080B9088 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080B9082:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9088: .4byte gSprites
- thumb_func_end sub_80B8ED4
-
- thumb_func_start sub_80B908C
-sub_80B908C: @ 80B908C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B90CC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r3]
- movs r4, 0
- strh r4, [r1, 0x24]
- strh r4, [r1, 0x26]
- ldr r0, _080B90D0 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B90D8
- ldr r0, _080B90D4 @ =gUnknown_202297A
- b _080B90DA
- .align 2, 0
-_080B90CC: .4byte gSprites
-_080B90D0: .4byte gUnknown_2037F1A
-_080B90D4: .4byte gUnknown_202297A
-_080B90D8:
- ldr r0, _080B90E8 @ =gUnknown_202297E
-_080B90DA:
- strh r4, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B90E8: .4byte gUnknown_202297E
- thumb_func_end sub_80B908C
-
- thumb_func_start sub_80B90EC
-sub_80B90EC: @ 80B90EC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B910C @ =gTasks
- adds r1, r0, r1
- ldr r0, _080B9110 @ =gUnknown_2037F02
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080B9118
- ldr r0, _080B9114 @ =sub_80B912C
- b _080B911A
- .align 2, 0
-_080B910C: .4byte gTasks
-_080B9110: .4byte gUnknown_2037F02
-_080B9114: .4byte sub_80B912C
-_080B9118:
- ldr r0, _080B9128 @ =sub_80B91B0
-_080B911A:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080B9128: .4byte sub_80B91B0
- thumb_func_end sub_80B90EC
-
- thumb_func_start sub_80B912C
-sub_80B912C: @ 80B912C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B914C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080B9150
- cmp r5, 0x1
- beq _080B91A4
- b _080B91AA
- .align 2, 0
-_080B914C: .4byte gTasks
-_080B9150:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r3, _080B91A0 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r5, [r0, 0x24]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x22]
- movs r0, 0xA0
- subs r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B91AA
- .align 2, 0
-_080B91A0: .4byte gSprites
-_080B91A4:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B91AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B912C
-
- thumb_func_start sub_80B91B0
-sub_80B91B0: @ 80B91B0
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B91D4 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _080B92B2
- lsls r0, 2
- ldr r1, _080B91D8 @ =_080B91DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B91D4: .4byte gTasks
-_080B91D8: .4byte _080B91DC
- .align 2, 0
-_080B91DC:
- .4byte _080B91F0
- .4byte _080B9244
- .4byte _080B9252
- .4byte _080B926C
- .4byte _080B92AC
-_080B91F0:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080B9214 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080B921C
- ldr r0, _080B9218 @ =gUnknown_2022978
- b _080B921E
- .align 2, 0
-_080B9214: .4byte gUnknown_2037F1A
-_080B9218: .4byte gUnknown_2022978
-_080B921C:
- ldr r0, _080B923C @ =gUnknown_202297C
-_080B921E:
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080B9240 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- b _080B929A
- .align 2, 0
-_080B923C: .4byte gUnknown_202297C
-_080B9240: .4byte gUnknown_2037F1A
-_080B9244:
- ldrb r0, [r4, 0x1E]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0
- bl sub_80B92B8
- b _080B929A
-_080B9252:
- ldr r2, _080B9268 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x60
- strh r1, [r0, 0x26]
- b _080B929A
- .align 2, 0
-_080B9268: .4byte gSprites
-_080B926C:
- ldr r2, _080B92A4 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B92B2
- ldr r1, _080B92A8 @ =gUnknown_2039600
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080B929A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B92B2
- .align 2, 0
-_080B92A4: .4byte gSprites
-_080B92A8: .4byte gUnknown_2039600
-_080B92AC:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B92B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B91B0
-
- thumb_func_start sub_80B92B8
-sub_80B92B8: @ 80B92B8
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- cmp r0, 0x1
- bne _080B92DC
- ldr r0, _080B92D4 @ =gUnknown_2022978
- ldrh r3, [r0]
- ldr r0, _080B92D8 @ =0x04000014
- b _080B92E2
- .align 2, 0
-_080B92D4: .4byte gUnknown_2022978
-_080B92D8: .4byte 0x04000014
-_080B92DC:
- ldr r0, _080B9368 @ =gUnknown_202297C
- ldrh r3, [r0]
- ldr r0, _080B936C @ =0x04000018
-_080B92E2:
- str r0, [sp]
- lsls r0, r1, 16
- cmp r0, 0
- bge _080B92EC
- movs r1, 0
-_080B92EC:
- lsls r2, r1, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- cmp r2, r0
- bge _080B9318
- ldr r5, _080B9370 @ =gUnknown_2038700
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080B92FE:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r5
- strh r3, [r0]
- adds r1, r6
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r2, r1, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _080B92FE
-_080B9318:
- lsls r1, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080B9346
- ldr r4, _080B9370 @ =gUnknown_2038700
- lsls r0, r3, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_080B9330:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- adds r2, 0x1
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080B9330
-_080B9346:
- ldr r0, _080B9374 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9368: .4byte gUnknown_202297C
-_080B936C: .4byte 0x04000018
-_080B9370: .4byte gUnknown_2038700
-_080B9374: .4byte 0xa2600001
- thumb_func_end sub_80B92B8
-
- thumb_func_start sub_80B9378
-sub_80B9378: @ 80B9378
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080B938C @ =gUnknown_2037F02
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r7, r0, 0
- cmp r1, 0
- bne _080B9394
- ldr r0, _080B9390 @ =gUnknown_2037F1A
- b _080B9396
- .align 2, 0
-_080B938C: .4byte gUnknown_2037F02
-_080B9390: .4byte gUnknown_2037F1A
-_080B9394:
- ldr r0, _080B93F8 @ =gUnknown_2037F1B
-_080B9396:
- ldrb r4, [r0]
- movs r6, 0x18
- adds r1, r7, 0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080B93B2
- negs r0, r6
- lsls r0, 16
- lsrs r6, r0, 16
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080B93B2:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1E
- strh r0, [r5, 0x22]
- ldrh r1, [r7, 0xA]
- strh r1, [r5, 0x2E]
- ldrh r1, [r7, 0x4]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x32]
- ldrh r1, [r7, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_8075068
- ldr r0, _080B93FC @ =sub_80B9400
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B93F8: .4byte gUnknown_2037F1B
-_080B93FC: .4byte sub_80B9400
- thumb_func_end sub_80B9378
-
- thumb_func_start sub_80B9400
-sub_80B9400: @ 80B9400
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080B9414
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B9414:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9400
-
- thumb_func_start sub_80B941C
-sub_80B941C: @ 80B941C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080B9430 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080B9438
- ldr r0, _080B9434 @ =gUnknown_2037F1A
- b _080B943A
- .align 2, 0
-_080B9430: .4byte gUnknown_2037F02
-_080B9434: .4byte gUnknown_2037F1A
-_080B9438:
- ldr r0, _080B9498 @ =gUnknown_2037F1B
-_080B943A:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B949C @ =0x0000fff0
- adds r0, r2
- ldr r4, _080B94A0 @ =gUnknown_2037F02
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- lsls r1, 5
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- bl sub_807492C
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r6, 0x22]
- ldrh r2, [r6, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r1, r0
- ldr r3, _080B94A4 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080B94A8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080B94AC @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldr r0, _080B94B0 @ =sub_8074C44
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9498: .4byte gUnknown_2037F1B
-_080B949C: .4byte 0x0000fff0
-_080B94A0: .4byte gUnknown_2037F02
-_080B94A4: .4byte 0x000003ff
-_080B94A8: .4byte 0xfffffc00
-_080B94AC: .4byte DestroyAnimSprite
-_080B94B0: .4byte sub_8074C44
- thumb_func_end sub_80B941C
-
- thumb_func_start sub_80B94B4
-sub_80B94B4: @ 80B94B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B94D8 @ =gTasks
- adds r4, r0, r1
- ldr r0, _080B94DC @ =gUnknown_2037F02
- ldrh r2, [r0, 0x2]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r6, r0, 0
- cmp r1, 0
- beq _080B94E0
- adds r0, r2, 0x3
- b _080B94EC
- .align 2, 0
-_080B94D8: .4byte gTasks
-_080B94DC: .4byte gUnknown_2037F02
-_080B94E0:
- ldr r0, _080B950C @ =gUnknown_2037EEC
- ldrh r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0x3
-_080B94EC:
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x24]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xE]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _080B9518
- cmp r0, 0x5
- bne _080B9558
- ldr r0, _080B9510 @ =gUnknown_2022980
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080B9514 @ =sub_80B9584
- b _080B9576
- .align 2, 0
-_080B950C: .4byte gUnknown_2037EEC
-_080B9510: .4byte gUnknown_2022980
-_080B9514: .4byte sub_80B9584
-_080B9518:
- movs r0, 0
- strh r0, [r4, 0x22]
- movs r5, 0
-_080B951E:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080B9548
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- adds r0, 0x9
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x8
- adds r1, r0
- ldr r0, _080B9554 @ =gUnknown_2023D44
- adds r0, r5, r0
- ldrb r0, [r0]
- strh r0, [r1]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080B9548:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080B951E
- b _080B9574
- .align 2, 0
-_080B9554: .4byte gUnknown_2023D44
-_080B9558:
- ldrb r0, [r6]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- cmp r0, 0xFF
- bne _080B9570
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080B9578
-_080B9570:
- movs r0, 0x1
- strh r0, [r4, 0x22]
-_080B9574:
- ldr r0, _080B9580 @ =sub_80B967C
-_080B9576:
- str r0, [r4]
-_080B9578:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9580: .4byte sub_80B967C
- thumb_func_end sub_80B94B4
-
- thumb_func_start sub_80B9584
-sub_80B9584: @ 80B9584
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080B95A8 @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _080B9608
- cmp r1, 0x1
- bgt _080B95AC
- cmp r1, 0
- beq _080B95B2
- b _080B9674
- .align 2, 0
-_080B95A8: .4byte gTasks
-_080B95AC:
- cmp r1, 0x2
- beq _080B9668
- b _080B9674
-_080B95B2:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B9674
- strh r1, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B95DC
- ldr r1, _080B95D8 @ =gUnknown_2022980
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080B95E6
- .align 2, 0
-_080B95D8: .4byte gUnknown_2022980
-_080B95DC:
- ldr r0, _080B9604 @ =gUnknown_2022980
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x26]
- subs r1, r2
- strh r1, [r0]
-_080B95E6:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bne _080B9674
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- b _080B965C
- .align 2, 0
-_080B9604: .4byte gUnknown_2022980
-_080B9608:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B9674
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- ands r1, r0
- cmp r1, 0
- bne _080B9634
- ldr r1, _080B9630 @ =gUnknown_2022980
- ldrh r0, [r3, 0x24]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080B963E
- .align 2, 0
-_080B9630: .4byte gUnknown_2022980
-_080B9634:
- ldr r0, _080B9664 @ =gUnknown_2022980
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x24]
- subs r1, r2
- strh r1, [r0]
-_080B963E:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080B9674
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080B9674
-_080B965C:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080B9674
- .align 2, 0
-_080B9664: .4byte gUnknown_2022980
-_080B9668:
- ldr r1, _080B9678 @ =gUnknown_2022980
- ldrh r0, [r3, 0x22]
- strh r0, [r1]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080B9674:
- pop {r0}
- bx r0
- .align 2, 0
-_080B9678: .4byte gUnknown_2022980
- thumb_func_end sub_80B9584
-
- thumb_func_start sub_80B967C
-sub_80B967C: @ 80B967C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080B96A0 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080B96DC
- cmp r5, 0x1
- bgt _080B96A4
- cmp r5, 0
- beq _080B96AA
- b _080B9756
- .align 2, 0
-_080B96A0: .4byte gTasks
-_080B96A4:
- cmp r5, 0x2
- beq _080B9718
- b _080B9756
-_080B96AA:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B9756
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80B9760
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080B9756
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- b _080B9710
-_080B96DC:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B9756
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80B9760
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080B9756
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080B9756
-_080B9710:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B9756
-_080B9718:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r4, r7]
- cmp r2, r0
- bge _080B9750
- ldr r0, _080B975C @ =gSprites
- mov r12, r0
- adds r5, r4, 0
- adds r5, 0x8
- movs r6, 0
-_080B972C:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- strh r6, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080B972C
-_080B9750:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080B9756:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B975C: .4byte gSprites
- thumb_func_end sub_80B967C
-
- thumb_func_start sub_80B9760
-sub_80B9760: @ 80B9760
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xC]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080B9788
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r2, [r3, 0x24]
- adds r0, r4, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- b _080B9798
-_080B9788:
- movs r1, 0x24
- ldrsh r0, [r3, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_080B9798:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r3, r7]
- cmp r2, r0
- bge _080B97CC
- ldr r6, _080B97D4 @ =gSprites
- adds r5, r3, 0
- adds r5, 0x8
-_080B97A8:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- cmp r2, r0
- blt _080B97A8
-_080B97CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B97D4: .4byte gSprites
- thumb_func_end sub_80B9760
-
- thumb_func_start sub_80B97D8
-sub_80B97D8: @ 80B97D8
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _080B97F8 @ =gUnknown_2037F02
- movs r2, 0
- ldr r0, _080B97FC @ =gUnknown_2037EEC
- ldrh r0, [r0]
- cmp r0, 0x63
- bls _080B97EC
- movs r2, 0x1
-_080B97EC:
- strh r2, [r3, 0x1E]
- adds r0, r1, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B97F8: .4byte gUnknown_2037F02
-_080B97FC: .4byte gUnknown_2037EEC
- thumb_func_end sub_80B97D8
-
- thumb_func_start sub_80B9800
-sub_80B9800: @ 80B9800
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080B9818 @ =gUnknown_2037F02
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _080B9820
- ldr r0, _080B981C @ =gUnknown_2037F1B
- b _080B9822
- .align 2, 0
-_080B9818: .4byte gUnknown_2037F02
-_080B981C: .4byte gUnknown_2037F1B
-_080B9820:
- ldr r0, _080B9890 @ =gUnknown_2037F1A
-_080B9822:
- ldrb r0, [r0]
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- ble _080B9832
- movs r0, 0x2
- eors r5, r0
-_080B9832:
- ldr r0, _080B9894 @ =sub_80B98A8
- ldrb r1, [r6, 0x2]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080B9898 @ =gTasks
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x20
- subs r1, r0
- ldr r2, _080B989C @ =0x000001ff
- adds r0, r2, 0
- ands r1, r0
- strh r1, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x40
- subs r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0xC]
- ldr r2, _080B98A0 @ =gUnknown_2022980
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- ldr r0, _080B98A4 @ =gUnknown_2022982
- strh r1, [r0]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0xE]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9890: .4byte gUnknown_2037F1A
-_080B9894: .4byte sub_80B98A8
-_080B9898: .4byte gTasks
-_080B989C: .4byte 0x000001ff
-_080B98A0: .4byte gUnknown_2022980
-_080B98A4: .4byte gUnknown_2022982
- thumb_func_end sub_80B9800
-
- thumb_func_start sub_80B98A8
-sub_80B98A8: @ 80B98A8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080B98D8 @ =gTasks
- adds r2, r0, r1
- ldr r0, _080B98DC @ =gUnknown_2037F02
- movs r4, 0xE
- ldrsh r1, [r0, r4]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- cmp r1, r0
- bne _080B98E8
- ldr r0, _080B98E0 @ =gUnknown_2022980
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080B98E4 @ =gUnknown_2022982
- strh r1, [r0]
- adds r0, r3, 0
- bl DestroyTask
- b _080B98F4
- .align 2, 0
-_080B98D8: .4byte gTasks
-_080B98DC: .4byte gUnknown_2037F02
-_080B98E0: .4byte gUnknown_2022980
-_080B98E4: .4byte gUnknown_2022982
-_080B98E8:
- ldr r1, _080B98FC @ =gUnknown_2022980
- ldrh r0, [r2, 0xA]
- strh r0, [r1]
- ldr r1, _080B9900 @ =gUnknown_2022982
- ldrh r0, [r2, 0xC]
- strh r0, [r1]
-_080B98F4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B98FC: .4byte gUnknown_2022980
-_080B9900: .4byte gUnknown_2022982
- thumb_func_end sub_80B98A8
-
- thumb_func_start sub_80B9904
-sub_80B9904: @ 80B9904
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B993C @ =gUnknown_2037F02
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080B9940 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080B9944
- ldrh r0, [r5, 0x6]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- b _080B9952
- .align 2, 0
-_080B993C: .4byte gUnknown_2037F02
-_080B9940: .4byte gUnknown_2037F1A
-_080B9944:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080B9952:
- ldr r0, _080B9968 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x34]
- ldr r1, _080B996C @ =sub_80B9970
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9968: .4byte gUnknown_2037F02
-_080B996C: .4byte sub_80B9970
- thumb_func_end sub_80B9904
-
- thumb_func_start sub_80B9970
-sub_80B9970: @ 80B9970
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x1E
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x7F
- bhi _080B99A2
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080B99AA
-_080B99A2:
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_080B99AA:
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080B99CE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B99CE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9970
-
- thumb_func_start sub_80B99D4
-sub_80B99D4: @ 80B99D4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, _080B9A0C @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80B9A14
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl BeginNormalPaletteFade
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B9A10 @ =sub_80B9A5C
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9A0C: .4byte gUnknown_2037F02
-_080B9A10: .4byte sub_80B9A5C
- thumb_func_end sub_80B99D4
-
- thumb_func_start sub_80B9A14
-sub_80B9A14: @ 80B9A14
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0x1
- mov r8, r0
- mov r1, r8
- ands r1, r4
- mov r8, r1
- lsls r0, 16
- asrs r1, r0, 17
- ands r1, r4
- asrs r2, r0, 18
- ands r2, r4
- asrs r3, r0, 19
- ands r3, r4
- asrs r6, r0, 20
- ands r6, r4
- asrs r5, r0, 21
- ands r5, r4
- asrs r0, 22
- ands r0, r4
- str r6, [sp]
- str r5, [sp, 0x4]
- str r0, [sp, 0x8]
- mov r0, r8
- bl sub_8075BE8
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9A14
-
- thumb_func_start sub_80B9A5C
-sub_80B9A5C: @ 80B9A5C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080B9A78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B9A72
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080B9A72:
- pop {r0}
- bx r0
- .align 2, 0
-_080B9A78: .4byte gPaletteFade
- thumb_func_end sub_80B9A5C
-
- thumb_func_start sub_80B9A7C
-sub_80B9A7C: @ 80B9A7C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080B9AC8 @ =gUnknown_2037F02
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x34]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xC]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4]
- strh r0, [r5, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- bl sub_80B9A14
- ldrb r1, [r4, 0x8]
- ldrh r2, [r4, 0x6]
- bl BlendPalettes
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B9ACC @ =sub_80B9AD0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9AC8: .4byte gUnknown_2037F02
-_080B9ACC: .4byte sub_80B9AD0
- thumb_func_end sub_80B9A7C
-
- thumb_func_start sub_80B9AD0
-sub_80B9AD0: @ 80B9AD0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080B9AE4
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080B9B54
-_080B9AE4:
- ldr r0, _080B9B00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B9B54
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B9B08
- ldr r0, _080B9B04 @ =sub_80B9B5C
- str r0, [r4, 0x1C]
- b _080B9B54
- .align 2, 0
-_080B9B00: .4byte gPaletteFade
-_080B9B04: .4byte sub_80B9B5C
-_080B9B08:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- bl sub_80B9A14
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080B9B2E
- ldrh r1, [r4, 0x36]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x34]
- adds r0, r3, 0
- bl BlendPalettes
- b _080B9B3C
-_080B9B2E:
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x38]
- adds r0, r3, 0
- bl BlendPalettes
-_080B9B3C:
- ldrh r0, [r4, 0x30]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- subs r0, 0x1
- strh r0, [r4, 0x32]
-_080B9B54:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9AD0
-
- thumb_func_start sub_80B9B5C
-sub_80B9B5C: @ 80B9B5C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080B9B88 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B9B82
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- bl sub_80B9A14
- movs r1, 0
- movs r2, 0
- bl BlendPalettes
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080B9B82:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9B88: .4byte gPaletteFade
- thumb_func_end sub_80B9B5C
-
- thumb_func_start sub_80B9B8C
-sub_80B9B8C: @ 80B9B8C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080B9BD0 @ =gUnknown_2037F02
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r2, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x30]
- movs r0, 0x8
- strh r0, [r4, 0x32]
- movs r0, 0x28
- strh r0, [r4, 0x34]
- movs r0, 0x70
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- ldr r1, _080B9BD4 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080B9BD8 @ =sub_8074AE0
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9BD0: .4byte gUnknown_2037F02
-_080B9BD4: .4byte move_anim_8074EE0
-_080B9BD8: .4byte sub_8074AE0
- thumb_func_end sub_80B9B8C
-
- thumb_func_start sub_80B9BDC
-sub_80B9BDC: @ 80B9BDC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B9C20 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080B9C24 @ =gUnknown_2037F02
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80B9C2C
- ldr r0, _080B9C28 @ =sub_80B9C7C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9C20: .4byte gTasks
-_080B9C24: .4byte gUnknown_2037F02
-_080B9C28: .4byte sub_80B9C7C
- thumb_func_end sub_80B9BDC
-
- thumb_func_start sub_80B9C2C
-sub_80B9C2C: @ 80B9C2C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080B9C78 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- bl sub_80B9A14
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r2, [r4, 0x12]
- str r2, [sp]
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9C78: .4byte gTasks
- thumb_func_end sub_80B9C2C
-
- thumb_func_start sub_80B9C7C
-sub_80B9C7C: @ 80B9C7C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080B9CB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B9CDE
- ldr r1, _080B9CB8 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080B9CD8
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080B9CBC
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080B9CC0
- .align 2, 0
-_080B9CB4: .4byte gPaletteFade
-_080B9CB8: .4byte gTasks
-_080B9CBC:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080B9CC0:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080B9CD0
- movs r2, 0
-_080B9CD0:
- adds r0, r4, 0
- bl sub_80B9C2C
- b _080B9CDE
-_080B9CD8:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080B9CDE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9C7C
-
- thumb_func_start sub_80B9CE4
-sub_80B9CE4: @ 80B9CE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r3, _080B9D88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- ldr r2, _080B9D8C @ =gUnknown_2037F02
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0xE]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x10]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x12]
- strh r5, [r0, 0x18]
- movs r4, 0
- ldr r0, _080B9D90 @ =gBattlersCount
- ldrb r1, [r0]
- mov r9, r3
- mov r8, r2
- cmp r5, r1
- bge _080B9D4C
- ldr r0, _080B9D94 @ =gUnknown_2037F1A
- ldrb r3, [r0]
- ldr r7, _080B9D98 @ =gUnknown_2037F1B
- movs r0, 0x1
- mov r12, r0
- adds r2, r1, 0
-_080B9D32:
- cmp r4, r3
- beq _080B9D46
- ldrb r1, [r7]
- cmp r4, r1
- beq _080B9D46
- adds r1, r4, 0
- adds r1, 0x10
- mov r0, r12
- lsls r0, r1
- orrs r5, r0
-_080B9D46:
- adds r4, 0x1
- cmp r4, r2
- blt _080B9D32
-_080B9D4C:
- mov r2, r8
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080B9D5A
- movs r0, 0xE
- orrs r5, r0
-_080B9D5A:
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- add r4, r9
- lsrs r0, r5, 16
- strh r0, [r4, 0x1A]
- movs r0, 0xFF
- ands r5, r0
- strh r5, [r4, 0x1C]
- ldrb r2, [r4, 0x10]
- adds r0, r6, 0
- movs r1, 0
- bl sub_80B9DA0
- ldr r0, _080B9D9C @ =sub_80B9DF0
- str r0, [r4]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9D88: .4byte gTasks
-_080B9D8C: .4byte gUnknown_2037F02
-_080B9D90: .4byte gBattlersCount
-_080B9D94: .4byte gUnknown_2037F1A
-_080B9D98: .4byte gUnknown_2037F1B
-_080B9D9C: .4byte sub_80B9DF0
- thumb_func_end sub_80B9CE4
-
- thumb_func_start sub_80B9DA0
-sub_80B9DA0: @ 80B9DA0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _080B9DEC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r0, [r4, 0x1A]
- lsls r0, 16
- ldrh r1, [r4, 0x1C]
- orrs r0, r1
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r2, [r4, 0x12]
- str r2, [sp]
- adds r2, r5, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9DEC: .4byte gTasks
- thumb_func_end sub_80B9DA0
-
- thumb_func_start sub_80B9DF0
-sub_80B9DF0: @ 80B9DF0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080B9E28 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B9E52
- ldr r1, _080B9E2C @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080B9E4C
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080B9E30
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080B9E34
- .align 2, 0
-_080B9E28: .4byte gPaletteFade
-_080B9E2C: .4byte gTasks
-_080B9E30:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080B9E34:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080B9E44
- movs r2, 0
-_080B9E44:
- adds r0, r4, 0
- bl sub_80B9DA0
- b _080B9E52
-_080B9E4C:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080B9E52:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9DF0
-
- thumb_func_start sub_80B9E58
-sub_80B9E58: @ 80B9E58
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B9E9C @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080B9EA0 @ =gUnknown_2037F02
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80B9EA8
- ldr r0, _080B9EA4 @ =sub_80B9F04
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9E9C: .4byte gTasks
-_080B9EA0: .4byte gUnknown_2037F02
-_080B9EA4: .4byte sub_80B9F04
- thumb_func_end sub_80B9E58
-
- thumb_func_start sub_80B9EA8
-sub_80B9EA8: @ 80B9EA8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080B9F00 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r0, [r4, 0x8]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9F00: .4byte gTasks
- thumb_func_end sub_80B9EA8
-
- thumb_func_start sub_80B9F04
-sub_80B9F04: @ 80B9F04
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080B9F3C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B9F66
- ldr r1, _080B9F40 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080B9F60
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080B9F44
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080B9F48
- .align 2, 0
-_080B9F3C: .4byte gPaletteFade
-_080B9F40: .4byte gTasks
-_080B9F44:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080B9F48:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080B9F58
- movs r2, 0
-_080B9F58:
- adds r0, r4, 0
- bl sub_80B9EA8
- b _080B9F66
-_080B9F60:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080B9F66:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9F04
-
- thumb_func_start sub_80B9F6C
-sub_80B9F6C: @ 80B9F6C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B9FCC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r5, _080B9FD0 @ =gUnknown_2037F02
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r5]
- strh r0, [r4, 0x16]
- ldrh r0, [r5]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldrb r3, [r5, 0x8]
- ldrh r0, [r5, 0x6]
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080B9FD4 @ =sub_80B9FD8
- str r0, [r4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9FCC: .4byte gTasks
-_080B9FD0: .4byte gUnknown_2037F02
-_080B9FD4: .4byte sub_80B9FD8
- thumb_func_end sub_80B9F6C
-
- thumb_func_start sub_80B9FD8
-sub_80B9FD8: @ 80B9FD8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080B9FFC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080BA000
- subs r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _080BA084
- .align 2, 0
-_080B9FFC: .4byte gTasks
-_080BA000:
- ldr r0, _080BA01C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA084
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080BA024
- ldr r0, _080BA020 @ =sub_80BA090
- str r0, [r4]
- b _080BA084
- .align 2, 0
-_080BA01C: .4byte gPaletteFade
-_080BA020: .4byte sub_80BA090
-_080BA024:
- ldrh r0, [r4, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- ldrh r1, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BA052
- ldrb r3, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- b _080BA062
-_080BA052:
- ldrb r3, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
-_080BA062:
- ldr r0, _080BA08C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- eors r0, r2
- strh r0, [r1, 0xA]
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
-_080BA084:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA08C: .4byte gTasks
- thumb_func_end sub_80B9FD8
-
- thumb_func_start sub_80BA090
-sub_80BA090: @ 80BA090
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BA0E0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080BA0D6
- ldr r1, _080BA0E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- str r5, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080BA0D6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0E0: .4byte gPaletteFade
-_080BA0E4: .4byte gTasks
- thumb_func_end sub_80BA090
-
- thumb_func_start sub_80BA0E8
-sub_80BA0E8: @ 80BA0E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080BA160 @ =gUnknown_2037F1A
- ldrb r6, [r0]
- ldr r0, _080BA164 @ =gUnknown_2037F1B
- ldrb r7, [r0]
- ldr r4, _080BA168 @ =gUnknown_2037F02
- ldrh r1, [r4]
- movs r5, 0x80
- lsls r5, 1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080BA122
- str r2, [sp]
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_8075BE8
- adds r2, r0, 0
-_080BA122:
- ldrh r1, [r4, 0x2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080BA134
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r6
- orrs r2, r0
-_080BA134:
- ldrh r1, [r4, 0x4]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080BA146
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r7
- orrs r2, r0
-_080BA146:
- adds r0, r2, 0
- bl InvertPlttBuffer
- mov r0, r8
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA160: .4byte gUnknown_2037F1A
-_080BA164: .4byte gUnknown_2037F1B
-_080BA168: .4byte gUnknown_2037F02
- thumb_func_end sub_80BA0E8
-
- thumb_func_start sub_80BA16C
-sub_80BA16C: @ 80BA16C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r1, _080BA260 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080BA1AE
- ldr r1, _080BA264 @ =gUnknown_2037F02
- ldrh r0, [r1]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x10]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x12]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x16]
-_080BA1AE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080BA268 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- mov r9, r0
- ldr r0, _080BA26C @ =gUnknown_2037F1B
- ldrb r0, [r0]
- mov r10, r0
- ldrh r1, [r4, 0xC]
- movs r7, 0x80
- lsls r7, 1
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080BA1D0
- ldr r5, _080BA270 @ =0x0000ffff
-_080BA1D0:
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080BA200
- ldr r2, _080BA274 @ =gSprites
- ldr r0, _080BA278 @ =gUnknown_3004FF0
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- lsls r1, r0
- lsls r1, 16
- orrs r5, r1
-_080BA200:
- ldrh r1, [r4, 0xE]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080BA214
- adds r0, r6, 0
- mov r2, r9
- lsls r0, r2
- lsls r0, 16
- orrs r5, r0
-_080BA214:
- ldrh r1, [r4, 0x10]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080BA228
- adds r0, r6, 0
- mov r1, r10
- lsls r0, r1
- lsls r0, 16
- orrs r5, r0
-_080BA228:
- movs r1, 0x12
- ldrsb r1, [r4, r1]
- movs r2, 0x14
- ldrsb r2, [r4, r2]
- movs r3, 0x16
- ldrsb r3, [r4, r3]
- adds r0, r5, 0
- bl TintPlttBuffer
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080BA252
- adds r0, r5, 0
- bl UnfadePlttBuffer
- mov r0, r8
- bl DestroyAnimVisualTask
-_080BA252:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA260: .4byte gTasks
-_080BA264: .4byte gUnknown_2037F02
-_080BA268: .4byte gUnknown_2037F1A
-_080BA26C: .4byte gUnknown_2037F1B
-_080BA270: .4byte 0x0000ffff
-_080BA274: .4byte gSprites
-_080BA278: .4byte gUnknown_3004FF0
- thumb_func_end sub_80BA16C
-
- thumb_func_start sub_80BA27C
-sub_80BA27C: @ 80BA27C
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080BA2B0 @ =gUnknown_2037F02
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080BA2C4
- cmp r0, 0x1
- bgt _080BA2B4
- cmp r0, 0
- beq _080BA2BA
- b _080BA2DC
- .align 2, 0
-_080BA2B0: .4byte gUnknown_2037F02
-_080BA2B4:
- cmp r0, 0x2
- beq _080BA2CC
- b _080BA2DC
-_080BA2BA:
- ldr r1, _080BA2C0 @ =gUnknown_2022980
- b _080BA2CE
- .align 2, 0
-_080BA2C0: .4byte gUnknown_2022980
-_080BA2C4:
- ldr r1, _080BA2C8 @ =gUnknown_2022982
- b _080BA2CE
- .align 2, 0
-_080BA2C8: .4byte gUnknown_2022982
-_080BA2CC:
- ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX
-_080BA2CE:
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- b _080BA2E4
- .align 2, 0
-_080BA2D8: .4byte gSpriteCoordOffsetX
-_080BA2DC:
- ldr r1, _080BA314 @ =gSpriteCoordOffsetY
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080BA2E4:
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- lsls r0, 16
- orrs r1, r0
- ldrh r0, [r1]
- strh r0, [r4, 0x36]
- ldr r0, _080BA318 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BA308
- bl sub_80BA3CC
-_080BA308:
- ldr r0, _080BA31C @ =sub_80BA320
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA314: .4byte gSpriteCoordOffsetY
-_080BA318: .4byte gUnknown_2037F02
-_080BA31C: .4byte sub_80BA320
- thumb_func_end sub_80BA27C
-
- thumb_func_start sub_80BA320
-sub_80BA320: @ 80BA320
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080BA362
- subs r0, r1, 0x1
- strh r0, [r3, 0x34]
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080BA342
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080BA3BA
-_080BA342:
- ldrh r0, [r3, 0x32]
- strh r0, [r3, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- ldrh r0, [r3, 0x2E]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- b _080BA3BA
-_080BA362:
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- ldrh r0, [r3, 0x36]
- strh r0, [r1]
- ldrh r0, [r3, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BA3B4
- movs r4, 0
- ldr r5, _080BA3C0 @ =gBattlersCount
- ldrb r0, [r5]
- cmp r4, r0
- bcs _080BA3B4
- ldr r2, _080BA3C4 @ =gSprites
- mov r12, r2
- ldr r6, _080BA3C8 @ =gUnknown_2023D44
- movs r7, 0x3
- negs r7, r7
-_080BA392:
- adds r0, r4, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- cmp r4, r0
- bcc _080BA392
-_080BA3B4:
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080BA3BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA3C0: .4byte gBattlersCount
-_080BA3C4: .4byte gSprites
-_080BA3C8: .4byte gUnknown_2023D44
- thumb_func_end sub_80BA320
-
- thumb_func_start sub_80BA3CC
-sub_80BA3CC: @ 80BA3CC
- push {r4-r6,lr}
- ldr r6, _080BA440 @ =gSprites
- ldr r4, _080BA444 @ =gUnknown_2023D44
- ldr r5, _080BA448 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x3
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r3, _080BA44C @ =gUnknown_2037F1B
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r0, _080BA450 @ =gUnknown_2037F02
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _080BA454
- ldrb r0, [r5]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- b _080BA470
- .align 2, 0
-_080BA440: .4byte gSprites
-_080BA444: .4byte gUnknown_2023D44
-_080BA448: .4byte gUnknown_2037F1A
-_080BA44C: .4byte gUnknown_2037F1B
-_080BA450: .4byte gUnknown_2037F02
-_080BA454:
- cmp r0, 0
- bne _080BA45C
- ldrb r0, [r5]
- b _080BA45E
-_080BA45C:
- ldrb r0, [r3]
-_080BA45E:
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
-_080BA470:
- orrs r1, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA3CC
-
- thumb_func_start sub_80BA47C
-sub_80BA47C: @ 80BA47C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BA4BC @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r3, _080BA4C0 @ =gUnknown_2037F02
- ldrh r1, [r3]
- strh r1, [r2, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x18]
- ldr r4, _080BA4C4 @ =gUnknown_2022980
- ldrh r1, [r3]
- strh r1, [r4]
- ldr r4, _080BA4C8 @ =gUnknown_2022982
- ldrh r1, [r3, 0x2]
- strh r1, [r4]
- ldr r1, _080BA4CC @ =sub_80BA4D0
- str r1, [r2]
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA4BC: .4byte gTasks
-_080BA4C0: .4byte gUnknown_2037F02
-_080BA4C4: .4byte gUnknown_2022980
-_080BA4C8: .4byte gUnknown_2022982
-_080BA4CC: .4byte sub_80BA4D0
- thumb_func_end sub_80BA47C
-
- thumb_func_start sub_80BA4D0
-sub_80BA4D0: @ 80BA4D0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080BA500 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _080BA556
- ldr r0, _080BA504 @ =gUnknown_2022980
- ldrh r2, [r0]
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- adds r6, r0, 0
- cmp r2, r1
- bne _080BA508
- ldrh r0, [r3, 0x8]
- negs r0, r0
- b _080BA50A
- .align 2, 0
-_080BA500: .4byte gTasks
-_080BA504: .4byte gUnknown_2022980
-_080BA508:
- ldrh r0, [r3, 0x8]
-_080BA50A:
- strh r0, [r6]
- ldr r2, _080BA528 @ =gUnknown_2022982
- ldrh r3, [r2]
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- mov r7, r12
- adds r4, r0, r7
- movs r7, 0xA
- ldrsh r0, [r4, r7]
- cmn r3, r0
- bne _080BA52C
- movs r0, 0
- b _080BA530
- .align 2, 0
-_080BA528: .4byte gUnknown_2022982
-_080BA52C:
- ldrh r0, [r4, 0xA]
- negs r0, r0
-_080BA530:
- strh r0, [r2]
- adds r0, r1, r5
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x18]
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0xC]
- subs r1, 0x1
- strh r1, [r0, 0xC]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0
- bne _080BA55A
- strh r1, [r6]
- strh r1, [r2]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080BA55A
-_080BA556:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080BA55A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA4D0
-
- thumb_func_start sub_80BA560
-sub_80BA560: @ 80BA560
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080BA580 @ =gUnknown_2037F02
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080BA584
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- b _080BA58C
- .align 2, 0
-_080BA580: .4byte gUnknown_2037F02
-_080BA584:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075114
-_080BA58C:
- ldr r0, _080BA5A0 @ =sub_8074F50
- str r0, [r5, 0x1C]
- ldr r1, _080BA5A4 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA5A0: .4byte sub_8074F50
-_080BA5A4: .4byte DestroyAnimSprite
- thumb_func_end sub_80BA560
-
- thumb_func_start sub_80BA5A8
-sub_80BA5A8: @ 80BA5A8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080BA5C8 @ =gUnknown_2037F02
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080BA5CC
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- b _080BA5D4
- .align 2, 0
-_080BA5C8: .4byte gUnknown_2037F02
-_080BA5CC:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075114
-_080BA5D4:
- ldr r0, _080BA5EC @ =gUnknown_2037F02
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080BA5F0 @ =sub_8074F50
- str r0, [r5, 0x1C]
- ldr r1, _080BA5F4 @ =sub_80B1D3C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA5EC: .4byte gUnknown_2037F02
-_080BA5F0: .4byte sub_8074F50
-_080BA5F4: .4byte sub_80B1D3C
- thumb_func_end sub_80BA5A8
-
- thumb_func_start sub_80BA5F8
-sub_80BA5F8: @ 80BA5F8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080BA628 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080BA61C
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BA61C
- ldr r1, _080BA62C @ =gUnknown_2037F02
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080BA61C:
- adds r0, r4, 0
- bl sub_80BA560
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA628: .4byte gUnknown_2037F1A
-_080BA62C: .4byte gUnknown_2037F02
- thumb_func_end sub_80BA5F8
-
- thumb_func_start sub_80BA630
-sub_80BA630: @ 80BA630
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080BA668 @ =gUnknown_2037F02
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080BA64C
- bl Random
- movs r1, 0x3
- ands r1, r0
- strh r1, [r5, 0x2]
-_080BA64C:
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080BA66C
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075160
- b _080BA674
- .align 2, 0
-_080BA668: .4byte gUnknown_2037F02
-_080BA66C:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075114
-_080BA674:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x30
- bl __umodsi3
- ldr r1, _080BA6B8 @ =0x0000ffe8
- adds r0, r1
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- ldr r1, _080BA6BC @ =0x0000fff4
- adds r0, r1
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r1, _080BA6C0 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080BA6C4 @ =sub_8074F50
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6B8: .4byte 0x0000ffe8
-_080BA6BC: .4byte 0x0000fff4
-_080BA6C0: .4byte move_anim_8074EE0
-_080BA6C4: .4byte sub_8074F50
- thumb_func_end sub_80BA630
-
- thumb_func_start sub_80BA6C8
-sub_80BA6C8: @ 80BA6C8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080BA728 @ =gUnknown_2037F02
- ldrb r0, [r5]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, _080BA72C @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x26]
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080BA730 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080BA734 @ =sub_8074F50
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA728: .4byte gUnknown_2037F02
-_080BA72C: .4byte gSprites
-_080BA730: .4byte move_anim_8074EE0
-_080BA734: .4byte sub_8074F50
- thumb_func_end sub_80BA6C8
-
- thumb_func_start sub_80BA738
-sub_80BA738: @ 80BA738
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080BA750 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080BA754
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075160
- b _080BA75C
- .align 2, 0
-_080BA750: .4byte gUnknown_2037F02
-_080BA754:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
-_080BA75C:
- ldr r0, _080BA774 @ =gUnknown_2037F02
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x2E]
- ldr r1, _080BA778 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080BA77C @ =sub_8074C44
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA774: .4byte gUnknown_2037F02
-_080BA778: .4byte DestroyAnimSprite
-_080BA77C: .4byte sub_8074C44
- thumb_func_end sub_80BA738
-
- thumb_func_start sub_80BA780
-sub_80BA780: @ 80BA780
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080BA7A0 @ =gUnknown_2037F02
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080BA7A4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- b _080BA7AC
- .align 2, 0
-_080BA7A0: .4byte gUnknown_2037F02
-_080BA7A4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075114
-_080BA7AC:
- ldr r0, _080BA7B8 @ =sub_80BA7BC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA7B8: .4byte sub_80BA7BC
- thumb_func_end sub_80BA780
-
- thumb_func_start sub_80BA7BC
-sub_80BA7BC: @ 80BA7BC
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080BA7F2
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080BA7F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80BA7BC
-
- thumb_func_start sub_80BA7F8
-sub_80BA7F8: @ 80BA7F8
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080BA838 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80B9A14
- adds r6, r0, 0
- ldrh r3, [r4]
- lsls r3, 16
- asrs r0, r3, 23
- movs r4, 0x1
- ands r0, r4
- asrs r1, r3, 24
- ands r1, r4
- asrs r2, r3, 25
- ands r2, r4
- asrs r3, 26
- ands r3, r4
- bl sub_8075CB8
- orrs r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80BAA4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA838: .4byte gUnknown_2037F02
- thumb_func_end sub_80BA7F8
-
- thumb_func_start sub_80BA83C
-sub_80BA83C: @ 80BA83C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- movs r0, 0x1
- bl sub_80B9A14
- adds r5, r0, 0
- ldr r0, _080BA868 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- bhi _080BA8E6
- lsls r0, 2
- ldr r1, _080BA86C @ =_080BA870
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BA868: .4byte gUnknown_2037F02
-_080BA86C: .4byte _080BA870
- .align 2, 0
-_080BA870:
- .4byte _080BA892
- .4byte _080BA89E
- .4byte _080BA890
- .4byte _080BA89C
- .4byte _080BA8AC
- .4byte _080BA8C4
- .4byte _080BA8CC
- .4byte _080BA8D8
-_080BA890:
- movs r5, 0
-_080BA892:
- mov r0, sp
- ldr r1, _080BA898 @ =gUnknown_2037F1A
- b _080BA8A2
- .align 2, 0
-_080BA898: .4byte gUnknown_2037F1A
-_080BA89C:
- movs r5, 0
-_080BA89E:
- mov r0, sp
- ldr r1, _080BA8A8 @ =gUnknown_2037F1B
-_080BA8A2:
- ldrb r1, [r1]
- strb r1, [r0]
- b _080BA8E6
- .align 2, 0
-_080BA8A8: .4byte gUnknown_2037F1B
-_080BA8AC:
- mov r1, sp
- ldr r0, _080BA8BC @ =gUnknown_2037F1A
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080BA8C0 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- b _080BA8E6
- .align 2, 0
-_080BA8BC: .4byte gUnknown_2037F1A
-_080BA8C0: .4byte gUnknown_2037F1B
-_080BA8C4:
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- b _080BA8E6
-_080BA8CC:
- movs r5, 0
- mov r2, sp
- ldr r0, _080BA8D4 @ =gUnknown_2037F1A
- b _080BA8DE
- .align 2, 0
-_080BA8D4: .4byte gUnknown_2037F1A
-_080BA8D8:
- movs r5, 0
- mov r2, sp
- ldr r0, _080BA930 @ =gUnknown_2037F1B
-_080BA8DE:
- ldrb r0, [r0]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r2]
-_080BA8E6:
- movs r4, 0
- mov r6, sp
-_080BA8EA:
- ldrb r0, [r6]
- cmp r4, r0
- beq _080BA914
- ldrb r0, [r6, 0x1]
- cmp r4, r0
- beq _080BA914
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080BA914
- adds r0, r4, 0
- bl sub_8075D80
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- orrs r5, r1
-_080BA914:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080BA8EA
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80BAA4C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA930: .4byte gUnknown_2037F1B
- thumb_func_end sub_80BA83C
-
- thumb_func_start sub_80BA934
-sub_80BA934: @ 80BA934
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BA958 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80B9A14
- adds r2, r0, 0
- ldr r0, _080BA95C @ =gUnknown_2022B50
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _080BAA0A
- lsls r0, 2
- ldr r1, _080BA960 @ =_080BA964
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BA958: .4byte gUnknown_2037F02
-_080BA95C: .4byte gUnknown_2022B50
-_080BA960: .4byte _080BA964
- .align 2, 0
-_080BA964:
- .4byte _080BA98C
- .4byte _080BA99C
- .4byte _080BA9A8
- .4byte _080BA9B8
- .4byte _080BA9C4
- .4byte _080BA9D4
- .4byte _080BA9E4
- .4byte _080BA9F4
- .4byte _080BAA04
- .4byte _080BAA04
-_080BA98C:
- ldr r1, _080BA994 @ =gUnknown_2037F02
- ldr r0, _080BA998 @ =0x00000b0c
- b _080BAA08
- .align 2, 0
-_080BA994: .4byte gUnknown_2037F02
-_080BA998: .4byte 0x00000b0c
-_080BA99C:
- ldr r1, _080BA9A4 @ =gUnknown_2037F02
- movs r0, 0x9E
- lsls r0, 4
- b _080BAA08
- .align 2, 0
-_080BA9A4: .4byte gUnknown_2037F02
-_080BA9A8:
- ldr r1, _080BA9B0 @ =gUnknown_2037F02
- ldr r0, _080BA9B4 @ =0x00002f1e
- b _080BAA08
- .align 2, 0
-_080BA9B0: .4byte gUnknown_2037F02
-_080BA9B4: .4byte 0x00002f1e
-_080BA9B8:
- ldr r1, _080BA9C0 @ =gUnknown_2037F02
- movs r0, 0x90
- lsls r0, 7
- b _080BAA08
- .align 2, 0
-_080BA9C0: .4byte gUnknown_2037F02
-_080BA9C4:
- ldr r1, _080BA9CC @ =gUnknown_2037F02
- ldr r0, _080BA9D0 @ =0x00007ecb
- b _080BAA08
- .align 2, 0
-_080BA9CC: .4byte gUnknown_2037F02
-_080BA9D0: .4byte 0x00007ecb
-_080BA9D4:
- ldr r1, _080BA9DC @ =gUnknown_2037F02
- ldr r0, _080BA9E0 @ =0x00007ecb
- b _080BAA08
- .align 2, 0
-_080BA9DC: .4byte gUnknown_2037F02
-_080BA9E0: .4byte 0x00007ecb
-_080BA9E4:
- ldr r1, _080BA9EC @ =gUnknown_2037F02
- ldr r0, _080BA9F0 @ =0x00002a16
- b _080BAA08
- .align 2, 0
-_080BA9EC: .4byte gUnknown_2037F02
-_080BA9F0: .4byte 0x00002a16
-_080BA9F4:
- ldr r1, _080BA9FC @ =gUnknown_2037F02
- ldr r0, _080BAA00 @ =0x00000d2e
- b _080BAA08
- .align 2, 0
-_080BA9FC: .4byte gUnknown_2037F02
-_080BAA00: .4byte 0x00000d2e
-_080BAA04:
- ldr r1, _080BAA18 @ =gUnknown_2037F02
- ldr r0, _080BAA1C @ =0x00007fff
-_080BAA08:
- strh r0, [r1, 0x8]
-_080BAA0A:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80BAA4C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAA18: .4byte gUnknown_2037F02
-_080BAA1C: .4byte 0x00007fff
- thumb_func_end sub_80BA934
-
- thumb_func_start sub_80BAA20
-sub_80BAA20: @ 80BAA20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080BAA48 @ =gUnknown_2037F02
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- adds r0, r4, 0
- bl sub_80BAA4C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAA48: .4byte gUnknown_2037F02
- thumb_func_end sub_80BAA20
-
- thumb_func_start sub_80BAA4C
-sub_80BAA4C: @ 80BAA4C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080BAA84 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- strh r1, [r2, 0x8]
- lsrs r1, 16
- strh r1, [r2, 0xA]
- ldr r3, _080BAA88 @ =gUnknown_2037F02
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x10]
- ldrh r1, [r3, 0x8]
- strh r1, [r2, 0x12]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0x1C]
- ldr r1, _080BAA8C @ =sub_80BAA90
- str r1, [r2]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080BAA84: .4byte gTasks
-_080BAA88: .4byte gUnknown_2037F02
-_080BAA8C: .4byte sub_80BAA90
- thumb_func_end sub_80BAA4C
-
- thumb_func_start sub_80BAA90
-sub_80BAA90: @ 80BAA90
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r2, _080BAB10 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1A]
- mov r8, r0
- movs r4, 0x1A
- ldrsh r1, [r3, r4]
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- mov r9, r2
- cmp r1, r0
- bne _080BAB26
- strh r6, [r3, 0x1A]
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r0, 16
- orrs r4, r0
- mov r8, r5
- cmp r4, 0
- beq _080BAAF2
- adds r5, r3, 0
-_080BAAD0:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080BAAE4
- ldrb r2, [r5, 0x1C]
- ldrh r3, [r5, 0x12]
- adds r0, r6, 0
- movs r1, 0x10
- bl BlendPalette
-_080BAAE4:
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r4, 1
- cmp r4, 0
- bne _080BAAD0
-_080BAAF2:
- mov r4, r8
- adds r0, r4, r7
- lsls r0, 3
- mov r1, r9
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- movs r4, 0x1C
- ldrsh r3, [r2, r4]
- movs r4, 0x10
- ldrsh r1, [r2, r4]
- cmp r3, r1
- bge _080BAB14
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- b _080BAB2C
- .align 2, 0
-_080BAB10: .4byte gTasks
-_080BAB14:
- cmp r3, r1
- ble _080BAB1E
- subs r0, 0x1
- strh r0, [r2, 0x1C]
- b _080BAB2C
-_080BAB1E:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- b _080BAB2C
-_080BAB26:
- mov r0, r8
- adds r0, 0x1
- strh r0, [r3, 0x1A]
-_080BAB2C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BAA90
-
- thumb_func_start sub_80BAB38
-sub_80BAB38: @ 80BAB38
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080BAB6C @ =gUnknown_2037F02
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrb r4, [r4, 0x8]
- str r4, [sp]
- bl BeginHardwarePaletteFade
- ldr r1, _080BAB70 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAB74 @ =sub_80BAB78
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAB6C: .4byte gUnknown_2037F02
-_080BAB70: .4byte gTasks
-_080BAB74: .4byte sub_80BAB78
- thumb_func_end sub_80BAB38
-
- thumb_func_start sub_80BAB78
-sub_80BAB78: @ 80BAB78
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BAB94 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BAB90
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080BAB90:
- pop {r0}
- bx r0
- .align 2, 0
-_080BAB94: .4byte gPaletteFade
- thumb_func_end sub_80BAB78
-
- thumb_func_start sub_80BAB98
-sub_80BAB98: @ 80BAB98
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080BABC4 @ =gTasks
- adds r1, r0
- ldr r2, _080BABC8 @ =gUnknown_2037F02
- ldrh r0, [r2]
- movs r3, 0
- strh r0, [r1, 0x8]
- strh r3, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x4]
- strh r0, [r1, 0xE]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0x10]
- strh r3, [r1, 0x12]
- ldr r0, _080BABCC @ =sub_80BABD0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080BABC4: .4byte gTasks
-_080BABC8: .4byte gUnknown_2037F02
-_080BABCC: .4byte sub_80BABD0
- thumb_func_end sub_80BAB98
-
- thumb_func_start sub_80BABD0
-sub_80BABD0: @ 80BABD0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080BABFC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080BAC94
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080BAC00
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080BACA2
- .align 2, 0
-_080BABFC: .4byte gTasks
-_080BAC00:
- ldrb r0, [r4, 0x8]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- blt _080BAC7E
- ldr r6, _080BAC8C @ =gSprites
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r6
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x2
- cmp r0, 0
- beq _080BAC28
- movs r2, 0x1
-_080BAC28:
- lsls r2, 2
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x5]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0xE]
- strh r1, [r0, 0x2E]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x30]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strh r1, [r0, 0x32]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080BAC90 @ =sub_80BACA8
- str r1, [r0]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_080BAC7E:
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- b _080BACA2
- .align 2, 0
-_080BAC8C: .4byte gSprites
-_080BAC90: .4byte sub_80BACA8
-_080BAC94:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080BACA2
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080BACA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BABD0
-
- thumb_func_start sub_80BACA8
-sub_80BACA8: @ 80BACA8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080BACBC
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080BACE0
-_080BACBC:
- ldr r3, _080BACE8 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080BACE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BACE8: .4byte gTasks
- thumb_func_end sub_80BACA8
-
- thumb_func_start sub_80BACEC
-sub_80BACEC: @ 80BACEC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0
- ldr r0, _080BAE20 @ =gUnknown_2022984
- strh r7, [r0]
- ldr r0, _080BAE24 @ =gUnknown_2022986
- strh r7, [r0]
- ldr r1, _080BAE28 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080BAE2C @ =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, _080BAE30 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, _080BAE34 @ =0x00000c08
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0xA
- bl GetGpuReg
- add r4, sp, 0x10
- strh r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r4]
- mov r2, sp
- adds r2, 0x11
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BAD7A
- ldrb r1, [r4]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
-_080BAD7A:
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080BADFE
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BADFE
- ldr r5, _080BAE38 @ =gUnknown_2037F1A
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080BADAA
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _080BADFE
-_080BADAA:
- ldrb r0, [r5]
- movs r6, 0x2
- eors r0, r6
- bl sub_8072DF0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BADFE
- ldr r3, _080BAE3C @ =gSprites
- ldr r1, _080BAE40 @ =gUnknown_2023D44
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r4]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
- movs r7, 0x1
-_080BADFE:
- ldr r4, _080BAE38 @ =gUnknown_2037F1A
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080BAE4C
- ldr r1, _080BAE44 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BAE48 @ =gEnemyParty
- b _080BAE5C
- .align 2, 0
-_080BAE20: .4byte gUnknown_2022984
-_080BAE24: .4byte gUnknown_2022986
-_080BAE28: .4byte 0x00003f3f
-_080BAE2C: .4byte 0x00003f3d
-_080BAE30: .4byte 0x00003f42
-_080BAE34: .4byte 0x00000c08
-_080BAE38: .4byte gUnknown_2037F1A
-_080BAE3C: .4byte gSprites
-_080BAE40: .4byte gUnknown_2023D44
-_080BAE44: .4byte gBattlerPartyIndexes
-_080BAE48: .4byte gEnemyParty
-_080BAE4C:
- ldr r1, _080BAF0C @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BAF10 @ =gPlayerParty
-_080BAE5C:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _080BAF14 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8076E34
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap
- bl sub_807543C
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080BAEAC
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080BAEAC:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080BAF20 @ =gUnknown_83E7CC8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- adds r1, 0x1
- movs r2, 0x2
- bl LoadPalette
- ldr r2, _080BAF24 @ =gUnknown_2022978
- ldr r0, _080BAF28 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r2, _080BAF2C @ =gUnknown_202297A
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r1, _080BAF30 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- strh r7, [r0, 0x14]
- ldr r1, _080BAF34 @ =sub_80BAF38
- str r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAF0C: .4byte gBattlerPartyIndexes
-_080BAF10: .4byte gPlayerParty
-_080BAF14: .4byte gUnknown_2037F1A
-_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap
-_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet
-_080BAF20: .4byte gUnknown_83E7CC8
-_080BAF24: .4byte gUnknown_2022978
-_080BAF28: .4byte gSprites
-_080BAF2C: .4byte gUnknown_202297A
-_080BAF30: .4byte gTasks
-_080BAF34: .4byte sub_80BAF38
- thumb_func_end sub_80BACEC
-
- thumb_func_start sub_80BAF38
-sub_80BAF38: @ 80BAF38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080BB068 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x1C]
- adds r0, 0x4
- movs r1, 0
- mov r8, r1
- strh r0, [r5, 0x1C]
- ldr r7, _080BB06C @ =gUnknown_202297A
- ldrh r2, [r7]
- subs r1, r2, 0x4
- strh r1, [r7]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080BB05A
- mov r0, r8
- strh r0, [r5, 0x1C]
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r7]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080BB05A
- movs r0, 0
- bl sub_8073128
- ldr r0, _080BB070 @ =gUnknown_2022984
- mov r1, r8
- strh r1, [r0]
- ldr r0, _080BB074 @ =gUnknown_2022986
- strh r1, [r0]
- ldr r4, _080BB078 @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BAFCA
- movs r0, 0xA
- bl GetGpuReg
- add r1, sp, 0x10
- strh r0, [r1]
- ldrb r2, [r1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrh r1, [r1]
- movs r0, 0xA
- bl SetGpuReg
-_080BAFCA:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl GetAnimBankSpriteId
- ldr r4, _080BB07C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_8075358
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080BB050
- ldr r2, _080BB080 @ =gUnknown_2023D44
- ldr r0, _080BB084 @ =gUnknown_2037F1A
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080BB050:
- mov r2, r8
- strh r2, [r7]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080BB05A:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB068: .4byte gTasks
-_080BB06C: .4byte gUnknown_202297A
-_080BB070: .4byte gUnknown_2022984
-_080BB074: .4byte gUnknown_2022986
-_080BB078: .4byte 0x00003f3f
-_080BB07C: .4byte gSprites
-_080BB080: .4byte gUnknown_2023D44
-_080BB084: .4byte gUnknown_2037F1A
- thumb_func_end sub_80BAF38
-
- thumb_func_start sub_80BB088
-sub_80BB088: @ 80BB088
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080BB0C8 @ =gUnknown_20399B4
- movs r0, 0x18
- bl AllocZeroed
- str r0, [r4]
- movs r2, 0
- ldr r3, _080BB0CC @ =gUnknown_2037F02
-_080BB09C:
- ldr r1, [r4]
- lsls r0, r2, 1
- adds r1, 0x4
- adds r1, r0
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080BB09C
- ldr r0, _080BB0D0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BB0D4 @ =sub_80BB0D8
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB0C8: .4byte gUnknown_20399B4
-_080BB0CC: .4byte gUnknown_2037F02
-_080BB0D0: .4byte gTasks
-_080BB0D4: .4byte sub_80BB0D8
- thumb_func_end sub_80BB088
-
- thumb_func_start sub_80BB0D8
-sub_80BB0D8: @ 80BB0D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BB0F0 @ =gUnknown_20399B4
- ldr r1, [r0]
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080BB0F8
- ldr r0, _080BB0F4 @ =gUnknown_2037F1A
- b _080BB0FA
- .align 2, 0
-_080BB0F0: .4byte gUnknown_20399B4
-_080BB0F4: .4byte gUnknown_2037F1A
-_080BB0F8:
- ldr r0, _080BB230 @ =gUnknown_2037F1B
-_080BB0FA:
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r4, _080BB234 @ =gUnknown_20399B4
- ldr r2, [r4]
- ldrb r0, [r2]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r2, 0x1]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BB12A
- ldr r1, [r4]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080BB130
- ldrb r0, [r1, 0x1]
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- bne _080BB130
-_080BB12A:
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1, 0xA]
-_080BB130:
- ldr r0, _080BB238 @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080BB23C @ =gUnknown_2022986
- strh r1, [r0]
- ldr r1, _080BB240 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080BB244 @ =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, _080BB248 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BB18E
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080BB18E:
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080BB20A
- ldr r4, _080BB234 @ =gUnknown_20399B4
- ldr r1, [r4]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080BB20A
- ldrb r0, [r1]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080BB1C0
- ldr r0, [r4]
- ldrb r0, [r0]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _080BB20A
-_080BB1C0:
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8072DF0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _080BB20A
- ldr r3, _080BB24C @ =gSprites
- ldr r1, _080BB250 @ =gUnknown_2023D44
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, [r4]
- strb r5, [r0, 0x2]
-_080BB20A:
- ldr r4, _080BB234 @ =gUnknown_20399B4
- ldr r0, [r4]
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080BB25C
- ldr r1, _080BB254 @ =gBattlerPartyIndexes
- ldr r0, [r4]
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BB258 @ =gEnemyParty
- b _080BB26E
- .align 2, 0
-_080BB230: .4byte gUnknown_2037F1B
-_080BB234: .4byte gUnknown_20399B4
-_080BB238: .4byte gUnknown_2022984
-_080BB23C: .4byte gUnknown_2022986
-_080BB240: .4byte 0x00003f3f
-_080BB244: .4byte 0x00003f3d
-_080BB248: .4byte 0x00003f42
-_080BB24C: .4byte gSprites
-_080BB250: .4byte gUnknown_2023D44
-_080BB254: .4byte gBattlerPartyIndexes
-_080BB258: .4byte gEnemyParty
-_080BB25C:
- ldr r1, _080BB290 @ =gBattlerPartyIndexes
- ldr r0, [r4]
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BB294 @ =gPlayerParty
-_080BB26E:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- ldr r1, [r4]
- strh r0, [r1, 0x14]
- ldr r0, _080BB298 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BB29C @ =sub_80BB2A0
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB290: .4byte gBattlerPartyIndexes
-_080BB294: .4byte gPlayerParty
-_080BB298: .4byte gTasks
-_080BB29C: .4byte sub_80BB2A0
- thumb_func_end sub_80BB0D8
-
- thumb_func_start sub_80BB2A0
-sub_80BB2A0: @ 80BB2A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r6, _080BB300 @ =gUnknown_2023D44
- ldr r4, _080BB304 @ =gUnknown_20399B4
- ldr r2, [r4]
- ldrb r0, [r2]
- adds r1, r0, r6
- ldrb r1, [r1]
- ldrh r2, [r2, 0x14]
- bl sub_8076E34
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, [r4]
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080BB2E2
- ldrb r0, [r2, 0x1]
- adds r1, r0, r6
- ldrb r1, [r1]
- ldrh r2, [r2, 0x14]
- bl sub_8076E34
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080BB2E2:
- mov r0, sp
- bl sub_80752A0
- ldr r0, [r4]
- movs r4, 0x4
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bne _080BB30C
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
- bl sub_807543C
- b _080BB316
- .align 2, 0
-_080BB300: .4byte gUnknown_2023D44
-_080BB304: .4byte gUnknown_20399B4
-_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
-_080BB30C:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
- bl sub_807543C
-_080BB316:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080BB32E
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080BB32E:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080BB35C @ =gUnknown_20399B4
- ldr r0, [r0]
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x6
- bhi _080BB3C4
- lsls r0, 2
- ldr r1, _080BB360 @ =_080BB364
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
-_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet
-_080BB35C: .4byte gUnknown_20399B4
-_080BB360: .4byte _080BB364
- .align 2, 0
-_080BB364:
- .4byte _080BB380
- .4byte _080BB388
- .4byte _080BB390
- .4byte _080BB398
- .4byte _080BB3A0
- .4byte _080BB3A8
- .4byte _080BB3B0
-_080BB380:
- ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette
- b _080BB3B2
- .align 2, 0
-_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette
-_080BB388:
- ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette
- b _080BB3B2
- .align 2, 0
-_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette
-_080BB390:
- ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette
- b _080BB3B2
- .align 2, 0
-_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette
-_080BB398:
- ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette
- b _080BB3B2
- .align 2, 0
-_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette
-_080BB3A0:
- ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette
- b _080BB3B2
- .align 2, 0
-_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette
-_080BB3A8:
- ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette
- b _080BB3B2
- .align 2, 0
-_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette
-_080BB3B0:
- ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette
-_080BB3B2:
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080BB3D2
- .align 2, 0
-_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette
-_080BB3C4:
- ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080BB3D2:
- ldr r3, _080BB400 @ =gUnknown_2022978
- movs r2, 0
- strh r2, [r3]
- ldr r0, _080BB404 @ =gUnknown_202297A
- strh r2, [r0]
- ldr r1, _080BB408 @ =gUnknown_20399B4
- ldr r0, [r1]
- movs r4, 0x4
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0x1
- bne _080BB414
- movs r0, 0x40
- strh r0, [r3]
- ldr r2, _080BB40C @ =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- ldr r1, _080BB410 @ =0x0000fffd
- b _080BB420
- .align 2, 0
-_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette
-_080BB400: .4byte gUnknown_2022978
-_080BB404: .4byte gUnknown_202297A
-_080BB408: .4byte gUnknown_20399B4
-_080BB40C: .4byte gTasks
-_080BB410: .4byte 0x0000fffd
-_080BB414:
- ldr r2, _080BB43C @ =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x3
-_080BB420:
- strh r1, [r0, 0xA]
- ldr r0, [r4]
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080BB440
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- strh r1, [r0, 0x10]
- movs r1, 0x14
- b _080BB44C
- .align 2, 0
-_080BB43C: .4byte gTasks
-_080BB440:
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0xD
- strh r1, [r0, 0x10]
- movs r1, 0x1E
-_080BB44C:
- strh r1, [r0, 0x12]
- adds r1, r3, r5
- lsls r1, 3
- adds r1, r2
- strh r7, [r1, 0x8]
- ldr r3, [r4]
- ldrh r0, [r3, 0xA]
- strh r0, [r1, 0xC]
- mov r4, r8
- strh r4, [r1, 0xE]
- ldrb r0, [r3, 0x2]
- strh r0, [r1, 0x14]
- ldr r2, _080BB490 @ =gUnknown_2023D44
- ldrb r0, [r3, 0x1]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0x16]
- ldr r0, _080BB494 @ =sub_80BB4B8
- str r0, [r1]
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080BB498
- movs r0, 0x40
- negs r0, r0
- bl sub_8073B08
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xE8
- bl PlaySE12WithPanning
- b _080BB4AC
- .align 2, 0
-_080BB490: .4byte gUnknown_2023D44
-_080BB494: .4byte sub_80BB4B8
-_080BB498:
- movs r0, 0x40
- negs r0, r0
- bl sub_8073B08
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xEE
- bl PlaySE12WithPanning
-_080BB4AC:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB2A0
-
- thumb_func_start sub_80BB4B8
-sub_80BB4B8: @ 80BB4B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080BB4E4 @ =gUnknown_202297A
- ldr r1, _080BB4E8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- movs r0, 0x26
- ldrsh r2, [r5, r0]
- cmp r2, 0x1
- beq _080BB52E
- cmp r2, 0x1
- bgt _080BB4EC
- cmp r2, 0
- beq _080BB4F6
- b _080BB644
- .align 2, 0
-_080BB4E4: .4byte gUnknown_202297A
-_080BB4E8: .4byte gTasks
-_080BB4EC:
- cmp r2, 0x2
- beq _080BB544
- cmp r2, 0x3
- beq _080BB582
- b _080BB644
-_080BB4F6:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- cmp r0, 0
- bgt _080BB504
- b _080BB644
-_080BB504:
- strh r2, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- adds r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- beq _080BB52C
- b _080BB644
-_080BB52C:
- b _080BB57A
-_080BB52E:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- cmp r0, r1
- beq _080BB542
- b _080BB644
-_080BB542:
- b _080BB57A
-_080BB544:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- cmp r0, 0
- ble _080BB644
- movs r0, 0
- strh r0, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080BB644
- movs r0, 0
- bl sub_8073128
-_080BB57A:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
- b _080BB644
-_080BB582:
- ldr r0, _080BB64C @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080BB650 @ =gUnknown_2022986
- strh r1, [r0]
- ldr r4, _080BB654 @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BB5B2
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080BB5B2:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080BB658 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BB606
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_080BB606:
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080BB632
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080BB632:
- ldr r4, _080BB65C @ =gUnknown_20399B4
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080BB644:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB64C: .4byte gUnknown_2022984
-_080BB650: .4byte gUnknown_2022986
-_080BB654: .4byte 0x00003f3f
-_080BB658: .4byte gSprites
-_080BB65C: .4byte gUnknown_20399B4
- thumb_func_end sub_80BB4B8
-
- thumb_func_start sub_80BB660
-sub_80BB660: @ 80BB660
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8075CB8
- adds r6, r0, 0
- movs r1, 0
- bl sub_80BB790
- ldr r0, _080BB6C0 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- lsrs r0, r6, 16
- movs r5, 0
- strh r0, [r4, 0x24]
- str r5, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- adds r6, r0, 0
- ldr r1, _080BB6C4 @ =0x0000ffff
- ands r6, r1
- adds r0, r6, 0
- bl sub_80BB790
- strh r6, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r0, _080BB6C8 @ =sub_80BB6CC
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB6C0: .4byte gTasks
-_080BB6C4: .4byte 0x0000ffff
-_080BB6C8: .4byte sub_80BB6CC
- thumb_func_end sub_80BB660
-
- thumb_func_start sub_80BB6CC
-sub_80BB6CC: @ 80BB6CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080BB6F0 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080BB710
- cmp r1, 0x1
- bgt _080BB6F4
- cmp r1, 0
- beq _080BB6FA
- b _080BB78A
- .align 2, 0
-_080BB6F0: .4byte gTasks
-_080BB6F4:
- cmp r1, 0x2
- beq _080BB784
- b _080BB78A
-_080BB6FA:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080BB78A
- strh r1, [r4, 0xA]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- b _080BB778
-_080BB710:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080BB78A
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- movs r5, 0
- movs r6, 0x1
-_080BB72C:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080BB746
- lsls r0, r5, 20
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- ldr r3, _080BB780 @ =0x0000ffff
- bl BlendPalette
-_080BB746:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080BB766
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- movs r3, 0
- bl BlendPalette
-_080BB766:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080BB72C
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080BB78A
-_080BB778:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080BB78A
- .align 2, 0
-_080BB780: .4byte 0x0000ffff
-_080BB784:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080BB78A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB6CC
-
- thumb_func_start sub_80BB790
-sub_80BB790: @ 80BB790
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r2, 0
-_080BB79A:
- movs r0, 0x1
- ands r0, r3
- lsrs r4, r3, 1
- adds r5, r2, 0x1
- cmp r0, 0
- beq _080BB7C6
- lsls r0, r2, 20
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x10
- cmp r2, r0
- bge _080BB7C6
- ldr r1, _080BB7D8 @ =gPlttBufferFaded
- adds r3, r0, 0
-_080BB7B6:
- lsls r0, r2, 1
- adds r0, r1
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _080BB7B6
-_080BB7C6:
- adds r3, r4, 0
- lsls r0, r5, 16
- lsrs r2, r0, 16
- cmp r2, 0x1F
- bls _080BB79A
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB7D8: .4byte gPlttBufferFaded
- thumb_func_end sub_80BB790
-
- thumb_func_start sub_80BB7DC
-sub_80BB7DC: @ 80BB7DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r2, 0
- ldr r0, _080BB824 @ =gUnknown_2037F1A
- ldrb r3, [r0]
- movs r5, 0x1
-_080BB7EC:
- cmp r3, r2
- beq _080BB7FA
- adds r1, r2, 0
- adds r1, 0x10
- adds r0, r5, 0
- lsls r0, r1
- orrs r4, r0
-_080BB7FA:
- adds r2, 0x1
- cmp r2, 0x3
- bls _080BB7EC
- movs r2, 0x5
- ldr r0, _080BB828 @ =gUnknown_2037F02
- adds r1, r0, 0
- adds r1, 0x8
-_080BB808:
- ldrh r0, [r1]
- strh r0, [r1, 0x2]
- subs r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080BB808
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80BAA4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB824: .4byte gUnknown_2037F1A
-_080BB828: .4byte gUnknown_2037F02
- thumb_func_end sub_80BB7DC
-
- thumb_func_start sub_80BB82C
-sub_80BB82C: @ 80BB82C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl sub_8075458
- ldr r0, _080BB894 @ =sub_80BB8A4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080BB898 @ =gUnknown_2037F02
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080BB868
- ldr r0, _080BB89C @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080BB868
- ldrh r0, [r4]
- negs r0, r0
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080BB868:
- ldr r0, _080BB8A0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r2, _080BB898 @ =gUnknown_2037F02
- ldrh r0, [r2]
- strh r0, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB894: .4byte sub_80BB8A4
-_080BB898: .4byte gUnknown_2037F02
-_080BB89C: .4byte gUnknown_2037F1A
-_080BB8A0: .4byte gTasks
- thumb_func_end sub_80BB82C
-
- thumb_func_start sub_80BB8A4
-sub_80BB8A4: @ 80BB8A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080BB910 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0xA]
- ldrh r0, [r1, 0x1C]
- adds r3, r0
- movs r4, 0
- mov r12, r4
- strh r3, [r1, 0x1C]
- ldrh r2, [r1, 0xC]
- ldrh r7, [r1, 0x1E]
- adds r2, r7
- strh r2, [r1, 0x1E]
- ldr r6, _080BB914 @ =gUnknown_2022980
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r4, [r6]
- adds r0, r4
- strh r0, [r6]
- ldr r4, _080BB918 @ =gUnknown_2022982
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r7, [r4]
- adds r0, r7
- strh r0, [r4]
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1, 0x1C]
- ands r2, r0
- strh r2, [r1, 0x1E]
- ldr r0, _080BB91C @ =gUnknown_2037F02
- movs r3, 0xE
- ldrsh r2, [r0, r3]
- movs r7, 0xE
- ldrsh r0, [r1, r7]
- cmp r2, r0
- bne _080BB90A
- mov r0, r12
- strh r0, [r6]
- strh r0, [r4]
- movs r0, 0x1
- bl sub_8075458
- adds r0, r5, 0
- bl DestroyTask
-_080BB90A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB910: .4byte gTasks
-_080BB914: .4byte gUnknown_2022980
-_080BB918: .4byte gUnknown_2022982
-_080BB91C: .4byte gUnknown_2037F02
- thumb_func_end sub_80BB8A4
-
- thumb_func_start sub_80BB920
-sub_80BB920: @ 80BB920
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080BB944 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- ldr r1, _080BB948 @ =gUnknown_2037F02
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB944: .4byte gUnknown_2037F1A
-_080BB948: .4byte gUnknown_2037F02
- thumb_func_end sub_80BB920
-
- thumb_func_start sub_80BB94C
-sub_80BB94C: @ 80BB94C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080BB970 @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- ldr r1, _080BB974 @ =gUnknown_2037F02
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB970: .4byte gUnknown_2037F1B
-_080BB974: .4byte gUnknown_2037F02
- thumb_func_end sub_80BB94C
-
- thumb_func_start sub_80BB978
-sub_80BB978: @ 80BB978
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r5, _080BB9A4 @ =gUnknown_2037F02
- movs r4, 0
- ldr r0, _080BB9A8 @ =gUnknown_2037F1A
- ldrb r2, [r0]
- movs r0, 0x2
- ldr r1, _080BB9AC @ =gUnknown_2037F1B
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BB994
- movs r4, 0x1
-_080BB994:
- strh r4, [r5, 0xE]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB9A4: .4byte gUnknown_2037F02
-_080BB9A8: .4byte gUnknown_2037F1A
-_080BB9AC: .4byte gUnknown_2037F1B
- thumb_func_end sub_80BB978
-
- thumb_func_start sub_80BB9B0
-sub_80BB9B0: @ 80BB9B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r6, _080BBA10 @ =gSprites
-_080BB9BA:
- ldr r0, _080BBA14 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- cmp r4, r0
- beq _080BB9F8
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080BB9F8
- ldr r0, _080BBA18 @ =gUnknown_2023D44
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldr r1, _080BBA1C @ =gUnknown_2037F02
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r3, [r1]
- ands r3, r0
- lsls r3, 2
- ldrb r0, [r2]
- movs r7, 0x5
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080BB9F8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080BB9BA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBA10: .4byte gSprites
-_080BBA14: .4byte gUnknown_2037F1A
-_080BBA18: .4byte gUnknown_2023D44
-_080BBA1C: .4byte gUnknown_2037F02
- thumb_func_end sub_80BB9B0
-
- thumb_func_start sub_80BBA20
-sub_80BBA20: @ 80BBA20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r1, [sp, 0x44]
- ldr r4, [sp, 0x48]
- ldr r5, [sp, 0x4C]
- ldr r6, [sp, 0x50]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x14]
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x18]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x1C]
- lsls r6, 24
- lsrs r6, 24
- mov r10, r6
- movs r0, 0
- str r0, [sp, 0x20]
- movs r0, 0x2
- adds r6, r7, 0
- eors r6, r0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BBA82
- mov r1, r8
- cmp r1, 0
- beq _080BBA86
- adds r0, r6, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- bne _080BBA86
-_080BBA82:
- movs r2, 0
- mov r8, r2
-_080BBA86:
- ldr r0, _080BBB20 @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080BBB24 @ =gUnknown_2022986
- strh r1, [r0]
- ldr r1, _080BBB28 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080BBB2C @ =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, _080BBB30 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0xA
- bl GetGpuReg
- add r4, sp, 0x10
- strh r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- mov r2, sp
- adds r2, 0x11
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BBAFC
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080BBAFC:
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
- adds r0, r7, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080BBB3C
- ldr r1, _080BBB34 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BBB38 @ =gEnemyParty
- b _080BBB4A
- .align 2, 0
-_080BBB20: .4byte gUnknown_2022984
-_080BBB24: .4byte gUnknown_2022986
-_080BBB28: .4byte 0x00003f3f
-_080BBB2C: .4byte 0x00003f3d
-_080BBB30: .4byte 0x00003f42
-_080BBB34: .4byte gBattlerPartyIndexes
-_080BBB38: .4byte gEnemyParty
-_080BBB3C:
- ldr r1, _080BBC10 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BBC14 @ =gPlayerParty
-_080BBB4A:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _080BBC18 @ =gUnknown_2023D44
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_8076E34
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r8
- cmp r0, 0
- beq _080BBB80
- adds r0, r6, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_8076E34
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
-_080BBB80:
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, [sp, 0x58]
- bl sub_807543C
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080BBBA8
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080BBBA8:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- mov r1, sp
- ldrh r2, [r1, 0xA]
- ldr r1, [sp, 0x54]
- bl sub_80753B4
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- ldr r0, [sp, 0x5C]
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, _080BBC1C @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080BBC20 @ =gUnknown_202297A
- strh r1, [r0]
- ldr r1, _080BBC24 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0, 0xA]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0x10]
- mov r1, r10
- strh r1, [r0, 0x12]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r0, 0x14]
- strh r7, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0xE]
- ldr r1, _080BBC28 @ =sub_80BBC2C
- str r1, [r0]
- 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
-_080BBC10: .4byte gBattlerPartyIndexes
-_080BBC14: .4byte gPlayerParty
-_080BBC18: .4byte gUnknown_2023D44
-_080BBC1C: .4byte gUnknown_2022978
-_080BBC20: .4byte gUnknown_202297A
-_080BBC24: .4byte gTasks
-_080BBC28: .4byte sub_80BBC2C
- thumb_func_end sub_80BBA20
-
- thumb_func_start sub_80BBC2C
-sub_80BBC2C: @ 80BBC2C
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080BBC68 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r0, 0xA
- ldrsh r2, [r3, r0]
- adds r5, r1, 0
- cmp r2, 0
- bge _080BBC4A
- negs r2, r2
-_080BBC4A:
- ldrh r0, [r3, 0x22]
- adds r4, r0, r2
- strh r4, [r3, 0x22]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080BBC70
- ldr r2, _080BBC6C @ =gUnknown_202297A
- lsls r1, r4, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- b _080BBC7C
- .align 2, 0
-_080BBC68: .4byte gTasks
-_080BBC6C: .4byte gUnknown_202297A
-_080BBC70:
- ldr r1, _080BBCA0 @ =gUnknown_202297A
- lsls r0, r4, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
-_080BBC7C:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r5
- ldrh r1, [r5, 0x22]
- movs r0, 0xFF
- ands r0, r1
- movs r2, 0
- strh r0, [r5, 0x22]
- movs r3, 0x26
- ldrsh r0, [r5, r3]
- cmp r0, 0x1
- beq _080BBCE6
- cmp r0, 0x1
- bgt _080BBCA4
- cmp r0, 0
- beq _080BBCAA
- b _080BBDD8
- .align 2, 0
-_080BBCA0: .4byte gUnknown_202297A
-_080BBCA4:
- cmp r0, 0x2
- beq _080BBD00
- b _080BBDD8
-_080BBCAA:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r5, r3]
- cmp r0, r1
- bge _080BBCBE
- b _080BBDD8
-_080BBCBE:
- strh r2, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- adds r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _080BBDD8
- b _080BBCF8
-_080BBCE6:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- cmp r0, r1
- bne _080BBDD8
-_080BBCF8:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
- b _080BBDD8
-_080BBD00:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r5, r3]
- cmp r0, r1
- blt _080BBDD8
- strh r2, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x20
- ldrsh r4, [r5, r0]
- cmp r4, 0
- bne _080BBDD8
- movs r0, 0
- bl sub_8073128
- ldr r0, _080BBDE0 @ =gUnknown_2022984
- strh r4, [r0]
- ldr r0, _080BBDE4 @ =gUnknown_2022986
- strh r4, [r0]
- ldr r4, _080BBDE8 @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080BBD7E
- movs r0, 0xA
- bl GetGpuReg
- mov r1, sp
- strh r0, [r1]
- mov r2, sp
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, sp
- ldrh r1, [r0]
- movs r0, 0xA
- bl SetGpuReg
-_080BBD7E:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r3, 0x8
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080BBDEC @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BBDD2
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_080BBDD2:
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080BBDD8:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBDE0: .4byte gUnknown_2022984
-_080BBDE4: .4byte gUnknown_2022986
-_080BBDE8: .4byte 0x00003f3f
-_080BBDEC: .4byte gSprites
- thumb_func_end sub_80BBC2C
-
- thumb_func_start sub_80BBDF0
-sub_80BBDF0: @ 80BBDF0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BBE08 @ =gUnknown_2037F02
- ldr r1, _080BBE0C @ =gUnknown_2022B50
- ldrb r1, [r1]
- strh r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BBE08: .4byte gUnknown_2037F02
-_080BBE0C: .4byte gUnknown_2022B50
- thumb_func_end sub_80BBDF0
-
- thumb_func_start sub_80BBE10
-sub_80BBE10: @ 80BBE10
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- ldr r1, _080BBE38 @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBE38: .4byte gMonSpritesGfxPtr
- thumb_func_end sub_80BBE10
-
- thumb_func_start sub_80BBE3C
-sub_80BBE3C: @ 80BBE3C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _080BBE68 @ =gMonSpritesGfxPtr
- ldr r0, [r6]
- movs r5, 0xBE
- lsls r5, 1
- adds r0, r5
- ldr r0, [r0]
- bl Free
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBE68: .4byte gMonSpritesGfxPtr
- thumb_func_end sub_80BBE3C
-
- thumb_func_start sub_80BBE6C
-sub_80BBE6C: @ 80BBE6C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080BBEAC @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080BBEB0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BBEC8
- movs r2, 0x1
-_080BBE9E:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080BBE9E
- b _080BBEC8
- .align 2, 0
-_080BBEAC: .4byte gUnknown_2037F02
-_080BBEB0:
- cmp r0, 0x1
- bne _080BBEBC
- ldr r0, _080BBEB8 @ =gUnknown_2037F1A
- b _080BBEC2
- .align 2, 0
-_080BBEB8: .4byte gUnknown_2037F1A
-_080BBEBC:
- cmp r0, 0x2
- bne _080BBEC8
- ldr r0, _080BBEF8 @ =gUnknown_2037F1B
-_080BBEC2:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080BBEC8:
- ldr r0, _080BBEFC @ =gMonSpritesGfxPtr
- ldr r1, [r0]
- ldr r0, _080BBF00 @ =gUnknown_2037F02
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- lsls r1, r4, 5
- ldr r2, _080BBF04 @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBEF8: .4byte gUnknown_2037F1B
-_080BBEFC: .4byte gMonSpritesGfxPtr
-_080BBF00: .4byte gUnknown_2037F02
-_080BBF04: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80BBE6C
-
- thumb_func_start sub_80BBF08
-sub_80BBF08: @ 80BBF08
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080BBF48 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080BBF4C
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BBF64
- movs r2, 0x1
-_080BBF3A:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080BBF3A
- b _080BBF64
- .align 2, 0
-_080BBF48: .4byte gUnknown_2037F02
-_080BBF4C:
- cmp r0, 0x1
- bne _080BBF58
- ldr r0, _080BBF54 @ =gUnknown_2037F1A
- b _080BBF5E
- .align 2, 0
-_080BBF54: .4byte gUnknown_2037F1A
-_080BBF58:
- cmp r0, 0x2
- bne _080BBF64
- ldr r0, _080BBF94 @ =gUnknown_2037F1B
-_080BBF5E:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080BBF64:
- lsls r0, r4, 5
- ldr r1, _080BBF98 @ =gPlttBufferUnfaded
- adds r0, r1
- ldr r1, _080BBF9C @ =gMonSpritesGfxPtr
- ldr r2, [r1]
- ldr r1, _080BBFA0 @ =gUnknown_2037F02
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- movs r3, 0xBE
- lsls r3, 1
- adds r2, r3
- ldr r2, [r2]
- lsls r1, 5
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBF94: .4byte gUnknown_2037F1B
-_080BBF98: .4byte gPlttBufferUnfaded
-_080BBF9C: .4byte gMonSpritesGfxPtr
-_080BBFA0: .4byte gUnknown_2037F02
- thumb_func_end sub_80BBF08
-
- thumb_func_start sub_80BBFA4
-sub_80BBFA4: @ 80BBFA4
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080BBFE4 @ =gUnknown_2037F02
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080BBFE8
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BC000
- movs r2, 0x1
-_080BBFD6:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080BBFD6
- b _080BC000
- .align 2, 0
-_080BBFE4: .4byte gUnknown_2037F02
-_080BBFE8:
- cmp r0, 0x1
- bne _080BBFF4
- ldr r0, _080BBFF0 @ =gUnknown_2037F1A
- b _080BBFFA
- .align 2, 0
-_080BBFF0: .4byte gUnknown_2037F1A
-_080BBFF4:
- cmp r0, 0x2
- bne _080BC000
- ldr r0, _080BC020 @ =gUnknown_2037F1B
-_080BBFFA:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080BC000:
- lsls r1, r4, 5
- ldr r0, _080BC024 @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _080BC028 @ =gPlttBufferFaded
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC020: .4byte gUnknown_2037F1B
-_080BC024: .4byte gPlttBufferUnfaded
-_080BC028: .4byte gPlttBufferFaded
- thumb_func_end sub_80BBFA4
-
- thumb_func_start sub_80BC02C
-sub_80BC02C: @ 80BC02C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8073788
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080BC04C
- ldr r1, _080BC048 @ =gUnknown_2037F02
- movs r0, 0x1
- strh r0, [r1, 0xE]
- b _080BC050
- .align 2, 0
-_080BC048: .4byte gUnknown_2037F02
-_080BC04C:
- ldr r0, _080BC05C @ =gUnknown_2037F02
- strh r1, [r0, 0xE]
-_080BC050:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC05C: .4byte gUnknown_2037F02
- thumb_func_end sub_80BC02C
-
- thumb_func_start sub_80BC060
-sub_80BC060: @ 80BC060
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BC080 @ =gUnknown_2037F1A
- ldr r1, _080BC084 @ =gBattlerTarget
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080BC088 @ =gUnknown_2037F1B
- ldr r1, _080BC08C @ =gUnknown_2023D6E
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC080: .4byte gUnknown_2037F1A
-_080BC084: .4byte gBattlerTarget
-_080BC088: .4byte gUnknown_2037F1B
-_080BC08C: .4byte gUnknown_2023D6E
- thumb_func_end sub_80BC060
-
- thumb_func_start sub_80BC090
-sub_80BC090: @ 80BC090
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080BC0B8 @ =gUnknown_2037F1A
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080BC0BC @ =gUnknown_2037F1B
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080BC0C4
- ldr r1, _080BC0C0 @ =gUnknown_2037F02
- movs r0, 0x1
- b _080BC0C8
- .align 2, 0
-_080BC0B8: .4byte gUnknown_2037F1A
-_080BC0BC: .4byte gUnknown_2037F1B
-_080BC0C0: .4byte gUnknown_2037F02
-_080BC0C4:
- ldr r1, _080BC0D8 @ =gUnknown_2037F02
- movs r0, 0
-_080BC0C8:
- strh r0, [r1, 0xE]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC0D8: .4byte gUnknown_2037F02
- thumb_func_end sub_80BC090
-
- thumb_func_start sub_80BC0DC
-sub_80BC0DC: @ 80BC0DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BC0F4 @ =gUnknown_2037F1B
- ldr r1, _080BC0F8 @ =gBattlerTarget
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC0F4: .4byte gUnknown_2037F1B
-_080BC0F8: .4byte gBattlerTarget
- thumb_func_end sub_80BC0DC
-
- thumb_func_start sub_80BC0FC
-sub_80BC0FC: @ 80BC0FC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BC11C @ =gUnknown_2037F1A
- ldr r1, _080BC120 @ =sBattler_AI
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080BC124 @ =gUnknown_2037F1B
- ldr r1, _080BC128 @ =gUnknown_2023D6E
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC11C: .4byte gUnknown_2037F1A
-_080BC120: .4byte sBattler_AI
-_080BC124: .4byte gUnknown_2037F1B
-_080BC128: .4byte gUnknown_2023D6E
- thumb_func_end sub_80BC0FC
-
- thumb_func_start sub_80BC12C
-sub_80BC12C: @ 80BC12C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080BC144
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080BC180
-_080BC144:
- ldr r0, _080BC188 @ =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- ldr r0, _080BC18C @ =gUnknown_2024018
- ldr r4, [r0]
- ldr r2, _080BC190 @ =gUnknown_2037F1A
- ldrb r0, [r2]
- ldr r1, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- strh r0, [r3, 0x8]
- ldrb r1, [r2]
- ldr r0, [r4]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r0, _080BC194 @ =sub_80BC19C
- str r0, [r3]
- ldr r1, _080BC198 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080BC180:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC188: .4byte gTasks
-_080BC18C: .4byte gUnknown_2024018
-_080BC190: .4byte gUnknown_2037F1A
-_080BC194: .4byte sub_80BC19C
-_080BC198: .4byte gUnknown_2037EE2
- thumb_func_end sub_80BC12C
-
- thumb_func_start sub_80BC19C
-sub_80BC19C: @ 80BC19C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BC1E8 @ =gUnknown_2037F02
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _080BC1E0
- ldr r0, _080BC1EC @ =gUnknown_2024018
- ldr r1, [r0]
- ldr r0, _080BC1F0 @ =gUnknown_2037F1A
- ldrb r3, [r0]
- ldr r0, [r1]
- lsls r3, 2
- adds r3, r0
- ldr r1, _080BC1F4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
-_080BC1E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC1E8: .4byte gUnknown_2037F02
-_080BC1EC: .4byte gUnknown_2024018
-_080BC1F0: .4byte gUnknown_2037F1A
-_080BC1F4: .4byte gTasks
- thumb_func_end sub_80BC19C
-
- thumb_func_start SetAnimBgAttribute
-SetAnimBgAttribute: @ 80BC1F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r6, 0x3
- bls _080BC20C
- b _080BC2FE
-_080BC20C:
- ldr r0, _080BC228 @ =gUnknown_83E7CCA
- adds r0, r6, r0
- ldrb r0, [r0]
- bl GetGpuReg
- ldr r1, _080BC22C @ =gUnknown_20399B8
- strh r0, [r1]
- cmp r5, 0x6
- bhi _080BC2F0
- lsls r0, r5, 2
- ldr r1, _080BC230 @ =_080BC234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BC228: .4byte gUnknown_83E7CCA
-_080BC22C: .4byte gUnknown_20399B8
-_080BC230: .4byte _080BC234
- .align 2, 0
-_080BC234:
- .4byte _080BC250
- .4byte _080BC264
- .4byte _080BC27C
- .4byte _080BC294
- .4byte _080BC2AC
- .4byte _080BC2C8
- .4byte _080BC2DC
-_080BC250:
- ldr r2, _080BC260 @ =gUnknown_20399B8
- lsls r3, r4, 6
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x1]
- b _080BC2F0
- .align 2, 0
-_080BC260: .4byte gUnknown_20399B8
-_080BC264:
- ldr r3, _080BC278 @ =gUnknown_20399B8
- movs r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 5
- ldrb r2, [r3, 0x1]
- movs r0, 0x21
- negs r0, r0
- b _080BC2EA
- .align 2, 0
-_080BC278: .4byte gUnknown_20399B8
-_080BC27C:
- ldr r3, _080BC290 @ =gUnknown_20399B8
- movs r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x41
- negs r0, r0
- b _080BC2BA
- .align 2, 0
-_080BC290: .4byte gUnknown_20399B8
-_080BC294:
- ldr r3, _080BC2A8 @ =gUnknown_20399B8
- movs r0, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0xD
- negs r0, r0
- b _080BC2BA
- .align 2, 0
-_080BC2A8: .4byte gUnknown_20399B8
-_080BC2AC:
- ldr r3, _080BC2C4 @ =gUnknown_20399B8
- movs r0, 0x3
- adds r1, r4, 0
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x4
- negs r0, r0
-_080BC2BA:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080BC2F0
- .align 2, 0
-_080BC2C4: .4byte gUnknown_20399B8
-_080BC2C8:
- ldr r2, _080BC2D8 @ =gUnknown_20399B8
- lsls r3, r4, 7
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- b _080BC2F0
- .align 2, 0
-_080BC2D8: .4byte gUnknown_20399B8
-_080BC2DC:
- ldr r3, _080BC304 @ =gUnknown_20399B8
- movs r0, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldrb r2, [r3, 0x1]
- movs r0, 0x20
- negs r0, r0
-_080BC2EA:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x1]
-_080BC2F0:
- ldr r0, _080BC308 @ =gUnknown_83E7CCA
- adds r0, r6, r0
- ldrb r0, [r0]
- ldr r1, _080BC304 @ =gUnknown_20399B8
- ldrh r1, [r1]
- bl SetGpuReg
-_080BC2FE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC304: .4byte gUnknown_20399B8
-_080BC308: .4byte gUnknown_83E7CCA
- thumb_func_end SetAnimBgAttribute
-
- thumb_func_start sub_80BC30C
-sub_80BC30C: @ 80BC30C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r2, 0x3
- bhi _080BC394
- ldr r0, _080BC338 @ =gUnknown_83E7CCE
- adds r0, r2, r0
- ldrb r0, [r0]
- bl GetGpuReg
- mov r1, sp
- strh r0, [r1]
- cmp r4, 0x6
- bhi _080BC394
- lsls r0, r4, 2
- ldr r1, _080BC33C @ =_080BC340
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BC338: .4byte gUnknown_83E7CCE
-_080BC33C: .4byte _080BC340
- .align 2, 0
-_080BC340:
- .4byte _080BC35C
- .4byte _080BC364
- .4byte _080BC36C
- .4byte _080BC374
- .4byte _080BC37C
- .4byte _080BC384
- .4byte _080BC38C
-_080BC35C:
- ldr r0, [sp]
- lsls r0, 16
- lsrs r0, 30
- b _080BC396
-_080BC364:
- ldr r0, [sp]
- lsls r0, 18
- lsrs r0, 31
- b _080BC396
-_080BC36C:
- ldr r0, [sp]
- lsls r0, 25
- lsrs r0, 31
- b _080BC396
-_080BC374:
- ldr r0, [sp]
- lsls r0, 28
- lsrs r0, 30
- b _080BC396
-_080BC37C:
- ldr r0, [sp]
- lsls r0, 30
- lsrs r0, 30
- b _080BC396
-_080BC384:
- ldr r0, [sp]
- lsls r0, 24
- lsrs r0, 31
- b _080BC396
-_080BC38C:
- ldr r0, [sp]
- lsls r0, 19
- lsrs r0, 27
- b _080BC396
-_080BC394:
- movs r0, 0
-_080BC396:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC30C
-
- thumb_func_start sub_80BC3A0
-sub_80BC3A0: @ 80BC3A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BC3B8 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BC3C0
- ldr r0, _080BC3BC @ =sub_80BCC4C
- b _080BC3E8
- .align 2, 0
-_080BC3B8: .4byte gBattleTypeFlags
-_080BC3BC: .4byte sub_80BCC4C
-_080BC3C0:
- movs r0, 0x80
- lsls r0, 5
- ands r1, r0
- cmp r1, 0
- beq _080BC3E0
- ldr r0, _080BC3D8 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080BC3E0
- movs r4, 0x3
- ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8
- b _080BC3E8
- .align 2, 0
-_080BC3D8: .4byte gGameVersion
-_080BC3DC: .4byte task00_battle_intro_80BC6C8
-_080BC3E0:
- ldr r1, _080BC414 @ =gUnknown_83E7CD4
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
-_080BC3E8:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BC418 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r0, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC414: .4byte gUnknown_83E7CD4
-_080BC418: .4byte gTasks
- thumb_func_end sub_80BC3A0
-
- thumb_func_start sub_80BC41C
-sub_80BC41C: @ 80BC41C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _080BC468 @ =gUnknown_2022978
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080BC46C @ =gUnknown_202297A
- strh r1, [r0]
- ldr r0, _080BC470 @ =gUnknown_202297C
- strh r1, [r0]
- ldr r0, _080BC474 @ =gUnknown_202297E
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r4, _080BC478 @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC468: .4byte gUnknown_2022978
-_080BC46C: .4byte gUnknown_202297A
-_080BC470: .4byte gUnknown_202297C
-_080BC474: .4byte gUnknown_202297E
-_080BC478: .4byte 0x00003f3f
- thumb_func_end sub_80BC41C
-
- thumb_func_start task_battle_intro_80BC47C
-task_battle_intro_80BC47C: @ 80BC47C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BC4B4 @ =gUnknown_2022978
- ldrh r0, [r1]
- adds r0, 0x6
- strh r0, [r1]
- ldr r1, _080BC4B8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0x4
- bls _080BC4A8
- b _080BC6BA
-_080BC4A8:
- lsls r0, 2
- ldr r1, _080BC4BC @ =_080BC4C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BC4B4: .4byte gUnknown_2022978
-_080BC4B8: .4byte gTasks
-_080BC4BC: .4byte _080BC4C0
- .align 2, 0
-_080BC4C0:
- .4byte _080BC4D4
- .4byte _080BC504
- .4byte _080BC52C
- .4byte _080BC574
- .4byte _080BC6B4
-_080BC4D4:
- ldr r0, _080BC4EC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BC4F0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x10
- b _080BC4FA
- .align 2, 0
-_080BC4EC: .4byte gBattleTypeFlags
-_080BC4F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x1
-_080BC4FA:
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080BC6BA
-_080BC504:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r3, r8
- adds r1, r0, r3
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080BC51C
- b _080BC6BA
-_080BC51C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- b _080BC6BA
-_080BC52C:
- ldr r1, _080BC568 @ =gUnknown_2022986
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080BC544
- b _080BC6BA
-_080BC544:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080BC56C @ =gUnknown_2023F4C
- ldrh r1, [r2]
- ldr r0, _080BC570 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080BC6BA
- .align 2, 0
-_080BC568: .4byte gUnknown_2022986
-_080BC56C: .4byte gUnknown_2023F4C
-_080BC570: .4byte 0x0000fffe
-_080BC574:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- mov r5, r8
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r5, 0xE
- ldrsh r1, [r2, r5]
- mov r12, r0
- cmp r1, 0
- beq _080BC590
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080BC5BE
-_080BC590:
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080BC5B0
- ldr r2, _080BC5A8 @ =gUnknown_202297A
- ldrh r1, [r2]
- ldr r0, _080BC5AC @ =0x0000ffb0
- cmp r1, r0
- beq _080BC5BE
- subs r0, r1, 0x2
- b _080BC5BC
- .align 2, 0
-_080BC5A8: .4byte gUnknown_202297A
-_080BC5AC: .4byte 0x0000ffb0
-_080BC5B0:
- ldr r2, _080BC690 @ =gUnknown_202297A
- ldrh r1, [r2]
- ldr r0, _080BC694 @ =0x0000ffc8
- cmp r1, r0
- beq _080BC5BE
- subs r0, r1, 0x1
-_080BC5BC:
- strh r0, [r2]
-_080BC5BE:
- ldr r2, _080BC698 @ =gUnknown_2022986
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080BC5D2
- ldr r3, _080BC69C @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080BC5D2:
- mov r5, r12
- adds r0, r5, r4
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080BC5EA
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080BC5EA:
- movs r3, 0
- ldr r5, _080BC6A0 @ =gUnknown_2039600
- mov r9, r5
- ldr r7, _080BC6A4 @ =gUnknown_2038700
- mov r6, r9
- adds r5, r1, 0
-_080BC5F6:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080BC5F6
- cmp r3, 0x9F
- bgt _080BC63A
- ldr r7, _080BC6A4 @ =gUnknown_2038700
- ldr r6, _080BC6A0 @ =gUnknown_2039600
- ldr r1, _080BC6A8 @ =gTasks
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_080BC620:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080BC620
-_080BC63A:
- mov r3, r12
- adds r0, r3, r4
- lsls r0, 3
- mov r5, r8
- adds r1, r0, r5
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _080BC6BA
- movs r0, 0x3
- mov r3, r9
- strb r0, [r3, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080BC6AC @ =0x0600e000
- ldr r2, _080BC6B0 @ =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _080BC6BA
- .align 2, 0
-_080BC690: .4byte gUnknown_202297A
-_080BC694: .4byte 0x0000ffc8
-_080BC698: .4byte gUnknown_2022986
-_080BC69C: .4byte 0xfffffc04
-_080BC6A0: .4byte gUnknown_2039600
-_080BC6A4: .4byte gUnknown_2038700
-_080BC6A8: .4byte gTasks
-_080BC6AC: .4byte 0x0600e000
-_080BC6B0: .4byte 0x05000200
-_080BC6B4:
- adds r0, r4, 0
- bl sub_80BC41C
-_080BC6BA:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task_battle_intro_80BC47C
-
- thumb_func_start task00_battle_intro_80BC6C8
-task00_battle_intro_80BC6C8: @ 80BC6C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080BC6F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x3
- beq _080BC708
- cmp r0, 0x3
- bgt _080BC6F8
- cmp r0, 0x2
- beq _080BC6FC
- b _080BC710
- .align 2, 0
-_080BC6F4: .4byte gTasks
-_080BC6F8:
- cmp r0, 0x4
- bne _080BC710
-_080BC6FC:
- ldr r1, _080BC704 @ =gUnknown_2022978
- ldrh r0, [r1]
- adds r0, 0x8
- b _080BC70E
- .align 2, 0
-_080BC704: .4byte gUnknown_2022978
-_080BC708:
- ldr r1, _080BC74C @ =gUnknown_2022978
- ldrh r0, [r1]
- adds r0, 0x6
-_080BC70E:
- strh r0, [r1]
-_080BC710:
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r4, r1, r2
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- adds r6, r0, 0
- cmp r1, 0x4
- bne _080BC774
- ldr r7, _080BC750 @ =gUnknown_202297A
- ldrh r0, [r4, 0x14]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080BC736
- ldr r1, _080BC754 @ =0x000001ff
- adds r0, r1
-_080BC736:
- asrs r0, 9
- subs r0, 0x8
- strh r0, [r7]
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0xB3
- bgt _080BC758
- adds r0, r1, 0x4
- b _080BC75A
- .align 2, 0
-_080BC74C: .4byte gUnknown_2022978
-_080BC750: .4byte gUnknown_202297A
-_080BC754: .4byte 0x000001ff
-_080BC758:
- adds r0, r1, 0x6
-_080BC75A:
- strh r0, [r4, 0x14]
- ldr r2, _080BC790 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- movs r0, 0xB4
- lsls r0, 1
- cmp r1, r0
- bne _080BC774
- movs r0, 0
- strh r0, [r3, 0x14]
-_080BC774:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _080BC784
- b _080BC9AA
-_080BC784:
- lsls r0, 2
- ldr r1, _080BC794 @ =_080BC798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BC790: .4byte gTasks
-_080BC794: .4byte _080BC798
- .align 2, 0
-_080BC798:
- .4byte _080BC7AC
- .4byte _080BC7DC
- .4byte _080BC808
- .4byte _080BC858
- .4byte _080BC9A4
-_080BC7AC:
- ldr r1, _080BC7C8 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x10
- strh r3, [r2, 0x10]
- ldr r0, _080BC7CC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BC7D0
- strh r3, [r2, 0xC]
- b _080BC7D4
- .align 2, 0
-_080BC7C8: .4byte gTasks
-_080BC7CC: .4byte gBattleTypeFlags
-_080BC7D0:
- movs r0, 0x1
- strh r0, [r2, 0xC]
-_080BC7D4:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080BC9AA
-_080BC7DC:
- ldr r0, _080BC804 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080BC7F2
- b _080BC9AA
-_080BC7F2:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- b _080BC9AA
- .align 2, 0
-_080BC804: .4byte gTasks
-_080BC808:
- ldr r1, _080BC848 @ =gUnknown_2022986
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080BC820
- b _080BC9AA
-_080BC820:
- ldr r0, _080BC84C @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080BC850 @ =gUnknown_2023F4C
- ldrh r1, [r2]
- ldr r0, _080BC854 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080BC9AA
- .align 2, 0
-_080BC848: .4byte gUnknown_2022986
-_080BC84C: .4byte gTasks
-_080BC850: .4byte gUnknown_2023F4C
-_080BC854: .4byte 0x0000fffe
-_080BC858:
- ldr r0, _080BC890 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080BC898
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080BC8B8
- ldr r1, _080BC894 @ =0x00001842
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0xF
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- b _080BC8B8
- .align 2, 0
-_080BC890: .4byte gTasks
-_080BC894: .4byte 0x00001842
-_080BC898:
- ldrh r2, [r1, 0x10]
- movs r0, 0x1F
- ands r0, r2
- cmp r0, 0
- beq _080BC8B8
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080BC8B8
- adds r0, r2, 0
- adds r0, 0xFF
- strh r0, [r1, 0x10]
- movs r0, 0x4
- strh r0, [r1, 0x12]
-_080BC8B8:
- ldr r2, _080BC988 @ =gUnknown_2022986
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080BC8CC
- ldr r3, _080BC98C @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080BC8CC:
- ldr r0, _080BC990 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080BC8E2
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080BC8E2:
- movs r3, 0
- ldr r0, _080BC994 @ =gUnknown_2039600
- mov r8, r0
- ldr r2, _080BC998 @ =gUnknown_2038700
- mov r12, r2
- mov r7, r8
- adds r4, r1, 0
-_080BC8F0:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080BC8F0
- cmp r3, 0x9F
- bgt _080BC934
- ldr r0, _080BC998 @ =gUnknown_2038700
- mov r12, r0
- ldr r7, _080BC994 @ =gUnknown_2039600
- ldr r1, _080BC990 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r1
-_080BC91A:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080BC91A
-_080BC934:
- ldr r1, _080BC990 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080BC9AA
- movs r0, 0x3
- mov r3, r8
- strb r0, [r3, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080BC99C @ =0x0600e000
- ldr r2, _080BC9A0 @ =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _080BC9AA
- .align 2, 0
-_080BC988: .4byte gUnknown_2022986
-_080BC98C: .4byte 0xfffffc04
-_080BC990: .4byte gTasks
-_080BC994: .4byte gUnknown_2039600
-_080BC998: .4byte gUnknown_2038700
-_080BC99C: .4byte 0x0600e000
-_080BC9A0: .4byte 0x05000200
-_080BC9A4:
- adds r0, r5, 0
- bl sub_80BC41C
-_080BC9AA:
- ldr r0, _080BC9D0 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _080BC9C2
- ldrh r1, [r1, 0x10]
- movs r0, 0x52
- bl SetGpuReg
-_080BC9C2:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC9D0: .4byte gTasks
- thumb_func_end task00_battle_intro_80BC6C8
-
- thumb_func_start task_battle_intro_anim
-task_battle_intro_anim: @ 80BC9D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080BCA08 @ =gUnknown_2022978
- ldrh r0, [r1]
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, _080BCA0C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _080BC9FE
- b _080BCC22
-_080BC9FE:
- lsls r0, 2
- ldr r1, _080BCA10 @ =_080BCA14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BCA08: .4byte gUnknown_2022978
-_080BCA0C: .4byte gTasks
-_080BCA10: .4byte _080BCA14
- .align 2, 0
-_080BCA14:
- .4byte _080BCA28
- .4byte _080BCA7C
- .4byte _080BCAA8
- .4byte _080BCAF8
- .4byte _080BCC1C
-_080BCA28:
- ldr r1, _080BCA60 @ =0x00001842
- movs r0, 0x50
- bl SetGpuReg
- ldr r4, _080BCA64 @ =0x00000808
- movs r0, 0x52
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r1, _080BCA68 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x10]
- ldr r0, _080BCA6C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BCA70
- movs r0, 0x10
- b _080BCA72
- .align 2, 0
-_080BCA60: .4byte 0x00001842
-_080BCA64: .4byte 0x00000808
-_080BCA68: .4byte gTasks
-_080BCA6C: .4byte gBattleTypeFlags
-_080BCA70:
- movs r0, 0x1
-_080BCA72:
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080BCC22
-_080BCA7C:
- ldr r0, _080BCAA4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080BCA94
- b _080BCC22
-_080BCA94:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- b _080BCC22
- .align 2, 0
-_080BCAA4: .4byte gTasks
-_080BCAA8:
- ldr r1, _080BCAE8 @ =gUnknown_2022986
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080BCAC0
- b _080BCC22
-_080BCAC0:
- ldr r0, _080BCAEC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080BCAF0 @ =gUnknown_2023F4C
- ldrh r1, [r2]
- ldr r0, _080BCAF4 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080BCC22
- .align 2, 0
-_080BCAE8: .4byte gUnknown_2022986
-_080BCAEC: .4byte gTasks
-_080BCAF0: .4byte gUnknown_2023F4C
-_080BCAF4: .4byte 0x0000fffe
-_080BCAF8:
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r2, r1, r4
- ldrh r3, [r2, 0xE]
- movs r6, 0xE
- ldrsh r1, [r2, r6]
- mov r12, r0
- cmp r1, 0
- beq _080BCB12
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080BCB32
-_080BCB12:
- ldrh r1, [r2, 0x10]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080BCB32
- ldrh r0, [r2, 0x12]
- subs r0, 0x1
- strh r0, [r2, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080BCB32
- adds r0, r1, 0
- adds r0, 0xFF
- strh r0, [r2, 0x10]
- movs r0, 0x6
- strh r0, [r2, 0x12]
-_080BCB32:
- ldr r2, _080BCC00 @ =gUnknown_2022986
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080BCB46
- ldr r3, _080BCC04 @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080BCB46:
- mov r6, r12
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r4
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080BCB5C
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080BCB5C:
- movs r3, 0
- ldr r6, _080BCC08 @ =gUnknown_2039600
- mov r8, r6
- ldr r7, _080BCC0C @ =gUnknown_2038700
- adds r4, r1, 0
-_080BCB66:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080BCB66
- cmp r3, 0x9F
- bgt _080BCBAA
- ldr r7, _080BCC0C @ =gUnknown_2038700
- ldr r6, _080BCC08 @ =gUnknown_2039600
- ldr r1, _080BCC10 @ =gTasks
- mov r2, r12
- adds r0, r2, r5
- lsls r0, 3
- adds r4, r0, r1
-_080BCB90:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080BCB90
-_080BCBAA:
- ldr r1, _080BCC10 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080BCC22
- movs r0, 0x3
- mov r6, r8
- strb r0, [r6, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080BCC14 @ =0x0600e000
- ldr r2, _080BCC18 @ =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _080BCC22
- .align 2, 0
-_080BCC00: .4byte gUnknown_2022986
-_080BCC04: .4byte 0xfffffc04
-_080BCC08: .4byte gUnknown_2039600
-_080BCC0C: .4byte gUnknown_2038700
-_080BCC10: .4byte gTasks
-_080BCC14: .4byte 0x0600e000
-_080BCC18: .4byte 0x05000200
-_080BCC1C:
- adds r0, r5, 0
- bl sub_80BC41C
-_080BCC22:
- ldr r0, _080BCC48 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _080BCC3C
- ldrh r1, [r1, 0x10]
- movs r0, 0x52
- bl SetGpuReg
-_080BCC3C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCC48: .4byte gTasks
- thumb_func_end task_battle_intro_anim
-
- thumb_func_start sub_80BCC4C
-sub_80BCC4C: @ 80BCC4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080BCC98 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- ble _080BCCC2
- movs r2, 0x10
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _080BCCC2
- ldr r2, _080BCC9C @ =gUnknown_2022978
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080BCC8A
- cmp r1, 0x4F
- bhi _080BCCA4
-_080BCC8A:
- adds r0, r1, 0x3
- strh r0, [r2]
- ldr r1, _080BCCA0 @ =gUnknown_202297C
- ldrh r0, [r1]
- subs r0, 0x3
- strh r0, [r1]
- b _080BCCC2
- .align 2, 0
-_080BCC98: .4byte gTasks
-_080BCC9C: .4byte gUnknown_2022978
-_080BCCA0: .4byte gUnknown_202297C
-_080BCCA4:
- str r5, [sp]
- ldr r1, _080BCCE4 @ =0x0600e000
- ldr r4, _080BCCE8 @ =0x05000200
- mov r0, sp
- adds r2, r4, 0
- bl CpuSet
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldr r1, _080BCCEC @ =0x0600f000
- adds r2, r4, 0
- bl CpuSet
- movs r0, 0x1
- strh r0, [r7, 0x10]
-_080BCCC2:
- ldr r0, _080BCCF0 @ =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- mov r9, r0
- adds r5, r2, 0
- cmp r1, 0x4
- bls _080BCCDA
- b _080BCEE6
-_080BCCDA:
- lsls r0, r1, 2
- ldr r1, _080BCCF4 @ =_080BCCF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BCCE4: .4byte 0x0600e000
-_080BCCE8: .4byte 0x05000200
-_080BCCEC: .4byte 0x0600f000
-_080BCCF0: .4byte gTasks
-_080BCCF4: .4byte _080BCCF8
- .align 2, 0
-_080BCCF8:
- .4byte _080BCD0C
- .4byte _080BCD1E
- .4byte _080BCDC4
- .4byte _080BCE08
- .4byte _080BCEE0
-_080BCD0C:
- adds r0, r5, r6
- lsls r0, 3
- add r0, r9
- movs r1, 0x20
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080BCEE6
-_080BCD1E:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r9
- adds r1, r0, r2
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080BCD34
- b _080BCEE6
-_080BCD34:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r4, _080BCDB4 @ =gSprites
- ldr r5, _080BCDB8 @ =gBattleStruct
- ldr r0, [r5]
- adds r0, 0x7D
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r3, [r1, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x8
- mov r9, r3
- mov r3, r9
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldr r3, [r5]
- adds r0, r3, 0
- adds r0, 0x7D
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1C
- adds r1, r4
- mov r8, r1
- add r0, r8
- ldr r6, _080BCDBC @ =sub_801182C
- str r6, [r0]
- adds r3, 0x7E
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- ands r2, r1
- mov r3, r9
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldr r0, [r5]
- adds r0, 0x7E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- str r6, [r0]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- ldr r1, _080BCDC0 @ =0x00003f06
- movs r0, 0x4A
- bl SetGpuReg
- b _080BCEE6
- .align 2, 0
-_080BCDB4: .4byte gSprites
-_080BCDB8: .4byte gBattleStruct
-_080BCDBC: .4byte sub_801182C
-_080BCDC0: .4byte 0x00003f06
-_080BCDC4:
- ldr r1, _080BCDFC @ =gUnknown_2022986
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080BCDDC
- b _080BCEE6
-_080BCDDC:
- adds r1, r5, r6
- lsls r1, 3
- add r1, r9
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080BCE00 @ =gUnknown_2023F4C
- ldrh r1, [r2]
- ldr r0, _080BCE04 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080BCEE6
- .align 2, 0
-_080BCDFC: .4byte gUnknown_2022986
-_080BCE00: .4byte gUnknown_2023F4C
-_080BCE04: .4byte 0x0000fffe
-_080BCE08:
- ldr r2, _080BCECC @ =gUnknown_2022986
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080BCE1C
- ldr r3, _080BCED0 @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080BCE1C:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r9
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080BCE32
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080BCE32:
- movs r3, 0
- ldr r0, _080BCED4 @ =gUnknown_2039600
- mov r12, r0
- ldr r2, _080BCED8 @ =gUnknown_2038700
- mov r8, r2
- mov r7, r12
- adds r4, r1, 0
-_080BCE40:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080BCE40
- cmp r3, 0x9F
- bgt _080BCE84
- ldr r0, _080BCED8 @ =gUnknown_2038700
- mov r8, r0
- ldr r7, _080BCED4 @ =gUnknown_2039600
- ldr r1, _080BCEDC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r4, r0, r1
-_080BCE6A:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080BCE6A
-_080BCE84:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r9
- adds r1, r0, r2
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080BCEE6
- movs r0, 0x3
- mov r2, r12
- strb r0, [r2, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _080BCEE6
- .align 2, 0
-_080BCECC: .4byte gUnknown_2022986
-_080BCED0: .4byte 0xfffffc04
-_080BCED4: .4byte gUnknown_2039600
-_080BCED8: .4byte gUnknown_2038700
-_080BCEDC: .4byte gTasks
-_080BCEE0:
- adds r0, r6, 0
- bl sub_80BC41C
-_080BCEE6:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BCC4C
-
- thumb_func_start sub_80BCEF4
-sub_80BCEF4: @ 80BCEF4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- adds r6, r2, 0
- adds r4, r3, 0
- ldr r0, [sp, 0x24]
- ldr r7, [sp, 0x28]
- ldr r2, [sp, 0x2C]
- mov r9, r2
- ldr r5, [sp, 0x30]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr
- ldr r2, [r1]
- lsls r4, 2
- adds r2, 0x4
- adds r2, r4
- ldr r1, _080BCFC8 @ =gBattleMonForms
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 11
- ldr r0, [r2]
- adds r0, r1
- movs r2, 0x80
- lsls r2, 3
- adds r1, r7, 0
- bl CpuSet
- ldr r1, [sp]
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 5
- adds r1, r7, 0
- adds r3, r5, 0
- bl LoadBgTiles
- adds r0, r6, 0
- adds r0, 0x8
- cmp r6, r0
- bge _080BCFA0
- mov r12, r0
- mov r2, r8
- lsls r7, r2, 1
-_080BCF72:
- mov r1, r8
- adds r2, r1, 0
- adds r2, 0x8
- adds r4, r6, 0x1
- cmp r1, r2
- bge _080BCF9A
- mov r0, r10
- lsls r3, r0, 12
- lsls r0, r6, 6
- add r0, r9
- adds r6, r7, r0
- subs r1, r2, r1
-_080BCF8A:
- adds r0, r5, 0
- orrs r0, r3
- strh r0, [r6]
- adds r5, 0x1
- adds r6, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _080BCF8A
-_080BCF9A:
- adds r6, r4, 0
- cmp r6, r12
- blt _080BCF72
-_080BCFA0:
- ldr r1, [sp]
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 4
- mov r1, r9
- movs r3, 0
- bl LoadBgTilemap
- 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
-_080BCFC4: .4byte gMonSpritesGfxPtr
-_080BCFC8: .4byte gBattleMonForms
- thumb_func_end sub_80BCEF4
-
- thumb_func_start sub_80BCFCC
-sub_80BCFCC: @ 80BCFCC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- mov r8, r5
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- mov r7, r8
- lsls r7, 16
- lsrs r6, r7, 16
- lsls r5, 24
- lsrs r5, 24
- mov r0, r9
- lsls r0, 24
- mov r9, r0
- ldr r4, _080BD090 @ =0x040000d4
- ldr r0, _080BD094 @ =gMonSpritesGfxPtr
- ldr r0, [r0]
- lsrs r2, 22
- adds r0, 0x4
- adds r0, r2
- lsrs r3, 13
- ldr r0, [r0]
- adds r0, r3
- str r0, [r4]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r4, 0x4]
- ldr r0, _080BD098 @ =0x80000400
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, r7, 0
- lsrs r2, 21
- mov r6, r9
- lsrs r6, 15
- subs r4, r2, r6
- lsrs r0, r1, 24
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _080BD080
- mov r9, r1
- mov r7, r12
- lsls r7, 1
- mov r8, r7
- lsls r5, 11
- str r5, [sp]
-_080BD048:
- mov r2, r12
- adds r3, r2, 0
- adds r3, 0x8
- adds r5, r0, 0x1
- cmp r2, r3
- bge _080BD07A
- mov r1, r10
- lsls r6, r1, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- ldr r1, [sp]
- adds r0, r1, r0
- mov r7, r8
- adds r1, r7, r0
- subs r2, r3, r2
-_080BD06A:
- adds r0, r4, 0
- orrs r0, r6
- strh r0, [r1]
- adds r4, 0x1
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080BD06A
-_080BD07A:
- adds r0, r5, 0
- cmp r0, r9
- blt _080BD048
-_080BD080:
- 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
-_080BD090: .4byte 0x040000d4
-_080BD094: .4byte gMonSpritesGfxPtr
-_080BD098: .4byte 0x80000400
- thumb_func_end sub_80BCFCC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s
new file mode 100644
index 000000000..18289e193
--- /dev/null
+++ b/asm/battle_anim_effects_1.s
@@ -0,0 +1,9882 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A22E8
+sub_80A22E8: @ 80A22E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A231C @ =gBattleAnimArgs
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080A2320 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2324
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ b _080A2326
+ .align 2, 0
+_080A231C: .4byte gBattleAnimArgs
+_080A2320: .4byte gBattleAnimAttacker
+_080A2324:
+ ldrh r0, [r5, 0x8]
+_080A2326:
+ strh r0, [r4, 0x34]
+ ldr r0, _080A2338 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0xA]
+ strh r0, [r4, 0x36]
+ ldr r0, _080A233C @ =sub_80A2340
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2338: .4byte gBattleAnimArgs
+_080A233C: .4byte sub_80A2340
+ thumb_func_end sub_80A22E8
+
+ thumb_func_start sub_80A2340
+sub_80A2340: @ 80A2340
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A237C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080A2382
+_080A237C:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2382:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2340
+
+ thumb_func_start sub_80A2388
+sub_80A2388: @ 80A2388
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080A23C8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A23CC @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080A23D0 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080A23D4 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A23C8: .4byte gBattleAnimArgs
+_080A23CC: .4byte gBattleAnimAttacker
+_080A23D0: .4byte sub_8075590
+_080A23D4: .4byte move_anim_8074EE0
+ thumb_func_end sub_80A2388
+
+ thumb_func_start sub_80A23D8
+sub_80A23D8: @ 80A23D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080A2420 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A2424 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080A2428 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080A242C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2420: .4byte gBattleAnimArgs
+_080A2424: .4byte gBattleAnimTarget
+_080A2428: .4byte sub_8075590
+_080A242C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A23D8
+
+ thumb_func_start sub_80A2430
+sub_80A2430: @ 80A2430
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r6, _080A2480 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080A2484 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r1, _080A2488 @ =sub_80A248C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2480: .4byte gBattleAnimArgs
+_080A2484: .4byte gBattleAnimTarget
+_080A2488: .4byte sub_80A248C
+ thumb_func_end sub_80A2430
+
+ thumb_func_start sub_80A248C
+sub_80A248C: @ 80A248C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24A2
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080A24F6
+_080A24A2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080A24BC
+ ldr r0, _080A24B8 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ adds r0, 0x1
+ b _080A24C6
+ .align 2, 0
+_080A24B8: .4byte gBattleAnimTarget
+_080A24BC:
+ ldr r0, _080A24FC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ adds r0, 0x6
+_080A24C6:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xF
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080A24F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A24FC: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A248C
+
+ thumb_func_start sub_80A2500
+sub_80A2500: @ 80A2500
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080A2570 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ movs r2, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080A255A
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ movs r0, 0x6
+ strh r0, [r5, 0x8]
+ ldr r1, _080A2574 @ =gBattleAnimArgs
+ movs r0, 0xF
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ movs r0, 0x50
+ strh r0, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ ldr r4, _080A2578 @ =gUnknown_83E2A88
+ ldr r0, _080A257C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl CreateSpriteAndAnimate
+_080A255A:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ bne _080A2568
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A2568:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2570: .4byte gTasks
+_080A2574: .4byte gBattleAnimArgs
+_080A2578: .4byte gUnknown_83E2A88
+_080A257C: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A2500
+
+ thumb_func_start sub_80A2580
+sub_80A2580: @ 80A2580
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r6, _080A25C4 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A25C8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_8075068
+ ldr r0, _080A25CC @ =sub_80A25D0
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A25C4: .4byte gBattleAnimArgs
+_080A25C8: .4byte gBattleAnimAttacker
+_080A25CC: .4byte sub_80A25D0
+ thumb_func_end sub_80A2580
+
+ thumb_func_start sub_80A25D0
+sub_80A25D0: @ 80A25D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A25E4
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A25E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A25D0
+
+ thumb_func_start sub_80A25EC
+sub_80A25EC: @ 80A25EC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x7
+ ands r1, r0
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r4, _080A2634 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2638
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x14
+ b _080A263C
+ .align 2, 0
+_080A2634: .4byte gBattleAnimAttacker
+_080A2638:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x14
+_080A263C:
+ strh r0, [r5, 0x20]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ ands r0, r1
+ adds r0, 0x40
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080A269C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8075804
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x38]
+ adds r0, r5, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3A]
+ ldr r1, _080A26A0 @ =sub_80A26A4
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A269C: .4byte gBattleAnimTarget
+_080A26A0: .4byte sub_80A26A4
+ thumb_func_end sub_80A25EC
+
+ thumb_func_start sub_80A26A4
+sub_80A26A4: @ 80A26A4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807578C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A26BA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ b _080A26EA
+_080A26BA:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7E
+ bgt _080A26D6
+ ldrh r0, [r4, 0x3A]
+ b _080A26DA
+_080A26D6:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+_080A26DA:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x18
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080A26EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A26A4
+
+ thumb_func_start sub_80A26F0
+sub_80A26F0: @ 80A26F0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080A2750 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2710
+ ldr r1, _080A2754 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A2710:
+ ldr r4, _080A2754 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080A2758 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_8075068
+ ldr r0, _080A275C @ =sub_80A2760
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2750: .4byte gBattleAnimAttacker
+_080A2754: .4byte gBattleAnimArgs
+_080A2758: .4byte gBattleAnimTarget
+_080A275C: .4byte sub_80A2760
+ thumb_func_end sub_80A26F0
+
+ thumb_func_start sub_80A2760
+sub_80A2760: @ 80A2760
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A278A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A2790 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080A2794 @ =sub_80A2798
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+_080A278A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2790: .4byte sub_8074C44
+_080A2794: .4byte sub_80A2798
+ thumb_func_end sub_80A2760
+
+ thumb_func_start sub_80A2798
+sub_80A2798: @ 80A2798
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A27C8 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080A27CC @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A27C8: .4byte sub_8074C44
+_080A27CC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A2798
+
+ thumb_func_start sub_80A27D0
+sub_80A27D0: @ 80A27D0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r5, _080A2814 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080A27FA
+ ldrb r0, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+_080A27FA:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldr r1, _080A2818 @ =sub_80A281C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2814: .4byte gBattleAnimArgs
+_080A2818: .4byte sub_80A281C
+ thumb_func_end sub_80A27D0
+
+ thumb_func_start sub_80A281C
+sub_80A281C: @ 80A281C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x18
+ strh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080A2870
+ ldr r0, _080A286C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ b _080A2894
+ .align 2, 0
+_080A286C: .4byte gBattleAnimTarget
+_080A2870:
+ ldr r0, _080A28C0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080A2884
+ movs r2, 0x3
+_080A2884:
+ movs r0, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+_080A2894:
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080A28B8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A28B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A28C0: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A281C
+
+ thumb_func_start sub_80A28C4
+sub_80A28C4: @ 80A28C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A28DE
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A28E6
+_080A28DE:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080A2918
+_080A28E6:
+ ldr r0, _080A2904 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2908
+ movs r0, 0x2
+ movs r1, 0x4
+ movs r2, 0x3
+ bl SetAnimBgAttribute
+ b _080A2912
+ .align 2, 0
+_080A2904: .4byte gBattleAnimTarget
+_080A2908:
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080A2912:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A2918:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A28C4
+
+ thumb_func_start sub_80A2920
+sub_80A2920: @ 80A2920
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r5, _080A2968 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080A296C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080A2970 @ =sub_80A2974
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2968: .4byte gBattleAnimArgs
+_080A296C: .4byte gBattleAnimAttacker
+_080A2970: .4byte sub_80A2974
+ thumb_func_end sub_80A2920
+
+ thumb_func_start sub_80A2974
+sub_80A2974: @ 80A2974
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A29E0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080A29C0
+ ldr r0, _080A29BC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ b _080A29CA
+ .align 2, 0
+_080A29BC: .4byte gBattleAnimAttacker
+_080A29C0:
+ ldr r0, _080A29DC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ adds r0, 0x1
+_080A29CA:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080A29E6
+ .align 2, 0
+_080A29DC: .4byte gBattleAnimAttacker
+_080A29E0:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A29E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2974
+
+ thumb_func_start sub_80A29EC
+sub_80A29EC: @ 80A29EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080A2A34 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080A2A38 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080A2A3C @ =sub_80A2A40
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2A34: .4byte gBattleAnimArgs
+_080A2A38: .4byte gBattleAnimAttacker
+_080A2A3C: .4byte sub_80A2A40
+ thumb_func_end sub_80A29EC
+
+ thumb_func_start sub_80A2A40
+sub_80A2A40: @ 80A2A40
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2A98
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x3B
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _080A2A78
+ adds r0, r1, 0
+ subs r0, 0xBB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _080A2A8C
+_080A2A78:
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ eors r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_080A2A8C:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080A2A9E
+_080A2A98:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2A9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2A40
+
+ thumb_func_start sub_80A2AA4
+sub_80A2AA4: @ 80A2AA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A2AE0 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080A2AE4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldr r0, _080A2AE8 @ =sub_80A2AEC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AE0: .4byte gBattleAnimAttacker
+_080A2AE4: .4byte gBattleAnimArgs
+_080A2AE8: .4byte sub_80A2AEC
+ thumb_func_end sub_80A2AA4
+
+ thumb_func_start sub_80A2AEC
+sub_80A2AEC: @ 80A2AEC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x32]
+ movs r2, 0x32
+ ldrsh r3, [r1, r2]
+ cmp r3, 0
+ bne _080A2B20
+ ldrh r0, [r1, 0x30]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _080A2B0E
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+ strh r3, [r1, 0x32]
+ b _080A2B14
+_080A2B0E:
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ strh r2, [r1, 0x32]
+_080A2B14:
+ ldr r0, _080A2B1C @ =sub_80A2B38
+ str r0, [r1, 0x1C]
+ b _080A2B34
+ .align 2, 0
+_080A2B1C: .4byte sub_80A2B38
+_080A2B20:
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ ldrh r0, [r1, 0x2E]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+_080A2B34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2AEC
+
+ thumb_func_start sub_80A2B38
+sub_80A2B38: @ 80A2B38
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A2B58 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2B5C
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+ negs r0, r0
+ b _080A2B66
+ .align 2, 0
+_080A2B58: .4byte gBattleAnimAttacker
+_080A2B5C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+_080A2B66:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A2B86
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+_080A2B86:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080A2B94
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2B94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2B38
+
+ thumb_func_start sub_80A2B9C
+sub_80A2B9C: @ 80A2B9C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080A2BF0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2BBC
+ ldr r1, _080A2BF4 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A2BBC:
+ ldr r6, _080A2BF4 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A2BFC
+ ldr r4, _080A2BF8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ b _080A2C1C
+ .align 2, 0
+_080A2BF0: .4byte gBattleAnimAttacker
+_080A2BF4: .4byte gBattleAnimArgs
+_080A2BF8: .4byte gBattleAnimTarget
+_080A2BFC:
+ ldr r0, _080A2C48 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_8076D9C
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+_080A2C1C:
+ strh r0, [r5, 0x36]
+ ldr r0, _080A2C4C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_8075068
+ ldr r0, _080A2C50 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080A2C48 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080A2C54
+ movs r0, 0x1
+ b _080A2C56
+ .align 2, 0
+_080A2C48: .4byte gBattleAnimTarget
+_080A2C4C: .4byte gBattleAnimArgs
+_080A2C50: .4byte gBattleAnimAttacker
+_080A2C54:
+ movs r0, 0
+_080A2C56:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A2C64 @ =sub_80A2C68
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2C64: .4byte sub_80A2C68
+ thumb_func_end sub_80A2B9C
+
+ thumb_func_start sub_80A2C68
+sub_80A2C68: @ 80A2C68
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ ldrh r5, [r6, 0x2E]
+ ldrh r4, [r6, 0x3C]
+ movs r0, 0x1
+ strh r0, [r6, 0x2E]
+ adds r0, r6, 0
+ bl AnimateBallThrow
+ ldrh r0, [r6, 0x3C]
+ strh r5, [r6, 0x2E]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0xC8
+ ble _080A2C9A
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x37
+ bgt _080A2C9A
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080A2CA0
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+_080A2C9A:
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080A2CD2
+_080A2CA0:
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080A2CD2
+ adds r3, r6, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r6, 0x6]
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bne _080A2CD2
+ movs r7, 0x1
+_080A2CD2:
+ movs r2, 0x20
+ ldrsh r0, [r6, r2]
+ movs r2, 0x24
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080A2CFC
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ movs r2, 0x26
+ ldrsh r0, [r6, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080A2CFC
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080A2CFE
+_080A2CFC:
+ movs r7, 0x1
+_080A2CFE:
+ cmp r7, 0
+ beq _080A2D08
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080A2D08:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2C68
+
+ thumb_func_start sub_80A2D10
+sub_80A2D10: @ 80A2D10
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2D3C
+ bl sub_8075290
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2D3C
+ ldr r0, _080A2D64 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_8076D9C
+_080A2D3C:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r1, _080A2D68 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x36]
+ ldr r0, _080A2D6C @ =sub_80A2D70
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2D64: .4byte gBattleAnimTarget
+_080A2D68: .4byte gBattleAnimArgs
+_080A2D6C: .4byte sub_80A2D70
+ thumb_func_end sub_80A2D10
+
+ thumb_func_start sub_80A2D70
+sub_80A2D70: @ 80A2D70
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ bne _080A2D86
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ b _080A2D94
+_080A2D86:
+ cmp r0, 0
+ ble _080A2D94
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ subs r0, r1, 0x2
+ strh r0, [r4, 0x30]
+_080A2D94:
+ ldrh r3, [r4, 0x32]
+ ldrh r5, [r4, 0x38]
+ adds r2, r3, r5
+ strh r2, [r4, 0x38]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r5, 0x36
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bge _080A2DAC
+ adds r0, r2, r3
+ strh r0, [r4, 0x38]
+_080A2DAC:
+ ldrh r1, [r4, 0x38]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r5, 0x38
+ ldrsh r0, [r4, r5]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080A2DEC
+ ldr r0, _080A2DE8 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ b _080A2DFA
+ .align 2, 0
+_080A2DE8: .4byte gBattleAnimTarget
+_080A2DEC:
+ ldr r0, _080A2E24 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+_080A2DFA:
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A2E1E
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2E1E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E24: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A2D70
+
+ thumb_func_start sub_80A2E28
+sub_80A2E28: @ 80A2E28
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _080A2E5C @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080A2E60 @ =sub_80A2E64
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E5C: .4byte gBattleAnimArgs
+_080A2E60: .4byte sub_80A2E64
+ thumb_func_end sub_80A2E28
+
+ thumb_func_start sub_80A2E64
+sub_80A2E64: @ 80A2E64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A2E94 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A2E98 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A2E8E
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A2E9C @ =sub_80A2EA0
+ str r0, [r4, 0x1C]
+_080A2E8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E94: .4byte gBattleAnimArgs
+_080A2E98: .4byte 0x0000ffff
+_080A2E9C: .4byte sub_80A2EA0
+ thumb_func_end sub_80A2E64
+
+ thumb_func_start sub_80A2EA0
+sub_80A2EA0: @ 80A2EA0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A2EB8
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ b _080A2EBC
+_080A2EB8:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0xB
+_080A2EBC:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080A2ED8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x32]
+_080A2ED8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A2F06
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A2F00
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ b _080A2F06
+_080A2F00:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2F06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2EA0
+
+ thumb_func_start sub_80A2F0C
+sub_80A2F0C: @ 80A2F0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A2F38 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080A2F3C
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080A2F62
+ .align 2, 0
+_080A2F38: .4byte gSprites
+_080A2F3C:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_80758E0
+ ldr r1, _080A2F68 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A2F6C @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xA]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x1E]
+ ldr r1, _080A2F70 @ =sub_80A2F74
+ str r1, [r0]
+_080A2F62:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2F68: .4byte gTasks
+_080A2F6C: .4byte gBattleAnimArgs
+_080A2F70: .4byte sub_80A2F74
+ thumb_func_end sub_80A2F0C
+
+ thumb_func_start sub_80A2F74
+sub_80A2F74: @ 80A2F74
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080A2FF4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0
+ strh r1, [r4, 0x1C]
+ ldr r2, _080A2FF8 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r5, 0x24]
+ ldr r0, _080A2FFC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2FBE
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_080A2FBE:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x10
+ strh r0, [r4, 0x1E]
+ movs r0, 0x1E
+ ldrsh r2, [r4, r0]
+ adds r0, r6, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r6, 0
+ bl sub_8076440
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080A2FEC
+ strh r0, [r4, 0x8]
+ ldr r0, _080A3000 @ =sub_80A3004
+ str r0, [r4]
+_080A2FEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2FF4: .4byte gTasks
+_080A2FF8: .4byte gSprites
+_080A2FFC: .4byte gBattleAnimTarget
+_080A3000: .4byte sub_80A3004
+ thumb_func_end sub_80A2F74
+
+ thumb_func_start sub_80A3004
+sub_80A3004: @ 80A3004
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080A3050 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A3054 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A3060
+ ldr r0, _080A3058 @ =gTasks
+ lsls r2, r3, 2
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r6, r1, r0
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ adds r4, r0, 0
+ cmp r5, 0
+ bne _080A3074
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8075980
+ ldr r1, _080A305C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x24]
+ strh r5, [r0, 0x26]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _080A308E
+ .align 2, 0
+_080A3050: .4byte gBattleAnimArgs
+_080A3054: .4byte 0x0000ffff
+_080A3058: .4byte gTasks
+_080A305C: .4byte gSprites
+_080A3060:
+ ldr r1, _080A3094 @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r4, 0x8
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080A308E
+_080A3074:
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080A308E
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080A308E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3094: .4byte gTasks
+ thumb_func_end sub_80A3004
+
+ thumb_func_start sub_80A3098
+sub_80A3098: @ 80A3098
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080A30AA
+ cmp r0, 0x1
+ beq _080A3104
+ b _080A3156
+_080A30AA:
+ ldr r6, _080A30FC @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A30C2
+ ldr r1, _080A3100 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080A30C2:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A3100 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080A3156
+ .align 2, 0
+_080A30FC: .4byte gBattleAnimTarget
+_080A3100: .4byte gBattleAnimArgs
+_080A3104:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A3156
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldr r4, _080A315C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080A3160 @ =sub_8075764
+ str r0, [r5, 0x1C]
+ ldr r1, _080A3164 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080A3156:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A315C: .4byte gBattleAnimAttacker
+_080A3160: .4byte sub_8075764
+_080A3164: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A3098
+
+ thumb_func_start sub_80A3168
+sub_80A3168: @ 80A3168
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A31D4
+ ldr r4, _080A31E0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080A31E4 @ =gBattleAnimArgs
+ ldrh r0, [r4]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1E
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r4, 0x6]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r2, 0x22
+ ldrsh r0, [r5, r2]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ cmp r0, 0x78
+ ble _080A31D4
+ ldrh r0, [r5, 0x22]
+ adds r1, r0, 0
+ subs r1, 0x78
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ adds r1, r0
+ strh r1, [r5, 0x22]
+_080A31D4:
+ ldr r0, _080A31E8 @ =sub_80A32DC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A31E0: .4byte gBattleAnimAttacker
+_080A31E4: .4byte gBattleAnimArgs
+_080A31E8: .4byte sub_80A32DC
+ thumb_func_end sub_80A3168
+
+ thumb_func_start sub_80A31EC
+sub_80A31EC: @ 80A31EC
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ mov r9, r0
+ ldr r4, _080A32C8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _080A32CC @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ adds r2, r0, 0
+ lsls r2, 24
+ subs r4, r5
+ lsls r4, 16
+ lsrs r2, 24
+ mov r1, r8
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r3, r4, 16
+ mov r10, r3
+ asrs r4, 16
+ ldr r6, _080A32D0 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ muls r0, r4
+ movs r1, 0x64
+ str r2, [sp]
+ bl __divsi3
+ adds r5, r0
+ mov r3, r9
+ strh r5, [r3, 0x20]
+ ldr r2, [sp]
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r3, 0
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ add r8, r0
+ mov r1, r8
+ mov r0, r9
+ strh r1, [r0, 0x22]
+ ldrh r0, [r6, 0x2]
+ mov r3, r9
+ strh r0, [r3, 0x24]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r3, 0x26]
+ ldrb r0, [r6, 0x6]
+ adds r0, 0x1E
+ mov r1, r9
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0x8]
+ mov r0, r9
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0xA]
+ mov r1, r9
+ strh r0, [r1, 0x32]
+ ldr r0, _080A32D4 @ =sub_80A32DC
+ str r0, [r1, 0x1C]
+ ldr r1, _080A32D8 @ =gUnknown_203999C
+ mov r3, r9
+ ldrh r0, [r3, 0x20]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1, 0x2]
+ mov r0, r10
+ strh r0, [r1, 0x4]
+ ldr r2, [sp]
+ strh r2, [r1, 0x6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A32C8: .4byte gBattleAnimAttacker
+_080A32CC: .4byte gBattleAnimTarget
+_080A32D0: .4byte gBattleAnimArgs
+_080A32D4: .4byte sub_80A32DC
+_080A32D8: .4byte gUnknown_203999C
+ thumb_func_end sub_80A31EC
+
+ thumb_func_start sub_80A32DC
+sub_80A32DC: @ 80A32DC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ adds r1, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080A331C
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ movs r2, 0x3E
+ adds r2, r3
+ mov r12, r2
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080A331C:
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ ble _080A332E
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080A332E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A32DC
+
+ thumb_func_start sub_80A3334
+sub_80A3334: @ 80A3334
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A3374
+ ldr r5, _080A33B0 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A33B4 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x30]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x32]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x34]
+_080A3374:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+ ldrh r1, [r6, 0x30]
+ muls r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x2E
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0xFF
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x34
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080A33AA
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080A33AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A33B0: .4byte gBattleAnimAttacker
+_080A33B4: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A3334
+
+ thumb_func_start sub_80A33B8
+sub_80A33B8: @ 80A33B8
+ push {r4,r5,lr}
+ movs r2, 0x20
+ ldrsh r4, [r0, r2]
+ lsls r4, 8
+ movs r3, 0x22
+ ldrsh r2, [r0, r3]
+ orrs r4, r2
+ movs r5, 0x3A
+ ldrsh r2, [r0, r5]
+ lsls r2, 8
+ movs r5, 0x3C
+ ldrsh r3, [r0, r5]
+ orrs r2, r3
+ lsls r1, 8
+ strh r4, [r0, 0x38]
+ strh r2, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A33B8
+
+ thumb_func_start sub_80A33E0
+sub_80A33E0: @ 80A33E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ ldrh r0, [r0, 0x38]
+ lsrs r1, r0, 8
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r1, r8
+ ldrh r0, [r1, 0x3A]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r1, [r1, 0x3C]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0xFF
+ ands r3, r1
+ cmp r2, 0
+ bne _080A341A
+ movs r2, 0x20
+ negs r2, r2
+ b _080A3422
+_080A341A:
+ cmp r2, 0xFF
+ bne _080A3422
+ movs r2, 0x88
+ lsls r2, 1
+_080A3422:
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r1, r10
+ subs r0, r2, r1
+ lsls r5, r3, 16
+ asrs r5, 16
+ muls r0, r5
+ lsls r1, r6, 16
+ asrs r7, r1, 16
+ adds r1, r7, 0
+ bl __divsi3
+ adds r6, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r7, 0
+ bl __divsi3
+ add r6, r10
+ mov r1, r8
+ strh r6, [r1, 0x20]
+ add r0, r9
+ strh r0, [r1, 0x22]
+ adds r5, 0x1
+ lsls r5, 16
+ lsrs r3, r5, 16
+ asrs r5, 16
+ cmp r5, r7
+ beq _080A3474
+ lsls r1, r7, 8
+ lsls r0, r3, 16
+ asrs r0, 16
+ orrs r0, r1
+ mov r1, r8
+ strh r0, [r1, 0x3C]
+ movs r0, 0
+ b _080A3476
+_080A3474:
+ movs r0, 0x1
+_080A3476:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A33E0
+
+ thumb_func_start sub_80A3484
+sub_80A3484: @ 80A3484
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080A3498
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080A3498:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _080A34AC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A34AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3484
+
+ thumb_func_start sub_80A34B4
+sub_80A34B4: @ 80A34B4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080A34DE
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080A34DE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80A33E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A350E
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080A3514 @ =sub_80A3484
+ str r0, [r4, 0x1C]
+_080A350E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3514: .4byte sub_80A3484
+ thumb_func_end sub_80A34B4
+
+ thumb_func_start sub_80A3518
+sub_80A3518: @ 80A3518
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r4, _080A3560 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A3564 @ =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080A3568
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x1
+ b _080A357A
+ .align 2, 0
+_080A3560: .4byte gBattleAnimTarget
+_080A3564: .4byte gBattleAnimAttacker
+_080A3568:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x3
+_080A357A:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A358C @ =sub_80A34B4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A358C: .4byte sub_80A34B4
+ thumb_func_end sub_80A3518
+
+ thumb_func_start sub_80A3590
+sub_80A3590: @ 80A3590
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080A35BA
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080A35BA:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80A33E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A35EC
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A35EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3590
+
+ thumb_func_start sub_80A35F4
+sub_80A35F4: @ 80A35F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080A3630 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A3638
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80A33B8
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A3634 @ =sub_80A34B4
+ b _080A3662
+ .align 2, 0
+_080A3630: .4byte gBattleAnimTarget
+_080A3634: .4byte sub_80A34B4
+_080A3638:
+ movs r0, 0xFF
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A3650
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+_080A3650:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80A33B8
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A366C @ =sub_80A3590
+_080A3662:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A366C: .4byte sub_80A3590
+ thumb_func_end sub_80A35F4
+
+ thumb_func_start sub_80A3670
+sub_80A3670: @ 80A3670
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A368A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075114
+ ldr r0, _080A36B0 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x30]
+_080A368A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ muls r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A36AA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A36AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A36B0: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A3670
+
+ thumb_func_start sub_80A36B4
+sub_80A36B4: @ 80A36B4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ ldr r4, _080A36FC @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A3700 @ =gBattleAnimTarget
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080A3704
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x1
+ b _080A3716
+ .align 2, 0
+_080A36FC: .4byte gBattleAnimAttacker
+_080A3700: .4byte gBattleAnimTarget
+_080A3704:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x3
+_080A3716:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A3728 @ =sub_80A372C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3728: .4byte sub_80A372C
+ thumb_func_end sub_80A36B4
+
+ thumb_func_start sub_80A372C
+sub_80A372C: @ 80A372C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080A3756
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080A3756:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A378A
+ movs r0, 0x3F
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080A378A:
+ adds r0, r4, 0
+ bl sub_80A33E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A37B2
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080A37B8 @ =sub_80A3484
+ str r0, [r4, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080A37B2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A37B8: .4byte sub_80A3484
+ thumb_func_end sub_80A372C
+
+ thumb_func_start sub_80A37BC
+sub_80A37BC: @ 80A37BC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A3850
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A37E4
+ ldr r0, _080A37E0 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ strh r1, [r4, 0x30]
+ movs r1, 0x78
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080A3806
+ .align 2, 0
+_080A37E0: .4byte gBattleAnimArgs
+_080A37E4:
+ ldr r0, _080A3840 @ =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r3, [r0, r1]
+ adds r1, r3, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ adds r5, r0, 0
+ cmp r1, 0
+ bge _080A37FA
+ adds r2, r3, 0
+ adds r2, 0xDF
+_080A37FA:
+ asrs r0, r2, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x46
+ strh r0, [r4, 0x20]
+_080A3806:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x32]
+ movs r0, 0x14
+ strh r0, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r0, _080A3844 @ =sub_80A3858
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080A3848
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080A384E
+ .align 2, 0
+_080A3840: .4byte gBattleAnimArgs
+_080A3844: .4byte sub_80A3858
+_080A3848:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080A384E:
+ strb r0, [r1]
+_080A3850:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A37BC
+
+ thumb_func_start sub_80A3858
+sub_80A3858: @ 80A3858
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A386A
+ cmp r0, 0x1
+ beq _080A389A
+ b _080A38BA
+_080A386A:
+ ldrh r5, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4E
+ ble _080A3882
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080A38BA
+_080A3882:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ adds r0, r5, r0
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x3
+ strh r1, [r4, 0x36]
+ strh r0, [r4, 0x22]
+ b _080A38BA
+_080A389A:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A38BA
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A38BA
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldr r0, _080A38C0 @ =sub_80A38C4
+ str r0, [r4, 0x1C]
+_080A38BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A38C0: .4byte sub_80A38C4
+ thumb_func_end sub_80A3858
+
+ thumb_func_start sub_80A38C4
+sub_80A38C4: @ 80A38C4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A3908 @ =gUnknown_83E2F78
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r3, r0, r1
+ adds r0, r5, 0x1
+ adds r0, r3, r0
+ ldrh r2, [r4, 0x32]
+ movs r6, 0x32
+ ldrsh r1, [r4, r6]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080A3910
+ adds r0, r5, 0x2
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x7F
+ bne _080A38FC
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A390C @ =sub_80A397C
+ str r0, [r4, 0x1C]
+_080A38FC:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A3976
+ .align 2, 0
+_080A3908: .4byte gUnknown_83E2F78
+_080A390C: .4byte sub_80A397C
+_080A3910:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r1, r0, r5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r1, r5, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A395E
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080A3956
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080A395C
+_080A3956:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080A395C:
+ strb r0, [r1]
+_080A395E:
+ movs r6, 0x30
+ ldrsh r0, [r4, r6]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+_080A3976:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A38C4
+
+ thumb_func_start sub_80A397C
+sub_80A397C: @ 80A397C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080A398E
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A398E:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A397C
+
+ thumb_func_start sub_80A39C0
+sub_80A39C0: @ 80A39C0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080A3B14 @ =gTasks
+ adds r5, r0, r1
+ ldr r4, _080A3B18 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8076B2C
+ strh r0, [r5, 0x1C]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8076B2C
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0x1
+ bne _080A3A28
+ movs r1, 0x1
+_080A3A28:
+ strh r1, [r5, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r5, r3]
+ lsls r0, 6
+ movs r1, 0x38
+ subs r1, r0
+ strh r1, [r5, 0x1A]
+ ldrh r0, [r5, 0x16]
+ subs r0, r1
+ ldrh r1, [r5, 0x14]
+ adds r0, r1
+ strh r0, [r5, 0x18]
+ ldr r0, _080A3B1C @ =gUnknown_83E2FF0
+ movs r2, 0x18
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1A
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ cmp r0, 0x40
+ bne _080A3A60
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A3A60:
+ ldr r4, _080A3B20 @ =gSprites
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x18]
+ strh r1, [r0, 0x30]
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ muls r1, r0
+ ldrh r0, [r5, 0x14]
+ subs r0, r1
+ strh r0, [r2, 0x32]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x1A]
+ strh r1, [r0, 0x34]
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r2, [r5, r3]
+ muls r0, r2
+ ldrh r2, [r5, 0x16]
+ adds r0, r2
+ strh r0, [r1, 0x36]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80A3F04
+ movs r1, 0xC
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x38]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_8075068
+ ldr r0, _080A3B24 @ =sub_80A3B28
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3B14: .4byte gTasks
+_080A3B18: .4byte gBattleAnimTarget
+_080A3B1C: .4byte gUnknown_83E2FF0
+_080A3B20: .4byte gSprites
+_080A3B24: .4byte sub_80A3B28
+ thumb_func_end sub_80A39C0
+
+ thumb_func_start sub_80A3B28
+sub_80A3B28: @ 80A3B28
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080A3B6C @ =gTasks
+ adds r6, r0, r1
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A3B70 @ =gSprites
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ cmp r5, 0x7
+ bne _080A3B50
+ b _080A3D80
+_080A3B50:
+ cmp r5, 0x7
+ bgt _080A3B9E
+ cmp r5, 0x3
+ bne _080A3B5A
+ b _080A3C72
+_080A3B5A:
+ cmp r5, 0x3
+ bgt _080A3B74
+ cmp r5, 0x1
+ beq _080A3C04
+ cmp r5, 0x1
+ bgt _080A3C54
+ cmp r5, 0
+ beq _080A3BE6
+ b _080A3EFC
+ .align 2, 0
+_080A3B6C: .4byte gTasks
+_080A3B70: .4byte gSprites
+_080A3B74:
+ cmp r5, 0x5
+ bne _080A3B7A
+ b _080A3CE8
+_080A3B7A:
+ cmp r5, 0x5
+ ble _080A3B80
+ b _080A3D62
+_080A3B80:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3B96
+ b _080A3EFC
+_080A3B96:
+ movs r0, 0x5
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3B9E:
+ cmp r5, 0xB
+ bne _080A3BA4
+ b _080A3E64
+_080A3BA4:
+ cmp r5, 0xB
+ bgt _080A3BD2
+ cmp r5, 0x9
+ bne _080A3BAE
+ b _080A3DD2
+_080A3BAE:
+ cmp r5, 0x9
+ ble _080A3BB4
+ b _080A3E48
+_080A3BB4:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3BCA
+ b _080A3EFC
+_080A3BCA:
+ movs r0, 0x9
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3BD2:
+ cmp r5, 0xD
+ bne _080A3BD8
+ b _080A3ED6
+_080A3BD8:
+ cmp r5, 0xD
+ bge _080A3BDE
+ b _080A3EB6
+_080A3BDE:
+ cmp r5, 0xFF
+ bne _080A3BE4
+ b _080A3EE6
+_080A3BE4:
+ b _080A3EFC
+_080A3BE6:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3BFC
+ b _080A3EFC
+_080A3BFC:
+ movs r0, 0x1
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3C04:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80A3F04
+ strh r0, [r4, 0x38]
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x2
+ strh r0, [r6, 0x10]
+ strh r5, [r6, 0xE]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3C54:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3C6A
+ b _080A3EFC
+_080A3C6A:
+ movs r0, 0x3
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3C72:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r1, r0
+ ldrh r0, [r6, 0x16]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80A3F04
+ strh r0, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3CE8:
+ ldrh r1, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r2, 0x1E
+ ldrsh r0, [r6, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80A3F04
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x3
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3D62:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3D78
+ b _080A3EFC
+_080A3D78:
+ movs r0, 0x7
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3D80:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80A3F04
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ adds r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x4
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3DD2:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r0, r1
+ ldrh r3, [r6, 0x16]
+ adds r0, r3
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80A3F04
+ strh r0, [r4, 0x38]
+ movs r0, 0x5
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3E48:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A3EFC
+ movs r0, 0xB
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3E64:
+ ldrh r2, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r2, r0
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x18]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x1A]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80A3F04
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x6
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3EB6:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A3EFC
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3ED6:
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A3EFC
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080A3EFC
+_080A3EE6:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080A3EFC
+ movs r0, 0
+ strh r0, [r6, 0xA]
+ ldrh r0, [r6, 0x26]
+_080A3EFA:
+ strh r0, [r6, 0x8]
+_080A3EFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3B28
+
+ thumb_func_start sub_80A3F04
+sub_80A3F04: @ 80A3F04
+ push {lr}
+ movs r2, 0x8
+ movs r3, 0x36
+ ldrsh r1, [r0, r3]
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bge _080A3F1A
+ negs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080A3F1A:
+ lsls r0, r2, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A3F04
+
+ thumb_func_start sub_80A3F24
+sub_80A3F24: @ 80A3F24
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A3FBA
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ ldr r0, _080A3FC4 @ =gSprites
+ mov r8, r0
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ ldrh r2, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r2, r0
+ ldr r0, _080A3FC8 @ =gUnknown_83E2FF0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r3, [r6, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080A3FBA
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r0, r8
+ adds r4, r5, r0
+ strh r7, [r4, 0x3A]
+ movs r0, 0xC
+ strh r0, [r4, 0x3C]
+ ldr r0, _080A3FCC @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldrh r2, [r6, 0x22]
+ movs r0, 0x1
+ ands r0, r2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x10]
+ adds r4, 0x43
+ strb r0, [r4]
+ mov r0, r8
+ adds r0, 0x1C
+ adds r5, r0
+ ldr r0, _080A3FD0 @ =sub_80A3FD4
+ str r0, [r5]
+_080A3FBA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3FC4: .4byte gSprites
+_080A3FC8: .4byte gUnknown_83E2FF0
+_080A3FCC: .4byte gTasks
+_080A3FD0: .4byte sub_80A3FD4
+ thumb_func_end sub_80A3F24
+
+ thumb_func_start sub_80A3FD4
+sub_80A3FD4: @ 80A3FD4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A4036
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080A4036
+ ldr r3, _080A403C @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080A4036:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A403C: .4byte gTasks
+ thumb_func_end sub_80A3FD4
+
+ thumb_func_start sub_80A4040
+sub_80A4040: @ 80A4040
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080A4054 @ =gBattleAnimArgs
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A405C
+ ldr r0, _080A4058 @ =gBattleAnimAttacker
+ b _080A405E
+ .align 2, 0
+_080A4054: .4byte gBattleAnimArgs
+_080A4058: .4byte gBattleAnimAttacker
+_080A405C:
+ ldr r0, _080A407C @ =gBattleAnimTarget
+_080A405E:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4088
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldr r1, _080A4080 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080A4084 @ =0x0000fff0
+ b _080A4098
+ .align 2, 0
+_080A407C: .4byte gBattleAnimTarget
+_080A4080: .4byte gBattleAnimArgs
+_080A4084: .4byte 0x0000fff0
+_080A4088:
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r1, _080A40BC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ movs r0, 0x80
+ lsls r0, 1
+_080A4098:
+ strh r0, [r4, 0x20]
+ adds r7, r1, 0
+ adds r5, r7, 0
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080A40CE
+ cmp r0, 0x1
+ bgt _080A40C0
+ cmp r0, 0
+ beq _080A40CA
+ b _080A4138
+ .align 2, 0
+_080A40BC: .4byte gBattleAnimArgs
+_080A40C0:
+ cmp r0, 0x2
+ beq _080A40D4
+ cmp r0, 0x3
+ beq _080A4100
+ b _080A4138
+_080A40CA:
+ ldrh r0, [r5]
+ b _080A40E4
+_080A40CE:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ b _080A411A
+_080A40D4:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5]
+ adds r0, r5
+_080A40E4:
+ strh r0, [r4, 0x22]
+ adds r0, r6, 0
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080A4138
+_080A4100:
+ ldr r0, _080A4144 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7]
+ adds r0, r7
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+_080A411A:
+ adds r0, r6, 0
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080A4138:
+ ldr r0, _080A4148 @ =sub_80A414C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4144: .4byte gBattleAnimTarget
+_080A4148: .4byte sub_80A414C
+ thumb_func_end sub_80A4040
+
+ thumb_func_start sub_80A414C
+sub_80A414C: @ 80A414C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x3C
+ ldrsh r3, [r4, r0]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ ldr r1, _080A41A0 @ =gSineTable
+ movs r5, 0x2E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ muls r0, r3
+ strh r0, [r4, 0x24]
+ movs r5, 0x34
+ ldrsh r0, [r4, r5]
+ muls r0, r3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A41A4
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ movs r5, 0x20
+ ldrsh r1, [r4, r5]
+ adds r0, r1
+ cmp r0, 0xF7
+ ble _080A41BC
+ b _080A41B6
+ .align 2, 0
+_080A41A0: .4byte gSineTable
+_080A41A4:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bgt _080A41BC
+_080A41B6:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080A41BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A414C
+
+ thumb_func_start sub_80A41C4
+sub_80A41C4: @ 80A41C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080A41E4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080A41E8
+ cmp r0, 0x1
+ beq _080A421C
+ b _080A4276
+ .align 2, 0
+_080A41E4: .4byte gTasks
+_080A41E8:
+ ldr r0, _080A4214 @ =0x0000274f
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r4, r2, 0
+ adds r0, r4
+ strh r0, [r5, 0x18]
+ ldr r0, _080A4218 @ =0x000027b0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080A4276
+ .align 2, 0
+_080A4214: .4byte 0x0000274f
+_080A4218: .4byte 0x000027b0
+_080A421C:
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080A4276
+ strh r7, [r5, 0x1A]
+ ldrh r0, [r5, 0x18]
+ ldrb r2, [r5, 0x1C]
+ ldr r4, _080A4290 @ =gUnknown_83E30F0
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x20]
+ ldrb r2, [r5, 0x1C]
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ bne _080A4276
+ strh r7, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bne _080A4276
+ strh r7, [r5, 0x1E]
+_080A4276:
+ ldr r0, _080A4294 @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A428A
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A428A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4290: .4byte gUnknown_83E30F0
+_080A4294: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A41C4
+
+ thumb_func_start sub_80A4298
+sub_80A4298: @ 80A4298
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _080A42B0 @ =gBattleAnimArgs
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080A42B4
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+ b _080A438E
+ .align 2, 0
+_080A42B0: .4byte gBattleAnimArgs
+_080A42B4:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080A42C4
+ ldr r4, _080A42C0 @ =gBattleAnimAttacker
+ b _080A42C6
+ .align 2, 0
+_080A42C0: .4byte gBattleAnimAttacker
+_080A42C4:
+ ldr r4, _080A4300 @ =gBattleAnimTarget
+_080A42C6:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A4304 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x8]
+ strh r1, [r6, 0x2E]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080A4308
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x20]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x38]
+ strh r2, [r6, 0x3A]
+ b _080A4318
+ .align 2, 0
+_080A4300: .4byte gBattleAnimTarget
+_080A4304: .4byte gBattleAnimArgs
+_080A4308:
+ strh r5, [r6, 0x20]
+ strh r2, [r6, 0x22]
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x38]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x3A]
+_080A4318:
+ ldrh r4, [r6, 0x20]
+ lsls r0, r4, 4
+ strh r0, [r6, 0x30]
+ ldrh r5, [r6, 0x22]
+ lsls r0, r5, 4
+ strh r0, [r6, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r6, r1]
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x34]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x22
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x38]
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x3A]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A437A
+ ldr r1, _080A4398 @ =0xffff8000
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080A437A:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8075A1C
+ ldr r0, _080A439C @ =sub_80A43A0
+ str r0, [r6, 0x1C]
+_080A438E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4398: .4byte 0xffff8000
+_080A439C: .4byte sub_80A43A0
+ thumb_func_end sub_80A4298
+
+ thumb_func_start sub_80A43A0
+sub_80A43A0: @ 80A43A0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080A43D0
+ ldrh r0, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r0, r4
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r4, [r2, 0x32]
+ adds r1, r4
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x2E]
+ b _080A43D6
+_080A43D0:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080A43D6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A43A0
+
+ thumb_func_start sub_80A43DC
+sub_80A43DC: @ 80A43DC
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A43F2
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A43F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A43DC
+
+ thumb_func_start sub_80A43F8
+sub_80A43F8: @ 80A43F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A4418 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4420
+ ldr r2, _080A441C @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ b _080A442C
+ .align 2, 0
+_080A4418: .4byte gBattleAnimAttacker
+_080A441C: .4byte gBattleAnimArgs
+_080A4420:
+ ldr r0, _080A4444 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080A442C:
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080A4448 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _080A444C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4444: .4byte gBattleAnimArgs
+_080A4448: .4byte sub_8074F6C
+_080A444C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A43F8
+
+ thumb_func_start sub_80A4450
+sub_80A4450: @ 80A4450
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080A4488 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A446A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080A446A:
+ ldr r0, _080A448C @ =sub_80A43DC
+ str r0, [r5, 0x1C]
+ ldr r4, _080A4490 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_8074FF8
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4488: .4byte gBattleAnimAttacker
+_080A448C: .4byte sub_80A43DC
+_080A4490: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A4450
+
+ thumb_func_start sub_80A4494
+sub_80A4494: @ 80A4494
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080A44D4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080A44D8 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A44DC @ =sub_8074E70
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A44D4: .4byte gBattleAnimArgs
+_080A44D8: .4byte move_anim_8074EE0
+_080A44DC: .4byte sub_8074E70
+ thumb_func_end sub_80A4494
+
+ thumb_func_start sub_80A44E0
+sub_80A44E0: @ 80A44E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080A4530 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4514
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080A4514:
+ ldr r0, _080A4534 @ =sub_80A46CC
+ str r0, [r5, 0x1C]
+ ldr r0, _080A4538 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080A453C
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _080A4550
+ .align 2, 0
+_080A4530: .4byte gBattleAnimTarget
+_080A4534: .4byte sub_80A46CC
+_080A4538: .4byte gBattleAnimArgs
+_080A453C:
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080A4550:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldr r1, _080A4584 @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x30]
+ adds r1, r0, r2
+ strh r1, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A457E
+ negs r0, r1
+ strh r0, [r5, 0x30]
+_080A457E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4584: .4byte 0xfffffc00
+ thumb_func_end sub_80A44E0
+
+ thumb_func_start sub_80A4588
+sub_80A4588: @ 80A4588
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, _080A45A4 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080A45A8
+ cmp r0, 0x1
+ ble _080A4624
+ cmp r0, 0x2
+ beq _080A45C8
+ b _080A4624
+ .align 2, 0
+_080A45A4: .4byte gBattleAnimArgs
+_080A45A8:
+ ldr r5, _080A45C4 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ eors r4, r0
+ adds r0, r4, 0
+ b _080A4634
+ .align 2, 0
+_080A45C4: .4byte gBattleAnimTarget
+_080A45C8:
+ ldr r5, _080A4620 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ movs r2, 0x2
+ mov r8, r2
+ mov r1, r8
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A463E
+ ldrb r0, [r5]
+ mov r2, r8
+ eors r0, r2
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ lsrs r7, r0, 1
+ ldrb r0, [r5]
+ mov r1, r8
+ eors r0, r1
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ lsrs r4, r0, 1
+ b _080A463E
+ .align 2, 0
+_080A4620: .4byte gBattleAnimTarget
+_080A4624:
+ ldr r4, _080A4670 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+_080A4634:
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A463E:
+ strh r7, [r6, 0x20]
+ strh r4, [r6, 0x22]
+ ldr r0, _080A4670 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4656
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x8
+ strh r0, [r6, 0x22]
+_080A4656:
+ ldr r0, _080A4674 @ =sub_80A46CC
+ str r0, [r6, 0x1C]
+ ldr r0, _080A4678 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080A467C
+ ldrh r0, [r3]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ b _080A4690
+ .align 2, 0
+_080A4670: .4byte gBattleAnimTarget
+_080A4674: .4byte sub_80A46CC
+_080A4678: .4byte gBattleAnimArgs
+_080A467C:
+ ldrh r0, [r6, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r6, 0x20]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080A4690:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r6, 0x22]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldr r1, _080A46C8 @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r6, 0x30]
+ adds r1, r0, r2
+ strh r1, [r6, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r6, 0x32]
+ adds r0, r2
+ strh r0, [r6, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A46BE
+ negs r0, r1
+ strh r0, [r6, 0x30]
+_080A46BE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A46C8: .4byte 0xfffffc00
+ thumb_func_end sub_80A4588
+
+ thumb_func_start sub_80A46CC
+sub_80A46CC: @ 80A46CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080A46EE
+ adds r0, r1, 0
+ adds r0, 0x18
+ b _080A46F2
+_080A46EE:
+ adds r0, r1, 0
+ subs r0, 0x18
+_080A46F2:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x18
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080A4728
+ ldr r1, _080A4730 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A4734 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+_080A4728:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4730: .4byte DestroyAnimSprite
+_080A4734: .4byte sub_8074C44
+ thumb_func_end sub_80A46CC
+
+ thumb_func_start sub_80A4738
+sub_80A4738: @ 80A4738
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ ble _080A47DC
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A4794
+ adds r3, r5, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r4, _080A4790 @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ adds r1, r2, 0
+ ands r1, r3
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ b _080A47CA
+ .align 2, 0
+_080A4790: .4byte gSprites
+_080A4794:
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r3, _080A47D8 @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+_080A47CA:
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ b _080A47E0
+ .align 2, 0
+_080A47D8: .4byte gSprites
+_080A47DC:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x32]
+_080A47E0:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xA
+ bne _080A4810
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080A4818 @ =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+_080A4810:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4818: .4byte gSprites
+ thumb_func_end sub_80A4738
+
+ thumb_func_start sub_80A481C
+sub_80A481C: @ 80A481C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080A483C @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A4840 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4844
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080A484A
+ .align 2, 0
+_080A483C: .4byte gBattleAnimArgs
+_080A4840: .4byte gBattleAnimAttacker
+_080A4844:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080A484A:
+ strh r0, [r5, 0x20]
+ ldr r4, _080A4878 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080A487C @ =sub_80A4880
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4878: .4byte gBattleAnimArgs
+_080A487C: .4byte sub_80A4880
+ thumb_func_end sub_80A481C
+
+ thumb_func_start sub_80A4880
+sub_80A4880: @ 80A4880
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080A48AC
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0
+ b _080A48B2
+_080A48AC:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0xE
+_080A48B2:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x82
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080A48E8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A48E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4880
+
+ thumb_func_start sub_80A48F0
+sub_80A48F0: @ 80A48F0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4906
+ ldr r1, _080A4964 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x8
+ strh r0, [r1, 0x2]
+_080A4906:
+ ldr r6, _080A4968 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074844
+ lsls r0, 24
+ ldr r4, _080A4964 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4944
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A496C
+_080A4944:
+ ldrb r0, [r6]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ b _080A4984
+ .align 2, 0
+_080A4964: .4byte gBattleAnimArgs
+_080A4968: .4byte gBattleAnimAttacker
+_080A496C:
+ ldrb r0, [r6]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_080A4984:
+ ldr r0, _080A49C8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A49CC @ =0x00002828
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ movs r4, 0x10
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r0, [r5, 0x3C]
+ lsls r1, r0, 8
+ subs r4, r0
+ orrs r1, r4
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, _080A49D0 @ =sub_80A49D4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A49C8: .4byte gBattleAnimArgs
+_080A49CC: .4byte 0x00002828
+_080A49D0: .4byte sub_80A49D4
+ thumb_func_end sub_80A48F0
+
+ thumb_func_start sub_80A49D4
+sub_80A49D4: @ 80A49D4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x60
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A4A32
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080A4A7C @ =gPlttBufferFaded
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r2, 0
+ adds r6, r1, 0
+ adds r3, r6, 0
+_080A4A0C:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ adds r2, 0x1
+ adds r0, r2
+ lsls r1, r0, 1
+ adds r1, r3
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ cmp r2, 0x5
+ ble _080A4A0C
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_080A4A32:
+ ldrh r2, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ ble _080A4A6C
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _080A4A80
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A4A6C
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ subs r2, 0x1
+ strh r2, [r4, 0x3C]
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+_080A4A6C:
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A4A80
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A4AC2
+ .align 2, 0
+_080A4A7C: .4byte gPlttBufferFaded
+_080A4A80:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A4AC2
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r2, 0x1
+ strh r2, [r4, 0x3C]
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080A4AC2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080A4AC8 @ =sub_8074F88
+ str r0, [r4, 0x1C]
+_080A4AC2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4AC8: .4byte sub_8074F88
+ thumb_func_end sub_80A49D4
+
+ thumb_func_start sub_80A4ACC
+sub_80A4ACC: @ 80A4ACC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080A4B2C @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A4B30 @ =0x0000ffe8
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ strh r5, [r4, 0x3A]
+ movs r0, 0x10
+ strh r0, [r4, 0x3C]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, _080A4B34 @ =sub_80A4B38
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B2C: .4byte gBattleAnimTarget
+_080A4B30: .4byte 0x0000ffe8
+_080A4B34: .4byte sub_80A4B38
+ thumb_func_end sub_80A4ACC
+
+ thumb_func_start sub_80A4B38
+sub_80A4B38: @ 80A4B38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080A4B46
+ b _080A4C90
+_080A4B46:
+ lsls r0, 2
+ ldr r1, _080A4B50 @ =_080A4B54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A4B50: .4byte _080A4B54
+ .align 2, 0
+_080A4B54:
+ .4byte _080A4B68
+ .4byte _080A4BCC
+ .4byte _080A4BE8
+ .4byte _080A4C66
+ .4byte _080A4C7A
+_080A4B68:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A4B76
+ b _080A4C90
+_080A4B76:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A4B98
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080A4BA6
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080A4BA6
+_080A4B98:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A4BA6
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080A4BA6:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080A4C90
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080A4C90
+ strh r0, [r4, 0x30]
+ b _080A4C72
+_080A4BCC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080A4C90
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080A4C72
+_080A4BE8:
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x4
+ bl sub_80A4C98
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080A4C0A
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080A4C0A:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080A4C90
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080A4C30
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A4C3E
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080A4C3E
+_080A4C30:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080A4C3E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080A4C3E:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080A4C90
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080A4C90
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ b _080A4C72
+_080A4C66:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080A4C72:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A4C90
+_080A4C7A:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A4C90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4B38
+
+ thumb_func_start sub_80A4C98
+sub_80A4C98: @ 80A4C98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xB
+ bgt _080A4CAA
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080A4CAA:
+ ldrh r5, [r4, 0x34]
+ adds r0, r5, 0
+ subs r0, 0x12
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ cmp r0, 0x17
+ bhi _080A4CC0
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x2
+ strh r0, [r4, 0x36]
+_080A4CC0:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _080A4CCE
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080A4CCE:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0x9
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080A4CF4
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080A4CF4:
+ adds r0, r5, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _080A4D04
+ movs r0, 0
+ strh r0, [r4, 0x34]
+_080A4D04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4C98
+
+ thumb_func_start sub_80A4D0C
+sub_80A4D0C: @ 80A4D0C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A4D50 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A4D20
+ adds r0, r4, 0
+ bl sub_8074FCC
+_080A4D20:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_8074FF8
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080A4D54 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A4D58 @ =sub_8074D00
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4D50: .4byte gBattleAnimArgs
+_080A4D54: .4byte DestroyAnimSprite
+_080A4D58: .4byte sub_8074D00
+ thumb_func_end sub_80A4D0C
+
+ thumb_func_start sub_80A4D5C
+sub_80A4D5C: @ 80A4D5C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080A4D70 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A4D78
+ ldr r0, _080A4D74 @ =gBattleAnimAttacker
+ b _080A4D7A
+ .align 2, 0
+_080A4D70: .4byte gBattleAnimArgs
+_080A4D74: .4byte gBattleAnimAttacker
+_080A4D78:
+ ldr r0, _080A4DBC @ =gBattleAnimTarget
+_080A4D7A:
+ ldrb r6, [r0]
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4DC4
+ movs r1, 0x2
+ adds r0, r6, 0
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4DC4
+ ldr r4, _080A4DC0 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0xC]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ adds r0, r6, 0
+ bl sub_8076D9C
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r5, 0
+ bl sub_8074FF8
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ b _080A4E14
+ .align 2, 0
+_080A4DBC: .4byte gBattleAnimTarget
+_080A4DC0: .4byte gBattleAnimArgs
+_080A4DC4:
+ ldr r4, _080A4DE4 @ =gBattleAnimArgs
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080A4DE8
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ b _080A4DFA
+ .align 2, 0
+_080A4DE4: .4byte gBattleAnimArgs
+_080A4DE8:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+_080A4DFA:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldr r0, _080A4E34 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_8074FF8
+_080A4E14:
+ ldr r1, _080A4E34 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ ldr r1, _080A4E38 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A4E3C @ =sub_8074D00
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4E34: .4byte gBattleAnimArgs
+_080A4E38: .4byte DestroyAnimSprite
+_080A4E3C: .4byte sub_8074D00
+ thumb_func_end sub_80A4D5C
+
+ thumb_func_start sub_80A4E40
+sub_80A4E40: @ 80A4E40
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080A4E6C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4E74
+ ldr r0, _080A4E70 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _080A4E8E
+ .align 2, 0
+_080A4E6C: .4byte gBattleAnimAttacker
+_080A4E70: .4byte gBattleAnimArgs
+_080A4E74:
+ ldr r2, _080A4E98 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080A4E8E:
+ ldr r0, _080A4E9C @ =sub_80A4EA0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4E98: .4byte gBattleAnimArgs
+_080A4E9C: .4byte sub_80A4EA0
+ thumb_func_end sub_80A4E40
+
+ thumb_func_start sub_80A4EA0
+sub_80A4EA0: @ 80A4EA0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080A4ED8
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1E
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 18
+ asrs r0, 16
+ movs r1, 0x3
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080A4ED8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A4EEC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A4EEC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4EA0
+
+ thumb_func_start sub_80A4EF4
+sub_80A4EF4: @ 80A4EF4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080A4F24 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4F2C
+ ldr r1, _080A4F28 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080A4F4A
+ .align 2, 0
+_080A4F24: .4byte gBattleAnimAttacker
+_080A4F28: .4byte gBattleAnimArgs
+_080A4F2C:
+ ldr r2, _080A4F54 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldr r0, _080A4F58 @ =0x0000ffff
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080A4F4A:
+ ldr r0, _080A4F5C @ =sub_80A4F60
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4F54: .4byte gBattleAnimArgs
+_080A4F58: .4byte 0x0000ffff
+_080A4F5C: .4byte sub_80A4F60
+ thumb_func_end sub_80A4EF4
+
+ thumb_func_start sub_80A4F60
+sub_80A4F60: @ 80A4F60
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080A4FA4
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080A4FA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4F60
+
+ thumb_func_start sub_80A4FAC
+sub_80A4FAC: @ 80A4FAC
+ push {lr}
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x22]
+ movs r1, 0x14
+ strh r1, [r0, 0x2E]
+ ldr r1, _080A4FCC @ =sub_8074C44
+ str r1, [r0, 0x1C]
+ ldr r1, _080A4FD0 @ =sub_80A4FD4
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4FCC: .4byte sub_8074C44
+_080A4FD0: .4byte sub_80A4FD4
+ thumb_func_end sub_80A4FAC
+
+ thumb_func_start sub_80A4FD4
+sub_80A4FD4: @ 80A4FD4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r6, [r5, 0x38]
+ movs r1, 0x1
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080A4FEA
+ cmp r0, 0x1
+ beq _080A5004
+ b _080A506A
+_080A4FEA:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080A4FFC @ =sub_8074C44
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5000 @ =sub_80A4FD4
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ b _080A506A
+ .align 2, 0
+_080A4FFC: .4byte sub_8074C44
+_080A5000: .4byte sub_80A4FD4
+_080A5004:
+ ldrh r3, [r5, 0x24]
+ ldrh r0, [r5, 0x20]
+ adds r3, r0
+ movs r0, 0
+ strh r3, [r5, 0x20]
+ ldrh r4, [r5, 0x26]
+ ldrh r1, [r5, 0x22]
+ adds r4, r1
+ strh r4, [r5, 0x22]
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r2, _080A5078 @ =gUnknown_83E3548
+ lsls r0, r6, 16
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r3, r1
+ strh r3, [r5, 0x32]
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r0
+ strh r4, [r5, 0x36]
+ ldr r0, _080A507C @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5080 @ =sub_80A5084
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ movs r0, 0x3F
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCB
+ bl PlaySE12WithPanning
+_080A506A:
+ ldrh r0, [r5, 0x38]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x38]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5078: .4byte gUnknown_83E3548
+_080A507C: .4byte sub_8075590
+_080A5080: .4byte sub_80A5084
+ thumb_func_end sub_80A4FD4
+
+ thumb_func_start sub_80A5084
+sub_80A5084: @ 80A5084
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _080A50AC
+ movs r0, 0xA
+ strh r0, [r2, 0x2E]
+ ldr r0, _080A50A4 @ =sub_8074C44
+ str r0, [r2, 0x1C]
+ ldr r1, _080A50A8 @ =sub_80A50B8
+ adds r0, r2, 0
+ bl StoreSpriteCallbackInData6
+ b _080A50B0
+ .align 2, 0
+_080A50A4: .4byte sub_8074C44
+_080A50A8: .4byte sub_80A50B8
+_080A50AC:
+ ldr r0, _080A50B4 @ =sub_80A4FD4
+ str r0, [r2, 0x1C]
+_080A50B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A50B4: .4byte sub_80A4FD4
+ thumb_func_end sub_80A5084
+
+ thumb_func_start sub_80A50B8
+sub_80A50B8: @ 80A50B8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x6]
+ cmp r1, 0
+ bne _080A50E0
+ movs r0, 0x3
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldr r0, _080A50D8 @ =sub_8074C44
+ str r0, [r5, 0x1C]
+ ldr r1, _080A50DC @ =sub_80A5174
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ b _080A5160
+ .align 2, 0
+_080A50D8: .4byte sub_8074C44
+_080A50DC: .4byte sub_80A5174
+_080A50E0:
+ ldrh r0, [r5, 0x6]
+ cmp r0, 0x2
+ beq _080A5100
+ cmp r0, 0x2
+ bgt _080A50F0
+ cmp r0, 0x1
+ beq _080A50F6
+ b _080A5114
+_080A50F0:
+ cmp r0, 0x3
+ beq _080A5108
+ b _080A5114
+_080A50F6:
+ ldr r6, _080A50FC @ =0x0000fff8
+ adds r7, r6, 0
+ b _080A5118
+ .align 2, 0
+_080A50FC: .4byte 0x0000fff8
+_080A5100:
+ ldr r7, _080A5104 @ =0x0000fff8
+ b _080A5116
+ .align 2, 0
+_080A5104: .4byte 0x0000fff8
+_080A5108:
+ movs r7, 0x8
+ ldr r6, _080A5110 @ =0x0000fff8
+ b _080A5118
+ .align 2, 0
+_080A5110: .4byte 0x0000fff8
+_080A5114:
+ movs r7, 0x8
+_080A5116:
+ movs r6, 0x8
+_080A5118:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080A5168 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080A516C @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5170 @ =sub_80A5220
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080A5160:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5168: .4byte gBattleAnimTarget
+_080A516C: .4byte sub_8075590
+_080A5170: .4byte sub_80A5220
+ thumb_func_end sub_80A50B8
+
+ thumb_func_start sub_80A5174
+sub_80A5174: @ 80A5174
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A5194
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080A51A4
+ movs r0, 0x10
+ b _080A51A2
+_080A5194:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080A51A4
+ movs r0, 0
+_080A51A2:
+ strh r0, [r4, 0x30]
+_080A51A4:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_8075BE8
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A5200 @ =0x00007fff
+ bl BlendPalettes
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _080A520C
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ lsls r0, r1, 5
+ ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210
+ adds r0, r2
+ lsls r1, 4
+ ldr r3, _080A5208 @ =0x00000101
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x3F
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xB9
+ bl PlaySE12WithPanning
+ b _080A5214
+ .align 2, 0
+_080A5200: .4byte 0x00007fff
+_080A5204: .4byte gPlttBufferUnfaded + 0x210
+_080A5208: .4byte 0x00000101
+_080A520C:
+ cmp r0, 0
+ bne _080A5214
+ ldr r0, _080A521C @ =sub_80A5220
+ str r0, [r4, 0x1C]
+_080A5214:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A521C: .4byte sub_80A5220
+ thumb_func_end sub_80A5174
+
+ thumb_func_start sub_80A5220
+sub_80A5220: @ 80A5220
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080A523C @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A5240 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A5238
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ strh r0, [r2, 0x2E]
+ ldr r0, _080A5244 @ =sub_80A5248
+ str r0, [r2, 0x1C]
+_080A5238:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A523C: .4byte gBattleAnimArgs
+_080A5240: .4byte 0x0000ffff
+_080A5244: .4byte sub_80A5248
+ thumb_func_end sub_80A5220
+
+ thumb_func_start sub_80A5248
+sub_80A5248: @ 80A5248
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A527C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080A527C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080A5290
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A5290:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5248
+
+ thumb_func_start sub_80A5298
+sub_80A5298: @ 80A5298
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080A52B8 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A52BC
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ b _080A530E
+ .align 2, 0
+_080A52B8: .4byte gBattleAnimArgs
+_080A52BC:
+ cmp r0, 0x2
+ bne _080A52D8
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x20
+ b _080A530A
+_080A52D8:
+ cmp r0, 0x3
+ bne _080A52F4
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ b _080A530A
+_080A52F4:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+_080A530A:
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+_080A530E:
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _080A5334 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080A5338 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldr r1, _080A533C @ =sub_80A4FAC
+ str r1, [r3, 0x1C]
+ adds r0, r3, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5334: .4byte 0x000003ff
+_080A5338: .4byte 0xfffffc00
+_080A533C: .4byte sub_80A4FAC
+ thumb_func_end sub_80A5298
+
+ thumb_func_start sub_80A5340
+sub_80A5340: @ 80A5340
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldr r0, _080A5368 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080A537C
+ cmp r0, 0x1
+ bgt _080A536C
+ cmp r0, 0
+ beq _080A5372
+ b _080A538C
+ .align 2, 0
+_080A5368: .4byte gBattleAnimArgs
+_080A536C:
+ cmp r0, 0x2
+ beq _080A5384
+ b _080A538C
+_080A5372:
+ ldr r0, _080A5378 @ =sub_80A5398
+ b _080A538E
+ .align 2, 0
+_080A5378: .4byte sub_80A5398
+_080A537C:
+ ldr r0, _080A5380 @ =sub_80A5474
+ b _080A538E
+ .align 2, 0
+_080A5380: .4byte sub_80A5474
+_080A5384:
+ ldr r0, _080A5388 @ =sub_80A54C4
+ b _080A538E
+ .align 2, 0
+_080A5388: .4byte sub_80A54C4
+_080A538C:
+ ldr r0, _080A5394 @ =sub_80A5584
+_080A538E:
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5394: .4byte sub_80A5584
+ thumb_func_end sub_80A5340
+
+ thumb_func_start sub_80A5398
+sub_80A5398: @ 80A5398
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A53D8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080A53B6
+ movs r1, 0x2
+_080A53B6:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080A53DC @ =gBattlerSpriteIds
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080A53E0 @ =sub_80A53E8
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A53E4 @ =sub_8074DC4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A53D8: .4byte gBattleAnimAttacker
+_080A53DC: .4byte gBattlerSpriteIds
+_080A53E0: .4byte sub_80A53E8
+_080A53E4: .4byte sub_8074DC4
+ thumb_func_end sub_80A5398
+
+ thumb_func_start sub_80A53E8
+sub_80A53E8: @ 80A53E8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r6, [r5, r0]
+ cmp r6, 0
+ bne _080A5424
+ ldr r1, _080A5464 @ =gBattlerSpriteIds
+ ldr r4, _080A5468 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ movs r1, 0
+ bl sub_80758E0
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldr r2, _080A546C @ =0xfffffd00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080A5420
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0, 0
+_080A5420:
+ strh r1, [r5, 0x36]
+ strh r6, [r5, 0x38]
+_080A5424:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80759DC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A545E
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A5470 @ =sub_80A5584
+ str r0, [r5, 0x1C]
+_080A545E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5464: .4byte gBattlerSpriteIds
+_080A5468: .4byte gBattleAnimAttacker
+_080A546C: .4byte 0xfffffd00
+_080A5470: .4byte sub_80A5584
+ thumb_func_end sub_80A53E8
+
+ thumb_func_start sub_80A5474
+sub_80A5474: @ 80A5474
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A54B4 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080A5492
+ movs r0, 0x3
+ negs r0, r0
+ adds r1, r0, 0
+_080A5492:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080A54B8 @ =gBattlerSpriteIds
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080A54BC @ =sub_80A5584
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A54C0 @ =sub_8074DC4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A54B4: .4byte gBattleAnimAttacker
+_080A54B8: .4byte gBattlerSpriteIds
+_080A54BC: .4byte sub_80A5584
+_080A54C0: .4byte sub_8074DC4
+ thumb_func_end sub_80A5474
+
+ thumb_func_start sub_80A54C4
+sub_80A54C4: @ 80A54C4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080A54DE
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080A54E4 @ =sub_80A54E8
+ str r0, [r1, 0x1C]
+_080A54DE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A54E4: .4byte sub_80A54E8
+ thumb_func_end sub_80A54C4
+
+ thumb_func_start sub_80A54E8
+sub_80A54E8: @ 80A54E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A5538
+ ldr r1, _080A5524 @ =gBattlerSpriteIds
+ ldr r4, _080A5528 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A552C
+ movs r0, 0xFC
+ lsls r0, 8
+ strh r0, [r5, 0x36]
+ movs r0, 0xC0
+ lsls r0, 4
+ b _080A5536
+ .align 2, 0
+_080A5524: .4byte gBattlerSpriteIds
+_080A5528: .4byte gBattleAnimAttacker
+_080A552C:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r5, 0x36]
+ movs r0, 0xF4
+ lsls r0, 8
+_080A5536:
+ strh r0, [r5, 0x38]
+_080A5538:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80759DC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080A5578
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ ldr r0, _080A5580 @ =sub_80A5584
+ str r0, [r5, 0x1C]
+_080A5578:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5580: .4byte sub_80A5584
+ thumb_func_end sub_80A54E8
+
+ thumb_func_start sub_80A5584
+sub_80A5584: @ 80A5584
+ push {lr}
+ bl DestroyAnimSprite
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5584
+
+ thumb_func_start sub_80A5590
+sub_80A5590: @ 80A5590
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, _080A559C @ =sub_80A55A0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A559C: .4byte sub_80A55A0
+ thumb_func_end sub_80A5590
+
+ thumb_func_start sub_80A55A0
+sub_80A55A0: @ 80A55A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080A55FA
+ cmp r5, 0x1
+ bgt _080A55B6
+ cmp r5, 0
+ beq _080A55BC
+ b _080A568E
+_080A55B6:
+ cmp r5, 0x2
+ beq _080A564C
+ b _080A568E
+_080A55BC:
+ strh r5, [r4, 0x30]
+ ldr r1, _080A5640 @ =gBattlerSpriteIds
+ ldr r2, _080A5644 @ =gBattleAnimAttacker
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r2]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldr r2, _080A5648 @ =0xfffffe00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080A55E4
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r0, 0
+_080A55E4:
+ strh r1, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80758E0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080A55FA:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80759DC
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A568E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A568E
+ .align 2, 0
+_080A5640: .4byte gBattlerSpriteIds
+_080A5644: .4byte gBattleAnimAttacker
+_080A5648: .4byte 0xfffffe00
+_080A564C:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80759DC
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A568E
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A568E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A55A0
+
+ thumb_func_start sub_80A5694
+sub_80A5694: @ 80A5694
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A56D8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r1, _080A56DC @ =gBattlerSpriteIds
+ ldr r2, _080A56E0 @ =gBattleAnimAttacker
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldrb r0, [r2]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r5, 0xA]
+ strh r4, [r5, 0xC]
+ ldr r0, _080A56E4 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ beq _080A56E8
+ cmp r1, 0x1
+ beq _080A5704
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ b _080A5722
+ .align 2, 0
+_080A56D8: .4byte gTasks
+_080A56DC: .4byte gBattlerSpriteIds
+_080A56E0: .4byte gBattleAnimAttacker
+_080A56E4: .4byte gBattleAnimArgs
+_080A56E8:
+ strh r1, [r5, 0xC]
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ movs r0, 0x3
+ strh r0, [r5, 0x12]
+ cmp r2, 0
+ bne _080A56FC
+ negs r0, r0
+ strh r0, [r5, 0x12]
+_080A56FC:
+ ldr r0, _080A5700 @ =sub_80A572C
+ b _080A5720
+ .align 2, 0
+_080A5700: .4byte sub_80A572C
+_080A5704:
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ movs r0, 0xC0
+ lsls r0, 3
+ strh r0, [r5, 0x10]
+ movs r1, 0xC0
+ strh r1, [r5, 0x12]
+ cmp r2, 0
+ bne _080A571E
+ negs r0, r0
+ strh r0, [r5, 0x10]
+ negs r0, r1
+ strh r0, [r5, 0x12]
+_080A571E:
+ ldr r0, _080A5728 @ =sub_80A58EC
+_080A5720:
+ str r0, [r5]
+_080A5722:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5728: .4byte sub_80A58EC
+ thumb_func_end sub_80A5694
+
+ thumb_func_start sub_80A572C
+sub_80A572C: @ 80A572C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080A5750 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080A5746
+ b _080A58E6
+_080A5746:
+ lsls r0, 2
+ ldr r1, _080A5754 @ =_080A5758
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A5750: .4byte gTasks
+_080A5754: .4byte _080A5758
+ .align 2, 0
+_080A5758:
+ .4byte _080A576C
+ .4byte _080A579E
+ .4byte _080A57F8
+ .4byte _080A5870
+ .4byte _080A58B4
+_080A576C:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _080A577C
+ ldrh r2, [r4, 0x12]
+ ldrh r3, [r4, 0x10]
+ adds r2, r3
+ b _080A58C2
+_080A577C:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC0
+ cmp r0, 0
+ bne _080A5792
+ movs r2, 0xC0
+ negs r2, r2
+ adds r1, r2, 0
+_080A5792:
+ strh r1, [r4, 0x12]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_80758E0
+ b _080A58A8
+_080A579E:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A57C4
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_80759DC
+ b _080A58D4
+_080A57C4:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ ldr r2, _080A57F4 @ =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080A57EA
+ movs r1, 0x2
+_080A57EA:
+ strh r1, [r4, 0x12]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080A58A8
+ .align 2, 0
+_080A57F4: .4byte gSprites
+_080A57F8:
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A5854
+ ldrh r1, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A5812
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ b _080A58E6
+_080A5812:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080A5834
+ ldr r2, _080A5830 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r4, 0x10]
+ adds r1, r2
+ b _080A5848
+ .align 2, 0
+_080A5830: .4byte gSprites
+_080A5834:
+ ldr r2, _080A5850 @ =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+_080A5848:
+ strh r1, [r0, 0x24]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080A58D4
+ .align 2, 0
+_080A5850: .4byte gSprites
+_080A5854:
+ ldr r2, _080A586C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x24]
+ movs r0, 0xC
+ strh r0, [r4, 0xE]
+ b _080A58A8
+ .align 2, 0
+_080A586C: .4byte gSprites
+_080A5870:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080A5880
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080A58E6
+_080A5880:
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+ ldr r2, _080A58B0 @ =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x8
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080A58A6
+ movs r1, 0x8
+_080A58A6:
+ strh r1, [r4, 0x12]
+_080A58A8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080A58E6
+ .align 2, 0
+_080A58B0: .4byte gSprites
+_080A58B4:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A58E0
+ ldrh r2, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r2, r0
+_080A58C2:
+ strh r2, [r4, 0x10]
+ ldr r3, _080A58DC @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+_080A58D4:
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080A58E6
+ .align 2, 0
+_080A58DC: .4byte gSprites
+_080A58E0:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080A58E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A572C
+
+ thumb_func_start sub_80A58EC
+sub_80A58EC: @ 80A58EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A5928 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A592C
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_80759DC
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080A5938
+ .align 2, 0
+_080A5928: .4byte gTasks
+_080A592C:
+ ldrb r0, [r4, 0x8]
+ bl sub_8075980
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A5938:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A58EC
+
+ thumb_func_start sub_80A5940
+sub_80A5940: @ 80A5940
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080A5954 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A595C
+ ldr r4, _080A5958 @ =gBattleAnimAttacker
+ b _080A595E
+ .align 2, 0
+_080A5954: .4byte gBattleAnimArgs
+_080A5958: .4byte gBattleAnimAttacker
+_080A595C:
+ ldr r4, _080A599C @ =gBattleAnimTarget
+_080A595E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldr r1, _080A59A0 @ =sub_80A5A8C
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A59A4 @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A599C: .4byte gBattleAnimTarget
+_080A59A0: .4byte sub_80A5A8C
+_080A59A4: .4byte sub_8074F6C
+ thumb_func_end sub_80A5940
+
+ thumb_func_start sub_80A59A8
+sub_80A59A8: @ 80A59A8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A59E0 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A59E4 @ =0x0000ffd0
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080A59E8 @ =sub_80A5A44
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A59EC @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A59E0: .4byte gBattleAnimTarget
+_080A59E4: .4byte 0x0000ffd0
+_080A59E8: .4byte sub_80A5A44
+_080A59EC: .4byte sub_8074F6C
+ thumb_func_end sub_80A59A8
+
+ thumb_func_start sub_80A59F0
+sub_80A59F0: @ 80A59F0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A5A34 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A5A38 @ =gBattleAnimArgs
+ ldr r2, _080A5A3C @ =0x0000ffd0
+ adds r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ ldr r0, _080A5A40 @ =sub_80A5A8C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5A34: .4byte gBattleAnimTarget
+_080A5A38: .4byte gBattleAnimArgs
+_080A5A3C: .4byte 0x0000ffd0
+_080A5A40: .4byte sub_80A5A8C
+ thumb_func_end sub_80A59F0
+
+ thumb_func_start sub_80A5A44
+sub_80A5A44: @ 80A5A44
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080A5A6E
+ movs r0, 0xC
+ strh r0, [r4, 0x2E]
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080A5A74 @ =sub_80A5A7C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A5A78 @ =sub_8074CD0
+ str r0, [r4, 0x1C]
+_080A5A6E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5A74: .4byte sub_80A5A7C
+_080A5A78: .4byte sub_8074CD0
+ thumb_func_end sub_80A5A44
+
+ thumb_func_start sub_80A5A7C
+sub_80A5A7C: @ 80A5A7C
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ ldr r1, _080A5A88 @ =sub_80A5A8C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A5A88: .4byte sub_80A5A8C
+ thumb_func_end sub_80A5A7C
+
+ thumb_func_start sub_80A5A8C
+sub_80A5A8C: @ 80A5A8C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A5AD4
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080A5AD4
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080A5AD4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5A8C
+
+ thumb_func_start sub_80A5AD8
+sub_80A5AD8: @ 80A5AD8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080A5AEC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A5AF4
+ ldr r4, _080A5AF0 @ =gBattleAnimAttacker
+ b _080A5AF6
+ .align 2, 0
+_080A5AEC: .4byte gBattleAnimArgs
+_080A5AF0: .4byte gBattleAnimAttacker
+_080A5AF4:
+ ldr r4, _080A5B30 @ =gBattleAnimTarget
+_080A5AF6:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A5B34 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x30]
+ ldr r0, _080A5B38 @ =sub_80A5B3C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5B30: .4byte gBattleAnimTarget
+_080A5B34: .4byte gBattleAnimArgs
+_080A5B38: .4byte sub_80A5B3C
+ thumb_func_end sub_80A5AD8
+
+ thumb_func_start sub_80A5B3C
+sub_80A5B3C: @ 80A5B3C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _080A5B5C
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_080A5B5C:
+ ldrh r0, [r2, 0x22]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5B78
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A5B78:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5B3C
+
+ thumb_func_start sub_80A5B7C
+sub_80A5B7C: @ 80A5B7C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080A5BC4 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0xC
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ movs r0, 0x2
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ subs r0, 0x42
+ bl sub_8073A44
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _080A5BC8 @ =sub_80A5BCC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5BC4: .4byte gBattleAnimAttacker
+_080A5BC8: .4byte sub_80A5BCC
+ thumb_func_end sub_80A5B7C
+
+ thumb_func_start sub_80A5BCC
+sub_80A5BCC: @ 80A5BCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080A5C38
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5C1E
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5C1E
+ ldrh r1, [r4, 0x38]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xBB
+ bl PlaySE12WithPanning
+_080A5C1E:
+ movs r1, 0
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A5C38
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080A5C38:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5C62
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ ble _080A5C62
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5C62
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A5C62:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5BCC
+
+ thumb_func_start sub_80A5C68
+sub_80A5C68: @ 80A5C68
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A5CB2
+ ldr r4, _080A5CC8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ ldr r5, _080A5CCC @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x2]
+ adds r0, r5
+ strh r0, [r6, 0x22]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A5CAC
+ ldrh r0, [r6, 0x22]
+ adds r0, 0xA
+ strh r0, [r6, 0x22]
+_080A5CAC:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+_080A5CB2:
+ ldr r0, _080A5CCC @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A5CD0 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A5CC2
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080A5CC2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5CC8: .4byte gBattleAnimAttacker
+_080A5CCC: .4byte gBattleAnimArgs
+_080A5CD0: .4byte 0x0000ffff
+ thumb_func_end sub_80A5C68
+
+ thumb_func_start sub_80A5CD4
+sub_80A5CD4: @ 80A5CD4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A5CF4 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080A5D00
+ ldr r1, _080A5CF8 @ =gBattleAnimArgs
+ ldr r0, _080A5CFC @ =0x0000ffff
+ strh r0, [r1, 0xE]
+ b _080A5D3E
+ .align 2, 0
+_080A5CF4: .4byte gTasks
+_080A5CF8: .4byte gBattleAnimArgs
+_080A5CFC: .4byte 0x0000ffff
+_080A5D00:
+ cmp r0, 0x2
+ bne _080A5D0C
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080A5D44
+_080A5D0C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080A5D44
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r2, [r4, 0xA]
+ adds r2, 0x1
+ strh r2, [r4, 0xA]
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080A5D44
+_080A5D3E:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080A5D44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5CD4
+
+ thumb_func_start sub_80A5D4C
+sub_80A5D4C: @ 80A5D4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080A5D74 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A5D78 @ =sub_80A5D7C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D74: .4byte gBattleAnimArgs
+_080A5D78: .4byte sub_80A5D7C
+ thumb_func_end sub_80A5D4C
+
+ thumb_func_start sub_80A5D7C
+sub_80A5D7C: @ 80A5D7C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080A5D90
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080A5DCC
+_080A5D90:
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldr r4, _080A5DD4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080A5DD8 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5DDC @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080A5DCC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5DD4: .4byte gBattleAnimAttacker
+_080A5DD8: .4byte sub_8075590
+_080A5DDC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A5D7C
+
+ thumb_func_start sub_80A5DE0
+sub_80A5DE0: @ 80A5DE0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A5E30 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080A5E28
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080A5E28
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A5E28:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E30: .4byte gTasks
+ thumb_func_end sub_80A5DE0
+
+ thumb_func_start sub_80A5E34
+sub_80A5E34: @ 80A5E34
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _080A5E9C @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080A5E90
+ ldr r6, _080A5EA0 @ =gBattleAnimArgs
+ ldr r5, _080A5EA4 @ =gUnknown_3004FF0
+_080A5E48:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080A5E64
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A5E64
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteInvisible
+_080A5E64:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080A5E82
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5E82
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteInvisible
+_080A5E82:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A5E9C @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080A5E48
+_080A5E90:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E9C: .4byte gBattlersCount
+_080A5EA0: .4byte gBattleAnimArgs
+_080A5EA4: .4byte gUnknown_3004FF0
+ thumb_func_end sub_80A5E34
+
+ thumb_func_start sub_80A5EA8
+sub_80A5EA8: @ 80A5EA8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _080A5EC2
+_080A5EB2:
+ ldr r0, _080A5ED8 @ =gUnknown_3004FF0
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteVisible
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A5EC2:
+ ldr r0, _080A5EDC @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080A5EB2
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5ED8: .4byte gUnknown_3004FF0
+_080A5EDC: .4byte gBattlersCount
+ thumb_func_end sub_80A5EA8
+
+ thumb_func_start sub_80A5EE0
+sub_80A5EE0: @ 80A5EE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A5EF6
+ movs r0, 0x30
+ strh r0, [r4, 0x20]
+ movs r0, 0x28
+ b _080A5EFE
+_080A5EF6:
+ ldr r0, _080A5F20 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080A5EFE:
+ strh r0, [r4, 0x22]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A5F24 @ =sub_80A5F28
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5F20: .4byte gBattleAnimArgs
+_080A5F24: .4byte sub_80A5F28
+ thumb_func_end sub_80A5EE0
+
+ thumb_func_start sub_80A5F28
+sub_80A5F28: @ 80A5F28
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080A5F3A
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A5F3A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F28
+
+ thumb_func_start sub_80A5F40
+sub_80A5F40: @ 80A5F40
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A5F78 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r2, _080A5F7C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r0, _080A5F80 @ =sub_80A5F84
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5F78: .4byte gBattleAnimAttacker
+_080A5F7C: .4byte gBattleAnimArgs
+_080A5F80: .4byte sub_80A5F84
+ thumb_func_end sub_80A5F40
+
+ thumb_func_start sub_80A5F84
+sub_80A5F84: @ 80A5F84
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A5FAE
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x77
+ bgt _080A5FAE
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x32]
+_080A5FAE:
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080A5FBC
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A5FBC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F84
+
+ thumb_func_start sub_80A5FC0
+sub_80A5FC0: @ 80A5FC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ mov r8, r0
+ ldr r0, _080A6090 @ =0x0000ffff
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldr r0, _080A6094 @ =gTasks
+ mov r9, r0
+ lsls r5, r7, 2
+ adds r5, r7
+ lsls r5, 3
+ adds r6, r5, r0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0xA]
+ strh r4, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ strh r4, [r6, 0x10]
+ strh r4, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ movs r0, 0xD
+ strh r0, [r6, 0x16]
+ movs r0, 0xE
+ strh r0, [r6, 0x18]
+ movs r0, 0xF
+ strh r0, [r6, 0x1A]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_8075CB8
+ mov r10, r0
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+ movs r0, 0x8
+ add r9, r0
+ add r5, r9
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r5, 0x1E
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_80765C0
+ ldr r0, _080A6098 @ =0x000027d2
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ mov r0, r10
+ orrs r0, r1
+ mov r10, r0
+ ldr r0, _080A609C @ =0x000027d3
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0
+ mov r1, r10
+ orrs r4, r1
+ ldr r0, _080A60A0 @ =0x00007fbb
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080A60A4 @ =sub_80A60A8
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6090: .4byte 0x0000ffff
+_080A6094: .4byte gTasks
+_080A6098: .4byte 0x000027d2
+_080A609C: .4byte 0x000027d3
+_080A60A0: .4byte 0x00007fbb
+_080A60A4: .4byte sub_80A60A8
+ thumb_func_end sub_80A5FC0
+
+ thumb_func_start sub_80A60A8
+sub_80A60A8: @ 80A60A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080A60D0 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080A6194
+ cmp r1, 0x1
+ bgt _080A60D4
+ cmp r1, 0
+ beq _080A60E2
+ b _080A6232
+ .align 2, 0
+_080A60D0: .4byte gTasks
+_080A60D4:
+ cmp r1, 0x2
+ bne _080A60DA
+ b _080A61EC
+_080A60DA:
+ cmp r1, 0x3
+ bne _080A60E0
+ b _080A6220
+_080A60E0:
+ b _080A6232
+_080A60E2:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A60F0
+ b _080A6232
+_080A60F0:
+ strh r1, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080A613C
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x18]
+ ldrh r3, [r4, 0x12]
+ adds r2, r3
+ strh r2, [r4, 0x12]
+ ldrh r1, [r4, 0x1A]
+ ldrh r5, [r4, 0x14]
+ adds r1, r5
+ strh r1, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r2, 11
+ orrs r0, r2
+ lsrs r1, 6
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ b _080A6146
+_080A613C:
+ ldr r7, _080A618C @ =0x00007fbb
+ mov r12, r7
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080A6146:
+ movs r2, 0x1
+ movs r3, 0
+ movs r1, 0
+_080A614C:
+ movs r5, 0xE
+ ldrsh r0, [r4, r5]
+ ands r0, r2
+ lsls r5, r2, 17
+ adds r6, r3, 0
+ adds r6, 0x10
+ adds r1, 0x1
+ mov r8, r1
+ cmp r0, 0
+ beq _080A6178
+ movs r1, 0x1
+ ldr r2, _080A6190 @ =gPlttBufferFaded
+_080A6164:
+ adds r0, r3, r1
+ lsls r0, 1
+ adds r0, r2
+ mov r7, r12
+ strh r7, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080A6164
+_080A6178:
+ lsrs r2, r5, 16
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080A614C
+ b _080A6232
+ .align 2, 0
+_080A618C: .4byte 0x00007fbb
+_080A6190: .4byte gPlttBufferFaded
+_080A6194:
+ ldr r0, _080A61DC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6232
+ movs r2, 0
+ ldr r3, _080A61E0 @ =gSprites
+ movs r5, 0x14
+ adds r5, r3
+ mov r12, r5
+ ldr r7, _080A61E4 @ =gUnknown_83E3734
+ mov r8, r7
+ ldr r6, _080A61E8 @ =gUnknown_83E3764
+ movs r5, 0x1
+_080A61B2:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r1, r0, 2
+ mov r7, r12
+ adds r0, r1, r7
+ ldr r0, [r0]
+ cmp r0, r8
+ beq _080A61C6
+ cmp r0, r6
+ bne _080A61CA
+_080A61C6:
+ adds r0, r1, r3
+ strh r5, [r0, 0x2E]
+_080A61CA:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _080A61B2
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080A6214
+ .align 2, 0
+_080A61DC: .4byte gPaletteFade
+_080A61E0: .4byte gSprites
+_080A61E4: .4byte gUnknown_83E3734
+_080A61E8: .4byte gUnknown_83E3764
+_080A61EC:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080A6232
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ bl sub_80765C8
+ ldr r1, _080A621C @ =0x00007fbb
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_080A6214:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080A6232
+ .align 2, 0
+_080A621C: .4byte 0x00007fbb
+_080A6220:
+ ldr r0, _080A6240 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6232
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080A6232:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6240: .4byte gPaletteFade
+ thumb_func_end sub_80A60A8
+
+ thumb_func_start sub_80A6244
+sub_80A6244: @ 80A6244
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080A62C8 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bgt _080A6256
+ movs r0, 0x2
+ strh r0, [r6, 0x4]
+_080A6256:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7F
+ ble _080A6262
+ movs r0, 0x7F
+ strh r0, [r6, 0x4]
+_080A6262:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x30]
+ ldr r4, _080A62CC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r1, [r5, 0x20]
+ strh r1, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A62D4
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080A62D0 @ =0xffffec00
+ b _080A62FA
+ .align 2, 0
+_080A62C8: .4byte gBattleAnimArgs
+_080A62CC: .4byte gBattleAnimTarget
+_080A62D0: .4byte 0xffffec00
+_080A62D4:
+ ldr r0, _080A6314 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A631C
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 5
+_080A62FA:
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080A6318 @ =0xfffff600
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ b _080A6358
+ .align 2, 0
+_080A6314: .4byte gBattleAnimAttacker
+_080A6318: .4byte 0xfffff600
+_080A631C:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ subs r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080A6364 @ =0xffffec00
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080A6358:
+ ldr r0, _080A6368 @ =sub_80A636C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6364: .4byte 0xffffec00
+_080A6368: .4byte sub_80A636C
+ thumb_func_end sub_80A6244
+
+ thumb_func_start sub_80A636C
+sub_80A636C: @ 80A636C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r1, r3
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A63A2
+ ldrh r0, [r2, 0x3A]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x22]
+_080A63A2:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080A63B0
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A63B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A636C
+
+ thumb_func_start sub_80A63B4
+sub_80A63B4: @ 80A63B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080A6444 @ =gTasks
+ adds r6, r0, r1
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x8]
+ ldr r0, _080A6448 @ =0x00002771
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ lsls r0, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ ldr r2, _080A644C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r4, r0, 4
+ movs r5, 0x1
+ ldr r2, _080A6450 @ =gPlttBufferUnfaded
+_080A640C:
+ adds r1, r3, r5
+ lsls r1, 1
+ adds r1, r2
+ adds r0, r4, r5
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080A640C
+ adds r0, r3, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0
+ bl BlendPalette
+ movs r0, 0
+ strh r0, [r6, 0xE]
+ movs r5, 0
+ ldr r7, _080A644C @ =gSprites
+ movs r1, 0x1C
+ adds r1, r7
+ mov r9, r1
+ b _080A6488
+ .align 2, 0
+_080A6444: .4byte gTasks
+_080A6448: .4byte 0x00002771
+_080A644C: .4byte gSprites
+_080A6450: .4byte gPlttBufferUnfaded
+_080A6454:
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r7
+ ldrb r1, [r6, 0xA]
+ lsls r1, 4
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, r5, 7
+ strh r0, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x32]
+ add r2, r9
+ ldr r0, _080A64BC @ =sub_80A653C
+ str r0, [r2]
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080A6488:
+ cmp r5, 0x1
+ bhi _080A649A
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080A6454
+_080A649A:
+ ldr r0, _080A64C0 @ =sub_80A64E0
+ str r0, [r6]
+ ldr r0, _080A64C4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A64C8
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _080A64D2
+ .align 2, 0
+_080A64BC: .4byte sub_80A653C
+_080A64C0: .4byte sub_80A64E0
+_080A64C4: .4byte gBattleAnimAttacker
+_080A64C8:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl ClearGpuRegBits
+_080A64D2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A63B4
+
+ thumb_func_start sub_80A64E0
+sub_80A64E0: @ 80A64E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A6514 @ =gTasks
+ adds r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6532
+ ldr r0, _080A6518 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A651C
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _080A6526
+ .align 2, 0
+_080A6514: .4byte gTasks
+_080A6518: .4byte gBattleAnimAttacker
+_080A651C:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_080A6526:
+ ldr r0, _080A6538 @ =0x00002771
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A6532:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6538: .4byte 0x00002771
+ thumb_func_end sub_80A64E0
+
+ thumb_func_start sub_80A653C
+sub_80A653C: @ 80A653C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A6558
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_080A6558:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ ble _080A6580
+ ldr r2, _080A657C @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xE]
+ subs r1, 0x1
+ strh r1, [r0, 0xE]
+ adds r0, r5, 0
+ bl obj_delete_but_dont_free_vram
+ b _080A65C2
+ .align 2, 0
+_080A657C: .4byte gTasks
+_080A6580:
+ ldr r4, _080A65C8 @ =gSineTable
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x6
+ bl __divsi3
+ strh r0, [r5, 0x36]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0xD
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrh r1, [r5, 0x30]
+ adds r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+_080A65C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A65C8: .4byte gSineTable
+ thumb_func_end sub_80A653C
+
+ thumb_func_start sub_80A65CC
+sub_80A65CC: @ 80A65CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080A65E0 @ =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A65E4 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A65E0: .4byte DestroyAnimSprite
+_080A65E4: .4byte sub_8074F6C
+ thumb_func_end sub_80A65CC
+
+ thumb_func_start sub_80A65E8
+sub_80A65E8: @ 80A65E8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _080A6698 @ =gUnknown_83E3898
+ ldrh r0, [r4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ beq _080A662C
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r5, _080A669C @ =gPlttBufferFaded
+_080A6614:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r5
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080A6614
+_080A662C:
+ movs r4, 0x1
+ ldr r0, _080A6698 @ =gUnknown_83E3898
+ mov r8, r0
+_080A6632:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r5, r0, 2
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, 0x1
+ mov r12, r4
+ cmp r3, 0xFF
+ beq _080A667A
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r7, _080A669C @ =gPlttBufferFaded
+ ldr r6, _080A6698 @ =gUnknown_83E3898
+ adds r4, r5, 0
+_080A6660:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r7
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080A6660
+_080A667A:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080A6632
+ mov r0, r9
+ bl DestroyAnimVisualTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6698: .4byte gUnknown_83E3898
+_080A669C: .4byte gPlttBufferFaded
+ thumb_func_end sub_80A65E8
+
+ thumb_func_start sub_80A66A0
+sub_80A66A0: @ 80A66A0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0x1
+ ldr r6, _080A66D0 @ =gUnknown_83E3898
+_080A66AA:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080A66AA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A66D0: .4byte gUnknown_83E3898
+ thumb_func_end sub_80A66A0
+
+ thumb_func_start sub_80A66D4
+sub_80A66D4: @ 80A66D4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8074FCC
+ ldr r4, _080A672C @ =gBattleAnimArgs
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r2, _080A6730 @ =gUnknown_83E3898
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080A6710
+ lsls r2, r0, 4
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+_080A6710:
+ ldrh r0, [r4, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x34]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A6734
+ movs r6, 0x30
+ movs r3, 0x28
+ b _080A674E
+ .align 2, 0
+_080A672C: .4byte gBattleAnimArgs
+_080A6730: .4byte gUnknown_83E3898
+_080A6734:
+ ldr r4, _080A6784 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080A674E:
+ ldrh r0, [r5, 0x20]
+ lsls r1, r0, 4
+ strh r1, [r5, 0x36]
+ ldrh r1, [r5, 0x22]
+ lsls r2, r1, 4
+ strh r2, [r5, 0x38]
+ subs r0, r6, r0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r5, 0
+ adds r2, 0x3A
+ adds r3, r5, 0
+ adds r3, 0x3C
+ movs r4, 0x28
+ str r4, [sp]
+ bl sub_80A678C
+ ldr r0, _080A6788 @ =sub_80A67E4
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6784: .4byte gBattleAnimTarget
+_080A6788: .4byte sub_80A67E4
+ thumb_func_end sub_80A66D4
+
+ thumb_func_start sub_80A678C
+sub_80A678C: @ 80A678C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r2, 0
+ mov r8, r3
+ ldr r2, [sp, 0x18]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r1, r2, 24
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bge _080A67AE
+ lsls r0, r1, 24
+ negs r0, r0
+ lsrs r1, r0, 24
+_080A67AE:
+ lsls r5, r2, 8
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080A67C2
+ movs r4, 0x1
+_080A67C2:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ strh r0, [r7]
+ lsls r0, r6, 16
+ asrs r0, 8
+ adds r1, r4, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A678C
+
+ thumb_func_start sub_80A67E4
+sub_80A67E4: @ 80A67E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x2E]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r1, r0, r1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080A6800
+ adds r0, 0xFF
+_080A6800:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ ldrh r3, [r4, 0x38]
+ adds r2, r3
+ strh r2, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xF
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080A684E
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _080A684E
+ cmp r1, 0x80
+ ble _080A6856
+_080A684E:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+ b _080A68A6
+_080A6856:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080A68A6
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r1
+ ble _080A68A6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A687E
+ strh r5, [r4, 0x30]
+_080A687E:
+ ldr r2, _080A68AC @ =gUnknown_83E3898
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080A68A6
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080A68A6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68AC: .4byte gUnknown_83E3898
+ thumb_func_end sub_80A67E4
+
+ thumb_func_start sub_80A68B0
+sub_80A68B0: @ 80A68B0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _080A6934 @ =gBattleAnimAttacker
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A68CE
+ ldr r1, _080A6938 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080A68CE:
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A6938 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x32]
+ strh r5, [r6, 0x34]
+ ldrh r0, [r6, 0x20]
+ lsls r0, 4
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x22]
+ lsls r0, 4
+ strh r0, [r6, 0x38]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ lsls r0, 4
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3A]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ lsls r0, 7
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3C]
+ ldr r0, _080A693C @ =sub_80A6940
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6934: .4byte gBattleAnimAttacker
+_080A6938: .4byte gBattleAnimArgs
+_080A693C: .4byte sub_80A6940
+ thumb_func_end sub_80A68B0
+
+ thumb_func_start sub_80A6940
+sub_80A6940: @ 80A6940
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x22]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ ble _080A699E
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080A699E
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0x12
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r1, 0x12
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A699E
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+_080A699E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ bne _080A69B2
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080A69B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6940
+
+ thumb_func_start sub_80A69B8
+sub_80A69B8: @ 80A69B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080A69D8 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080A69DC
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ movs r6, 0x10
+ b _080A69DE
+ .align 2, 0
+_080A69D8: .4byte gBattleAnimArgs
+_080A69DC:
+ ldr r6, _080A6A18 @ =0x0000fff0
+_080A69DE:
+ ldr r4, _080A6A1C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A6A20 @ =sub_8074C44
+ str r0, [r5, 0x1C]
+ ldr r1, _080A6A24 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A18: .4byte 0x0000fff0
+_080A6A1C: .4byte gBattleAnimAttacker
+_080A6A20: .4byte sub_8074C44
+_080A6A24: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A69B8
+
+ thumb_func_start sub_80A6A28
+sub_80A6A28: @ 80A6A28
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldr r5, _080A6AA0 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r2, _080A6AA4 @ =gUnknown_83E3898
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080A6A68
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080A6A68:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ cmp r0, 0
+ bne _080A6A74
+ ldr r2, _080A6AA8 @ =0x0000ffe0
+_080A6A74:
+ movs r0, 0x28
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r4, 0x30]
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ subs r0, 0x28
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r0, _080A6AAC @ =sub_80A6AB0
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6AA0: .4byte gBattleAnimArgs
+_080A6AA4: .4byte gUnknown_83E3898
+_080A6AA8: .4byte 0x0000ffe0
+_080A6AAC: .4byte sub_80A6AB0
+ thumb_func_end sub_80A6A28
+
+ thumb_func_start sub_80A6AB0
+sub_80A6AB0: @ 80A6AB0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6B00
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r4, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080A6ADC
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080A6ADC:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ ldrh r3, [r4, 0x26]
+ adds r0, r3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080A6B06
+_080A6B00:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A6B06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6AB0
+
+ thumb_func_start sub_80A6B0C
+sub_80A6B0C: @ 80A6B0C
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6B2C
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_8076B2C
+ adds r0, 0x8
+ b _080A6B36
+_080A6B2C:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_8076B2C
+ subs r0, 0x8
+_080A6B36:
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8074480
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080A6B58
+ adds r0, 0x3
+_080A6B58:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6B0C
+
+ thumb_func_start sub_80A6B64
+sub_80A6B64: @ 80A6B64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080A6B78 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6B80
+ ldr r0, _080A6B7C @ =gBattleAnimAttacker
+ b _080A6B82
+ .align 2, 0
+_080A6B78: .4byte gBattleAnimArgs
+_080A6B7C: .4byte gBattleAnimAttacker
+_080A6B80:
+ ldr r0, _080A6BC0 @ =gBattleAnimTarget
+_080A6B82:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A6B0C
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ ldr r0, _080A6BC4 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0x2
+ strh r0, [r5, 0x30]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _080A6BC8 @ =sub_80A6BD0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6BCC @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6BC0: .4byte gBattleAnimTarget
+_080A6BC4: .4byte gBattleAnimArgs
+_080A6BC8: .4byte sub_80A6BD0
+_080A6BCC: .4byte sub_8074F6C
+ thumb_func_end sub_80A6B64
+
+ thumb_func_start sub_80A6BD0
+sub_80A6BD0: @ 80A6BD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A6BF8
+ ldr r1, _080A6C00 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080A6C04 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+_080A6BF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C00: .4byte DestroyAnimSprite
+_080A6C04: .4byte sub_8074F6C
+ thumb_func_end sub_80A6BD0
+
+ thumb_func_start sub_80A6C08
+sub_80A6C08: @ 80A6C08
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A6C1C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6C24
+ ldr r0, _080A6C20 @ =gBattleAnimAttacker
+ b _080A6C26
+ .align 2, 0
+_080A6C1C: .4byte gBattleAnimArgs
+_080A6C20: .4byte gBattleAnimAttacker
+_080A6C24:
+ ldr r0, _080A6C44 @ =gBattleAnimTarget
+_080A6C26:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80A6B0C
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r1, _080A6C48 @ =sub_80A6C50
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6C4C @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C44: .4byte gBattleAnimTarget
+_080A6C48: .4byte sub_80A6C50
+_080A6C4C: .4byte sub_8074F50
+ thumb_func_end sub_80A6C08
+
+ thumb_func_start sub_80A6C50
+sub_80A6C50: @ 80A6C50
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080A6C76
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080A6C7C @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6C80 @ =sub_8074F50
+ str r0, [r4, 0x1C]
+_080A6C76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C7C: .4byte move_anim_8074EE0
+_080A6C80: .4byte sub_8074F50
+ thumb_func_end sub_80A6C50
+
+ thumb_func_start sub_80A6C84
+sub_80A6C84: @ 80A6C84
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _080A6C98 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6CA0
+ ldr r0, _080A6C9C @ =gBattleAnimAttacker
+ b _080A6CA2
+ .align 2, 0
+_080A6C98: .4byte gBattleAnimArgs
+_080A6C9C: .4byte gBattleAnimAttacker
+_080A6CA0:
+ ldr r0, _080A6CF4 @ =gBattleAnimTarget
+_080A6CA2:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8076B2C
+ strh r0, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080A6CCA
+ movs r0, 0xA
+ strh r0, [r4, 0x22]
+_080A6CCA:
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r1]
+ adds r0, 0x4
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ ldr r1, _080A6CF8 @ =sub_80A6D00
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6CFC @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6CF4: .4byte gBattleAnimTarget
+_080A6CF8: .4byte sub_80A6D00
+_080A6CFC: .4byte sub_8074F50
+ thumb_func_end sub_80A6C84
+
+ thumb_func_start sub_80A6D00
+sub_80A6D00: @ 80A6D00
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x1
+ strh r0, [r1, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080A6D16
+ ldr r0, _080A6D1C @ =sub_80A6D20
+ str r0, [r1, 0x1C]
+_080A6D16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6D1C: .4byte sub_80A6D20
+ thumb_func_end sub_80A6D00
+
+ thumb_func_start sub_80A6D20
+sub_80A6D20: @ 80A6D20
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x4
+ strh r1, [r2, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFE
+ ble _080A6D52
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080A6D4C
+ strh r0, [r2, 0x24]
+ ldr r0, _080A6D48 @ =sub_80A6C50
+ str r0, [r2, 0x1C]
+ b _080A6D88
+ .align 2, 0
+_080A6D48: .4byte sub_80A6C50
+_080A6D4C:
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2, 0x30]
+_080A6D52:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ ble _080A6D62
+ ldrh r0, [r2, 0x34]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080A6D62:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x9F
+ ble _080A6D72
+ ldrh r0, [r2, 0x32]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080A6D72:
+ ldr r1, _080A6D8C @ =gSineTable
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ asrs r1, r0, 1
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_080A6D88:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6D8C: .4byte gSineTable
+ thumb_func_end sub_80A6D20
+
+ thumb_func_start sub_80A6D90
+sub_80A6D90: @ 80A6D90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080A6DA4 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6DAC
+ ldr r0, _080A6DA8 @ =gBattleAnimAttacker
+ b _080A6DAE
+ .align 2, 0
+_080A6DA4: .4byte gBattleAnimArgs
+_080A6DA8: .4byte gBattleAnimAttacker
+_080A6DAC:
+ ldr r0, _080A6DD0 @ =gBattleAnimTarget
+_080A6DAE:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A6B0C
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6DD4
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x2
+ b _080A6DDE
+ .align 2, 0
+_080A6DD0: .4byte gBattleAnimTarget
+_080A6DD4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3
+_080A6DDE:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A6DEC @ =sub_80A6DF0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6DEC: .4byte sub_80A6DF0
+ thumb_func_end sub_80A6D90
+
+ thumb_func_start sub_80A6DF0
+sub_80A6DF0: @ 80A6DF0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080A6E1E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, _080A6E24 @ =sub_80A6E2C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6E28 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+_080A6E1E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6E24: .4byte sub_80A6E2C
+_080A6E28: .4byte sub_8074F6C
+ thumb_func_end sub_80A6DF0
+
+ thumb_func_start sub_80A6E2C
+sub_80A6E2C: @ 80A6E2C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080A6E44
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A6E44:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6E2C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
new file mode 100644
index 000000000..34bb0db27
--- /dev/null
+++ b/asm/battle_anim_effects_2.s
@@ -0,0 +1,7946 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A6E48
+sub_80A6E48: @ 80A6E48
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r5, _080A6E8C @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_8074FF8
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r1, _080A6E90 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080A6E94 @ =sub_8074BE4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6E8C: .4byte gBattleAnimArgs
+_080A6E90: .4byte move_anim_8074EE0
+_080A6E94: .4byte sub_8074BE4
+ thumb_func_end sub_80A6E48
+
+ thumb_func_start sub_80A6E98
+sub_80A6E98: @ 80A6E98
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A6EAC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6EB4
+ ldr r0, _080A6EB0 @ =gBattleAnimAttacker
+ b _080A6EB6
+ .align 2, 0
+_080A6EAC: .4byte gBattleAnimArgs
+_080A6EB0: .4byte gBattleAnimAttacker
+_080A6EB4:
+ ldr r0, _080A6ED0 @ =gBattleAnimTarget
+_080A6EB6:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80A6B0C
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x30]
+ ldr r0, _080A6ED4 @ =sub_80A6ED8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6ED0: .4byte gBattleAnimTarget
+_080A6ED4: .4byte sub_80A6ED8
+ thumb_func_end sub_80A6E98
+
+ thumb_func_start sub_80A6ED8
+sub_80A6ED8: @ 80A6ED8
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080A6F0A
+ cmp r0, 0x1
+ bgt _080A6EEE
+ cmp r0, 0
+ beq _080A6EF4
+ b _080A6F38
+_080A6EEE:
+ cmp r0, 0x2
+ beq _080A6F24
+ b _080A6F38
+_080A6EF4:
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080A6F38
+ b _080A6F1C
+_080A6F0A:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A6F38
+_080A6F1C:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080A6F38
+_080A6F24:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080A6F38
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A6F38:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6ED8
+
+ thumb_func_start sub_80A6F3C
+sub_80A6F3C: @ 80A6F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _080A6F88 @ =gSprites
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080A6F7A
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080A6F7A:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6F88: .4byte gSprites
+ thumb_func_end sub_80A6F3C
+
+ thumb_func_start sub_80A6F8C
+sub_80A6F8C: @ 80A6F8C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080A6FD4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080A6FD8 @ =gBattlerSpriteIds
+ ldr r0, _080A6FDC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A6FE4
+ ldr r0, _080A6FE0 @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r5, 0x20]
+ adds r1, r0, 0
+ b _080A6FEE
+ .align 2, 0
+_080A6FD4: .4byte gBattleAnimAttacker
+_080A6FD8: .4byte gBattlerSpriteIds
+_080A6FDC: .4byte gBattleAnimTarget
+_080A6FE0: .4byte gBattleAnimArgs
+_080A6FE4:
+ ldr r1, _080A7018 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080A6FEE:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ strh r6, [r5, 0x32]
+ ldr r0, _080A701C @ =sub_80A6F3C
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7018: .4byte gBattleAnimArgs
+_080A701C: .4byte sub_80A6F3C
+ thumb_func_end sub_80A6F8C
+
+ thumb_func_start sub_80A7020
+sub_80A7020: @ 80A7020
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080A704C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x38]
+ ldr r0, _080A7050 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080A7054 @ =sub_80A7058
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A704C: .4byte gBattleAnimArgs
+_080A7050: .4byte sub_8074C44
+_080A7054: .4byte sub_80A7058
+ thumb_func_end sub_80A7020
+
+ thumb_func_start sub_80A7058
+sub_80A7058: @ 80A7058
+ push {lr}
+ ldrh r1, [r0, 0x30]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0xF
+ strh r1, [r0, 0x36]
+ ldr r1, _080A7078 @ =sub_8075590
+ str r1, [r0, 0x1C]
+ ldr r1, _080A707C @ =sub_80A7080
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7078: .4byte sub_8075590
+_080A707C: .4byte sub_80A7080
+ thumb_func_end sub_80A7058
+
+ thumb_func_start sub_80A7080
+sub_80A7080: @ 80A7080
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x38]
+ movs r3, 0x38
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080A7096
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+ b _080A709A
+_080A7096:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x38]
+_080A709A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7080
+
+ thumb_func_start sub_80A70A0
+sub_80A70A0: @ 80A70A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A70CC @ =gBattlerSpriteIds
+ ldr r0, _080A70D0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_80758E0
+ ldr r1, _080A70D4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A70D8 @ =sub_80A70DC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A70CC: .4byte gBattlerSpriteIds
+_080A70D0: .4byte gBattleAnimAttacker
+_080A70D4: .4byte gTasks
+_080A70D8: .4byte sub_80A70DC
+ thumb_func_end sub_80A70A0
+
+ thumb_func_start sub_80A70DC
+sub_80A70DC: @ 80A70DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A710C @ =gBattlerSpriteIds
+ ldr r0, _080A7110 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A7118
+ ldr r1, _080A7114 @ =gTasks
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r6, r2, 0
+ b _080A7126
+ .align 2, 0
+_080A710C: .4byte gBattlerSpriteIds
+_080A7110: .4byte gBattleAnimAttacker
+_080A7114: .4byte gTasks
+_080A7118:
+ ldr r2, _080A7158 @ =gTasks
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r3, [r0, 0x8]
+ adds r6, r1, 0
+_080A7126:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080A7158 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080A7160
+ ldrh r0, [r1, 0x8]
+ adds r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080A715C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ b _080A718A
+ .align 2, 0
+_080A7158: .4byte gTasks
+_080A715C: .4byte gSprites
+_080A7160:
+ cmp r0, 0x1
+ bne _080A7176
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bne _080A71D0
+ movs r0, 0x2
+ b _080A71CE
+_080A7176:
+ ldrh r0, [r1, 0x8]
+ subs r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080A71C4 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x1
+_080A718A:
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0
+ bl sub_80759DC
+ ldr r0, _080A71C8 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r2, [r1, r3]
+ movs r0, 0xF2
+ lsls r0, 4
+ cmp r2, r0
+ beq _080A71AA
+ cmp r2, 0
+ bne _080A71D0
+_080A71AA:
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bne _080A71CC
+ adds r0, r4, 0
+ bl sub_8075980
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _080A71D0
+ .align 2, 0
+_080A71C4: .4byte gSprites
+_080A71C8: .4byte gTasks
+_080A71CC:
+ adds r0, r2, 0x1
+_080A71CE:
+ strh r0, [r1, 0xA]
+_080A71D0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A70DC
+
+ thumb_func_start sub_80A71D8
+sub_80A71D8: @ 80A71D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080A71FC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7204
+ ldr r0, _080A7200 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080A7210
+ .align 2, 0
+_080A71FC: .4byte gBattleAnimAttacker
+_080A7200: .4byte gBattleAnimArgs
+_080A7204:
+ ldr r1, _080A7244 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r5, r1, 0
+_080A7210:
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080A7248 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A724C
+ adds r3, r4, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x1
+ adds r2, r0, 0
+ orrs r2, r1
+ strb r2, [r3]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080A7260
+ movs r0, 0x2
+ orrs r2, r0
+ strb r2, [r3]
+ b _080A7260
+ .align 2, 0
+_080A7244: .4byte gBattleAnimArgs
+_080A7248: .4byte gBattleAnimAttacker
+_080A724C:
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080A7260
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+_080A7260:
+ ldr r0, _080A7274 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _080A7278 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7274: .4byte sub_8074F6C
+_080A7278: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A71D8
+
+ thumb_func_start sub_80A727C
+sub_80A727C: @ 80A727C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A7298 @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ ldr r1, _080A729C @ =sub_80A72A0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7298: .4byte sub_8074F50
+_080A729C: .4byte sub_80A72A0
+ thumb_func_end sub_80A727C
+
+ thumb_func_start sub_80A72A0
+sub_80A72A0: @ 80A72A0
+ push {lr}
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x36]
+ ldr r1, _080A72C0 @ =sub_8075590
+ str r1, [r0, 0x1C]
+ ldr r1, _080A72C4 @ =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A72C0: .4byte sub_8075590
+_080A72C4: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A72A0
+
+ thumb_func_start sub_80A72C8
+sub_80A72C8: @ 80A72C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A72EC
+ ldr r1, _080A72E8 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080A730E
+ .align 2, 0
+_080A72E8: .4byte gBattleAnimArgs
+_080A72EC:
+ ldr r0, _080A73B4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A730E
+ ldr r1, _080A73B8 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080A730E:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r4, _080A73BC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r6, _080A73B8 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ ldrh r1, [r5, 0x20]
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7380
+ ldr r2, _080A73C0 @ =0xffffa000
+ adds r0, r4, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080A7380:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8075A1C
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ mov r0, r8
+ strh r0, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080A73C4 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A73C8 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73B4: .4byte gBattleAnimAttacker
+_080A73B8: .4byte gBattleAnimArgs
+_080A73BC: .4byte gBattleAnimTarget
+_080A73C0: .4byte 0xffffa000
+_080A73C4: .4byte sub_8075590
+_080A73C8: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A72C8
+
+ thumb_func_start sub_80A73CC
+sub_80A73CC: @ 80A73CC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A73F6
+ ldr r2, _080A73FC @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ adds r0, r3, 0
+ bl DestroySprite
+_080A73F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73FC: .4byte gTasks
+ thumb_func_end sub_80A73CC
+
+ thumb_func_start sub_80A7400
+sub_80A7400: @ 80A7400
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080A7430 @ =gTasks
+ adds r4, r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ ble _080A7434
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x36]
+ ldrh r3, [r2, 0x3A]
+ adds r0, r3
+ b _080A7442
+ .align 2, 0
+_080A7430: .4byte gTasks
+_080A7434:
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x34]
+ subs r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ subs r0, r1
+_080A7442:
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x30]
+ adds r3, r0, r1
+ strh r3, [r2, 0x30]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7466
+ lsls r0, r3, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080A746A
+_080A7466:
+ lsls r0, r3, 16
+ lsrs r0, 24
+_080A746A:
+ strh r0, [r2, 0x24]
+ ldrh r1, [r4, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A747E
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080A7482
+_080A747E:
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+_080A7482:
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A7498
+ movs r0, 0x1E
+ strh r0, [r2, 0x2E]
+ ldr r0, _080A74A0 @ =sub_80A73CC
+ str r0, [r2, 0x1C]
+_080A7498:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A74A0: .4byte sub_80A73CC
+ thumb_func_end sub_80A7400
+
+ thumb_func_start sub_80A74A4
+sub_80A74A4: @ 80A74A4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080A74E8 @ =gTasks
+ adds r6, r0, r1
+ ldrh r2, [r6, 0x16]
+ movs r1, 0x2
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r3, [r7, 0x30]
+ adds r2, r0, r3
+ strh r2, [r7, 0x30]
+ ldrh r0, [r6, 0x18]
+ ands r1, r0
+ ldrh r0, [r7, 0x32]
+ adds r1, r0
+ strh r1, [r7, 0x32]
+ ldrh r1, [r6, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A74EC
+ lsls r0, r2, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080A74F0
+ .align 2, 0
+_080A74E8: .4byte gTasks
+_080A74EC:
+ lsls r0, r2, 16
+ lsrs r0, 24
+_080A74F0:
+ strh r0, [r7, 0x24]
+ ldrh r1, [r6, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7504
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080A7508
+_080A7504:
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+_080A7508:
+ strh r0, [r7, 0x26]
+ ldrh r0, [r7, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r7, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A75D4
+ movs r4, 0
+ movs r0, 0x8
+ strh r0, [r7, 0x2E]
+ movs r0, 0x4
+ strh r0, [r6, 0x12]
+ movs r0, 0x80
+ lsls r0, 5
+ bl sub_80D8B90
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r2, r0, r1
+ strh r2, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r3, [r7, 0x22]
+ adds r0, r3
+ strh r0, [r7, 0x22]
+ strh r4, [r7, 0x26]
+ strh r4, [r7, 0x24]
+ ldrh r3, [r6, 0x1E]
+ movs r0, 0x1E
+ ldrsh r1, [r6, r0]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ blt _080A7552
+ subs r0, r3, r2
+ b _080A7554
+_080A7552:
+ subs r0, r2, r3
+_080A7554:
+ lsls r0, 24
+ lsrs r4, r0, 16
+ ldrh r3, [r6, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r7, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r7, r6]
+ cmp r1, r0
+ blt _080A756C
+ subs r0, r3, r2
+ b _080A756E
+_080A756C:
+ subs r0, r2, r3
+_080A756E:
+ lsls r0, 24
+ lsrs r0, 16
+ mov r8, r0
+ movs r0, 0
+ strh r0, [r7, 0x32]
+ strh r0, [r7, 0x30]
+ strh r0, [r7, 0x3A]
+ strh r0, [r7, 0x38]
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r5, 0
+ bl sub_80D8AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r6, 0
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ strh r0, [r7, 0x34]
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ bl sub_80D8AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r6, 0
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ strh r0, [r7, 0x36]
+ ldr r0, _080A75E0 @ =sub_80A7400
+ str r0, [r7, 0x1C]
+_080A75D4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A75E0: .4byte sub_80A7400
+ thumb_func_end sub_80A74A4
+
+ thumb_func_start sub_80A75E4
+sub_80A75E4: @ 80A75E4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A7608 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A7602
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080A7602:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7608: .4byte gTasks
+ thumb_func_end sub_80A75E4
+
+ thumb_func_start sub_80A760C
+sub_80A760C: @ 80A760C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080A7660 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r1, r0, 0x1
+ strh r1, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A76E0
+ ldr r0, _080A7664 @ =gUnknown_83E3C28
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1C
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0xC]
+ ldrb r4, [r5, 0xA]
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r0, 4
+ add r0, r12
+ lsls r0, 2
+ ldr r1, _080A7668 @ =gSprites
+ adds r6, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080A766C
+ cmp r0, 0x2
+ beq _080A7682
+ b _080A7690
+ .align 2, 0
+_080A7660: .4byte gTasks
+_080A7664: .4byte gUnknown_83E3C28
+_080A7668: .4byte gSprites
+_080A766C:
+ ldrb r2, [r6, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ b _080A7690
+_080A7682:
+ ldrb r0, [r6, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r6, 0x3]
+_080A7690:
+ ldr r3, _080A76E8 @ =gTasks
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 3
+ adds r4, r2, r3
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r6, 0x2E]
+ strh r7, [r6, 0x3C]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xD
+ lsls r0, 1
+ adds r0, r2
+ adds r3, 0x8
+ adds r0, r3
+ mov r2, r12
+ strh r2, [r0]
+ ldrh r0, [r4, 0xE]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0x3F
+ negs r0, r0
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x93
+ bl PlaySE12WithPanning
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x2
+ ble _080A76E0
+ ldr r0, _080A76EC @ =sub_80A75E4
+ str r0, [r4]
+_080A76E0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A76E8: .4byte gTasks
+_080A76EC: .4byte sub_80A75E4
+ thumb_func_end sub_80A760C
+
+ thumb_func_start sub_80A76F0
+sub_80A76F0: @ 80A76F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0
+ mov r0, sp
+ mov r1, r9
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x2
+ strh r1, [r4]
+ bl sub_8073788
+ lsls r0, 24
+ mov r10, r4
+ cmp r0, 0
+ beq _080A775C
+ ldr r1, _080A774C @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r3, _080A7750 @ =gBattleAnimArgs
+ ldrh r0, [r3]
+ negs r0, r0
+ strh r0, [r3]
+ ldrh r1, [r3, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _080A7754
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ b _080A77B6
+ .align 2, 0
+_080A774C: .4byte gTasks
+_080A7750: .4byte gBattleAnimArgs
+_080A7754:
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _080A77B6
+_080A775C:
+ ldr r1, _080A77A0 @ =gUnknown_2023BD6
+ ldr r0, _080A77A4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0
+ bne _080A77B6
+ ldr r1, _080A77A8 @ =gTasks
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x10]
+ ldr r2, _080A77AC @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ negs r0, r0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ negs r0, r0
+ strh r0, [r2, 0x2]
+ ldrh r1, [r2, 0x4]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080A77B0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ b _080A77B4
+ .align 2, 0
+_080A77A0: .4byte gUnknown_2023BD6
+_080A77A4: .4byte gBattleAnimTarget
+_080A77A8: .4byte gTasks
+_080A77AC: .4byte gBattleAnimArgs
+_080A77B0:
+ movs r0, 0x1
+ orrs r0, r1
+_080A77B4:
+ strh r0, [r2, 0x4]
+_080A77B6:
+ ldr r5, _080A7810 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ ldr r1, _080A7814 @ =gTasks
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ adds r6, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ mov r9, r0
+ ldr r0, _080A7818 @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7820
+ ldr r4, _080A781C @ =gBattleAnimTarget
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7820
+ ldrb r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ mov r3, r10
+ bl sub_8076D9C
+ b _080A7842
+ .align 2, 0
+_080A7810: .4byte gBattleAnimAttacker
+_080A7814: .4byte gTasks
+_080A7818: .4byte gBattleTypeFlags
+_080A781C: .4byte gBattleAnimTarget
+_080A7820:
+ mov r5, sp
+ ldr r4, _080A787C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r10
+ strh r0, [r1]
+_080A7842:
+ mov r4, sp
+ ldr r0, _080A7880 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ mov r2, sp
+ ldr r3, _080A7884 @ =gBattleAnimArgs
+ ldrh r0, [r3]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r1, 0x1E]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ mov r3, r10
+ ldrh r3, [r3]
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ mov r1, r10
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r1, r6, 0
+ cmp r0, r1
+ blt _080A7888
+ subs r0, r2, r1
+ b _080A788A
+ .align 2, 0
+_080A787C: .4byte gBattleAnimTarget
+_080A7880: .4byte gTasks
+_080A7884: .4byte gBattleAnimArgs
+_080A7888:
+ subs r0, r1, r2
+_080A788A:
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r5, _080A7900 @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ ldr r2, _080A7904 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r6, r1, r2
+ strh r0, [r6, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ movs r1, 0x80
+ bl sub_80D8AA0
+ strh r0, [r6, 0x14]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r6, 0x16]
+ mov r2, r10
+ ldrh r1, [r2]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ mov r4, r9
+ cmp r0, r4
+ blt _080A7908
+ subs r4, r1, r4
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r0
+ strh r1, [r6, 0x18]
+ b _080A7928
+ .align 2, 0
+_080A7900: .4byte gBattleAnimArgs
+_080A7904: .4byte gTasks
+_080A7908:
+ subs r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r6, 0x18]
+_080A7928:
+ ldr r1, _080A7968 @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r4, _080A796C @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0xE]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7978
+ movs r0, 0x80
+ eors r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080A79A0
+ ldr r0, _080A7970 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A7974 @ =0x0000ffc0
+ adds r1, r2, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080A79B0
+ .align 2, 0
+_080A7968: .4byte gTasks
+_080A796C: .4byte gBattleAnimArgs
+_080A7970: .4byte gBattleAnimTarget
+_080A7974: .4byte 0x0000ffc0
+_080A7978:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080A79A0
+ ldr r0, _080A7998 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080A799C @ =0x0000ffc0
+ adds r1, r3, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080A79B0
+ .align 2, 0
+_080A7998: .4byte gBattleAnimTarget
+_080A799C: .4byte 0x0000ffc0
+_080A79A0:
+ ldr r0, _080A79DC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x8]
+ subs r0, r1
+_080A79B0:
+ strh r0, [r5, 0xC]
+ ldr r0, _080A79E0 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _080A79C8
+ movs r0, 0x3
+ strh r0, [r1, 0xC]
+_080A79C8:
+ ldr r0, _080A79E4 @ =sub_80A760C
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A79DC: .4byte gBattleAnimTarget
+_080A79E0: .4byte gTasks
+_080A79E4: .4byte sub_80A760C
+ thumb_func_end sub_80A76F0
+
+ thumb_func_start sub_80A79E8
+sub_80A79E8: @ 80A79E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A7A10 @ =gUnknown_83E3D18
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A7A14 @ =sub_80A7A18
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7A10: .4byte gUnknown_83E3D18
+_080A7A14: .4byte sub_80A7A18
+ thumb_func_end sub_80A79E8
+
+ thumb_func_start sub_80A7A18
+sub_80A7A18: @ 80A7A18
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080A7A7C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r5, [r4, 0x2E]
+ ldr r1, _080A7A84 @ =gPlttBufferFaded
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ adds r6, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x9
+ lsls r0, r5, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ movs r3, 0x7
+ lsls r1, 1
+ adds r1, r6
+_080A7A50:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A7A50
+ adds r0, r5, 0
+ adds r0, 0xF
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _080A7A7C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7A7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7A84: .4byte gPlttBufferFaded
+ thumb_func_end sub_80A7A18
+
+ thumb_func_start sub_80A7A88
+sub_80A7A88: @ 80A7A88
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r4, _080A7B28 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A7B2C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080A7B30 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7ACC
+ ldrh r0, [r4, 0x4]
+ negs r0, r0
+ strh r0, [r4, 0x4]
+_080A7ACC:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ ldrh r1, [r5, 0x20]
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8075A1C
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r6, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080A7B34 @ =sub_80756A4
+ str r0, [r5, 0x1C]
+ ldr r1, _080A7B38 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B28: .4byte gBattleAnimTarget
+_080A7B2C: .4byte gBattleAnimArgs
+_080A7B30: .4byte gBattleAnimAttacker
+_080A7B34: .4byte sub_80756A4
+_080A7B38: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A7A88
+
+ thumb_func_start sub_80A7B3C
+sub_80A7B3C: @ 80A7B3C
+ ldr r1, _080A7B4C @ =0x0000fff0
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r1, _080A7B50 @ =sub_80A7B54
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A7B4C: .4byte 0x0000fff0
+_080A7B50: .4byte sub_80A7B54
+ thumb_func_end sub_80A7B3C
+
+ thumb_func_start sub_80A7B54
+sub_80A7B54: @ 80A7B54
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldr r0, _080A7BC0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A7B78
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080A7B78:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080A7BB8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080A7BB8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7BB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7BC0: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80A7B54
+
+ thumb_func_start sub_80A7BC4
+sub_80A7BC4: @ 80A7BC4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A7C10 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080A7C14 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080A7C18 @ =sub_80A7C1C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C10: .4byte gBattleAnimTarget
+_080A7C14: .4byte sub_8075590
+_080A7C18: .4byte sub_80A7C1C
+ thumb_func_end sub_80A7BC4
+
+ thumb_func_start sub_80A7C1C
+sub_80A7C1C: @ 80A7C1C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3F
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x9F
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ movs r2, 0
+ movs r1, 0x7
+ adds r0, r4, 0
+ adds r0, 0x3C
+_080A7C50:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080A7C50
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ ands r0, r1
+ ldr r2, _080A7C98 @ =0x0000fff4
+ adds r1, r2, 0
+ subs r1, r0
+ strh r1, [r4, 0x3A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA0
+ bl __umodsi3
+ adds r0, 0xA0
+ strh r0, [r4, 0x3C]
+ ldr r0, _080A7C9C @ =sub_80A7CA0
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C98: .4byte 0x0000fff4
+_080A7C9C: .4byte sub_80A7CA0
+ thumb_func_end sub_80A7C1C
+
+ thumb_func_start sub_80A7CA0
+sub_80A7CA0: @ 80A7CA0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 24
+ strh r2, [r4, 0x24]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7CBE
+ negs r0, r2
+ strh r0, [r4, 0x24]
+_080A7CBE:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080A7CFE
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A7CFE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7CFE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7CA0
+
+ thumb_func_start sub_80A7D04
+sub_80A7D04: @ 80A7D04
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A7D54 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A7D22
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+_080A7D22:
+ ldr r1, _080A7D58 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080A7D5C @ =sub_8074A80
+ str r0, [r4, 0x1C]
+ ldr r1, _080A7D60 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7D54: .4byte gBattleAnimAttacker
+_080A7D58: .4byte gBattleAnimArgs
+_080A7D5C: .4byte sub_8074A80
+_080A7D60: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A7D04
+
+ thumb_func_start sub_80A7D64
+sub_80A7D64: @ 80A7D64
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r7, 0x20
+ ldr r4, _080A7DE0 @ =0x0000ffe0
+ movs r0, 0x10
+ mov r8, r0
+ ldr r6, _080A7DE4 @ =0x0000fff0
+ ldr r0, _080A7DE8 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080A7D90
+ adds r7, r4, 0
+ movs r4, 0x20
+ mov r8, r6
+ movs r6, 0x10
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080A7D90:
+ lsls r0, r7, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080A7DEC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r8
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080A7DF0 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A7DF4 @ =sub_80A7DF8
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7DE0: .4byte 0x0000ffe0
+_080A7DE4: .4byte 0x0000fff0
+_080A7DE8: .4byte gBattleAnimArgs
+_080A7DEC: .4byte gBattleAnimTarget
+_080A7DF0: .4byte sub_8075590
+_080A7DF4: .4byte sub_80A7DF8
+ thumb_func_end sub_80A7D64
+
+ thumb_func_start sub_80A7DF8
+sub_80A7DF8: @ 80A7DF8
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7E0E
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A7E0E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7DF8
+
+ thumb_func_start sub_80A7E14
+sub_80A7E14: @ 80A7E14
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r0, 0x20
+ mov r8, r0
+ ldr r4, _080A7EA8 @ =0x0000ffe0
+ movs r2, 0x10
+ mov r9, r2
+ ldr r6, _080A7EAC @ =0x0000fff0
+ ldr r7, _080A7EB0 @ =gBattleAnimArgs
+ ldrh r1, [r7]
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ beq _080A7E48
+ mov r8, r4
+ movs r4, 0x20
+ mov r9, r6
+ movs r6, 0x10
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+_080A7E48:
+ mov r0, r8
+ lsls r1, r0, 16
+ asrs r1, 16
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080A7EB4 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r9
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r7]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x3A]
+ ldr r0, _080A7EB8 @ =sub_80A7EBC
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7EA8: .4byte 0x0000ffe0
+_080A7EAC: .4byte 0x0000fff0
+_080A7EB0: .4byte gBattleAnimArgs
+_080A7EB4: .4byte gBattleAnimTarget
+_080A7EB8: .4byte sub_80A7EBC
+ thumb_func_end sub_80A7E14
+
+ thumb_func_start sub_80A7EBC
+sub_80A7EBC: @ 80A7EBC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7F20
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7F20
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ ldr r0, _080A7F28 @ =0x0000fffe
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ eors r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x36]
+ strh r2, [r4, 0x34]
+ ldr r0, _080A7F2C @ =sub_80A7F30
+ str r0, [r4, 0x1C]
+_080A7F20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7F28: .4byte 0x0000fffe
+_080A7F2C: .4byte sub_80A7F30
+ thumb_func_end sub_80A7EBC
+
+ thumb_func_start sub_80A7F30
+sub_80A7F30: @ 80A7F30
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A7F48
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080A7F48:
+ ldrh r0, [r4, 0x34]
+ movs r1, 0x1
+ eors r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080A7F8A
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080A7F90 @ =sub_80A7F94
+ str r0, [r4, 0x1C]
+_080A7F8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7F90: .4byte sub_80A7F94
+ thumb_func_end sub_80A7F30
+
+ thumb_func_start sub_80A7F94
+sub_80A7F94: @ 80A7F94
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7FA8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7FA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7F94
+
+ thumb_func_start sub_80A7FB0
+sub_80A7FB0: @ 80A7FB0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80758E0
+ adds r0, r4, 0
+ movs r1, 0xD0
+ movs r2, 0xD0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080A8008 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8075B48
+ ldr r1, _080A800C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x50
+ strh r1, [r0, 0x8]
+ ldr r1, _080A8010 @ =sub_80A8014
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8008: .4byte gSprites
+_080A800C: .4byte gTasks
+_080A8010: .4byte sub_80A8014
+ thumb_func_end sub_80A7FB0
+
+ thumb_func_start sub_80A8014
+sub_80A8014: @ 80A8014
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A806C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A8064
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8075980
+ ldr r1, _080A8070 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0x1
+ bl sub_8075B48
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A8064:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A806C: .4byte gTasks
+_080A8070: .4byte gSprites
+ thumb_func_end sub_80A8014
+
+ thumb_func_start sub_80A8074
+sub_80A8074: @ 80A8074
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A80C0 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_80758E0
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldr r0, _080A80C4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ ldr r0, _080A80C8 @ =sub_80A80CC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A80C0: .4byte gTasks
+_080A80C4: .4byte gBattleAnimAttacker
+_080A80C8: .4byte sub_80A80CC
+ thumb_func_end sub_80A8074
+
+ thumb_func_start sub_80A80CC
+sub_80A80CC: @ 80A80CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A80F0 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080A80E6
+ b _080A81F6
+_080A80E6:
+ lsls r0, 2
+ ldr r1, _080A80F4 @ =_080A80F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A80F0: .4byte gTasks
+_080A80F4: .4byte _080A80F8
+ .align 2, 0
+_080A80F8:
+ .4byte _080A8110
+ .4byte _080A8158
+ .4byte _080A818E
+ .4byte _080A8194
+ .4byte _080A81A4
+ .4byte _080A81D8
+_080A8110:
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080A8120
+ cmp r0, 0x3
+ beq _080A8120
+ cmp r0, 0x6
+ bne _080A8128
+_080A8120:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A8200
+_080A8128:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x28
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8076440
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080A81F6
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _080A81D0
+_080A8158:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A81F6
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r1, 0x3
+ bne _080A816E
+ strh r0, [r4, 0xC]
+ strh r1, [r4, 0xA]
+ b _080A81F6
+_080A816E:
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r2, 0x80
+ lsls r2, 1
+ strh r2, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8076440
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ b _080A81F6
+_080A818E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080A81F6
+_080A8194:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080A81F6
+ b _080A81CC
+_080A81A4:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x50
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8076440
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080A81F6
+_080A81CC:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_080A81D0:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080A81F6
+_080A81D8:
+ ldrb r0, [r4, 0x8]
+ bl sub_8075980
+ ldr r2, _080A81FC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A81F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A81FC: .4byte gSprites
+ thumb_func_end sub_80A80CC
+
+ thumb_func_start sub_80A8200
+sub_80A8200: @ 80A8200
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ blt _080A82DA
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _080A8244
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080A8240 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ b _080A82DA
+ .align 2, 0
+_080A8240: .4byte gSprites
+_080A8244:
+ ldr r5, _080A82E8 @ =gSprites
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r4, r3, r5
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ ldrb r0, [r7, 0x16]
+ ldrb r1, [r7, 0xE]
+ subs r0, r1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r7, 0xE]
+ adds r0, 0x1
+ strh r0, [r7, 0xE]
+ ldrh r0, [r7, 0x14]
+ adds r0, 0x1
+ strh r0, [r7, 0x14]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ movs r0, 0x6
+ strh r0, [r4, 0x32]
+ adds r5, 0x1C
+ adds r3, r5
+ ldr r0, _080A82EC @ =sub_80A82F0
+ str r0, [r3]
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x10
+ ldrsh r2, [r7, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0x1
+ orrs r3, r0
+ strb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+_080A82DA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A82E8: .4byte gSprites
+_080A82EC: .4byte sub_80A82F0
+ thumb_func_end sub_80A8200
+
+ thumb_func_start sub_80A82F0
+sub_80A82F0: @ 80A82F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A832E
+ ldr r3, _080A8334 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080A832E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8334: .4byte gTasks
+ thumb_func_end sub_80A82F0
+
+ thumb_func_start sub_80A8338
+sub_80A8338: @ 80A8338
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080A835C @ =gTasks
+ adds r4, r0, r1
+ ldr r5, _080A8360 @ =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A8364
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080A838A
+ .align 2, 0
+_080A835C: .4byte gTasks
+_080A8360: .4byte gBattleAnimArgs
+_080A8364:
+ ldrb r0, [r5]
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ strh r1, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ strh r2, [r4, 0x10]
+ ldr r2, _080A8390 @ =gUnknown_83E3E60
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A8394 @ =sub_80A8398
+ str r0, [r4]
+_080A838A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8390: .4byte gUnknown_83E3E60
+_080A8394: .4byte sub_80A8398
+ thumb_func_end sub_80A8338
+
+ thumb_func_start sub_80A8398
+sub_80A8398: @ 80A8398
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080A83BC @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0xA
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080A8400
+ cmp r5, 0x1
+ bgt _080A83C0
+ cmp r5, 0
+ beq _080A83CA
+ b _080A84A8
+ .align 2, 0
+_080A83BC: .4byte gTasks
+_080A83C0:
+ cmp r5, 0x2
+ beq _080A8434
+ cmp r5, 0x3
+ beq _080A8464
+ b _080A84A8
+_080A83CA:
+ adds r0, r4, 0
+ bl sub_8076308
+ ldrh r2, [r4, 0x10]
+ adds r2, 0x3
+ strh r2, [r4, 0x10]
+ ldr r3, _080A83FC @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080A84A8
+ strh r5, [r4, 0xE]
+ b _080A845C
+ .align 2, 0
+_080A83FC: .4byte gSprites
+_080A8400:
+ adds r0, r4, 0
+ bl sub_8076308
+ ldr r2, _080A8430 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080A84A8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080A845C
+ .align 2, 0
+_080A8430: .4byte gSprites
+_080A8434:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A845C
+ ldr r2, _080A8458 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x2
+ strh r0, [r4, 0x10]
+ b _080A84A8
+ .align 2, 0
+_080A8458: .4byte gSprites
+_080A845C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080A84A8
+_080A8464:
+ adds r0, r4, 0
+ bl sub_8076308
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A84A8
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A849C
+ ldr r2, _080A8498 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ b _080A84A8
+ .align 2, 0
+_080A8498: .4byte gSprites
+_080A849C:
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080A84B0 @ =gUnknown_83E3E60
+ adds r0, r4, 0
+ bl sub_80762D0
+ strh r5, [r4, 0xA]
+_080A84A8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A84B0: .4byte gUnknown_83E3E60
+ thumb_func_end sub_80A8398
+
+ thumb_func_start sub_80A84B4
+sub_80A84B4: @ 80A84B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A84E4 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A84E8 @ =gUnknown_83E3E80
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A84EC @ =sub_80A84F0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A84E4: .4byte gTasks
+_080A84E8: .4byte gUnknown_83E3E80
+_080A84EC: .4byte sub_80A84F0
+ thumb_func_end sub_80A84B4
+
+ thumb_func_start sub_80A84F0
+sub_80A84F0: @ 80A84F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A8518 @ =gTasks
+ adds r0, r1
+ bl sub_8076308
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8510
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A8510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8518: .4byte gTasks
+ thumb_func_end sub_80A84F0
+
+ thumb_func_start sub_80A851C
+sub_80A851C: @ 80A851C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A854C @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8550
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080A856A
+ .align 2, 0
+_080A854C: .4byte gBattleAnimAttacker
+_080A8550:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x20
+ strh r0, [r4, 0x20]
+ ldr r0, _080A859C @ =0x0000ffc0
+_080A856A:
+ strh r0, [r4, 0x30]
+ ldr r0, _080A85A0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ movs r0, 0x34
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ ldr r1, _080A85A4 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A85A8 @ =sub_8074D00
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A859C: .4byte 0x0000ffc0
+_080A85A0: .4byte gBattleAnimAttacker
+_080A85A4: .4byte DestroyAnimSprite
+_080A85A8: .4byte sub_8074D00
+ thumb_func_end sub_80A851C
+
+ thumb_func_start sub_80A85AC
+sub_80A85AC: @ 80A85AC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080A85C0 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A85C8
+ ldr r0, _080A85C4 @ =gBattleAnimAttacker
+ b _080A85CA
+ .align 2, 0
+_080A85C0: .4byte gBattleAnimArgs
+_080A85C4: .4byte gBattleAnimAttacker
+_080A85C8:
+ ldr r0, _080A8628 @ =gBattleAnimTarget
+_080A85CA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A85E4
+ ldr r1, _080A862C @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080A85E4:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A862C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x4]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bgt _080A8616
+ movs r0, 0x8
+ strh r0, [r6, 0x22]
+_080A8616:
+ ldr r1, _080A8630 @ =move_anim_8074EE0
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A8634 @ =sub_8074F50
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8628: .4byte gBattleAnimTarget
+_080A862C: .4byte gBattleAnimArgs
+_080A8630: .4byte move_anim_8074EE0
+_080A8634: .4byte sub_8074F50
+ thumb_func_end sub_80A85AC
+
+ thumb_func_start sub_80A8638
+sub_80A8638: @ 80A8638
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A866C @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ strh r1, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r2, _080A8670 @ =gUnknown_83E3F1C
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A8674 @ =sub_80A8678
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A866C: .4byte gTasks
+_080A8670: .4byte gUnknown_83E3F1C
+_080A8674: .4byte sub_80A8678
+ thumb_func_end sub_80A8638
+
+ thumb_func_start sub_80A8678
+sub_80A8678: @ 80A8678
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A86A0 @ =gTasks
+ adds r0, r1
+ bl sub_8076308
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8698
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A8698:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A86A0: .4byte gTasks
+ thumb_func_end sub_80A8678
+
+ thumb_func_start sub_80A86A4
+sub_80A86A4: @ 80A86A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A8718 @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ movs r0, 0x4
+ strh r0, [r4, 0xC]
+ movs r0, 0x7
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x10]
+ ldr r3, _080A871C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ strh r2, [r4, 0x16]
+ strh r2, [r4, 0x18]
+ movs r0, 0x2
+ strh r0, [r4, 0x1A]
+ ldr r0, _080A8720 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A870E
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0xC]
+_080A870E:
+ ldr r0, _080A8724 @ =sub_80A8728
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8718: .4byte gTasks
+_080A871C: .4byte gSprites
+_080A8720: .4byte gBattleAnimAttacker
+_080A8724: .4byte sub_80A8728
+ thumb_func_end sub_80A86A4
+
+ thumb_func_start sub_80A8728
+sub_80A8728: @ 80A8728
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A8770 @ =gTasks
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x16]
+ adds r0, 0x1
+ strh r0, [r3, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080A878E
+ movs r0, 0
+ strh r0, [r3, 0x16]
+ ldrh r0, [r3, 0x18]
+ adds r0, 0x1
+ strh r0, [r3, 0x18]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A8778
+ ldr r2, _080A8774 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x1A]
+ ldrh r2, [r0, 0x22]
+ adds r1, r2
+ b _080A878C
+ .align 2, 0
+_080A8770: .4byte gTasks
+_080A8774: .4byte gSprites
+_080A8778:
+ ldr r2, _080A87A0 @ =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+_080A878C:
+ strh r1, [r0, 0x22]
+_080A878E:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080A87DC
+ cmp r0, 0x1
+ bgt _080A87A4
+ cmp r0, 0
+ beq _080A87AA
+ b _080A886C
+ .align 2, 0
+_080A87A0: .4byte gSprites
+_080A87A4:
+ cmp r0, 0x2
+ beq _080A880C
+ b _080A886C
+_080A87AA:
+ ldr r2, _080A87D8 @ =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A886C
+ movs r0, 0xE
+ strh r0, [r3, 0xE]
+ movs r0, 0x1
+ strh r0, [r3, 0xA]
+ b _080A886C
+ .align 2, 0
+_080A87D8: .4byte gSprites
+_080A87DC:
+ ldr r2, _080A8808 @ =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ ldrh r2, [r3, 0xC]
+ subs r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A886C
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ movs r0, 0x2
+ strh r0, [r3, 0xA]
+ b _080A886C
+ .align 2, 0
+_080A8808: .4byte gSprites
+_080A880C:
+ ldr r2, _080A8844 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r5, [r0, 0x20]
+ adds r1, r5
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080A886C
+ ldrh r0, [r3, 0x10]
+ subs r0, 0x1
+ strh r0, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080A8848
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ strh r1, [r3, 0xA]
+ b _080A886C
+ .align 2, 0
+_080A8844: .4byte gSprites
+_080A8848:
+ ldrh r1, [r3, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A8866
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+ strh r1, [r0, 0x22]
+_080A8866:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A886C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8728
+
+ thumb_func_start sub_80A8874
+sub_80A8874: @ 80A8874
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A88C4 @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080A88C8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ movs r0, 0x4
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ strh r1, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ strh r1, [r5, 0x12]
+ ldrb r0, [r4]
+ bl sub_8076B2C
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A88D4
+ ldr r0, _080A88CC @ =gBattle_BG1_X
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080A88D0 @ =0x04000014
+ b _080A88DC
+ .align 2, 0
+_080A88C4: .4byte gTasks
+_080A88C8: .4byte gBattleAnimTarget
+_080A88CC: .4byte gBattle_BG1_X
+_080A88D0: .4byte 0x04000014
+_080A88D4:
+ ldr r0, _080A8940 @ =gBattle_BG2_X
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080A8944 @ =0x04000018
+_080A88DC:
+ str r0, [sp]
+ ldrh r0, [r5, 0x8]
+ adds r1, r0, 0
+ subs r1, 0x40
+ lsls r2, r1, 16
+ lsls r0, 16
+ cmp r2, r0
+ bgt _080A891A
+ ldr r4, _080A8948 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080A88F4:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080A890C
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080A890C:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ ble _080A88F4
+_080A891A:
+ ldr r0, _080A894C @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ ldr r0, _080A8950 @ =sub_80A8954
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8940: .4byte gBattle_BG2_X
+_080A8944: .4byte 0x04000018
+_080A8948: .4byte gScanlineEffectRegBuffers
+_080A894C: .4byte 0xa2600001
+_080A8950: .4byte sub_80A8954
+ thumb_func_end sub_80A8874
+
+ thumb_func_start sub_80A8954
+sub_80A8954: @ 80A8954
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A8974 @ =gTasks
+ adds r3, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080A8978
+ cmp r0, 0x1
+ beq _080A898E
+ b _080A8A0E
+ .align 2, 0
+_080A8974: .4byte gTasks
+_080A8978:
+ ldrh r0, [r3, 0x12]
+ adds r0, 0x1
+ strh r0, [r3, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080A8A0E
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+ b _080A8A0E
+_080A898E:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A8A0E
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xE]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ subs r0, r1
+ strh r0, [r3, 0x12]
+ movs r2, 0xC
+ ldrsh r1, [r3, r2]
+ cmp r1, 0x1
+ beq _080A89C4
+ cmp r1, 0x1
+ ble _080A89CC
+ cmp r1, 0x2
+ beq _080A89C8
+ cmp r1, 0x3
+ beq _080A89C8
+ b _080A89CC
+_080A89C4:
+ subs r0, 0x2
+ b _080A89CA
+_080A89C8:
+ adds r0, 0x1
+_080A89CA:
+ strh r0, [r3, 0x12]
+_080A89CC:
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ blt _080A89F0
+ ldr r2, _080A8A14 @ =gScanlineEffectRegBuffers
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 1
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r2, r1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+_080A89F0:
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _080A8A0E
+ ldr r1, _080A8A18 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A8A0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8A14: .4byte gScanlineEffectRegBuffers
+_080A8A18: .4byte gScanlineEffect
+ thumb_func_end sub_80A8954
+
+ thumb_func_start sub_80A8A1C
+sub_80A8A1C: @ 80A8A1C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080A8A70 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8076B2C
+ adds r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r0, 0x3F
+ bl sub_8073A44
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ ldr r0, _080A8A74 @ =sub_80A8A78
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8A70: .4byte gBattleAnimTarget
+_080A8A74: .4byte sub_80A8A78
+ thumb_func_end sub_80A8A1C
+
+ thumb_func_start sub_80A8A78
+sub_80A8A78: @ 80A8A78
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080A8ADC
+ cmp r1, 0x1
+ bgt _080A8A8E
+ cmp r1, 0
+ beq _080A8A94
+ b _080A8BBC
+_080A8A8E:
+ cmp r1, 0x2
+ beq _080A8B6E
+ b _080A8BBC
+_080A8A94:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A8ABE
+ strh r1, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080A8ABE:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080A8BBC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ b _080A8B66
+_080A8ADC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A8B22
+ ldrh r2, [r4, 0x32]
+ movs r3, 0x32
+ ldrsh r1, [r4, r3]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080A8B22
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A8B22
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC6
+ bl PlaySE12WithPanning
+_080A8B22:
+ ldrh r0, [r4, 0x34]
+ ldrh r2, [r4, 0x36]
+ adds r1, r0, r2
+ strh r1, [r4, 0x36]
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ cmp r2, 0x1F
+ ble _080A8B36
+ movs r0, 0x40
+ b _080A8B44
+_080A8B36:
+ movs r0, 0x20
+ negs r0, r0
+ cmp r2, r0
+ bgt _080A8B50
+ movs r2, 0x40
+ negs r2, r2
+ adds r0, r2, 0
+_080A8B44:
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_080A8B50:
+ ldrh r0, [r4, 0x36]
+ movs r2, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _080A8BBC
+ strh r2, [r4, 0x30]
+ strh r2, [r4, 0x32]
+_080A8B66:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A8BBC
+_080A8B6E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A8B9A
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080A8B9A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080A8BBC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A8BBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8A78
+
+ thumb_func_start sub_80A8BC4
+sub_80A8BC4: @ 80A8BC4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r5, 0
+ mov r0, sp
+ strh r5, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r5, [r1]
+ ldr r0, _080A8BE8 @ =gBattleAnimArgs
+ movs r3, 0x4
+ ldrsh r2, [r0, r3]
+ adds r7, r1, 0
+ adds r1, r0, 0
+ cmp r2, 0
+ bne _080A8BF0
+ ldr r0, _080A8BEC @ =gBattleAnimAttacker
+ b _080A8BF2
+ .align 2, 0
+_080A8BE8: .4byte gBattleAnimArgs
+_080A8BEC: .4byte gBattleAnimAttacker
+_080A8BF0:
+ ldr r0, _080A8C2C @ =gBattleAnimTarget
+_080A8BF2:
+ ldrb r5, [r0]
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x1
+ adds r4, r0, 0
+ eors r4, r1
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C6A
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C6A
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl sub_8076D9C
+ cmp r4, 0
+ bne _080A8C30
+ adds r0, r5, 0
+ movs r1, 0
+ b _080A8C34
+ .align 2, 0
+_080A8C2C: .4byte gBattleAnimTarget
+_080A8C30:
+ adds r0, r5, 0
+ movs r1, 0x2
+_080A8C34:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C60
+ ldr r2, _080A8C5C @ =gBattleAnimArgs
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r4
+ ldrh r0, [r2]
+ subs r1, r0
+ subs r0, r1
+ strh r0, [r2]
+ b _080A8C6A
+ .align 2, 0
+_080A8C5C: .4byte gBattleAnimArgs
+_080A8C60:
+ ldr r1, _080A8C7C @ =gBattleAnimArgs
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, r4
+ strh r0, [r1]
+_080A8C6A:
+ ldr r1, _080A8C80 @ =sub_8075D9C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8C7C: .4byte gBattleAnimArgs
+_080A8C80: .4byte sub_8075D9C
+ thumb_func_end sub_80A8BC4
+
+ thumb_func_start sub_80A8C84
+sub_80A8C84: @ 80A8C84
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C9E
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A8C9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8C84
+
+ thumb_func_start sub_80A8CA4
+sub_80A8CA4: @ 80A8CA4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r6, 0
+ mov r0, sp
+ strh r6, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r6, [r1]
+ ldr r0, _080A8CD0 @ =gBattleAnimArgs
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080A8CDC
+ ldr r0, _080A8CD4 @ =gBattleAnimAttacker
+ ldrb r7, [r0]
+ ldr r0, _080A8CD8 @ =gBattleAnimTarget
+ b _080A8CE2
+ .align 2, 0
+_080A8CD0: .4byte gBattleAnimArgs
+_080A8CD4: .4byte gBattleAnimAttacker
+_080A8CD8: .4byte gBattleAnimTarget
+_080A8CDC:
+ ldr r0, _080A8CFC @ =gBattleAnimTarget
+ ldrb r7, [r0]
+ ldr r0, _080A8D00 @ =gBattleAnimAttacker
+_080A8CE2:
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r0, _080A8D04 @ =gBattleAnimArgs
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080A8D08
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _080A8D10
+ .align 2, 0
+_080A8CFC: .4byte gBattleAnimTarget
+_080A8D00: .4byte gBattleAnimAttacker
+_080A8D04: .4byte gBattleAnimArgs
+_080A8D08:
+ movs r2, 0x2
+ mov r10, r2
+ movs r3, 0x3
+ str r3, [sp, 0x4]
+_080A8D10:
+ adds r0, r7, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8D6C
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8074480
+ lsls r0, 24
+ ldr r1, _080A8D50 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x2
+ mov r4, r8
+ eors r4, r0
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8D5C
+ ldr r2, _080A8D54 @ =gSprites
+ ldr r0, _080A8D58 @ =gBattlerSpriteIds
+ adds r0, r4, r0
+ b _080A8DEA
+ .align 2, 0
+_080A8D50: .4byte gBattleAnimArgs
+_080A8D54: .4byte gSprites
+_080A8D58: .4byte gBattlerSpriteIds
+_080A8D5C:
+ ldr r2, _080A8D64 @ =gSprites
+ ldr r0, _080A8D68 @ =gBattlerSpriteIds
+ add r0, r8
+ b _080A8DEA
+ .align 2, 0
+_080A8D64: .4byte gSprites
+_080A8D68: .4byte gBattlerSpriteIds
+_080A8D6C:
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A8DD4 @ =gBattleAnimArgs
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8DE4
+ movs r0, 0x2
+ adds r4, r7, 0
+ eors r4, r0
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8DE4
+ ldr r3, _080A8DD8 @ =gSprites
+ ldr r2, _080A8DDC @ =gBattlerSpriteIds
+ adds r0, r7, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r3
+ adds r2, r4, r2
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ movs r3, 0x20
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080A8DE0
+ adds r0, r2, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r0, 0x1
+ b _080A8DFA
+ .align 2, 0
+_080A8DD4: .4byte gBattleAnimArgs
+_080A8DD8: .4byte gSprites
+_080A8DDC: .4byte gBattlerSpriteIds
+_080A8DE0:
+ adds r0, r6, 0
+ b _080A8DF4
+_080A8DE4:
+ ldr r2, _080A8E40 @ =gSprites
+ ldr r0, _080A8E44 @ =gBattlerSpriteIds
+ adds r0, r7, r0
+_080A8DEA:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+_080A8DF4:
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+_080A8DFA:
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x4]
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A8E48 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8E4C
+ movs r1, 0x2
+ mov r0, r8
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8E4C
+ ldrb r1, [r4, 0xC]
+ mov r0, r8
+ mov r2, sp
+ mov r3, sp
+ adds r3, 0x2
+ bl sub_8076D9C
+ b _080A8E6C
+ .align 2, 0
+_080A8E40: .4byte gSprites
+_080A8E44: .4byte gBattlerSpriteIds
+_080A8E48: .4byte gBattleAnimArgs
+_080A8E4C:
+ mov r4, sp
+ mov r0, r8
+ mov r1, r10
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, r8
+ ldr r1, [sp, 0x4]
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, sp
+ strh r0, [r2, 0x2]
+_080A8E6C:
+ mov r0, r8
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8E90
+ mov r3, sp
+ mov r2, sp
+ ldr r1, _080A8E8C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r3]
+ adds r2, r1, 0
+ b _080A8E9E
+ .align 2, 0
+_080A8E8C: .4byte gBattleAnimArgs
+_080A8E90:
+ mov r3, sp
+ mov r0, sp
+ ldr r2, _080A8EE0 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r3]
+_080A8E9E:
+ ldrh r1, [r2, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0x2]
+ adds r1, r3
+ mov r0, sp
+ strh r1, [r0, 0x2]
+ mov r3, r9
+ strh r3, [r5, 0x30]
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x34]
+ strh r6, [r5, 0x22]
+ ldrh r0, [r0]
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x36]
+ ldrh r0, [r2]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080A8EE4 @ =sub_80A8C84
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8EE0: .4byte gBattleAnimArgs
+_080A8EE4: .4byte sub_80A8C84
+ thumb_func_end sub_80A8CA4
+
+ thumb_func_start sub_80A8EE8
+sub_80A8EE8: @ 80A8EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A8F28 @ =0x000027db
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080A8F0E
+ lsls r0, 20
+ ldr r1, _080A8F2C @ =0x01010000
+ adds r0, r1
+ lsrs r0, 16
+ ldr r1, _080A8F30 @ =gBattleAnimArgs
+ ldrb r2, [r1, 0xA]
+ ldrh r3, [r1, 0x8]
+ movs r1, 0xF
+ bl BlendPalette
+_080A8F0E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080A8F34 @ =sub_8075D9C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8F28: .4byte 0x000027db
+_080A8F2C: .4byte 0x01010000
+_080A8F30: .4byte gBattleAnimArgs
+_080A8F34: .4byte sub_8075D9C
+ thumb_func_end sub_80A8EE8
+
+ thumb_func_start sub_80A8F38
+sub_80A8F38: @ 80A8F38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A8F6C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080A8F54
+ ldr r1, _080A8F70 @ =0x0000ff60
+_080A8F54:
+ movs r0, 0xE0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _080A8F74 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080A8F78 @ =sub_80A8F7C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8F6C: .4byte gBattleAnimAttacker
+_080A8F70: .4byte 0x0000ff60
+_080A8F74: .4byte gBattleAnimArgs
+_080A8F78: .4byte sub_80A8F7C
+ thumb_func_end sub_80A8F38
+
+ thumb_func_start sub_80A8F7C
+sub_80A8F7C: @ 80A8F7C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ subs r2, 0x20
+ strh r2, [r4, 0x2E]
+ ldr r0, _080A8FE8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080A8FAC
+ ldr r1, _080A8FEC @ =0x0000ff60
+_080A8FAC:
+ lsls r0, r1, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A8FE0
+ ldrh r2, [r4, 0x22]
+ adds r0, r1, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _080A8FF0 @ =sub_80A8FF4
+ str r0, [r4, 0x1C]
+_080A8FE0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8FE8: .4byte gBattleAnimAttacker
+_080A8FEC: .4byte 0x0000ff60
+_080A8FF0: .4byte sub_80A8FF4
+ thumb_func_end sub_80A8F7C
+
+ thumb_func_start sub_80A8FF4
+sub_80A8FF4: @ 80A8FF4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080A9012
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080A9018 @ =sub_80A901C
+ str r0, [r4, 0x1C]
+_080A9012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9018: .4byte sub_80A901C
+ thumb_func_end sub_80A8FF4
+
+ thumb_func_start sub_80A901C
+sub_80A901C: @ 80A901C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A9082
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A9068
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _080A905C @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080A9060 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080A9064 @ =sub_80A9094
+ b _080A9080
+ .align 2, 0
+_080A905C: .4byte 0x000003ff
+_080A9060: .4byte 0xfffffc00
+_080A9064: .4byte sub_80A9094
+_080A9068:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r3, _080A9088 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080A908C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080A9090 @ =sub_80A911C
+_080A9080:
+ str r0, [r4, 0x1C]
+_080A9082:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9088: .4byte 0x000003ff
+_080A908C: .4byte 0xfffffc00
+_080A9090: .4byte sub_80A911C
+ thumb_func_end sub_80A901C
+
+ thumb_func_start sub_80A9094
+sub_80A9094: @ 80A9094
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x2
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _080A90CA
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, _080A90D0 @ =sub_80A90D4
+ str r0, [r4, 0x1C]
+_080A90CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A90D0: .4byte sub_80A90D4
+ thumb_func_end sub_80A9094
+
+ thumb_func_start sub_80A90D4
+sub_80A90D4: @ 80A90D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A9112
+ ldrh r1, [r4, 0x2E]
+ subs r1, 0x1
+ strh r1, [r4, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A9112
+ ldr r0, _080A9118 @ =sub_80A911C
+ str r0, [r4, 0x1C]
+_080A9112:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9118: .4byte sub_80A911C
+ thumb_func_end sub_80A90D4
+
+ thumb_func_start sub_80A911C
+sub_80A911C: @ 80A911C
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _080A9144 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A9148 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A9154
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080A9150
+ ldr r0, _080A914C @ =sub_80A915C
+ b _080A9152
+ .align 2, 0
+_080A9144: .4byte gBattleAnimArgs
+_080A9148: .4byte 0x0000ffff
+_080A914C: .4byte sub_80A915C
+_080A9150:
+ ldr r0, _080A9158 @ =DestroyAnimSprite
+_080A9152:
+ str r0, [r3, 0x1C]
+_080A9154:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9158: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A911C
+
+ thumb_func_start sub_80A915C
+sub_80A915C: @ 80A915C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A915C
+
+ thumb_func_start sub_80A917C
+sub_80A917C: @ 80A917C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A91AC @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080A91B0 @ =gUnknown_83E4128
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A91B4 @ =sub_80A91B8
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A91AC: .4byte gTasks
+_080A91B0: .4byte gUnknown_83E4128
+_080A91B4: .4byte sub_80A91B8
+ thumb_func_end sub_80A917C
+
+ thumb_func_start sub_80A91B8
+sub_80A91B8: @ 80A91B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A9208 @ =gTasks
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl sub_8076308
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080A9202
+ ldr r2, _080A920C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A9202:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9208: .4byte gTasks
+_080A920C: .4byte gSprites
+ thumb_func_end sub_80A91B8
+
+ thumb_func_start sub_80A9210
+sub_80A9210: @ 80A9210
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A9244 @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x20]
+ ldr r0, _080A9248 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9250
+ ldr r0, _080A924C @ =0x0000ffff
+ strh r0, [r4, 0x22]
+ movs r0, 0x8
+ b _080A9256
+ .align 2, 0
+_080A9244: .4byte gTasks
+_080A9248: .4byte gBattleAnimTarget
+_080A924C: .4byte 0x0000ffff
+_080A9250:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r0, _080A9270 @ =0x0000fff8
+_080A9256:
+ strh r0, [r4, 0x24]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080A9274 @ =sub_80A9278
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9270: .4byte 0x0000fff8
+_080A9274: .4byte sub_80A9278
+ thumb_func_end sub_80A9210
+
+ thumb_func_start sub_80A9278
+sub_80A9278: @ 80A9278
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A929C @ =gTasks
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ cmp r4, 0x1
+ beq _080A92CC
+ cmp r4, 0x1
+ bgt _080A92A0
+ cmp r4, 0
+ beq _080A92AA
+ b _080A9392
+ .align 2, 0
+_080A929C: .4byte gTasks
+_080A92A0:
+ cmp r4, 0x2
+ beq _080A9348
+ cmp r4, 0x3
+ beq _080A9362
+ b _080A9392
+_080A92AA:
+ ldr r2, _080A92C8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ strh r4, [r3, 0xA]
+ strh r4, [r3, 0xC]
+ strh r4, [r3, 0xE]
+ b _080A935A
+ .align 2, 0
+_080A92C8: .4byte gSprites
+_080A92CC:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A9392
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ ands r0, r4
+ lsls r0, 16
+ cmp r0, 0
+ beq _080A9304
+ ldr r2, _080A9300 @ =gSprites
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ adds r1, 0x6
+ b _080A9316
+ .align 2, 0
+_080A9300: .4byte gSprites
+_080A9304:
+ ldr r2, _080A9344 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ subs r1, 0x6
+_080A9316:
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080A9392
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A935A
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x6
+ strh r0, [r1, 0x24]
+ b _080A935A
+ .align 2, 0
+_080A9344: .4byte gSprites
+_080A9348:
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x1
+ strh r0, [r3, 0x20]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080A935A
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ b _080A9392
+_080A935A:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080A9392
+_080A9362:
+ ldr r2, _080A9398 @ =gSprites
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x22]
+ ldrh r4, [r0, 0x24]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A9392
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A9392:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9398: .4byte gSprites
+ thumb_func_end sub_80A9278
+
+ thumb_func_start sub_80A939C
+sub_80A939C: @ 80A939C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A93D8 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r0, 0xE
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080A93DC @ =sub_80A93E0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A93D8: .4byte gTasks
+_080A93DC: .4byte sub_80A93E0
+ thumb_func_end sub_80A939C
+
+ thumb_func_start sub_80A93E0
+sub_80A93E0: @ 80A93E0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A9434 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080A94A6
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ ble _080A94A6
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A943C
+ ldr r3, _080A9438 @ =gSprites
+ movs r6, 0x26
+ ldrsh r1, [r4, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ b _080A9452
+ .align 2, 0
+_080A9434: .4byte gTasks
+_080A9438: .4byte gSprites
+_080A943C:
+ ldr r3, _080A9484 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_080A9452:
+ strb r1, [r0]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x22
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080A94A6
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x24
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ bge _080A9488
+ strh r2, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ b _080A94A6
+ .align 2, 0
+_080A9484: .4byte gSprites
+_080A9488:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A94A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A93E0
+
+ thumb_func_start sub_80A94AC
+sub_80A94AC: @ 80A94AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A94FC @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0x4
+ strh r1, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ strh r0, [r4, 0x12]
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ strh r0, [r4, 0x18]
+ strh r0, [r4, 0x22]
+ ldr r5, _080A9500 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080A9504 @ =sub_80A9508
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A94FC: .4byte gTasks
+_080A9500: .4byte gBattleAnimAttacker
+_080A9504: .4byte sub_80A9508
+ thumb_func_end sub_80A94AC
+
+ thumb_func_start sub_80A9508
+sub_80A9508: @ 80A9508
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080A952C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x18
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080A9574
+ cmp r2, 0x1
+ bgt _080A9530
+ cmp r2, 0
+ beq _080A9536
+ b _080A9590
+ .align 2, 0
+_080A952C: .4byte gTasks
+_080A9530:
+ cmp r2, 0x2
+ beq _080A958C
+ b _080A9590
+_080A9536:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A9590
+ strh r2, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080A9590
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A956E
+ strh r2, [r4, 0x14]
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+ b _080A9590
+_080A956E:
+ movs r0, 0x2
+ strh r0, [r4, 0x18]
+ b _080A9590
+_080A9574:
+ movs r1, 0
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080A9590
+ strh r2, [r4, 0x16]
+ strh r1, [r4, 0x18]
+ b _080A9590
+_080A958C:
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+_080A9590:
+ movs r2, 0x8
+ ldrsh r5, [r4, r2]
+ cmp r5, 0
+ beq _080A959E
+ cmp r5, 0x1
+ beq _080A9634
+ b _080A9642
+_080A959E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080A9642
+ strh r5, [r4, 0xA]
+ ldr r0, _080A9628 @ =gUnknown_83E4154
+ movs r3, 0x24
+ ldrsh r1, [r4, r3]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080A9642
+ ldr r0, _080A962C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ strh r6, [r1, 0x2E]
+ movs r0, 0xD
+ strh r0, [r1, 0x30]
+ ldr r2, _080A9630 @ =gUnknown_83E416C
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x24]
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A9642
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080A9642
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080A9642
+ .align 2, 0
+_080A9628: .4byte gUnknown_83E4154
+_080A962C: .4byte gSprites
+_080A9630: .4byte gUnknown_83E416C
+_080A9634:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A9642
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A9642:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9508
+
+ thumb_func_start sub_80A9648
+sub_80A9648: @ 80A9648
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _080A96B0 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r2, 0x1
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+ lsls r1, 2
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A96AA
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl DestroySprite
+_080A96AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A96B0: .4byte gTasks
+ thumb_func_end sub_80A9648
+
+ thumb_func_start sub_80A96B4
+sub_80A96B4: @ 80A96B4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080A9750 @ =0x000027de
+ bl IndexOfSpritePaletteTag
+ mov r1, sp
+ strb r0, [r1]
+ movs r4, 0x1
+ ldr r0, _080A9754 @ =0x00002710
+ adds r5, r0, 0
+_080A96CC:
+ subs r0, r5, r4
+ lsls r0, 16
+ lsrs r0, 16
+ bl AllocSpritePalette
+ mov r2, sp
+ adds r1, r2, r4
+ strb r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080A96CC
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ adds r1, r0, 0
+ ldr r0, _080A9758 @ =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r0, r2
+ str r1, [r0]
+ ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette
+ bl LZDecompressWram
+ movs r4, 0
+_080A9700:
+ ldr r5, _080A9758 @ =gMonSpritesGfxPtr
+ ldr r0, [r5]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ lsls r1, r4, 6
+ ldr r0, [r0]
+ adds r0, r1
+ mov r2, sp
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ lsls r1, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r1, r2
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadPalette
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080A9700
+ ldr r0, [r5]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9750: .4byte 0x000027de
+_080A9754: .4byte 0x00002710
+_080A9758: .4byte gMonSpritesGfxPtr
+_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette
+ thumb_func_end sub_80A96B4
+
+ thumb_func_start sub_80A9760
+sub_80A9760: @ 80A9760
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080A9784 @ =gUnknown_83E41C8
+ movs r4, 0x2
+_080A976A:
+ ldrh r0, [r5]
+ bl FreeSpritePaletteByTag
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080A976A
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9784: .4byte gUnknown_83E41C8
+ thumb_func_end sub_80A9760
+
+ thumb_func_start sub_80A9788
+sub_80A9788: @ 80A9788
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ movs r0, 0x1
+ ands r3, r0
+ negs r0, r3
+ orrs r0, r3
+ asrs r0, 31
+ movs r3, 0x20
+ ands r0, r3
+ ldrh r4, [r5, 0x4]
+ lsls r3, r4, 22
+ lsrs r3, 22
+ lsrs r1, 22
+ adds r0, r1
+ adds r3, r0
+ ldr r1, _080A97DC @ =0x000003ff
+ adds r0, r1, 0
+ ands r3, r0
+ ldr r0, _080A97E0 @ =0xfffffc00
+ ands r0, r4
+ orrs r0, r3
+ strh r0, [r5, 0x4]
+ ldr r0, _080A97E4 @ =gUnknown_83E41C8
+ lsrs r2, 25
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A97DC: .4byte 0x000003ff
+_080A97E0: .4byte 0xfffffc00
+_080A97E4: .4byte gUnknown_83E41C8
+ thumb_func_end sub_80A9788
+
+ thumb_func_start sub_80A97E8
+sub_80A97E8: @ 80A97E8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r6, _080A9850 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9808
+ ldr r1, _080A9854 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A9808:
+ ldr r4, _080A9854 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldr r0, _080A9858 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A985C @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldrb r1, [r4, 0xA]
+ ldrb r2, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_80A9788
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9850: .4byte gBattleAnimAttacker
+_080A9854: .4byte gBattleAnimArgs
+_080A9858: .4byte sub_8075590
+_080A985C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A97E8
+
+ thumb_func_start sub_80A9860
+sub_80A9860: @ 80A9860
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A987A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075160
+_080A987A:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x32]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x7
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ subs r2, 0x80
+ strh r2, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bne _080A98AA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A98AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9860
+
+ thumb_func_start sub_80A98B0
+sub_80A98B0: @ 80A98B0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ movs r6, 0xF0
+ cmp r0, 0
+ beq _080A98C4
+ movs r6, 0x98
+_080A98C4:
+ movs r5, 0
+ ldr r1, _080A9918 @ =gUnknown_2022984
+ strh r6, [r1]
+ ldr r4, _080A991C @ =gUnknown_2022986
+ movs r0, 0xA0
+ strh r0, [r4]
+ ldrh r1, [r1]
+ movs r0, 0x40
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x44
+ bl SetGpuReg
+ ldr r1, _080A9920 @ =0x00003f1f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080A9924 @ =0x00003f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0xC8
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r1, _080A9928 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ ldr r1, _080A992C @ =sub_80A9930
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9918: .4byte gUnknown_2022984
+_080A991C: .4byte gUnknown_2022986
+_080A9920: .4byte 0x00003f1f
+_080A9924: .4byte 0x00003f3f
+_080A9928: .4byte gTasks
+_080A992C: .4byte sub_80A9930
+ thumb_func_end sub_80A98B0
+
+ thumb_func_start sub_80A9930
+sub_80A9930: @ 80A9930
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9964 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x8]
+ adds r4, r0, 0
+ adds r4, 0xD
+ strh r4, [r3, 0x8]
+ ldrh r0, [r3, 0xA]
+ adds r2, r0, 0
+ subs r2, 0xD
+ strh r2, [r3, 0xA]
+ lsls r1, r4, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080A9970
+ ldr r0, _080A9968 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080A996C @ =sub_80A9984
+ str r0, [r3]
+ b _080A9978
+ .align 2, 0
+_080A9964: .4byte gTasks
+_080A9968: .4byte gUnknown_2022984
+_080A996C: .4byte sub_80A9984
+_080A9970:
+ ldr r1, _080A9980 @ =gUnknown_2022984
+ lsls r0, r4, 8
+ orrs r2, r0
+ strh r2, [r1]
+_080A9978:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9980: .4byte gUnknown_2022984
+ thumb_func_end sub_80A9930
+
+ thumb_func_start sub_80A9984
+sub_80A9984: @ 80A9984
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080A99D0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080A99D8
+ movs r0, 0x88
+ strh r0, [r1, 0x1E]
+ movs r0, 0x50
+ movs r1, 0x88
+ bl SetGpuReg
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ ldr r2, _080A99D4 @ =0x00007fff
+ movs r1, 0x10
+ bl BlendPalettes
+ b _080A9A0C
+ .align 2, 0
+_080A99D0: .4byte gTasks
+_080A99D4: .4byte 0x00007fff
+_080A99D8:
+ cmp r0, 0x4
+ ble _080A9A0C
+ ldr r0, _080A9A14 @ =gUnknown_2022984
+ strh r4, [r0]
+ ldr r0, _080A9A18 @ =gUnknown_2022986
+ strh r4, [r0]
+ ldr r4, _080A9A1C @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A9A0C:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9A14: .4byte gUnknown_2022984
+_080A9A18: .4byte gUnknown_2022986
+_080A9A1C: .4byte 0x00003f3f
+ thumb_func_end sub_80A9984
+
+ thumb_func_start sub_80A9A20
+sub_80A9A20: @ 80A9A20
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A9A70 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A9A7C
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A9A74 @ =gUnknown_83E4200
+ adds r0, r5, 0
+ bl sub_80762D0
+ ldr r1, _080A9A78 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080A9AA4
+ .align 2, 0
+_080A9A70: .4byte gTasks
+_080A9A74: .4byte gUnknown_83E4200
+_080A9A78: .4byte gSprites
+_080A9A7C:
+ ldr r1, _080A9AAC @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_8076308
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A9AA4
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A9AA4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9AAC: .4byte gSprites
+ thumb_func_end sub_80A9A20
+
+ thumb_func_start sub_80A9AB0
+sub_80A9AB0: @ 80A9AB0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A9B00 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A9B0C
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A9B04 @ =gUnknown_83E4200
+ adds r0, r5, 0
+ bl sub_80762D0
+ ldr r1, _080A9B08 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080A9B34
+ .align 2, 0
+_080A9B00: .4byte gTasks
+_080A9B04: .4byte gUnknown_83E4200
+_080A9B08: .4byte gSprites
+_080A9B0C:
+ ldr r1, _080A9B3C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_8076308
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A9B34
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A9B34:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9B3C: .4byte gSprites
+ thumb_func_end sub_80A9AB0
+
+ thumb_func_start sub_80A9B40
+sub_80A9B40: @ 80A9B40
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ movs r0, 0x5F
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080A9B84 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080A9B88 @ =sub_80A9B8C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9B84: .4byte gBattleAnimTarget
+_080A9B88: .4byte sub_80A9B8C
+ thumb_func_end sub_80A9B40
+
+ thumb_func_start sub_80A9B8C
+sub_80A9B8C: @ 80A9B8C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9BB6
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080A9BBC
+_080A9BB6:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A9BBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9B8C
+
+ thumb_func_start sub_80A9BC4
+sub_80A9BC4: @ 80A9BC4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A9BE8
+ ldr r1, _080A9BE4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A9C44
+ .align 2, 0
+_080A9BE4: .4byte gBattleAnimArgs
+_080A9BE8:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080A9C36
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080A9C36:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080A9C44
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A9C44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9BC4
+
+ thumb_func_start sub_80A9C4C
+sub_80A9C4C: @ 80A9C4C
+ push {lr}
+ ldr r2, _080A9C70 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ movs r1, 0xA0
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x30]
+ ldr r1, _080A9C74 @ =sub_8074C44
+ str r1, [r0, 0x1C]
+ ldr r1, _080A9C78 @ =sub_80A9C7C
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9C70: .4byte gBattleAnimArgs
+_080A9C74: .4byte sub_8074C44
+_080A9C78: .4byte sub_80A9C7C
+ thumb_func_end sub_80A9C4C
+
+ thumb_func_start sub_80A9C7C
+sub_80A9C7C: @ 80A9C7C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ lsrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x48
+ bgt _080A9CE2
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ cmp r5, 0x40
+ bgt _080A9CE2
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A9CE2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9C7C
+
+ thumb_func_start sub_80A9CE8
+sub_80A9CE8: @ 80A9CE8
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A9DA0 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x3
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9D2A
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080A9D2A:
+ ldr r0, _080A9DA4 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080A9DA8 @ =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap
+ bl sub_807543C
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9D88
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080A9D88:
+ ldr r0, _080A9DB8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A9DBC @ =sub_80A9DC0
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9DA0: .4byte 0x00003f42
+_080A9DA4: .4byte gBattle_BG1_X
+_080A9DA8: .4byte gBattle_BG1_Y
+_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap
+_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet
+_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette
+_080A9DB8: .4byte gTasks
+_080A9DBC: .4byte sub_80A9DC0
+ thumb_func_end sub_80A9CE8
+
+ thumb_func_start sub_80A9DC0
+sub_80A9DC0: @ 80A9DC0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A9DE8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080A9DDE
+ b _080A9F08
+_080A9DDE:
+ lsls r0, 2
+ ldr r1, _080A9DEC @ =_080A9DF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A9DE8: .4byte gTasks
+_080A9DEC: .4byte _080A9DF0
+ .align 2, 0
+_080A9DF0:
+ .4byte _080A9E04
+ .4byte _080A9E48
+ .4byte _080A9E6A
+ .4byte _080A9EAE
+ .4byte _080A9ED4
+_080A9E04:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080A9F08
+ strh r5, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080A9F08
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _080A9F08
+_080A9E48:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8D
+ bne _080A9F08
+ movs r0, 0x10
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080A9F08
+_080A9E6A:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080A9F08
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080A9F08
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080A9F08
+_080A9EAE:
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_8075358
+ ldr r1, _080A9ED0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x20]
+ adds r1, 0x1
+ strh r1, [r0, 0x20]
+ b _080A9F08
+ .align 2, 0
+_080A9ED0: .4byte gTasks
+_080A9ED4:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9EE8
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080A9EE8:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A9F08:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9DC0
+
+ thumb_func_start sub_80A9F10
+sub_80A9F10: @ 80A9F10
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A9F88 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9F52
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080A9F52:
+ ldr r0, _080A9F8C @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080A9F90 @ =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80752A0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9F98
+ ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080A9FC6
+ .align 2, 0
+_080A9F88: .4byte 0x00003f42
+_080A9F8C: .4byte gBattle_BG1_X
+_080A9F90: .4byte gBattle_BG1_Y
+_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
+_080A9F98:
+ ldr r0, _080A9FB4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A9FBC
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
+ bl sub_807543C
+ b _080A9FC6
+ .align 2, 0
+_080A9FB4: .4byte gBattleAnimTarget
+_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
+_080A9FBC:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
+ bl sub_807543C
+_080A9FC6:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9FFA
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080A9FFA:
+ ldr r0, _080AA01C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AA020 @ =sub_80AA024
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
+_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
+_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
+_080AA01C: .4byte gTasks
+_080AA020: .4byte sub_80AA024
+ thumb_func_end sub_80A9F10
+
+ thumb_func_start sub_80AA024
+sub_80AA024: @ 80AA024
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AA04C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080AA042
+ b _080AA168
+_080AA042:
+ lsls r0, 2
+ ldr r1, _080AA050 @ =_080AA054
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AA04C: .4byte gTasks
+_080AA050: .4byte _080AA054
+ .align 2, 0
+_080AA054:
+ .4byte _080AA068
+ .4byte _080AA0AC
+ .4byte _080AA0CE
+ .4byte _080AA112
+ .4byte _080AA134
+_080AA068:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080AA168
+ strh r5, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xE
+ bne _080AA168
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _080AA168
+_080AA0AC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080AA168
+ movs r0, 0xE
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080AA168
+_080AA0CE:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080AA168
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080AA168
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080AA168
+_080AA112:
+ mov r0, sp
+ bl sub_80752A0
+ movs r0, 0x1
+ bl sub_8075358
+ movs r0, 0x2
+ bl sub_8075358
+ ldr r0, _080AA170 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080AA134:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AA148
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080AA148:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AA168:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA170: .4byte gTasks
+ thumb_func_end sub_80AA024
+
+ thumb_func_start sub_80AA174
+sub_80AA174: @ 80AA174
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080AA1C8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080AA1CC @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3C]
+ ldr r1, _080AA1D0 @ =sub_80AA1D4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA1C8: .4byte gBattleAnimAttacker
+_080AA1CC: .4byte gBattleAnimArgs
+_080AA1D0: .4byte sub_80AA1D4
+ thumb_func_end sub_80AA174
+
+ thumb_func_start sub_80AA1D4
+sub_80AA1D4: @ 80AA1D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080AA1EA
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ b _080AA1EE
+_080AA1EA:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+_080AA1EE:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ beq _080AA260
+ cmp r2, 0x1
+ bne _080AA290
+ ldr r1, _080AA258 @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _080AA25C @ =0xffffff00
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080AA290
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ b _080AA2A0
+ .align 2, 0
+_080AA258: .4byte 0xfffffc00
+_080AA25C: .4byte 0xffffff00
+_080AA260:
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080AA290
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+_080AA290:
+ ldr r0, _080AA2A8 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080AA2AC @ =0x0000ffff
+ cmp r1, r0
+ bne _080AA2A0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA2A0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA2A8: .4byte gBattleAnimArgs
+_080AA2AC: .4byte 0x0000ffff
+ thumb_func_end sub_80AA1D4
+
+ thumb_func_start sub_80AA2B0
+sub_80AA2B0: @ 80AA2B0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080AA2F8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080AA2FC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldr r0, _080AA300 @ =sub_80AA304
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA2F8: .4byte gBattleAnimAttacker
+_080AA2FC: .4byte gBattleAnimArgs
+_080AA300: .4byte sub_80AA304
+ thumb_func_end sub_80AA2B0
+
+ thumb_func_start sub_80AA304
+sub_80AA304: @ 80AA304
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r3, 0x24
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080AA342
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080AA342
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080AA348
+_080AA342:
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA348:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA304
+
+ thumb_func_start sub_80AA34C
+sub_80AA34C: @ 80AA34C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _080AA378
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA378:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA34C
+
+ thumb_func_start sub_80AA37C
+sub_80AA37C: @ 80AA37C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080AA3C8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080AA3CC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x32]
+ ldr r0, _080AA3D0 @ =sub_80AA34C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA3C8: .4byte gBattleAnimAttacker
+_080AA3CC: .4byte gBattleAnimArgs
+_080AA3D0: .4byte sub_80AA34C
+ thumb_func_end sub_80AA37C
+
+ thumb_func_start sub_80AA3D4
+sub_80AA3D4: @ 80AA3D4
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AA3EA
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA3EA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA3D4
+
+ thumb_func_start sub_80AA3F0
+sub_80AA3F0: @ 80AA3F0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080AA404 @ =sub_80AA3D4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA404: .4byte sub_80AA3D4
+ thumb_func_end sub_80AA3F0
+
+ thumb_func_start sub_80AA408
+sub_80AA408: @ 80AA408
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA426
+ ldr r0, _080AA498 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080AA426:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r5, r0, 1
+ movs r0, 0xFF
+ ands r5, r0
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Sin
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4F
+ bgt _080AA46A
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Cos
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ lsls r0, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x26]
+_080AA46A:
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x5A
+ ble _080AA488
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+_080AA488:
+ cmp r2, 0x64
+ ble _080AA492
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA492:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA498: .4byte gBattleAnimArgs
+ thumb_func_end sub_80AA408
+
+ thumb_func_start sub_80AA49C
+sub_80AA49C: @ 80AA49C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080AA4F2
+ adds r1, r0, 0
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080AA4F2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ ble _080AA500
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA500:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA49C
+
+ thumb_func_start sub_80AA508
+sub_80AA508: @ 80AA508
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA52C
+ ldr r1, _080AA528 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080AA580
+ .align 2, 0
+_080AA528: .4byte gBattleAnimArgs
+_080AA52C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ movs r5, 0
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ adds r2, r0, 0
+ strh r2, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x46
+ ble _080AA580
+ ldr r0, _080AA588 @ =sub_80AA49C
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r0, r2, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x26]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ bl __umodsi3
+ strh r0, [r4, 0x34]
+_080AA580:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA588: .4byte sub_80AA49C
+ thumb_func_end sub_80AA508
+
+ thumb_func_start sub_80AA58C
+sub_80AA58C: @ 80AA58C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA5C6
+ ldr r1, _080AA688 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r0, _080AA68C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080AA5C6:
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080AA5DC
+ adds r0, 0xFF
+_080AA5DC:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080AA5EE
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_080AA5EE:
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080AA5FC
+ adds r0, 0x3
+_080AA5FC:
+ asrs r0, 2
+ movs r1, 0x1E
+ subs r1, r0
+ adds r0, r2, 0
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080AA618
+ adds r0, 0x7
+_080AA618:
+ asrs r0, 3
+ movs r1, 0xA
+ subs r1, r0
+ adds r0, r2, 0
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ ble _080AA63C
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080AA63C
+ ldr r0, _080AA690 @ =0x0000ffff
+ strh r0, [r4, 0x32]
+_080AA63C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA650
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080AA650
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080AA650:
+ ldrh r0, [r4, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x34]
+ subs r0, 0x9
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x46
+ bls _080AA694
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080AA6A2
+ .align 2, 0
+_080AA688: .4byte gBattleAnimArgs
+_080AA68C: .4byte gBattleAnimTarget
+_080AA690: .4byte 0x0000ffff
+_080AA694:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080AA6A2:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5A
+ ble _080AA6B0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA6B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA58C
+
+ thumb_func_start sub_80AA6B8
+sub_80AA6B8: @ 80AA6B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA6EC
+ ldr r1, _080AA6E8 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080AA700
+ .align 2, 0
+_080AA6E8: .4byte gBattleAnimArgs
+_080AA6EC:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AA700
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA700:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA6B8
+
+ thumb_func_start sub_80AA708
+sub_80AA708: @ 80AA708
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _080AA720 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080AA724
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+ b _080AA788
+ .align 2, 0
+_080AA720: .4byte gBattleAnimArgs
+_080AA724:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080AA734
+ ldr r4, _080AA730 @ =gBattleAnimAttacker
+ b _080AA736
+ .align 2, 0
+_080AA730: .4byte gBattleAnimAttacker
+_080AA734:
+ ldr r4, _080AA764 @ =gBattleAnimTarget
+_080AA736:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080AA768 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080AA76C
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x20
+ b _080AA770
+ .align 2, 0
+_080AA764: .4byte gBattleAnimTarget
+_080AA768: .4byte gBattleAnimArgs
+_080AA76C:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+_080AA770:
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r0, _080AA790 @ =sub_80AA794
+ str r0, [r5, 0x1C]
+_080AA788:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA790: .4byte sub_80AA794
+ thumb_func_end sub_80AA708
+
+ thumb_func_start sub_80AA794
+sub_80AA794: @ 80AA794
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AA7C4
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080AA7BE
+ ldrh r1, [r2, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080AA7C4
+_080AA7BE:
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA7C4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA794
+
+ thumb_func_start sub_80AA7C8
+sub_80AA7C8: @ 80AA7C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080AA7FC @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080AA800 @ =gTasks
+ adds r4, r0
+ ldr r2, _080AA804 @ =gUnknown_83E4410
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080AA808 @ =sub_80AA80C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA7FC: .4byte gBattleAnimArgs
+_080AA800: .4byte gTasks
+_080AA804: .4byte gUnknown_83E4410
+_080AA808: .4byte sub_80AA80C
+ thumb_func_end sub_80AA7C8
+
+ thumb_func_start sub_80AA80C
+sub_80AA80C: @ 80AA80C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080AA834 @ =gTasks
+ adds r0, r1
+ bl sub_8076308
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AA82C
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AA82C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA834: .4byte gTasks
+ thumb_func_end sub_80AA80C
+
+ thumb_func_start sub_80AA838
+sub_80AA838: @ 80AA838
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080AA84C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AA854
+ ldr r0, _080AA850 @ =gBattleAnimAttacker
+ b _080AA856
+ .align 2, 0
+_080AA84C: .4byte gBattleAnimArgs
+_080AA850: .4byte gBattleAnimAttacker
+_080AA854:
+ ldr r0, _080AA8EC @ =gBattleAnimTarget
+_080AA856:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080AA870
+ ldr r1, _080AA8F0 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080AA870:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r7, _080AA8F0 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r3, [r7, 0x2]
+ adds r0, r3
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x2E]
+ ldrh r1, [r5, 0x20]
+ lsls r1, 3
+ strh r1, [r5, 0x30]
+ lsls r0, 3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080AA8B0
+ adds r0, 0x7
+_080AA8B0:
+ asrs r0, 3
+ strh r0, [r5, 0x34]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080AA8C0
+ adds r0, 0x7
+_080AA8C0:
+ asrs r0, 3
+ strh r0, [r5, 0x36]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, _080AA8F4 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080AA8F8 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080AA8FC @ =sub_80AA900
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA8EC: .4byte gBattleAnimTarget
+_080AA8F0: .4byte gBattleAnimArgs
+_080AA8F4: .4byte 0x000003ff
+_080AA8F8: .4byte 0xfffffc00
+_080AA8FC: .4byte sub_80AA900
+ thumb_func_end sub_80AA838
+
+ thumb_func_start sub_80AA900
+sub_80AA900: @ 80AA900
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r3, [r2, 0x32]
+ adds r1, r3
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080AA934
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA934:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA900
+
+ thumb_func_start sub_80AA938
+sub_80AA938: @ 80AA938
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA95A
+ ldr r0, _080AA994 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080AA95A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080AA978
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8075B48
+_080AA978:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, 0x50
+ cmp r1, r0
+ bne _080AA98C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA98C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA994: .4byte gBattleAnimArgs
+ thumb_func_end sub_80AA938
+
+ thumb_func_start sub_80AA998
+sub_80AA998: @ 80AA998
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080AA9C6
+ movs r5, 0x78
+ strh r5, [r6, 0x20]
+ ldr r4, _080AAA48 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ subs r0, 0xF
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4, 0x2]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x38]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x34]
+_080AA9C6:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r6, 0x30]
+ movs r2, 0x2E
+ ldrsh r0, [r6, r2]
+ lsls r4, r0, 1
+ adds r4, r0
+ ldrh r0, [r6, 0x34]
+ adds r4, r0
+ movs r2, 0xFF
+ ldrh r0, [r6, 0x3A]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3A]
+ ands r4, r2
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r6, 0x24]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl Sin
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r1, 0x4
+ bl Cos
+ ldrh r2, [r6, 0x30]
+ adds r4, r2
+ adds r0, r4
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x38
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080AAA42
+ ldr r0, _080AAA4C @ =sub_80AAA50
+ str r0, [r6, 0x1C]
+ strh r5, [r6, 0x2E]
+ adds r0, r6, 0
+ bl oamt_add_pos2_onto_pos1
+ movs r0, 0x5
+ strh r0, [r6, 0x32]
+ strh r5, [r6, 0x36]
+ strh r5, [r6, 0x34]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080AAA42:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA48: .4byte gBattleAnimArgs
+_080AAA4C: .4byte sub_80AAA50
+ thumb_func_end sub_80AA998
+
+ thumb_func_start sub_80AAA50
+sub_80AAA50: @ 80AAA50
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080AAA6A
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080AAA70 @ =sub_80AAA74
+ str r0, [r1, 0x1C]
+_080AAA6A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA70: .4byte sub_80AAA74
+ thumb_func_end sub_80AAA50
+
+ thumb_func_start sub_80AAA74
+sub_80AAA74: @ 80AAA74
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ strh r0, [r4, 0x26]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ ble _080AAA9E
+ lsls r0, r1, 16
+ cmp r0, 0
+ ble _080AAA9E
+ ldrh r0, [r4, 0x36]
+ subs r1, r0, 0x5
+ strh r1, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+_080AAA9E:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _080AAAD0
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AAAD0:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _080AAADE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AAADE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AAA74
+
+ thumb_func_start sub_80AAAE4
+sub_80AAAE4: @ 80AAAE4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080AAB28 @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AAB30
+ ldr r4, _080AAB2C @ =gBattleAnimAttacker
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAB30
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_8076D9C
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080AAB50
+ .align 2, 0
+_080AAB28: .4byte gBattleTypeFlags
+_080AAB2C: .4byte gBattleAnimAttacker
+_080AAB30:
+ ldr r4, _080AAB70 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+_080AAB50:
+ movs r0, 0xD
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0x48
+ strh r0, [r5, 0x36]
+ ldr r0, _080AAB74 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080AAB78 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB70: .4byte gBattleAnimAttacker
+_080AAB74: .4byte sub_8075590
+_080AAB78: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AAAE4
+
+ thumb_func_start sub_80AAB7C
+sub_80AAB7C: @ 80AAB7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080AAB98 @ =gBattleAnimArgs
+ ldr r1, _080AAB9C @ =gAnimDisableStructPtr
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x10]
+ movs r1, 0x1
+ ands r1, r2
+ strh r1, [r3, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB98: .4byte gBattleAnimArgs
+_080AAB9C: .4byte gAnimDisableStructPtr
+ thumb_func_end sub_80AAB7C
+
+ thumb_func_start update_fury_cutter_counter_copy
+update_fury_cutter_counter_copy: @ 80AABA0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AABB8 @ =gBattleAnimArgs
+ ldr r1, _080AABBC @ =gAnimDisableStructPtr
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x10]
+ strh r1, [r2, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AABB8: .4byte gBattleAnimArgs
+_080AABBC: .4byte gAnimDisableStructPtr
+ thumb_func_end update_fury_cutter_counter_copy
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80DE2C0.s b/asm/battle_anim_effects_3.s
index f3ddeb0b1..74f6ef9fc 100644
--- a/asm/battle_anim_80DE2C0.s
+++ b/asm/battle_anim_effects_3.s
@@ -9,7 +9,7 @@
sub_80DE2C0: @ 80DE2C0
push {lr}
adds r2, r0, 0
- ldr r1, _080DE2E4 @ =gUnknown_2037F02
+ ldr r1, _080DE2E4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r3, [r2, 0x20]
adds r0, r3
@@ -25,7 +25,7 @@ sub_80DE2C0: @ 80DE2C0
ldrh r0, [r1, 0x4]
b _080DE2EC
.align 2, 0
-_080DE2E4: .4byte gUnknown_2037F02
+_080DE2E4: .4byte gBattleAnimArgs
_080DE2E8:
ldrh r0, [r1, 0x4]
negs r0, r0
@@ -89,7 +89,7 @@ sub_80DE34C: @ 80DE34C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _080DE398 @ =gUnknown_2037F1B
+ ldr r6, _080DE398 @ =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8074480
@@ -119,7 +119,7 @@ sub_80DE34C: @ 80DE34C
pop {r0}
bx r0
.align 2, 0
-_080DE398: .4byte gUnknown_2037F1B
+_080DE398: .4byte gBattleAnimTarget
thumb_func_end sub_80DE34C
thumb_func_start sub_80DE39C
@@ -213,7 +213,7 @@ sub_80DE440: @ 80DE440
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, _080DE4CC @ =gUnknown_2037F1B
+ ldr r4, _080DE4CC @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -260,7 +260,7 @@ _080DE49E:
movs r1, 0
adds r2, r3, 0
bl sub_8075A1C
- ldr r0, _080DE4D0 @ =gUnknown_2037F02
+ ldr r0, _080DE4D0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
strh r7, [r5, 0x32]
@@ -275,8 +275,8 @@ _080DE49E:
pop {r0}
bx r0
.align 2, 0
-_080DE4CC: .4byte gUnknown_2037F1B
-_080DE4D0: .4byte gUnknown_2037F02
+_080DE4CC: .4byte gBattleAnimTarget
+_080DE4D0: .4byte gBattleAnimArgs
_080DE4D4: .4byte sub_8075590
_080DE4D8: .4byte DestroyAnimSprite
thumb_func_end sub_80DE440
@@ -642,7 +642,7 @@ _080DE766:
add r0, r9
strh r1, [r0, 0x12]
_080DE788:
- ldr r0, _080DE7AC @ =gUnknown_2037F02
+ ldr r0, _080DE7AC @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080DE7B0 @ =0x0000ffff
cmp r1, r0
@@ -659,7 +659,7 @@ _080DE798:
.align 2, 0
_080DE7A4: .4byte gTasks
_080DE7A8: .4byte gPlttBufferFaded
-_080DE7AC: .4byte gUnknown_2037F02
+_080DE7AC: .4byte gBattleAnimArgs
_080DE7B0: .4byte 0x0000ffff
thumb_func_end sub_80DE718
@@ -770,7 +770,7 @@ _080DE85A:
adds r0, r2
strh r1, [r0, 0x12]
_080DE87E:
- ldr r0, _080DE8A8 @ =gUnknown_2037F02
+ ldr r0, _080DE8A8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080DE8AC @ =0x0000ffff
cmp r1, r0
@@ -789,7 +789,7 @@ _080DE88E:
_080DE89C: .4byte gTasks
_080DE8A0: .4byte gPlttBufferFaded
_080DE8A4: .4byte gPlttBufferUnfaded
-_080DE8A8: .4byte gUnknown_2037F02
+_080DE8A8: .4byte gBattleAnimArgs
_080DE8AC: .4byte 0x0000ffff
thumb_func_end sub_80DE7DC
@@ -800,7 +800,7 @@ sub_80DE8B0: @ 80DE8B0
adds r4, r0, 0
movs r1, 0x1
bl sub_8075160
- ldr r0, _080DE914 @ =gUnknown_2037F1B
+ ldr r0, _080DE914 @ =gBattleAnimTarget
ldrb r0, [r0]
mov r5, sp
adds r5, 0x2
@@ -808,18 +808,18 @@ sub_80DE8B0: @ 80DE8B0
mov r2, sp
adds r3, r5, 0
bl sub_8076D9C
- ldr r0, _080DE918 @ =gUnknown_2037F1A
+ ldr r0, _080DE918 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DE8E4
- ldr r1, _080DE91C @ =gUnknown_2037F02
+ ldr r1, _080DE91C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080DE8E4:
- ldr r1, _080DE91C @ =gUnknown_2037F02
+ ldr r1, _080DE91C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
mov r2, sp
@@ -842,9 +842,9 @@ _080DE8E4:
pop {r0}
bx r0
.align 2, 0
-_080DE914: .4byte gUnknown_2037F1B
-_080DE918: .4byte gUnknown_2037F1A
-_080DE91C: .4byte gUnknown_2037F02
+_080DE914: .4byte gBattleAnimTarget
+_080DE918: .4byte gBattleAnimAttacker
+_080DE91C: .4byte gBattleAnimArgs
_080DE920: .4byte 0x0000ffce
_080DE924: .4byte sub_80DE928
thumb_func_end sub_80DE8B0
@@ -919,7 +919,7 @@ sub_80DE99C: @ 80DE99C
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8074FCC
- ldr r5, _080DE9CC @ =gUnknown_2037F02
+ ldr r5, _080DE9CC @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -937,7 +937,7 @@ sub_80DE99C: @ 80DE99C
pop {r0}
bx r0
.align 2, 0
-_080DE9CC: .4byte gUnknown_2037F02
+_080DE9CC: .4byte gBattleAnimArgs
_080DE9D0: .4byte sub_8074F6C
_080DE9D4: .4byte DestroyAnimSprite
thumb_func_end sub_80DE99C
@@ -952,7 +952,7 @@ sub_80DE9D8: @ 80DE9D8
bne _080DEA38
adds r0, r4, 0
bl sub_8074FCC
- ldr r5, _080DEA14 @ =gUnknown_2037F02
+ ldr r5, _080DEA14 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r5, r2]
adds r0, r4, 0
@@ -961,7 +961,7 @@ sub_80DE9D8: @ 80DE9D8
lsls r0, 24
cmp r0, 0
bne _080DEA2C
- ldr r0, _080DEA18 @ =gUnknown_2037F1A
+ ldr r0, _080DEA18 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -970,8 +970,8 @@ sub_80DE9D8: @ 80DE9D8
ldrh r0, [r5, 0x4]
b _080DEA32
.align 2, 0
-_080DEA14: .4byte gUnknown_2037F02
-_080DEA18: .4byte gUnknown_2037F1A
+_080DEA14: .4byte gBattleAnimArgs
+_080DEA18: .4byte gBattleAnimAttacker
_080DEA1C:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -1061,21 +1061,21 @@ sub_80DEAB4: @ 80DEAB4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080DEAD0 @ =gUnknown_2037F1B
+ ldr r0, _080DEAD0 @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080DEAD8
- ldr r1, _080DEAD4 @ =gUnknown_2037F02
+ ldr r1, _080DEAD4 @ =gBattleAnimArgs
movs r0, 0
b _080DEADC
.align 2, 0
-_080DEAD0: .4byte gUnknown_2037F1B
-_080DEAD4: .4byte gUnknown_2037F02
+_080DEAD0: .4byte gBattleAnimTarget
+_080DEAD4: .4byte gBattleAnimArgs
_080DEAD8:
- ldr r1, _080DEAEC @ =gUnknown_2037F02
+ ldr r1, _080DEAEC @ =gBattleAnimArgs
movs r0, 0x1
_080DEADC:
strh r0, [r1, 0xE]
@@ -1085,7 +1085,7 @@ _080DEADC:
pop {r0}
bx r0
.align 2, 0
-_080DEAEC: .4byte gUnknown_2037F02
+_080DEAEC: .4byte gBattleAnimArgs
thumb_func_end sub_80DEAB4
thumb_func_start sub_80DEAF0
@@ -1097,14 +1097,14 @@ sub_80DEAF0: @ 80DEAF0
ldr r0, [r0]
cmp r0, 0
ble _080DEB0C
- ldr r1, _080DEB08 @ =gUnknown_2037F02
+ ldr r1, _080DEB08 @ =gBattleAnimArgs
movs r0, 0
b _080DEB10
.align 2, 0
_080DEB04: .4byte gUnknown_2037EE8
-_080DEB08: .4byte gUnknown_2037F02
+_080DEB08: .4byte gBattleAnimArgs
_080DEB0C:
- ldr r1, _080DEB1C @ =gUnknown_2037F02
+ ldr r1, _080DEB1C @ =gBattleAnimArgs
movs r0, 0x1
_080DEB10:
strh r0, [r1, 0xE]
@@ -1113,7 +1113,7 @@ _080DEB10:
pop {r0}
bx r0
.align 2, 0
-_080DEB1C: .4byte gUnknown_2037F02
+_080DEB1C: .4byte gBattleAnimArgs
thumb_func_end sub_80DEAF0
thumb_func_start sub_80DEB20
@@ -1303,12 +1303,12 @@ _080DEC8C: .4byte 0x00003f3f
sub_80DEC90: @ 80DEC90
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DED04 @ =gUnknown_2037F02
+ ldr r6, _080DED04 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080DECBC
- ldr r4, _080DED08 @ =gUnknown_2037F1A
+ ldr r4, _080DED08 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8074480
@@ -1358,8 +1358,8 @@ _080DECBC:
movs r0, 0x2
b _080DED1E
.align 2, 0
-_080DED04: .4byte gUnknown_2037F02
-_080DED08: .4byte gUnknown_2037F1A
+_080DED04: .4byte gBattleAnimArgs
+_080DED08: .4byte gBattleAnimAttacker
_080DED0C: .4byte 0x000003ff
_080DED10: .4byte 0xfffffc00
_080DED14: .4byte 0x0000fff4
@@ -1369,7 +1369,7 @@ _080DED18:
ldr r0, _080DED3C @ =0x0000fffe
_080DED1E:
strh r0, [r5, 0x30]
- ldr r1, _080DED40 @ =gUnknown_2037F02
+ ldr r1, _080DED40 @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
movs r2, 0x34
@@ -1386,7 +1386,7 @@ _080DED32:
bx r0
.align 2, 0
_080DED3C: .4byte 0x0000fffe
-_080DED40: .4byte gUnknown_2037F02
+_080DED40: .4byte gBattleAnimArgs
_080DED44: .4byte sub_80DED48
thumb_func_end sub_80DEC90
@@ -1575,18 +1575,18 @@ _080DEEB8: .4byte gUnknown_202298A
sub_80DEEBC: @ 80DEEBC
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DEED0 @ =gUnknown_2037F02
+ ldr r6, _080DEED0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080DEED8
- ldr r4, _080DEED4 @ =gUnknown_2037F1A
+ ldr r4, _080DEED4 @ =gBattleAnimAttacker
b _080DEEDA
.align 2, 0
-_080DEED0: .4byte gUnknown_2037F02
-_080DEED4: .4byte gUnknown_2037F1A
+_080DEED0: .4byte gBattleAnimArgs
+_080DEED4: .4byte gBattleAnimAttacker
_080DEED8:
- ldr r4, _080DEF2C @ =gUnknown_2037F1B
+ ldr r4, _080DEF2C @ =gBattleAnimTarget
_080DEEDA:
ldrb r0, [r4]
movs r1, 0
@@ -1602,7 +1602,7 @@ _080DEEDA:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r2, _080DEF30 @ =gUnknown_2037F02
+ ldr r2, _080DEF30 @ =gBattleAnimArgs
ldrh r0, [r2, 0x4]
strh r0, [r5, 0x26]
movs r3, 0
@@ -1629,8 +1629,8 @@ _080DEF12:
pop {r0}
bx r0
.align 2, 0
-_080DEF2C: .4byte gUnknown_2037F1B
-_080DEF30: .4byte gUnknown_2037F02
+_080DEF2C: .4byte gBattleAnimTarget
+_080DEF30: .4byte gBattleAnimArgs
_080DEF34: .4byte sub_80DEF38
thumb_func_end sub_80DEEBC
@@ -1644,7 +1644,7 @@ sub_80DEF38: @ 80DEF38
movs r1, 0xFF
ands r0, r1
strh r0, [r2, 0x30]
- ldr r1, _080DEF80 @ =gUnknown_825E074
+ ldr r1, _080DEF80 @ =gSineTable
movs r3, 0x30
ldrsh r0, [r2, r3]
lsls r0, 1
@@ -1671,7 +1671,7 @@ sub_80DEF38: @ 80DEF38
bl DestroyAnimSprite
b _080DEF96
.align 2, 0
-_080DEF80: .4byte gUnknown_825E074
+_080DEF80: .4byte gSineTable
_080DEF84:
lsls r0, r1, 16
asrs r0, 16
@@ -1697,19 +1697,19 @@ sub_80DEF9C: @ 80DEF9C
lsls r1, 3
ldr r0, _080DEFBC @ =gTasks
adds r5, r1, r0
- ldr r0, _080DEFC0 @ =gUnknown_2037F02
+ ldr r0, _080DEFC0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DEFC8
- ldr r4, _080DEFC4 @ =gUnknown_2037F1A
+ ldr r4, _080DEFC4 @ =gBattleAnimAttacker
b _080DEFCA
.align 2, 0
_080DEFBC: .4byte gTasks
-_080DEFC0: .4byte gUnknown_2037F02
-_080DEFC4: .4byte gUnknown_2037F1A
+_080DEFC0: .4byte gBattleAnimArgs
+_080DEFC4: .4byte gBattleAnimAttacker
_080DEFC8:
- ldr r4, _080DF010 @ =gUnknown_2037F1B
+ ldr r4, _080DF010 @ =gBattleAnimTarget
_080DEFCA:
ldrb r0, [r4]
bl sub_807492C
@@ -1735,21 +1735,21 @@ _080DEFF4:
strh r0, [r5, 0xE]
movs r0, 0x8
strh r0, [r5, 0x10]
- ldr r1, _080DF014 @ =gUnknown_2037F02
+ ldr r1, _080DF014 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x12]
strh r2, [r5, 0x14]
strh r2, [r5, 0x16]
cmp r7, 0x1
bne _080DF01C
- ldr r0, _080DF018 @ =gUnknown_2022978
+ ldr r0, _080DF018 @ =gBattle_BG1_X
b _080DF01E
.align 2, 0
-_080DF010: .4byte gUnknown_2037F1B
-_080DF014: .4byte gUnknown_2037F02
-_080DF018: .4byte gUnknown_2022978
+_080DF010: .4byte gBattleAnimTarget
+_080DF014: .4byte gBattleAnimArgs
+_080DF018: .4byte gBattle_BG1_X
_080DF01C:
- ldr r0, _080DF03C @ =gUnknown_202297C
+ ldr r0, _080DF03C @ =gBattle_BG2_X
_080DF01E:
ldrh r2, [r0]
strh r2, [r5, 0x18]
@@ -1766,7 +1766,7 @@ _080DF01E:
ldrh r3, [r5, 0x18]
b _080DF044
.align 2, 0
-_080DF03C: .4byte gUnknown_202297C
+_080DF03C: .4byte gBattle_BG2_X
_080DF040:
strh r2, [r5, 0x1E]
ldrh r3, [r5, 0x1A]
@@ -1780,7 +1780,7 @@ _080DF044:
ldrsh r0, [r5, r6]
cmp r1, r0
bgt _080DF07A
- ldr r4, _080DF084 @ =gUnknown_2038700
+ ldr r4, _080DF084 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r4
@@ -1805,7 +1805,7 @@ _080DF07A:
ldr r0, _080DF088 @ =0x04000014
b _080DF08E
.align 2, 0
-_080DF084: .4byte gUnknown_2038700
+_080DF084: .4byte gScanlineEffectRegBuffers
_080DF088: .4byte 0x04000014
_080DF08C:
ldr r0, _080DF0B8 @ =0x04000018
@@ -1822,7 +1822,7 @@ _080DF08E:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldr r0, _080DF0C0 @ =sub_80DF0C4
str r0, [r5]
add sp, 0xC
@@ -1917,7 +1917,7 @@ _080DF148:
ldrsh r0, [r4, r2]
cmp r1, r0
bge _080DF17C
- ldr r5, _080DF1D4 @ =gUnknown_2038700
+ ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1945,7 +1945,7 @@ _080DF17C:
ldrsh r0, [r4, r2]
cmp r1, r0
bgt _080DF1B0
- ldr r5, _080DF1D4 @ =gUnknown_2038700
+ ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1974,7 +1974,7 @@ _080DF1B0:
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080DF1C6
- ldr r1, _080DF1D8 @ =gUnknown_2039600
+ ldr r1, _080DF1D8 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080DF1C6:
@@ -1985,8 +1985,8 @@ _080DF1CC:
pop {r0}
bx r0
.align 2, 0
-_080DF1D4: .4byte gUnknown_2038700
-_080DF1D8: .4byte gUnknown_2039600
+_080DF1D4: .4byte gScanlineEffectRegBuffers
+_080DF1D8: .4byte gScanlineEffect
thumb_func_end sub_80DF0C4
thumb_func_start sub_80DF1DC
@@ -2002,7 +2002,7 @@ sub_80DF1DC: @ 80DF1DC
movs r5, 0
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
- ldr r6, _080DF234 @ =gUnknown_2037F1A
+ ldr r6, _080DF234 @ =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_8074480
@@ -2032,7 +2032,7 @@ sub_80DF1DC: @ 80DF1DC
bx r0
.align 2, 0
_080DF230: .4byte gTasks
-_080DF234: .4byte gUnknown_2037F1A
+_080DF234: .4byte gBattleAnimAttacker
_080DF238: .4byte 0x0000ffec
_080DF23C: .4byte sub_80DF240
thumb_func_end sub_80DF1DC
@@ -2391,7 +2391,7 @@ _080DF4C4:
strh r1, [r5, 0x26]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, _080DF51C @ =gUnknown_2037F1B
+ ldr r4, _080DF51C @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -2412,7 +2412,7 @@ _080DF510:
bx r0
.align 2, 0
_080DF518: .4byte DestroyAnimSprite
-_080DF51C: .4byte gUnknown_2037F1B
+_080DF51C: .4byte gBattleAnimTarget
_080DF520: .4byte sub_8075590
thumb_func_end sub_80DF468
@@ -2488,7 +2488,7 @@ _080DF5A0:
beq _080DF664
b _080DF682
_080DF5AA:
- ldr r4, _080DF5DC @ =gUnknown_2037F1A
+ ldr r4, _080DF5DC @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -2510,7 +2510,7 @@ _080DF5AA:
strh r0, [r5, 0x32]
b _080DF658
.align 2, 0
-_080DF5DC: .4byte gUnknown_2037F1A
+_080DF5DC: .4byte gBattleAnimAttacker
_080DF5E0:
ldrh r0, [r5, 0x30]
adds r0, 0x60
@@ -2602,7 +2602,7 @@ _080DF682:
sub_80DF688: @ 80DF688
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DF6A0 @ =gUnknown_2037F1A
+ ldr r0, _080DF6A0 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -2611,7 +2611,7 @@ sub_80DF688: @ 80DF688
ldr r0, _080DF6A4 @ =0x0000fff0
b _080DF6AC
.align 2, 0
-_080DF6A0: .4byte gUnknown_2037F1A
+_080DF6A0: .4byte gBattleAnimAttacker
_080DF6A4: .4byte 0x0000fff0
_080DF6A8:
movs r0, 0x80
@@ -2636,7 +2636,7 @@ sub_80DF6C0: @ 80DF6C0
ldrh r0, [r4, 0x2E]
adds r0, 0x48
strh r0, [r4, 0x2E]
- ldr r0, _080DF6E0 @ =gUnknown_2037F1A
+ ldr r0, _080DF6E0 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -2647,7 +2647,7 @@ sub_80DF6C0: @ 80DF6C0
asrs r0, 20
b _080DF6EC
.align 2, 0
-_080DF6E0: .4byte gUnknown_2037F1A
+_080DF6E0: .4byte gBattleAnimAttacker
_080DF6E4:
ldrh r0, [r4, 0x2E]
lsls r0, 16
@@ -2947,7 +2947,7 @@ _080DF90A:
movs r0, 0x90
lsls r0, 4
strh r0, [r4, 0x30]
- ldr r0, _080DF930 @ =gUnknown_2037F1A
+ ldr r0, _080DF930 @ =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8074480
@@ -2959,7 +2959,7 @@ _080DF90A:
strh r0, [r4, 0x2E]
b _080DF95C
.align 2, 0
-_080DF930: .4byte gUnknown_2037F1A
+_080DF930: .4byte gBattleAnimAttacker
_080DF934:
ldrh r2, [r4, 0x30]
lsls r1, r2, 16
@@ -3067,7 +3067,7 @@ _080DFA00:
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
- ldr r0, _080DFA24 @ =gUnknown_2037F1A
+ ldr r0, _080DFA24 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80768B0
lsls r0, 24
@@ -3080,7 +3080,7 @@ _080DFA00:
bl SetAnimBgAttribute
b _080DFA32
.align 2, 0
-_080DFA24: .4byte gUnknown_2037F1A
+_080DFA24: .4byte gBattleAnimAttacker
_080DFA28:
movs r0, 0x2
movs r1, 0x2
@@ -3092,13 +3092,13 @@ _080DFA32:
adds r1, r5
lsls r1, 3
adds r1, r0
- ldr r0, _080DFA48 @ =gUnknown_2037F02
+ ldr r0, _080DFA48 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x1C]
b _080DFB00
.align 2, 0
_080DFA44: .4byte gTasks
-_080DFA48: .4byte gUnknown_2037F02
+_080DFA48: .4byte gBattleAnimArgs
_080DFA4C:
lsls r0, r5, 2
adds r0, r5
@@ -3131,9 +3131,9 @@ _080DFA64:
_080DFA84:
b _080DFB50
_080DFA86:
- ldr r6, _080DFAB4 @ =gUnknown_2037F1A
+ ldr r6, _080DFAB4 @ =gBattleAnimAttacker
ldrb r0, [r6]
- ldr r1, _080DFAB8 @ =gUnknown_2037F1B
+ ldr r1, _080DFAB8 @ =gBattleAnimTarget
ldrb r1, [r1]
lsls r4, r5, 2
adds r2, r4, r5
@@ -3151,8 +3151,8 @@ _080DFA86:
movs r1, 0
b _080DFAC6
.align 2, 0
-_080DFAB4: .4byte gUnknown_2037F1A
-_080DFAB8: .4byte gUnknown_2037F1B
+_080DFAB4: .4byte gBattleAnimAttacker
+_080DFAB8: .4byte gBattleAnimTarget
_080DFABC:
ldrb r0, [r6]
bl GetBattlerPosition
@@ -3165,7 +3165,7 @@ _080DFAC6:
adds r2, 0x4
adds r2, r0
ldr r1, _080DFB0C @ =gBattleMonForms
- ldr r0, _080DFB10 @ =gUnknown_2037F1A
+ ldr r0, _080DFB10 @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -3194,7 +3194,7 @@ _080DFB00:
.align 2, 0
_080DFB08: .4byte gMonSpritesGfxPtr
_080DFB0C: .4byte gBattleMonForms
-_080DFB10: .4byte gUnknown_2037F1A
+_080DFB10: .4byte gBattleAnimAttacker
_080DFB14: .4byte 0x04000200
_080DFB18: .4byte gTasks
_080DFB1C:
@@ -3232,7 +3232,7 @@ _080DFB58:
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
- ldr r0, _080DFB7C @ =gUnknown_2037F1A
+ ldr r0, _080DFB7C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80768B0
lsls r0, 24
@@ -3245,7 +3245,7 @@ _080DFB58:
bl SetAnimBgAttribute
b _080DFB8A
.align 2, 0
-_080DFB7C: .4byte gUnknown_2037F1A
+_080DFB7C: .4byte gBattleAnimAttacker
_080DFB80:
movs r0, 0x2
movs r1, 0x2
@@ -3256,7 +3256,7 @@ _080DFB8A:
lsls r0, 24
cmp r0, 0
bne _080DFBC8
- ldr r4, _080DFBD8 @ =gUnknown_2037F1A
+ ldr r4, _080DFBD8 @ =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
@@ -3289,7 +3289,7 @@ _080DFBCE:
pop {r0}
bx r0
.align 2, 0
-_080DFBD8: .4byte gUnknown_2037F1A
+_080DFBD8: .4byte gBattleAnimAttacker
_080DFBDC: .4byte gTasks
_080DFBE0: .4byte gUnknown_2024018
thumb_func_end sub_80DF9BC
@@ -3299,10 +3299,10 @@ c3_80DFBE4: @ 80DFBE4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _080DFC14 @ =gUnknown_2037F02
+ ldr r4, _080DFC14 @ =gBattleAnimArgs
ldr r3, _080DFC18 @ =gSprites
- ldr r2, _080DFC1C @ =gUnknown_2023D44
- ldr r1, _080DFC20 @ =gUnknown_2037F1A
+ ldr r2, _080DFC1C @ =gBattlerSpriteIds
+ ldr r1, _080DFC20 @ =gBattleAnimAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r2, [r1]
@@ -3320,10 +3320,10 @@ c3_80DFBE4: @ 80DFBE4
pop {r0}
bx r0
.align 2, 0
-_080DFC14: .4byte gUnknown_2037F02
+_080DFC14: .4byte gBattleAnimArgs
_080DFC18: .4byte gSprites
-_080DFC1C: .4byte gUnknown_2023D44
-_080DFC20: .4byte gUnknown_2037F1A
+_080DFC1C: .4byte gBattlerSpriteIds
+_080DFC20: .4byte gBattleAnimAttacker
thumb_func_end c3_80DFBE4
thumb_func_start sub_80DFC24
@@ -3332,9 +3332,9 @@ sub_80DFC24: @ 80DFC24
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080DFC48 @ =gUnknown_2037F1A
+ ldr r0, _080DFC48 @ =gBattleAnimAttacker
ldrb r0, [r0]
- ldr r1, _080DFC4C @ =gUnknown_2037F1B
+ ldr r1, _080DFC4C @ =gBattleAnimTarget
ldrb r1, [r1]
movs r2, 0x1
bl sub_8034BF4
@@ -3344,8 +3344,8 @@ sub_80DFC24: @ 80DFC24
pop {r0}
bx r0
.align 2, 0
-_080DFC48: .4byte gUnknown_2037F1A
-_080DFC4C: .4byte gUnknown_2037F1B
+_080DFC48: .4byte gBattleAnimAttacker
+_080DFC4C: .4byte gBattleAnimTarget
thumb_func_end sub_80DFC24
thumb_func_start sub_80DFC50
@@ -3434,7 +3434,7 @@ _080DFCCE:
movs r2, 0
movs r3, 0
bl sub_80730C0
- ldr r1, _080DFD28 @ =gUnknown_2022978
+ ldr r1, _080DFD28 @ =gBattle_BG1_X
ldr r3, _080DFD2C @ =0x0000ffc8
b _080DFD58
.align 2, 0
@@ -3442,31 +3442,31 @@ _080DFD18: .4byte 0x00003f42
_080DFD1C: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap
_080DFD20: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet
_080DFD24: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette
-_080DFD28: .4byte gUnknown_2022978
+_080DFD28: .4byte gBattle_BG1_X
_080DFD2C: .4byte 0x0000ffc8
_080DFD30:
- ldr r0, _080DFD48 @ =gUnknown_2037F1A
+ ldr r0, _080DFD48 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DFD54
- ldr r1, _080DFD4C @ =gUnknown_2022978
+ ldr r1, _080DFD4C @ =gBattle_BG1_X
ldr r2, _080DFD50 @ =0x0000ff79
adds r0, r2, 0
b _080DFD5A
.align 2, 0
-_080DFD48: .4byte gUnknown_2037F1A
-_080DFD4C: .4byte gUnknown_2022978
+_080DFD48: .4byte gBattleAnimAttacker
+_080DFD4C: .4byte gBattle_BG1_X
_080DFD50: .4byte 0x0000ff79
_080DFD54:
- ldr r1, _080DFD80 @ =gUnknown_2022978
+ ldr r1, _080DFD80 @ =gBattle_BG1_X
ldr r3, _080DFD84 @ =0x0000fff6
_080DFD58:
adds r0, r3, 0
_080DFD5A:
strh r0, [r1]
- ldr r1, _080DFD88 @ =gUnknown_202297A
+ ldr r1, _080DFD88 @ =gBattle_BG1_Y
movs r0, 0
strh r0, [r1]
ldr r0, _080DFD8C @ =gTasks
@@ -3474,19 +3474,19 @@ _080DFD5A:
adds r1, r4
lsls r1, 3
adds r1, r0
- ldr r0, _080DFD80 @ =gUnknown_2022978
+ ldr r0, _080DFD80 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r1, 0x1C]
- ldr r0, _080DFD88 @ =gUnknown_202297A
+ ldr r0, _080DFD88 @ =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r1, 0x1E]
ldrh r0, [r1, 0x8]
adds r0, 0x1
b _080DFE66
.align 2, 0
-_080DFD80: .4byte gUnknown_2022978
+_080DFD80: .4byte gBattle_BG1_X
_080DFD84: .4byte 0x0000fff6
-_080DFD88: .4byte gUnknown_202297A
+_080DFD88: .4byte gBattle_BG1_Y
_080DFD8C: .4byte gTasks
_080DFD90:
lsls r0, r4, 2
@@ -3557,7 +3557,7 @@ _080DFDF8:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080DFECA
- ldr r2, _080DFE3C @ =gUnknown_2022978
+ ldr r2, _080DFE3C @ =gBattle_BG1_X
ldr r1, _080DFE40 @ =gUnknown_83FF240
movs r3, 0xC
ldrsh r0, [r4, r3]
@@ -3578,7 +3578,7 @@ _080DFDF8:
strh r0, [r4, 0x8]
b _080DFECA
.align 2, 0
-_080DFE3C: .4byte gUnknown_2022978
+_080DFE3C: .4byte gBattle_BG1_X
_080DFE40: .4byte gUnknown_83FF240
_080DFE44:
movs r0, 0x3
@@ -3629,10 +3629,10 @@ _080DFEA0:
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
- ldr r0, _080DFED4 @ =gUnknown_2022978
+ ldr r0, _080DFED4 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080DFED8 @ =gUnknown_202297A
+ ldr r0, _080DFED8 @ =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -3648,8 +3648,8 @@ _080DFECA:
pop {r0}
bx r0
.align 2, 0
-_080DFED4: .4byte gUnknown_2022978
-_080DFED8: .4byte gUnknown_202297A
+_080DFED4: .4byte gBattle_BG1_X
+_080DFED8: .4byte gBattle_BG1_Y
thumb_func_end sub_80DFC50
thumb_func_start sub_80DFEDC
@@ -3675,7 +3675,7 @@ sub_80DFEDC: @ 80DFEDC
lsls r0, 16
lsrs r5, r0, 16
_080DFF06:
- ldr r4, _080E0000 @ =gUnknown_2037F1A
+ ldr r4, _080E0000 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8074480
@@ -3690,7 +3690,7 @@ _080DFF06:
lsrs r0, 24
adds r0, 0x20
strh r0, [r7, 0x22]
- ldr r1, _080E0004 @ =gUnknown_2037F02
+ ldr r1, _080E0004 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r7, 0x30]
ldrh r0, [r1, 0x2]
@@ -3748,7 +3748,7 @@ _080DFF06:
adds r0, r4, 0
movs r1, 0x2
bl StartSpriteAnim
- ldr r1, _080E0004 @ =gUnknown_2037F02
+ ldr r1, _080E0004 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r5, 0x30]
ldrh r0, [r1, 0x2]
@@ -3794,8 +3794,8 @@ _080DFF06:
pop {r0}
bx r0
.align 2, 0
-_080E0000: .4byte gUnknown_2037F1A
-_080E0004: .4byte gUnknown_2037F02
+_080E0000: .4byte gBattleAnimAttacker
+_080E0004: .4byte gBattleAnimArgs
_080E0008: .4byte gUnknown_83FF26C
_080E000C: .4byte gSprites
_080E0010: .4byte 0x0000ffff
@@ -4076,7 +4076,7 @@ _080E01FC:
movs r2, 0
movs r3, 0
bl sub_80730C0
- ldr r1, _080E025C @ =gUnknown_2022978
+ ldr r1, _080E025C @ =gBattle_BG1_X
ldr r3, _080E0260 @ =0x0000ffc8
adds r0, r3, 0
b _080E02CE
@@ -4086,10 +4086,10 @@ _080E024C: .4byte 0x00000d03
_080E0250: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap
_080E0254: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet
_080E0258: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette
-_080E025C: .4byte gUnknown_2022978
+_080E025C: .4byte gBattle_BG1_X
_080E0260: .4byte 0x0000ffc8
_080E0264:
- ldr r0, _080E02A4 @ =gUnknown_2037F1B
+ ldr r0, _080E02A4 @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerPosition
lsls r0, 24
@@ -4099,7 +4099,7 @@ _080E0264:
lsrs r0, 24
cmp r0, 0x1
bne _080E02B8
- ldr r1, _080E02A8 @ =gUnknown_2022978
+ ldr r1, _080E02A8 @ =gBattle_BG1_X
cmp r4, 0x1
bne _080E0288
ldr r2, _080E02AC @ =0x0000ff65
@@ -4119,33 +4119,33 @@ _080E0292:
_080E029A:
cmp r4, 0x2
bne _080E02D0
- ldr r1, _080E02A8 @ =gUnknown_2022978
+ ldr r1, _080E02A8 @ =gBattle_BG1_X
ldr r2, _080E02B4 @ =0x0000ffec
b _080E02CC
.align 2, 0
-_080E02A4: .4byte gUnknown_2037F1B
-_080E02A8: .4byte gUnknown_2022978
+_080E02A4: .4byte gBattleAnimTarget
+_080E02A8: .4byte gBattle_BG1_X
_080E02AC: .4byte 0x0000ff65
_080E02B0: .4byte 0x0000ff8d
_080E02B4: .4byte 0x0000ffec
_080E02B8:
cmp r4, 0x1
bne _080E02C4
- ldr r1, _080E02F0 @ =gUnknown_2022978
+ ldr r1, _080E02F0 @ =gBattle_BG1_X
ldr r3, _080E02F4 @ =0x0000ff79
adds r0, r3, 0
strh r0, [r1]
_080E02C4:
cmp r4, 0
bne _080E02D0
- ldr r1, _080E02F0 @ =gUnknown_2022978
+ ldr r1, _080E02F0 @ =gBattle_BG1_X
ldr r2, _080E02F8 @ =0x0000fff6
_080E02CC:
adds r0, r2, 0
_080E02CE:
strh r0, [r1]
_080E02D0:
- ldr r1, _080E02FC @ =gUnknown_202297A
+ ldr r1, _080E02FC @ =gBattle_BG1_Y
movs r0, 0
strh r0, [r1]
ldr r0, _080E0300 @ =gTasks
@@ -4153,18 +4153,18 @@ _080E02D0:
adds r1, r6
lsls r1, 3
adds r1, r0
- ldr r0, _080E02F0 @ =gUnknown_2022978
+ ldr r0, _080E02F0 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r1, 0x1C]
- ldr r0, _080E02FC @ =gUnknown_202297A
+ ldr r0, _080E02FC @ =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r1, 0x1E]
b _080E0384
.align 2, 0
-_080E02F0: .4byte gUnknown_2022978
+_080E02F0: .4byte gBattle_BG1_X
_080E02F4: .4byte 0x0000ff79
_080E02F8: .4byte 0x0000fff6
-_080E02FC: .4byte gUnknown_202297A
+_080E02FC: .4byte gBattle_BG1_Y
_080E0300: .4byte gTasks
_080E0304:
ldr r1, _080E0338 @ =gTasks
@@ -4174,14 +4174,14 @@ _080E0304:
adds r5, r0, r1
movs r0, 0
strh r0, [r5, 0xE]
- ldr r0, _080E033C @ =gUnknown_2037F1B
+ ldr r0, _080E033C @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080E0348
- ldr r2, _080E0340 @ =gUnknown_2022978
+ ldr r2, _080E0340 @ =gBattle_BG1_X
ldr r1, _080E0344 @ =gUnknown_83FF284
movs r3, 0xC
ldrsh r0, [r5, r3]
@@ -4194,11 +4194,11 @@ _080E0304:
b _080E035A
.align 2, 0
_080E0338: .4byte gTasks
-_080E033C: .4byte gUnknown_2037F1B
-_080E0340: .4byte gUnknown_2022978
+_080E033C: .4byte gBattleAnimTarget
+_080E0340: .4byte gBattle_BG1_X
_080E0344: .4byte gUnknown_83FF284
_080E0348:
- ldr r2, _080E0378 @ =gUnknown_2022978
+ ldr r2, _080E0378 @ =gBattle_BG1_X
ldr r1, _080E037C @ =gUnknown_83FF284
movs r3, 0xC
ldrsh r0, [r5, r3]
@@ -4223,7 +4223,7 @@ _080E035A:
strh r0, [r1, 0x8]
b _080E0476
.align 2, 0
-_080E0378: .4byte gUnknown_2022978
+_080E0378: .4byte gBattle_BG1_X
_080E037C: .4byte gUnknown_83FF284
_080E0380: .4byte gTasks
_080E0384:
@@ -4332,10 +4332,10 @@ _080E044C:
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
- ldr r0, _080E0480 @ =gUnknown_2022978
+ ldr r0, _080E0480 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080E0484 @ =gUnknown_202297A
+ ldr r0, _080E0484 @ =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -4351,8 +4351,8 @@ _080E0476:
pop {r0}
bx r0
.align 2, 0
-_080E0480: .4byte gUnknown_2022978
-_080E0484: .4byte gUnknown_202297A
+_080E0480: .4byte gBattle_BG1_X
+_080E0484: .4byte gBattle_BG1_Y
thumb_func_end sub_80E017C
thumb_func_start sub_80E0488
@@ -4426,7 +4426,7 @@ _080E04FE:
ldrh r0, [r4, 0x32]
adds r0, 0x80
strh r0, [r4, 0x32]
- ldr r0, _080E052C @ =gUnknown_2037F1A
+ ldr r0, _080E052C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -4438,7 +4438,7 @@ _080E04FE:
negs r0, r0
b _080E0536
.align 2, 0
-_080E052C: .4byte gUnknown_2037F1A
+_080E052C: .4byte gBattleAnimAttacker
_080E0530:
ldrh r0, [r4, 0x30]
lsls r0, 16
@@ -4473,7 +4473,7 @@ sub_80E0558: @ 80E0558
lsls r0, 3
ldr r1, _080E057C @ =gTasks
adds r4, r0, r1
- ldr r5, _080E0580 @ =gUnknown_2037F02
+ ldr r5, _080E0580 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -4483,7 +4483,7 @@ sub_80E0558: @ 80E0558
b _080E0618
.align 2, 0
_080E057C: .4byte gTasks
-_080E0580: .4byte gUnknown_2037F02
+_080E0580: .4byte gBattleAnimArgs
_080E0584:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -4531,12 +4531,12 @@ _080E059C:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080E05E8
- ldr r0, _080E05E4 @ =gUnknown_2037F1A
+ ldr r0, _080E05E4 @ =gBattleAnimAttacker
b _080E05EA
.align 2, 0
-_080E05E4: .4byte gUnknown_2037F1A
+_080E05E4: .4byte gBattleAnimAttacker
_080E05E8:
- ldr r0, _080E0620 @ =gUnknown_2037F1B
+ ldr r0, _080E0620 @ =gBattleAnimTarget
_080E05EA:
ldrb r0, [r0]
bl GetBattlerSide
@@ -4565,7 +4565,7 @@ _080E0618:
pop {r0}
bx r0
.align 2, 0
-_080E0620: .4byte gUnknown_2037F1B
+_080E0620: .4byte gBattleAnimTarget
_080E0624: .4byte sub_80E0628
thumb_func_end sub_80E0558
@@ -4754,7 +4754,7 @@ _080E0788:
sub_80E0790: @ 80E0790
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E07AC @ =gUnknown_2037F1A
+ ldr r0, _080E07AC @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -4762,16 +4762,16 @@ sub_80E0790: @ 80E0790
cmp r0, 0
bne _080E07B4
strh r0, [r4, 0x20]
- ldr r1, _080E07B0 @ =gUnknown_2037F02
+ ldr r1, _080E07B0 @ =gBattleAnimArgs
ldrh r0, [r1]
b _080E07BE
.align 2, 0
-_080E07AC: .4byte gUnknown_2037F1A
-_080E07B0: .4byte gUnknown_2037F02
+_080E07AC: .4byte gBattleAnimAttacker
+_080E07B0: .4byte gBattleAnimArgs
_080E07B4:
movs r0, 0xF0
strh r0, [r4, 0x20]
- ldr r1, _080E07D8 @ =gUnknown_2037F02
+ ldr r1, _080E07D8 @ =gBattleAnimArgs
ldrh r0, [r1]
subs r0, 0x1E
_080E07BE:
@@ -4787,7 +4787,7 @@ _080E07BE:
pop {r0}
bx r0
.align 2, 0
-_080E07D8: .4byte gUnknown_2037F02
+_080E07D8: .4byte gBattleAnimArgs
_080E07DC: .4byte sub_80E07E0
thumb_func_end sub_80E0790
@@ -4798,7 +4798,7 @@ sub_80E07E0: @ 80E07E0
ldrh r0, [r4, 0x2E]
adds r0, 0x3
strh r0, [r4, 0x2E]
- ldr r0, _080E0820 @ =gUnknown_2037F1A
+ ldr r0, _080E0820 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -4824,7 +4824,7 @@ _080E0812:
bl Sin
b _080E0848
.align 2, 0
-_080E0820: .4byte gUnknown_2037F1A
+_080E0820: .4byte gBattleAnimAttacker
_080E0824:
ldrh r1, [r4, 0x20]
subs r1, 0x5
@@ -4872,7 +4872,7 @@ sub_80E0850: @ 80E0850
movs r0, 0x80
lsls r0, 4
strh r0, [r4, 0x24]
- ldr r0, _080E089C @ =gUnknown_2037F02
+ ldr r0, _080E089C @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
lsls r0, 24
@@ -4887,7 +4887,7 @@ sub_80E0850: @ 80E0850
bx r0
.align 2, 0
_080E0898: .4byte gTasks
-_080E089C: .4byte gUnknown_2037F02
+_080E089C: .4byte gBattleAnimArgs
_080E08A0: .4byte sub_80E08A4
thumb_func_end sub_80E0850
@@ -5108,12 +5108,12 @@ sub_80E0A3C: @ 80E0A3C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080E0A9C
- ldr r6, _080E0A94 @ =gUnknown_2037F02
+ ldr r6, _080E0A94 @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r6, r2]
cmp r0, 0
bne _080E0A70
- ldr r4, _080E0A98 @ =gUnknown_2037F1A
+ ldr r4, _080E0A98 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -5146,8 +5146,8 @@ _080E0A70:
strh r0, [r5, 0x2E]
b _080E0AFA
.align 2, 0
-_080E0A94: .4byte gUnknown_2037F02
-_080E0A98: .4byte gUnknown_2037F1A
+_080E0A94: .4byte gBattleAnimArgs
+_080E0A98: .4byte gBattleAnimAttacker
_080E0A9C:
ldrh r1, [r5, 0x30]
lsls r0, r1, 16
@@ -5218,20 +5218,20 @@ sub_80E0B00: @ 80E0B00
ldrsh r0, [r2, r1]
cmp r0, 0
bne _080E0C0C
- ldr r0, _080E0B34 @ =gUnknown_2037F02
+ ldr r0, _080E0B34 @ =gBattleAnimArgs
movs r3, 0
ldrsh r1, [r0, r3]
mov r8, r0
cmp r1, 0
bne _080E0B3C
- ldr r0, _080E0B38 @ =gUnknown_2037F1A
+ ldr r0, _080E0B38 @ =gBattleAnimAttacker
b _080E0B3E
.align 2, 0
_080E0B30: .4byte gTasks
-_080E0B34: .4byte gUnknown_2037F02
-_080E0B38: .4byte gUnknown_2037F1A
+_080E0B34: .4byte gBattleAnimArgs
+_080E0B38: .4byte gBattleAnimAttacker
_080E0B3C:
- ldr r0, _080E0B78 @ =gUnknown_2037F1B
+ ldr r0, _080E0B78 @ =gBattleAnimTarget
_080E0B3E:
ldrb r0, [r0]
strh r0, [r2, 0x1E]
@@ -5261,7 +5261,7 @@ _080E0B3E:
lsls r2, r5, 4
b _080E0BE8
.align 2, 0
-_080E0B78: .4byte gUnknown_2037F1B
+_080E0B78: .4byte gBattleAnimTarget
_080E0B7C: .4byte gTasks
_080E0B80:
cmp r0, 0x2
@@ -5443,7 +5443,7 @@ _080E0CDA:
subs r0, r1
_080E0CE2:
strh r0, [r4, 0x30]
- ldr r0, _080E0CF4 @ =gUnknown_2037F02
+ ldr r0, _080E0CF4 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x32]
lsls r0, 16
@@ -5452,7 +5452,7 @@ _080E0CE2:
ldr r0, _080E0CF8 @ =0x0000fff8
b _080E0CFE
.align 2, 0
-_080E0CF4: .4byte gUnknown_2037F02
+_080E0CF4: .4byte gBattleAnimArgs
_080E0CF8: .4byte 0x0000fff8
_080E0CFC:
movs r0, 0xF8
@@ -5546,7 +5546,7 @@ sub_80E0D74: @ 80E0D74
ldrh r1, [r4]
movs r0, 0x44
bl SetGpuReg
- ldr r0, _080E0DE4 @ =gUnknown_2037F02
+ ldr r0, _080E0DE4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
adds r0, r5, 0
@@ -5574,7 +5574,7 @@ sub_80E0D74: @ 80E0D74
_080E0DD8: .4byte 0x00001f3f
_080E0DDC: .4byte gUnknown_2022984
_080E0DE0: .4byte gUnknown_2022986
-_080E0DE4: .4byte gUnknown_2037F02
+_080E0DE4: .4byte gBattleAnimArgs
_080E0DE8: .4byte sub_80E0DEC
thumb_func_end sub_80E0D74
@@ -5672,7 +5672,7 @@ _080E0E90: .4byte 0x00003f3f
sub_80E0E94: @ 80E0E94
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E0ED0 @ =gUnknown_2037F1A
+ ldr r5, _080E0ED0 @ =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8074480
@@ -5685,7 +5685,7 @@ sub_80E0E94: @ 80E0E94
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r1, _080E0ED4 @ =gUnknown_2037F02
+ ldr r1, _080E0ED4 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -5698,8 +5698,8 @@ sub_80E0E94: @ 80E0E94
pop {r0}
bx r0
.align 2, 0
-_080E0ED0: .4byte gUnknown_2037F1A
-_080E0ED4: .4byte gUnknown_2037F02
+_080E0ED0: .4byte gBattleAnimAttacker
+_080E0ED4: .4byte gBattleAnimArgs
_080E0ED8: .4byte sub_80E0EDC
thumb_func_end sub_80E0E94
@@ -5733,15 +5733,15 @@ sub_80E0EDC: @ 80E0EDC
cmp r0, 0xC3
ble _080E0F28
_080E0F16:
- ldr r0, _080E0F24 @ =gUnknown_2037F1A
+ ldr r0, _080E0F24 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_807685C
subs r0, 0x1
b _080E0F32
.align 2, 0
-_080E0F24: .4byte gUnknown_2037F1A
+_080E0F24: .4byte gBattleAnimAttacker
_080E0F28:
- ldr r0, _080E0F74 @ =gUnknown_2037F1A
+ ldr r0, _080E0F74 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_807685C
adds r0, 0x1
@@ -5779,7 +5779,7 @@ _080E0F32:
strh r0, [r4, 0x38]
b _080E0FA8
.align 2, 0
-_080E0F74: .4byte gUnknown_2037F1A
+_080E0F74: .4byte gBattleAnimAttacker
_080E0F78:
cmp r2, 0x1
bne _080E0FA8
@@ -5826,7 +5826,7 @@ sub_80E0FB8: @ 80E0FB8
str r0, [sp, 0x18]
movs r0, 0
bl GetAnimBankSpriteId
- ldr r0, _080E1040 @ =gUnknown_2037F1A
+ ldr r0, _080E1040 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -5835,7 +5835,7 @@ sub_80E0FB8: @ 80E0FB8
movs r0, 0
str r0, [sp, 0x1C]
ldr r6, _080E1044 @ =gBattlerPartyIndexes
- ldr r4, _080E1048 @ =gUnknown_2037F1B
+ ldr r4, _080E1048 @ =gBattleAnimTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -5878,9 +5878,9 @@ sub_80E0FB8: @ 80E0FB8
adds r0, r7
b _080E1062
.align 2, 0
-_080E1040: .4byte gUnknown_2037F1A
+_080E1040: .4byte gBattleAnimAttacker
_080E1044: .4byte gBattlerPartyIndexes
-_080E1048: .4byte gUnknown_2037F1B
+_080E1048: .4byte gBattleAnimTarget
_080E104C: .4byte gPlayerParty
_080E1050: .4byte gUnknown_2024018
_080E1054:
@@ -5909,7 +5909,7 @@ _080E107C:
movs r2, 0x1
str r2, [sp, 0x1C]
ldr r6, _080E10E0 @ =gBattlerPartyIndexes
- ldr r4, _080E10E4 @ =gUnknown_2037F1B
+ ldr r4, _080E10E4 @ =gBattleAnimTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -5954,7 +5954,7 @@ _080E107C:
b _080E1100
.align 2, 0
_080E10E0: .4byte gBattlerPartyIndexes
-_080E10E4: .4byte gUnknown_2037F1B
+_080E10E4: .4byte gBattleAnimTarget
_080E10E8: .4byte gEnemyParty
_080E10EC: .4byte gUnknown_2024018
_080E10F0: .4byte gPlayerParty
@@ -5977,12 +5977,12 @@ _080E110E:
ldr r3, _080E11FC @ =0x0000ffec
mov r8, r3
_080E1112:
- ldr r0, _080E1200 @ =gUnknown_2037F1A
+ ldr r0, _080E1200 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_8076884
lsls r0, 24
lsrs r7, r0, 24
- ldr r5, _080E1200 @ =gUnknown_2037F1A
+ ldr r5, _080E1200 @ =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8074480
@@ -6007,7 +6007,7 @@ _080E1112:
str r3, [sp, 0x8]
mov r0, r9
str r0, [sp, 0xC]
- ldr r0, _080E1204 @ =gUnknown_2037F1B
+ ldr r0, _080E1204 @ =gBattleAnimTarget
ldrb r0, [r0]
str r0, [sp, 0x10]
movs r0, 0x1
@@ -6089,8 +6089,8 @@ _080E1112:
bx r0
.align 2, 0
_080E11FC: .4byte 0x0000ffec
-_080E1200: .4byte gUnknown_2037F1A
-_080E1204: .4byte gUnknown_2037F1B
+_080E1200: .4byte gBattleAnimAttacker
+_080E1204: .4byte gBattleAnimTarget
_080E1208: .4byte gSprites
_080E120C: .4byte 0x00007fff
_080E1210: .4byte gTasks
@@ -6222,19 +6222,19 @@ sub_80E12F8: @ 80E12F8
lsls r1, 3
ldr r0, _080E1318 @ =gTasks
adds r4, r1, r0
- ldr r0, _080E131C @ =gUnknown_2037F02
+ ldr r0, _080E131C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080E1324
- ldr r0, _080E1320 @ =gUnknown_2037F1A
+ ldr r0, _080E1320 @ =gBattleAnimAttacker
b _080E1326
.align 2, 0
_080E1318: .4byte gTasks
-_080E131C: .4byte gUnknown_2037F02
-_080E1320: .4byte gUnknown_2037F1A
+_080E131C: .4byte gBattleAnimArgs
+_080E1320: .4byte gBattleAnimAttacker
_080E1324:
- ldr r0, _080E13A4 @ =gUnknown_2037F1B
+ ldr r0, _080E13A4 @ =gBattleAnimTarget
_080E1326:
ldrb r5, [r0]
movs r6, 0
@@ -6274,7 +6274,7 @@ _080E136C:
ldrh r0, [r4, 0x22]
adds r0, 0x42
strh r0, [r4, 0x24]
- ldr r0, _080E13A8 @ =gUnknown_2037F02
+ ldr r0, _080E13A8 @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
lsls r0, 24
@@ -6291,31 +6291,31 @@ _080E136C:
ldr r1, _080E13B0 @ =0x00003f42
movs r0, 0x50
bl SetGpuReg
- ldr r0, _080E13B4 @ =gUnknown_2022978
+ ldr r0, _080E13B4 @ =gBattle_BG1_X
ldrh r5, [r0]
- ldr r0, _080E13B8 @ =gUnknown_202297A
+ ldr r0, _080E13B8 @ =gBattle_BG1_Y
b _080E13CE
.align 2, 0
-_080E13A4: .4byte gUnknown_2037F1B
-_080E13A8: .4byte gUnknown_2037F02
+_080E13A4: .4byte gBattleAnimTarget
+_080E13A8: .4byte gBattleAnimArgs
_080E13AC: .4byte 0x04000014
_080E13B0: .4byte 0x00003f42
-_080E13B4: .4byte gUnknown_2022978
-_080E13B8: .4byte gUnknown_202297A
+_080E13B4: .4byte gBattle_BG1_X
+_080E13B8: .4byte gBattle_BG1_Y
_080E13BC:
ldr r0, _080E1434 @ =0x04000018
str r0, [sp]
ldr r1, _080E1438 @ =0x00003f44
movs r0, 0x50
bl SetGpuReg
- ldr r0, _080E143C @ =gUnknown_202297C
+ ldr r0, _080E143C @ =gBattle_BG2_X
ldrh r5, [r0]
- ldr r0, _080E1440 @ =gUnknown_202297E
+ ldr r0, _080E1440 @ =gBattle_BG2_Y
_080E13CE:
ldrh r3, [r0]
movs r7, 0
movs r2, 0
- ldr r6, _080E1444 @ =gUnknown_2038700
+ ldr r6, _080E1444 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r6
@@ -6356,7 +6356,7 @@ _080E13DE:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldr r0, _080E144C @ =sub_80E1450
str r0, [r4]
add sp, 0xC
@@ -6366,9 +6366,9 @@ _080E13DE:
.align 2, 0
_080E1434: .4byte 0x04000018
_080E1438: .4byte 0x00003f44
-_080E143C: .4byte gUnknown_202297C
-_080E1440: .4byte gUnknown_202297E
-_080E1444: .4byte gUnknown_2038700
+_080E143C: .4byte gBattle_BG2_X
+_080E1440: .4byte gBattle_BG2_Y
+_080E1444: .4byte gScanlineEffectRegBuffers
_080E1448: .4byte 0xa6600001
_080E144C: .4byte sub_80E1450
thumb_func_end sub_80E12F8
@@ -6394,20 +6394,20 @@ sub_80E1450: @ 80E1450
lsrs r0, 24
cmp r0, 0x1
bne _080E1490
- ldr r0, _080E1488 @ =gUnknown_2022978
+ ldr r0, _080E1488 @ =gBattle_BG1_X
ldrh r0, [r0]
str r0, [sp, 0x4]
- ldr r0, _080E148C @ =gUnknown_202297A
+ ldr r0, _080E148C @ =gBattle_BG1_Y
b _080E1498
.align 2, 0
_080E1484: .4byte gTasks
-_080E1488: .4byte gUnknown_2022978
-_080E148C: .4byte gUnknown_202297A
+_080E1488: .4byte gBattle_BG1_X
+_080E148C: .4byte gBattle_BG1_Y
_080E1490:
- ldr r0, _080E14B0 @ =gUnknown_202297C
+ ldr r0, _080E14B0 @ =gBattle_BG2_X
ldrh r0, [r0]
str r0, [sp, 0x4]
- ldr r0, _080E14B4 @ =gUnknown_202297E
+ ldr r0, _080E14B4 @ =gBattle_BG2_Y
_080E1498:
ldrh r0, [r0]
str r0, [sp, 0x8]
@@ -6423,8 +6423,8 @@ _080E14A6:
beq _080E14C6
b _080E16F4
.align 2, 0
-_080E14B0: .4byte gUnknown_202297C
-_080E14B4: .4byte gUnknown_202297E
+_080E14B0: .4byte gBattle_BG2_X
+_080E14B4: .4byte gBattle_BG2_Y
_080E14B8:
cmp r0, 0x2
bne _080E14BE
@@ -6480,7 +6480,7 @@ _080E14C6:
ldrsh r0, [r6, r3]
cmp r1, r0
ble _080E15E6
- ldr r0, _080E163C @ =gUnknown_2039600
+ ldr r0, _080E163C @ =gScanlineEffect
mov r10, r0
ldr r1, [sp, 0x4]
lsls r0, r1, 16
@@ -6501,7 +6501,7 @@ _080E1536:
subs r0, r1
lsls r0, 7
adds r2, r0
- ldr r0, _080E1640 @ =gUnknown_2038700
+ ldr r0, _080E1640 @ =gScanlineEffectRegBuffers
adds r2, r0
lsls r4, 16
asrs r4, 16
@@ -6519,7 +6519,7 @@ _080E1536:
subs r0, r1
lsls r0, 7
adds r3, r0
- ldr r1, _080E1640 @ =gUnknown_2038700
+ ldr r1, _080E1640 @ =gScanlineEffectRegBuffers
adds r3, r1
lsls r1, r7, 16
asrs r1, 16
@@ -6529,7 +6529,7 @@ _080E1536:
lsls r2, r7, 16
asrs r2, 16
lsls r0, r2, 1
- ldr r7, _080E1644 @ =gUnknown_825E074
+ ldr r7, _080E1644 @ =gSineTable
adds r0, r7
ldrh r0, [r0]
lsls r0, 16
@@ -6583,7 +6583,7 @@ _080E15E6:
lsls r1, r2, 17
cmp r1, 0
blt _080E1612
- ldr r4, _080E1640 @ =gUnknown_2038700
+ ldr r4, _080E1640 @ =gScanlineEffectRegBuffers
ldr r7, [sp, 0x4]
lsls r0, r7, 16
asrs r0, 16
@@ -6625,9 +6625,9 @@ _080E1612:
strh r0, [r6, 0xE]
b _080E1652
.align 2, 0
-_080E163C: .4byte gUnknown_2039600
-_080E1640: .4byte gUnknown_2038700
-_080E1644: .4byte gUnknown_825E074
+_080E163C: .4byte gScanlineEffect
+_080E1640: .4byte gScanlineEffectRegBuffers
+_080E1644: .4byte gSineTable
_080E1648: .4byte 0xffff0000
_080E164C:
ldrh r0, [r6, 0x10]
@@ -6667,14 +6667,14 @@ _080E1684:
asrs r0, 16
cmp r0, 0xC
ble _080E16F4
- ldr r1, _080E16A0 @ =gUnknown_2039600
+ ldr r1, _080E16A0 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0
strh r0, [r6, 0xC]
b _080E16E6
.align 2, 0
-_080E16A0: .4byte gUnknown_2039600
+_080E16A0: .4byte gScanlineEffect
_080E16A4:
ldrh r0, [r6, 0xC]
adds r0, 0x1
@@ -6741,7 +6741,7 @@ sub_80E1704: @ 80E1704
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _080E1740 @ =gUnknown_2037F02
+ ldr r0, _080E1740 @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
adds r1, r0, 0
@@ -6758,7 +6758,7 @@ sub_80E1704: @ 80E1704
bx r0
.align 2, 0
_080E173C: .4byte gTasks
-_080E1740: .4byte gUnknown_2037F02
+_080E1740: .4byte gBattleAnimArgs
_080E1744: .4byte gUnknown_83FF3D0
_080E1748: .4byte sub_80E174C
thumb_func_end sub_80E1704
@@ -6921,7 +6921,7 @@ sub_80E186C: @ 80E186C
ldrh r6, [r4, 0x20]
ldrh r5, [r4, 0x22]
bl sub_8074FCC
- ldr r0, _080E18B4 @ =gUnknown_2037F02
+ ldr r0, _080E18B4 @ =gBattleAnimArgs
ldrb r1, [r0]
adds r0, r4, 0
bl StartSpriteAffineAnim
@@ -6948,7 +6948,7 @@ sub_80E186C: @ 80E186C
pop {r0}
bx r0
.align 2, 0
-_080E18B4: .4byte gUnknown_2037F02
+_080E18B4: .4byte gBattleAnimArgs
_080E18B8: .4byte sub_80E18BC
thumb_func_end sub_80E186C
@@ -7012,13 +7012,13 @@ _080E1922:
sub_80E1928: @ 80E1928
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080E1980 @ =gUnknown_2037F02
+ ldr r6, _080E1980 @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x2E]
ldrb r1, [r6]
adds r0, r5, 0
bl StartSpriteAffineAnim
- ldr r0, _080E1984 @ =gUnknown_2037F1B
+ ldr r0, _080E1984 @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -7028,7 +7028,7 @@ sub_80E1928: @ 80E1928
negs r0, r0
strh r0, [r6, 0x2]
_080E194E:
- ldr r4, _080E1988 @ =gUnknown_2037F1A
+ ldr r4, _080E1988 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -7051,9 +7051,9 @@ _080E194E:
pop {r0}
bx r0
.align 2, 0
-_080E1980: .4byte gUnknown_2037F02
-_080E1984: .4byte gUnknown_2037F1B
-_080E1988: .4byte gUnknown_2037F1A
+_080E1980: .4byte gBattleAnimArgs
+_080E1984: .4byte gBattleAnimTarget
+_080E1988: .4byte gBattleAnimAttacker
_080E198C: .4byte sub_80B1D3C
thumb_func_end sub_80E1928
@@ -7441,13 +7441,13 @@ sub_80E1C48: @ 80E1C48
lsls r0, 3
mov r1, r8
adds r4, r0, r1
- ldr r1, _080E1CAC @ =gUnknown_2023D44
- ldr r2, _080E1CB0 @ =gUnknown_2037F1A
+ ldr r1, _080E1CAC @ =gBattlerSpriteIds
+ ldr r2, _080E1CB0 @ =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x26]
- ldr r5, _080E1CB4 @ =gUnknown_2037F02
+ ldr r5, _080E1CB4 @ =gBattleAnimArgs
ldrh r0, [r5]
strh r0, [r4, 0x24]
ldrh r0, [r5]
@@ -7478,9 +7478,9 @@ _080E1C8C:
b _080E1D2C
.align 2, 0
_080E1CA8: .4byte gTasks
-_080E1CAC: .4byte gUnknown_2023D44
-_080E1CB0: .4byte gUnknown_2037F1A
-_080E1CB4: .4byte gUnknown_2037F02
+_080E1CAC: .4byte gBattlerSpriteIds
+_080E1CB0: .4byte gBattleAnimAttacker
+_080E1CB4: .4byte gBattleAnimArgs
_080E1CB8: .4byte 0xffff8000
_080E1CBC:
movs r7, 0x2
@@ -7503,7 +7503,7 @@ _080E1CD8:
orrs r0, r1
_080E1CE0:
strh r0, [r4, 0xC]
- ldr r0, _080E1D0C @ =gUnknown_2037F02
+ ldr r0, _080E1D0C @ =gBattleAnimArgs
movs r3, 0x4
ldrsh r1, [r0, r3]
movs r2, 0x80
@@ -7523,7 +7523,7 @@ _080E1CE0:
b _080E1D2A
.align 2, 0
_080E1D08: .4byte 0xffff8000
-_080E1D0C: .4byte gUnknown_2037F02
+_080E1D0C: .4byte gBattleAnimArgs
_080E1D10: .4byte gTasks
_080E1D14: .4byte 0x00007fff
_080E1D18:
@@ -7572,7 +7572,7 @@ sub_80E1D5C: @ 80E1D5C
lsls r0, 3
ldr r1, _080E1D94 @ =gTasks
adds r5, r0, r1
- ldr r4, _080E1D98 @ =gUnknown_2037F02
+ ldr r4, _080E1D98 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -7590,14 +7590,14 @@ _080E1D7C:
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080E1DA0
- ldr r0, _080E1D9C @ =gUnknown_2037F1A
+ ldr r0, _080E1D9C @ =gBattleAnimAttacker
b _080E1DA2
.align 2, 0
_080E1D94: .4byte gTasks
-_080E1D98: .4byte gUnknown_2037F02
-_080E1D9C: .4byte gUnknown_2037F1A
+_080E1D98: .4byte gBattleAnimArgs
+_080E1D9C: .4byte gBattleAnimAttacker
_080E1DA0:
- ldr r0, _080E1DF0 @ =gUnknown_2037F1B
+ ldr r0, _080E1DF0 @ =gBattleAnimTarget
_080E1DA2:
ldrb r4, [r0]
adds r0, r4, 0
@@ -7617,7 +7617,7 @@ _080E1DA2:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
- ldr r0, _080E1DF4 @ =gUnknown_2037F02
+ ldr r0, _080E1DF4 @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
adds r1, r0, 0
@@ -7633,8 +7633,8 @@ _080E1DA2:
pop {r0}
bx r0
.align 2, 0
-_080E1DF0: .4byte gUnknown_2037F1B
-_080E1DF4: .4byte gUnknown_2037F02
+_080E1DF0: .4byte gBattleAnimTarget
+_080E1DF4: .4byte gBattleAnimArgs
_080E1DF8: .4byte gUnknown_83FF52C
_080E1DFC: .4byte sub_80E1E00
thumb_func_end sub_80E1D5C
@@ -7888,7 +7888,7 @@ sub_80E1FC4: @ 80E1FC4
adds r4, r1
movs r0, 0
strh r0, [r4, 0x8]
- ldr r1, _080E2010 @ =gUnknown_2037F02
+ ldr r1, _080E2010 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xA]
ldrb r0, [r1]
@@ -7915,7 +7915,7 @@ sub_80E1FC4: @ 80E1FC4
bx r0
.align 2, 0
_080E200C: .4byte gTasks
-_080E2010: .4byte gUnknown_2037F02
+_080E2010: .4byte gBattleAnimArgs
_080E2014: .4byte gSprites
_080E2018: .4byte sub_80E201C
thumb_func_end sub_80E1FC4
@@ -7983,9 +7983,9 @@ sub_80E2084: @ 80E2084
lsrs r0, 24
movs r2, 0xD0
lsls r2, 1
- ldr r1, _080E20C0 @ =gUnknown_2037F1A
+ ldr r1, _080E20C0 @ =gBattleAnimAttacker
ldrb r3, [r1]
- ldr r1, _080E20C4 @ =gUnknown_2037F02
+ ldr r1, _080E20C4 @ =gBattleAnimArgs
ldrb r1, [r1]
str r1, [sp]
movs r1, 0xA
@@ -8006,8 +8006,8 @@ sub_80E2084: @ 80E2084
pop {r0}
bx r0
.align 2, 0
-_080E20C0: .4byte gUnknown_2037F1A
-_080E20C4: .4byte gUnknown_2037F02
+_080E20C0: .4byte gBattleAnimAttacker
+_080E20C4: .4byte gBattleAnimArgs
_080E20C8: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_sheet
_080E20CC: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_tilemap
_080E20D0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette
@@ -8017,14 +8017,14 @@ _080E20D0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette
sub_80E20D4: @ 80E20D4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080E212C @ =gUnknown_2037F1A
+ ldr r6, _080E212C @ =gBattleAnimAttacker
ldrb r0, [r6]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080E20F0
- ldr r1, _080E2130 @ =gUnknown_2037F02
+ ldr r1, _080E2130 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -8033,7 +8033,7 @@ _080E20F0:
movs r1, 0
bl sub_8074480
lsls r0, 24
- ldr r4, _080E2130 @ =gUnknown_2037F02
+ ldr r4, _080E2130 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -8057,8 +8057,8 @@ _080E20F0:
strh r0, [r5, 0x30]
b _080E2160
.align 2, 0
-_080E212C: .4byte gUnknown_2037F1A
-_080E2130: .4byte gUnknown_2037F02
+_080E212C: .4byte gBattleAnimAttacker
+_080E2130: .4byte gBattleAnimArgs
_080E2134: .4byte 0x0000fd80
_080E2138:
cmp r0, 0x1
@@ -8082,7 +8082,7 @@ _080E2152:
lsls r0, 2
strh r0, [r5, 0x2E]
_080E2160:
- ldr r0, _080E218C @ =gUnknown_2037F1A
+ ldr r0, _080E218C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -8104,7 +8104,7 @@ _080E2180:
pop {r0}
bx r0
.align 2, 0
-_080E218C: .4byte gUnknown_2037F1A
+_080E218C: .4byte gBattleAnimAttacker
_080E2190: .4byte sub_80E2194
thumb_func_end sub_80E20D4
@@ -8156,7 +8156,7 @@ sub_80E21CC: @ 80E21CC
movs r0, 0x3
strh r0, [r6, 0x14]
strh r1, [r6, 0x16]
- ldr r5, _080E2220 @ =gUnknown_2037F1A
+ ldr r5, _080E2220 @ =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerSide
lsls r0, 24
@@ -8182,7 +8182,7 @@ _080E2216:
b _080E2248
.align 2, 0
_080E221C: .4byte gTasks
-_080E2220: .4byte gUnknown_2037F1A
+_080E2220: .4byte gBattleAnimAttacker
_080E2224:
ldrb r0, [r5]
movs r1, 0x2
@@ -8203,7 +8203,7 @@ _080E2244:
subs r0, r4, r0
_080E2248:
strh r0, [r6, 0x1E]
- ldr r5, _080E229C @ =gUnknown_2037F1A
+ ldr r5, _080E229C @ =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x3
bl sub_8074480
@@ -8222,7 +8222,7 @@ _080E226C:
asrs r0, 2
subs r0, r4, r0
strh r0, [r6, 0x20]
- ldr r4, _080E22A0 @ =gUnknown_2037F1B
+ ldr r4, _080E22A0 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -8241,8 +8241,8 @@ _080E226C:
pop {r0}
bx r0
.align 2, 0
-_080E229C: .4byte gUnknown_2037F1A
-_080E22A0: .4byte gUnknown_2037F1B
+_080E229C: .4byte gBattleAnimAttacker
+_080E22A0: .4byte gBattleAnimTarget
_080E22A4: .4byte sub_80E22A8
thumb_func_end sub_80E21CC
@@ -8551,7 +8551,7 @@ _080E24DC: .4byte gTasks
sub_80E24E0: @ 80E24E0
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080E250C @ =gUnknown_2037F02
+ ldr r1, _080E250C @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
@@ -8571,7 +8571,7 @@ sub_80E24E0: @ 80E24E0
pop {r0}
bx r0
.align 2, 0
-_080E250C: .4byte gUnknown_2037F02
+_080E250C: .4byte gBattleAnimArgs
_080E2510: .4byte DestroyAnimSprite
_080E2514: .4byte sub_8075764
thumb_func_end sub_80E24E0
@@ -8591,7 +8591,7 @@ sub_80E2518: @ 80E2518
lsls r0, 3
ldr r1, _080E2638 @ =gTasks
adds r7, r0, r1
- ldr r0, _080E263C @ =gUnknown_2037F1A
+ ldr r0, _080E263C @ =gBattleAnimAttacker
mov r10, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8606,7 +8606,7 @@ sub_80E2518: @ 80E2518
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x20]
- ldr r0, _080E2640 @ =gUnknown_2037F1B
+ ldr r0, _080E2640 @ =gBattleAnimTarget
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8716,8 +8716,8 @@ _080E2632:
b _080E265A
.align 2, 0
_080E2638: .4byte gTasks
-_080E263C: .4byte gUnknown_2037F1A
-_080E2640: .4byte gUnknown_2037F1B
+_080E263C: .4byte gBattleAnimAttacker
+_080E2640: .4byte gBattleAnimTarget
_080E2644: .4byte gUnknown_83FF62C
_080E2648: .4byte gSprites
_080E264C: .4byte 0x0000ffe0
@@ -8877,19 +8877,19 @@ _080E276E:
sub_80E2774: @ 80E2774
push {r4-r6,lr}
adds r4, r0, 0
- ldr r0, _080E2788 @ =gUnknown_2037F02
+ ldr r0, _080E2788 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r6, r0, 0
cmp r1, 0
bne _080E2790
- ldr r0, _080E278C @ =gUnknown_2037F1A
+ ldr r0, _080E278C @ =gBattleAnimAttacker
b _080E2792
.align 2, 0
-_080E2788: .4byte gUnknown_2037F02
-_080E278C: .4byte gUnknown_2037F1A
+_080E2788: .4byte gBattleAnimArgs
+_080E278C: .4byte gBattleAnimAttacker
_080E2790:
- ldr r0, _080E27F8 @ =gUnknown_2037F1B
+ ldr r0, _080E27F8 @ =gBattleAnimTarget
_080E2792:
ldrb r5, [r0]
ldrh r2, [r4, 0x4]
@@ -8942,7 +8942,7 @@ _080E27C0:
subs r0, 0x8
b _080E280E
.align 2, 0
-_080E27F8: .4byte gUnknown_2037F1B
+_080E27F8: .4byte gBattleAnimTarget
_080E27FC: .4byte 0x000003ff
_080E2800: .4byte 0xfffffc00
_080E2804:
@@ -9072,7 +9072,7 @@ sub_80E28DC: @ 80E28DC
push {r4,lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r2, _080E28F4 @ =gUnknown_2037F02
+ ldr r2, _080E28F4 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, 0
@@ -9081,7 +9081,7 @@ sub_80E28DC: @ 80E28DC
bl DestroyAnimVisualTask
b _080E2920
.align 2, 0
-_080E28F4: .4byte gUnknown_2037F02
+_080E28F4: .4byte gBattleAnimArgs
_080E28F8:
ldr r0, _080E2928 @ =gTasks
lsls r4, r1, 2
@@ -9210,18 +9210,18 @@ _080E29EA:
sub_80E29F0: @ 80E29F0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080E2A04 @ =gUnknown_2037F02
+ ldr r0, _080E2A04 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080E2A0C
- ldr r4, _080E2A08 @ =gUnknown_2037F1A
+ ldr r4, _080E2A08 @ =gBattleAnimAttacker
b _080E2A0E
.align 2, 0
-_080E2A04: .4byte gUnknown_2037F02
-_080E2A08: .4byte gUnknown_2037F1A
+_080E2A04: .4byte gBattleAnimArgs
+_080E2A08: .4byte gBattleAnimAttacker
_080E2A0C:
- ldr r4, _080E2A4C @ =gUnknown_2037F1B
+ ldr r4, _080E2A4C @ =gBattleAnimTarget
_080E2A0E:
ldrb r0, [r4]
movs r1, 0x2
@@ -9242,7 +9242,7 @@ _080E2A0E:
_080E2A32:
movs r2, 0
strh r2, [r5, 0x2E]
- ldr r1, _080E2A50 @ =gUnknown_2037F02
+ ldr r1, _080E2A50 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x30]
strh r2, [r5, 0x32]
@@ -9254,8 +9254,8 @@ _080E2A32:
pop {r0}
bx r0
.align 2, 0
-_080E2A4C: .4byte gUnknown_2037F1B
-_080E2A50: .4byte gUnknown_2037F02
+_080E2A4C: .4byte gBattleAnimTarget
+_080E2A50: .4byte gBattleAnimArgs
_080E2A54: .4byte sub_80E2A58
thumb_func_end sub_80E29F0
@@ -9311,7 +9311,7 @@ _080E2AAC:
sub_80E2AB0: @ 80E2AB0
push {lr}
adds r3, r0, 0
- ldr r0, _080E2ADC @ =gUnknown_2037F02
+ ldr r0, _080E2ADC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9331,7 +9331,7 @@ sub_80E2AB0: @ 80E2AB0
movs r0, 0x1
b _080E2AE6
.align 2, 0
-_080E2ADC: .4byte gUnknown_2037F02
+_080E2ADC: .4byte gBattleAnimArgs
_080E2AE0:
movs r0, 0x8C
strh r0, [r3, 0x20]
@@ -9427,7 +9427,7 @@ _080E2B80:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r3, _080E2BBC @ =gUnknown_825E074
+ ldr r3, _080E2BBC @ =gSineTable
movs r0, 0x30
ldrsh r1, [r4, r0]
lsls r0, r1, 2
@@ -9448,7 +9448,7 @@ _080E2B80:
_080E2BB8:
b _080E2CAE
.align 2, 0
-_080E2BBC: .4byte gUnknown_825E074
+_080E2BBC: .4byte gSineTable
_080E2BC0:
ldrh r0, [r4, 0x30]
adds r0, 0x1
@@ -9471,7 +9471,7 @@ _080E2BD2:
ldrh r0, [r4, 0x22]
subs r0, r1
strh r0, [r4, 0x22]
- ldr r3, _080E2C0C @ =gUnknown_825E074
+ ldr r3, _080E2C0C @ =gSineTable
movs r0, 0x30
ldrsh r1, [r4, r0]
lsls r0, r1, 2
@@ -9490,7 +9490,7 @@ _080E2BD2:
bne _080E2CDC
b _080E2CB2
.align 2, 0
-_080E2C0C: .4byte gUnknown_825E074
+_080E2C0C: .4byte gSineTable
_080E2C10:
ldrh r2, [r4, 0x30]
adds r2, 0x1
@@ -9502,7 +9502,7 @@ _080E2C10:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r3, _080E2C68 @ =gUnknown_825E074
+ ldr r3, _080E2C68 @ =gSineTable
movs r0, 0x30
ldrsh r1, [r4, r0]
lsls r0, r1, 2
@@ -9537,7 +9537,7 @@ _080E2C5C:
bne _080E2CDC
b _080E2CAE
.align 2, 0
-_080E2C68: .4byte gUnknown_825E074
+_080E2C68: .4byte gSineTable
_080E2C6C: .4byte 0x000003ff
_080E2C70: .4byte 0xfffffc00
_080E2C74:
@@ -9622,7 +9622,7 @@ sub_80E2CE4: @ 80E2CE4
lsrs r7, r0, 24
cmp r7, 0x1
bne _080E2D44
- ldr r5, _080E2D38 @ =gUnknown_2037F1A
+ ldr r5, _080E2D38 @ =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8074480
@@ -9642,14 +9642,14 @@ sub_80E2CE4: @ 80E2CE4
b _080E2D64
.align 2, 0
_080E2D34: .4byte gTasks
-_080E2D38: .4byte gUnknown_2037F1A
+_080E2D38: .4byte gBattleAnimAttacker
_080E2D3C:
ldr r0, _080E2D40 @ =0x0000ffff
b _080E2D62
.align 2, 0
_080E2D40: .4byte 0x0000ffff
_080E2D44:
- ldr r0, _080E2D58 @ =gUnknown_2037F1A
+ ldr r0, _080E2D58 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -9658,7 +9658,7 @@ _080E2D44:
ldr r0, _080E2D5C @ =0x0000ffff
b _080E2D62
.align 2, 0
-_080E2D58: .4byte gUnknown_2037F1A
+_080E2D58: .4byte gBattleAnimAttacker
_080E2D5C: .4byte 0x0000ffff
_080E2D60:
movs r0, 0x1
@@ -9895,7 +9895,7 @@ _080E2F10: .4byte gSprites
sub_80E2F14: @ 80E2F14
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E2F30 @ =gUnknown_2037F02
+ ldr r0, _080E2F30 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9903,13 +9903,13 @@ sub_80E2F14: @ 80E2F14
adds r0, r4, 0
movs r1, 0x1
bl sub_8075160
- ldr r0, _080E2F34 @ =gUnknown_2037F1A
+ ldr r0, _080E2F34 @ =gBattleAnimAttacker
b _080E2F3A
.align 2, 0
-_080E2F30: .4byte gUnknown_2037F02
-_080E2F34: .4byte gUnknown_2037F1A
+_080E2F30: .4byte gBattleAnimArgs
+_080E2F34: .4byte gBattleAnimAttacker
_080E2F38:
- ldr r0, _080E2F90 @ =gUnknown_2037F1B
+ ldr r0, _080E2F90 @ =gBattleAnimTarget
_080E2F3A:
ldrb r0, [r0]
strh r0, [r4, 0x3C]
@@ -9954,7 +9954,7 @@ _080E2F5E:
pop {r0}
bx r0
.align 2, 0
-_080E2F90: .4byte gUnknown_2037F1B
+_080E2F90: .4byte gBattleAnimTarget
_080E2F94: .4byte sub_80E2F98
thumb_func_end sub_80E2F14
@@ -10295,7 +10295,7 @@ _080E3218: .4byte gUnknown_83FF180
sub_80E321C: @ 80E321C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E3250 @ =gUnknown_2037F1B
+ ldr r4, _080E3250 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -10307,7 +10307,7 @@ sub_80E321C: @ 80E321C
lsls r0, 24
cmp r0, 0
bne _080E3258
- ldr r2, _080E3254 @ =gUnknown_2037F02
+ ldr r2, _080E3254 @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r0, [r2]
subs r0, r1, r0
@@ -10316,10 +10316,10 @@ sub_80E321C: @ 80E321C
subs r1, r0
b _080E3266
.align 2, 0
-_080E3250: .4byte gUnknown_2037F1B
-_080E3254: .4byte gUnknown_2037F02
+_080E3250: .4byte gBattleAnimTarget
+_080E3254: .4byte gBattleAnimArgs
_080E3258:
- ldr r2, _080E328C @ =gUnknown_2037F02
+ ldr r2, _080E328C @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r0, [r2]
adds r0, r1, r0
@@ -10347,7 +10347,7 @@ _080E3266:
pop {r0}
bx r0
.align 2, 0
-_080E328C: .4byte gUnknown_2037F02
+_080E328C: .4byte gBattleAnimArgs
_080E3290: .4byte sub_80E319C
thumb_func_end sub_80E321C
@@ -10431,7 +10431,7 @@ _080E3328:
.align 2, 0
_080E3330: .4byte gSprites
_080E3334:
- ldr r0, _080E336C @ =gUnknown_2037F1A
+ ldr r0, _080E336C @ =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0
bl LoadBattleMonGfxAndAnimate
@@ -10461,7 +10461,7 @@ _080E3360:
pop {r0}
bx r0
.align 2, 0
-_080E336C: .4byte gUnknown_2037F1A
+_080E336C: .4byte gBattleAnimAttacker
_080E3370: .4byte sub_80E3374
thumb_func_end sub_80E3294
@@ -10647,7 +10647,7 @@ _080E34CC: .4byte gSprites
sub_80E34D0: @ 80E34D0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E34F4 @ =gUnknown_2037F1B
+ ldr r4, _080E34F4 @ =gBattleAnimTarget
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
@@ -10662,7 +10662,7 @@ sub_80E34D0: @ 80E34D0
ldr r4, _080E34F8 @ =0x0000ff70
b _080E350C
.align 2, 0
-_080E34F4: .4byte gUnknown_2037F1B
+_080E34F4: .4byte gBattleAnimTarget
_080E34F8: .4byte 0x0000ff70
_080E34FC:
ldrb r0, [r4]
@@ -10673,7 +10673,7 @@ _080E34FC:
strb r0, [r1]
ldr r4, _080E3528 @ =0x0000ffa0
_080E350C:
- ldr r0, _080E352C @ =gUnknown_2037F1B
+ ldr r0, _080E352C @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_8074480
@@ -10688,7 +10688,7 @@ _080E350C:
bx r0
.align 2, 0
_080E3528: .4byte 0x0000ffa0
-_080E352C: .4byte gUnknown_2037F1B
+_080E352C: .4byte gBattleAnimTarget
_080E3530: .4byte sub_80E3534
thumb_func_end sub_80E34D0
@@ -10738,7 +10738,7 @@ _080E3588:
adds r1, 0x4
movs r5, 0
strh r1, [r4, 0x30]
- ldr r2, _080E35C4 @ =gUnknown_825E074
+ ldr r2, _080E35C4 @ =gSineTable
movs r3, 0x30
ldrsh r0, [r4, r3]
lsls r0, 1
@@ -10763,13 +10763,13 @@ _080E3588:
strh r5, [r4, 0x26]
b _080E361C
.align 2, 0
-_080E35C4: .4byte gUnknown_825E074
+_080E35C4: .4byte gSineTable
_080E35C8:
ldrh r1, [r4, 0x30]
adds r1, 0x6
movs r3, 0
strh r1, [r4, 0x30]
- ldr r2, _080E35F4 @ =gUnknown_825E074
+ ldr r2, _080E35F4 @ =gSineTable
movs r5, 0x30
ldrsh r0, [r4, r5]
lsls r0, 1
@@ -10787,7 +10787,7 @@ _080E35C8:
strh r3, [r4, 0x26]
b _080E361C
.align 2, 0
-_080E35F4: .4byte gUnknown_825E074
+_080E35F4: .4byte gSineTable
_080E35F8:
ldrh r0, [r4, 0x30]
adds r0, 0x1
@@ -10929,7 +10929,7 @@ _080E36B4:
strh r1, [r0, 0x8]
ldr r0, _080E3750 @ =gUnknown_2024018
ldr r1, [r0]
- ldr r0, _080E3754 @ =gUnknown_2037F1B
+ ldr r0, _080E3754 @ =gBattleAnimTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -10961,7 +10961,7 @@ _080E3744: .4byte gSprites
_080E3748: .4byte 0x0000fff0
_080E374C: .4byte gTasks
_080E3750: .4byte gUnknown_2024018
-_080E3754: .4byte gUnknown_2037F1B
+_080E3754: .4byte gBattleAnimTarget
_080E3758:
adds r1, r5, 0
adds r1, 0x3E
@@ -11065,7 +11065,7 @@ sub_80E37FC: @ 80E37FC
strh r0, [r4, 0x30]
ldr r0, _080E3870 @ =gUnknown_2024018
ldr r1, [r0]
- ldr r0, _080E3874 @ =gUnknown_2037F1B
+ ldr r0, _080E3874 @ =gBattleAnimTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -11112,7 +11112,7 @@ _080E3846:
b _080E38CE
.align 2, 0
_080E3870: .4byte gUnknown_2024018
-_080E3874: .4byte gUnknown_2037F1B
+_080E3874: .4byte gBattleAnimTarget
_080E3878:
ldrh r0, [r4, 0x32]
adds r0, 0x1
@@ -11170,7 +11170,7 @@ sub_80E38D8: @ 80E38D8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r3, _080E3924 @ =gUnknown_2037F02
+ ldr r3, _080E3924 @ =gBattleAnimArgs
movs r2, 0
strh r2, [r3, 0xE]
ldr r1, _080E3928 @ =gUnknown_2037EFE
@@ -11208,7 +11208,7 @@ _080E3918:
pop {r0}
bx r0
.align 2, 0
-_080E3924: .4byte gUnknown_2037F02
+_080E3924: .4byte gBattleAnimArgs
_080E3928: .4byte gUnknown_2037EFE
thumb_func_end sub_80E38D8
@@ -11266,7 +11266,7 @@ _080E3978:
ldrh r1, [r6, 0xA]
adds r0, r1
strh r0, [r6, 0xA]
- ldr r0, _080E39C8 @ =gUnknown_2037F1A
+ ldr r0, _080E39C8 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -11287,7 +11287,7 @@ _080E3978:
b _080E39EA
.align 2, 0
_080E39C4: .4byte gTasks
-_080E39C8: .4byte gUnknown_2037F1A
+_080E39C8: .4byte gBattleAnimAttacker
_080E39CC: .4byte gSprites
_080E39D0:
ldr r3, _080E3A24 @ =gSprites
@@ -11337,7 +11337,7 @@ _080E3A16:
_080E3A24: .4byte gSprites
_080E3A28: .4byte gTasks
_080E3A2C:
- ldr r4, _080E3A90 @ =gUnknown_2037F1A
+ ldr r4, _080E3A90 @ =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
@@ -11384,7 +11384,7 @@ _080E3A2C:
lsrs r5, r0, 16
b _080E3AA2
.align 2, 0
-_080E3A90: .4byte gUnknown_2037F1A
+_080E3A90: .4byte gBattleAnimAttacker
_080E3A94: .4byte gBattlerPartyIndexes
_080E3A98: .4byte gPlayerParty
_080E3A9C: .4byte gUnknown_2024018
@@ -11476,7 +11476,7 @@ _080E3B32:
movs r7, 0x1
ldr r6, _080E3BD4 @ =0x0000ffe0
_080E3B54:
- ldr r0, _080E3BD8 @ =gUnknown_2037F1B
+ ldr r0, _080E3BD8 @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8074480
@@ -11490,7 +11490,7 @@ _080E3B54:
str r2, [sp, 0x8]
mov r4, r9
str r4, [sp, 0xC]
- ldr r4, _080E3BDC @ =gUnknown_2037F1A
+ ldr r4, _080E3BDC @ =gBattleAnimAttacker
ldrb r0, [r4]
str r0, [sp, 0x10]
movs r0, 0
@@ -11538,8 +11538,8 @@ _080E3BBE:
.align 2, 0
_080E3BD0: .4byte gSprites
_080E3BD4: .4byte 0x0000ffe0
-_080E3BD8: .4byte gUnknown_2037F1B
-_080E3BDC: .4byte gUnknown_2037F1A
+_080E3BD8: .4byte gBattleAnimTarget
+_080E3BDC: .4byte gBattleAnimAttacker
_080E3BE0: .4byte gUnknown_2024018
_080E3BE4: .4byte 0x00007fff
_080E3BE8: .4byte gTasks
@@ -11559,7 +11559,7 @@ _080E3BEC:
ldrh r2, [r6, 0xA]
adds r0, r2
strh r0, [r6, 0xA]
- ldr r0, _080E3C3C @ =gUnknown_2037F1A
+ ldr r0, _080E3C3C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -11582,7 +11582,7 @@ _080E3BEC:
b _080E3C5A
.align 2, 0
_080E3C38: .4byte gTasks
-_080E3C3C: .4byte gUnknown_2037F1A
+_080E3C3C: .4byte gBattleAnimAttacker
_080E3C40: .4byte gSprites
_080E3C44:
ldr r2, _080E3CA8 @ =gSprites
@@ -11616,7 +11616,7 @@ _080E3C5A:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080E3CDA
- ldr r0, _080E3CB0 @ =gUnknown_2037F1A
+ ldr r0, _080E3CB0 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -11624,7 +11624,7 @@ _080E3C5A:
bne _080E3CB8
lsls r4, r5, 16
asrs r4, 16
- ldr r0, _080E3CB4 @ =gUnknown_2037F1B
+ ldr r0, _080E3CB4 @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8074480
@@ -11636,12 +11636,12 @@ _080E3C5A:
.align 2, 0
_080E3CA8: .4byte gSprites
_080E3CAC: .4byte gTasks
-_080E3CB0: .4byte gUnknown_2037F1A
-_080E3CB4: .4byte gUnknown_2037F1B
+_080E3CB0: .4byte gBattleAnimAttacker
+_080E3CB4: .4byte gBattleAnimTarget
_080E3CB8:
lsls r4, r5, 16
asrs r4, 16
- ldr r0, _080E3CFC @ =gUnknown_2037F1B
+ ldr r0, _080E3CFC @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8074480
@@ -11653,7 +11653,7 @@ _080E3CCE:
ldrh r0, [r6, 0x24]
adds r0, 0x1
strh r0, [r6, 0x24]
- ldr r1, _080E3D00 @ =gUnknown_2037F02
+ ldr r1, _080E3D00 @ =gBattleAnimArgs
ldr r0, _080E3D04 @ =0x0000ffff
strh r0, [r1, 0xE]
_080E3CDA:
@@ -11676,8 +11676,8 @@ _080E3CEC:
strh r0, [r1, 0xA]
b _080E3D82
.align 2, 0
-_080E3CFC: .4byte gUnknown_2037F1B
-_080E3D00: .4byte gUnknown_2037F02
+_080E3CFC: .4byte gBattleAnimTarget
+_080E3D00: .4byte gBattleAnimArgs
_080E3D04: .4byte 0x0000ffff
_080E3D08: .4byte gTasks
_080E3D0C:
@@ -11700,7 +11700,7 @@ _080E3D0C:
ldr r5, _080E3D5C @ =gSprites
adds r0, r5
bl sub_8076B20
- ldr r0, _080E3D60 @ =gUnknown_2037F1A
+ ldr r0, _080E3D60 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -11719,7 +11719,7 @@ _080E3D0C:
.align 2, 0
_080E3D58: .4byte gTasks
_080E3D5C: .4byte gSprites
-_080E3D60: .4byte gUnknown_2037F1A
+_080E3D60: .4byte gBattleAnimAttacker
_080E3D64:
lsls r0, r7, 4
adds r0, r7
@@ -11761,7 +11761,7 @@ _080E3D90:
ldrh r3, [r2, 0xA]
adds r0, r3
strh r0, [r2, 0xA]
- ldr r0, _080E3E08 @ =gUnknown_2037F1A
+ ldr r0, _080E3E08 @ =gBattleAnimAttacker
mov r10, r0
ldrb r0, [r0]
str r2, [sp, 0x18]
@@ -11801,7 +11801,7 @@ _080E3D90:
b _080E3E48
.align 2, 0
_080E3E04: .4byte gTasks
-_080E3E08: .4byte gUnknown_2037F1A
+_080E3E08: .4byte gBattleAnimAttacker
_080E3E0C: .4byte gSprites
_080E3E10:
ldr r1, _080E3E7C @ =gSprites
@@ -11875,7 +11875,7 @@ sub_80E3E84: @ 80E3E84
beq _080E3F36
b _080E3FB8
_080E3E96:
- ldr r0, _080E3F14 @ =gUnknown_2037F02
+ ldr r0, _080E3F14 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -11889,7 +11889,7 @@ _080E3E96:
asrs r1, 24
movs r0, 0x73
bl PlaySE12WithPanning
- ldr r0, _080E3F18 @ =gUnknown_2037F1B
+ ldr r0, _080E3F18 @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8074480
@@ -11909,7 +11909,7 @@ _080E3E96:
negs r0, r0
ands r0, r1
strb r0, [r2]
- ldr r0, _080E3F20 @ =gUnknown_2037F1A
+ ldr r0, _080E3F20 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -11933,10 +11933,10 @@ _080E3E96:
strb r0, [r1]
b _080E3FB8
.align 2, 0
-_080E3F14: .4byte gUnknown_2037F02
-_080E3F18: .4byte gUnknown_2037F1B
+_080E3F14: .4byte gBattleAnimArgs
+_080E3F18: .4byte gBattleAnimTarget
_080E3F1C: .4byte 0x0000ffe0
-_080E3F20: .4byte gUnknown_2037F1A
+_080E3F20: .4byte gBattleAnimAttacker
_080E3F24: .4byte gSprites
_080E3F28:
adds r0, r4, 0
@@ -11979,7 +11979,7 @@ _080E3F6A:
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
- ldr r0, _080E3F94 @ =gUnknown_2037F1A
+ ldr r0, _080E3F94 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -11994,7 +11994,7 @@ _080E3F6A:
adds r1, r2, 0
b _080E3FA4
.align 2, 0
-_080E3F94: .4byte gUnknown_2037F1A
+_080E3F94: .4byte gBattleAnimAttacker
_080E3F98:
ldrh r1, [r4, 0x32]
lsls r0, r1, 16
@@ -12051,14 +12051,14 @@ _080E3FF0:
.4byte _080E40C8
.4byte _080E412E
_080E4004:
- ldr r0, _080E4048 @ =gUnknown_2037F1A
+ ldr r0, _080E4048 @ =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0
bl sub_8074480
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
- ldr r0, _080E404C @ =gUnknown_2037F1B
+ ldr r0, _080E404C @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8074480
@@ -12084,12 +12084,12 @@ _080E403A:
strh r0, [r1, 0x26]
b _080E414C
.align 2, 0
-_080E4048: .4byte gUnknown_2037F1A
-_080E404C: .4byte gUnknown_2037F1B
+_080E4048: .4byte gBattleAnimAttacker
+_080E404C: .4byte gBattleAnimTarget
_080E4050: .4byte gTasks
_080E4054:
- ldr r1, _080E4090 @ =gUnknown_2023D44
- ldr r0, _080E4094 @ =gUnknown_2037F1A
+ ldr r1, _080E4090 @ =gBattlerSpriteIds
+ ldr r0, _080E4094 @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12119,8 +12119,8 @@ _080E4054:
ldrsh r1, [r2, r3]
b _080E4122
.align 2, 0
-_080E4090: .4byte gUnknown_2023D44
-_080E4094: .4byte gUnknown_2037F1A
+_080E4090: .4byte gBattlerSpriteIds
+_080E4094: .4byte gBattleAnimAttacker
_080E4098: .4byte gSprites
_080E409C:
movs r3, 0x20
@@ -12147,8 +12147,8 @@ _080E40B0:
strh r1, [r0, 0x26]
b _080E414C
_080E40C8:
- ldr r1, _080E4108 @ =gUnknown_2023D44
- ldr r0, _080E410C @ =gUnknown_2037F1A
+ ldr r1, _080E4108 @ =gBattlerSpriteIds
+ ldr r0, _080E410C @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12180,8 +12180,8 @@ _080E40C8:
bgt _080E414C
b _080E4126
.align 2, 0
-_080E4108: .4byte gUnknown_2023D44
-_080E410C: .4byte gUnknown_2037F1A
+_080E4108: .4byte gBattlerSpriteIds
+_080E410C: .4byte gBattleAnimAttacker
_080E4110: .4byte gSprites
_080E4114:
movs r3, 0x20
@@ -12200,8 +12200,8 @@ _080E4126:
strh r0, [r2, 0x26]
b _080E414C
_080E412E:
- ldr r1, _080E4154 @ =gUnknown_2023D44
- ldr r0, _080E4158 @ =gUnknown_2037F1A
+ ldr r1, _080E4154 @ =gBattlerSpriteIds
+ ldr r0, _080E4158 @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12219,8 +12219,8 @@ _080E414C:
pop {r0}
bx r0
.align 2, 0
-_080E4154: .4byte gUnknown_2023D44
-_080E4158: .4byte gUnknown_2037F1A
+_080E4154: .4byte gBattlerSpriteIds
+_080E4158: .4byte gBattleAnimAttacker
_080E415C: .4byte gSprites
thumb_func_end sub_80E3FC0
@@ -12240,7 +12240,7 @@ sub_80E4160: @ 80E4160
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0xE]
- ldr r0, _080E41CC @ =gUnknown_2037F1A
+ ldr r0, _080E41CC @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -12279,7 +12279,7 @@ _080E4194:
bx r0
.align 2, 0
_080E41C8: .4byte gTasks
-_080E41CC: .4byte gUnknown_2037F1A
+_080E41CC: .4byte gBattleAnimAttacker
_080E41D0: .4byte gSprites
_080E41D4: .4byte sub_80E41D8
thumb_func_end sub_80E4160
@@ -12322,7 +12322,7 @@ _080E4206:
adds r1, r0
lsls r1, 2
adds r1, r5
- ldr r3, _080E427C @ =gUnknown_825E074
+ ldr r3, _080E427C @ =gSineTable
movs r6, 0x1E
ldrsh r0, [r4, r6]
lsls r0, 1
@@ -12368,7 +12368,7 @@ _080E4206:
b _080E42C0
.align 2, 0
_080E4278: .4byte gSprites
-_080E427C: .4byte gUnknown_825E074
+_080E427C: .4byte gSineTable
_080E4280:
ldrh r0, [r4, 0x1E]
adds r0, 0x8
@@ -12382,7 +12382,7 @@ _080E4280:
adds r1, r0
lsls r1, 2
adds r1, r3
- ldr r2, _080E42CC @ =gUnknown_825E074
+ ldr r2, _080E42CC @ =gSineTable
movs r5, 0x1E
ldrsh r0, [r4, r5]
lsls r0, 1
@@ -12409,7 +12409,7 @@ _080E42C0:
b _080E42D6
.align 2, 0
_080E42C8: .4byte gSprites
-_080E42CC: .4byte gUnknown_825E074
+_080E42CC: .4byte gSineTable
_080E42D0:
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -12423,7 +12423,7 @@ _080E42D6:
sub_80E42DC: @ 80E42DC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E4330 @ =gUnknown_2037F1B
+ ldr r0, _080E4330 @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -12460,20 +12460,20 @@ _080E4322:
pop {r0}
bx r0
.align 2, 0
-_080E4330: .4byte gUnknown_2037F1B
+_080E4330: .4byte gBattleAnimTarget
thumb_func_end sub_80E42DC
thumb_func_start sub_80E4334
sub_80E4334: @ 80E4334
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E436C @ =gUnknown_2037F1B
+ ldr r0, _080E436C @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E4378
- ldr r2, _080E4370 @ =gUnknown_2037F02
+ ldr r2, _080E4370 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -12491,15 +12491,15 @@ sub_80E4334: @ 80E4334
bl StartSpriteAffineAnim
b _080E4392
.align 2, 0
-_080E436C: .4byte gUnknown_2037F1B
-_080E4370: .4byte gUnknown_2037F02
+_080E436C: .4byte gBattleAnimTarget
+_080E4370: .4byte gBattleAnimArgs
_080E4374: .4byte 0x0000fff5
_080E4378:
movs r0, 0xB
strh r0, [r4, 0x2E]
movs r0, 0xC0
strh r0, [r4, 0x30]
- ldr r1, _080E439C @ =gUnknown_2037F02
+ ldr r1, _080E439C @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -12515,7 +12515,7 @@ _080E4392:
pop {r0}
bx r0
.align 2, 0
-_080E439C: .4byte gUnknown_2037F02
+_080E439C: .4byte gBattleAnimArgs
_080E43A0: .4byte sub_80E42DC
thumb_func_end sub_80E4334
@@ -12523,7 +12523,7 @@ _080E43A0: .4byte sub_80E42DC
sub_80E43A4: @ 80E43A4
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E43E8 @ =gUnknown_2037F1A
+ ldr r4, _080E43E8 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -12554,7 +12554,7 @@ _080E43CE:
pop {r0}
bx r0
.align 2, 0
-_080E43E8: .4byte gUnknown_2037F1A
+_080E43E8: .4byte gBattleAnimAttacker
_080E43EC: .4byte sub_80E43F0
thumb_func_end sub_80E43A4
@@ -12700,7 +12700,7 @@ sub_80E44EC: @ 80E44EC
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080E4508 @ =gUnknown_2037F02
+ ldr r2, _080E4508 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r2, 0xE]
ldr r0, _080E450C @ =gUnknown_2037F00
@@ -12712,7 +12712,7 @@ sub_80E44EC: @ 80E44EC
movs r0, 0x1
b _080E4532
.align 2, 0
-_080E4508: .4byte gUnknown_2037F02
+_080E4508: .4byte gBattleAnimArgs
_080E450C: .4byte gUnknown_2037F00
_080E4510:
movs r0, 0x7
@@ -12755,7 +12755,7 @@ sub_80E4540: @ 80E4540
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _080E457C @ =gUnknown_2037F02
+ ldr r0, _080E457C @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
adds r1, r0, 0
@@ -12772,7 +12772,7 @@ sub_80E4540: @ 80E4540
bx r0
.align 2, 0
_080E4578: .4byte gTasks
-_080E457C: .4byte gUnknown_2037F02
+_080E457C: .4byte gBattleAnimArgs
_080E4580: .4byte gUnknown_83FF7A8
_080E4584: .4byte sub_80E4588
thumb_func_end sub_80E4540
diff --git a/asm/battle_anim_8074480.s b/asm/battle_anim_mons.s
index b900ba15a..aded063d4 100644
--- a/asm/battle_anim_8074480.s
+++ b/asm/battle_anim_mons.s
@@ -711,37 +711,37 @@ GetAnimBankSpriteId: @ 80749D4
adds r1, r0, 0
cmp r0, 0
bne _080749FC
- ldr r4, _080749F4 @ =gUnknown_2037F1A
+ ldr r4, _080749F4 @ =gBattleAnimAttacker
ldrb r0, [r4]
bl sub_8075224
lsls r0, 24
cmp r0, 0
beq _08074A4A
- ldr r1, _080749F8 @ =gUnknown_2023D44
+ ldr r1, _080749F8 @ =gBattlerSpriteIds
ldrb r0, [r4]
b _08074A5A
.align 2, 0
-_080749F4: .4byte gUnknown_2037F1A
-_080749F8: .4byte gUnknown_2023D44
+_080749F4: .4byte gBattleAnimAttacker
+_080749F8: .4byte gBattlerSpriteIds
_080749FC:
cmp r0, 0x1
bne _08074A1C
- ldr r4, _08074A14 @ =gUnknown_2037F1B
+ ldr r4, _08074A14 @ =gBattleAnimTarget
ldrb r0, [r4]
bl sub_8075224
lsls r0, 24
cmp r0, 0
beq _08074A4A
- ldr r1, _08074A18 @ =gUnknown_2023D44
+ ldr r1, _08074A18 @ =gBattlerSpriteIds
ldrb r0, [r4]
b _08074A5A
.align 2, 0
-_08074A14: .4byte gUnknown_2037F1B
-_08074A18: .4byte gUnknown_2023D44
+_08074A14: .4byte gBattleAnimTarget
+_08074A18: .4byte gBattlerSpriteIds
_08074A1C:
cmp r1, 0x2
bne _08074A38
- ldr r5, _08074A34 @ =gUnknown_2037F1A
+ ldr r5, _08074A34 @ =gBattleAnimAttacker
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
@@ -751,9 +751,9 @@ _08074A1C:
beq _08074A4A
b _08074A54
.align 2, 0
-_08074A34: .4byte gUnknown_2037F1A
+_08074A34: .4byte gBattleAnimAttacker
_08074A38:
- ldr r5, _08074A50 @ =gUnknown_2037F1B
+ ldr r5, _08074A50 @ =gBattleAnimTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
@@ -765,9 +765,9 @@ _08074A4A:
movs r0, 0xFF
b _08074A5E
.align 2, 0
-_08074A50: .4byte gUnknown_2037F1B
+_08074A50: .4byte gBattleAnimTarget
_08074A54:
- ldr r1, _08074A64 @ =gUnknown_2023D44
+ ldr r1, _08074A64 @ =gBattlerSpriteIds
ldrb r0, [r5]
eors r0, r4
_08074A5A:
@@ -778,7 +778,7 @@ _08074A5E:
pop {r1}
bx r1
.align 2, 0
-_08074A64: .4byte gUnknown_2023D44
+_08074A64: .4byte gBattlerSpriteIds
thumb_func_end GetAnimBankSpriteId
thumb_func_start StoreSpriteCallbackInData6
@@ -1242,7 +1242,7 @@ sub_8074D80: @ 8074D80
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
- ldr r5, _08074DBC @ =gUnknown_2037F1B
+ ldr r5, _08074DBC @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8074480
@@ -1261,7 +1261,7 @@ sub_8074D80: @ 8074D80
pop {r0}
bx r0
.align 2, 0
-_08074DBC: .4byte gUnknown_2037F1B
+_08074DBC: .4byte gBattleAnimTarget
_08074DC0: .4byte sub_8074C64
thumb_func_end sub_8074D80
@@ -1443,7 +1443,7 @@ sub_8074EF4: @ 8074EF4
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
- ldr r5, _08074F30 @ =gUnknown_2037F1A
+ ldr r5, _08074F30 @ =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8074480
@@ -1462,7 +1462,7 @@ sub_8074EF4: @ 8074EF4
pop {r0}
bx r0
.align 2, 0
-_08074F30: .4byte gUnknown_2037F1A
+_08074F30: .4byte gBattleAnimAttacker
_08074F34: .4byte sub_8074C64
thumb_func_end sub_8074EF4
@@ -1553,7 +1553,7 @@ sub_8074FA8: @ 8074FA8
sub_8074FCC: @ 8074FCC
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _08074FF4 @ =gUnknown_2037F1A
+ ldr r4, _08074FF4 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -1570,7 +1570,7 @@ sub_8074FCC: @ 8074FCC
pop {r0}
bx r0
.align 2, 0
-_08074FF4: .4byte gUnknown_2037F1A
+_08074FF4: .4byte gBattleAnimAttacker
thumb_func_end sub_8074FCC
thumb_func_start sub_8074FF8
@@ -1582,13 +1582,13 @@ sub_8074FF8: @ 8074FF8
lsls r1, 16
lsrs r5, r1, 16
mov r8, r5
- ldr r7, _08075030 @ =gUnknown_2037F1A
+ ldr r7, _08075030 @ =gBattleAnimAttacker
ldrb r0, [r7]
movs r1, 0
bl sub_8074480
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, _08075034 @ =gUnknown_2037F1B
+ ldr r0, _08075034 @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8074480
@@ -1601,8 +1601,8 @@ sub_8074FF8: @ 8074FF8
lsls r0, r5, 16
b _08075054
.align 2, 0
-_08075030: .4byte gUnknown_2037F1A
-_08075034: .4byte gUnknown_2037F1B
+_08075030: .4byte gBattleAnimAttacker
+_08075034: .4byte gBattleAnimTarget
_08075038:
ldrb r0, [r7]
bl GetBattlerSide
@@ -1738,7 +1738,7 @@ sub_8075114: @ 8075114
lsls r1, 24
cmp r1, 0
bne _0807513C
- ldr r4, _08075158 @ =gUnknown_2037F1B
+ ldr r4, _08075158 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8074844
@@ -1752,7 +1752,7 @@ sub_8075114: @ 8075114
lsrs r0, 24
strh r0, [r5, 0x22]
_0807513C:
- ldr r4, _0807515C @ =gUnknown_2037F02
+ ldr r4, _0807515C @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -1765,8 +1765,8 @@ _0807513C:
pop {r0}
bx r0
.align 2, 0
-_08075158: .4byte gUnknown_2037F1B
-_0807515C: .4byte gUnknown_2037F02
+_08075158: .4byte gBattleAnimTarget
+_0807515C: .4byte gBattleAnimArgs
thumb_func_end sub_8075114
thumb_func_start sub_8075160
@@ -1776,7 +1776,7 @@ sub_8075160: @ 8075160
lsls r1, 24
cmp r1, 0
bne _08075184
- ldr r4, _08075180 @ =gUnknown_2037F1A
+ ldr r4, _08075180 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8074844
@@ -1787,9 +1787,9 @@ sub_8075160: @ 8075160
movs r1, 0x1
b _08075198
.align 2, 0
-_08075180: .4byte gUnknown_2037F1A
+_08075180: .4byte gBattleAnimAttacker
_08075184:
- ldr r4, _080751BC @ =gUnknown_2037F1A
+ ldr r4, _080751BC @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074844
@@ -1803,7 +1803,7 @@ _08075198:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080751C0 @ =gUnknown_2037F02
+ ldr r4, _080751C0 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -1816,8 +1816,8 @@ _08075198:
pop {r0}
bx r0
.align 2, 0
-_080751BC: .4byte gUnknown_2037F1A
-_080751C0: .4byte gUnknown_2037F02
+_080751BC: .4byte gBattleAnimAttacker
+_080751C0: .4byte gBattleAnimArgs
thumb_func_end sub_8075160
thumb_func_start GetBattlerSide
@@ -2011,7 +2011,7 @@ sub_8075300: @ 8075300
ldr r0, _08075338 @ =gUnknown_2022BBC
ldr r0, [r0]
str r0, [r4, 0x4]
- ldr r0, _0807533C @ =gUnknown_2037F1A
+ ldr r0, _0807533C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80768B0
lsls r0, 24
@@ -2030,7 +2030,7 @@ sub_8075300: @ 8075300
.align 2, 0
_08075334: .4byte gUnknown_2022BB8
_08075338: .4byte gUnknown_2022BBC
-_0807533C: .4byte gUnknown_2037F1A
+_0807533C: .4byte gBattleAnimAttacker
_08075340:
movs r1, 0
movs r0, 0x9
@@ -3252,7 +3252,7 @@ sub_8075BE8: @ 8075BE8
_08075C1C:
cmp r1, 0
beq _08075C2E
- ldr r0, _08075CB0 @ =gUnknown_2037F1A
+ ldr r0, _08075CB0 @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
@@ -3262,7 +3262,7 @@ _08075C1C:
_08075C2E:
cmp r2, 0
beq _08075C40
- ldr r0, _08075CB4 @ =gUnknown_2037F1B
+ ldr r0, _08075CB4 @ =gBattleAnimTarget
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
@@ -3272,7 +3272,7 @@ _08075C2E:
_08075C40:
cmp r3, 0
beq _08075C64
- ldr r6, _08075CB0 @ =gUnknown_2037F1A
+ ldr r6, _08075CB0 @ =gBattleAnimAttacker
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
@@ -3290,7 +3290,7 @@ _08075C40:
_08075C64:
cmp r7, 0
beq _08075C88
- ldr r6, _08075CB4 @ =gUnknown_2037F1B
+ ldr r6, _08075CB4 @ =gBattleAnimTarget
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
@@ -3328,8 +3328,8 @@ _08075CA0:
pop {r1}
bx r1
.align 2, 0
-_08075CB0: .4byte gUnknown_2037F1A
-_08075CB4: .4byte gUnknown_2037F1B
+_08075CB0: .4byte gBattleAnimAttacker
+_08075CB4: .4byte gBattleAnimTarget
thumb_func_end sub_8075BE8
thumb_func_start sub_8075CB8
@@ -3454,7 +3454,7 @@ sub_8075D9C: @ 8075D9C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08075DDA
- ldr r2, _08075DC8 @ =gUnknown_2037F02
+ ldr r2, _08075DC8 @ =gBattleAnimArgs
movs r3, 0x6
ldrsh r0, [r2, r3]
movs r1, 0
@@ -3470,7 +3470,7 @@ _08075DB6:
bl sub_8075160
b _08075DD2
.align 2, 0
-_08075DC8: .4byte gUnknown_2037F02
+_08075DC8: .4byte gBattleAnimArgs
_08075DCC:
adds r0, r4, 0
bl sub_8075114
@@ -3499,7 +3499,7 @@ _08075DEE:
sub_8075DF4: @ 8075DF4
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, _08075E6C @ =gUnknown_2037F02
+ ldr r6, _08075E6C @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r6, r1]
movs r1, 0xFF
@@ -3518,7 +3518,7 @@ _08075E0C:
_08075E16:
adds r0, r5, 0
bl sub_8075160
- ldr r0, _08075E70 @ =gUnknown_2037F1A
+ ldr r0, _08075E70 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -3530,7 +3530,7 @@ _08075E16:
_08075E30:
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r4, _08075E74 @ =gUnknown_2037F1B
+ ldr r4, _08075E74 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -3556,9 +3556,9 @@ _08075E30:
pop {r0}
bx r0
.align 2, 0
-_08075E6C: .4byte gUnknown_2037F02
-_08075E70: .4byte gUnknown_2037F1A
-_08075E74: .4byte gUnknown_2037F1B
+_08075E6C: .4byte gBattleAnimArgs
+_08075E70: .4byte gBattleAnimAttacker
+_08075E74: .4byte gBattleAnimTarget
_08075E78: .4byte sub_8075590
_08075E7C: .4byte DestroyAnimSprite
thumb_func_end sub_8075DF4
@@ -3569,21 +3569,21 @@ sub_8075E80: @ 8075E80
adds r6, r0, 0
movs r1, 0x1
bl sub_8075160
- ldr r0, _08075EE0 @ =gUnknown_2037F1A
+ ldr r0, _08075EE0 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08075EA0
- ldr r1, _08075EE4 @ =gUnknown_2037F02
+ ldr r1, _08075EE4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_08075EA0:
- ldr r4, _08075EE4 @ =gUnknown_2037F02
+ ldr r4, _08075EE4 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _08075EE8 @ =gUnknown_2037F1B
+ ldr r5, _08075EE8 @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8074480
@@ -3610,9 +3610,9 @@ _08075EA0:
pop {r0}
bx r0
.align 2, 0
-_08075EE0: .4byte gUnknown_2037F1A
-_08075EE4: .4byte gUnknown_2037F02
-_08075EE8: .4byte gUnknown_2037F1B
+_08075EE0: .4byte gBattleAnimAttacker
+_08075EE4: .4byte gBattleAnimArgs
+_08075EE8: .4byte gBattleAnimTarget
_08075EEC: .4byte sub_8075EF0
thumb_func_end sub_8075E80
@@ -3636,7 +3636,7 @@ _08075F04:
sub_8075F0C: @ 8075F0C
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _08075F20 @ =gUnknown_2037F02
+ ldr r0, _08075F20 @ =gBattleAnimArgs
movs r2, 0xC
ldrsh r1, [r0, r2]
cmp r1, 0
@@ -3645,7 +3645,7 @@ sub_8075F0C: @ 8075F0C
movs r7, 0x3
b _08075F28
.align 2, 0
-_08075F20: .4byte gUnknown_2037F02
+_08075F20: .4byte gBattleAnimArgs
_08075F24:
movs r4, 0
movs r7, 0x1
@@ -3657,24 +3657,24 @@ _08075F28:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8075160
- ldr r0, _08075F3C @ =gUnknown_2037F1A
+ ldr r0, _08075F3C @ =gBattleAnimAttacker
b _08075F4A
.align 2, 0
-_08075F3C: .4byte gUnknown_2037F1A
+_08075F3C: .4byte gBattleAnimAttacker
_08075F40:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8075114
- ldr r0, _08075FA8 @ =gUnknown_2037F1B
+ ldr r0, _08075FA8 @ =gBattleAnimTarget
_08075F4A:
ldrb r6, [r0]
- ldr r0, _08075FAC @ =gUnknown_2037F1A
+ ldr r0, _08075FAC @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08075F62
- ldr r1, _08075FB0 @ =gUnknown_2037F02
+ ldr r1, _08075FB0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -3682,7 +3682,7 @@ _08075F62:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8075114
- ldr r4, _08075FB0 @ =gUnknown_2037F02
+ ldr r4, _08075FB0 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
adds r0, r6, 0
@@ -3710,9 +3710,9 @@ _08075F62:
pop {r0}
bx r0
.align 2, 0
-_08075FA8: .4byte gUnknown_2037F1B
-_08075FAC: .4byte gUnknown_2037F1A
-_08075FB0: .4byte gUnknown_2037F02
+_08075FA8: .4byte gBattleAnimTarget
+_08075FAC: .4byte gBattleAnimAttacker
+_08075FB0: .4byte gBattleAnimArgs
_08075FB4: .4byte sub_8075590
_08075FB8: .4byte DestroyAnimSprite
thumb_func_end sub_8075F0C
@@ -3801,7 +3801,7 @@ sub_8076048: @ 8076048
lsrs r5, r0, 24
movs r6, 0
movs r3, 0
- ldr r2, _080760C0 @ =gUnknown_2037F02
+ ldr r2, _080760C0 @ =gBattleAnimArgs
movs r0, 0x4
ldrsh r1, [r2, r0]
movs r4, 0
@@ -3860,7 +3860,7 @@ _0807607C:
pop {r0}
bx r0
.align 2, 0
-_080760C0: .4byte gUnknown_2037F02
+_080760C0: .4byte gBattleAnimArgs
_080760C4: .4byte 0x0000ffff
_080760C8: .4byte gTasks
_080760CC: .4byte sub_80760D0
@@ -3952,7 +3952,7 @@ sub_807616C: @ 807616C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0807618C @ =gUnknown_2037F02
+ ldr r0, _0807618C @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
lsls r0, 24
@@ -3963,7 +3963,7 @@ sub_807616C: @ 807616C
bl DestroyAnimVisualTask
b _080761B6
.align 2, 0
-_0807618C: .4byte gUnknown_2037F02
+_0807618C: .4byte gBattleAnimArgs
_08076190:
ldr r1, _080761BC @ =gTasks
lsls r0, r4, 2
@@ -3995,7 +3995,7 @@ _080761C4: .4byte 0x00000101
thumb_func_start sub_80761C8
sub_80761C8: @ 80761C8
- ldr r3, _080761E8 @ =gUnknown_2037F02
+ ldr r3, _080761E8 @ =gBattleAnimArgs
ldrh r1, [r3, 0x2]
movs r2, 0
strh r1, [r0, 0xA]
@@ -4012,7 +4012,7 @@ sub_80761C8: @ 80761C8
str r1, [r0]
bx lr
.align 2, 0
-_080761E8: .4byte gUnknown_2037F02
+_080761E8: .4byte gBattleAnimArgs
_080761EC: .4byte sub_80761F0
thumb_func_end sub_80761C8
@@ -4099,7 +4099,7 @@ sub_8076288: @ 8076288
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080762A8 @ =gUnknown_2037F02
+ ldr r0, _080762A8 @ =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -4110,7 +4110,7 @@ sub_8076288: @ 8076288
bl DestroyAnimVisualTask
b _080762C2
.align 2, 0
-_080762A8: .4byte gUnknown_2037F02
+_080762A8: .4byte gBattleAnimArgs
_080762AC:
ldr r1, _080762C8 @ =gTasks
lsls r0, r4, 2
@@ -4428,7 +4428,7 @@ sub_80764EC: @ 80764EC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r1, _0807654C @ =gUnknown_2023D44
+ ldr r1, _0807654C @ =gBattlerSpriteIds
ldr r6, _08076550 @ =gBattlerPartyIndexes
_08076508:
adds r0, r4, r1
@@ -4463,7 +4463,7 @@ _08076508:
b _0807655E
.align 2, 0
_08076548: .4byte gSprites
-_0807654C: .4byte gUnknown_2023D44
+_0807654C: .4byte gBattlerSpriteIds
_08076550: .4byte gBattlerPartyIndexes
_08076554: .4byte gUnknown_2024018
_08076558: .4byte gPlayerParty
@@ -4680,7 +4680,7 @@ sub_80766B8: @ 80766B8
bhi _080766D6
movs r1, 0x2
_080766D6:
- ldr r0, _080766E8 @ =gUnknown_2037F02
+ ldr r0, _080766E8 @ =gBattleAnimArgs
strh r1, [r0, 0xE]
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -4688,7 +4688,7 @@ _080766D6:
bx r0
.align 2, 0
_080766E4: .4byte gUnknown_2037EFE
-_080766E8: .4byte gUnknown_2037F02
+_080766E8: .4byte gBattleAnimArgs
thumb_func_end sub_80766B8
thumb_func_start sub_80766EC
@@ -4699,14 +4699,14 @@ sub_80766EC: @ 80766EC
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
- ldr r6, _080767E0 @ =gUnknown_2037F1B
+ ldr r6, _080767E0 @ =gBattleAnimTarget
ldrb r0, [r6]
bl sub_8072DF0
lsls r0, 24
cmp r0, 0
beq _0807672C
ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gUnknown_2023D44
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
@@ -4725,7 +4725,7 @@ sub_80766EC: @ 80766EC
orrs r0, r2
strb r0, [r1, 0x5]
_0807672C:
- ldr r0, _080767EC @ =gUnknown_2037F1A
+ ldr r0, _080767EC @ =gBattleAnimAttacker
mov r8, r0
ldrb r0, [r0]
bl sub_8072DF0
@@ -4733,7 +4733,7 @@ _0807672C:
cmp r0, 0
beq _08076764
ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gUnknown_2023D44
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
mov r3, r8
ldrb r0, [r3]
adds r0, r1
@@ -4761,7 +4761,7 @@ _08076764:
cmp r0, 0
beq _0807679C
ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gUnknown_2023D44
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
ldrb r0, [r6]
eors r0, r5
adds r0, r1
@@ -4789,7 +4789,7 @@ _0807679C:
cmp r0, 0
beq _080767D4
ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gUnknown_2023D44
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
mov r3, r8
ldrb r0, [r3]
eors r0, r5
@@ -4815,10 +4815,10 @@ _080767D4:
pop {r0}
bx r0
.align 2, 0
-_080767E0: .4byte gUnknown_2037F1B
+_080767E0: .4byte gBattleAnimTarget
_080767E4: .4byte gSprites
-_080767E8: .4byte gUnknown_2023D44
-_080767EC: .4byte gUnknown_2037F1A
+_080767E8: .4byte gBattlerSpriteIds
+_080767EC: .4byte gBattleAnimAttacker
thumb_func_end sub_80766EC
thumb_func_start sub_80767F0
@@ -4840,7 +4840,7 @@ _080767FE:
beq _08076840
adds r0, r4, 0
bl sub_807685C
- ldr r3, _08076858 @ =gUnknown_2023D44
+ ldr r3, _08076858 @ =gBattlerSpriteIds
adds r3, r5, r3
ldrb r2, [r3]
lsls r1, r2, 4
@@ -4875,7 +4875,7 @@ _0807684A:
.align 2, 0
_08076850: .4byte gBattlersCount
_08076854: .4byte gSprites
-_08076858: .4byte gUnknown_2023D44
+_08076858: .4byte gBattlerSpriteIds
thumb_func_end sub_80767F0
thumb_func_start sub_807685C
@@ -5050,7 +5050,7 @@ _0807694E:
beq _080769C4
_0807699A:
lsls r0, r6, 3
- ldr r1, _080769C0 @ =gUnknown_82350AC
+ ldr r1, _080769C0 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _080769B8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -5065,10 +5065,10 @@ _080769B0: .4byte gUnknown_83AE084
_080769B4: .4byte gUnknown_83AE054
_080769B8: .4byte gMonSpritesGfxPtr
_080769BC: .4byte gUnknown_2024018
-_080769C0: .4byte gUnknown_82350AC
+_080769C0: .4byte gMonFrontPicTable
_080769C4:
lsls r0, r6, 3
- ldr r1, _080769E4 @ =gUnknown_82350AC
+ ldr r1, _080769E4 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _080769E8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -5080,10 +5080,10 @@ _080769C4:
str r2, [sp]
adds r2, r6, 0
mov r3, r8
- bl sub_800ECF0
+ bl LoadSpecialPokePic
b _08076A7C
.align 2, 0
-_080769E4: .4byte gUnknown_82350AC
+_080769E4: .4byte gMonFrontPicTable
_080769E8: .4byte gMonSpritesGfxPtr
_080769EC:
adds r0, r6, 0
@@ -5120,7 +5120,7 @@ _080769EC:
beq _08076A60
_08076A32:
lsls r0, r6, 3
- ldr r1, _08076A58 @ =gUnknown_823654C
+ ldr r1, _08076A58 @ =gMonBackPicTable
adds r0, r1
ldr r1, _08076A5C @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -5137,11 +5137,11 @@ _08076A46:
b _08076A7C
.align 2, 0
_08076A54: .4byte gUnknown_2024018
-_08076A58: .4byte gUnknown_823654C
+_08076A58: .4byte gMonBackPicTable
_08076A5C: .4byte gMonSpritesGfxPtr
_08076A60:
lsls r0, r6, 3
- ldr r1, _08076AC8 @ =gUnknown_823654C
+ ldr r1, _08076AC8 @ =gMonBackPicTable
adds r0, r1
ldr r1, _08076ACC @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -5152,7 +5152,7 @@ _08076A60:
str r2, [sp]
adds r2, r6, 0
mov r3, r8
- bl sub_800ECF0
+ bl LoadSpecialPokePic
_08076A7C:
ldr r5, _08076ACC @ =gMonSpritesGfxPtr
ldr r0, [r5]
@@ -5190,7 +5190,7 @@ _08076A7C:
ldr r3, _08076AD8 @ =gUnknown_82349CC
b _08076AEE
.align 2, 0
-_08076AC8: .4byte gUnknown_823654C
+_08076AC8: .4byte gMonBackPicTable
_08076ACC: .4byte gMonSpritesGfxPtr
_08076AD0: .4byte 0x06010000
_08076AD4: .4byte gUnknown_83AE054
@@ -5719,13 +5719,13 @@ sub_8076ED8: @ 8076ED8
push {r4,lr}
adds r4, r0, 0
bl sub_8074FCC
- ldr r0, _08076F10 @ =gUnknown_2037F1A
+ ldr r0, _08076F10 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08076F18
- ldr r2, _08076F14 @ =gUnknown_2037F02
+ ldr r2, _08076F14 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5742,10 +5742,10 @@ sub_8076ED8: @ 8076ED8
adds r1, r2, 0
b _08076F22
.align 2, 0
-_08076F10: .4byte gUnknown_2037F1A
-_08076F14: .4byte gUnknown_2037F02
+_08076F10: .4byte gBattleAnimAttacker
+_08076F14: .4byte gBattleAnimArgs
_08076F18:
- ldr r1, _08076F4C @ =gUnknown_2037F02
+ ldr r1, _08076F4C @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -5772,7 +5772,7 @@ _08076F22:
pop {r0}
bx r0
.align 2, 0
-_08076F4C: .4byte gUnknown_2037F02
+_08076F4C: .4byte gBattleAnimArgs
_08076F50: .4byte move_anim_8074EE0
_08076F54: .4byte sub_8074E70
thumb_func_end sub_8076ED8
@@ -5781,13 +5781,13 @@ _08076F54: .4byte sub_8074E70
sub_8076F58: @ 8076F58
push {r4,lr}
adds r4, r0, 0
- ldr r0, _08076F80 @ =gUnknown_2037F1A
+ ldr r0, _08076F80 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08076F88
- ldr r2, _08076F84 @ =gUnknown_2037F02
+ ldr r2, _08076F84 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5799,10 +5799,10 @@ sub_8076F58: @ 8076F58
adds r1, r2, 0
b _08076F92
.align 2, 0
-_08076F80: .4byte gUnknown_2037F1A
-_08076F84: .4byte gUnknown_2037F02
+_08076F80: .4byte gBattleAnimAttacker
+_08076F84: .4byte gBattleAnimArgs
_08076F88:
- ldr r1, _08076FC4 @ =gUnknown_2037F02
+ ldr r1, _08076FC4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -5832,7 +5832,7 @@ _08076F92:
pop {r0}
bx r0
.align 2, 0
-_08076FC4: .4byte gUnknown_2037F02
+_08076FC4: .4byte gBattleAnimArgs
_08076FC8: .4byte move_anim_8074EE0
_08076FCC: .4byte sub_8074E70
thumb_func_end sub_8076F58
@@ -5842,23 +5842,23 @@ sub_8076FD0: @ 8076FD0
push {r4,lr}
adds r4, r0, 0
bl sub_8074FCC
- ldr r0, _08076FF4 @ =gUnknown_2037F1A
+ ldr r0, _08076FF4 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08076FFC
- ldr r0, _08076FF8 @ =gUnknown_2037F02
+ ldr r0, _08076FF8 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _08077008
.align 2, 0
-_08076FF4: .4byte gUnknown_2037F1A
-_08076FF8: .4byte gUnknown_2037F02
+_08076FF4: .4byte gBattleAnimAttacker
+_08076FF8: .4byte gBattleAnimArgs
_08076FFC:
- ldr r1, _08077024 @ =gUnknown_2037F02
+ ldr r1, _08077024 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -5878,7 +5878,7 @@ _08077008:
pop {r0}
bx r0
.align 2, 0
-_08077024: .4byte gUnknown_2037F02
+_08077024: .4byte gBattleAnimArgs
_08077028: .4byte sub_8074F6C
_0807702C: .4byte DestroyAnimSprite
thumb_func_end sub_8076FD0
@@ -5899,7 +5899,7 @@ sub_8077030: @ 8077030
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x8]
- ldr r7, _080770C8 @ =gUnknown_2037F1A
+ ldr r7, _080770C8 @ =gBattleAnimAttacker
ldrb r0, [r7]
bl GetBattlerSide
lsls r0, 24
@@ -5959,7 +5959,7 @@ _080770C0:
b _080770D6
.align 2, 0
_080770C4: .4byte gTasks
-_080770C8: .4byte gUnknown_2037F1A
+_080770C8: .4byte gBattleAnimAttacker
_080770CC: .4byte gSprites
_080770D0: .4byte 0x00002771
_080770D4:
@@ -5974,7 +5974,7 @@ _080770D6:
adds r1, r2
ldr r2, _0807710C @ =0x04000008
bl CpuSet
- ldr r0, _08077110 @ =gUnknown_2037F02
+ ldr r0, _08077110 @ =gBattleAnimArgs
ldrb r2, [r0, 0x2]
ldrh r3, [r0]
adds r0, r6, 0
@@ -5989,7 +5989,7 @@ _080770D6:
_08077104: .4byte gPlttBufferUnfaded
_08077108: .4byte gPlttBufferFaded
_0807710C: .4byte 0x04000008
-_08077110: .4byte gUnknown_2037F02
+_08077110: .4byte gBattleAnimArgs
_08077114: .4byte sub_8077118
thumb_func_end sub_8077030
@@ -6198,7 +6198,7 @@ _08077298: .4byte gTasks
sub_807729C: @ 807729C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080772D0 @ =gUnknown_2037F1A
+ ldr r4, _080772D0 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -6219,7 +6219,7 @@ sub_807729C: @ 807729C
movs r0, 0x5
b _080772D6
.align 2, 0
-_080772D0: .4byte gUnknown_2037F1A
+_080772D0: .4byte gBattleAnimAttacker
_080772D4:
ldr r0, _080772E8 @ =0x0000fff6
_080772D6:
@@ -6289,7 +6289,7 @@ _08077348:
sub_8077350: @ 8077350
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _08077388 @ =gUnknown_2037F02
+ ldr r5, _08077388 @ =gBattleAnimArgs
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x8]
@@ -6300,7 +6300,7 @@ sub_8077350: @ 8077350
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x36]
- ldr r0, _0807738C @ =gUnknown_2037F1B
+ ldr r0, _0807738C @ =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -6315,8 +6315,8 @@ sub_8077350: @ 8077350
subs r0, 0x14
b _0807739E
.align 2, 0
-_08077388: .4byte gUnknown_2037F02
-_0807738C: .4byte gUnknown_2037F1B
+_08077388: .4byte gBattleAnimArgs
+_0807738C: .4byte gBattleAnimTarget
_08077390:
ldrh r0, [r5, 0x8]
subs r0, 0x1E
diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s
index 016e8b093..954878daa 100644
--- a/asm/battle_anim_sound_tasks.s
+++ b/asm/battle_anim_sound_tasks.s
@@ -15,7 +15,7 @@ sub_80DCE10: @ 80DCE10
adds r6, r0
lsls r6, 3
adds r6, r1
- ldr r1, _080DCE70 @ =gUnknown_2037F02
+ ldr r1, _080DCE70 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r6, 0x8]
ldrh r0, [r1, 0x2]
@@ -51,7 +51,7 @@ sub_80DCE10: @ 80DCE10
bx r0
.align 2, 0
_080DCE6C: .4byte gTasks
-_080DCE70: .4byte gUnknown_2037F02
+_080DCE70: .4byte gBattleAnimArgs
_080DCE74: .4byte sub_80DCE78
thumb_func_end sub_80DCE10
@@ -168,7 +168,7 @@ mas_80DCF38: @ 80DCF38
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _080DCFDC @ =gUnknown_2037F02
+ ldr r0, _080DCFDC @ =gBattleAnimArgs
ldrh r1, [r0]
str r1, [sp]
ldrb r5, [r0, 0x4]
@@ -236,7 +236,7 @@ mas_80DCF38: @ 80DCF38
pop {r0}
bx r0
.align 2, 0
-_080DCFDC: .4byte gUnknown_2037F02
+_080DCFDC: .4byte gBattleAnimArgs
_080DCFE0: .4byte gTasks
_080DCFE4: .4byte sub_80DCFE8
thumb_func_end mas_80DCF38
@@ -320,41 +320,41 @@ sub_80DD06C: @ 80DD06C
bl sub_8073A44
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, _080DD090 @ =gUnknown_2037F02
+ ldr r0, _080DD090 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DD098
- ldr r0, _080DD094 @ =gUnknown_2037F1A
+ ldr r0, _080DD094 @ =gBattleAnimAttacker
ldrb r4, [r0]
b _080DD0BE
.align 2, 0
-_080DD090: .4byte gUnknown_2037F02
-_080DD094: .4byte gUnknown_2037F1A
+_080DD090: .4byte gBattleAnimArgs
+_080DD094: .4byte gBattleAnimAttacker
_080DD098:
cmp r0, 0x1
bne _080DD0A8
- ldr r0, _080DD0A4 @ =gUnknown_2037F1B
+ ldr r0, _080DD0A4 @ =gBattleAnimTarget
ldrb r4, [r0]
b _080DD0BE
.align 2, 0
-_080DD0A4: .4byte gUnknown_2037F1B
+_080DD0A4: .4byte gBattleAnimTarget
_080DD0A8:
cmp r0, 0x2
bne _080DD0B4
- ldr r0, _080DD0B0 @ =gUnknown_2037F1A
+ ldr r0, _080DD0B0 @ =gBattleAnimAttacker
b _080DD0B6
.align 2, 0
-_080DD0B0: .4byte gUnknown_2037F1A
+_080DD0B0: .4byte gBattleAnimAttacker
_080DD0B4:
- ldr r0, _080DD0E0 @ =gUnknown_2037F1B
+ ldr r0, _080DD0E0 @ =gBattleAnimTarget
_080DD0B6:
ldrb r1, [r0]
movs r0, 0x2
adds r4, r0, 0
eors r4, r1
_080DD0BE:
- ldr r0, _080DD0E4 @ =gUnknown_2037F02
+ ldr r0, _080DD0E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -371,8 +371,8 @@ _080DD0CC:
bl DestroyAnimVisualTask
b _080DD13A
.align 2, 0
-_080DD0E0: .4byte gUnknown_2037F1B
-_080DD0E4: .4byte gUnknown_2037F02
+_080DD0E0: .4byte gBattleAnimTarget
+_080DD0E4: .4byte gBattleAnimArgs
_080DD0E8:
adds r0, r4, 0
bl GetBattlerSide
@@ -432,41 +432,41 @@ sub_80DD148: @ 80DD148
bl sub_8073A44
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080DD16C @ =gUnknown_2037F02
+ ldr r0, _080DD16C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DD174
- ldr r0, _080DD170 @ =gUnknown_2037F1A
+ ldr r0, _080DD170 @ =gBattleAnimAttacker
ldrb r4, [r0]
b _080DD19A
.align 2, 0
-_080DD16C: .4byte gUnknown_2037F02
-_080DD170: .4byte gUnknown_2037F1A
+_080DD16C: .4byte gBattleAnimArgs
+_080DD170: .4byte gBattleAnimAttacker
_080DD174:
cmp r0, 0x1
bne _080DD184
- ldr r0, _080DD180 @ =gUnknown_2037F1B
+ ldr r0, _080DD180 @ =gBattleAnimTarget
ldrb r4, [r0]
b _080DD19A
.align 2, 0
-_080DD180: .4byte gUnknown_2037F1B
+_080DD180: .4byte gBattleAnimTarget
_080DD184:
cmp r0, 0x2
bne _080DD190
- ldr r0, _080DD18C @ =gUnknown_2037F1A
+ ldr r0, _080DD18C @ =gBattleAnimAttacker
b _080DD192
.align 2, 0
-_080DD18C: .4byte gUnknown_2037F1A
+_080DD18C: .4byte gBattleAnimAttacker
_080DD190:
- ldr r0, _080DD1BC @ =gUnknown_2037F1B
+ ldr r0, _080DD1BC @ =gBattleAnimTarget
_080DD192:
ldrb r1, [r0]
movs r0, 0x2
adds r4, r0, 0
eors r4, r1
_080DD19A:
- ldr r0, _080DD1C0 @ =gUnknown_2037F02
+ ldr r0, _080DD1C0 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
@@ -483,8 +483,8 @@ _080DD1A8:
bl DestroyAnimVisualTask
b _080DD26A
.align 2, 0
-_080DD1BC: .4byte gUnknown_2037F1B
-_080DD1C0: .4byte gUnknown_2037F02
+_080DD1BC: .4byte gBattleAnimTarget
+_080DD1C0: .4byte gBattleAnimArgs
_080DD1C4:
adds r0, r4, 0
bl GetBattlerSide
@@ -521,7 +521,7 @@ _080DD1F6:
adds r0, r2, r6
lsls r0, 3
adds r0, r1
- ldr r4, _080DD240 @ =gUnknown_2037F02
+ ldr r4, _080DD240 @ =gBattleAnimArgs
ldrh r1, [r4, 0x2]
strh r1, [r0, 0x8]
strh r3, [r0, 0xA]
@@ -543,7 +543,7 @@ _080DD1F6:
_080DD234: .4byte gBattlerPartyIndexes
_080DD238: .4byte gPlayerParty
_080DD23C: .4byte gTasks
-_080DD240: .4byte gUnknown_2037F02
+_080DD240: .4byte gBattleAnimArgs
_080DD244:
adds r0, r3, 0
movs r2, 0x7
@@ -677,7 +677,7 @@ sub_80DD334: @ 80DD334
negs r0, r0
bl sub_8073A44
ldr r2, _080DD374 @ =gUnknown_2037F1C
- ldr r1, _080DD378 @ =gUnknown_2037F1A
+ ldr r1, _080DD378 @ =gBattleAnimAttacker
ldrb r1, [r1]
lsls r1, 1
adds r1, r2
@@ -701,7 +701,7 @@ sub_80DD334: @ 80DD334
b _080DD38A
.align 2, 0
_080DD374: .4byte gUnknown_2037F1C
-_080DD378: .4byte gUnknown_2037F1A
+_080DD378: .4byte gBattleAnimAttacker
_080DD37C: .4byte gTasks
_080DD380: .4byte sub_80DD390
_080DD384:
@@ -758,7 +758,7 @@ sub_80DD3DC: @ 80DD3DC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080DD40C @ =gUnknown_2037F02
+ ldr r0, _080DD40C @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
@@ -775,7 +775,7 @@ sub_80DD3DC: @ 80DD3DC
pop {r0}
bx r0
.align 2, 0
-_080DD40C: .4byte gUnknown_2037F02
+_080DD40C: .4byte gBattleAnimArgs
thumb_func_end sub_80DD3DC
thumb_func_start sub_80DD410
@@ -784,7 +784,7 @@ sub_80DD410: @ 80DD410
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080DD440 @ =gUnknown_2037F02
+ ldr r0, _080DD440 @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
@@ -801,7 +801,7 @@ sub_80DD410: @ 80DD410
pop {r0}
bx r0
.align 2, 0
-_080DD440: .4byte gUnknown_2037F02
+_080DD440: .4byte gBattleAnimArgs
thumb_func_end sub_80DD410
thumb_func_start sub_80DD444
@@ -814,7 +814,7 @@ sub_80DD444: @ 80DD444
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _080DD4C8 @ =gUnknown_2037F02
+ ldr r0, _080DD4C8 @ =gBattleAnimArgs
ldrb r5, [r0, 0x2]
ldrb r6, [r0, 0x4]
ldrh r1, [r0, 0x6]
@@ -868,7 +868,7 @@ sub_80DD444: @ 80DD444
pop {r0}
bx r0
.align 2, 0
-_080DD4C8: .4byte gUnknown_2037F02
+_080DD4C8: .4byte gBattleAnimArgs
_080DD4CC: .4byte gTasks
_080DD4D0: .4byte sub_80DD4D4
thumb_func_end sub_80DD444
diff --git a/asm/battle_anim_80EEC0C.s b/asm/battle_anim_special.s
index 82179f2e0..704a1e9a7 100644
--- a/asm/battle_anim_80EEC0C.s
+++ b/asm/battle_anim_special.s
@@ -16,7 +16,7 @@ sub_80EEC0C: @ 80EEC0C
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
- ldr r0, _080EEDB4 @ =gUnknown_2037F1A
+ ldr r0, _080EEDB4 @ =gBattleAnimAttacker
ldrb r4, [r0]
ldr r0, _080EEDB8 @ =gUnknown_2022984
movs r1, 0
@@ -168,12 +168,12 @@ sub_80EEC0C: @ 80EEC0C
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- ldr r1, _080EEDE4 @ =gUnknown_2022978
+ ldr r1, _080EEDE4 @ =gBattle_BG1_X
ldrh r0, [r7, 0x20]
negs r0, r0
adds r0, 0x20
strh r0, [r1]
- ldr r1, _080EEDE8 @ =gUnknown_202297A
+ ldr r1, _080EEDE8 @ =gBattle_BG1_Y
ldrh r0, [r7, 0x22]
negs r0, r0
subs r0, 0x20
@@ -203,7 +203,7 @@ sub_80EEC0C: @ 80EEC0C
pop {r0}
bx r0
.align 2, 0
-_080EEDB4: .4byte gUnknown_2037F1A
+_080EEDB4: .4byte gBattleAnimAttacker
_080EEDB8: .4byte gUnknown_2022984
_080EEDBC: .4byte gUnknown_2022986
_080EEDC0: .4byte 0x00003f3f
@@ -215,8 +215,8 @@ _080EEDD4: .4byte SpriteCallbackDummy
_080EEDD8: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap
_080EEDDC: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet
_080EEDE0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette
-_080EEDE4: .4byte gUnknown_2022978
-_080EEDE8: .4byte gUnknown_202297A
+_080EEDE4: .4byte gBattle_BG1_X
+_080EEDE8: .4byte gBattle_BG1_Y
_080EEDEC: .4byte gTasks
_080EEDF0: .4byte sub_80EEDF4
thumb_func_end sub_80EEC0C
@@ -228,7 +228,7 @@ sub_80EEDF4: @ 80EEDF4
push {r7}
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _080EEE3C @ =gUnknown_2037F1A
+ ldr r0, _080EEE3C @ =gBattleAnimAttacker
ldrb r0, [r0]
mov r8, r0
ldr r1, _080EEE40 @ =gTasks
@@ -241,7 +241,7 @@ sub_80EEDF4: @ 80EEDF4
adds r1, r0
movs r3, 0
strh r1, [r5, 0x22]
- ldr r2, _080EEE44 @ =gUnknown_202297A
+ ldr r2, _080EEE44 @ =gBattle_BG1_Y
lsls r0, r1, 16
lsrs r0, 24
ldrh r4, [r2]
@@ -260,9 +260,9 @@ sub_80EEDF4: @ 80EEDF4
beq _080EEE4E
b _080EEFA8
.align 2, 0
-_080EEE3C: .4byte gUnknown_2037F1A
+_080EEE3C: .4byte gBattleAnimAttacker
_080EEE40: .4byte gTasks
-_080EEE44: .4byte gUnknown_202297A
+_080EEE44: .4byte gBattle_BG1_Y
_080EEE48:
cmp r0, 0x2
beq _080EEE9C
@@ -569,7 +569,7 @@ sub_80EF0B4: @ 80EF0B4
lsrs r4, 24
mov r1, sp
adds r1, 0x1
- ldr r0, _080EF0DC @ =gUnknown_2037F1A
+ ldr r0, _080EF0DC @ =gBattleAnimAttacker
ldrb r2, [r0]
mov r0, sp
bl sub_80EEFC8
@@ -580,7 +580,7 @@ sub_80EF0B4: @ 80EF0B4
pop {r0}
bx r0
.align 2, 0
-_080EF0DC: .4byte gUnknown_2037F1A
+_080EF0DC: .4byte gBattleAnimAttacker
thumb_func_end sub_80EF0B4
thumb_func_start sub_80EF0E0
@@ -664,7 +664,7 @@ sub_80EF180: @ 80EF180
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080EF19C @ =gUnknown_2037F1A
+ ldr r0, _080EF19C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80EF0E0
adds r0, r4, 0
@@ -673,7 +673,7 @@ sub_80EF180: @ 80EF180
pop {r0}
bx r0
.align 2, 0
-_080EF19C: .4byte gUnknown_2037F1A
+_080EF19C: .4byte gBattleAnimAttacker
thumb_func_end sub_80EF180
thumb_func_start sub_80EF1A0
@@ -685,7 +685,7 @@ sub_80EF1A0: @ 80EF1A0
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r2, _080EF1C4 @ =gUnknown_2037F02
+ ldr r2, _080EF1C4 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
ldrh r0, [r2, 0x2]
@@ -695,7 +695,7 @@ sub_80EF1A0: @ 80EF1A0
bx lr
.align 2, 0
_080EF1C0: .4byte gTasks
-_080EF1C4: .4byte gUnknown_2037F02
+_080EF1C4: .4byte gBattleAnimArgs
_080EF1C8: .4byte sub_80EF1CC
thumb_func_end sub_80EF1A0
@@ -809,8 +809,8 @@ sub_80EF298: @ 80EF298
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r1, _080EF2C4 @ =gUnknown_2023D44
- ldr r0, _080EF2C8 @ =gUnknown_2037F1A
+ ldr r1, _080EF2C4 @ =gBattlerSpriteIds
+ ldr r0, _080EF2C8 @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r5, [r0]
@@ -829,8 +829,8 @@ sub_80EF298: @ 80EF298
beq _080EF2D6
b _080EF338
.align 2, 0
-_080EF2C4: .4byte gUnknown_2023D44
-_080EF2C8: .4byte gUnknown_2037F1A
+_080EF2C4: .4byte gBattlerSpriteIds
+_080EF2C8: .4byte gBattleAnimAttacker
_080EF2CC: .4byte gTasks
_080EF2D0:
cmp r0, 0x2
@@ -900,8 +900,8 @@ sub_80EF344: @ 80EF344
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, _080EF37C @ =gUnknown_2023D44
- ldr r4, _080EF380 @ =gUnknown_2037F1A
+ ldr r1, _080EF37C @ =gBattlerSpriteIds
+ ldr r4, _080EF380 @ =gBattleAnimAttacker
ldrb r0, [r4]
adds r1, r0, r1
ldrb r1, [r1]
@@ -920,8 +920,8 @@ sub_80EF344: @ 80EF344
ldr r1, _080EF388 @ =gPlayerParty
b _080EF39C
.align 2, 0
-_080EF37C: .4byte gUnknown_2023D44
-_080EF380: .4byte gUnknown_2037F1A
+_080EF37C: .4byte gBattlerSpriteIds
+_080EF380: .4byte gBattleAnimAttacker
_080EF384: .4byte gBattlerPartyIndexes
_080EF388: .4byte gPlayerParty
_080EF38C:
@@ -960,7 +960,7 @@ _080EF3CC: .4byte gBattlerPartyIndexes
_080EF3D0: .4byte gEnemyParty
_080EF3D4: .4byte gTasks
_080EF3D8:
- ldr r5, _080EF450 @ =gUnknown_2037F1A
+ ldr r5, _080EF450 @ =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8074480
@@ -1015,7 +1015,7 @@ _080EF3D8:
strh r0, [r6, 0x8]
b _080EF482
.align 2, 0
-_080EF450: .4byte gUnknown_2037F1A
+_080EF450: .4byte gBattleAnimAttacker
_080EF454: .4byte gSprites
_080EF458:
movs r1, 0x1C
@@ -1103,21 +1103,21 @@ sub_80EF4E0: @ 80EF4E0
beq _080EF504
cmp r0, 0x6
beq _080EF514
- ldr r1, _080EF500 @ =gUnknown_2037F02
+ ldr r1, _080EF500 @ =gBattleAnimArgs
movs r0, 0
b _080EF518
.align 2, 0
_080EF4FC: .4byte gUnknown_2024018
-_080EF500: .4byte gUnknown_2037F02
+_080EF500: .4byte gBattleAnimArgs
_080EF504:
- ldr r1, _080EF50C @ =gUnknown_2037F02
+ ldr r1, _080EF50C @ =gBattleAnimArgs
ldr r0, _080EF510 @ =0x0000ffff
b _080EF518
.align 2, 0
-_080EF50C: .4byte gUnknown_2037F02
+_080EF50C: .4byte gBattleAnimArgs
_080EF510: .4byte 0x0000ffff
_080EF514:
- ldr r1, _080EF524 @ =gUnknown_2037F02
+ ldr r1, _080EF524 @ =gBattleAnimArgs
ldr r0, _080EF528 @ =0x0000fffe
_080EF518:
strh r0, [r1, 0xE]
@@ -1126,7 +1126,7 @@ _080EF518:
pop {r0}
bx r0
.align 2, 0
-_080EF524: .4byte gUnknown_2037F02
+_080EF524: .4byte gBattleAnimArgs
_080EF528: .4byte 0x0000fffe
thumb_func_end sub_80EF4E0
@@ -1236,7 +1236,7 @@ sub_80EF5AC: @ 80EF5AC
adds r6, r4, r1
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r2, _080EF680 @ =gUnknown_2037F1B
+ ldr r2, _080EF680 @ =gBattleAnimTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0
@@ -1260,7 +1260,7 @@ sub_80EF5AC: @ 80EF5AC
ldr r0, _080EF688 @ =gUnknown_2024018
ldr r0, [r0]
ldr r3, [r0, 0x8]
- ldr r1, _080EF68C @ =gUnknown_2023D44
+ ldr r1, _080EF68C @ =gBattlerSpriteIds
mov r2, r8
ldrb r0, [r2]
adds r0, r1
@@ -1300,10 +1300,10 @@ sub_80EF5AC: @ 80EF5AC
_080EF674: .4byte gUnknown_2023D68
_080EF678: .4byte gUnknown_82606F4
_080EF67C: .4byte gSprites
-_080EF680: .4byte gUnknown_2037F1B
+_080EF680: .4byte gBattleAnimTarget
_080EF684: .4byte sub_80EF8C0
_080EF688: .4byte gUnknown_2024018
-_080EF68C: .4byte gUnknown_2023D44
+_080EF68C: .4byte gBattlerSpriteIds
_080EF690: .4byte gTasks
_080EF694: .4byte sub_80EF698
thumb_func_end sub_80EF5AC
@@ -1407,7 +1407,7 @@ _080EF708:
adds r6, r4, r0
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r1, _080EF7D4 @ =gUnknown_2037F1B
+ ldr r1, _080EF7D4 @ =gBattleAnimTarget
mov r8, r1
ldrb r0, [r1]
movs r1, 0
@@ -1430,7 +1430,7 @@ _080EF708:
str r0, [r4]
movs r0, 0
bl GetBattlerAtPosition
- ldr r1, _080EF7DC @ =gUnknown_2023D44
+ ldr r1, _080EF7DC @ =gBattlerSpriteIds
lsls r0, 24
lsrs r0, 24
adds r0, r1
@@ -1460,9 +1460,9 @@ _080EF7C4: .4byte gSaveBlock2Ptr
_080EF7C8: .4byte gUnknown_2023D68
_080EF7CC: .4byte gUnknown_82606F4
_080EF7D0: .4byte gSprites
-_080EF7D4: .4byte gUnknown_2037F1B
+_080EF7D4: .4byte gBattleAnimTarget
_080EF7D8: .4byte SpriteCallbackDummy
-_080EF7DC: .4byte gUnknown_2023D44
+_080EF7DC: .4byte gBattlerSpriteIds
_080EF7E0: .4byte sub_8012354
_080EF7E4: .4byte gTasks
_080EF7E8: .4byte sub_80EF7EC
@@ -1476,7 +1476,7 @@ sub_80EF7EC: @ 80EF7EC
ldr r6, _080EF84C @ =gSprites
movs r0, 0
bl GetBattlerAtPosition
- ldr r1, _080EF850 @ =gUnknown_2023D44
+ ldr r1, _080EF850 @ =gBattlerSpriteIds
lsls r0, 24
lsrs r0, 24
adds r0, r1
@@ -1518,7 +1518,7 @@ _080EF846:
bx r0
.align 2, 0
_080EF84C: .4byte gSprites
-_080EF850: .4byte gUnknown_2023D44
+_080EF850: .4byte gBattlerSpriteIds
_080EF854: .4byte gTasks
_080EF858: .4byte sub_80EF8C0
_080EF85C: .4byte sub_80EF864
@@ -1533,7 +1533,7 @@ sub_80EF864: @ 80EF864
ldr r6, _080EF8B8 @ =gSprites
movs r0, 0
bl GetBattlerAtPosition
- ldr r4, _080EF8BC @ =gUnknown_2023D44
+ ldr r4, _080EF8BC @ =gBattlerSpriteIds
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -1567,7 +1567,7 @@ _080EF8B0:
bx r0
.align 2, 0
_080EF8B8: .4byte gSprites
-_080EF8BC: .4byte gUnknown_2023D44
+_080EF8BC: .4byte gBattlerSpriteIds
thumb_func_end sub_80EF864
thumb_func_start sub_80EF8C0
@@ -1674,7 +1674,7 @@ _080EF954:
movs r2, 0x1
movs r3, 0x1C
bl LaunchBallStarsTask
- ldr r0, _080EF9B0 @ =gUnknown_2037F1B
+ ldr r0, _080EF9B0 @ =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0
movs r2, 0xE
@@ -1688,7 +1688,7 @@ _080EF99E:
.align 2, 0
_080EF9A8: .4byte sub_80EF9B4
_080EF9AC: .4byte gUnknown_2023D68
-_080EF9B0: .4byte gUnknown_2037F1B
+_080EF9B0: .4byte gBattleAnimTarget
thumb_func_end sub_80EF8F0
thumb_func_start sub_80EF9B4
@@ -1711,8 +1711,8 @@ sub_80EF9B4: @ 80EF9B4
ldr r0, _080EF9FC @ =sub_80EFA0C
str r0, [r4, 0x1C]
ldr r2, _080EFA00 @ =gSprites
- ldr r1, _080EFA04 @ =gUnknown_2023D44
- ldr r0, _080EFA08 @ =gUnknown_2037F1B
+ ldr r1, _080EFA04 @ =gBattlerSpriteIds
+ ldr r0, _080EFA08 @ =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -1730,16 +1730,16 @@ _080EF9F0:
_080EF9F8: .4byte TaskDummy
_080EF9FC: .4byte sub_80EFA0C
_080EFA00: .4byte gSprites
-_080EFA04: .4byte gUnknown_2023D44
-_080EFA08: .4byte gUnknown_2037F1B
+_080EFA04: .4byte gBattlerSpriteIds
+_080EFA08: .4byte gBattleAnimTarget
thumb_func_end sub_80EF9B4
thumb_func_start sub_80EFA0C
sub_80EFA0C: @ 80EFA0C
push {r4-r7,lr}
adds r7, r0, 0
- ldr r1, _080EFA50 @ =gUnknown_2023D44
- ldr r0, _080EFA54 @ =gUnknown_2037F1B
+ ldr r1, _080EFA50 @ =gBattlerSpriteIds
+ ldr r0, _080EFA54 @ =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r4, [r0]
@@ -1771,8 +1771,8 @@ _080EFA3E:
beq _080EFA62
b _080EFB20
.align 2, 0
-_080EFA50: .4byte gUnknown_2023D44
-_080EFA54: .4byte gUnknown_2037F1B
+_080EFA50: .4byte gBattlerSpriteIds
+_080EFA54: .4byte gBattleAnimTarget
_080EFA58: .4byte gTasks
_080EFA5C:
cmp r0, 0x2
@@ -2495,7 +2495,7 @@ sub_80EFFC4: @ 80EFFC4
push {r7}
sub sp, 0x4
adds r6, r0, 0
- ldr r7, _080F0004 @ =gUnknown_2037F1B
+ ldr r7, _080F0004 @ =gBattleAnimTarget
ldrh r0, [r6, 0x36]
adds r0, 0x1
movs r1, 0
@@ -2519,7 +2519,7 @@ sub_80EFFC4: @ 80EFFC4
bl sub_80F01B8
b _080F0088
.align 2, 0
-_080F0004: .4byte gUnknown_2037F1B
+_080F0004: .4byte gBattleAnimTarget
_080F0008:
cmp r1, 0x3C
bne _080F0026
@@ -2555,7 +2555,7 @@ _080F004C:
cmp r1, r0
bne _080F0088
ldr r5, _080F0098 @ =gSprites
- ldr r4, _080F009C @ =gUnknown_2023D44
+ ldr r4, _080F009C @ =gBattlerSpriteIds
ldrb r0, [r7]
adds r0, r4
ldrb r1, [r0]
@@ -2589,7 +2589,7 @@ _080F0088:
.align 2, 0
_080F0094: .4byte 0x0000013b
_080F0098: .4byte gSprites
-_080F009C: .4byte gUnknown_2023D44
+_080F009C: .4byte gBattlerSpriteIds
_080F00A0: .4byte sub_80F00A4
thumb_func_end sub_80EFFC4
@@ -2893,7 +2893,7 @@ sub_80F02B0: @ 80F02B0
movs r2, 0x1
movs r3, 0x1C
bl LaunchBallStarsTask
- ldr r0, _080F036C @ =gUnknown_2037F1B
+ ldr r0, _080F036C @ =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0xE
@@ -2901,8 +2901,8 @@ sub_80F02B0: @ 80F02B0
bl LaunchBallFadeMonTask
_080F0302:
ldr r6, _080F0370 @ =gSprites
- ldr r5, _080F0374 @ =gUnknown_2023D44
- ldr r4, _080F036C @ =gUnknown_2037F1B
+ ldr r5, _080F0374 @ =gBattlerSpriteIds
+ ldr r4, _080F036C @ =gBattleAnimTarget
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
@@ -2950,9 +2950,9 @@ _080F0302:
.align 2, 0
_080F0364: .4byte sub_80F0378
_080F0368: .4byte gUnknown_2023D68
-_080F036C: .4byte gUnknown_2037F1B
+_080F036C: .4byte gBattleAnimTarget
_080F0370: .4byte gSprites
-_080F0374: .4byte gUnknown_2023D44
+_080F0374: .4byte gBattlerSpriteIds
thumb_func_end sub_80F02B0
thumb_func_start sub_80F0378
@@ -2974,8 +2974,8 @@ sub_80F0378: @ 80F0378
strb r0, [r2]
_080F0396:
ldr r4, _080F03C4 @ =gSprites
- ldr r3, _080F03C8 @ =gUnknown_2023D44
- ldr r2, _080F03CC @ =gUnknown_2037F1B
+ ldr r3, _080F03C8 @ =gBattlerSpriteIds
+ ldr r2, _080F03CC @ =gBattleAnimTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2996,8 +2996,8 @@ _080F0396:
b _080F03F0
.align 2, 0
_080F03C4: .4byte gSprites
-_080F03C8: .4byte gUnknown_2023D44
-_080F03CC: .4byte gUnknown_2037F1B
+_080F03C8: .4byte gBattlerSpriteIds
+_080F03CC: .4byte gBattleAnimTarget
_080F03D0:
ldr r6, _080F045C @ =0xfffffee0
adds r0, r6, 0
@@ -3026,8 +3026,8 @@ _080F03F0:
cmp r5, 0
beq _080F0456
ldr r4, _080F0460 @ =gSprites
- ldr r3, _080F0464 @ =gUnknown_2023D44
- ldr r2, _080F0468 @ =gUnknown_2037F1B
+ ldr r3, _080F0464 @ =gBattlerSpriteIds
+ ldr r2, _080F0468 @ =gBattleAnimTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -3073,8 +3073,8 @@ _080F0456:
.align 2, 0
_080F045C: .4byte 0xfffffee0
_080F0460: .4byte gSprites
-_080F0464: .4byte gUnknown_2023D44
-_080F0468: .4byte gUnknown_2037F1B
+_080F0464: .4byte gBattlerSpriteIds
+_080F0468: .4byte gBattleAnimTarget
_080F046C: .4byte gUnknown_2024018
_080F0470: .4byte sub_80F018C
_080F0474: .4byte gUnknown_2024005
@@ -5082,8 +5082,8 @@ sub_80F1420: @ 80F1420
lsrs r7, r0, 24
movs r0, 0
mov r8, r0
- ldr r0, _080F1454 @ =gUnknown_2023D44
- ldr r3, _080F1458 @ =gUnknown_2037F1A
+ ldr r0, _080F1454 @ =gBattlerSpriteIds
+ ldr r3, _080F1458 @ =gBattleAnimAttacker
ldrb r2, [r3]
adds r0, r2, r0
ldrb r6, [r0]
@@ -5102,15 +5102,15 @@ sub_80F1420: @ 80F1420
beq _080F1466
b _080F15BA
.align 2, 0
-_080F1454: .4byte gUnknown_2023D44
-_080F1458: .4byte gUnknown_2037F1A
+_080F1454: .4byte gBattlerSpriteIds
+_080F1458: .4byte gBattleAnimAttacker
_080F145C: .4byte gTasks
_080F1460:
cmp r0, 0x2
beq _080F150A
b _080F15BA
_080F1466:
- ldr r0, _080F14A0 @ =gUnknown_2037F02
+ ldr r0, _080F14A0 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r5, 0x1E]
movs r2, 0xA0
@@ -5138,7 +5138,7 @@ _080F1466:
adds r4, r3, 0
b _080F14C0
.align 2, 0
-_080F14A0: .4byte gUnknown_2037F02
+_080F14A0: .4byte gBattleAnimArgs
_080F14A4: .4byte gSprites
_080F14A8:
ldr r3, _080F14F0 @ =gSprites
@@ -5238,7 +5238,7 @@ _080F1558:
adds r0, r1
ldrb r1, [r0, 0x8]
strh r1, [r0, 0x8]
- ldr r0, _080F1594 @ =gUnknown_2037F1A
+ ldr r0, _080F1594 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
@@ -5259,7 +5259,7 @@ _080F1558:
.align 2, 0
_080F158C: .4byte gSprites
_080F1590: .4byte gTasks
-_080F1594: .4byte gUnknown_2037F1A
+_080F1594: .4byte gBattleAnimAttacker
_080F1598:
ldr r0, _080F15C4 @ =gSprites
adds r1, r4, r6
@@ -5315,7 +5315,7 @@ _080F15F0:
beq _080F167E
b _080F16B4
_080F15F6:
- ldr r0, _080F1610 @ =gUnknown_2037F1A
+ ldr r0, _080F1610 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80768B0
lsls r0, 24
@@ -5327,7 +5327,7 @@ _080F15F6:
bl SetGpuReg
b _080F1620
.align 2, 0
-_080F1610: .4byte gUnknown_2037F1A
+_080F1610: .4byte gBattleAnimAttacker
_080F1614: .4byte 0x00003f42
_080F1618:
ldr r1, _080F163C @ =0x00003f44
@@ -5379,8 +5379,8 @@ _080F1644:
strh r0, [r4, 0x26]
b _080F16B4
_080F167E:
- ldr r1, _080F16BC @ =gUnknown_2023D44
- ldr r4, _080F16C0 @ =gUnknown_2037F1A
+ ldr r1, _080F16BC @ =gBattlerSpriteIds
+ ldr r4, _080F16C0 @ =gBattleAnimAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
@@ -5408,8 +5408,8 @@ _080F16B4:
pop {r0}
bx r0
.align 2, 0
-_080F16BC: .4byte gUnknown_2023D44
-_080F16C0: .4byte gUnknown_2037F1A
+_080F16BC: .4byte gBattlerSpriteIds
+_080F16C0: .4byte gBattleAnimAttacker
_080F16C4: .4byte gSprites
_080F16C8: .4byte 0x06010000
thumb_func_end sub_80F15C8
@@ -5419,10 +5419,10 @@ sub_80F16CC: @ 80F16CC
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, _080F16F4 @ =gUnknown_2037F02
+ ldr r3, _080F16F4 @ =gBattleAnimArgs
ldr r1, _080F16F8 @ =gUnknown_2024018
ldr r2, [r1]
- ldr r1, _080F16FC @ =gUnknown_2037F1A
+ ldr r1, _080F16FC @ =gBattleAnimAttacker
ldrb r1, [r1]
ldr r2, [r2]
lsls r1, 2
@@ -5435,9 +5435,9 @@ sub_80F16CC: @ 80F16CC
pop {r0}
bx r0
.align 2, 0
-_080F16F4: .4byte gUnknown_2037F02
+_080F16F4: .4byte gBattleAnimArgs
_080F16F8: .4byte gUnknown_2024018
-_080F16FC: .4byte gUnknown_2037F1A
+_080F16FC: .4byte gBattleAnimAttacker
thumb_func_end sub_80F16CC
thumb_func_start sub_80F1700
@@ -5445,7 +5445,7 @@ sub_80F1700: @ 80F1700
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080F1718 @ =gUnknown_2037F1B
+ ldr r2, _080F1718 @ =gBattleAnimTarget
ldr r1, _080F171C @ =gUnknown_2023D6E
ldrb r1, [r1]
strb r1, [r2]
@@ -5453,7 +5453,7 @@ sub_80F1700: @ 80F1700
pop {r0}
bx r0
.align 2, 0
-_080F1718: .4byte gUnknown_2037F1B
+_080F1718: .4byte gBattleAnimTarget
_080F171C: .4byte gUnknown_2023D6E
thumb_func_end sub_80F1700
@@ -5992,7 +5992,7 @@ sub_80F1B3C: @ 80F1B3C
movs r1, 0
bl sub_8074480
lsls r0, 24
- ldr r5, _080F1BB0 @ =gUnknown_2037F02
+ ldr r5, _080F1BB0 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5, 0x4]
adds r0, r1
@@ -6013,8 +6013,8 @@ sub_80F1B3C: @ 80F1B3C
adds r0, r4, 0
bl sub_8075068
ldr r2, _080F1BB8 @ =gSprites
- ldr r1, _080F1BBC @ =gUnknown_2023D44
- ldr r0, _080F1BC0 @ =gUnknown_2037F1A
+ ldr r1, _080F1BBC @ =gBattlerSpriteIds
+ ldr r0, _080F1BC0 @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -6031,11 +6031,11 @@ sub_80F1B3C: @ 80F1B3C
pop {r0}
bx r0
.align 2, 0
-_080F1BB0: .4byte gUnknown_2037F02
+_080F1BB0: .4byte gBattleAnimArgs
_080F1BB4: .4byte 0x0000ffe0
_080F1BB8: .4byte gSprites
-_080F1BBC: .4byte gUnknown_2023D44
-_080F1BC0: .4byte gUnknown_2037F1A
+_080F1BBC: .4byte gBattlerSpriteIds
+_080F1BC0: .4byte gBattleAnimAttacker
_080F1BC4: .4byte sub_8012354
_080F1BC8: .4byte sub_80F1BCC
thumb_func_end sub_80F1B3C
@@ -6045,8 +6045,8 @@ sub_80F1BCC: @ 80F1BCC
push {lr}
adds r3, r0, 0
ldr r2, _080F1BF4 @ =gSprites
- ldr r1, _080F1BF8 @ =gUnknown_2023D44
- ldr r0, _080F1BFC @ =gUnknown_2037F1A
+ ldr r1, _080F1BF8 @ =gBattlerSpriteIds
+ ldr r0, _080F1BFC @ =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -6065,8 +6065,8 @@ _080F1BF0:
bx r0
.align 2, 0
_080F1BF4: .4byte gSprites
-_080F1BF8: .4byte gUnknown_2023D44
-_080F1BFC: .4byte gUnknown_2037F1A
+_080F1BF8: .4byte gBattlerSpriteIds
+_080F1BFC: .4byte gBattleAnimAttacker
_080F1C00: .4byte sub_80F1C04
thumb_func_end sub_80F1BCC
@@ -6101,8 +6101,8 @@ sub_80F1C30: @ 80F1C30
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _080F1C80 @ =gSprites
- ldr r3, _080F1C84 @ =gUnknown_2023D44
- ldr r2, _080F1C88 @ =gUnknown_2037F1A
+ ldr r3, _080F1C84 @ =gBattlerSpriteIds
+ ldr r2, _080F1C88 @ =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -6138,8 +6138,8 @@ _080F1C78:
bx r0
.align 2, 0
_080F1C80: .4byte gSprites
-_080F1C84: .4byte gUnknown_2023D44
-_080F1C88: .4byte gUnknown_2037F1A
+_080F1C84: .4byte gBattlerSpriteIds
+_080F1C88: .4byte gBattleAnimAttacker
thumb_func_end sub_80F1C30
thumb_func_start sub_80F1C8C
@@ -6147,7 +6147,7 @@ sub_80F1C8C: @ 80F1C8C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080F1CA4 @ =gUnknown_2037F02
+ ldr r0, _080F1CA4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -6156,25 +6156,25 @@ sub_80F1C8C: @ 80F1C8C
beq _080F1CBC
b _080F1CD0
.align 2, 0
-_080F1CA4: .4byte gUnknown_2037F02
+_080F1CA4: .4byte gBattleAnimArgs
_080F1CA8:
movs r0, 0
bl GetBattlerAtPosition
- ldr r1, _080F1CB8 @ =gUnknown_2037F1A
+ ldr r1, _080F1CB8 @ =gBattleAnimAttacker
strb r0, [r1]
movs r0, 0x1
b _080F1CC8
.align 2, 0
-_080F1CB8: .4byte gUnknown_2037F1A
+_080F1CB8: .4byte gBattleAnimAttacker
_080F1CBC:
movs r0, 0x1
bl GetBattlerAtPosition
- ldr r1, _080F1CDC @ =gUnknown_2037F1A
+ ldr r1, _080F1CDC @ =gBattleAnimAttacker
strb r0, [r1]
movs r0, 0
_080F1CC8:
bl GetBattlerAtPosition
- ldr r1, _080F1CE0 @ =gUnknown_2037F1B
+ ldr r1, _080F1CE0 @ =gBattleAnimTarget
strb r0, [r1]
_080F1CD0:
adds r0, r4, 0
@@ -6183,8 +6183,8 @@ _080F1CD0:
pop {r0}
bx r0
.align 2, 0
-_080F1CDC: .4byte gUnknown_2037F1A
-_080F1CE0: .4byte gUnknown_2037F1B
+_080F1CDC: .4byte gBattleAnimAttacker
+_080F1CE0: .4byte gBattleAnimTarget
thumb_func_end sub_80F1C8C
thumb_func_start sub_80F1CE4
@@ -6196,14 +6196,14 @@ sub_80F1CE4: @ 80F1CE4
ldrb r0, [r2, 0x5]
cmp r0, 0x2
bls _080F1D00
- ldr r1, _080F1CFC @ =gUnknown_2037F02
+ ldr r1, _080F1CFC @ =gBattleAnimArgs
movs r0, 0
b _080F1D04
.align 2, 0
_080F1CF8: .4byte gUnknown_2023E82
-_080F1CFC: .4byte gUnknown_2037F02
+_080F1CFC: .4byte gBattleAnimArgs
_080F1D00:
- ldr r1, _080F1D10 @ =gUnknown_2037F02
+ ldr r1, _080F1D10 @ =gBattleAnimArgs
ldrb r0, [r2, 0x5]
_080F1D04:
strh r0, [r1, 0xE]
@@ -6212,7 +6212,7 @@ _080F1D04:
pop {r0}
bx r0
.align 2, 0
-_080F1D10: .4byte gUnknown_2037F02
+_080F1D10: .4byte gBattleAnimArgs
thumb_func_end sub_80F1CE4
thumb_func_start sub_80F1D14
@@ -6226,40 +6226,40 @@ sub_80F1D14: @ 80F1D14
ldrh r1, [r0]
cmp r1, 0x53
bne _080F1D34
- ldr r1, _080F1D30 @ =gUnknown_2037F02
+ ldr r1, _080F1D30 @ =gBattleAnimArgs
movs r0, 0x1
b _080F1D6C
.align 2, 0
_080F1D2C: .4byte gUnknown_2024018
-_080F1D30: .4byte gUnknown_2037F02
+_080F1D30: .4byte gBattleAnimArgs
_080F1D34:
cmp r1, 0xFA
bne _080F1D44
- ldr r1, _080F1D40 @ =gUnknown_2037F02
+ ldr r1, _080F1D40 @ =gBattleAnimArgs
movs r0, 0x2
b _080F1D6C
.align 2, 0
-_080F1D40: .4byte gUnknown_2037F02
+_080F1D40: .4byte gBattleAnimArgs
_080F1D44:
cmp r1, 0x80
bne _080F1D54
- ldr r1, _080F1D50 @ =gUnknown_2037F02
+ ldr r1, _080F1D50 @ =gBattleAnimArgs
movs r0, 0x3
b _080F1D6C
.align 2, 0
-_080F1D50: .4byte gUnknown_2037F02
+_080F1D50: .4byte gBattleAnimArgs
_080F1D54:
movs r0, 0xA4
lsls r0, 1
cmp r1, r0
bne _080F1D68
- ldr r1, _080F1D64 @ =gUnknown_2037F02
+ ldr r1, _080F1D64 @ =gBattleAnimArgs
movs r0, 0x4
b _080F1D6C
.align 2, 0
-_080F1D64: .4byte gUnknown_2037F02
+_080F1D64: .4byte gBattleAnimArgs
_080F1D68:
- ldr r1, _080F1D78 @ =gUnknown_2037F02
+ ldr r1, _080F1D78 @ =gBattleAnimArgs
movs r0, 0
_080F1D6C:
strh r0, [r1]
@@ -6268,7 +6268,7 @@ _080F1D6C:
pop {r0}
bx r0
.align 2, 0
-_080F1D78: .4byte gUnknown_2037F02
+_080F1D78: .4byte gBattleAnimArgs
thumb_func_end sub_80F1D14
thumb_func_start sub_80F1D7C
@@ -6276,13 +6276,13 @@ sub_80F1D7C: @ 80F1D7C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, _080F1DA0 @ =gUnknown_2037F1A
+ ldr r3, _080F1DA0 @ =gBattleAnimAttacker
ldr r1, _080F1DA4 @ =gUnknown_2024018
ldr r2, [r1]
ldr r1, [r2, 0x8]
ldrh r1, [r1]
strb r1, [r3]
- ldr r3, _080F1DA8 @ =gUnknown_2037F1B
+ ldr r3, _080F1DA8 @ =gBattleAnimTarget
ldr r1, [r2, 0x8]
ldrh r1, [r1]
lsrs r1, 8
@@ -6291,9 +6291,9 @@ sub_80F1D7C: @ 80F1D7C
pop {r0}
bx r0
.align 2, 0
-_080F1DA0: .4byte gUnknown_2037F1A
+_080F1DA0: .4byte gBattleAnimAttacker
_080F1DA4: .4byte gUnknown_2024018
-_080F1DA8: .4byte gUnknown_2037F1B
+_080F1DA8: .4byte gBattleAnimTarget
thumb_func_end sub_80F1D7C
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_8078178.s b/asm/battle_anim_status_effects.s
index 1080351b3..5530fd869 100644
--- a/asm/battle_anim_8078178.s
+++ b/asm/battle_anim_status_effects.s
@@ -16,7 +16,7 @@ sub_8078178: @ 8078178
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
- ldr r0, _0807821C @ =gUnknown_2023D44
+ ldr r0, _0807821C @ =gBattlerSpriteIds
adds r0, r4, r0
ldrb r6, [r0]
ldr r0, _08078220 @ =sub_80782BC
@@ -88,7 +88,7 @@ _08078210:
bls _080781CC
b _08078298
.align 2, 0
-_0807821C: .4byte gUnknown_2023D44
+_0807821C: .4byte gBattlerSpriteIds
_08078220: .4byte sub_80782BC
_08078224: .4byte gUnknown_83AD048
_08078228: .4byte gUnknown_83AD950
@@ -341,7 +341,7 @@ sub_80783FC: @ 80783FC
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, _080784AC @ =gUnknown_2037F1B
+ ldr r4, _080784AC @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074480
@@ -420,7 +420,7 @@ _08078484:
pop {r0}
bx r0
.align 2, 0
-_080784AC: .4byte gUnknown_2037F1B
+_080784AC: .4byte gBattleAnimTarget
_080784B0: .4byte 0xffe00000
_080784B4: .4byte 0xffdc0000
_080784B8: .4byte 0xfffa0000
@@ -867,7 +867,7 @@ _08078830:
bl DestroyAnimVisualTask
b _0807885A
_08078838:
- ldr r0, _08078860 @ =gUnknown_2037F02
+ ldr r0, _08078860 @ =gBattleAnimArgs
movs r1, 0
strh r5, [r0]
strh r2, [r0, 0x2]
@@ -888,7 +888,7 @@ _0807885A:
pop {r0}
bx r0
.align 2, 0
-_08078860: .4byte gUnknown_2037F02
+_08078860: .4byte gBattleAnimArgs
_08078864: .4byte gTasks
_08078868: .4byte sub_80BB088
thumb_func_end sub_8078694
@@ -901,9 +901,9 @@ LaunchStatusAnimation: @ 807886C
lsrs r4, 24
lsls r1, 24
lsrs r1, 24
- ldr r0, _080788A8 @ =gUnknown_2037F1A
+ ldr r0, _080788A8 @ =gBattleAnimAttacker
strb r4, [r0]
- ldr r0, _080788AC @ =gUnknown_2037F1B
+ ldr r0, _080788AC @ =gBattleAnimTarget
strb r4, [r0]
ldr r0, _080788B0 @ =gUnknown_81C6E84
movs r2, 0
@@ -923,8 +923,8 @@ LaunchStatusAnimation: @ 807886C
pop {r0}
bx r0
.align 2, 0
-_080788A8: .4byte gUnknown_2037F1A
-_080788AC: .4byte gUnknown_2037F1B
+_080788A8: .4byte gBattleAnimAttacker
+_080788AC: .4byte gBattleAnimTarget
_080788B0: .4byte gUnknown_81C6E84
_080788B4: .4byte task0A_80788BC
_080788B8: .4byte gTasks
diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s
new file mode 100644
index 000000000..d33f51842
--- /dev/null
+++ b/asm/battle_anim_utility_funcs.s
@@ -0,0 +1,5133 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80BA7F8
+sub_80BA7F8: @ 80BA7F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080BA838 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80B9A14
+ adds r6, r0, 0
+ ldrh r3, [r4]
+ lsls r3, 16
+ asrs r0, r3, 23
+ movs r4, 0x1
+ ands r0, r4
+ asrs r1, r3, 24
+ ands r1, r4
+ asrs r2, r3, 25
+ ands r2, r4
+ asrs r3, 26
+ ands r3, r4
+ bl sub_8075CB8
+ orrs r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80BAA4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA838: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BA7F8
+
+ thumb_func_start sub_80BA83C
+sub_80BA83C: @ 80BA83C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ bl sub_80B9A14
+ adds r5, r0, 0
+ ldr r0, _080BA868 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _080BA8E6
+ lsls r0, 2
+ ldr r1, _080BA86C @ =_080BA870
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BA868: .4byte gBattleAnimArgs
+_080BA86C: .4byte _080BA870
+ .align 2, 0
+_080BA870:
+ .4byte _080BA892
+ .4byte _080BA89E
+ .4byte _080BA890
+ .4byte _080BA89C
+ .4byte _080BA8AC
+ .4byte _080BA8C4
+ .4byte _080BA8CC
+ .4byte _080BA8D8
+_080BA890:
+ movs r5, 0
+_080BA892:
+ mov r0, sp
+ ldr r1, _080BA898 @ =gBattleAnimAttacker
+ b _080BA8A2
+ .align 2, 0
+_080BA898: .4byte gBattleAnimAttacker
+_080BA89C:
+ movs r5, 0
+_080BA89E:
+ mov r0, sp
+ ldr r1, _080BA8A8 @ =gBattleAnimTarget
+_080BA8A2:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080BA8E6
+ .align 2, 0
+_080BA8A8: .4byte gBattleAnimTarget
+_080BA8AC:
+ mov r1, sp
+ ldr r0, _080BA8BC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080BA8C0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ b _080BA8E6
+ .align 2, 0
+_080BA8BC: .4byte gBattleAnimAttacker
+_080BA8C0: .4byte gBattleAnimTarget
+_080BA8C4:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080BA8E6
+_080BA8CC:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080BA8D4 @ =gBattleAnimAttacker
+ b _080BA8DE
+ .align 2, 0
+_080BA8D4: .4byte gBattleAnimAttacker
+_080BA8D8:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080BA930 @ =gBattleAnimTarget
+_080BA8DE:
+ ldrb r0, [r0]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2]
+_080BA8E6:
+ movs r4, 0
+ mov r6, sp
+_080BA8EA:
+ ldrb r0, [r6]
+ cmp r4, r0
+ beq _080BA914
+ ldrb r0, [r6, 0x1]
+ cmp r4, r0
+ beq _080BA914
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA914
+ adds r0, r4, 0
+ bl sub_8075D80
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ orrs r5, r1
+_080BA914:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080BA8EA
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80BAA4C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA930: .4byte gBattleAnimTarget
+ thumb_func_end sub_80BA83C
+
+ thumb_func_start sub_80BA934
+sub_80BA934: @ 80BA934
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BA958 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80B9A14
+ adds r2, r0, 0
+ ldr r0, _080BA95C @ =gUnknown_2022B50
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _080BAA0A
+ lsls r0, 2
+ ldr r1, _080BA960 @ =_080BA964
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BA958: .4byte gBattleAnimArgs
+_080BA95C: .4byte gUnknown_2022B50
+_080BA960: .4byte _080BA964
+ .align 2, 0
+_080BA964:
+ .4byte _080BA98C
+ .4byte _080BA99C
+ .4byte _080BA9A8
+ .4byte _080BA9B8
+ .4byte _080BA9C4
+ .4byte _080BA9D4
+ .4byte _080BA9E4
+ .4byte _080BA9F4
+ .4byte _080BAA04
+ .4byte _080BAA04
+_080BA98C:
+ ldr r1, _080BA994 @ =gBattleAnimArgs
+ ldr r0, _080BA998 @ =0x00000b0c
+ b _080BAA08
+ .align 2, 0
+_080BA994: .4byte gBattleAnimArgs
+_080BA998: .4byte 0x00000b0c
+_080BA99C:
+ ldr r1, _080BA9A4 @ =gBattleAnimArgs
+ movs r0, 0x9E
+ lsls r0, 4
+ b _080BAA08
+ .align 2, 0
+_080BA9A4: .4byte gBattleAnimArgs
+_080BA9A8:
+ ldr r1, _080BA9B0 @ =gBattleAnimArgs
+ ldr r0, _080BA9B4 @ =0x00002f1e
+ b _080BAA08
+ .align 2, 0
+_080BA9B0: .4byte gBattleAnimArgs
+_080BA9B4: .4byte 0x00002f1e
+_080BA9B8:
+ ldr r1, _080BA9C0 @ =gBattleAnimArgs
+ movs r0, 0x90
+ lsls r0, 7
+ b _080BAA08
+ .align 2, 0
+_080BA9C0: .4byte gBattleAnimArgs
+_080BA9C4:
+ ldr r1, _080BA9CC @ =gBattleAnimArgs
+ ldr r0, _080BA9D0 @ =0x00007ecb
+ b _080BAA08
+ .align 2, 0
+_080BA9CC: .4byte gBattleAnimArgs
+_080BA9D0: .4byte 0x00007ecb
+_080BA9D4:
+ ldr r1, _080BA9DC @ =gBattleAnimArgs
+ ldr r0, _080BA9E0 @ =0x00007ecb
+ b _080BAA08
+ .align 2, 0
+_080BA9DC: .4byte gBattleAnimArgs
+_080BA9E0: .4byte 0x00007ecb
+_080BA9E4:
+ ldr r1, _080BA9EC @ =gBattleAnimArgs
+ ldr r0, _080BA9F0 @ =0x00002a16
+ b _080BAA08
+ .align 2, 0
+_080BA9EC: .4byte gBattleAnimArgs
+_080BA9F0: .4byte 0x00002a16
+_080BA9F4:
+ ldr r1, _080BA9FC @ =gBattleAnimArgs
+ ldr r0, _080BAA00 @ =0x00000d2e
+ b _080BAA08
+ .align 2, 0
+_080BA9FC: .4byte gBattleAnimArgs
+_080BAA00: .4byte 0x00000d2e
+_080BAA04:
+ ldr r1, _080BAA18 @ =gBattleAnimArgs
+ ldr r0, _080BAA1C @ =0x00007fff
+_080BAA08:
+ strh r0, [r1, 0x8]
+_080BAA0A:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80BAA4C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAA18: .4byte gBattleAnimArgs
+_080BAA1C: .4byte 0x00007fff
+ thumb_func_end sub_80BA934
+
+ thumb_func_start sub_80BAA20
+sub_80BAA20: @ 80BAA20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080BAA48 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ adds r0, r4, 0
+ bl sub_80BAA4C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAA48: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BAA20
+
+ thumb_func_start sub_80BAA4C
+sub_80BAA4C: @ 80BAA4C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080BAA84 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ strh r1, [r2, 0x8]
+ lsrs r1, 16
+ strh r1, [r2, 0xA]
+ ldr r3, _080BAA88 @ =gBattleAnimArgs
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x10]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r2, 0x12]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0x1C]
+ ldr r1, _080BAA8C @ =sub_80BAA90
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAA84: .4byte gTasks
+_080BAA88: .4byte gBattleAnimArgs
+_080BAA8C: .4byte sub_80BAA90
+ thumb_func_end sub_80BAA4C
+
+ thumb_func_start sub_80BAA90
+sub_80BAA90: @ 80BAA90
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r2, _080BAB10 @ =gTasks
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1A]
+ mov r8, r0
+ movs r4, 0x1A
+ ldrsh r1, [r3, r4]
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ mov r9, r2
+ cmp r1, r0
+ bne _080BAB26
+ strh r6, [r3, 0x1A]
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ orrs r4, r0
+ mov r8, r5
+ cmp r4, 0
+ beq _080BAAF2
+ adds r5, r3, 0
+_080BAAD0:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080BAAE4
+ ldrb r2, [r5, 0x1C]
+ ldrh r3, [r5, 0x12]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+_080BAAE4:
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r4, 1
+ cmp r4, 0
+ bne _080BAAD0
+_080BAAF2:
+ mov r4, r8
+ adds r0, r4, r7
+ lsls r0, 3
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ movs r4, 0x1C
+ ldrsh r3, [r2, r4]
+ movs r4, 0x10
+ ldrsh r1, [r2, r4]
+ cmp r3, r1
+ bge _080BAB14
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080BAB2C
+ .align 2, 0
+_080BAB10: .4byte gTasks
+_080BAB14:
+ cmp r3, r1
+ ble _080BAB1E
+ subs r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080BAB2C
+_080BAB1E:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _080BAB2C
+_080BAB26:
+ mov r0, r8
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+_080BAB2C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BAA90
+
+ thumb_func_start sub_80BAB38
+sub_80BAB38: @ 80BAB38
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080BAB6C @ =gBattleAnimArgs
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrb r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginHardwarePaletteFade
+ ldr r1, _080BAB70 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAB74 @ =sub_80BAB78
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAB6C: .4byte gBattleAnimArgs
+_080BAB70: .4byte gTasks
+_080BAB74: .4byte sub_80BAB78
+ thumb_func_end sub_80BAB38
+
+ thumb_func_start sub_80BAB78
+sub_80BAB78: @ 80BAB78
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BAB94 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BAB90
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080BAB90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAB94: .4byte gPaletteFade
+ thumb_func_end sub_80BAB78
+
+ thumb_func_start sub_80BAB98
+sub_80BAB98: @ 80BAB98
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BABC4 @ =gTasks
+ adds r1, r0
+ ldr r2, _080BABC8 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0x10]
+ strh r3, [r1, 0x12]
+ ldr r0, _080BABCC @ =sub_80BABD0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080BABC4: .4byte gTasks
+_080BABC8: .4byte gBattleAnimArgs
+_080BABCC: .4byte sub_80BABD0
+ thumb_func_end sub_80BAB98
+
+ thumb_func_start sub_80BABD0
+sub_80BABD0: @ 80BABD0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BABFC @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080BAC94
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080BAC00
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080BACA2
+ .align 2, 0
+_080BABFC: .4byte gTasks
+_080BAC00:
+ ldrb r0, [r4, 0x8]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080BAC7E
+ ldr r6, _080BAC8C @ =gSprites
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x2
+ cmp r0, 0
+ beq _080BAC28
+ movs r2, 0x1
+_080BAC28:
+ lsls r2, 2
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x5]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0xE]
+ strh r1, [r0, 0x2E]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x30]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080BAC90 @ =sub_80BACA8
+ str r1, [r0]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_080BAC7E:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _080BACA2
+ .align 2, 0
+_080BAC8C: .4byte gSprites
+_080BAC90: .4byte sub_80BACA8
+_080BAC94:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BACA2
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080BACA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BABD0
+
+ thumb_func_start sub_80BACA8
+sub_80BACA8: @ 80BACA8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080BACBC
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080BACE0
+_080BACBC:
+ ldr r3, _080BACE8 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080BACE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BACE8: .4byte gTasks
+ thumb_func_end sub_80BACA8
+
+ thumb_func_start sub_80BACEC
+sub_80BACEC: @ 80BACEC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080BAE20 @ =gUnknown_2022984
+ strh r7, [r0]
+ ldr r0, _080BAE24 @ =gUnknown_2022986
+ strh r7, [r0]
+ ldr r1, _080BAE28 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080BAE2C @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, _080BAE30 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, _080BAE34 @ =0x00000c08
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0xA
+ bl GetGpuReg
+ add r4, sp, 0x10
+ strh r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r4]
+ mov r2, sp
+ adds r2, 0x11
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BAD7A
+ ldrb r1, [r4]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+_080BAD7A:
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BADFE
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BADFE
+ ldr r5, _080BAE38 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080BADAA
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BADFE
+_080BADAA:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ eors r0, r6
+ bl sub_8072DF0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BADFE
+ ldr r3, _080BAE3C @ =gSprites
+ ldr r1, _080BAE40 @ =gBattlerSpriteIds
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r7, 0x1
+_080BADFE:
+ ldr r4, _080BAE38 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BAE4C
+ ldr r1, _080BAE44 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BAE48 @ =gEnemyParty
+ b _080BAE5C
+ .align 2, 0
+_080BAE20: .4byte gUnknown_2022984
+_080BAE24: .4byte gUnknown_2022986
+_080BAE28: .4byte 0x00003f3f
+_080BAE2C: .4byte 0x00003f3d
+_080BAE30: .4byte 0x00003f42
+_080BAE34: .4byte 0x00000c08
+_080BAE38: .4byte gBattleAnimAttacker
+_080BAE3C: .4byte gSprites
+_080BAE40: .4byte gBattlerSpriteIds
+_080BAE44: .4byte gBattlerPartyIndexes
+_080BAE48: .4byte gEnemyParty
+_080BAE4C:
+ ldr r1, _080BAF0C @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BAF10 @ =gPlayerParty
+_080BAE5C:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _080BAF14 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap
+ bl sub_807543C
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BAEAC
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080BAEAC:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080BAF20 @ =gUnknown_83E7CC8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ adds r1, 0x1
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r2, _080BAF24 @ =gBattle_BG1_X
+ ldr r0, _080BAF28 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r2, _080BAF2C @ =gBattle_BG1_Y
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r1, _080BAF30 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r7, [r0, 0x14]
+ ldr r1, _080BAF34 @ =sub_80BAF38
+ str r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAF0C: .4byte gBattlerPartyIndexes
+_080BAF10: .4byte gPlayerParty
+_080BAF14: .4byte gBattleAnimAttacker
+_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap
+_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet
+_080BAF20: .4byte gUnknown_83E7CC8
+_080BAF24: .4byte gBattle_BG1_X
+_080BAF28: .4byte gSprites
+_080BAF2C: .4byte gBattle_BG1_Y
+_080BAF30: .4byte gTasks
+_080BAF34: .4byte sub_80BAF38
+ thumb_func_end sub_80BACEC
+
+ thumb_func_start sub_80BAF38
+sub_80BAF38: @ 80BAF38
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080BB068 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x4
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r5, 0x1C]
+ ldr r7, _080BB06C @ =gBattle_BG1_Y
+ ldrh r2, [r7]
+ subs r1, r2, 0x4
+ strh r1, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080BB05A
+ mov r0, r8
+ strh r0, [r5, 0x1C]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ strh r0, [r7]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080BB05A
+ movs r0, 0
+ bl sub_8073128
+ ldr r0, _080BB070 @ =gUnknown_2022984
+ mov r1, r8
+ strh r1, [r0]
+ ldr r0, _080BB074 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r4, _080BB078 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BAFCA
+ movs r0, 0xA
+ bl GetGpuReg
+ add r1, sp, 0x10
+ strh r0, [r1]
+ ldrb r2, [r1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrh r1, [r1]
+ movs r0, 0xA
+ bl SetGpuReg
+_080BAFCA:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r4, _080BB07C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_8075358
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080BB050
+ ldr r2, _080BB080 @ =gBattlerSpriteIds
+ ldr r0, _080BB084 @ =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080BB050:
+ mov r2, r8
+ strh r2, [r7]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080BB05A:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB068: .4byte gTasks
+_080BB06C: .4byte gBattle_BG1_Y
+_080BB070: .4byte gUnknown_2022984
+_080BB074: .4byte gUnknown_2022986
+_080BB078: .4byte 0x00003f3f
+_080BB07C: .4byte gSprites
+_080BB080: .4byte gBattlerSpriteIds
+_080BB084: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80BAF38
+
+ thumb_func_start sub_80BB088
+sub_80BB088: @ 80BB088
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080BB0C8 @ =gUnknown_20399B4
+ movs r0, 0x18
+ bl AllocZeroed
+ str r0, [r4]
+ movs r2, 0
+ ldr r3, _080BB0CC @ =gBattleAnimArgs
+_080BB09C:
+ ldr r1, [r4]
+ lsls r0, r2, 1
+ adds r1, 0x4
+ adds r1, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080BB09C
+ ldr r0, _080BB0D0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BB0D4 @ =sub_80BB0D8
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB0C8: .4byte gUnknown_20399B4
+_080BB0CC: .4byte gBattleAnimArgs
+_080BB0D0: .4byte gTasks
+_080BB0D4: .4byte sub_80BB0D8
+ thumb_func_end sub_80BB088
+
+ thumb_func_start sub_80BB0D8
+sub_80BB0D8: @ 80BB0D8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BB0F0 @ =gUnknown_20399B4
+ ldr r1, [r0]
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080BB0F8
+ ldr r0, _080BB0F4 @ =gBattleAnimAttacker
+ b _080BB0FA
+ .align 2, 0
+_080BB0F0: .4byte gUnknown_20399B4
+_080BB0F4: .4byte gBattleAnimAttacker
+_080BB0F8:
+ ldr r0, _080BB230 @ =gBattleAnimTarget
+_080BB0FA:
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r4, _080BB234 @ =gUnknown_20399B4
+ ldr r2, [r4]
+ ldrb r0, [r2]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2, 0x1]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB12A
+ ldr r1, [r4]
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080BB130
+ ldrb r0, [r1, 0x1]
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB130
+_080BB12A:
+ ldr r1, [r4]
+ movs r0, 0
+ strh r0, [r1, 0xA]
+_080BB130:
+ ldr r0, _080BB238 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BB23C @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r1, _080BB240 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080BB244 @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, _080BB248 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB18E
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080BB18E:
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB20A
+ ldr r4, _080BB234 @ =gUnknown_20399B4
+ ldr r1, [r4]
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080BB20A
+ ldrb r0, [r1]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080BB1C0
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB20A
+_080BB1C0:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8072DF0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080BB20A
+ ldr r3, _080BB24C @ =gSprites
+ ldr r1, _080BB250 @ =gBattlerSpriteIds
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ ldr r0, [r4]
+ strb r5, [r0, 0x2]
+_080BB20A:
+ ldr r4, _080BB234 @ =gUnknown_20399B4
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB25C
+ ldr r1, _080BB254 @ =gBattlerPartyIndexes
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BB258 @ =gEnemyParty
+ b _080BB26E
+ .align 2, 0
+_080BB230: .4byte gBattleAnimTarget
+_080BB234: .4byte gUnknown_20399B4
+_080BB238: .4byte gUnknown_2022984
+_080BB23C: .4byte gUnknown_2022986
+_080BB240: .4byte 0x00003f3f
+_080BB244: .4byte 0x00003f3d
+_080BB248: .4byte 0x00003f42
+_080BB24C: .4byte gSprites
+_080BB250: .4byte gBattlerSpriteIds
+_080BB254: .4byte gBattlerPartyIndexes
+_080BB258: .4byte gEnemyParty
+_080BB25C:
+ ldr r1, _080BB290 @ =gBattlerPartyIndexes
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BB294 @ =gPlayerParty
+_080BB26E:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, [r4]
+ strh r0, [r1, 0x14]
+ ldr r0, _080BB298 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BB29C @ =sub_80BB2A0
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB290: .4byte gBattlerPartyIndexes
+_080BB294: .4byte gPlayerParty
+_080BB298: .4byte gTasks
+_080BB29C: .4byte sub_80BB2A0
+ thumb_func_end sub_80BB0D8
+
+ thumb_func_start sub_80BB2A0
+sub_80BB2A0: @ 80BB2A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r6, _080BB300 @ =gBattlerSpriteIds
+ ldr r4, _080BB304 @ =gUnknown_20399B4
+ ldr r2, [r4]
+ ldrb r0, [r2]
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ ldrh r2, [r2, 0x14]
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, [r4]
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080BB2E2
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ ldrh r2, [r2, 0x14]
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080BB2E2:
+ mov r0, sp
+ bl sub_80752A0
+ ldr r0, [r4]
+ movs r4, 0x4
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bne _080BB30C
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
+ bl sub_807543C
+ b _080BB316
+ .align 2, 0
+_080BB300: .4byte gBattlerSpriteIds
+_080BB304: .4byte gUnknown_20399B4
+_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
+_080BB30C:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
+ bl sub_807543C
+_080BB316:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB32E
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080BB32E:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080BB35C @ =gUnknown_20399B4
+ ldr r0, [r0]
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x6
+ bhi _080BB3C4
+ lsls r0, 2
+ ldr r1, _080BB360 @ =_080BB364
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
+_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet
+_080BB35C: .4byte gUnknown_20399B4
+_080BB360: .4byte _080BB364
+ .align 2, 0
+_080BB364:
+ .4byte _080BB380
+ .4byte _080BB388
+ .4byte _080BB390
+ .4byte _080BB398
+ .4byte _080BB3A0
+ .4byte _080BB3A8
+ .4byte _080BB3B0
+_080BB380:
+ ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette
+_080BB388:
+ ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette
+_080BB390:
+ ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette
+_080BB398:
+ ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette
+_080BB3A0:
+ ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette
+_080BB3A8:
+ ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette
+_080BB3B0:
+ ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette
+_080BB3B2:
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080BB3D2
+ .align 2, 0
+_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette
+_080BB3C4:
+ ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080BB3D2:
+ ldr r3, _080BB400 @ =gBattle_BG1_X
+ movs r2, 0
+ strh r2, [r3]
+ ldr r0, _080BB404 @ =gBattle_BG1_Y
+ strh r2, [r0]
+ ldr r1, _080BB408 @ =gUnknown_20399B4
+ ldr r0, [r1]
+ movs r4, 0x4
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ bne _080BB414
+ movs r0, 0x40
+ strh r0, [r3]
+ ldr r2, _080BB40C @ =gTasks
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080BB410 @ =0x0000fffd
+ b _080BB420
+ .align 2, 0
+_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette
+_080BB400: .4byte gBattle_BG1_X
+_080BB404: .4byte gBattle_BG1_Y
+_080BB408: .4byte gUnknown_20399B4
+_080BB40C: .4byte gTasks
+_080BB410: .4byte 0x0000fffd
+_080BB414:
+ ldr r2, _080BB43C @ =gTasks
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x3
+_080BB420:
+ strh r1, [r0, 0xA]
+ ldr r0, [r4]
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BB440
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ strh r1, [r0, 0x10]
+ movs r1, 0x14
+ b _080BB44C
+ .align 2, 0
+_080BB43C: .4byte gTasks
+_080BB440:
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xD
+ strh r1, [r0, 0x10]
+ movs r1, 0x1E
+_080BB44C:
+ strh r1, [r0, 0x12]
+ adds r1, r3, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r7, [r1, 0x8]
+ ldr r3, [r4]
+ ldrh r0, [r3, 0xA]
+ strh r0, [r1, 0xC]
+ mov r4, r8
+ strh r4, [r1, 0xE]
+ ldrb r0, [r3, 0x2]
+ strh r0, [r1, 0x14]
+ ldr r2, _080BB490 @ =gBattlerSpriteIds
+ ldrb r0, [r3, 0x1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0x16]
+ ldr r0, _080BB494 @ =sub_80BB4B8
+ str r0, [r1]
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080BB498
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073B08
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xE8
+ bl PlaySE12WithPanning
+ b _080BB4AC
+ .align 2, 0
+_080BB490: .4byte gBattlerSpriteIds
+_080BB494: .4byte sub_80BB4B8
+_080BB498:
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073B08
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xEE
+ bl PlaySE12WithPanning
+_080BB4AC:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB2A0
+
+ thumb_func_start sub_80BB4B8
+sub_80BB4B8: @ 80BB4B8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080BB4E4 @ =gBattle_BG1_Y
+ ldr r1, _080BB4E8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ movs r0, 0x26
+ ldrsh r2, [r5, r0]
+ cmp r2, 0x1
+ beq _080BB52E
+ cmp r2, 0x1
+ bgt _080BB4EC
+ cmp r2, 0
+ beq _080BB4F6
+ b _080BB644
+ .align 2, 0
+_080BB4E4: .4byte gBattle_BG1_Y
+_080BB4E8: .4byte gTasks
+_080BB4EC:
+ cmp r2, 0x2
+ beq _080BB544
+ cmp r2, 0x3
+ beq _080BB582
+ b _080BB644
+_080BB4F6:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080BB504
+ b _080BB644
+_080BB504:
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ adds r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ beq _080BB52C
+ b _080BB644
+_080BB52C:
+ b _080BB57A
+_080BB52E:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ beq _080BB542
+ b _080BB644
+_080BB542:
+ b _080BB57A
+_080BB544:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080BB644
+ movs r0, 0
+ strh r0, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080BB644
+ movs r0, 0
+ bl sub_8073128
+_080BB57A:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+ b _080BB644
+_080BB582:
+ ldr r0, _080BB64C @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BB650 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r4, _080BB654 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB5B2
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080BB5B2:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080BB658 @ =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BB606
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080BB606:
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080BB632
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080BB632:
+ ldr r4, _080BB65C @ =gUnknown_20399B4
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080BB644:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB64C: .4byte gUnknown_2022984
+_080BB650: .4byte gUnknown_2022986
+_080BB654: .4byte 0x00003f3f
+_080BB658: .4byte gSprites
+_080BB65C: .4byte gUnknown_20399B4
+ thumb_func_end sub_80BB4B8
+
+ thumb_func_start sub_80BB660
+sub_80BB660: @ 80BB660
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_8075CB8
+ adds r6, r0, 0
+ movs r1, 0
+ bl sub_80BB790
+ ldr r0, _080BB6C0 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ lsrs r0, r6, 16
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r6, r0, 0
+ ldr r1, _080BB6C4 @ =0x0000ffff
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_80BB790
+ strh r6, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r0, _080BB6C8 @ =sub_80BB6CC
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB6C0: .4byte gTasks
+_080BB6C4: .4byte 0x0000ffff
+_080BB6C8: .4byte sub_80BB6CC
+ thumb_func_end sub_80BB660
+
+ thumb_func_start sub_80BB6CC
+sub_80BB6CC: @ 80BB6CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080BB6F0 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080BB710
+ cmp r1, 0x1
+ bgt _080BB6F4
+ cmp r1, 0
+ beq _080BB6FA
+ b _080BB78A
+ .align 2, 0
+_080BB6F0: .4byte gTasks
+_080BB6F4:
+ cmp r1, 0x2
+ beq _080BB784
+ b _080BB78A
+_080BB6FA:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080BB78A
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ b _080BB778
+_080BB710:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080BB78A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r5, 0
+ movs r6, 0x1
+_080BB72C:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080BB746
+ lsls r0, r5, 20
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ ldr r3, _080BB780 @ =0x0000ffff
+ bl BlendPalette
+_080BB746:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080BB766
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ movs r3, 0
+ bl BlendPalette
+_080BB766:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080BB72C
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BB78A
+_080BB778:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BB78A
+ .align 2, 0
+_080BB780: .4byte 0x0000ffff
+_080BB784:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080BB78A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB6CC
+
+ thumb_func_start sub_80BB790
+sub_80BB790: @ 80BB790
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r2, 0
+_080BB79A:
+ movs r0, 0x1
+ ands r0, r3
+ lsrs r4, r3, 1
+ adds r5, r2, 0x1
+ cmp r0, 0
+ beq _080BB7C6
+ lsls r0, r2, 20
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x10
+ cmp r2, r0
+ bge _080BB7C6
+ ldr r1, _080BB7D8 @ =gPlttBufferFaded
+ adds r3, r0, 0
+_080BB7B6:
+ lsls r0, r2, 1
+ adds r0, r1
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ blt _080BB7B6
+_080BB7C6:
+ adds r3, r4, 0
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1F
+ bls _080BB79A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB7D8: .4byte gPlttBufferFaded
+ thumb_func_end sub_80BB790
+
+ thumb_func_start sub_80BB7DC
+sub_80BB7DC: @ 80BB7DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r2, 0
+ ldr r0, _080BB824 @ =gBattleAnimAttacker
+ ldrb r3, [r0]
+ movs r5, 0x1
+_080BB7EC:
+ cmp r3, r2
+ beq _080BB7FA
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r4, r0
+_080BB7FA:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080BB7EC
+ movs r2, 0x5
+ ldr r0, _080BB828 @ =gBattleAnimArgs
+ adds r1, r0, 0
+ adds r1, 0x8
+_080BB808:
+ ldrh r0, [r1]
+ strh r0, [r1, 0x2]
+ subs r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080BB808
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80BAA4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB824: .4byte gBattleAnimAttacker
+_080BB828: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB7DC
+
+ thumb_func_start sub_80BB82C
+sub_80BB82C: @ 80BB82C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl sub_8075458
+ ldr r0, _080BB894 @ =sub_80BB8A4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080BB898 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080BB868
+ ldr r0, _080BB89C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB868
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_080BB868:
+ ldr r0, _080BB8A0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080BB898 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB894: .4byte sub_80BB8A4
+_080BB898: .4byte gBattleAnimArgs
+_080BB89C: .4byte gBattleAnimAttacker
+_080BB8A0: .4byte gTasks
+ thumb_func_end sub_80BB82C
+
+ thumb_func_start sub_80BB8A4
+sub_80BB8A4: @ 80BB8A4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080BB910 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0xA]
+ ldrh r0, [r1, 0x1C]
+ adds r3, r0
+ movs r4, 0
+ mov r12, r4
+ strh r3, [r1, 0x1C]
+ ldrh r2, [r1, 0xC]
+ ldrh r7, [r1, 0x1E]
+ adds r2, r7
+ strh r2, [r1, 0x1E]
+ ldr r6, _080BB914 @ =gBattle_BG3_X
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r4, [r6]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r4, _080BB918 @ =gBattle_BG3_Y
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r7, [r4]
+ adds r0, r7
+ strh r0, [r4]
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1, 0x1C]
+ ands r2, r0
+ strh r2, [r1, 0x1E]
+ ldr r0, _080BB91C @ =gBattleAnimArgs
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ movs r7, 0xE
+ ldrsh r0, [r1, r7]
+ cmp r2, r0
+ bne _080BB90A
+ mov r0, r12
+ strh r0, [r6]
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_8075458
+ adds r0, r5, 0
+ bl DestroyTask
+_080BB90A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB910: .4byte gTasks
+_080BB914: .4byte gBattle_BG3_X
+_080BB918: .4byte gBattle_BG3_Y
+_080BB91C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB8A4
+
+ thumb_func_start sub_80BB920
+sub_80BB920: @ 80BB920
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080BB944 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ ldr r1, _080BB948 @ =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB944: .4byte gBattleAnimAttacker
+_080BB948: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB920
+
+ thumb_func_start sub_80BB94C
+sub_80BB94C: @ 80BB94C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080BB970 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ ldr r1, _080BB974 @ =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB970: .4byte gBattleAnimTarget
+_080BB974: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB94C
+
+ thumb_func_start sub_80BB978
+sub_80BB978: @ 80BB978
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r5, _080BB9A4 @ =gBattleAnimArgs
+ movs r4, 0
+ ldr r0, _080BB9A8 @ =gBattleAnimAttacker
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ldr r1, _080BB9AC @ =gBattleAnimTarget
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BB994
+ movs r4, 0x1
+_080BB994:
+ strh r4, [r5, 0xE]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB9A4: .4byte gBattleAnimArgs
+_080BB9A8: .4byte gBattleAnimAttacker
+_080BB9AC: .4byte gBattleAnimTarget
+ thumb_func_end sub_80BB978
+
+ thumb_func_start sub_80BB9B0
+sub_80BB9B0: @ 80BB9B0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080BBA10 @ =gSprites
+_080BB9BA:
+ ldr r0, _080BBA14 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080BB9F8
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB9F8
+ ldr r0, _080BBA18 @ =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldr r1, _080BBA1C @ =gBattleAnimArgs
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r3, [r1]
+ ands r3, r0
+ lsls r3, 2
+ ldrb r0, [r2]
+ movs r7, 0x5
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080BB9F8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080BB9BA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBA10: .4byte gSprites
+_080BBA14: .4byte gBattleAnimAttacker
+_080BBA18: .4byte gBattlerSpriteIds
+_080BBA1C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB9B0
+
+ thumb_func_start sub_80BBA20
+sub_80BBA20: @ 80BBA20
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r1, [sp, 0x44]
+ ldr r4, [sp, 0x48]
+ ldr r5, [sp, 0x4C]
+ ldr r6, [sp, 0x50]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x14]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x18]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x1C]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ movs r0, 0
+ str r0, [sp, 0x20]
+ movs r0, 0x2
+ adds r6, r7, 0
+ eors r6, r0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBA82
+ mov r1, r8
+ cmp r1, 0
+ beq _080BBA86
+ adds r0, r6, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBA86
+_080BBA82:
+ movs r2, 0
+ mov r8, r2
+_080BBA86:
+ ldr r0, _080BBB20 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BBB24 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r1, _080BBB28 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080BBB2C @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, _080BBB30 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0xA
+ bl GetGpuReg
+ add r4, sp, 0x10
+ strh r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ mov r2, sp
+ adds r2, 0x11
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBAFC
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080BBAFC:
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ adds r0, r7, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BBB3C
+ ldr r1, _080BBB34 @ =gBattlerPartyIndexes
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BBB38 @ =gEnemyParty
+ b _080BBB4A
+ .align 2, 0
+_080BBB20: .4byte gUnknown_2022984
+_080BBB24: .4byte gUnknown_2022986
+_080BBB28: .4byte 0x00003f3f
+_080BBB2C: .4byte 0x00003f3d
+_080BBB30: .4byte 0x00003f42
+_080BBB34: .4byte gBattlerPartyIndexes
+_080BBB38: .4byte gEnemyParty
+_080BBB3C:
+ ldr r1, _080BBC10 @ =gBattlerPartyIndexes
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BBC14 @ =gPlayerParty
+_080BBB4A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r5, _080BBC18 @ =gBattlerSpriteIds
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0
+ beq _080BBB80
+ adds r0, r6, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x20]
+_080BBB80:
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, [sp, 0x58]
+ bl sub_807543C
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BBBA8
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080BBBA8:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ mov r1, sp
+ ldrh r2, [r1, 0xA]
+ ldr r1, [sp, 0x54]
+ bl sub_80753B4
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ ldr r0, [sp, 0x5C]
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080BBC1C @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BBC20 @ =gBattle_BG1_Y
+ strh r1, [r0]
+ ldr r1, _080BBC24 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0xA]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0x10]
+ mov r1, r10
+ strh r1, [r0, 0x12]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r0, 0x14]
+ strh r7, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0xE]
+ ldr r1, _080BBC28 @ =sub_80BBC2C
+ str r1, [r0]
+ 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
+_080BBC10: .4byte gBattlerPartyIndexes
+_080BBC14: .4byte gPlayerParty
+_080BBC18: .4byte gBattlerSpriteIds
+_080BBC1C: .4byte gBattle_BG1_X
+_080BBC20: .4byte gBattle_BG1_Y
+_080BBC24: .4byte gTasks
+_080BBC28: .4byte sub_80BBC2C
+ thumb_func_end sub_80BBA20
+
+ thumb_func_start sub_80BBC2C
+sub_80BBC2C: @ 80BBC2C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080BBC68 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r0, 0xA
+ ldrsh r2, [r3, r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _080BBC4A
+ negs r2, r2
+_080BBC4A:
+ ldrh r0, [r3, 0x22]
+ adds r4, r0, r2
+ strh r4, [r3, 0x22]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080BBC70
+ ldr r2, _080BBC6C @ =gBattle_BG1_Y
+ lsls r1, r4, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ b _080BBC7C
+ .align 2, 0
+_080BBC68: .4byte gTasks
+_080BBC6C: .4byte gBattle_BG1_Y
+_080BBC70:
+ ldr r1, _080BBCA0 @ =gBattle_BG1_Y
+ lsls r0, r4, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+_080BBC7C:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r5
+ ldrh r1, [r5, 0x22]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r2, 0
+ strh r0, [r5, 0x22]
+ movs r3, 0x26
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x1
+ beq _080BBCE6
+ cmp r0, 0x1
+ bgt _080BBCA4
+ cmp r0, 0
+ beq _080BBCAA
+ b _080BBDD8
+ .align 2, 0
+_080BBCA0: .4byte gBattle_BG1_Y
+_080BBCA4:
+ cmp r0, 0x2
+ beq _080BBD00
+ b _080BBDD8
+_080BBCAA:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ bge _080BBCBE
+ b _080BBDD8
+_080BBCBE:
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ adds r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _080BBDD8
+ b _080BBCF8
+_080BBCE6:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ bne _080BBDD8
+_080BBCF8:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+ b _080BBDD8
+_080BBD00:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ blt _080BBDD8
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x20
+ ldrsh r4, [r5, r0]
+ cmp r4, 0
+ bne _080BBDD8
+ movs r0, 0
+ bl sub_8073128
+ ldr r0, _080BBDE0 @ =gUnknown_2022984
+ strh r4, [r0]
+ ldr r0, _080BBDE4 @ =gUnknown_2022986
+ strh r4, [r0]
+ ldr r4, _080BBDE8 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBD7E
+ movs r0, 0xA
+ bl GetGpuReg
+ mov r1, sp
+ strh r0, [r1]
+ mov r2, sp
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0xA
+ bl SetGpuReg
+_080BBD7E:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r3, 0x8
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080BBDEC @ =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BBDD2
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080BBDD2:
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080BBDD8:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBDE0: .4byte gUnknown_2022984
+_080BBDE4: .4byte gUnknown_2022986
+_080BBDE8: .4byte 0x00003f3f
+_080BBDEC: .4byte gSprites
+ thumb_func_end sub_80BBC2C
+
+ thumb_func_start sub_80BBDF0
+sub_80BBDF0: @ 80BBDF0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BBE08 @ =gBattleAnimArgs
+ ldr r1, _080BBE0C @ =gUnknown_2022B50
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBE08: .4byte gBattleAnimArgs
+_080BBE0C: .4byte gUnknown_2022B50
+ thumb_func_end sub_80BBDF0
+
+ thumb_func_start sub_80BBE10
+sub_80BBE10: @ 80BBE10
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ ldr r1, _080BBE38 @ =gMonSpritesGfxPtr
+ ldr r1, [r1]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBE38: .4byte gMonSpritesGfxPtr
+ thumb_func_end sub_80BBE10
+
+ thumb_func_start sub_80BBE3C
+sub_80BBE3C: @ 80BBE3C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _080BBE68 @ =gMonSpritesGfxPtr
+ ldr r0, [r6]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r0, r5
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r6]
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBE68: .4byte gMonSpritesGfxPtr
+ thumb_func_end sub_80BBE3C
+
+ thumb_func_start sub_80BBE6C
+sub_80BBE6C: @ 80BBE6C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080BBEAC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BBEB0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBEC8
+ movs r2, 0x1
+_080BBE9E:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080BBE9E
+ b _080BBEC8
+ .align 2, 0
+_080BBEAC: .4byte gBattleAnimArgs
+_080BBEB0:
+ cmp r0, 0x1
+ bne _080BBEBC
+ ldr r0, _080BBEB8 @ =gBattleAnimAttacker
+ b _080BBEC2
+ .align 2, 0
+_080BBEB8: .4byte gBattleAnimAttacker
+_080BBEBC:
+ cmp r0, 0x2
+ bne _080BBEC8
+ ldr r0, _080BBEF8 @ =gBattleAnimTarget
+_080BBEC2:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080BBEC8:
+ ldr r0, _080BBEFC @ =gMonSpritesGfxPtr
+ ldr r1, [r0]
+ ldr r0, _080BBF00 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ lsls r1, r4, 5
+ ldr r2, _080BBF04 @ =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBEF8: .4byte gBattleAnimTarget
+_080BBEFC: .4byte gMonSpritesGfxPtr
+_080BBF00: .4byte gBattleAnimArgs
+_080BBF04: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80BBE6C
+
+ thumb_func_start sub_80BBF08
+sub_80BBF08: @ 80BBF08
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080BBF48 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BBF4C
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBF64
+ movs r2, 0x1
+_080BBF3A:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080BBF3A
+ b _080BBF64
+ .align 2, 0
+_080BBF48: .4byte gBattleAnimArgs
+_080BBF4C:
+ cmp r0, 0x1
+ bne _080BBF58
+ ldr r0, _080BBF54 @ =gBattleAnimAttacker
+ b _080BBF5E
+ .align 2, 0
+_080BBF54: .4byte gBattleAnimAttacker
+_080BBF58:
+ cmp r0, 0x2
+ bne _080BBF64
+ ldr r0, _080BBF94 @ =gBattleAnimTarget
+_080BBF5E:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080BBF64:
+ lsls r0, r4, 5
+ ldr r1, _080BBF98 @ =gPlttBufferUnfaded
+ adds r0, r1
+ ldr r1, _080BBF9C @ =gMonSpritesGfxPtr
+ ldr r2, [r1]
+ ldr r1, _080BBFA0 @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ movs r3, 0xBE
+ lsls r3, 1
+ adds r2, r3
+ ldr r2, [r2]
+ lsls r1, 5
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBF94: .4byte gBattleAnimTarget
+_080BBF98: .4byte gPlttBufferUnfaded
+_080BBF9C: .4byte gMonSpritesGfxPtr
+_080BBFA0: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BBF08
+
+ thumb_func_start sub_80BBFA4
+sub_80BBFA4: @ 80BBFA4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080BBFE4 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BBFE8
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BC000
+ movs r2, 0x1
+_080BBFD6:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080BBFD6
+ b _080BC000
+ .align 2, 0
+_080BBFE4: .4byte gBattleAnimArgs
+_080BBFE8:
+ cmp r0, 0x1
+ bne _080BBFF4
+ ldr r0, _080BBFF0 @ =gBattleAnimAttacker
+ b _080BBFFA
+ .align 2, 0
+_080BBFF0: .4byte gBattleAnimAttacker
+_080BBFF4:
+ cmp r0, 0x2
+ bne _080BC000
+ ldr r0, _080BC020 @ =gBattleAnimTarget
+_080BBFFA:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080BC000:
+ lsls r1, r4, 5
+ ldr r0, _080BC024 @ =gPlttBufferUnfaded
+ adds r0, r1, r0
+ ldr r2, _080BC028 @ =gPlttBufferFaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC020: .4byte gBattleAnimTarget
+_080BC024: .4byte gPlttBufferUnfaded
+_080BC028: .4byte gPlttBufferFaded
+ thumb_func_end sub_80BBFA4
+
+ thumb_func_start sub_80BC02C
+sub_80BC02C: @ 80BC02C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080BC04C
+ ldr r1, _080BC048 @ =gBattleAnimArgs
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+ b _080BC050
+ .align 2, 0
+_080BC048: .4byte gBattleAnimArgs
+_080BC04C:
+ ldr r0, _080BC05C @ =gBattleAnimArgs
+ strh r1, [r0, 0xE]
+_080BC050:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC05C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BC02C
+
+ thumb_func_start sub_80BC060
+sub_80BC060: @ 80BC060
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC080 @ =gBattleAnimAttacker
+ ldr r1, _080BC084 @ =gBattlerTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080BC088 @ =gBattleAnimTarget
+ ldr r1, _080BC08C @ =gUnknown_2023D6E
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC080: .4byte gBattleAnimAttacker
+_080BC084: .4byte gBattlerTarget
+_080BC088: .4byte gBattleAnimTarget
+_080BC08C: .4byte gUnknown_2023D6E
+ thumb_func_end sub_80BC060
+
+ thumb_func_start sub_80BC090
+sub_80BC090: @ 80BC090
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080BC0B8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080BC0BC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080BC0C4
+ ldr r1, _080BC0C0 @ =gBattleAnimArgs
+ movs r0, 0x1
+ b _080BC0C8
+ .align 2, 0
+_080BC0B8: .4byte gBattleAnimAttacker
+_080BC0BC: .4byte gBattleAnimTarget
+_080BC0C0: .4byte gBattleAnimArgs
+_080BC0C4:
+ ldr r1, _080BC0D8 @ =gBattleAnimArgs
+ movs r0, 0
+_080BC0C8:
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC0D8: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BC090
+
+ thumb_func_start sub_80BC0DC
+sub_80BC0DC: @ 80BC0DC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC0F4 @ =gBattleAnimTarget
+ ldr r1, _080BC0F8 @ =gBattlerTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC0F4: .4byte gBattleAnimTarget
+_080BC0F8: .4byte gBattlerTarget
+ thumb_func_end sub_80BC0DC
+
+ thumb_func_start sub_80BC0FC
+sub_80BC0FC: @ 80BC0FC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC11C @ =gBattleAnimAttacker
+ ldr r1, _080BC120 @ =sBattler_AI
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080BC124 @ =gBattleAnimTarget
+ ldr r1, _080BC128 @ =gUnknown_2023D6E
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC11C: .4byte gBattleAnimAttacker
+_080BC120: .4byte sBattler_AI
+_080BC124: .4byte gBattleAnimTarget
+_080BC128: .4byte gUnknown_2023D6E
+ thumb_func_end sub_80BC0FC
+
+ thumb_func_start sub_80BC12C
+sub_80BC12C: @ 80BC12C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BC144
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080BC180
+_080BC144:
+ ldr r0, _080BC188 @ =gTasks
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ ldr r0, _080BC18C @ =gUnknown_2024018
+ ldr r4, [r0]
+ ldr r2, _080BC190 @ =gBattleAnimAttacker
+ ldrb r0, [r2]
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ strh r0, [r3, 0x8]
+ ldrb r1, [r2]
+ ldr r0, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080BC194 @ =sub_80BC19C
+ str r0, [r3]
+ ldr r1, _080BC198 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080BC180:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC188: .4byte gTasks
+_080BC18C: .4byte gUnknown_2024018
+_080BC190: .4byte gBattleAnimAttacker
+_080BC194: .4byte sub_80BC19C
+_080BC198: .4byte gUnknown_2037EE2
+ thumb_func_end sub_80BC12C
+
+ thumb_func_start sub_80BC19C
+sub_80BC19C: @ 80BC19C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BC1E8 @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _080BC1E0
+ ldr r0, _080BC1EC @ =gUnknown_2024018
+ ldr r1, [r0]
+ ldr r0, _080BC1F0 @ =gBattleAnimAttacker
+ ldrb r3, [r0]
+ ldr r0, [r1]
+ lsls r3, 2
+ adds r3, r0
+ ldr r1, _080BC1F4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+_080BC1E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC1E8: .4byte gBattleAnimArgs
+_080BC1EC: .4byte gUnknown_2024018
+_080BC1F0: .4byte gBattleAnimAttacker
+_080BC1F4: .4byte gTasks
+ thumb_func_end sub_80BC19C
+
+ thumb_func_start SetAnimBgAttribute
+SetAnimBgAttribute: @ 80BC1F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r6, 0x3
+ bls _080BC20C
+ b _080BC2FE
+_080BC20C:
+ ldr r0, _080BC228 @ =gUnknown_83E7CCA
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ bl GetGpuReg
+ ldr r1, _080BC22C @ =gUnknown_20399B8
+ strh r0, [r1]
+ cmp r5, 0x6
+ bhi _080BC2F0
+ lsls r0, r5, 2
+ ldr r1, _080BC230 @ =_080BC234
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC228: .4byte gUnknown_83E7CCA
+_080BC22C: .4byte gUnknown_20399B8
+_080BC230: .4byte _080BC234
+ .align 2, 0
+_080BC234:
+ .4byte _080BC250
+ .4byte _080BC264
+ .4byte _080BC27C
+ .4byte _080BC294
+ .4byte _080BC2AC
+ .4byte _080BC2C8
+ .4byte _080BC2DC
+_080BC250:
+ ldr r2, _080BC260 @ =gUnknown_20399B8
+ lsls r3, r4, 6
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ b _080BC2F0
+ .align 2, 0
+_080BC260: .4byte gUnknown_20399B8
+_080BC264:
+ ldr r3, _080BC278 @ =gUnknown_20399B8
+ movs r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 5
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ b _080BC2EA
+ .align 2, 0
+_080BC278: .4byte gUnknown_20399B8
+_080BC27C:
+ ldr r3, _080BC290 @ =gUnknown_20399B8
+ movs r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 6
+ ldrb r2, [r3]
+ movs r0, 0x41
+ negs r0, r0
+ b _080BC2BA
+ .align 2, 0
+_080BC290: .4byte gUnknown_20399B8
+_080BC294:
+ ldr r3, _080BC2A8 @ =gUnknown_20399B8
+ movs r0, 0x3
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0xD
+ negs r0, r0
+ b _080BC2BA
+ .align 2, 0
+_080BC2A8: .4byte gUnknown_20399B8
+_080BC2AC:
+ ldr r3, _080BC2C4 @ =gUnknown_20399B8
+ movs r0, 0x3
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x4
+ negs r0, r0
+_080BC2BA:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080BC2F0
+ .align 2, 0
+_080BC2C4: .4byte gUnknown_20399B8
+_080BC2C8:
+ ldr r2, _080BC2D8 @ =gUnknown_20399B8
+ lsls r3, r4, 7
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ b _080BC2F0
+ .align 2, 0
+_080BC2D8: .4byte gUnknown_20399B8
+_080BC2DC:
+ ldr r3, _080BC304 @ =gUnknown_20399B8
+ movs r0, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x20
+ negs r0, r0
+_080BC2EA:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_080BC2F0:
+ ldr r0, _080BC308 @ =gUnknown_83E7CCA
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ ldr r1, _080BC304 @ =gUnknown_20399B8
+ ldrh r1, [r1]
+ bl SetGpuReg
+_080BC2FE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC304: .4byte gUnknown_20399B8
+_080BC308: .4byte gUnknown_83E7CCA
+ thumb_func_end SetAnimBgAttribute
+
+ thumb_func_start sub_80BC30C
+sub_80BC30C: @ 80BC30C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r2, 0x3
+ bhi _080BC394
+ ldr r0, _080BC338 @ =gUnknown_83E7CCE
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl GetGpuReg
+ mov r1, sp
+ strh r0, [r1]
+ cmp r4, 0x6
+ bhi _080BC394
+ lsls r0, r4, 2
+ ldr r1, _080BC33C @ =_080BC340
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC338: .4byte gUnknown_83E7CCE
+_080BC33C: .4byte _080BC340
+ .align 2, 0
+_080BC340:
+ .4byte _080BC35C
+ .4byte _080BC364
+ .4byte _080BC36C
+ .4byte _080BC374
+ .4byte _080BC37C
+ .4byte _080BC384
+ .4byte _080BC38C
+_080BC35C:
+ ldr r0, [sp]
+ lsls r0, 16
+ lsrs r0, 30
+ b _080BC396
+_080BC364:
+ ldr r0, [sp]
+ lsls r0, 18
+ lsrs r0, 31
+ b _080BC396
+_080BC36C:
+ ldr r0, [sp]
+ lsls r0, 25
+ lsrs r0, 31
+ b _080BC396
+_080BC374:
+ ldr r0, [sp]
+ lsls r0, 28
+ lsrs r0, 30
+ b _080BC396
+_080BC37C:
+ ldr r0, [sp]
+ lsls r0, 30
+ lsrs r0, 30
+ b _080BC396
+_080BC384:
+ ldr r0, [sp]
+ lsls r0, 24
+ lsrs r0, 31
+ b _080BC396
+_080BC38C:
+ ldr r0, [sp]
+ lsls r0, 19
+ lsrs r0, 27
+ b _080BC396
+_080BC394:
+ movs r0, 0
+_080BC396:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC30C
+
+ thumb_func_start sub_80BC3A0
+sub_80BC3A0: @ 80BC3A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BC3B8 @ =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC3C0
+ ldr r0, _080BC3BC @ =sub_80BCC4C
+ b _080BC3E8
+ .align 2, 0
+_080BC3B8: .4byte gBattleTypeFlags
+_080BC3BC: .4byte sub_80BCC4C
+_080BC3C0:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r1, r0
+ cmp r1, 0
+ beq _080BC3E0
+ ldr r0, _080BC3D8 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080BC3E0
+ movs r4, 0x3
+ ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8
+ b _080BC3E8
+ .align 2, 0
+_080BC3D8: .4byte gGameVersion
+_080BC3DC: .4byte task00_battle_intro_80BC6C8
+_080BC3E0:
+ ldr r1, _080BC414 @ =gUnknown_83E7CD4
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+_080BC3E8:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BC418 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC414: .4byte gUnknown_83E7CD4
+_080BC418: .4byte gTasks
+ thumb_func_end sub_80BC3A0
+
+ thumb_func_start sub_80BC41C
+sub_80BC41C: @ 80BC41C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, _080BC468 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BC46C @ =gBattle_BG1_Y
+ strh r1, [r0]
+ ldr r0, _080BC470 @ =gBattle_BG2_X
+ strh r1, [r0]
+ ldr r0, _080BC474 @ =gBattle_BG2_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r4, _080BC478 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC468: .4byte gBattle_BG1_X
+_080BC46C: .4byte gBattle_BG1_Y
+_080BC470: .4byte gBattle_BG2_X
+_080BC474: .4byte gBattle_BG2_Y
+_080BC478: .4byte 0x00003f3f
+ thumb_func_end sub_80BC41C
+
+ thumb_func_start task_battle_intro_80BC47C
+task_battle_intro_80BC47C: @ 80BC47C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BC4B4 @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x6
+ strh r0, [r1]
+ ldr r1, _080BC4B8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0x4
+ bls _080BC4A8
+ b _080BC6BA
+_080BC4A8:
+ lsls r0, 2
+ ldr r1, _080BC4BC @ =_080BC4C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC4B4: .4byte gBattle_BG1_X
+_080BC4B8: .4byte gTasks
+_080BC4BC: .4byte _080BC4C0
+ .align 2, 0
+_080BC4C0:
+ .4byte _080BC4D4
+ .4byte _080BC504
+ .4byte _080BC52C
+ .4byte _080BC574
+ .4byte _080BC6B4
+_080BC4D4:
+ ldr r0, _080BC4EC @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC4F0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x10
+ b _080BC4FA
+ .align 2, 0
+_080BC4EC: .4byte gBattleTypeFlags
+_080BC4F0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x1
+_080BC4FA:
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080BC6BA
+_080BC504:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ mov r3, r8
+ adds r1, r0, r3
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BC51C
+ b _080BC6BA
+_080BC51C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _080BC6BA
+_080BC52C:
+ ldr r1, _080BC568 @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BC544
+ b _080BC6BA
+_080BC544:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080BC56C @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BC570 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BC6BA
+ .align 2, 0
+_080BC568: .4byte gUnknown_2022986
+_080BC56C: .4byte gUnknown_2023F4C
+_080BC570: .4byte 0x0000fffe
+_080BC574:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ mov r5, r8
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r5, 0xE
+ ldrsh r1, [r2, r5]
+ mov r12, r0
+ cmp r1, 0
+ beq _080BC590
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080BC5BE
+_080BC590:
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080BC5B0
+ ldr r2, _080BC5A8 @ =gBattle_BG1_Y
+ ldrh r1, [r2]
+ ldr r0, _080BC5AC @ =0x0000ffb0
+ cmp r1, r0
+ beq _080BC5BE
+ subs r0, r1, 0x2
+ b _080BC5BC
+ .align 2, 0
+_080BC5A8: .4byte gBattle_BG1_Y
+_080BC5AC: .4byte 0x0000ffb0
+_080BC5B0:
+ ldr r2, _080BC690 @ =gBattle_BG1_Y
+ ldrh r1, [r2]
+ ldr r0, _080BC694 @ =0x0000ffc8
+ cmp r1, r0
+ beq _080BC5BE
+ subs r0, r1, 0x1
+_080BC5BC:
+ strh r0, [r2]
+_080BC5BE:
+ ldr r2, _080BC698 @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC5D2
+ ldr r3, _080BC69C @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BC5D2:
+ mov r5, r12
+ adds r0, r5, r4
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BC5EA
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BC5EA:
+ movs r3, 0
+ ldr r5, _080BC6A0 @ =gScanlineEffect
+ mov r9, r5
+ ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
+ mov r6, r9
+ adds r5, r1, 0
+_080BC5F6:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BC5F6
+ cmp r3, 0x9F
+ bgt _080BC63A
+ ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
+ ldr r6, _080BC6A0 @ =gScanlineEffect
+ ldr r1, _080BC6A8 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080BC620:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BC620
+_080BC63A:
+ mov r3, r12
+ adds r0, r3, r4
+ lsls r0, 3
+ mov r5, r8
+ adds r1, r0, r5
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ bne _080BC6BA
+ movs r0, 0x3
+ mov r3, r9
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080BC6AC @ =0x0600e000
+ ldr r2, _080BC6B0 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BC6BA
+ .align 2, 0
+_080BC690: .4byte gBattle_BG1_Y
+_080BC694: .4byte 0x0000ffc8
+_080BC698: .4byte gUnknown_2022986
+_080BC69C: .4byte 0xfffffc04
+_080BC6A0: .4byte gScanlineEffect
+_080BC6A4: .4byte gScanlineEffectRegBuffers
+_080BC6A8: .4byte gTasks
+_080BC6AC: .4byte 0x0600e000
+_080BC6B0: .4byte 0x05000200
+_080BC6B4:
+ adds r0, r4, 0
+ bl sub_80BC41C
+_080BC6BA:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task_battle_intro_80BC47C
+
+ thumb_func_start task00_battle_intro_80BC6C8
+task00_battle_intro_80BC6C8: @ 80BC6C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BC6F4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x3
+ beq _080BC708
+ cmp r0, 0x3
+ bgt _080BC6F8
+ cmp r0, 0x2
+ beq _080BC6FC
+ b _080BC710
+ .align 2, 0
+_080BC6F4: .4byte gTasks
+_080BC6F8:
+ cmp r0, 0x4
+ bne _080BC710
+_080BC6FC:
+ ldr r1, _080BC704 @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _080BC70E
+ .align 2, 0
+_080BC704: .4byte gBattle_BG1_X
+_080BC708:
+ ldr r1, _080BC74C @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080BC70E:
+ strh r0, [r1]
+_080BC710:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ adds r6, r0, 0
+ cmp r1, 0x4
+ bne _080BC774
+ ldr r7, _080BC750 @ =gBattle_BG1_Y
+ ldrh r0, [r4, 0x14]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080BC736
+ ldr r1, _080BC754 @ =0x000001ff
+ adds r0, r1
+_080BC736:
+ asrs r0, 9
+ subs r0, 0x8
+ strh r0, [r7]
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB3
+ bgt _080BC758
+ adds r0, r1, 0x4
+ b _080BC75A
+ .align 2, 0
+_080BC74C: .4byte gBattle_BG1_X
+_080BC750: .4byte gBattle_BG1_Y
+_080BC754: .4byte 0x000001ff
+_080BC758:
+ adds r0, r1, 0x6
+_080BC75A:
+ strh r0, [r4, 0x14]
+ ldr r2, _080BC790 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ movs r0, 0xB4
+ lsls r0, 1
+ cmp r1, r0
+ bne _080BC774
+ movs r0, 0
+ strh r0, [r3, 0x14]
+_080BC774:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _080BC784
+ b _080BC9AA
+_080BC784:
+ lsls r0, 2
+ ldr r1, _080BC794 @ =_080BC798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC790: .4byte gTasks
+_080BC794: .4byte _080BC798
+ .align 2, 0
+_080BC798:
+ .4byte _080BC7AC
+ .4byte _080BC7DC
+ .4byte _080BC808
+ .4byte _080BC858
+ .4byte _080BC9A4
+_080BC7AC:
+ ldr r1, _080BC7C8 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x10
+ strh r3, [r2, 0x10]
+ ldr r0, _080BC7CC @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC7D0
+ strh r3, [r2, 0xC]
+ b _080BC7D4
+ .align 2, 0
+_080BC7C8: .4byte gTasks
+_080BC7CC: .4byte gBattleTypeFlags
+_080BC7D0:
+ movs r0, 0x1
+ strh r0, [r2, 0xC]
+_080BC7D4:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080BC9AA
+_080BC7DC:
+ ldr r0, _080BC804 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BC7F2
+ b _080BC9AA
+_080BC7F2:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _080BC9AA
+ .align 2, 0
+_080BC804: .4byte gTasks
+_080BC808:
+ ldr r1, _080BC848 @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BC820
+ b _080BC9AA
+_080BC820:
+ ldr r0, _080BC84C @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080BC850 @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BC854 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BC9AA
+ .align 2, 0
+_080BC848: .4byte gUnknown_2022986
+_080BC84C: .4byte gTasks
+_080BC850: .4byte gUnknown_2023F4C
+_080BC854: .4byte 0x0000fffe
+_080BC858:
+ ldr r0, _080BC890 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BC898
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BC8B8
+ ldr r1, _080BC894 @ =0x00001842
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0xF
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ b _080BC8B8
+ .align 2, 0
+_080BC890: .4byte gTasks
+_080BC894: .4byte 0x00001842
+_080BC898:
+ ldrh r2, [r1, 0x10]
+ movs r0, 0x1F
+ ands r0, r2
+ cmp r0, 0
+ beq _080BC8B8
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BC8B8
+ adds r0, r2, 0
+ adds r0, 0xFF
+ strh r0, [r1, 0x10]
+ movs r0, 0x4
+ strh r0, [r1, 0x12]
+_080BC8B8:
+ ldr r2, _080BC988 @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC8CC
+ ldr r3, _080BC98C @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BC8CC:
+ ldr r0, _080BC990 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BC8E2
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BC8E2:
+ movs r3, 0
+ ldr r0, _080BC994 @ =gScanlineEffect
+ mov r8, r0
+ ldr r2, _080BC998 @ =gScanlineEffectRegBuffers
+ mov r12, r2
+ mov r7, r8
+ adds r4, r1, 0
+_080BC8F0:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BC8F0
+ cmp r3, 0x9F
+ bgt _080BC934
+ ldr r0, _080BC998 @ =gScanlineEffectRegBuffers
+ mov r12, r0
+ ldr r7, _080BC994 @ =gScanlineEffect
+ ldr r1, _080BC990 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080BC91A:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BC91A
+_080BC934:
+ ldr r1, _080BC990 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080BC9AA
+ movs r0, 0x3
+ mov r3, r8
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080BC99C @ =0x0600e000
+ ldr r2, _080BC9A0 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BC9AA
+ .align 2, 0
+_080BC988: .4byte gUnknown_2022986
+_080BC98C: .4byte 0xfffffc04
+_080BC990: .4byte gTasks
+_080BC994: .4byte gScanlineEffect
+_080BC998: .4byte gScanlineEffectRegBuffers
+_080BC99C: .4byte 0x0600e000
+_080BC9A0: .4byte 0x05000200
+_080BC9A4:
+ adds r0, r5, 0
+ bl sub_80BC41C
+_080BC9AA:
+ ldr r0, _080BC9D0 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080BC9C2
+ ldrh r1, [r1, 0x10]
+ movs r0, 0x52
+ bl SetGpuReg
+_080BC9C2:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC9D0: .4byte gTasks
+ thumb_func_end task00_battle_intro_80BC6C8
+
+ thumb_func_start task_battle_intro_anim
+task_battle_intro_anim: @ 80BC9D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BCA08 @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080BCA0C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _080BC9FE
+ b _080BCC22
+_080BC9FE:
+ lsls r0, 2
+ ldr r1, _080BCA10 @ =_080BCA14
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BCA08: .4byte gBattle_BG1_X
+_080BCA0C: .4byte gTasks
+_080BCA10: .4byte _080BCA14
+ .align 2, 0
+_080BCA14:
+ .4byte _080BCA28
+ .4byte _080BCA7C
+ .4byte _080BCAA8
+ .4byte _080BCAF8
+ .4byte _080BCC1C
+_080BCA28:
+ ldr r1, _080BCA60 @ =0x00001842
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r4, _080BCA64 @ =0x00000808
+ movs r0, 0x52
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, _080BCA68 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ strh r4, [r2, 0x10]
+ ldr r0, _080BCA6C @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA70
+ movs r0, 0x10
+ b _080BCA72
+ .align 2, 0
+_080BCA60: .4byte 0x00001842
+_080BCA64: .4byte 0x00000808
+_080BCA68: .4byte gTasks
+_080BCA6C: .4byte gBattleTypeFlags
+_080BCA70:
+ movs r0, 0x1
+_080BCA72:
+ strh r0, [r2, 0xC]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080BCC22
+_080BCA7C:
+ ldr r0, _080BCAA4 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BCA94
+ b _080BCC22
+_080BCA94:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _080BCC22
+ .align 2, 0
+_080BCAA4: .4byte gTasks
+_080BCAA8:
+ ldr r1, _080BCAE8 @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BCAC0
+ b _080BCC22
+_080BCAC0:
+ ldr r0, _080BCAEC @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080BCAF0 @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BCAF4 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BCC22
+ .align 2, 0
+_080BCAE8: .4byte gUnknown_2022986
+_080BCAEC: .4byte gTasks
+_080BCAF0: .4byte gUnknown_2023F4C
+_080BCAF4: .4byte 0x0000fffe
+_080BCAF8:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r2, r1, r4
+ ldrh r3, [r2, 0xE]
+ movs r6, 0xE
+ ldrsh r1, [r2, r6]
+ mov r12, r0
+ cmp r1, 0
+ beq _080BCB12
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080BCB32
+_080BCB12:
+ ldrh r1, [r2, 0x10]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCB32
+ ldrh r0, [r2, 0x12]
+ subs r0, 0x1
+ strh r0, [r2, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BCB32
+ adds r0, r1, 0
+ adds r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r0, 0x6
+ strh r0, [r2, 0x12]
+_080BCB32:
+ ldr r2, _080BCC00 @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCB46
+ ldr r3, _080BCC04 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BCB46:
+ mov r6, r12
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BCB5C
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BCB5C:
+ movs r3, 0
+ ldr r6, _080BCC08 @ =gScanlineEffect
+ mov r8, r6
+ ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
+ adds r4, r1, 0
+_080BCB66:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BCB66
+ cmp r3, 0x9F
+ bgt _080BCBAA
+ ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
+ ldr r6, _080BCC08 @ =gScanlineEffect
+ ldr r1, _080BCC10 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080BCB90:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BCB90
+_080BCBAA:
+ ldr r1, _080BCC10 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080BCC22
+ movs r0, 0x3
+ mov r6, r8
+ strb r0, [r6, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080BCC14 @ =0x0600e000
+ ldr r2, _080BCC18 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BCC22
+ .align 2, 0
+_080BCC00: .4byte gUnknown_2022986
+_080BCC04: .4byte 0xfffffc04
+_080BCC08: .4byte gScanlineEffect
+_080BCC0C: .4byte gScanlineEffectRegBuffers
+_080BCC10: .4byte gTasks
+_080BCC14: .4byte 0x0600e000
+_080BCC18: .4byte 0x05000200
+_080BCC1C:
+ adds r0, r5, 0
+ bl sub_80BC41C
+_080BCC22:
+ ldr r0, _080BCC48 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080BCC3C
+ ldrh r1, [r1, 0x10]
+ movs r0, 0x52
+ bl SetGpuReg
+_080BCC3C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCC48: .4byte gTasks
+ thumb_func_end task_battle_intro_anim
+
+ thumb_func_start sub_80BCC4C
+sub_80BCC4C: @ 80BCC4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080BCC98 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ ble _080BCCC2
+ movs r2, 0x10
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080BCCC2
+ ldr r2, _080BCC9C @ =gBattle_BG1_X
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _080BCC8A
+ cmp r1, 0x4F
+ bhi _080BCCA4
+_080BCC8A:
+ adds r0, r1, 0x3
+ strh r0, [r2]
+ ldr r1, _080BCCA0 @ =gBattle_BG2_X
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _080BCCC2
+ .align 2, 0
+_080BCC98: .4byte gTasks
+_080BCC9C: .4byte gBattle_BG1_X
+_080BCCA0: .4byte gBattle_BG2_X
+_080BCCA4:
+ str r5, [sp]
+ ldr r1, _080BCCE4 @ =0x0600e000
+ ldr r4, _080BCCE8 @ =0x05000200
+ mov r0, sp
+ adds r2, r4, 0
+ bl CpuSet
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldr r1, _080BCCEC @ =0x0600f000
+ adds r2, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ strh r0, [r7, 0x10]
+_080BCCC2:
+ ldr r0, _080BCCF0 @ =gTasks
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ mov r9, r0
+ adds r5, r2, 0
+ cmp r1, 0x4
+ bls _080BCCDA
+ b _080BCEE6
+_080BCCDA:
+ lsls r0, r1, 2
+ ldr r1, _080BCCF4 @ =_080BCCF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BCCE4: .4byte 0x0600e000
+_080BCCE8: .4byte 0x05000200
+_080BCCEC: .4byte 0x0600f000
+_080BCCF0: .4byte gTasks
+_080BCCF4: .4byte _080BCCF8
+ .align 2, 0
+_080BCCF8:
+ .4byte _080BCD0C
+ .4byte _080BCD1E
+ .4byte _080BCDC4
+ .4byte _080BCE08
+ .4byte _080BCEE0
+_080BCD0C:
+ adds r0, r5, r6
+ lsls r0, 3
+ add r0, r9
+ movs r1, 0x20
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080BCEE6
+_080BCD1E:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BCD34
+ b _080BCEE6
+_080BCD34:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r4, _080BCDB4 @ =gSprites
+ ldr r5, _080BCDB8 @ =gBattleStruct
+ ldr r0, [r5]
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r3, [r1, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x8
+ mov r9, r3
+ mov r3, r9
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x7D
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1C
+ adds r1, r4
+ mov r8, r1
+ add r0, r8
+ ldr r6, _080BCDBC @ =sub_801182C
+ str r6, [r0]
+ adds r3, 0x7E
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ mov r3, r9
+ orrs r2, r3
+ strb r2, [r0, 0x1]
+ ldr r0, [r5]
+ adds r0, 0x7E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ str r6, [r0]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ ldr r1, _080BCDC0 @ =0x00003f06
+ movs r0, 0x4A
+ bl SetGpuReg
+ b _080BCEE6
+ .align 2, 0
+_080BCDB4: .4byte gSprites
+_080BCDB8: .4byte gBattleStruct
+_080BCDBC: .4byte sub_801182C
+_080BCDC0: .4byte 0x00003f06
+_080BCDC4:
+ ldr r1, _080BCDFC @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BCDDC
+ b _080BCEE6
+_080BCDDC:
+ adds r1, r5, r6
+ lsls r1, 3
+ add r1, r9
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080BCE00 @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BCE04 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BCEE6
+ .align 2, 0
+_080BCDFC: .4byte gUnknown_2022986
+_080BCE00: .4byte gUnknown_2023F4C
+_080BCE04: .4byte 0x0000fffe
+_080BCE08:
+ ldr r2, _080BCECC @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCE1C
+ ldr r3, _080BCED0 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BCE1C:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BCE32
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BCE32:
+ movs r3, 0
+ ldr r0, _080BCED4 @ =gScanlineEffect
+ mov r12, r0
+ ldr r2, _080BCED8 @ =gScanlineEffectRegBuffers
+ mov r8, r2
+ mov r7, r12
+ adds r4, r1, 0
+_080BCE40:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BCE40
+ cmp r3, 0x9F
+ bgt _080BCE84
+ ldr r0, _080BCED8 @ =gScanlineEffectRegBuffers
+ mov r8, r0
+ ldr r7, _080BCED4 @ =gScanlineEffect
+ ldr r1, _080BCEDC @ =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r4, r0, r1
+_080BCE6A:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BCE6A
+_080BCE84:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080BCEE6
+ movs r0, 0x3
+ mov r2, r12
+ strb r0, [r2, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BCEE6
+ .align 2, 0
+_080BCECC: .4byte gUnknown_2022986
+_080BCED0: .4byte 0xfffffc04
+_080BCED4: .4byte gScanlineEffect
+_080BCED8: .4byte gScanlineEffectRegBuffers
+_080BCEDC: .4byte gTasks
+_080BCEE0:
+ adds r0, r6, 0
+ bl sub_80BC41C
+_080BCEE6:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BCC4C
+
+ thumb_func_start sub_80BCEF4
+sub_80BCEF4: @ 80BCEF4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ adds r6, r2, 0
+ adds r4, r3, 0
+ ldr r0, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r2, [sp, 0x2C]
+ mov r9, r2
+ ldr r5, [sp, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr
+ ldr r2, [r1]
+ lsls r4, 2
+ adds r2, 0x4
+ adds r2, r4
+ ldr r1, _080BCFC8 @ =gBattleMonForms
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r2]
+ adds r0, r1
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r7, 0
+ bl CpuSet
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl LoadBgTiles
+ adds r0, r6, 0
+ adds r0, 0x8
+ cmp r6, r0
+ bge _080BCFA0
+ mov r12, r0
+ mov r2, r8
+ lsls r7, r2, 1
+_080BCF72:
+ mov r1, r8
+ adds r2, r1, 0
+ adds r2, 0x8
+ adds r4, r6, 0x1
+ cmp r1, r2
+ bge _080BCF9A
+ mov r0, r10
+ lsls r3, r0, 12
+ lsls r0, r6, 6
+ add r0, r9
+ adds r6, r7, r0
+ subs r1, r2, r1
+_080BCF8A:
+ adds r0, r5, 0
+ orrs r0, r3
+ strh r0, [r6]
+ adds r5, 0x1
+ adds r6, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080BCF8A
+_080BCF9A:
+ adds r6, r4, 0
+ cmp r6, r12
+ blt _080BCF72
+_080BCFA0:
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 4
+ mov r1, r9
+ movs r3, 0
+ bl LoadBgTilemap
+ 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
+_080BCFC4: .4byte gMonSpritesGfxPtr
+_080BCFC8: .4byte gBattleMonForms
+ thumb_func_end sub_80BCEF4
+
+ thumb_func_start sub_80BCFCC
+sub_80BCFCC: @ 80BCFCC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ mov r8, r5
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ mov r7, r8
+ lsls r7, 16
+ lsrs r6, r7, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r9
+ lsls r0, 24
+ mov r9, r0
+ ldr r4, _080BD090 @ =0x040000d4
+ ldr r0, _080BD094 @ =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ lsrs r2, 22
+ adds r0, 0x4
+ adds r0, r2
+ lsrs r3, 13
+ ldr r0, [r0]
+ adds r0, r3
+ str r0, [r4]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r4, 0x4]
+ ldr r0, _080BD098 @ =0x80000400
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, r7, 0
+ lsrs r2, 21
+ mov r6, r9
+ lsrs r6, 15
+ subs r4, r2, r6
+ lsrs r0, r1, 24
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080BD080
+ mov r9, r1
+ mov r7, r12
+ lsls r7, 1
+ mov r8, r7
+ lsls r5, 11
+ str r5, [sp]
+_080BD048:
+ mov r2, r12
+ adds r3, r2, 0
+ adds r3, 0x8
+ adds r5, r0, 0x1
+ cmp r2, r3
+ bge _080BD07A
+ mov r1, r10
+ lsls r6, r1, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r7, r8
+ adds r1, r7, r0
+ subs r2, r3, r2
+_080BD06A:
+ adds r0, r4, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080BD06A
+_080BD07A:
+ adds r0, r5, 0
+ cmp r0, r9
+ blt _080BD048
+_080BD080:
+ 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
+_080BD090: .4byte 0x040000d4
+_080BD094: .4byte gMonSpritesGfxPtr
+_080BD098: .4byte 0x80000400
+ thumb_func_end sub_80BCFCC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s
index d5a9b8ae6..873fa088c 100644
--- a/asm/battle_controller_link_opponent.s
+++ b/asm/battle_controller_link_opponent.s
@@ -70,7 +70,7 @@ _0803A6D0:
sub_803A6D4: @ 803A6D4
push {lr}
ldr r2, _0803A6FC @ =gSprites
- ldr r1, _0803A700 @ =gUnknown_2023D44
+ ldr r1, _0803A700 @ =gBattlerSpriteIds
ldr r0, _0803A704 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -90,7 +90,7 @@ _0803A6F8:
bx r0
.align 2, 0
_0803A6FC: .4byte gSprites
-_0803A700: .4byte gUnknown_2023D44
+_0803A700: .4byte gBattlerSpriteIds
_0803A704: .4byte gActiveBattler
_0803A708: .4byte SpriteCallbackDummy
thumb_func_end sub_803A6D4
@@ -99,7 +99,7 @@ _0803A708: .4byte SpriteCallbackDummy
sub_803A70C: @ 803A70C
push {r4-r6,lr}
ldr r4, _0803A784 @ =gSprites
- ldr r6, _0803A788 @ =gUnknown_2023D44
+ ldr r6, _0803A788 @ =gBattlerSpriteIds
ldr r5, _0803A78C @ =gActiveBattler
ldrb r0, [r5]
adds r0, r6
@@ -155,7 +155,7 @@ _0803A77C:
bx r0
.align 2, 0
_0803A784: .4byte gSprites
-_0803A788: .4byte gUnknown_2023D44
+_0803A788: .4byte gBattlerSpriteIds
_0803A78C: .4byte gActiveBattler
_0803A790: .4byte SpriteCallbackDummy
_0803A794: .4byte 0x000003ff
@@ -714,7 +714,7 @@ _0803AC10: .4byte sub_803A7E4
sub_803AC14: @ 803AC14
push {r4-r7,lr}
ldr r2, _0803AC70 @ =gSprites
- ldr r0, _0803AC74 @ =gUnknown_2023D44
+ ldr r0, _0803AC74 @ =gBattlerSpriteIds
ldr r7, _0803AC78 @ =gActiveBattler
ldrb r3, [r7]
adds r0, r3, r0
@@ -758,7 +758,7 @@ sub_803AC14: @ 803AC14
b _0803ACC0
.align 2, 0
_0803AC70: .4byte gSprites
-_0803AC74: .4byte gUnknown_2023D44
+_0803AC74: .4byte gBattlerSpriteIds
_0803AC78: .4byte gActiveBattler
_0803AC7C: .4byte gUnknown_2024018
_0803AC80: .4byte gBattlerPartyIndexes
@@ -842,7 +842,7 @@ _0803AD18:
sub_803AD20: @ 803AD20
push {lr}
ldr r2, _0803AD54 @ =gSprites
- ldr r0, _0803AD58 @ =gUnknown_2023D44
+ ldr r0, _0803AD58 @ =gBattlerSpriteIds
ldr r1, _0803AD5C @ =gActiveBattler
ldrb r3, [r1]
adds r0, r3, r0
@@ -866,7 +866,7 @@ _0803AD4E:
bx r0
.align 2, 0
_0803AD54: .4byte gSprites
-_0803AD58: .4byte gUnknown_2023D44
+_0803AD58: .4byte gBattlerSpriteIds
_0803AD5C: .4byte gActiveBattler
_0803AD60: .4byte gUnknown_3004FF0
thumb_func_end sub_803AD20
@@ -888,7 +888,7 @@ sub_803AD64: @ 803AD64
ands r0, r1
cmp r0, 0
bne _0803ADBE
- ldr r5, _0803ADCC @ =gUnknown_2023D44
+ ldr r5, _0803ADCC @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -920,7 +920,7 @@ _0803ADBE:
.align 2, 0
_0803ADC4: .4byte gUnknown_2024018
_0803ADC8: .4byte gActiveBattler
-_0803ADCC: .4byte gUnknown_2023D44
+_0803ADCC: .4byte gBattlerSpriteIds
_0803ADD0: .4byte gSprites
_0803ADD4: .4byte gUnknown_3004FF0
thumb_func_end sub_803AD64
@@ -942,7 +942,7 @@ _0803ADEA:
thumb_func_start DoHitAnimBlinkSpriteEffect_4
DoHitAnimBlinkSpriteEffect_4: @ 803ADF0
push {r4,lr}
- ldr r1, _0803AE2C @ =gUnknown_2023D44
+ ldr r1, _0803AE2C @ =gBattlerSpriteIds
ldr r0, _0803AE30 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -970,7 +970,7 @@ DoHitAnimBlinkSpriteEffect_4: @ 803ADF0
bl RecordedOpponentBufferExecCompleted
b _0803AE66
.align 2, 0
-_0803AE2C: .4byte gUnknown_2023D44
+_0803AE2C: .4byte gBattlerSpriteIds
_0803AE30: .4byte gActiveBattler
_0803AE34: .4byte gSprites
_0803AE38: .4byte gUnknown_2024005
@@ -1132,7 +1132,7 @@ sub_803AF28: @ 803AF28
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
- ldr r1, _0803AFE0 @ =gUnknown_2023D44
+ ldr r1, _0803AFE0 @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
@@ -1179,7 +1179,7 @@ _0803AFCC:
_0803AFD4: .4byte gUnknown_2024018
_0803AFD8: .4byte gActiveBattler
_0803AFDC: .4byte 0x000027f9
-_0803AFE0: .4byte gUnknown_2023D44
+_0803AFE0: .4byte gBattlerSpriteIds
_0803AFE4: .4byte gSprites
_0803AFE8: .4byte gUnknown_3004FF0
_0803AFEC: .4byte gBattlerPartyIndexes
@@ -3576,7 +3576,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0803C4E8 @ =gMultiuseSpriteTemplate
mov r8, r0
ldrb r0, [r6]
@@ -3599,7 +3599,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _0803C4EC @ =gUnknown_2023D44
+ ldr r4, _0803C4EC @ =gBattlerSpriteIds
ldrb r1, [r6]
adds r1, r4
strb r0, [r1]
@@ -3678,7 +3678,7 @@ _0803C4DC: .4byte gBattlerPartyIndexes
_0803C4E0: .4byte gActiveBattler
_0803C4E4: .4byte gEnemyParty
_0803C4E8: .4byte gMultiuseSpriteTemplate
-_0803C4EC: .4byte gUnknown_2023D44
+_0803C4EC: .4byte gBattlerSpriteIds
_0803C4F0: .4byte gSprites
_0803C4F4: .4byte 0x0000ff10
_0803C4F8: .4byte gBattleMonForms
@@ -3780,7 +3780,7 @@ sub_803C550: @ 803C550
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0803C6C0 @ =gMultiuseSpriteTemplate
mov r9, r0
adds r0, r6, 0
@@ -3803,7 +3803,7 @@ sub_803C550: @ 803C550
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _0803C6C4 @ =gUnknown_2023D44
+ ldr r4, _0803C6C4 @ =gBattlerSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, _0803C6C8 @ =gSprites
@@ -3893,7 +3893,7 @@ _0803C6B4: .4byte gEnemyParty
_0803C6B8: .4byte sub_8033E3C
_0803C6BC: .4byte gUnknown_3004FFC
_0803C6C0: .4byte gMultiuseSpriteTemplate
-_0803C6C4: .4byte gUnknown_2023D44
+_0803C6C4: .4byte gBattlerSpriteIds
_0803C6C8: .4byte gSprites
_0803C6CC: .4byte gBattleMonForms
_0803C6D0: .4byte SpriteCallbackDummy
@@ -3933,7 +3933,7 @@ _0803C710: .4byte gUnknown_2024018
_0803C714: .4byte gUnknown_3004FE0
_0803C718: .4byte sub_803C76C
_0803C71C:
- ldr r5, _0803C760 @ =gUnknown_2023D44
+ ldr r5, _0803C760 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -3963,7 +3963,7 @@ _0803C758:
pop {r0}
bx r0
.align 2, 0
-_0803C760: .4byte gUnknown_2023D44
+_0803C760: .4byte gBattlerSpriteIds
_0803C764: .4byte gSprites
_0803C768: .4byte gUnknown_3004FF0
thumb_func_end LinkOpponentHandleReturnPokeToBall
@@ -4278,7 +4278,7 @@ _0803C992:
adds r1, r6, 0
adds r2, r4, 0
bl CreateSprite
- ldr r5, _0803CAD8 @ =gUnknown_2023D44
+ ldr r5, _0803CAD8 @ =gBattlerSpriteIds
mov r2, r8
ldrb r1, [r2]
adds r1, r5
@@ -4302,7 +4302,7 @@ _0803C992:
adds r0, r4
movs r1, 0x2
strh r1, [r0, 0x2E]
- ldr r0, _0803CAE4 @ =gUnknown_8239A1C
+ ldr r0, _0803CAE4 @ =gTrainerFrontPicPaletteTable
mov r1, r9
lsls r6, r1, 3
adds r0, r6, r0
@@ -4334,7 +4334,7 @@ _0803C992:
lsls r0, 22
lsrs r0, 22
strh r0, [r1, 0x38]
- ldr r0, _0803CAE8 @ =gUnknown_823957C
+ ldr r0, _0803CAE8 @ =gTrainerFrontPicTable
adds r6, r0
ldrh r0, [r6, 0x6]
bl GetSpriteTileStartByTag
@@ -4392,11 +4392,11 @@ _0803CAC8: .4byte gFacilityClassToPicIndex
_0803CACC: .4byte gActiveBattler
_0803CAD0: .4byte gMultiuseSpriteTemplate
_0803CAD4: .4byte gUnknown_823932C
-_0803CAD8: .4byte gUnknown_2023D44
+_0803CAD8: .4byte gBattlerSpriteIds
_0803CADC: .4byte gSprites
_0803CAE0: .4byte 0x0000ff10
-_0803CAE4: .4byte gUnknown_8239A1C
-_0803CAE8: .4byte gUnknown_823957C
+_0803CAE4: .4byte gTrainerFrontPicPaletteTable
+_0803CAE8: .4byte gTrainerFrontPicTable
_0803CAEC: .4byte 0x000003ff
_0803CAF0: .4byte 0xfffffc00
_0803CAF4: .4byte sub_8033EEC
@@ -4415,7 +4415,7 @@ sub_803CB00: @ 803CB00
thumb_func_start sub_803CB0C
sub_803CB0C: @ 803CB0C
push {r4-r6,lr}
- ldr r6, _0803CB9C @ =gUnknown_2023D44
+ ldr r6, _0803CB9C @ =gBattlerSpriteIds
ldr r4, _0803CBA0 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r6
@@ -4484,7 +4484,7 @@ sub_803CB0C: @ 803CB0C
pop {r0}
bx r0
.align 2, 0
-_0803CB9C: .4byte gUnknown_2023D44
+_0803CB9C: .4byte gBattlerSpriteIds
_0803CBA0: .4byte gActiveBattler
_0803CBA4: .4byte gSprites
_0803CBA8: .4byte sub_8075590
@@ -4548,7 +4548,7 @@ _0803CC0C:
movs r1, 0x3F
bl PlaySE12WithPanning
ldr r2, _0803CC50 @ =gSprites
- ldr r1, _0803CC54 @ =gUnknown_2023D44
+ ldr r1, _0803CC54 @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
@@ -4571,7 +4571,7 @@ _0803CC48:
bx r0
.align 2, 0
_0803CC50: .4byte gSprites
-_0803CC54: .4byte gUnknown_2023D44
+_0803CC54: .4byte gBattlerSpriteIds
_0803CC58: .4byte sub_8011EA0
_0803CC5C: .4byte gUnknown_3004FE0
_0803CC60: .4byte sub_803AD20
@@ -4633,7 +4633,7 @@ _0803CCA6:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, _0803CD80 @ =gUnknown_2037F16
+ ldr r5, _0803CD80 @ =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
@@ -4701,7 +4701,7 @@ _0803CCA6:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, _0803CD94 @ =gUnknown_2037EE4
+ ldr r3, _0803CD94 @ =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4725,12 +4725,12 @@ _0803CCA6:
.align 2, 0
_0803CD78: .4byte gActiveBattler
_0803CD7C: .4byte gUnknown_2022BC4
-_0803CD80: .4byte gUnknown_2037F16
+_0803CD80: .4byte gAnimMoveTurn
_0803CD84: .4byte gUnknown_2037EEC
_0803CD88: .4byte gUnknown_2037EE8
_0803CD8C: .4byte gUnknown_2037EFE
_0803CD90: .4byte gUnknown_2037F00
-_0803CD94: .4byte gUnknown_2037EE4
+_0803CD94: .4byte gAnimDisableStructPtr
_0803CD98: .4byte gUnknown_2024008
_0803CD9C:
ldr r0, _0803CDC0 @ =gUnknown_2024018
@@ -4952,10 +4952,10 @@ _0803CF40:
thumb_func_start sub_803CF50
sub_803CF50: @ 803CF50
push {r4,lr}
- ldr r0, _0803CF84 @ =gUnknown_2022974
+ ldr r0, _0803CF84 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _0803CF88 @ =gUnknown_2022976
+ ldr r0, _0803CF88 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _0803CF8C @ =gActiveBattler
ldrb r4, [r0]
@@ -4974,8 +4974,8 @@ sub_803CF50: @ 803CF50
bl sub_80D87BC
b _0803CFA0
.align 2, 0
-_0803CF84: .4byte gUnknown_2022974
-_0803CF88: .4byte gUnknown_2022976
+_0803CF84: .4byte gBattle_BG0_X
+_0803CF88: .4byte gBattle_BG0_Y
_0803CF8C: .4byte gActiveBattler
_0803CF90: .4byte gUnknown_2022BC6
_0803CF94: .4byte gDisplayedStringBattle
@@ -5437,7 +5437,7 @@ _0803D2F0: .4byte gUnknown_2022870
RecordedOpponentHandleHitAnimation: @ 803D2F4
push {r4,lr}
ldr r3, _0803D31C @ =gSprites
- ldr r2, _0803D320 @ =gUnknown_2023D44
+ ldr r2, _0803D320 @ =gBattlerSpriteIds
ldr r4, _0803D324 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r2
@@ -5455,7 +5455,7 @@ RecordedOpponentHandleHitAnimation: @ 803D2F4
b _0803D352
.align 2, 0
_0803D31C: .4byte gSprites
-_0803D320: .4byte gUnknown_2023D44
+_0803D320: .4byte gBattlerSpriteIds
_0803D324: .4byte gActiveBattler
_0803D328:
ldr r1, _0803D358 @ =gUnknown_2024005
@@ -5612,7 +5612,7 @@ _0803D450: .4byte gUnknown_2023F4C
thumb_func_start sub_803D454
sub_803D454: @ 803D454
push {r4-r6,lr}
- ldr r5, _0803D534 @ =gUnknown_2023D44
+ ldr r5, _0803D534 @ =gBattlerSpriteIds
ldr r6, _0803D538 @ =gActiveBattler
ldrb r0, [r6]
adds r0, r5
@@ -5722,7 +5722,7 @@ _0803D516:
pop {r0}
bx r0
.align 2, 0
-_0803D534: .4byte gUnknown_2023D44
+_0803D534: .4byte gBattlerSpriteIds
_0803D538: .4byte gActiveBattler
_0803D53C: .4byte gSprites
_0803D540: .4byte sub_8075590
@@ -6100,7 +6100,7 @@ RecordedOpponentHandleSpriteInvisibility: @ 803D834
cmp r0, 0
beq _0803D87A
ldr r3, _0803D888 @ =gSprites
- ldr r0, _0803D88C @ =gUnknown_2023D44
+ ldr r0, _0803D88C @ =gBattlerSpriteIds
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
@@ -6133,7 +6133,7 @@ _0803D87A:
.align 2, 0
_0803D884: .4byte gActiveBattler
_0803D888: .4byte gSprites
-_0803D88C: .4byte gUnknown_2023D44
+_0803D88C: .4byte gBattlerSpriteIds
_0803D890: .4byte gUnknown_2022BC4
thumb_func_end RecordedOpponentHandleSpriteInvisibility
@@ -6218,15 +6218,15 @@ RecordedOpponentHandleCmd55: @ 803D914
ldrb r2, [r0]
cmp r2, 0x3
bne _0803D93C
- ldr r0, _0803D938 @ =gUnknown_2023E8A
+ ldr r0, _0803D938 @ =gBattleOutcome
strb r2, [r0]
b _0803D944
.align 2, 0
_0803D930: .4byte gUnknown_2022BC4
_0803D934: .4byte gActiveBattler
-_0803D938: .4byte gUnknown_2023E8A
+_0803D938: .4byte gBattleOutcome
_0803D93C:
- ldr r0, _0803D968 @ =gUnknown_2023E8A
+ ldr r0, _0803D968 @ =gBattleOutcome
movs r1, 0x3
eors r1, r2
strb r1, [r0]
@@ -6246,7 +6246,7 @@ _0803D944:
pop {r0}
bx r0
.align 2, 0
-_0803D968: .4byte gUnknown_2023E8A
+_0803D968: .4byte gBattleOutcome
_0803D96C: .4byte gUnknown_3004FE0
_0803D970: .4byte gActiveBattler
_0803D974: .4byte sub_802F6A8
diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s
index 7480e8b12..8da94bdce 100644
--- a/asm/battle_controller_link_partner.s
+++ b/asm/battle_controller_link_partner.s
@@ -70,7 +70,7 @@ _080D426C:
sub_80D4270: @ 80D4270
push {lr}
ldr r2, _080D4298 @ =gSprites
- ldr r1, _080D429C @ =gUnknown_2023D44
+ ldr r1, _080D429C @ =gBattlerSpriteIds
ldr r0, _080D42A0 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -90,7 +90,7 @@ _080D4294:
bx r0
.align 2, 0
_080D4298: .4byte gSprites
-_080D429C: .4byte gUnknown_2023D44
+_080D429C: .4byte gBattlerSpriteIds
_080D42A0: .4byte gActiveBattler
_080D42A4: .4byte SpriteCallbackDummy
thumb_func_end sub_80D4270
@@ -99,7 +99,7 @@ _080D42A4: .4byte SpriteCallbackDummy
sub_80D42A8: @ 80D42A8
push {r4-r6,lr}
ldr r6, _080D4300 @ =gSprites
- ldr r5, _080D4304 @ =gUnknown_2023D44
+ ldr r5, _080D4304 @ =gBattlerSpriteIds
ldr r4, _080D4308 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r5
@@ -139,7 +139,7 @@ _080D42F8:
bx r0
.align 2, 0
_080D4300: .4byte gSprites
-_080D4304: .4byte gUnknown_2023D44
+_080D4304: .4byte gBattlerSpriteIds
_080D4308: .4byte gActiveBattler
_080D430C: .4byte SpriteCallbackDummy
thumb_func_end sub_80D42A8
@@ -456,7 +456,7 @@ _080D458C: .4byte sub_80D4358
sub_80D4590: @ 80D4590
push {lr}
ldr r2, _080D45C4 @ =gSprites
- ldr r1, _080D45C8 @ =gUnknown_2023D44
+ ldr r1, _080D45C8 @ =gBattlerSpriteIds
ldr r0, _080D45CC @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -481,7 +481,7 @@ _080D45BE:
bx r0
.align 2, 0
_080D45C4: .4byte gSprites
-_080D45C8: .4byte gUnknown_2023D44
+_080D45C8: .4byte gBattlerSpriteIds
_080D45CC: .4byte gActiveBattler
thumb_func_end sub_80D4590
@@ -543,7 +543,7 @@ _080D463C: .4byte gPlayerParty
sub_80D4640: @ 80D4640
push {r4-r6,lr}
ldr r6, _080D4698 @ =gSprites
- ldr r5, _080D469C @ =gUnknown_2023D44
+ ldr r5, _080D469C @ =gBattlerSpriteIds
ldr r4, _080D46A0 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r5
@@ -583,7 +583,7 @@ _080D4690:
bx r0
.align 2, 0
_080D4698: .4byte gSprites
-_080D469C: .4byte gUnknown_2023D44
+_080D469C: .4byte gBattlerSpriteIds
_080D46A0: .4byte gActiveBattler
_080D46A4: .4byte gUnknown_3004FF0
thumb_func_end sub_80D4640
@@ -605,7 +605,7 @@ sub_80D46A8: @ 80D46A8
ands r0, r1
cmp r0, 0
bne _080D46FC
- ldr r5, _080D470C @ =gUnknown_2023D44
+ ldr r5, _080D470C @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -635,7 +635,7 @@ _080D46FC:
.align 2, 0
_080D4704: .4byte gUnknown_2024018
_080D4708: .4byte gActiveBattler
-_080D470C: .4byte gUnknown_2023D44
+_080D470C: .4byte gBattlerSpriteIds
_080D4710: .4byte gSprites
_080D4714: .4byte gUnknown_3004FF0
thumb_func_end sub_80D46A8
@@ -657,7 +657,7 @@ _080D472A:
thumb_func_start sub_80D4730
sub_80D4730: @ 80D4730
push {r4,lr}
- ldr r1, _080D476C @ =gUnknown_2023D44
+ ldr r1, _080D476C @ =gBattlerSpriteIds
ldr r0, _080D4770 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -685,7 +685,7 @@ sub_80D4730: @ 80D4730
bl sub_80D49E8
b _080D47A6
.align 2, 0
-_080D476C: .4byte gUnknown_2023D44
+_080D476C: .4byte gBattlerSpriteIds
_080D4770: .4byte gActiveBattler
_080D4774: .4byte gSprites
_080D4778: .4byte gUnknown_2024005
@@ -852,7 +852,7 @@ sub_80D484C: @ 80D484C
ldr r5, _080D492C @ =gPlayerParty
adds r0, r5
bl HandleLowHpMusicChange
- ldr r1, _080D4930 @ =gUnknown_2023D44
+ ldr r1, _080D4930 @ =gBattlerSpriteIds
ldrb r0, [r7]
adds r0, r1
ldrb r1, [r0]
@@ -901,7 +901,7 @@ _080D4920: .4byte 0x000027f9
_080D4924: .4byte c3_0802FDF4
_080D4928: .4byte gBattlerPartyIndexes
_080D492C: .4byte gPlayerParty
-_080D4930: .4byte gUnknown_2023D44
+_080D4930: .4byte gBattlerSpriteIds
_080D4934: .4byte gSprites
_080D4938: .4byte gUnknown_3004FF0
_080D493C: .4byte gUnknown_3004FE0
@@ -3370,7 +3370,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080D5EB4 @ =gMultiuseSpriteTemplate
mov r8, r0
ldrb r0, [r6]
@@ -3393,7 +3393,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _080D5EB8 @ =gUnknown_2023D44
+ ldr r4, _080D5EB8 @ =gBattlerSpriteIds
ldrb r1, [r6]
adds r1, r4
strb r0, [r1]
@@ -3455,7 +3455,7 @@ _080D5EA8: .4byte gBattlerPartyIndexes
_080D5EAC: .4byte gActiveBattler
_080D5EB0: .4byte gPlayerParty
_080D5EB4: .4byte gMultiuseSpriteTemplate
-_080D5EB8: .4byte gUnknown_2023D44
+_080D5EB8: .4byte gBattlerSpriteIds
_080D5EBC: .4byte gSprites
_080D5EC0: .4byte 0x0000ff10
_080D5EC4: .4byte gBattleMonForms
@@ -3562,7 +3562,7 @@ sub_80D5F40: @ 80D5F40
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080D6098 @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
@@ -3585,7 +3585,7 @@ sub_80D5F40: @ 80D5F40
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _080D609C @ =gUnknown_2023D44
+ ldr r4, _080D609C @ =gBattlerSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, _080D60A0 @ =gSprites
@@ -3675,7 +3675,7 @@ _080D608C: .4byte gPlayerParty
_080D6090: .4byte sub_8033E3C
_080D6094: .4byte gUnknown_3004FFC
_080D6098: .4byte gMultiuseSpriteTemplate
-_080D609C: .4byte gUnknown_2023D44
+_080D609C: .4byte gBattlerSpriteIds
_080D60A0: .4byte gSprites
_080D60A4: .4byte gBattleMonForms
_080D60A8: .4byte SpriteCallbackDummy
@@ -3715,7 +3715,7 @@ _080D60E8: .4byte gUnknown_2024018
_080D60EC: .4byte gUnknown_3004FE0
_080D60F0: .4byte sub_80D613C
_080D60F4:
- ldr r5, _080D6130 @ =gUnknown_2023D44
+ ldr r5, _080D6130 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -3743,7 +3743,7 @@ _080D612A:
pop {r0}
bx r0
.align 2, 0
-_080D6130: .4byte gUnknown_2023D44
+_080D6130: .4byte gBattlerSpriteIds
_080D6134: .4byte gSprites
_080D6138: .4byte gUnknown_3004FF0
thumb_func_end LinkPartnerHandleReturnPokeToBall
@@ -3926,7 +3926,7 @@ _080D6258:
mov r1, r8
adds r2, r4, 0
bl CreateSprite
- ldr r6, _080D6324 @ =gUnknown_2023D44
+ ldr r6, _080D6324 @ =gBattlerSpriteIds
ldrb r1, [r5]
adds r1, r6
strb r0, [r1]
@@ -3987,7 +3987,7 @@ _080D6258:
_080D6318: .4byte gActiveBattler
_080D631C: .4byte gMultiuseSpriteTemplate
_080D6320: .4byte gUnknown_8239F8C
-_080D6324: .4byte gUnknown_2023D44
+_080D6324: .4byte gBattlerSpriteIds
_080D6328: .4byte gSprites
_080D632C: .4byte 0x0000fffe
_080D6330: .4byte sub_8033EEC
@@ -4006,7 +4006,7 @@ sub_80D633C: @ 80D633C
thumb_func_start sub_80D6348
sub_80D6348: @ 80D6348
push {r4-r6,lr}
- ldr r6, _080D63D4 @ =gUnknown_2023D44
+ ldr r6, _080D63D4 @ =gBattlerSpriteIds
ldr r4, _080D63D8 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r6
@@ -4074,7 +4074,7 @@ sub_80D6348: @ 80D6348
pop {r0}
bx r0
.align 2, 0
-_080D63D4: .4byte gUnknown_2023D44
+_080D63D4: .4byte gBattlerSpriteIds
_080D63D8: .4byte gActiveBattler
_080D63DC: .4byte gSprites
_080D63E0: .4byte 0x0000ffd8
@@ -4150,7 +4150,7 @@ _080D6448:
movs r0, 0x10
bl PlaySE12WithPanning
ldr r2, _080D64CC @ =gSprites
- ldr r3, _080D64D0 @ =gUnknown_2023D44
+ ldr r3, _080D64D0 @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
@@ -4192,7 +4192,7 @@ _080D64BE:
_080D64C4: .4byte gBattlerPartyIndexes
_080D64C8: .4byte gPlayerParty
_080D64CC: .4byte gSprites
-_080D64D0: .4byte gUnknown_2023D44
+_080D64D0: .4byte gBattlerSpriteIds
_080D64D4: .4byte sub_8012110
_080D64D8: .4byte gUnknown_3004FE0
_080D64DC: .4byte sub_80D4640
@@ -4254,7 +4254,7 @@ _080D6522:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, _080D65FC @ =gUnknown_2037F16
+ ldr r5, _080D65FC @ =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
@@ -4322,7 +4322,7 @@ _080D6522:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, _080D6610 @ =gUnknown_2037EE4
+ ldr r3, _080D6610 @ =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4346,12 +4346,12 @@ _080D6522:
.align 2, 0
_080D65F4: .4byte gActiveBattler
_080D65F8: .4byte gUnknown_2022BC4
-_080D65FC: .4byte gUnknown_2037F16
+_080D65FC: .4byte gAnimMoveTurn
_080D6600: .4byte gUnknown_2037EEC
_080D6604: .4byte gUnknown_2037EE8
_080D6608: .4byte gUnknown_2037EFE
_080D660C: .4byte gUnknown_2037F00
-_080D6610: .4byte gUnknown_2037EE4
+_080D6610: .4byte gAnimDisableStructPtr
_080D6614: .4byte gUnknown_2024008
_080D6618:
ldr r0, _080D663C @ =gUnknown_2024018
@@ -4573,10 +4573,10 @@ _080D67BC:
thumb_func_start sub_80D67CC
sub_80D67CC: @ 80D67CC
push {r4,lr}
- ldr r0, _080D6800 @ =gUnknown_2022974
+ ldr r0, _080D6800 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080D6804 @ =gUnknown_2022976
+ ldr r0, _080D6804 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080D6808 @ =gActiveBattler
ldrb r4, [r0]
@@ -4595,8 +4595,8 @@ sub_80D67CC: @ 80D67CC
bl sub_80D87BC
b _080D681C
.align 2, 0
-_080D6800: .4byte gUnknown_2022974
-_080D6804: .4byte gUnknown_2022976
+_080D6800: .4byte gBattle_BG0_X
+_080D6804: .4byte gBattle_BG0_Y
_080D6808: .4byte gActiveBattler
_080D680C: .4byte gUnknown_2022BC6
_080D6810: .4byte gDisplayedStringBattle
@@ -5058,7 +5058,7 @@ _080D6B6C: .4byte gUnknown_2022870
LinkPartnerHandleHitAnimation: @ 80D6B70
push {r4,lr}
ldr r3, _080D6B98 @ =gSprites
- ldr r2, _080D6B9C @ =gUnknown_2023D44
+ ldr r2, _080D6B9C @ =gBattlerSpriteIds
ldr r4, _080D6BA0 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r2
@@ -5076,7 +5076,7 @@ LinkPartnerHandleHitAnimation: @ 80D6B70
b _080D6BCE
.align 2, 0
_080D6B98: .4byte gSprites
-_080D6B9C: .4byte gUnknown_2023D44
+_080D6B9C: .4byte gBattlerSpriteIds
_080D6BA0: .4byte gActiveBattler
_080D6BA4:
ldr r1, _080D6BD4 @ =gUnknown_2024005
@@ -5234,7 +5234,7 @@ _080D6CD0: .4byte gUnknown_2023F4C
thumb_func_start sub_80D6CD4
sub_80D6CD4: @ 80D6CD4
push {r4-r7,lr}
- ldr r5, _080D6DDC @ =gUnknown_2023D44
+ ldr r5, _080D6DDC @ =gBattlerSpriteIds
ldr r6, _080D6DE0 @ =gActiveBattler
ldrb r0, [r6]
adds r0, r5
@@ -5358,7 +5358,7 @@ _080D6DC2:
adds r0, 0x2
b _080D6E0C
.align 2, 0
-_080D6DDC: .4byte gUnknown_2023D44
+_080D6DDC: .4byte gBattlerSpriteIds
_080D6DE0: .4byte gActiveBattler
_080D6DE4: .4byte gSprites
_080D6DE8: .4byte 0x0000ffd8
@@ -5386,7 +5386,7 @@ _080D6E0C:
movs r2, 0x20
bl LoadCompressedPalette
ldr r2, _080D6EA8 @ =gSprites
- ldr r1, _080D6EAC @ =gUnknown_2023D44
+ ldr r1, _080D6EAC @ =gBattlerSpriteIds
ldr r5, _080D6EB0 @ =gActiveBattler
ldrb r0, [r5]
adds r0, r1
@@ -5453,7 +5453,7 @@ _080D6E86:
.align 2, 0
_080D6EA4: .4byte gUnknown_8239FD4
_080D6EA8: .4byte gSprites
-_080D6EAC: .4byte gUnknown_2023D44
+_080D6EAC: .4byte gBattlerSpriteIds
_080D6EB0: .4byte gActiveBattler
_080D6EB4: .4byte sub_80D6ED0
_080D6EB8: .4byte gTasks
@@ -5781,7 +5781,7 @@ LinkPartnerHandleSpriteInvisibility: @ 80D7144
cmp r0, 0
beq _080D718A
ldr r3, _080D7198 @ =gSprites
- ldr r0, _080D719C @ =gUnknown_2023D44
+ ldr r0, _080D719C @ =gBattlerSpriteIds
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
@@ -5814,7 +5814,7 @@ _080D718A:
.align 2, 0
_080D7194: .4byte gActiveBattler
_080D7198: .4byte gSprites
-_080D719C: .4byte gUnknown_2023D44
+_080D719C: .4byte gBattlerSpriteIds
_080D71A0: .4byte gUnknown_2022BC4
thumb_func_end LinkPartnerHandleSpriteInvisibility
@@ -5890,7 +5890,7 @@ sub_80D7218: @ 80D7218
thumb_func_start LinkPartnerHandlecmd55
LinkPartnerHandlecmd55: @ 80D7224
push {r4,lr}
- ldr r2, _080D725C @ =gUnknown_2023E8A
+ ldr r2, _080D725C @ =gBattleOutcome
ldr r1, _080D7260 @ =gUnknown_2022BC4
ldr r4, _080D7264 @ =gActiveBattler
ldrb r0, [r4]
@@ -5914,7 +5914,7 @@ LinkPartnerHandlecmd55: @ 80D7224
pop {r0}
bx r0
.align 2, 0
-_080D725C: .4byte gUnknown_2023E8A
+_080D725C: .4byte gBattleOutcome
_080D7260: .4byte gUnknown_2022BC4
_080D7264: .4byte gActiveBattler
_080D7268: .4byte gUnknown_3004FE0
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index 29ae446f6..9f878733e 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -308,7 +308,7 @@ _080E77AC:
bhi _080E7838
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_080E780A:
movs r0, 0x5
bl PlaySE
@@ -422,7 +422,7 @@ _080E78D8:
sub_80E78E0: @ 80E78E0
push {lr}
ldr r2, _080E7908 @ =gSprites
- ldr r1, _080E790C @ =gUnknown_2023D44
+ ldr r1, _080E790C @ =gBattlerSpriteIds
ldr r0, _080E7910 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -442,7 +442,7 @@ _080E7904:
bx r0
.align 2, 0
_080E7908: .4byte gSprites
-_080E790C: .4byte gUnknown_2023D44
+_080E790C: .4byte gBattlerSpriteIds
_080E7910: .4byte gActiveBattler
_080E7914: .4byte SpriteCallbackDummy
thumb_func_end sub_80E78E0
@@ -1653,7 +1653,7 @@ _080E82F0: .4byte sub_80E8930
sub_80E82F4: @ 80E82F4
push {r4-r6,lr}
ldr r6, _080E834C @ =gSprites
- ldr r5, _080E8350 @ =gUnknown_2023D44
+ ldr r5, _080E8350 @ =gBattlerSpriteIds
ldr r4, _080E8354 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r5
@@ -1693,7 +1693,7 @@ _080E8344:
bx r0
.align 2, 0
_080E834C: .4byte gSprites
-_080E8350: .4byte gUnknown_2023D44
+_080E8350: .4byte gBattlerSpriteIds
_080E8354: .4byte gActiveBattler
_080E8358: .4byte gUnknown_3004FF0
thumb_func_end sub_80E82F4
@@ -2432,7 +2432,7 @@ _080E8942:
thumb_func_start DoHitAnimBlinkSpriteEffect_3
DoHitAnimBlinkSpriteEffect_3: @ 80E8948
push {r4,lr}
- ldr r1, _080E8984 @ =gUnknown_2023D44
+ ldr r1, _080E8984 @ =gBattlerSpriteIds
ldr r0, _080E8988 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -2460,7 +2460,7 @@ DoHitAnimBlinkSpriteEffect_3: @ 80E8948
bl WallyBufferExecCompleted
b _080E89BE
.align 2, 0
-_080E8984: .4byte gUnknown_2023D44
+_080E8984: .4byte gBattlerSpriteIds
_080E8988: .4byte gActiveBattler
_080E898C: .4byte gSprites
_080E8990: .4byte gUnknown_2024005
@@ -2510,7 +2510,7 @@ sub_80E89C4: @ 80E89C4
ands r0, r1
cmp r0, 0
bne _080E8A18
- ldr r5, _080E8A28 @ =gUnknown_2023D44
+ ldr r5, _080E8A28 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -2540,7 +2540,7 @@ _080E8A18:
.align 2, 0
_080E8A20: .4byte gUnknown_2024018
_080E8A24: .4byte gActiveBattler
-_080E8A28: .4byte gUnknown_2023D44
+_080E8A28: .4byte gBattlerSpriteIds
_080E8A2C: .4byte gSprites
_080E8A30: .4byte gUnknown_3004FF0
thumb_func_end sub_80E89C4
@@ -2549,7 +2549,7 @@ _080E8A30: .4byte gUnknown_3004FF0
sub_80E8A34: @ 80E8A34
push {lr}
ldr r2, _080E8A5C @ =gSprites
- ldr r1, _080E8A60 @ =gUnknown_2023D44
+ ldr r1, _080E8A60 @ =gBattlerSpriteIds
ldr r0, _080E8A64 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -2569,7 +2569,7 @@ _080E8A58:
bx r0
.align 2, 0
_080E8A5C: .4byte gSprites
-_080E8A60: .4byte gUnknown_2023D44
+_080E8A60: .4byte gBattlerSpriteIds
_080E8A64: .4byte gActiveBattler
_080E8A68: .4byte SpriteCallbackDummy
thumb_func_end sub_80E8A34
@@ -4919,7 +4919,7 @@ _080E9E18: .4byte gActiveBattler
_080E9E1C: .4byte gUnknown_3004FE0
_080E9E20: .4byte sub_80E89C4
_080E9E24:
- ldr r5, _080E9E60 @ =gUnknown_2023D44
+ ldr r5, _080E9E60 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -4947,7 +4947,7 @@ _080E9E5A:
pop {r0}
bx r0
.align 2, 0
-_080E9E60: .4byte gUnknown_2023D44
+_080E9E60: .4byte gBattlerSpriteIds
_080E9E64: .4byte gSprites
_080E9E68: .4byte gUnknown_3004FF0
thumb_func_end WallyHandleReturnMonToBall
@@ -4993,7 +4993,7 @@ sub_80E9E6C: @ 80E9E6C
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r2, _080E9EDC @ =gUnknown_2023D44
+ ldr r2, _080E9EDC @ =gBattlerSpriteIds
ldrb r1, [r6]
b _080E9F1C
.align 2, 0
@@ -5002,7 +5002,7 @@ _080E9ECC: .4byte gSaveBlock2Ptr
_080E9ED0: .4byte gActiveBattler
_080E9ED4: .4byte gMultiuseSpriteTemplate
_080E9ED8: .4byte gUnknown_8239F8C
-_080E9EDC: .4byte gUnknown_2023D44
+_080E9EDC: .4byte gBattlerSpriteIds
_080E9EE0:
ldr r4, _080E9F8C @ =gActiveBattler
ldrb r1, [r4]
@@ -5028,13 +5028,13 @@ _080E9EE0:
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r2, _080E9F98 @ =gUnknown_2023D44
+ ldr r2, _080E9F98 @ =gBattlerSpriteIds
ldrb r1, [r4]
_080E9F1C:
adds r1, r2
strb r0, [r1]
ldr r4, _080E9F9C @ =gSprites
- ldr r5, _080E9F98 @ =gUnknown_2023D44
+ ldr r5, _080E9F98 @ =gBattlerSpriteIds
ldr r6, _080E9F8C @ =gActiveBattler
ldrb r3, [r6]
adds r0, r3, r5
@@ -5090,7 +5090,7 @@ _080E9F1C:
_080E9F8C: .4byte gActiveBattler
_080E9F90: .4byte gMultiuseSpriteTemplate
_080E9F94: .4byte gUnknown_8239F8C
-_080E9F98: .4byte gUnknown_2023D44
+_080E9F98: .4byte gBattlerSpriteIds
_080E9F9C: .4byte gSprites
_080E9FA0: .4byte 0x0000fffe
_080E9FA4: .4byte sub_8033EEC
@@ -5139,7 +5139,7 @@ sub_80E9FB0: @ 80E9FB0
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r2, _080EA020 @ =gUnknown_2023D44
+ ldr r2, _080EA020 @ =gBattlerSpriteIds
ldrb r1, [r6]
b _080EA060
.align 2, 0
@@ -5148,7 +5148,7 @@ _080EA010: .4byte gSaveBlock2Ptr
_080EA014: .4byte gActiveBattler
_080EA018: .4byte gMultiuseSpriteTemplate
_080EA01C: .4byte gUnknown_8239F8C
-_080EA020: .4byte gUnknown_2023D44
+_080EA020: .4byte gBattlerSpriteIds
_080EA024:
ldr r4, _080EA0D0 @ =gActiveBattler
ldrb r1, [r4]
@@ -5174,13 +5174,13 @@ _080EA024:
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r2, _080EA0DC @ =gUnknown_2023D44
+ ldr r2, _080EA0DC @ =gBattlerSpriteIds
ldrb r1, [r4]
_080EA060:
adds r1, r2
strb r0, [r1]
ldr r4, _080EA0E0 @ =gSprites
- ldr r5, _080EA0DC @ =gUnknown_2023D44
+ ldr r5, _080EA0DC @ =gBattlerSpriteIds
ldr r6, _080EA0D0 @ =gActiveBattler
ldrb r3, [r6]
adds r0, r3, r5
@@ -5236,7 +5236,7 @@ _080EA060:
_080EA0D0: .4byte gActiveBattler
_080EA0D4: .4byte gMultiuseSpriteTemplate
_080EA0D8: .4byte gUnknown_8239F8C
-_080EA0DC: .4byte gUnknown_2023D44
+_080EA0DC: .4byte gBattlerSpriteIds
_080EA0E0: .4byte gSprites
_080EA0E4: .4byte 0x0000ffa0
_080EA0E8: .4byte sub_8033EEC
@@ -5318,7 +5318,7 @@ _080EA154:
movs r0, 0x10
bl PlaySE12WithPanning
ldr r2, _080EA1D8 @ =gSprites
- ldr r3, _080EA1DC @ =gUnknown_2023D44
+ ldr r3, _080EA1DC @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
@@ -5360,7 +5360,7 @@ _080EA1CA:
_080EA1D0: .4byte gBattlerPartyIndexes
_080EA1D4: .4byte gPlayerParty
_080EA1D8: .4byte gSprites
-_080EA1DC: .4byte gUnknown_2023D44
+_080EA1DC: .4byte gBattlerSpriteIds
_080EA1E0: .4byte sub_8012110
_080EA1E4: .4byte gUnknown_3004FE0
_080EA1E8: .4byte sub_80E82F4
@@ -5483,7 +5483,7 @@ sub_80EA2B8: @ 80EA2B8
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, _080EA394 @ =gUnknown_2037F16
+ ldr r5, _080EA394 @ =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
@@ -5551,7 +5551,7 @@ sub_80EA2B8: @ 80EA2B8
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, _080EA3A8 @ =gUnknown_2037EE4
+ ldr r3, _080EA3A8 @ =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -5575,12 +5575,12 @@ sub_80EA2B8: @ 80EA2B8
.align 2, 0
_080EA38C: .4byte gUnknown_2022BC4
_080EA390: .4byte gActiveBattler
-_080EA394: .4byte gUnknown_2037F16
+_080EA394: .4byte gAnimMoveTurn
_080EA398: .4byte gUnknown_2037EEC
_080EA39C: .4byte gUnknown_2037EE8
_080EA3A0: .4byte gUnknown_2037EFE
_080EA3A4: .4byte gUnknown_2037F00
-_080EA3A8: .4byte gUnknown_2037EE4
+_080EA3A8: .4byte gAnimDisableStructPtr
_080EA3AC: .4byte gUnknown_2024008
_080EA3B0:
ldr r0, _080EA3D4 @ =gUnknown_2024018
@@ -5776,10 +5776,10 @@ _080EA520:
thumb_func_start sub_80EA52C
sub_80EA52C: @ 80EA52C
push {r4,lr}
- ldr r0, _080EA55C @ =gUnknown_2022974
+ ldr r0, _080EA55C @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080EA560 @ =gUnknown_2022976
+ ldr r0, _080EA560 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080EA564 @ =gActiveBattler
ldrb r0, [r0]
@@ -5799,8 +5799,8 @@ sub_80EA52C: @ 80EA52C
bl WallyBufferExecCompleted
b _080EA65A
.align 2, 0
-_080EA55C: .4byte gUnknown_2022974
-_080EA560: .4byte gUnknown_2022976
+_080EA55C: .4byte gBattle_BG0_X
+_080EA560: .4byte gBattle_BG0_Y
_080EA564: .4byte gActiveBattler
_080EA568: .4byte gUnknown_2022BC6
_080EA56C: .4byte gBattleTypeFlags
@@ -5951,9 +5951,9 @@ sub_80EA690: @ 80EA690
lsrs r1, r0, 24
cmp r1, 0
bne _080EA6EA
- ldr r0, _080EA6C4 @ =gUnknown_2022974
+ ldr r0, _080EA6C4 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _080EA6C8 @ =gUnknown_2022976
+ ldr r1, _080EA6C8 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080EA6CC @ =gBattleTypeFlags
@@ -5970,8 +5970,8 @@ sub_80EA690: @ 80EA690
ldr r1, _080EA6D8 @ =sub_80E763C
b _080EA6E8
.align 2, 0
-_080EA6C4: .4byte gUnknown_2022974
-_080EA6C8: .4byte gUnknown_2022976
+_080EA6C4: .4byte gBattle_BG0_X
+_080EA6C8: .4byte gBattle_BG0_Y
_080EA6CC: .4byte gBattleTypeFlags
_080EA6D0: .4byte gUnknown_3004FE0
_080EA6D4: .4byte gActiveBattler
@@ -6074,9 +6074,9 @@ sub_80EA798: @ 80EA798
lsrs r1, r0, 24
cmp r1, 0
bne _080EA7C2
- ldr r0, _080EA7C8 @ =gUnknown_2022974
+ ldr r0, _080EA7C8 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _080EA7CC @ =gUnknown_2022976
+ ldr r1, _080EA7CC @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -6092,8 +6092,8 @@ _080EA7C2:
pop {r0}
bx r0
.align 2, 0
-_080EA7C8: .4byte gUnknown_2022974
-_080EA7CC: .4byte gUnknown_2022976
+_080EA7C8: .4byte gBattle_BG0_X
+_080EA7CC: .4byte gBattle_BG0_Y
_080EA7D0: .4byte gUnknown_3004FE0
_080EA7D4: .4byte gActiveBattler
_080EA7D8: .4byte sub_80E7988
@@ -6641,7 +6641,7 @@ sub_80EABFC: @ 80EABFC
sub_80EAC08: @ 80EAC08
push {r4,lr}
ldr r3, _080EAC30 @ =gSprites
- ldr r2, _080EAC34 @ =gUnknown_2023D44
+ ldr r2, _080EAC34 @ =gBattlerSpriteIds
ldr r4, _080EAC38 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r2
@@ -6659,7 +6659,7 @@ sub_80EAC08: @ 80EAC08
b _080EAC66
.align 2, 0
_080EAC30: .4byte gSprites
-_080EAC34: .4byte gUnknown_2023D44
+_080EAC34: .4byte gBattlerSpriteIds
_080EAC38: .4byte gActiveBattler
_080EAC3C:
ldr r1, _080EAC6C @ =gUnknown_2024005
@@ -6812,7 +6812,7 @@ sub_80EAD54: @ 80EAD54
bne _080EAD64
b _080EAEE4
_080EAD64:
- ldr r6, _080EAEA4 @ =gUnknown_2023D44
+ ldr r6, _080EAEA4 @ =gBattlerSpriteIds
ldr r7, _080EAEA8 @ =gActiveBattler
ldrb r0, [r7]
adds r0, r6
@@ -6966,7 +6966,7 @@ _080EAE84:
b _080EAF18
.align 2, 0
_080EAEA0: .4byte gBattleTypeFlags
-_080EAEA4: .4byte gUnknown_2023D44
+_080EAEA4: .4byte gBattlerSpriteIds
_080EAEA8: .4byte gActiveBattler
_080EAEAC: .4byte gSprites
_080EAEB0: .4byte 0x0000ffd8
@@ -7071,7 +7071,7 @@ sub_80EAF34: @ 80EAF34
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080EB094 @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
@@ -7094,7 +7094,7 @@ sub_80EAF34: @ 80EAF34
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _080EB098 @ =gUnknown_2023D44
+ ldr r4, _080EB098 @ =gBattlerSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, _080EB09C @ =gSprites
@@ -7185,7 +7185,7 @@ _080EB088: .4byte gPlayerParty
_080EB08C: .4byte sub_8033E3C
_080EB090: .4byte gUnknown_3004FFC
_080EB094: .4byte gMultiuseSpriteTemplate
-_080EB098: .4byte gUnknown_2023D44
+_080EB098: .4byte gBattlerSpriteIds
_080EB09C: .4byte gSprites
_080EB0A0: .4byte gBattleMonForms
_080EB0A4: .4byte SpriteCallbackDummy
@@ -7435,7 +7435,7 @@ sub_80EB274: @ 80EB274
thumb_func_start sub_80EB280
sub_80EB280: @ 80EB280
push {r4,lr}
- ldr r2, _080EB2C4 @ =gUnknown_2023E8A
+ ldr r2, _080EB2C4 @ =gBattleOutcome
ldr r1, _080EB2C8 @ =gUnknown_2022BC4
ldr r4, _080EB2CC @ =gActiveBattler
ldrb r0, [r4]
@@ -7466,7 +7466,7 @@ _080EB2BC:
pop {r0}
bx r0
.align 2, 0
-_080EB2C4: .4byte gUnknown_2023E8A
+_080EB2C4: .4byte gBattleOutcome
_080EB2C8: .4byte gUnknown_2022BC4
_080EB2CC: .4byte gActiveBattler
_080EB2D0: .4byte gBattleTypeFlags
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index 0405efdf1..0c94035ee 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -70,7 +70,7 @@ _08035AE4:
sub_8035AE8: @ 8035AE8
push {lr}
ldr r2, _08035B10 @ =gSprites
- ldr r1, _08035B14 @ =gUnknown_2023D44
+ ldr r1, _08035B14 @ =gBattlerSpriteIds
ldr r0, _08035B18 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -90,7 +90,7 @@ _08035B0C:
bx r0
.align 2, 0
_08035B10: .4byte gSprites
-_08035B14: .4byte gUnknown_2023D44
+_08035B14: .4byte gBattlerSpriteIds
_08035B18: .4byte gActiveBattler
_08035B1C: .4byte SpriteCallbackDummy
thumb_func_end sub_8035AE8
@@ -99,7 +99,7 @@ _08035B1C: .4byte SpriteCallbackDummy
sub_8035B20: @ 8035B20
push {lr}
ldr r2, _08035B48 @ =gSprites
- ldr r1, _08035B4C @ =gUnknown_2023D44
+ ldr r1, _08035B4C @ =gBattlerSpriteIds
ldr r0, _08035B50 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -119,7 +119,7 @@ _08035B44:
bx r0
.align 2, 0
_08035B48: .4byte gSprites
-_08035B4C: .4byte gUnknown_2023D44
+_08035B4C: .4byte gBattlerSpriteIds
_08035B50: .4byte gActiveBattler
_08035B54: .4byte SpriteCallbackDummy
thumb_func_end sub_8035B20
@@ -128,7 +128,7 @@ _08035B54: .4byte SpriteCallbackDummy
sub_8035B58: @ 8035B58
push {r4-r6,lr}
ldr r4, _08035BD0 @ =gSprites
- ldr r6, _08035BD4 @ =gUnknown_2023D44
+ ldr r6, _08035BD4 @ =gBattlerSpriteIds
ldr r5, _08035BD8 @ =gActiveBattler
ldrb r0, [r5]
adds r0, r6
@@ -184,7 +184,7 @@ _08035BC8:
bx r0
.align 2, 0
_08035BD0: .4byte gSprites
-_08035BD4: .4byte gUnknown_2023D44
+_08035BD4: .4byte gBattlerSpriteIds
_08035BD8: .4byte gActiveBattler
_08035BDC: .4byte SpriteCallbackDummy
_08035BE0: .4byte 0x000003ff
@@ -685,7 +685,7 @@ _08035FE4: .4byte sub_8035C30
sub_8035FE8: @ 8035FE8
push {r4-r7,lr}
ldr r2, _08036044 @ =gSprites
- ldr r0, _08036048 @ =gUnknown_2023D44
+ ldr r0, _08036048 @ =gBattlerSpriteIds
ldr r7, _0803604C @ =gActiveBattler
ldrb r3, [r7]
adds r0, r3, r0
@@ -729,7 +729,7 @@ sub_8035FE8: @ 8035FE8
b _08036094
.align 2, 0
_08036044: .4byte gSprites
-_08036048: .4byte gUnknown_2023D44
+_08036048: .4byte gBattlerSpriteIds
_0803604C: .4byte gActiveBattler
_08036050: .4byte gUnknown_2024018
_08036054: .4byte gBattlerPartyIndexes
@@ -838,7 +838,7 @@ _08036124:
sub_803612C: @ 803612C
push {lr}
ldr r2, _08036160 @ =gSprites
- ldr r0, _08036164 @ =gUnknown_2023D44
+ ldr r0, _08036164 @ =gBattlerSpriteIds
ldr r1, _08036168 @ =gActiveBattler
ldrb r3, [r1]
adds r0, r3, r0
@@ -862,7 +862,7 @@ _0803615A:
bx r0
.align 2, 0
_08036160: .4byte gSprites
-_08036164: .4byte gUnknown_2023D44
+_08036164: .4byte gBattlerSpriteIds
_08036168: .4byte gActiveBattler
_0803616C: .4byte gUnknown_3004FF0
thumb_func_end sub_803612C
@@ -884,7 +884,7 @@ sub_8036170: @ 8036170
ands r0, r1
cmp r0, 0
bne _080361CA
- ldr r5, _080361D8 @ =gUnknown_2023D44
+ ldr r5, _080361D8 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -916,7 +916,7 @@ _080361CA:
.align 2, 0
_080361D0: .4byte gUnknown_2024018
_080361D4: .4byte gActiveBattler
-_080361D8: .4byte gUnknown_2023D44
+_080361D8: .4byte gBattlerSpriteIds
_080361DC: .4byte gSprites
_080361E0: .4byte gUnknown_3004FF0
thumb_func_end sub_8036170
@@ -938,7 +938,7 @@ _080361F6:
thumb_func_start sub_80361FC
sub_80361FC: @ 80361FC
push {r4,lr}
- ldr r1, _08036238 @ =gUnknown_2023D44
+ ldr r1, _08036238 @ =gBattlerSpriteIds
ldr r0, _0803623C @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -966,7 +966,7 @@ sub_80361FC: @ 80361FC
bl OpponentBufferExecCompleted
b _08036272
.align 2, 0
-_08036238: .4byte gUnknown_2023D44
+_08036238: .4byte gBattlerSpriteIds
_0803623C: .4byte gActiveBattler
_08036240: .4byte gSprites
_08036244: .4byte gUnknown_2024005
@@ -1128,7 +1128,7 @@ sub_8036334: @ 8036334
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
- ldr r1, _080363EC @ =gUnknown_2023D44
+ ldr r1, _080363EC @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
@@ -1175,7 +1175,7 @@ _080363D8:
_080363E0: .4byte gUnknown_2024018
_080363E4: .4byte gActiveBattler
_080363E8: .4byte 0x000027f9
-_080363EC: .4byte gUnknown_2023D44
+_080363EC: .4byte gBattlerSpriteIds
_080363F0: .4byte gSprites
_080363F4: .4byte gUnknown_3004FF0
_080363F8: .4byte gBattlerPartyIndexes
@@ -3649,7 +3649,7 @@ _080378AA:
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r6, _080379A0 @ =gMultiuseSpriteTemplate
ldrb r0, [r7]
movs r1, 0x2
@@ -3666,7 +3666,7 @@ _080378AA:
adds r1, r4, 0
adds r2, r5, 0
bl CreateSprite
- ldr r4, _080379A4 @ =gUnknown_2023D44
+ ldr r4, _080379A4 @ =gBattlerSpriteIds
ldrb r1, [r7]
adds r1, r4
strb r0, [r1]
@@ -3759,7 +3759,7 @@ _08037986:
.align 2, 0
_0803799C: .4byte gActiveBattler
_080379A0: .4byte gMultiuseSpriteTemplate
-_080379A4: .4byte gUnknown_2023D44
+_080379A4: .4byte gBattlerSpriteIds
_080379A8: .4byte gSprites
_080379AC: .4byte 0x0000ff10
_080379B0: .4byte gBattleMonForms
@@ -3872,7 +3872,7 @@ sub_8037A28: @ 8037A28
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _08037B98 @ =gMultiuseSpriteTemplate
mov r9, r0
adds r0, r6, 0
@@ -3895,7 +3895,7 @@ sub_8037A28: @ 8037A28
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _08037B9C @ =gUnknown_2023D44
+ ldr r4, _08037B9C @ =gBattlerSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, _08037BA0 @ =gSprites
@@ -3985,7 +3985,7 @@ _08037B8C: .4byte gEnemyParty
_08037B90: .4byte sub_8033E3C
_08037B94: .4byte gUnknown_3004FFC
_08037B98: .4byte gMultiuseSpriteTemplate
-_08037B9C: .4byte gUnknown_2023D44
+_08037B9C: .4byte gBattlerSpriteIds
_08037BA0: .4byte gSprites
_08037BA4: .4byte gBattleMonForms
_08037BA8: .4byte SpriteCallbackDummy
@@ -4025,7 +4025,7 @@ _08037BE8: .4byte gUnknown_2024018
_08037BEC: .4byte gUnknown_3004FE0
_08037BF0: .4byte sub_8037C44
_08037BF4:
- ldr r5, _08037C38 @ =gUnknown_2023D44
+ ldr r5, _08037C38 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -4055,7 +4055,7 @@ _08037C30:
pop {r0}
bx r0
.align 2, 0
-_08037C38: .4byte gUnknown_2023D44
+_08037C38: .4byte gBattlerSpriteIds
_08037C3C: .4byte gSprites
_08037C40: .4byte gUnknown_3004FF0
thumb_func_end sub_8037BAC
@@ -4227,7 +4227,7 @@ _08037D3A:
movs r1, 0xB0
adds r2, r4, 0
bl CreateSprite
- ldr r5, _08037E7C @ =gUnknown_2023D44
+ ldr r5, _08037E7C @ =gBattlerSpriteIds
mov r2, r8
ldrb r1, [r2]
adds r1, r5
@@ -4251,7 +4251,7 @@ _08037D3A:
adds r0, r4
movs r1, 0x2
strh r1, [r0, 0x2E]
- ldr r0, _08037E88 @ =gUnknown_8239A1C
+ ldr r0, _08037E88 @ =gTrainerFrontPicPaletteTable
mov r1, r9
lsls r6, r1, 3
adds r0, r6, r0
@@ -4283,7 +4283,7 @@ _08037D3A:
lsls r0, 22
lsrs r0, 22
strh r0, [r1, 0x38]
- ldr r0, _08037E8C @ =gUnknown_823957C
+ ldr r0, _08037E8C @ =gTrainerFrontPicTable
adds r6, r0
ldrh r0, [r6, 0x6]
bl GetSpriteTileStartByTag
@@ -4341,11 +4341,11 @@ _08037E6C: .4byte gTrainers
_08037E70: .4byte gActiveBattler
_08037E74: .4byte gMultiuseSpriteTemplate
_08037E78: .4byte gUnknown_823932C
-_08037E7C: .4byte gUnknown_2023D44
+_08037E7C: .4byte gBattlerSpriteIds
_08037E80: .4byte gSprites
_08037E84: .4byte 0x0000ff10
-_08037E88: .4byte gUnknown_8239A1C
-_08037E8C: .4byte gUnknown_823957C
+_08037E88: .4byte gTrainerFrontPicPaletteTable
+_08037E8C: .4byte gTrainerFrontPicTable
_08037E90: .4byte 0x000003ff
_08037E94: .4byte 0xfffffc00
_08037E98: .4byte sub_8033EEC
@@ -4439,7 +4439,7 @@ _08037F0E:
movs r1, 0xB0
movs r3, 0x1E
bl CreateSprite
- ldr r5, _08038050 @ =gUnknown_2023D44
+ ldr r5, _08038050 @ =gBattlerSpriteIds
mov r2, r8
ldrb r1, [r2]
adds r1, r5
@@ -4473,7 +4473,7 @@ _08037F0E:
adds r0, r4
ldr r1, _08038058 @ =0x0000fffe
strh r1, [r0, 0x2E]
- ldr r0, _0803805C @ =gUnknown_8239A1C
+ ldr r0, _0803805C @ =gTrainerFrontPicPaletteTable
mov r3, r9
lsls r6, r3, 3
adds r0, r6, r0
@@ -4505,7 +4505,7 @@ _08037F0E:
lsls r0, 22
lsrs r0, 22
strh r0, [r1, 0x38]
- ldr r0, _08038060 @ =gUnknown_823957C
+ ldr r0, _08038060 @ =gTrainerFrontPicTable
adds r6, r0
ldrh r0, [r6, 0x6]
bl GetSpriteTileStartByTag
@@ -4561,11 +4561,11 @@ _08038040: .4byte gTrainers
_08038044: .4byte gActiveBattler
_08038048: .4byte gMultiuseSpriteTemplate
_0803804C: .4byte gUnknown_823932C
-_08038050: .4byte gUnknown_2023D44
+_08038050: .4byte gBattlerSpriteIds
_08038054: .4byte gSprites
_08038058: .4byte 0x0000fffe
-_0803805C: .4byte gUnknown_8239A1C
-_08038060: .4byte gUnknown_823957C
+_0803805C: .4byte gTrainerFrontPicPaletteTable
+_08038060: .4byte gTrainerFrontPicTable
_08038064: .4byte 0x000003ff
_08038068: .4byte 0xfffffc00
_0803806C: .4byte sub_8033EEC
@@ -4576,7 +4576,7 @@ _08038074: .4byte sub_8035B20
thumb_func_start sub_8038078
sub_8038078: @ 8038078
push {r4-r6,lr}
- ldr r6, _08038108 @ =gUnknown_2023D44
+ ldr r6, _08038108 @ =gBattlerSpriteIds
ldr r4, _0803810C @ =gActiveBattler
ldrb r0, [r4]
adds r0, r6
@@ -4645,7 +4645,7 @@ sub_8038078: @ 8038078
pop {r0}
bx r0
.align 2, 0
-_08038108: .4byte gUnknown_2023D44
+_08038108: .4byte gBattlerSpriteIds
_0803810C: .4byte gActiveBattler
_08038110: .4byte gSprites
_08038114: .4byte sub_8075590
@@ -4709,7 +4709,7 @@ _08038178:
movs r1, 0x3F
bl PlaySE12WithPanning
ldr r2, _080381BC @ =gSprites
- ldr r1, _080381C0 @ =gUnknown_2023D44
+ ldr r1, _080381C0 @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
@@ -4732,7 +4732,7 @@ _080381B4:
bx r0
.align 2, 0
_080381BC: .4byte gSprites
-_080381C0: .4byte gUnknown_2023D44
+_080381C0: .4byte gBattlerSpriteIds
_080381C4: .4byte sub_8011EA0
_080381C8: .4byte gUnknown_3004FE0
_080381CC: .4byte sub_803612C
@@ -4794,7 +4794,7 @@ _08038212:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, _080382EC @ =gUnknown_2037F16
+ ldr r5, _080382EC @ =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
@@ -4862,7 +4862,7 @@ _08038212:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, _08038300 @ =gUnknown_2037EE4
+ ldr r3, _08038300 @ =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4886,12 +4886,12 @@ _08038212:
.align 2, 0
_080382E4: .4byte gActiveBattler
_080382E8: .4byte gUnknown_2022BC4
-_080382EC: .4byte gUnknown_2037F16
+_080382EC: .4byte gAnimMoveTurn
_080382F0: .4byte gUnknown_2037EEC
_080382F4: .4byte gUnknown_2037EE8
_080382F8: .4byte gUnknown_2037EFE
_080382FC: .4byte gUnknown_2037F00
-_08038300: .4byte gUnknown_2037EE4
+_08038300: .4byte gAnimDisableStructPtr
_08038304: .4byte gUnknown_2024008
_08038308:
ldr r0, _0803832C @ =gUnknown_2024018
@@ -5113,10 +5113,10 @@ _080384AC:
thumb_func_start sub_80384BC
sub_80384BC: @ 80384BC
push {r4,lr}
- ldr r0, _080384F0 @ =gUnknown_2022974
+ ldr r0, _080384F0 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080384F4 @ =gUnknown_2022976
+ ldr r0, _080384F4 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080384F8 @ =gActiveBattler
ldrb r0, [r0]
@@ -5135,8 +5135,8 @@ sub_80384BC: @ 80384BC
bl sub_80D87BC
b _0803850C
.align 2, 0
-_080384F0: .4byte gUnknown_2022974
-_080384F4: .4byte gUnknown_2022976
+_080384F0: .4byte gBattle_BG0_X
+_080384F4: .4byte gBattle_BG0_Y
_080384F8: .4byte gActiveBattler
_080384FC: .4byte gUnknown_2022BC6
_08038500: .4byte gDisplayedStringBattle
@@ -5926,7 +5926,7 @@ _08038B1C: .4byte gUnknown_2022870
OpponentHandleHitAnimation: @ 8038B20
push {r4,lr}
ldr r3, _08038B48 @ =gSprites
- ldr r2, _08038B4C @ =gUnknown_2023D44
+ ldr r2, _08038B4C @ =gBattlerSpriteIds
ldr r4, _08038B50 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r2
@@ -5944,7 +5944,7 @@ OpponentHandleHitAnimation: @ 8038B20
b _08038B7E
.align 2, 0
_08038B48: .4byte gSprites
-_08038B4C: .4byte gUnknown_2023D44
+_08038B4C: .4byte gBattlerSpriteIds
_08038B50: .4byte gActiveBattler
_08038B54:
ldr r1, _08038B84 @ =gUnknown_2024005
@@ -6101,7 +6101,7 @@ _08038C7C: .4byte gUnknown_2023F4C
thumb_func_start sub_8038C80
sub_8038C80: @ 8038C80
push {r4-r6,lr}
- ldr r5, _08038D60 @ =gUnknown_2023D44
+ ldr r5, _08038D60 @ =gBattlerSpriteIds
ldr r6, _08038D64 @ =gActiveBattler
ldrb r0, [r6]
adds r0, r5
@@ -6211,7 +6211,7 @@ _08038D42:
pop {r0}
bx r0
.align 2, 0
-_08038D60: .4byte gUnknown_2023D44
+_08038D60: .4byte gBattlerSpriteIds
_08038D64: .4byte gActiveBattler
_08038D68: .4byte gSprites
_08038D6C: .4byte sub_8075590
@@ -6589,7 +6589,7 @@ sub_8039060: @ 8039060
cmp r0, 0
beq _080390A6
ldr r3, _080390B4 @ =gSprites
- ldr r0, _080390B8 @ =gUnknown_2023D44
+ ldr r0, _080390B8 @ =gBattlerSpriteIds
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
@@ -6622,7 +6622,7 @@ _080390A6:
.align 2, 0
_080390B0: .4byte gActiveBattler
_080390B4: .4byte gSprites
-_080390B8: .4byte gUnknown_2023D44
+_080390B8: .4byte gBattlerSpriteIds
_080390BC: .4byte gUnknown_2022BC4
thumb_func_end sub_8039060
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 4db1f94c3..2a2419a7b 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -131,7 +131,7 @@ _0802E400:
CompleteOnBankSpritePosX_0: @ 802E404
push {lr}
ldr r2, _0802E42C @ =gSprites
- ldr r1, _0802E430 @ =gUnknown_2023D44
+ ldr r1, _0802E430 @ =gBattlerSpriteIds
ldr r0, _0802E434 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -150,7 +150,7 @@ _0802E426:
bx r0
.align 2, 0
_0802E42C: .4byte gSprites
-_0802E430: .4byte gUnknown_2023D44
+_0802E430: .4byte gBattlerSpriteIds
_0802E434: .4byte gActiveBattler
thumb_func_end CompleteOnBankSpritePosX_0
@@ -381,7 +381,7 @@ _0802E5A8:
bhi _0802E634
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_0802E606:
movs r0, 0x5
bl PlaySE
@@ -480,7 +480,7 @@ _0802E6B6:
movs r0, 0x5
bl PlaySE
ldr r2, _0802E718 @ =gSprites
- ldr r1, _0802E71C @ =gUnknown_2023D44
+ ldr r1, _0802E71C @ =gBattlerSpriteIds
ldr r4, _0802E70C @ =gUnknown_3004FF4
ldrb r0, [r4]
adds r0, r1
@@ -514,7 +514,7 @@ _0802E70C: .4byte gUnknown_3004FF4
_0802E710: .4byte gBattlersCount
_0802E714: .4byte gMain
_0802E718: .4byte gSprites
-_0802E71C: .4byte gUnknown_2023D44
+_0802E71C: .4byte gBattlerSpriteIds
_0802E720: .4byte sub_8012098
_0802E724: .4byte gUnknown_2023FFC
_0802E728: .4byte gActiveBattler
@@ -526,7 +526,7 @@ _0802E72C:
movs r0, 0x5
bl PlaySE
ldr r2, _0802E784 @ =gSprites
- ldr r1, _0802E788 @ =gUnknown_2023D44
+ ldr r1, _0802E788 @ =gBattlerSpriteIds
ldr r5, _0802E78C @ =gUnknown_3004FF4
ldrb r0, [r5]
adds r0, r1
@@ -561,7 +561,7 @@ _0802E72C:
b _0802E9DC
.align 2, 0
_0802E784: .4byte gSprites
-_0802E788: .4byte gUnknown_2023D44
+_0802E788: .4byte gBattlerSpriteIds
_0802E78C: .4byte gUnknown_3004FF4
_0802E790: .4byte sub_8012098
_0802E794: .4byte gUnknown_3004FE0
@@ -577,7 +577,7 @@ _0802E7AA:
movs r0, 0x5
bl PlaySE
ldr r2, _0802E7DC @ =gSprites
- ldr r1, _0802E7E0 @ =gUnknown_2023D44
+ ldr r1, _0802E7E0 @ =gBattlerSpriteIds
ldr r3, _0802E7E4 @ =gUnknown_3004FF4
ldrb r0, [r3]
adds r0, r1
@@ -600,7 +600,7 @@ _0802E7CC:
b _0802E7F6
.align 2, 0
_0802E7DC: .4byte gSprites
-_0802E7E0: .4byte gUnknown_2023D44
+_0802E7E0: .4byte gBattlerSpriteIds
_0802E7E4: .4byte gUnknown_3004FF4
_0802E7E8: .4byte sub_8012098
_0802E7EC:
@@ -718,7 +718,7 @@ _0802E8CE:
movs r0, 0x5
bl PlaySE
ldr r2, _0802E900 @ =gSprites
- ldr r1, _0802E904 @ =gUnknown_2023D44
+ ldr r1, _0802E904 @ =gBattlerSpriteIds
ldr r3, _0802E908 @ =gUnknown_3004FF4
ldrb r0, [r3]
adds r0, r1
@@ -741,7 +741,7 @@ _0802E8F0:
b _0802E91A
.align 2, 0
_0802E900: .4byte gSprites
-_0802E904: .4byte gUnknown_2023D44
+_0802E904: .4byte gBattlerSpriteIds
_0802E908: .4byte gUnknown_3004FF4
_0802E90C: .4byte sub_8012098
_0802E910:
@@ -841,7 +841,7 @@ _0802E9C0:
beq _0802E8F0
_0802E9C4:
ldr r2, _0802EA04 @ =gSprites
- ldr r1, _0802EA08 @ =gUnknown_2023D44
+ ldr r1, _0802EA08 @ =gBattlerSpriteIds
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -867,7 +867,7 @@ _0802E9F8: .4byte gAbsentBattlerFlags
_0802E9FC: .4byte gBitTable
_0802EA00: .4byte gUnknown_3004FF4
_0802EA04: .4byte gSprites
-_0802EA08: .4byte gUnknown_2023D44
+_0802EA08: .4byte gBattlerSpriteIds
_0802EA0C: .4byte sub_8012044
thumb_func_end sub_802E674
@@ -1095,7 +1095,7 @@ _0802EBDE:
_0802EBE4:
strb r0, [r1]
ldr r2, _0802EC04 @ =gSprites
- ldr r1, _0802EC08 @ =gUnknown_2023D44
+ ldr r1, _0802EC08 @ =gBattlerSpriteIds
ldr r0, _0802EC00 @ =gUnknown_3004FF4
ldrb r0, [r0]
adds r0, r1
@@ -1110,7 +1110,7 @@ _0802EBE4:
.align 2, 0
_0802EC00: .4byte gUnknown_3004FF4
_0802EC04: .4byte gSprites
-_0802EC08: .4byte gUnknown_2023D44
+_0802EC08: .4byte gBattlerSpriteIds
_0802EC0C: .4byte sub_8012044
_0802EC10:
movs r7, 0x2
@@ -1354,10 +1354,10 @@ _0802EDF6:
beq _0802EE18
movs r0, 0x5
bl PlaySE
- ldr r1, _0802EF44 @ =gUnknown_2022974
+ ldr r1, _0802EF44 @ =gBattle_BG0_X
movs r0, 0
strh r0, [r1]
- ldr r1, _0802EF48 @ =gUnknown_2022976
+ ldr r1, _0802EF48 @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -1505,8 +1505,8 @@ _0802EF36:
bx r1
.align 2, 0
_0802EF40: .4byte gMain
-_0802EF44: .4byte gUnknown_2022974
-_0802EF48: .4byte gUnknown_2022976
+_0802EF44: .4byte gBattle_BG0_X
+_0802EF48: .4byte gBattle_BG0_Y
_0802EF4C: .4byte gUnknown_2023FFC
_0802EF50: .4byte gActiveBattler
_0802EF54: .4byte gUnknown_3004FF8
@@ -2462,7 +2462,7 @@ _0802F72C: .4byte gUnknown_3004F80
sub_802F730: @ 802F730
push {lr}
ldr r2, _0802F758 @ =gSprites
- ldr r1, _0802F75C @ =gUnknown_2023D44
+ ldr r1, _0802F75C @ =gBattlerSpriteIds
ldr r0, _0802F760 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -2482,7 +2482,7 @@ _0802F754:
bx r0
.align 2, 0
_0802F758: .4byte gSprites
-_0802F75C: .4byte gUnknown_2023D44
+_0802F75C: .4byte gBattlerSpriteIds
_0802F760: .4byte gActiveBattler
_0802F764: .4byte SpriteCallbackDummy
thumb_func_end sub_802F730
@@ -2491,7 +2491,7 @@ _0802F764: .4byte SpriteCallbackDummy
sub_802F768: @ 802F768
push {lr}
ldr r2, _0802F790 @ =gSprites
- ldr r1, _0802F794 @ =gUnknown_2023D44
+ ldr r1, _0802F794 @ =gBattlerSpriteIds
ldr r0, _0802F798 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -2511,7 +2511,7 @@ _0802F78C:
bx r0
.align 2, 0
_0802F790: .4byte gSprites
-_0802F794: .4byte gUnknown_2023D44
+_0802F794: .4byte gBattlerSpriteIds
_0802F798: .4byte gActiveBattler
_0802F79C: .4byte SpriteCallbackDummy
thumb_func_end sub_802F768
@@ -2520,7 +2520,7 @@ _0802F79C: .4byte SpriteCallbackDummy
sub_802F7A0: @ 802F7A0
push {r4-r6,lr}
ldr r6, _0802F7FC @ =gSprites
- ldr r5, _0802F800 @ =gUnknown_2023D44
+ ldr r5, _0802F800 @ =gBattlerSpriteIds
ldr r4, _0802F804 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r5
@@ -2562,7 +2562,7 @@ _0802F7F4:
bx r0
.align 2, 0
_0802F7FC: .4byte gSprites
-_0802F800: .4byte gUnknown_2023D44
+_0802F800: .4byte gBattlerSpriteIds
_0802F804: .4byte gActiveBattler
_0802F808: .4byte SpriteCallbackDummy
_0802F80C: .4byte gSaveBlock2Ptr
@@ -4010,7 +4010,7 @@ sub_80303A8: @ 80303A8
negs r1, r0
orrs r1, r0
lsrs r6, r1, 31
- ldr r0, _08030400 @ =gUnknown_2023D44
+ ldr r0, _08030400 @ =gBattlerSpriteIds
adds r0, r7, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -4031,7 +4031,7 @@ _080303F0:
mov pc, r0
.align 2, 0
_080303FC: .4byte gTasks+0x8
-_08030400: .4byte gUnknown_2023D44
+_08030400: .4byte gBattlerSpriteIds
_08030404: .4byte gSprites
_08030408: .4byte _0803040C
.align 2, 0
@@ -4051,19 +4051,19 @@ _08030428:
bne _0803051C
cmp r6, 0
bne _0803044C
- ldr r1, _08030444 @ =gUnknown_2022978
+ ldr r1, _08030444 @ =gBattle_BG1_X
ldrh r0, [r1]
strh r0, [r5, 0x1C]
- ldr r2, _08030448 @ =gUnknown_202297A
+ ldr r2, _08030448 @ =gBattle_BG1_Y
b _08030454
.align 2, 0
-_08030444: .4byte gUnknown_2022978
-_08030448: .4byte gUnknown_202297A
+_08030444: .4byte gBattle_BG1_X
+_08030448: .4byte gBattle_BG1_Y
_0803044C:
- ldr r1, _08030474 @ =gUnknown_202297C
+ ldr r1, _08030474 @ =gBattle_BG2_X
ldrh r0, [r1]
strh r0, [r5, 0x1C]
- ldr r2, _08030478 @ =gUnknown_202297E
+ ldr r2, _08030478 @ =gBattle_BG2_Y
_08030454:
ldrh r0, [r2]
strh r0, [r5, 0x1A]
@@ -4081,8 +4081,8 @@ _08030454:
strh r0, [r2]
b _080304E0
.align 2, 0
-_08030474: .4byte gUnknown_202297C
-_08030478: .4byte gUnknown_202297E
+_08030474: .4byte gBattle_BG2_X
+_08030478: .4byte gBattle_BG2_Y
_0803047C:
adds r0, r7, 0
adds r1, r6, 0
@@ -4138,19 +4138,19 @@ _080304E0:
_080304E8:
cmp r6, 0
bne _08030500
- ldr r1, _080304F8 @ =gUnknown_2022978
+ ldr r1, _080304F8 @ =gBattle_BG1_X
ldrh r0, [r5, 0x1C]
strh r0, [r1]
- ldr r1, _080304FC @ =gUnknown_202297A
+ ldr r1, _080304FC @ =gBattle_BG1_Y
b _08030508
.align 2, 0
-_080304F8: .4byte gUnknown_2022978
-_080304FC: .4byte gUnknown_202297A
+_080304F8: .4byte gBattle_BG1_X
+_080304FC: .4byte gBattle_BG1_Y
_08030500:
- ldr r1, _08030528 @ =gUnknown_202297C
+ ldr r1, _08030528 @ =gBattle_BG2_X
ldrh r0, [r5, 0x1C]
strh r0, [r1]
- ldr r1, _0803052C @ =gUnknown_202297E
+ ldr r1, _0803052C @ =gBattle_BG2_Y
_08030508:
ldrh r0, [r5, 0x1A]
strh r0, [r1]
@@ -4169,8 +4169,8 @@ _0803051C:
pop {r0}
bx r0
.align 2, 0
-_08030528: .4byte gUnknown_202297C
-_0803052C: .4byte gUnknown_202297E
+_08030528: .4byte gBattle_BG2_X
+_0803052C: .4byte gBattle_BG2_Y
_08030530: .4byte gUnknown_3004FE0
_08030534: .4byte sub_802FE94
thumb_func_end sub_80303A8
@@ -4179,7 +4179,7 @@ _08030534: .4byte sub_802FE94
sub_8030538: @ 8030538
push {r4-r6,lr}
ldr r6, _08030590 @ =gSprites
- ldr r5, _08030594 @ =gUnknown_2023D44
+ ldr r5, _08030594 @ =gBattlerSpriteIds
ldr r4, _08030598 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r5
@@ -4219,7 +4219,7 @@ _08030588:
bx r0
.align 2, 0
_08030590: .4byte gSprites
-_08030594: .4byte gUnknown_2023D44
+_08030594: .4byte gBattlerSpriteIds
_08030598: .4byte gActiveBattler
_0803059C: .4byte gUnknown_3004FF0
thumb_func_end sub_8030538
@@ -4241,7 +4241,7 @@ sub_80305A0: @ 80305A0
ands r0, r1
cmp r0, 0
bne _080305F4
- ldr r5, _08030604 @ =gUnknown_2023D44
+ ldr r5, _08030604 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -4271,7 +4271,7 @@ _080305F4:
.align 2, 0
_080305FC: .4byte gUnknown_2024018
_08030600: .4byte gActiveBattler
-_08030604: .4byte gUnknown_2023D44
+_08030604: .4byte gBattlerSpriteIds
_08030608: .4byte gSprites
_0803060C: .4byte gUnknown_3004FF0
thumb_func_end sub_80305A0
@@ -4485,7 +4485,7 @@ _080307B0: .4byte gActiveBattler
thumb_func_start DoHitAnimBlinkSpriteEffect
DoHitAnimBlinkSpriteEffect: @ 80307B4
push {r4,lr}
- ldr r1, _080307F0 @ =gUnknown_2023D44
+ ldr r1, _080307F0 @ =gBattlerSpriteIds
ldr r0, _080307F4 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -4513,7 +4513,7 @@ DoHitAnimBlinkSpriteEffect: @ 80307B4
bl PlayerBufferExecCompleted
b _0803082A
.align 2, 0
-_080307F0: .4byte gUnknown_2023D44
+_080307F0: .4byte gBattlerSpriteIds
_080307F4: .4byte gActiveBattler
_080307F8: .4byte gSprites
_080307FC: .4byte gUnknown_2024005
@@ -4964,10 +4964,10 @@ PrintLinkStandbyMsg: @ 8030B5C
ands r0, r1
cmp r0, 0
beq _08030B7C
- ldr r0, _08030B84 @ =gUnknown_2022974
+ ldr r0, _08030B84 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08030B88 @ =gUnknown_2022976
+ ldr r0, _08030B88 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _08030B8C @ =gUnknown_83FE714
movs r1, 0
@@ -4977,8 +4977,8 @@ _08030B7C:
bx r0
.align 2, 0
_08030B80: .4byte gBattleTypeFlags
-_08030B84: .4byte gUnknown_2022974
-_08030B88: .4byte gUnknown_2022976
+_08030B84: .4byte gBattle_BG0_X
+_08030B88: .4byte gBattle_BG0_Y
_08030B8C: .4byte gUnknown_83FE714
thumb_func_end PrintLinkStandbyMsg
@@ -7299,7 +7299,7 @@ PlayerHandleLoadMonSprite: @ 8031F00
adds r0, r2
bl sub_8034498
ldr r2, _08031F58 @ =gSprites
- ldr r0, _08031F5C @ =gUnknown_2023D44
+ ldr r0, _08031F5C @ =gBattlerSpriteIds
ldrb r3, [r4]
adds r0, r3, r0
ldrb r0, [r0]
@@ -7327,7 +7327,7 @@ _08031F4C: .4byte gBattlerPartyIndexes
_08031F50: .4byte gActiveBattler
_08031F54: .4byte gPlayerParty
_08031F58: .4byte gSprites
-_08031F5C: .4byte gUnknown_2023D44
+_08031F5C: .4byte gBattlerSpriteIds
_08031F60: .4byte gUnknown_3004FE0
_08031F64: .4byte CompleteOnBankSpritePosX_0
thumb_func_end PlayerHandleLoadMonSprite
@@ -7442,7 +7442,7 @@ sub_8031FF4: @ 8031FF4
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0803214C @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
@@ -7465,7 +7465,7 @@ sub_8031FF4: @ 8031FF4
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _08032150 @ =gUnknown_2023D44
+ ldr r4, _08032150 @ =gBattlerSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, _08032154 @ =gSprites
@@ -7555,7 +7555,7 @@ _08032140: .4byte gPlayerParty
_08032144: .4byte sub_8033E3C
_08032148: .4byte gUnknown_3004FFC
_0803214C: .4byte gMultiuseSpriteTemplate
-_08032150: .4byte gUnknown_2023D44
+_08032150: .4byte gBattlerSpriteIds
_08032154: .4byte gSprites
_08032158: .4byte gBattleMonForms
_0803215C: .4byte SpriteCallbackDummy
@@ -7595,7 +7595,7 @@ _0803219C: .4byte gUnknown_2024018
_080321A0: .4byte gUnknown_3004FE0
_080321A4: .4byte sub_80321F0
_080321A8:
- ldr r5, _080321E4 @ =gUnknown_2023D44
+ ldr r5, _080321E4 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -7623,7 +7623,7 @@ _080321DE:
pop {r0}
bx r0
.align 2, 0
-_080321E4: .4byte gUnknown_2023D44
+_080321E4: .4byte gBattlerSpriteIds
_080321E8: .4byte gSprites
_080321EC: .4byte gUnknown_3004FF0
thumb_func_end PlayerHandleReturnPokeToBall
@@ -7833,7 +7833,7 @@ _08032342:
mov r1, r8
adds r2, r4, 0
bl CreateSprite
- ldr r6, _08032410 @ =gUnknown_2023D44
+ ldr r6, _08032410 @ =gBattlerSpriteIds
ldrb r1, [r5]
adds r1, r6
strb r0, [r1]
@@ -7895,7 +7895,7 @@ _08032400: .4byte gSaveBlock2Ptr
_08032404: .4byte gActiveBattler
_08032408: .4byte gMultiuseSpriteTemplate
_0803240C: .4byte gUnknown_8239F8C
-_08032410: .4byte gUnknown_2023D44
+_08032410: .4byte gBattlerSpriteIds
_08032414: .4byte gSprites
_08032418: .4byte 0x0000fffe
_0803241C: .4byte sub_8033EEC
@@ -8003,7 +8003,7 @@ _080324BE:
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r6, _08032578 @ =gUnknown_2023D44
+ ldr r6, _08032578 @ =gBattlerSpriteIds
ldrb r1, [r5]
adds r1, r6
strb r0, [r1]
@@ -8063,7 +8063,7 @@ _08032568: .4byte gSaveBlock2Ptr
_0803256C: .4byte gActiveBattler
_08032570: .4byte gMultiuseSpriteTemplate
_08032574: .4byte gUnknown_8239F8C
-_08032578: .4byte gUnknown_2023D44
+_08032578: .4byte gBattlerSpriteIds
_0803257C: .4byte gSprites
_08032580: .4byte 0x0000ffa0
_08032584: .4byte sub_8033EEC
@@ -8074,7 +8074,7 @@ _0803258C: .4byte sub_802F768
thumb_func_start PlayerHandleTrainerSlideBack
PlayerHandleTrainerSlideBack: @ 8032590
push {r4-r6,lr}
- ldr r5, _08032630 @ =gUnknown_2023D44
+ ldr r5, _08032630 @ =gBattlerSpriteIds
ldr r6, _08032634 @ =gActiveBattler
ldrb r0, [r6]
adds r0, r5
@@ -8151,7 +8151,7 @@ PlayerHandleTrainerSlideBack: @ 8032590
pop {r0}
bx r0
.align 2, 0
-_08032630: .4byte gUnknown_2023D44
+_08032630: .4byte gBattlerSpriteIds
_08032634: .4byte gActiveBattler
_08032638: .4byte gSprites
_0803263C: .4byte 0x0000ffd8
@@ -8227,7 +8227,7 @@ _080326A4:
movs r0, 0x10
bl PlaySE12WithPanning
ldr r2, _08032728 @ =gSprites
- ldr r3, _0803272C @ =gUnknown_2023D44
+ ldr r3, _0803272C @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
@@ -8269,7 +8269,7 @@ _0803271A:
_08032720: .4byte gBattlerPartyIndexes
_08032724: .4byte gPlayerParty
_08032728: .4byte gSprites
-_0803272C: .4byte gUnknown_2023D44
+_0803272C: .4byte gBattlerSpriteIds
_08032730: .4byte sub_8012110
_08032734: .4byte gUnknown_3004FE0
_08032738: .4byte sub_8030538
@@ -8428,7 +8428,7 @@ _08032852:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, _0803292C @ =gUnknown_2037F16
+ ldr r5, _0803292C @ =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
@@ -8496,7 +8496,7 @@ _08032852:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, _08032940 @ =gUnknown_2037EE4
+ ldr r3, _08032940 @ =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -8520,12 +8520,12 @@ _08032852:
.align 2, 0
_08032924: .4byte gActiveBattler
_08032928: .4byte gUnknown_2022BC4
-_0803292C: .4byte gUnknown_2037F16
+_0803292C: .4byte gAnimMoveTurn
_08032930: .4byte gUnknown_2037EEC
_08032934: .4byte gUnknown_2037EE8
_08032938: .4byte gUnknown_2037EFE
_0803293C: .4byte gUnknown_2037F00
-_08032940: .4byte gUnknown_2037EE4
+_08032940: .4byte gAnimDisableStructPtr
_08032944: .4byte gUnknown_2024008
_08032948:
ldr r0, _0803296C @ =gUnknown_2024018
@@ -8747,10 +8747,10 @@ _08032AEC:
thumb_func_start sub_8032AFC
sub_8032AFC: @ 8032AFC
push {r4,lr}
- ldr r0, _08032B30 @ =gUnknown_2022974
+ ldr r0, _08032B30 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08032B34 @ =gUnknown_2022976
+ ldr r0, _08032B34 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _08032B38 @ =gActiveBattler
ldrb r4, [r0]
@@ -8769,8 +8769,8 @@ sub_8032AFC: @ 8032AFC
bl sub_80D87BC
b _08032B4C
.align 2, 0
-_08032B30: .4byte gUnknown_2022974
-_08032B34: .4byte gUnknown_2022976
+_08032B30: .4byte gBattle_BG0_X
+_08032B34: .4byte gBattle_BG0_Y
_08032B38: .4byte gActiveBattler
_08032B3C: .4byte gUnknown_2022BC6
_08032B40: .4byte gDisplayedStringBattle
@@ -8824,9 +8824,9 @@ sub_8032B94: @ 8032B94
lsrs r1, r0, 24
cmp r1, 0
bne _08032BBA
- ldr r0, _08032BC0 @ =gUnknown_2022974
+ ldr r0, _08032BC0 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08032BC4 @ =gUnknown_2022976
+ ldr r1, _08032BC4 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r1, _08032BC8 @ =gUnknown_3004FE0
@@ -8840,8 +8840,8 @@ _08032BBA:
pop {r0}
bx r0
.align 2, 0
-_08032BC0: .4byte gUnknown_2022974
-_08032BC4: .4byte gUnknown_2022976
+_08032BC0: .4byte gBattle_BG0_X
+_08032BC4: .4byte gBattle_BG0_Y
_08032BC8: .4byte gUnknown_3004FE0
_08032BCC: .4byte gActiveBattler
_08032BD0: .4byte sub_802E438
@@ -8910,9 +8910,9 @@ sub_8032C4C: @ 8032C4C
lsrs r1, r0, 24
cmp r1, 0
bne _08032C76
- ldr r0, _08032C7C @ =gUnknown_2022974
+ ldr r0, _08032C7C @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08032C80 @ =gUnknown_2022976
+ ldr r1, _08032C80 @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -8928,8 +8928,8 @@ _08032C76:
pop {r0}
bx r0
.align 2, 0
-_08032C7C: .4byte gUnknown_2022974
-_08032C80: .4byte gUnknown_2022976
+_08032C7C: .4byte gBattle_BG0_X
+_08032C80: .4byte gBattle_BG0_Y
_08032C84: .4byte gUnknown_3004FE0
_08032C88: .4byte gActiveBattler
_08032C8C: .4byte sub_802EA10
@@ -9754,7 +9754,7 @@ _08033310: .4byte gUnknown_2022870
PlayerHandleHitAnimation: @ 8033314
push {r4,lr}
ldr r3, _0803333C @ =gSprites
- ldr r2, _08033340 @ =gUnknown_2023D44
+ ldr r2, _08033340 @ =gBattlerSpriteIds
ldr r4, _08033344 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r2
@@ -9772,7 +9772,7 @@ PlayerHandleHitAnimation: @ 8033314
b _08033372
.align 2, 0
_0803333C: .4byte gSprites
-_08033340: .4byte gUnknown_2023D44
+_08033340: .4byte gBattlerSpriteIds
_08033344: .4byte gActiveBattler
_08033348:
ldr r1, _08033378 @ =gUnknown_2024005
@@ -9930,7 +9930,7 @@ _08033474: .4byte gUnknown_2023F4C
thumb_func_start PlayerHandleIntroTrainerBallThrow
PlayerHandleIntroTrainerBallThrow: @ 8033478
push {r4-r7,lr}
- ldr r6, _080335B8 @ =gUnknown_2023D44
+ ldr r6, _080335B8 @ =gBattlerSpriteIds
ldr r7, _080335BC @ =gActiveBattler
ldrb r0, [r7]
adds r0, r6
@@ -10085,7 +10085,7 @@ _0803359A:
pop {r0}
bx r0
.align 2, 0
-_080335B8: .4byte gUnknown_2023D44
+_080335B8: .4byte gBattlerSpriteIds
_080335BC: .4byte gActiveBattler
_080335C0: .4byte gSprites
_080335C4: .4byte 0x0000ffd8
@@ -10129,7 +10129,7 @@ sub_80335F8: @ 80335F8
adds r0, r1
adds r1, r4, 0
bl sub_8034498
- ldr r0, _08033658 @ =gUnknown_2023D44
+ ldr r0, _08033658 @ =gBattlerSpriteIds
adds r4, r0
ldrb r1, [r4]
lsls r0, r1, 4
@@ -10145,7 +10145,7 @@ sub_80335F8: @ 80335F8
.align 2, 0
_08033650: .4byte gBattlerPartyIndexes
_08033654: .4byte gPlayerParty
-_08033658: .4byte gUnknown_2023D44
+_08033658: .4byte gBattlerSpriteIds
_0803365C: .4byte gSprites
thumb_func_end sub_80335F8
@@ -10476,7 +10476,7 @@ PlayerHandleSpriteInvisibility: @ 80338EC
cmp r0, 0
beq _08033932
ldr r3, _08033940 @ =gSprites
- ldr r0, _08033944 @ =gUnknown_2023D44
+ ldr r0, _08033944 @ =gBattlerSpriteIds
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
@@ -10509,7 +10509,7 @@ _08033932:
.align 2, 0
_0803393C: .4byte gActiveBattler
_08033940: .4byte gSprites
-_08033944: .4byte gUnknown_2023D44
+_08033944: .4byte gBattlerSpriteIds
_08033948: .4byte gUnknown_2022BC4
thumb_func_end PlayerHandleSpriteInvisibility
@@ -10671,7 +10671,7 @@ _08033A74: .4byte gUnknown_2023FFC
thumb_func_start PlayerHandlecmd55
PlayerHandlecmd55: @ 8033A78
push {r4,lr}
- ldr r2, _08033AB0 @ =gUnknown_2023E8A
+ ldr r2, _08033AB0 @ =gBattleOutcome
ldr r1, _08033AB4 @ =gUnknown_2022BC4
ldr r4, _08033AB8 @ =gActiveBattler
ldrb r0, [r4]
@@ -10695,7 +10695,7 @@ PlayerHandlecmd55: @ 8033A78
pop {r0}
bx r0
.align 2, 0
-_08033AB0: .4byte gUnknown_2023E8A
+_08033AB0: .4byte gBattleOutcome
_08033AB4: .4byte gUnknown_2022BC4
_08033AB8: .4byte gActiveBattler
_08033ABC: .4byte gUnknown_3004FE0
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 58fad294a..23b4a23e8 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -98,7 +98,7 @@ sub_8156140: @ 8156140
sub_815614C: @ 815614C
push {lr}
ldr r2, _08156174 @ =gSprites
- ldr r1, _08156178 @ =gUnknown_2023D44
+ ldr r1, _08156178 @ =gBattlerSpriteIds
ldr r0, _0815617C @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -118,7 +118,7 @@ _08156170:
bx r0
.align 2, 0
_08156174: .4byte gSprites
-_08156178: .4byte gUnknown_2023D44
+_08156178: .4byte gBattlerSpriteIds
_0815617C: .4byte gActiveBattler
_08156180: .4byte SpriteCallbackDummy
thumb_func_end sub_815614C
@@ -127,7 +127,7 @@ _08156180: .4byte SpriteCallbackDummy
sub_8156184: @ 8156184
push {r4-r7,lr}
ldr r2, _081561E0 @ =gSprites
- ldr r0, _081561E4 @ =gUnknown_2023D44
+ ldr r0, _081561E4 @ =gBattlerSpriteIds
ldr r7, _081561E8 @ =gActiveBattler
ldrb r3, [r7]
adds r0, r3, r0
@@ -171,7 +171,7 @@ sub_8156184: @ 8156184
b _08156230
.align 2, 0
_081561E0: .4byte gSprites
-_081561E4: .4byte gUnknown_2023D44
+_081561E4: .4byte gBattlerSpriteIds
_081561E8: .4byte gActiveBattler
_081561EC: .4byte gUnknown_2024018
_081561F0: .4byte gBattlerPartyIndexes
@@ -1635,7 +1635,7 @@ sub_8156DCC: @ 8156DCC
cmp r0, 0
bne _08156E3C
ldr r6, _08156E30 @ =gSprites
- ldr r5, _08156E34 @ =gUnknown_2023D44
+ ldr r5, _08156E34 @ =gBattlerSpriteIds
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
@@ -1672,11 +1672,11 @@ sub_8156DCC: @ 8156DCC
.align 2, 0
_08156E2C: .4byte gActiveBattler
_08156E30: .4byte gSprites
-_08156E34: .4byte gUnknown_2023D44
+_08156E34: .4byte gBattlerSpriteIds
_08156E38: .4byte gUnknown_3004FF0
_08156E3C:
ldr r2, _08156E6C @ =gSprites
- ldr r0, _08156E70 @ =gUnknown_2023D44
+ ldr r0, _08156E70 @ =gBattlerSpriteIds
ldrb r3, [r4]
adds r0, r3, r0
ldrb r1, [r0]
@@ -1700,7 +1700,7 @@ _08156E66:
bx r0
.align 2, 0
_08156E6C: .4byte gSprites
-_08156E70: .4byte gUnknown_2023D44
+_08156E70: .4byte gBattlerSpriteIds
_08156E74: .4byte gUnknown_3004FF0
thumb_func_end sub_8156DCC
@@ -1775,7 +1775,7 @@ _08156EFA:
thumb_func_start sub_8156F00
sub_8156F00: @ 8156F00
push {r4,lr}
- ldr r1, _08156F3C @ =gUnknown_2023D44
+ ldr r1, _08156F3C @ =gBattlerSpriteIds
ldr r0, _08156F40 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -1803,7 +1803,7 @@ sub_8156F00: @ 8156F00
bl PlayerPartnerBufferExecCompleted
b _08156F76
.align 2, 0
-_08156F3C: .4byte gUnknown_2023D44
+_08156F3C: .4byte gBattlerSpriteIds
_08156F40: .4byte gActiveBattler
_08156F44: .4byte gSprites
_08156F48: .4byte gUnknown_2024005
@@ -1853,7 +1853,7 @@ sub_8156F7C: @ 8156F7C
ands r0, r1
cmp r0, 0
bne _08156FD0
- ldr r5, _08156FE0 @ =gUnknown_2023D44
+ ldr r5, _08156FE0 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -1883,7 +1883,7 @@ _08156FD0:
.align 2, 0
_08156FD8: .4byte gUnknown_2024018
_08156FDC: .4byte gActiveBattler
-_08156FE0: .4byte gUnknown_2023D44
+_08156FE0: .4byte gBattlerSpriteIds
_08156FE4: .4byte gSprites
_08156FE8: .4byte gUnknown_3004FF0
thumb_func_end sub_8156F7C
@@ -1892,7 +1892,7 @@ _08156FE8: .4byte gUnknown_3004FF0
sub_8156FEC: @ 8156FEC
push {lr}
ldr r2, _08157014 @ =gSprites
- ldr r1, _08157018 @ =gUnknown_2023D44
+ ldr r1, _08157018 @ =gBattlerSpriteIds
ldr r0, _0815701C @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -1912,7 +1912,7 @@ _08157010:
bx r0
.align 2, 0
_08157014: .4byte gSprites
-_08157018: .4byte gUnknown_2023D44
+_08157018: .4byte gBattlerSpriteIds
_0815701C: .4byte gActiveBattler
_08157020: .4byte SpriteCallbackDummy
thumb_func_end sub_8156FEC
@@ -3932,7 +3932,7 @@ sub_81580E0: @ 81580E0
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _08158220 @ =gMultiuseSpriteTemplate
mov r9, r0
ldrb r0, [r6]
@@ -3950,7 +3950,7 @@ sub_81580E0: @ 81580E0
adds r1, r4, 0
adds r2, r5, 0
bl CreateSprite
- ldr r4, _08158224 @ =gUnknown_2023D44
+ ldr r4, _08158224 @ =gBattlerSpriteIds
ldrb r1, [r6]
adds r1, r4
strb r0, [r1]
@@ -4038,7 +4038,7 @@ _08158214: .4byte gActiveBattler
_08158218: .4byte gBattlerPartyIndexes
_0815821C: .4byte gEnemyParty
_08158220: .4byte gMultiuseSpriteTemplate
-_08158224: .4byte gUnknown_2023D44
+_08158224: .4byte gBattlerSpriteIds
_08158228: .4byte gSprites
_0815822C: .4byte 0x0000ff10
_08158230: .4byte gBattleMonForms
@@ -4135,7 +4135,7 @@ _081582F0: .4byte gActiveBattler
_081582F4: .4byte gUnknown_3004FE0
_081582F8: .4byte sub_8156F7C
_081582FC:
- ldr r5, _08158338 @ =gUnknown_2023D44
+ ldr r5, _08158338 @ =gBattlerSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
@@ -4163,7 +4163,7 @@ _08158332:
pop {r0}
bx r0
.align 2, 0
-_08158338: .4byte gUnknown_2023D44
+_08158338: .4byte gBattlerSpriteIds
_0815833C: .4byte gSprites
_08158340: .4byte gUnknown_3004FF0
thumb_func_end sub_81582C0
@@ -4202,7 +4202,7 @@ sub_8158344: @ 8158344
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r5, _081583E4 @ =gUnknown_2023D44
+ ldr r5, _081583E4 @ =gBattlerSpriteIds
ldrb r1, [r7]
adds r1, r5
strb r0, [r1]
@@ -4243,7 +4243,7 @@ sub_8158344: @ 8158344
_081583D8: .4byte gActiveBattler
_081583DC: .4byte gMultiuseSpriteTemplate
_081583E0: .4byte gUnknown_8239F8C
-_081583E4: .4byte gUnknown_2023D44
+_081583E4: .4byte gBattlerSpriteIds
_081583E8: .4byte gSprites
_081583EC: .4byte 0x0000fffe
_081583F0:
@@ -4281,7 +4281,7 @@ _081583F0:
movs r1, 0xB0
adds r2, r4, 0
bl CreateSprite
- ldr r5, _08158518 @ =gUnknown_2023D44
+ ldr r5, _08158518 @ =gBattlerSpriteIds
ldrb r1, [r7]
adds r1, r5
strb r0, [r1]
@@ -4304,7 +4304,7 @@ _081583F0:
adds r0, r4
movs r1, 0x2
strh r1, [r0, 0x2E]
- ldr r0, _08158524 @ =gUnknown_8239A1C
+ ldr r0, _08158524 @ =gTrainerFrontPicPaletteTable
mov r1, r8
lsls r6, r1, 3
adds r0, r6
@@ -4334,7 +4334,7 @@ _081583F0:
lsls r0, 22
lsrs r0, 22
strh r0, [r1, 0x38]
- ldr r0, _08158528 @ =gUnknown_823957C
+ ldr r0, _08158528 @ =gTrainerFrontPicTable
adds r0, r6
ldrh r0, [r0, 0x6]
bl GetSpriteTileStartByTag
@@ -4387,11 +4387,11 @@ _081584E2:
.align 2, 0
_08158510: .4byte gMultiuseSpriteTemplate
_08158514: .4byte gUnknown_823932C
-_08158518: .4byte gUnknown_2023D44
+_08158518: .4byte gBattlerSpriteIds
_0815851C: .4byte gSprites
_08158520: .4byte 0x0000ff10
-_08158524: .4byte gUnknown_8239A1C
-_08158528: .4byte gUnknown_823957C
+_08158524: .4byte gTrainerFrontPicPaletteTable
+_08158528: .4byte gTrainerFrontPicTable
_0815852C: .4byte 0x000003ff
_08158530: .4byte 0xfffffc00
_08158534: .4byte sub_8033EEC
@@ -4427,7 +4427,7 @@ sub_8158544: @ 8158544
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r6, _081585F8 @ =gUnknown_2023D44
+ ldr r6, _081585F8 @ =gBattlerSpriteIds
ldrb r1, [r4]
adds r1, r6
strb r0, [r1]
@@ -4486,7 +4486,7 @@ sub_8158544: @ 8158544
_081585EC: .4byte gActiveBattler
_081585F0: .4byte gMultiuseSpriteTemplate
_081585F4: .4byte gUnknown_8239F8C
-_081585F8: .4byte gUnknown_2023D44
+_081585F8: .4byte gBattlerSpriteIds
_081585FC: .4byte gSprites
_08158600: .4byte 0x0000ffa0
_08158604: .4byte sub_8033EEC
@@ -4574,7 +4574,7 @@ _08158670:
movs r0, 0x10
bl PlaySE12WithPanning
ldr r2, _081586F0 @ =gSprites
- ldr r3, _081586F4 @ =gUnknown_2023D44
+ ldr r3, _081586F4 @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
@@ -4606,14 +4606,14 @@ _08158670:
_081586E8: .4byte gBattlerPartyIndexes
_081586EC: .4byte gPlayerParty
_081586F0: .4byte gSprites
-_081586F4: .4byte gUnknown_2023D44
+_081586F4: .4byte gBattlerSpriteIds
_081586F8: .4byte sub_8012110
_081586FC:
movs r0, 0x10
movs r1, 0x3F
bl PlaySE12WithPanning
ldr r2, _08158730 @ =gSprites
- ldr r1, _08158734 @ =gUnknown_2023D44
+ ldr r1, _08158734 @ =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
@@ -4638,7 +4638,7 @@ _0815872A:
bx r0
.align 2, 0
_08158730: .4byte gSprites
-_08158734: .4byte gUnknown_2023D44
+_08158734: .4byte gBattlerSpriteIds
_08158738: .4byte sub_8011EA0
_0815873C: .4byte gUnknown_3004FE0
_08158740: .4byte gActiveBattler
@@ -4762,7 +4762,7 @@ sub_8158814: @ 8158814
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, _081588F0 @ =gUnknown_2037F16
+ ldr r5, _081588F0 @ =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
@@ -4830,7 +4830,7 @@ sub_8158814: @ 8158814
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, _08158904 @ =gUnknown_2037EE4
+ ldr r3, _08158904 @ =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4854,12 +4854,12 @@ sub_8158814: @ 8158814
.align 2, 0
_081588E8: .4byte gUnknown_2022BC4
_081588EC: .4byte gActiveBattler
-_081588F0: .4byte gUnknown_2037F16
+_081588F0: .4byte gAnimMoveTurn
_081588F4: .4byte gUnknown_2037EEC
_081588F8: .4byte gUnknown_2037EE8
_081588FC: .4byte gUnknown_2037EFE
_08158900: .4byte gUnknown_2037F00
-_08158904: .4byte gUnknown_2037EE4
+_08158904: .4byte gAnimDisableStructPtr
_08158908: .4byte gUnknown_2024008
_0815890C:
ldr r0, _08158930 @ =gUnknown_2024018
@@ -5055,10 +5055,10 @@ _08158A7C:
thumb_func_start sub_8158A88
sub_8158A88: @ 8158A88
push {r4,lr}
- ldr r0, _08158ABC @ =gUnknown_2022974
+ ldr r0, _08158ABC @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08158AC0 @ =gUnknown_2022976
+ ldr r0, _08158AC0 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _08158AC4 @ =gActiveBattler
ldrb r4, [r0]
@@ -5077,8 +5077,8 @@ sub_8158A88: @ 8158A88
bl sub_80D87BC
b _08158AD8
.align 2, 0
-_08158ABC: .4byte gUnknown_2022974
-_08158AC0: .4byte gUnknown_2022976
+_08158ABC: .4byte gBattle_BG0_X
+_08158AC0: .4byte gBattle_BG0_Y
_08158AC4: .4byte gActiveBattler
_08158AC8: .4byte gUnknown_2022BC6
_08158ACC: .4byte gDisplayedStringBattle
@@ -5132,9 +5132,9 @@ sub_8158B20: @ 8158B20
lsrs r1, r0, 24
cmp r1, 0
bne _08158B46
- ldr r0, _08158B4C @ =gUnknown_2022974
+ ldr r0, _08158B4C @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08158B50 @ =gUnknown_2022976
+ ldr r1, _08158B50 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r1, _08158B54 @ =gUnknown_3004FE0
@@ -5148,8 +5148,8 @@ _08158B46:
pop {r0}
bx r0
.align 2, 0
-_08158B4C: .4byte gUnknown_2022974
-_08158B50: .4byte gUnknown_2022976
+_08158B4C: .4byte gBattle_BG0_X
+_08158B50: .4byte gBattle_BG0_Y
_08158B54: .4byte gUnknown_3004FE0
_08158B58: .4byte gActiveBattler
_08158B5C: .4byte sub_8156140
@@ -5238,9 +5238,9 @@ sub_8158C04: @ 8158C04
lsrs r1, r0, 24
cmp r1, 0
bne _08158C2E
- ldr r0, _08158C34 @ =gUnknown_2022974
+ ldr r0, _08158C34 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08158C38 @ =gUnknown_2022976
+ ldr r1, _08158C38 @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -5256,8 +5256,8 @@ _08158C2E:
pop {r0}
bx r0
.align 2, 0
-_08158C34: .4byte gUnknown_2022974
-_08158C38: .4byte gUnknown_2022976
+_08158C34: .4byte gBattle_BG0_X
+_08158C38: .4byte gBattle_BG0_Y
_08158C3C: .4byte gUnknown_3004FE0
_08158C40: .4byte gActiveBattler
_08158C44: .4byte sub_81564E4
@@ -5936,7 +5936,7 @@ sub_8159184: @ 8159184
sub_8159190: @ 8159190
push {r4,lr}
ldr r3, _081591B8 @ =gSprites
- ldr r2, _081591BC @ =gUnknown_2023D44
+ ldr r2, _081591BC @ =gBattlerSpriteIds
ldr r4, _081591C0 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r2
@@ -5954,7 +5954,7 @@ sub_8159190: @ 8159190
b _081591EE
.align 2, 0
_081591B8: .4byte gSprites
-_081591BC: .4byte gUnknown_2023D44
+_081591BC: .4byte gBattlerSpriteIds
_081591C0: .4byte gActiveBattler
_081591C4:
ldr r1, _081591F4 @ =gUnknown_2024005
@@ -6119,7 +6119,7 @@ _08159300: .4byte gUnknown_2023F4C
thumb_func_start sub_8159304
sub_8159304: @ 8159304
push {r4-r7,lr}
- ldr r6, _0815943C @ =gUnknown_2023D44
+ ldr r6, _0815943C @ =gBattlerSpriteIds
ldr r7, _08159440 @ =gActiveBattler
ldrb r0, [r7]
adds r0, r6
@@ -6269,7 +6269,7 @@ _0815941C:
pop {r0}
bx r0
.align 2, 0
-_0815943C: .4byte gUnknown_2023D44
+_0815943C: .4byte gBattlerSpriteIds
_08159440: .4byte gActiveBattler
_08159444: .4byte gSprites
_08159448: .4byte 0x0000ffd8
@@ -6336,7 +6336,7 @@ sub_8159478: @ 8159478
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _081595D8 @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
@@ -6359,7 +6359,7 @@ sub_8159478: @ 8159478
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
- ldr r4, _081595DC @ =gUnknown_2023D44
+ ldr r4, _081595DC @ =gBattlerSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, _081595E0 @ =gSprites
@@ -6450,7 +6450,7 @@ _081595CC: .4byte gPlayerParty
_081595D0: .4byte sub_8033E3C
_081595D4: .4byte gUnknown_3004FFC
_081595D8: .4byte gMultiuseSpriteTemplate
-_081595DC: .4byte gUnknown_2023D44
+_081595DC: .4byte gBattlerSpriteIds
_081595E0: .4byte gSprites
_081595E4: .4byte gBattleMonForms
_081595E8: .4byte SpriteCallbackDummy
@@ -6700,7 +6700,7 @@ sub_81597B8: @ 81597B8
thumb_func_start sub_81597C4
sub_81597C4: @ 81597C4
push {r4,lr}
- ldr r2, _08159808 @ =gUnknown_2023E8A
+ ldr r2, _08159808 @ =gBattleOutcome
ldr r1, _0815980C @ =gUnknown_2022BC4
ldr r4, _08159810 @ =gActiveBattler
ldrb r0, [r4]
@@ -6731,7 +6731,7 @@ _08159800:
pop {r0}
bx r0
.align 2, 0
-_08159808: .4byte gUnknown_2023E8A
+_08159808: .4byte gBattleOutcome
_0815980C: .4byte gUnknown_2022BC4
_08159810: .4byte gActiveBattler
_08159814: .4byte gBattleTypeFlags
@@ -7250,7 +7250,7 @@ _08159C14:
lsls r0, 2
adds r0, r5
ldr r1, [r0]
- ldr r0, _08159C40 @ =gUnknown_2022976
+ ldr r0, _08159C40 @ =gBattle_BG0_Y
ldrh r0, [r0]
strb r0, [r1, 0x4]
bl sub_80EB30C
@@ -7260,9 +7260,9 @@ _08159C14:
b _08159C9E
.align 2, 0
_08159C3C: .4byte gPaletteFade
-_08159C40: .4byte gUnknown_2022976
+_08159C40: .4byte gBattle_BG0_Y
_08159C44:
- ldr r1, _08159C5C @ =gUnknown_2022976
+ ldr r1, _08159C5C @ =gBattle_BG0_Y
movs r0, 0
strh r0, [r1]
bl sub_8159EF0
@@ -7272,7 +7272,7 @@ _08159C44:
bl sub_80D87BC
b _08159C94
.align 2, 0
-_08159C5C: .4byte gUnknown_2022976
+_08159C5C: .4byte gBattle_BG0_Y
_08159C60: .4byte gDisplayedStringBattle
_08159C64:
movs r0, 0x18
@@ -7331,7 +7331,7 @@ _08159CB4:
ldr r0, _08159CFC @ =0x00000137
bl PlayBGM
_08159CD8:
- ldr r1, _08159D00 @ =gUnknown_2022976
+ ldr r1, _08159D00 @ =gBattle_BG0_Y
ldrb r0, [r4]
lsls r0, 2
adds r0, r5
@@ -7348,7 +7348,7 @@ _08159CEE:
.align 2, 0
_08159CF8: .4byte gPaletteFade
_08159CFC: .4byte 0x00000137
-_08159D00: .4byte gUnknown_2022976
+_08159D00: .4byte gBattle_BG0_Y
thumb_func_end sub_8159BA8
thumb_func_start sub_8159D04
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index 405d4c45b..9e01ad2fd 100644
--- a/asm/battle_controller_safari.s
+++ b/asm/battle_controller_safari.s
@@ -259,7 +259,7 @@ _080DD724: .4byte gActiveBattler
sub_80DD728: @ 80DD728
push {lr}
ldr r2, _080DD750 @ =gSprites
- ldr r1, _080DD754 @ =gUnknown_2023D44
+ ldr r1, _080DD754 @ =gBattlerSpriteIds
ldr r0, _080DD758 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
@@ -279,7 +279,7 @@ _080DD74C:
bx r0
.align 2, 0
_080DD750: .4byte gSprites
-_080DD754: .4byte gUnknown_2023D44
+_080DD754: .4byte gBattlerSpriteIds
_080DD758: .4byte gActiveBattler
_080DD75C: .4byte SpriteCallbackDummy
thumb_func_end sub_80DD728
@@ -646,7 +646,7 @@ SafariHandleDrawTrainerPic: @ 80DD9C4
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
- ldr r6, _080DDA8C @ =gUnknown_2023D44
+ ldr r6, _080DDA8C @ =gBattlerSpriteIds
ldrb r1, [r5]
adds r1, r6
strb r0, [r1]
@@ -706,7 +706,7 @@ _080DDA7C: .4byte gSaveBlock2Ptr
_080DDA80: .4byte gActiveBattler
_080DDA84: .4byte gMultiuseSpriteTemplate
_080DDA88: .4byte gUnknown_8239F8C
-_080DDA8C: .4byte gUnknown_2023D44
+_080DDA8C: .4byte gBattlerSpriteIds
_080DDA90: .4byte gSprites
_080DDA94: .4byte 0x0000fffe
_080DDA98: .4byte sub_8033EEC
@@ -849,10 +849,10 @@ sub_80DDB94: @ 80DDB94
thumb_func_start sub_80DDBA0
sub_80DDBA0: @ 80DDBA0
push {r4,lr}
- ldr r0, _080DDBD4 @ =gUnknown_2022974
+ ldr r0, _080DDBD4 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080DDBD8 @ =gUnknown_2022976
+ ldr r0, _080DDBD8 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080DDBDC @ =gActiveBattler
ldrb r4, [r0]
@@ -871,8 +871,8 @@ sub_80DDBA0: @ 80DDBA0
bl sub_80D87BC
b _080DDBF0
.align 2, 0
-_080DDBD4: .4byte gUnknown_2022974
-_080DDBD8: .4byte gUnknown_2022976
+_080DDBD4: .4byte gBattle_BG0_X
+_080DDBD8: .4byte gBattle_BG0_Y
_080DDBDC: .4byte gActiveBattler
_080DDBE0: .4byte gUnknown_2022BC6
_080DDBE4: .4byte gDisplayedStringBattle
@@ -926,9 +926,9 @@ sub_80DDC38: @ 80DDC38
lsrs r1, r0, 24
cmp r1, 0
bne _080DDC5E
- ldr r0, _080DDC64 @ =gUnknown_2022974
+ ldr r0, _080DDC64 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _080DDC68 @ =gUnknown_2022976
+ ldr r1, _080DDC68 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r1, _080DDC6C @ =gUnknown_3004FE0
@@ -942,8 +942,8 @@ _080DDC5E:
pop {r0}
bx r0
.align 2, 0
-_080DDC64: .4byte gUnknown_2022974
-_080DDC68: .4byte gUnknown_2022976
+_080DDC64: .4byte gBattle_BG0_X
+_080DDC68: .4byte gBattle_BG0_Y
_080DDC6C: .4byte gUnknown_3004FE0
_080DDC70: .4byte gActiveBattler
_080DDC74: .4byte HandleInputChooseAction_0
@@ -1487,7 +1487,7 @@ sub_80DE048: @ 80DE048
thumb_func_start SafariHandleCmd55
SafariHandleCmd55: @ 80DE054
push {r4,lr}
- ldr r2, _080DE098 @ =gUnknown_2023E8A
+ ldr r2, _080DE098 @ =gBattleOutcome
ldr r1, _080DE09C @ =gUnknown_2022BC4
ldr r4, _080DE0A0 @ =gActiveBattler
ldrb r0, [r4]
@@ -1518,7 +1518,7 @@ _080DE090:
pop {r0}
bx r0
.align 2, 0
-_080DE098: .4byte gUnknown_2023E8A
+_080DE098: .4byte gBattleOutcome
_080DE09C: .4byte gUnknown_2022BC4
_080DE0A0: .4byte gActiveBattler
_080DE0A4: .4byte gBattleTypeFlags
diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s
index 5d0921323..5337929a1 100644
--- a/asm/battle_controllers.s
+++ b/asm/battle_controllers.s
@@ -2176,7 +2176,7 @@ EmitPrintString: @ 800E2D4
ldr r2, _0800E3B4 @ =gUnknown_2022874
movs r0, 0x10
strb r0, [r2]
- ldr r0, _0800E3B8 @ =gUnknown_2023E8A
+ ldr r0, _0800E3B8 @ =gBattleOutcome
ldrb r0, [r0]
strb r0, [r2, 0x1]
strb r1, [r2, 0x2]
@@ -2277,7 +2277,7 @@ _0800E378:
bx r0
.align 2, 0
_0800E3B4: .4byte gUnknown_2022874
-_0800E3B8: .4byte gUnknown_2023E8A
+_0800E3B8: .4byte gBattleOutcome
_0800E3BC: .4byte gCurrentMove
_0800E3C0: .4byte gUnknown_2023D4C
_0800E3C4: .4byte gUnknown_2023D68
diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s
deleted file mode 100644
index 3ff8f9318..000000000
--- a/asm/battle_dome_cards.s
+++ /dev/null
@@ -1,1102 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_91
-nullsub_91: @ 810BB88
- bx lr
- thumb_func_end nullsub_91
-
- thumb_func_start dp13_810BB8C
-dp13_810BB8C: @ 810BB8C
- push {r4-r7,lr}
- ldr r4, _0810BBAC @ =gUnknown_8453178
- ldr r3, _0810BBB0 @ =gUnknown_203AD58
- movs r2, 0x7
-_0810BB94:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0xC
- subs r2, 0x1
- cmp r2, 0
- bge _0810BB94
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BBAC: .4byte gUnknown_8453178
-_0810BBB0: .4byte gUnknown_203AD58
- thumb_func_end dp13_810BB8C
-
- thumb_func_start load_pokemon_image_TODO
-load_pokemon_image_TODO: @ 810BBB4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r1, 0
- adds r5, r3, 0
- ldr r3, [sp, 0x18]
- ldr r1, [sp, 0x1C]
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r4, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- cmp r3, 0
- bne _0810BC28
- cmp r2, 0
- beq _0810BBF4
- cmp r1, 0
- bne _0810BBE8
- lsls r0, r4, 3
- ldr r1, _0810BBE4 @ =gUnknown_82350AC
- b _0810BBFC
- .align 2, 0
-_0810BBE4: .4byte gUnknown_82350AC
-_0810BBE8:
- lsls r0, r4, 3
- ldr r1, _0810BBF0 @ =gUnknown_82350AC
- b _0810BC14
- .align 2, 0
-_0810BBF0: .4byte gUnknown_82350AC
-_0810BBF4:
- cmp r0, 0
- bne _0810BC10
- lsls r0, r4, 3
- ldr r1, _0810BC0C @ =gUnknown_823654C
-_0810BBFC:
- adds r0, r1
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl sub_800ECF0
- b _0810BC4E
- .align 2, 0
-_0810BC0C: .4byte gUnknown_823654C
-_0810BC10:
- lsls r0, r4, 3
- ldr r1, _0810BC24 @ =gUnknown_823654C
-_0810BC14:
- adds r0, r1
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl LoadSpecialPokePic_DontHandleDeoxys
- b _0810BC4E
- .align 2, 0
-_0810BC24: .4byte gUnknown_823654C
-_0810BC28:
- cmp r2, 0
- beq _0810BC40
- lsls r0, r4, 3
- ldr r1, _0810BC3C @ =gUnknown_823957C
- adds r0, r1
- adds r1, r5, 0
- adds r2, r4, 0
- bl DecompressPicFromTable
- b _0810BC4E
- .align 2, 0
-_0810BC3C: .4byte gUnknown_823957C
-_0810BC40:
- lsls r0, r7, 3
- ldr r1, _0810BC58 @ =gUnknown_8239FA4
- adds r0, r1
- adds r1, r5, 0
- adds r2, r7, 0
- bl DecompressPicFromTable
-_0810BC4E:
- movs r0, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BC58: .4byte gUnknown_8239FA4
- thumb_func_end load_pokemon_image_TODO
-
- thumb_func_start sub_810BC5C
-sub_810BC5C: @ 810BC5C
- push {r4,lr}
- sub sp, 0x8
- ldr r4, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl load_pokemon_image_TODO
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810BC5C
-
- thumb_func_start sub_810BC84
-sub_810BC84: @ 810BC84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- mov r8, r2
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- lsls r3, 24
- lsrs r5, r3, 24
- mov r12, r5
- lsls r1, 16
- lsrs r3, r1, 16
- adds r1, r3, 0
- lsls r2, 24
- cmp r2, 0
- bne _0810BCE8
- ldr r0, _0810BCC8 @ =0x0000ffff
- cmp r3, r0
- bne _0810BCD0
- ldr r2, _0810BCCC @ =gUnknown_203AD40
- ldrh r1, [r2, 0x2]
- adds r0, r3, 0
- orrs r0, r1
- strh r0, [r2, 0x2]
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r8
- bl GetFrontSpritePalFromSpeciesAndPersonality
- lsls r1, r5, 20
- b _0810BD04
- .align 2, 0
-_0810BCC8: .4byte 0x0000ffff
-_0810BCCC: .4byte gUnknown_203AD40
-_0810BCD0:
- ldr r0, _0810BCE4 @ =gUnknown_203AD40
- strh r3, [r0, 0x2]
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r8
- bl GetMonSpritePalStructFromOtIdPersonality
- bl LoadCompressedObjectPalette
- b _0810BD2E
- .align 2, 0
-_0810BCE4: .4byte gUnknown_203AD40
-_0810BCE8:
- ldr r0, _0810BD14 @ =0x0000ffff
- cmp r3, r0
- bne _0810BD20
- ldr r2, _0810BD18 @ =gUnknown_203AD40
- ldrh r1, [r2, 0x2]
- adds r0, r3, 0
- orrs r0, r1
- strh r0, [r2, 0x2]
- ldr r1, _0810BD1C @ =gUnknown_8239A1C
- lsls r0, r4, 3
- adds r0, r1
- ldr r0, [r0]
- mov r2, r12
- lsls r1, r2, 20
-_0810BD04:
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- b _0810BD2E
- .align 2, 0
-_0810BD14: .4byte 0x0000ffff
-_0810BD18: .4byte gUnknown_203AD40
-_0810BD1C: .4byte gUnknown_8239A1C
-_0810BD20:
- ldr r0, _0810BD38 @ =gUnknown_203AD40
- strh r1, [r0, 0x2]
- lsls r0, r6, 3
- ldr r1, _0810BD3C @ =gUnknown_8239A1C
- adds r0, r1
- bl LoadCompressedObjectPalette
-_0810BD2E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD38: .4byte gUnknown_203AD40
-_0810BD3C: .4byte gUnknown_8239A1C
- thumb_func_end sub_810BC84
-
- thumb_func_start sub_810BD40
-sub_810BD40: @ 810BD40
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r1, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r4, r3, 24
- lsls r1, 24
- cmp r1, 0
- bne _0810BD64
- adds r1, r5, 0
- bl GetFrontSpritePalFromSpeciesAndPersonality
- lsls r1, r4, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _0810BD74
-_0810BD64:
- ldr r1, _0810BD7C @ =gUnknown_8239A1C
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- lsls r1, r4, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_0810BD74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD7C: .4byte gUnknown_8239A1C
- thumb_func_end sub_810BD40
-
- thumb_func_start uns_builder_assign_animtable1
-uns_builder_assign_animtable1: @ 810BD80
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0810BD98
- ldr r1, _0810BD90 @ =gUnknown_203AD40
- ldr r0, _0810BD94 @ =gUnknown_82349BC
- str r0, [r1, 0x8]
- b _0810BDA0
- .align 2, 0
-_0810BD90: .4byte gUnknown_203AD40
-_0810BD94: .4byte gUnknown_82349BC
-_0810BD98:
- ldr r0, _0810BDA4 @ =gUnknown_203AD40
- ldr r1, _0810BDA8 @ =gTrainerFrontAnimsPtrTable
- ldr r1, [r1]
- str r1, [r0, 0x8]
-_0810BDA0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810BDA4: .4byte gUnknown_203AD40
-_0810BDA8: .4byte gTrainerFrontAnimsPtrTable
- thumb_func_end uns_builder_assign_animtable1
-
- thumb_func_start oamt_spawn_poke_or_trainer_picture
-oamt_spawn_poke_or_trainer_picture: @ 810BDAC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- ldr r1, [sp, 0x50]
- ldr r2, [sp, 0x54]
- ldr r4, [sp, 0x58]
- ldr r5, [sp, 0x5C]
- ldr r6, [sp, 0x60]
- ldr r7, [sp, 0x64]
- mov r8, r7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x18]
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x20]
- lsls r5, 16
- lsrs r5, 16
- mov r10, r5
- lsls r6, 24
- lsrs r6, 24
- mov r9, r6
- mov r0, r8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r1, _0810BE44 @ =gUnknown_203AD58
- ldrb r0, [r1, 0xB]
- cmp r0, 0
- beq _0810BE1C
-_0810BE04:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bhi _0810BE1C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _0810BE04
-_0810BE1C:
- cmp r4, 0x8
- beq _0810BE40
- movs r0, 0x80
- lsls r0, 6
- bl Alloc
- adds r7, r0, 0
- cmp r7, 0
- beq _0810BE40
- movs r0, 0x20
- bl Alloc
- mov r8, r0
- cmp r0, 0
- bne _0810BE4C
- adds r0, r7, 0
- bl Free
-_0810BE40:
- ldr r0, _0810BE48 @ =0x0000ffff
- b _0810BF16
- .align 2, 0
-_0810BE44: .4byte gUnknown_203AD58
-_0810BE48: .4byte 0x0000ffff
-_0810BE4C:
- mov r1, r9
- str r1, [sp]
- str r5, [sp, 0x4]
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x14]
- adds r3, r7, 0
- bl load_pokemon_image_TODO
- lsls r0, 16
- cmp r0, 0
- bne _0810BE40
- lsls r2, r4, 1
- str r2, [sp, 0x2C]
- ldr r5, _0810BF28 @ =gUnknown_203AD40
- ldr r0, _0810BF2C @ =gUnknown_8453184
- mov r12, r0
- ldr r1, [sp, 0x18]
- lsls r1, 16
- str r1, [sp, 0x24]
- ldr r2, [sp, 0x1C]
- lsls r2, 16
- str r2, [sp, 0x28]
- movs r3, 0x80
- lsls r3, 4
- mov r0, r8
- adds r1, r7, 0
- adds r6, r3, 0
- movs r2, 0x3
-_0810BE86:
- str r1, [r0]
- strh r3, [r0, 0x4]
- adds r0, 0x8
- adds r1, r6
- subs r2, 0x1
- cmp r2, 0
- bge _0810BE86
- ldr r0, _0810BF30 @ =0x0000ffff
- strh r0, [r5]
- mov r0, r12
- str r0, [r5, 0x4]
- mov r0, r9
- bl uns_builder_assign_animtable1
- mov r1, r8
- str r1, [r5, 0xC]
- ldr r0, _0810BF34 @ =gDummySpriteAffineAnimTable
- str r0, [r5, 0x10]
- ldr r0, _0810BF38 @ =nullsub_91
- str r0, [r5, 0x14]
- mov r2, r10
- str r2, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x20]
- bl sub_810BC84
- ldr r2, [sp, 0x24]
- asrs r1, r2, 16
- ldr r0, [sp, 0x28]
- asrs r2, r0, 16
- adds r0, r5, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- adds r6, r2, 0
- ldr r0, _0810BF30 @ =0x0000ffff
- cmp r10, r0
- bne _0810BEF6
- ldr r0, _0810BF3C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r2, [sp, 0x20]
- lsls r3, r2, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_0810BEF6:
- ldr r1, _0810BF40 @ =gUnknown_203AD58
- ldr r2, [sp, 0x2C]
- adds r0, r2, r4
- lsls r0, 2
- adds r2, r0, r1
- str r7, [r2]
- adds r1, 0x4
- adds r0, r1
- mov r7, r8
- str r7, [r0]
- mov r0, r10
- strh r0, [r2, 0x8]
- strb r6, [r2, 0xA]
- movs r0, 0x1
- strb r0, [r2, 0xB]
- adds r0, r6, 0
-_0810BF16:
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BF28: .4byte gUnknown_203AD40
-_0810BF2C: .4byte gUnknown_8453184
-_0810BF30: .4byte 0x0000ffff
-_0810BF34: .4byte gDummySpriteAffineAnimTable
-_0810BF38: .4byte nullsub_91
-_0810BF3C: .4byte gSprites
-_0810BF40: .4byte gUnknown_203AD58
- thumb_func_end oamt_spawn_poke_or_trainer_picture
-
- thumb_func_start sub_810BF44
-sub_810BF44: @ 810BF44
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- ldr r4, [sp, 0x34]
- ldr r5, [sp, 0x38]
- ldr r6, [sp, 0x3C]
- ldr r7, [sp, 0x40]
- mov r8, r7
- ldr r7, [sp, 0x44]
- mov r9, r7
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- mov r7, r8
- lsls r7, 16
- lsrs r7, 16
- mov r8, r7
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r4, r8
- str r4, [sp, 0xC]
- str r7, [sp, 0x10]
- movs r4, 0
- str r4, [sp, 0x14]
- bl oamt_spawn_poke_or_trainer_picture
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810BF44
-
- thumb_func_start sub_810BFA4
-sub_810BFA4: @ 810BFA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- ldr r0, _0810BFDC @ =gUnknown_203AD58
- ldrb r1, [r0, 0xA]
- adds r3, r0, 0
- cmp r1, r4
- beq _0810BFD4
- adds r1, r3, 0
-_0810BFBC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bhi _0810BFD4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0xA]
- cmp r0, r4
- bne _0810BFBC
-_0810BFD4:
- cmp r2, 0x8
- bne _0810BFE4
- ldr r0, _0810BFE0 @ =0x0000ffff
- b _0810C03A
- .align 2, 0
-_0810BFDC: .4byte gUnknown_203AD58
-_0810BFE0: .4byte 0x0000ffff
-_0810BFE4:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r3
- ldr r1, [r5]
- mov r8, r1
- adds r1, r3, 0x4
- adds r0, r1
- ldr r7, [r0]
- ldrh r1, [r5, 0x8]
- ldr r0, _0810C044 @ =0x0000ffff
- lsls r6, r4, 4
- cmp r1, r0
- beq _0810C018
- ldr r1, _0810C048 @ =gSprites
- adds r0, r6, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
-_0810C018:
- adds r0, r6, r4
- lsls r0, 2
- ldr r1, _0810C048 @ =gSprites
- adds r0, r1
- bl DestroySprite
- mov r0, r8
- bl Free
- adds r0, r7, 0
- bl Free
- adds r1, r5, 0
- ldr r0, _0810C04C @ =gUnknown_8453178
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0
-_0810C03A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810C044: .4byte 0x0000ffff
-_0810C048: .4byte gSprites
-_0810C04C: .4byte gUnknown_8453178
- thumb_func_end sub_810BFA4
-
- thumb_func_start sub_810C050
-sub_810C050: @ 810C050
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r9, r1
- adds r7, r2, 0
- adds r4, r3, 0
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- ldr r3, [sp, 0x28]
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r2, 0
- movs r1, 0x7
- bl GetWindowAttribute
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r4, 0
- bl sub_810BC5C
- lsls r0, 16
- cmp r0, 0
- bne _0810C0AC
- str r6, [sp]
- adds r0, r5, 0
- mov r1, r9
- adds r2, r7, 0
- mov r3, r8
- bl sub_810BD40
- movs r0, 0
- b _0810C0AE
-_0810C0AC:
- ldr r0, _0810C0BC @ =0x0000ffff
-_0810C0AE:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810C0BC: .4byte 0x0000ffff
- thumb_func_end sub_810C050
-
- thumb_func_start sub_810C0C0
-sub_810C0C0: @ 810C0C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r1, [sp, 0x18]
- str r2, [sp, 0x1C]
- ldr r1, [sp, 0x44]
- ldr r2, [sp, 0x48]
- ldr r4, [sp, 0x4C]
- ldr r5, [sp, 0x50]
- ldr r6, [sp, 0x54]
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x20]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x80
- lsls r0, 6
- bl Alloc
- adds r4, r0, 0
- cmp r4, 0
- beq _0810C156
- str r6, [sp]
- mov r0, r9
- ldr r1, [sp, 0x1C]
- adds r2, r7, 0
- adds r3, r4, 0
- bl sub_810BC5C
- lsls r0, 16
- cmp r0, 0
- bne _0810C156
- movs r0, 0x40
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- mov r1, r8
- str r1, [sp, 0xC]
- str r0, [sp, 0x10]
- str r0, [sp, 0x14]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl BlitBitmapRectToWindow
- str r6, [sp]
- mov r0, r9
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- ldr r3, [sp, 0x20]
- bl sub_810BD40
- adds r0, r4, 0
- bl Free
- movs r0, 0
- b _0810C158
-_0810C156:
- ldr r0, _0810C168 @ =0x0000ffff
-_0810C158:
- 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
-_0810C168: .4byte 0x0000ffff
- thumb_func_end sub_810C0C0
-
- thumb_func_start sub_810C16C
-sub_810C16C: @ 810C16C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- ldr r4, [sp, 0x34]
- ldr r5, [sp, 0x38]
- ldr r6, [sp, 0x3C]
- ldr r7, [sp, 0x40]
- mov r8, r7
- ldr r7, [sp, 0x44]
- mov r9, r7
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- mov r7, r8
- lsls r7, 16
- lsrs r7, 16
- mov r8, r7
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r4, r8
- str r4, [sp, 0xC]
- movs r4, 0
- str r4, [sp, 0x10]
- str r7, [sp, 0x14]
- bl oamt_spawn_poke_or_trainer_picture
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810C16C
-
- thumb_func_start sub_810C1CC
-sub_810C1CC: @ 810C1CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- ldr r7, [sp, 0x38]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r7, 16
- lsrs r7, 16
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- str r7, [sp, 0xC]
- movs r4, 0
- str r4, [sp, 0x10]
- bl sub_810C16C
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810C1CC
-
- thumb_func_start sub_810C214
-sub_810C214: @ 810C214
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_810BFA4
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_810C214
-
- thumb_func_start sub_810C228
-sub_810C228: @ 810C228
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- str r4, [sp, 0x10]
- bl sub_810C0C0
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x14
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810C228
-
- thumb_func_start sub_810C25C
-sub_810C25C: @ 810C25C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- ldr r7, [sp, 0x38]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- lsls r7, 24
- lsrs r7, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- str r7, [sp, 0xC]
- movs r4, 0
- str r4, [sp, 0x10]
- bl sub_810C0C0
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810C25C
-
- thumb_func_start sub_810C2A4
-sub_810C2A4: @ 810C2A4
- push {r4,r5,lr}
- sub sp, 0x14
- adds r5, r1, 0
- ldr r1, [sp, 0x20]
- ldr r4, [sp, 0x24]
- lsls r0, 16
- lsrs r0, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- asrs r2, 16
- str r2, [sp]
- lsls r3, 16
- asrs r3, 16
- str r3, [sp, 0x4]
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r1, 0x1
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl sub_810BF44
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x14
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810C2A4
-
- thumb_func_start sub_810C2E8
-sub_810C2E8: @ 810C2E8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_810BFA4
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_810C2E8
-
- thumb_func_start sub_810C2FC
-sub_810C2FC: @ 810C2FC
- push {r4,lr}
- sub sp, 0xC
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0
- adds r3, r4, 0
- bl sub_810C050
- lsls r0, 16
- lsrs r0, 16
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810C2FC
-
- thumb_func_start sub_810C330
-sub_810C330: @ 810C330
- push {r4,r5,lr}
- sub sp, 0x14
- adds r5, r1, 0
- ldr r1, [sp, 0x20]
- ldr r4, [sp, 0x24]
- lsls r0, 16
- lsrs r0, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r1, 0x1
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl sub_810C0C0
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x14
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810C330
-
- thumb_func_start sub_810C374
-sub_810C374: @ 810C374
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- bne _0810C39A
- cmp r0, 0
- beq _0810C394
- ldr r0, _0810C390 @ =gFacilityClassToPicIndex
- adds r0, 0x87
- ldrb r0, [r0]
- b _0810C39A
- .align 2, 0
-_0810C390: .4byte gFacilityClassToPicIndex
-_0810C394:
- ldr r0, _0810C3A0 @ =gFacilityClassToPicIndex
- adds r0, 0x86
- ldrb r0, [r0]
-_0810C39A:
- pop {r1}
- bx r1
- .align 2, 0
-_0810C3A0: .4byte gFacilityClassToPicIndex
- thumb_func_end sub_810C374
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s
index 9ae7accdc..efbd89e9e 100644
--- a/asm/battle_gfx_sfx_util.s
+++ b/asm/battle_gfx_sfx_util.s
@@ -394,7 +394,7 @@ _08034094:
cmp r5, 0x2
bne _080340E0
ldr r1, _080340D8 @ =gSprites
- ldr r0, _080340DC @ =gUnknown_2023D44
+ ldr r0, _080340DC @ =gBattlerSpriteIds
adds r0, r6, r0
ldrb r2, [r0]
lsls r0, r2, 4
@@ -415,12 +415,12 @@ _08034094:
b _08034132
.align 2, 0
_080340D8: .4byte gSprites
-_080340DC: .4byte gUnknown_2023D44
+_080340DC: .4byte gBattlerSpriteIds
_080340E0:
- ldr r0, _08034144 @ =gUnknown_2037F1A
+ ldr r0, _08034144 @ =gBattleAnimAttacker
mov r2, r10
strb r2, [r0]
- ldr r0, _08034148 @ =gUnknown_2037F1B
+ ldr r0, _08034148 @ =gBattleAnimTarget
mov r1, sp
ldrb r1, [r1]
strb r1, [r0]
@@ -466,8 +466,8 @@ _08034132:
pop {r1}
bx r1
.align 2, 0
-_08034144: .4byte gUnknown_2037F1A
-_08034148: .4byte gUnknown_2037F1B
+_08034144: .4byte gBattleAnimAttacker
+_08034148: .4byte gBattleAnimTarget
_0803414C: .4byte gUnknown_2024018
_08034150: .4byte gUnknown_81C6EA8
_08034154: .4byte Task_ClearBitWhenBattleTableAnimDone
@@ -551,9 +551,9 @@ InitAndLaunchSpecialAnimation: @ 80341D8
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
- ldr r0, _08034230 @ =gUnknown_2037F1A
+ ldr r0, _08034230 @ =gBattleAnimAttacker
strb r1, [r0]
- ldr r0, _08034234 @ =gUnknown_2037F1B
+ ldr r0, _08034234 @ =gBattleAnimTarget
strb r2, [r0]
ldr r0, _08034238 @ =gUnknown_81C6F18
adds r1, r3, 0
@@ -587,8 +587,8 @@ InitAndLaunchSpecialAnimation: @ 80341D8
pop {r0}
bx r0
.align 2, 0
-_08034230: .4byte gUnknown_2037F1A
-_08034234: .4byte gUnknown_2037F1B
+_08034230: .4byte gBattleAnimAttacker
+_08034234: .4byte gBattleAnimTarget
_08034238: .4byte gUnknown_81C6F18
_0803423C: .4byte Task_ClearBitWhenSpecialAnimDone
_08034240: .4byte gTasks
@@ -756,7 +756,7 @@ _0803436C:
bl GetBattlerPosition
lsls r0, 24
lsls r2, r5, 3
- ldr r1, _080343C4 @ =gUnknown_82350AC
+ ldr r1, _080343C4 @ =gMonFrontPicTable
adds r2, r1
ldr r1, _080343C8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -788,7 +788,7 @@ _0803436C:
b _080343DA
.align 2, 0
_080343C0: .4byte gUnknown_2024008
-_080343C4: .4byte gUnknown_82350AC
+_080343C4: .4byte gMonFrontPicTable
_080343C8: .4byte gMonSpritesGfxPtr
_080343CC: .4byte gUnknown_2024018
_080343D0:
@@ -946,7 +946,7 @@ _080344E4:
beq _08034548
_0803451C:
lsls r0, r5, 3
- ldr r1, _08034540 @ =gUnknown_823654C
+ ldr r1, _08034540 @ =gMonBackPicTable
adds r0, r1
ldr r1, _08034544 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -961,11 +961,11 @@ _0803451C:
.align 2, 0
_08034538: .4byte gUnknown_2024008
_0803453C: .4byte gUnknown_2024018
-_08034540: .4byte gUnknown_823654C
+_08034540: .4byte gMonBackPicTable
_08034544: .4byte gMonSpritesGfxPtr
_08034548:
lsls r0, r5, 3
- ldr r1, _08034584 @ =gUnknown_823654C
+ ldr r1, _08034584 @ =gMonBackPicTable
adds r0, r1
ldr r1, _08034588 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -994,7 +994,7 @@ _08034562:
bl GetMonFrontSpritePal
b _0803459A
.align 2, 0
-_08034584: .4byte gUnknown_823654C
+_08034584: .4byte gMonBackPicTable
_08034588: .4byte gMonSpritesGfxPtr
_0803458C: .4byte gUnknown_2024018
_08034590:
@@ -1149,7 +1149,7 @@ sub_80346C4: @ 80346C4
adds r4, r0, 0
lsls r4, 24
lsls r5, 3
- ldr r6, _0803473C @ =gUnknown_823957C
+ ldr r6, _0803473C @ =gTrainerFrontPicTable
adds r6, r5, r6
ldr r0, _08034740 @ =gMonSpritesGfxPtr
mov r8, r0
@@ -1181,7 +1181,7 @@ sub_80346C4: @ 80346C4
str r0, [sp, 0x4]
mov r0, sp
bl LoadSpriteSheet
- ldr r0, _0803474C @ =gUnknown_8239A1C
+ ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable
adds r5, r0
adds r0, r5, 0
bl sub_800F078
@@ -1192,11 +1192,11 @@ sub_80346C4: @ 80346C4
pop {r0}
bx r0
.align 2, 0
-_0803473C: .4byte gUnknown_823957C
+_0803473C: .4byte gTrainerFrontPicTable
_08034740: .4byte gMonSpritesGfxPtr
_08034744: .4byte 0xffff0000
_08034748: .4byte 0x0000ffff
-_0803474C: .4byte gUnknown_8239A1C
+_0803474C: .4byte gTrainerFrontPicPaletteTable
thumb_func_end sub_80346C4
thumb_func_start sub_8034750
@@ -1231,12 +1231,12 @@ sub_803477C: @ 803477C
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
- ldr r0, _080347A0 @ =gUnknown_8239A1C
+ ldr r0, _080347A0 @ =gTrainerFrontPicPaletteTable
lsrs r4, 13
adds r0, r4, r0
ldrh r0, [r0, 0x4]
bl FreeSpritePaletteByTag
- ldr r0, _080347A4 @ =gUnknown_823957C
+ ldr r0, _080347A4 @ =gTrainerFrontPicTable
adds r4, r0
ldrh r0, [r4, 0x6]
bl FreeSpriteTilesByTag
@@ -1244,8 +1244,8 @@ sub_803477C: @ 803477C
pop {r0}
bx r0
.align 2, 0
-_080347A0: .4byte gUnknown_8239A1C
-_080347A4: .4byte gUnknown_823957C
+_080347A0: .4byte gTrainerFrontPicPaletteTable
+_080347A4: .4byte gTrainerFrontPicTable
thumb_func_end sub_803477C
thumb_func_start sub_80347A8
@@ -1718,7 +1718,7 @@ CopyAllBattleSpritesInvisibilities: @ 8034B40
negs r0, r0
mov r8, r0
ldr r7, _08034BAC @ =gUnknown_2024018
- ldr r6, _08034BB0 @ =gUnknown_2023D44
+ ldr r6, _08034BB0 @ =gBattlerSpriteIds
_08034B64:
ldr r0, [r7]
ldr r0, [r0]
@@ -1756,7 +1756,7 @@ _08034B96:
_08034BA4: .4byte gBattlersCount
_08034BA8: .4byte gSprites
_08034BAC: .4byte gUnknown_2024018
-_08034BB0: .4byte gUnknown_2023D44
+_08034BB0: .4byte gBattlerSpriteIds
thumb_func_end CopyAllBattleSpritesInvisibilities
thumb_func_start CopyBattleSpriteInvisibility
@@ -1769,7 +1769,7 @@ CopyBattleSpriteInvisibility: @ 8034BB4
lsls r3, r0, 2
adds r3, r1
ldr r2, _08034BEC @ =gSprites
- ldr r1, _08034BF0 @ =gUnknown_2023D44
+ ldr r1, _08034BF0 @ =gBattlerSpriteIds
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
@@ -1790,7 +1790,7 @@ CopyBattleSpriteInvisibility: @ 8034BB4
.align 2, 0
_08034BE8: .4byte gUnknown_2024018
_08034BEC: .4byte gSprites
-_08034BF0: .4byte gUnknown_2023D44
+_08034BF0: .4byte gBattlerSpriteIds
thumb_func_end CopyBattleSpriteInvisibility
thumb_func_start sub_8034BF4
@@ -1852,7 +1852,7 @@ _08034C16:
adds r7, r0, 0
mov r1, r8
lsls r0, r1, 3
- ldr r1, _08034D60 @ =gUnknown_82350AC
+ ldr r1, _08034D60 @ =gMonFrontPicTable
adds r0, r1
ldr r4, _08034D64 @ =gMonSpritesGfxPtr
ldr r1, [r4]
@@ -1869,7 +1869,7 @@ _08034C16:
adds r0, r5
ldr r2, [r0]
ldr r5, _08034D68 @ =gSprites
- ldr r4, _08034D6C @ =gUnknown_2023D44
+ ldr r4, _08034D6C @ =gBattlerSpriteIds
add r4, r9
ldrb r1, [r4]
lsls r0, r1, 4
@@ -1961,10 +1961,10 @@ _08034C16:
.align 2, 0
_08034D58: .4byte gBattlerPartyIndexes
_08034D5C: .4byte gEnemyParty
-_08034D60: .4byte gUnknown_82350AC
+_08034D60: .4byte gMonFrontPicTable
_08034D64: .4byte gMonSpritesGfxPtr
_08034D68: .4byte gSprites
-_08034D6C: .4byte gUnknown_2023D44
+_08034D6C: .4byte gBattlerSpriteIds
_08034D70: .4byte 0x06010000
_08034D74: .4byte 0x040000d4
_08034D78: .4byte 0x84000200
@@ -1974,7 +1974,7 @@ _08034D84: .4byte gUnknown_3004FF0
_08034D88:
cmp r2, 0
beq _08034E4C
- ldr r0, _08034E28 @ =gUnknown_2023D44
+ ldr r0, _08034E28 @ =gBattlerSpriteIds
mov r3, r9
adds r5, r3, r0
ldrb r1, [r5]
@@ -2048,7 +2048,7 @@ _08034E0E:
strh r0, [r1, 0x22]
b _08035062
.align 2, 0
-_08034E28: .4byte gUnknown_2023D44
+_08034E28: .4byte gBattlerSpriteIds
_08034E2C: .4byte gSprites
_08034E30: .4byte gUnknown_2024018
_08034E34: .4byte gBattleStruct
@@ -2122,7 +2122,7 @@ _08034E90:
adds r7, r0, 0
mov r2, r8
lsls r0, r2, 3
- ldr r1, _08034F04 @ =gUnknown_823654C
+ ldr r1, _08034F04 @ =gMonBackPicTable
adds r0, r1
ldr r1, _08034F08 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -2142,7 +2142,7 @@ _08034E90:
.align 2, 0
_08034EFC: .4byte gBattlerPartyIndexes
_08034F00: .4byte gPlayerParty
-_08034F04: .4byte gUnknown_823654C
+_08034F04: .4byte gMonBackPicTable
_08034F08: .4byte gMonSpritesGfxPtr
_08034F0C: .4byte gUnknown_2024008
_08034F10:
@@ -2166,7 +2166,7 @@ _08034F10:
adds r7, r0, 0
mov r2, r8
lsls r0, r2, 3
- ldr r1, _0803507C @ =gUnknown_82350AC
+ ldr r1, _0803507C @ =gMonFrontPicTable
adds r0, r1
ldr r1, _08035080 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -2189,7 +2189,7 @@ _08034F5E:
adds r0, 0x4
adds r0, r5
ldr r2, [r0]
- ldr r0, _08035088 @ =gUnknown_2023D44
+ ldr r0, _08035088 @ =gBattlerSpriteIds
add r0, r9
str r0, [sp, 0x10]
ldrb r1, [r0]
@@ -2315,10 +2315,10 @@ _08035062:
.align 2, 0
_08035074: .4byte gBattlerPartyIndexes
_08035078: .4byte gEnemyParty
-_0803507C: .4byte gUnknown_82350AC
+_0803507C: .4byte gMonFrontPicTable
_08035080: .4byte gMonSpritesGfxPtr
_08035084: .4byte gUnknown_2024008
-_08035088: .4byte gUnknown_2023D44
+_08035088: .4byte gBattlerSpriteIds
_0803508C: .4byte gSprites
_08035090: .4byte 0x06010000
_08035094: .4byte 0x040000d4
@@ -2820,7 +2820,7 @@ _0803547C:
cmp r0, 0
beq _08035514
ldr r4, _080354E4 @ =gSprites
- ldr r0, _080354E8 @ =gUnknown_2023D44
+ ldr r0, _080354E8 @ =gBattlerSpriteIds
adds r3, r5, r0
ldrb r1, [r3]
lsls r0, r1, 4
@@ -2864,7 +2864,7 @@ _0803547C:
.align 2, 0
_080354E0: .4byte gBattlersCount
_080354E4: .4byte gSprites
-_080354E8: .4byte gUnknown_2023D44
+_080354E8: .4byte gBattlerSpriteIds
_080354EC: .4byte gUnknown_2024018
_080354F0:
ldrb r0, [r3]
@@ -3026,7 +3026,7 @@ SpriteCB_EnemyShadow: @ 8035624
ldrh r0, [r5, 0x2E]
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08035668 @ =gUnknown_2023D44
+ ldr r0, _08035668 @ =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -3051,7 +3051,7 @@ _08035660:
str r0, [r5, 0x1C]
b _080356EA
.align 2, 0
-_08035668: .4byte gUnknown_2023D44
+_08035668: .4byte gBattlerSpriteIds
_0803566C: .4byte gSprites
_08035670: .4byte SpriteCB_SetInvisible
_08035674:
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
index 8e109b6d6..393eb4ee6 100644
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -5559,7 +5559,7 @@ AddTextPrinterAndCreateWindowOnHealthbox: @ 804A648
movs r1, 0
adds r2, r6, 0
mov r3, r8
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
mov r0, r10
str r4, [r0]
adds r0, r5, 0
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 029ff9ed0..9505d542b 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -1604,7 +1604,7 @@ _080D7F9C:
ldrh r0, [r0]
_080D7FA0:
mov r1, sp
- bl sub_8099E90
+ bl CopyItemName
mov r4, sp
b _080D8382
.align 2, 0
@@ -2495,12 +2495,12 @@ _080D8698: .4byte gUnknown_83FD8A2
_080D869C:
adds r0, r2, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
b _080D86AE
_080D86A6:
adds r0, r2, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
_080D86AE:
adds r5, 0x3
_080D86B0:
@@ -2863,7 +2863,7 @@ _080D894A:
movs r3, 0x1
b _080D8960
_080D8958:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r3, r0, 24
_080D8960:
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 392161676..e48a0025e 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -471,10 +471,10 @@ _080CD604: .4byte 0x81000800
thumb_func_start sub_80CD608
sub_80CD608: @ 80CD608
push {lr}
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
- bl dp13_810BB8C
+ bl ResetAllPicSprites
bl ResetPaletteFade
bl FreeAllSpritePalettes
pop {r0}
@@ -925,7 +925,7 @@ _080CD94C: .4byte 0x0000270f
sub_80CD950: @ 80CD950
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CD964 @ =gUnknown_2023E8A
+ ldr r0, _080CD964 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _080CD968
@@ -933,7 +933,7 @@ sub_80CD950: @ 80CD950
beq _080CD976
b _080CD984
.align 2, 0
-_080CD964: .4byte gUnknown_2023E8A
+_080CD964: .4byte gBattleOutcome
_080CD968:
eors r0, r4
bl sub_80CD8F8
@@ -978,7 +978,7 @@ sub_80CD98C: @ 80CD98C
subs r3, 0x30
adds r2, r3
ldrh r2, [r2, 0xE]
- ldr r3, _080CD9EC @ =gUnknown_2023E8A
+ ldr r3, _080CD9EC @ =gBattleOutcome
ldrb r3, [r3]
ldr r5, _080CD9F0 @ =gLinkPlayers
lsls r4, r6, 3
@@ -998,7 +998,7 @@ _080CD9DC: .4byte gSaveBlock1Ptr
_080CD9E0: .4byte gSaveBlock2Ptr
_080CD9E4: .4byte 0x00000a98
_080CD9E8: .4byte gUnknown_2039654
-_080CD9EC: .4byte gUnknown_2023E8A
+_080CD9EC: .4byte gBattleOutcome
_080CD9F0: .4byte gLinkPlayers
thumb_func_end sub_80CD98C
@@ -1092,7 +1092,7 @@ _080CDA72:
movs r1, 0x2
movs r2, 0xC
movs r3, 0x18
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0x14
pop {r4-r7}
pop {r0}
@@ -1138,7 +1138,7 @@ sub_80CDAD0: @ 80CDAD0
movs r1, 0x2
movs r2, 0
mov r3, r8
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
movs r6, 0
_080CDB0E:
movs r4, 0x54
@@ -1161,7 +1161,7 @@ _080CDB1C:
movs r0, 0
movs r1, 0x2
mov r3, r8
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -1230,7 +1230,7 @@ _080CDBA6:
movs r0, 0
movs r1, 0x2
mov r3, r8
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -1291,7 +1291,7 @@ sub_80CDBE4: @ 80CDBE4
movs r0, 0
movs r1, 0x2
movs r3, 0x4
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r5, _080CDCA8 @ =gSaveBlock2Ptr
ldr r0, [r5]
ldr r1, _080CDCAC @ =0x00000a98
@@ -1309,7 +1309,7 @@ sub_80CDBE4: @ 80CDBE4
movs r1, 0x2
movs r2, 0x54
movs r3, 0x30
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
adds r7, r5, 0
movs r5, 0xF4
lsls r5, 22
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index ed0e6cb50..60b06f8a6 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -12,7 +12,7 @@ atk00_attackcanceler: @ 801D760
mov r6, r8
push {r6,r7}
sub sp, 0x4
- ldr r0, _0801D77C @ =gUnknown_2023E8A
+ ldr r0, _0801D77C @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0
beq _0801D784
@@ -21,7 +21,7 @@ atk00_attackcanceler: @ 801D760
strb r0, [r1]
b _0801DAFC
.align 2, 0
-_0801D77C: .4byte gUnknown_2023E8A
+_0801D77C: .4byte gBattleOutcome
_0801D780: .4byte gUnknown_2023BE3
_0801D784:
ldr r2, _0801D7B4 @ =gBattleMons
@@ -9519,7 +9519,7 @@ _0802243C:
ble _0802240C
cmp r6, 0
bne _08022450
- ldr r0, _0802253C @ =gUnknown_2023E8A
+ ldr r0, _0802253C @ =gBattleOutcome
ldrb r1, [r0]
movs r2, 0x2
orrs r1, r2
@@ -9553,7 +9553,7 @@ _08022484:
adds r5, 0x1
cmp r5, 0x5
ble _08022454
- ldr r2, _0802253C @ =gUnknown_2023E8A
+ ldr r2, _0802253C @ =gBattleOutcome
cmp r6, 0
bne _08022498
ldrb r0, [r2]
@@ -9647,7 +9647,7 @@ _0802251E:
.align 2, 0
_08022534: .4byte gUnknown_2023BC8
_08022538: .4byte gPlayerParty
-_0802253C: .4byte gUnknown_2023E8A
+_0802253C: .4byte gBattleOutcome
_08022540: .4byte gEnemyParty
_08022544: .4byte gBattleTypeFlags
_08022548: .4byte gBattlersCount
@@ -15311,7 +15311,7 @@ atk57: @ 80251C4
bl GetBattlerAtPosition
ldr r4, _080251F0 @ =gActiveBattler
strb r0, [r4]
- ldr r0, _080251F4 @ =gUnknown_2023E8A
+ ldr r0, _080251F4 @ =gBattleOutcome
ldrb r1, [r0]
movs r0, 0
bl EmitCmd55
@@ -15326,7 +15326,7 @@ atk57: @ 80251C4
bx r0
.align 2, 0
_080251F0: .4byte gActiveBattler
-_080251F4: .4byte gUnknown_2023E8A
+_080251F4: .4byte gBattleOutcome
_080251F8: .4byte gUnknown_2023D74
thumb_func_end atk57
@@ -16141,7 +16141,7 @@ sub_80258AC: @ 80258AC
push {r7}
movs r6, 0
movs r5, 0
- ldr r0, _080258F0 @ =gUnknown_2023E8A
+ ldr r0, _080258F0 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _080258C0
@@ -16171,7 +16171,7 @@ _080258C0:
mov r8, r0
b _080259E8
.align 2, 0
-_080258F0: .4byte gUnknown_2023E8A
+_080258F0: .4byte gBattleOutcome
_080258F4: .4byte gTrainerBattleOpponent_A
_080258F8: .4byte gBattleResources
_080258FC: .4byte gBattleStruct
@@ -17358,7 +17358,7 @@ _08026244:
.4byte _08026380
.4byte _080263C4
_0802626C:
- ldr r1, _08026290 @ =gUnknown_202297E
+ ldr r1, _08026290 @ =gBattle_BG2_Y
movs r0, 0x60
strh r0, [r1]
movs r0, 0x2
@@ -17373,7 +17373,7 @@ _0802626C:
strb r0, [r1, 0x1E]
b _080263F6
.align 2, 0
-_08026290: .4byte gUnknown_202297E
+_08026290: .4byte gBattle_BG2_Y
_08026294: .4byte gBattleScripting
_08026298:
bl sub_80264D0
@@ -17389,10 +17389,10 @@ _080262A4:
.align 2, 0
_080262AC: .4byte gBattleScripting
_080262B0:
- ldr r1, _080262F8 @ =gUnknown_2022978
+ ldr r1, _080262F8 @ =gBattle_BG1_X
movs r0, 0
strh r0, [r1]
- ldr r1, _080262FC @ =gUnknown_202297A
+ ldr r1, _080262FC @ =gBattle_BG1_Y
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
@@ -17421,8 +17421,8 @@ _080262B0:
strb r0, [r1, 0x1E]
b _080263F6
.align 2, 0
-_080262F8: .4byte gUnknown_2022978
-_080262FC: .4byte gUnknown_202297A
+_080262F8: .4byte gBattle_BG1_X
+_080262FC: .4byte gBattle_BG1_Y
_08026300: .4byte gBattleScripting
_08026304:
bl sub_8026404
@@ -17438,11 +17438,11 @@ _08026318:
lsrs r1, r0, 24
cmp r1, 0
bne _080263F6
- ldr r0, _0802632C @ =gUnknown_202297A
+ ldr r0, _0802632C @ =gBattle_BG1_Y
strh r1, [r0]
b _0802636E
.align 2, 0
-_0802632C: .4byte gUnknown_202297A
+_0802632C: .4byte gBattle_BG1_Y
_08026330:
ldr r0, _0802634C @ =gMain
ldrh r0, [r0, 0x2E]
@@ -17601,10 +17601,10 @@ _0802647C: .4byte gPlayerParty
thumb_func_start sub_8026480
sub_8026480: @ 8026480
push {lr}
- ldr r1, _080264C0 @ =gUnknown_202297E
+ ldr r1, _080264C0 @ =gBattle_BG2_Y
movs r0, 0
strh r0, [r1]
- ldr r1, _080264C4 @ =gUnknown_202297C
+ ldr r1, _080264C4 @ =gBattle_BG2_X
movs r2, 0xD0
lsls r2, 1
adds r0, r2, 0
@@ -17627,8 +17627,8 @@ sub_8026480: @ 8026480
pop {r0}
bx r0
.align 2, 0
-_080264C0: .4byte gUnknown_202297E
-_080264C4: .4byte gUnknown_202297C
+_080264C0: .4byte gBattle_BG2_Y
+_080264C4: .4byte gBattle_BG2_X
_080264C8: .4byte gUnknown_82506D0
_080264CC: .4byte gUnknown_82506F0
thumb_func_end sub_8026480
@@ -17643,7 +17643,7 @@ sub_80264D0: @ 80264D0
movs r0, 0x1
b _0802651A
_080264E0:
- ldr r4, _080264F0 @ =gUnknown_202297C
+ ldr r4, _080264F0 @ =gBattle_BG2_X
ldrh r1, [r4]
movs r5, 0x80
lsls r5, 2
@@ -17652,7 +17652,7 @@ _080264E0:
movs r0, 0
b _0802651A
.align 2, 0
-_080264F0: .4byte gUnknown_202297C
+_080264F0: .4byte gBattle_BG2_X
_080264F4:
movs r0, 0xD0
lsls r0, 1
@@ -17823,7 +17823,7 @@ _08026624:
thumb_func_start sub_8026648
sub_8026648: @ 8026648
push {lr}
- ldr r0, _0802665C @ =gUnknown_202297C
+ ldr r0, _0802665C @ =gBattle_BG2_X
ldrh r1, [r0]
movs r3, 0xD0
lsls r3, 1
@@ -17833,7 +17833,7 @@ sub_8026648: @ 8026648
movs r0, 0
b _08026684
.align 2, 0
-_0802665C: .4byte gUnknown_202297C
+_0802665C: .4byte gBattle_BG2_X
_08026660:
ldrh r0, [r2]
adds r1, r0, 0
@@ -17930,7 +17930,7 @@ PutMonIconOnLvlUpBox: @ 8026688
adds r1, r2
movs r0, 0
strh r0, [r1, 0x2E]
- ldr r0, _08026750 @ =gUnknown_202297C
+ ldr r0, _08026750 @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r1, 0x30]
add sp, 0x10
@@ -17948,14 +17948,14 @@ _08026740: .4byte 0xd75a0000
_08026744: .4byte 0x0000d75a
_08026748: .4byte gUnknown_82507C8
_0802674C: .4byte gSprites
-_08026750: .4byte gUnknown_202297C
+_08026750: .4byte gBattle_BG2_X
thumb_func_end PutMonIconOnLvlUpBox
thumb_func_start SpriteCB_MonIconOnLvlUpBox
SpriteCB_MonIconOnLvlUpBox: @ 8026754
push {r4,lr}
adds r2, r0, 0
- ldr r0, _08026770 @ =gUnknown_202297C
+ ldr r0, _08026770 @ =gBattle_BG2_X
ldrh r1, [r2, 0x30]
ldrh r0, [r0]
subs r1, r0
@@ -17967,7 +17967,7 @@ SpriteCB_MonIconOnLvlUpBox: @ 8026754
strh r0, [r2, 0x2E]
b _08026790
.align 2, 0
-_08026770: .4byte gUnknown_202297C
+_08026770: .4byte gBattle_BG2_X
_08026774:
movs r1, 0x2E
ldrsh r0, [r2, r1]
@@ -32507,14 +32507,14 @@ _0802DAC4: .4byte sub_80116F4
_0802DAC8:
bl sub_800F34C
bl LoadBattleTextboxAndBackground
- ldr r1, _0802DADC @ =gUnknown_2022980
+ ldr r1, _0802DADC @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
b _0802DB34
.align 2, 0
-_0802DADC: .4byte gUnknown_2022980
+_0802DADC: .4byte gBattle_BG3_X
_0802DAE0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
@@ -32536,7 +32536,7 @@ _0802DAE0:
str r0, [sp, 0xC]
adds r0, r5, 0
movs r3, 0x1
- bl sub_810C1CC
+ bl CreateMonPicSprite_HandleDeoxys
str r4, [sp, 0x14]
add r0, sp, 0x14
ldr r1, _0802DB48 @ =gPlttBufferFaded
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 499d565f0..146e4a3c9 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -42,7 +42,7 @@ _0807F65E:
cmp r0, 0x1
bne _0807F686
bl sub_812B484
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0807F68C @ =sub_800FD9C
bl SetMainCallback2
bl sub_806D7E8
@@ -104,7 +104,7 @@ sub_807F6CC: @ 807F6CC
bhi _0807F6FC
ldr r0, _0807F6F8 @ =0x00000167
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
bne _0807F6FC
@@ -318,8 +318,8 @@ _0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0807F8C0: .4byte gBattleTypeFlags
thumb_func_end sub_807F888
- thumb_func_start sub_807F8C4
-sub_807F8C4: @ 807F8C4
+ thumb_func_start BattleSetup_StartScriptedWildBattle
+BattleSetup_StartScriptedWildBattle: @ 807F8C4
push {lr}
bl ScriptContext2_Enable
ldr r1, _0807F8F8 @ =gMain
@@ -344,7 +344,7 @@ sub_807F8C4: @ 807F8C4
_0807F8F8: .4byte gMain
_0807F8FC: .4byte sub_807FBA0
_0807F900: .4byte gBattleTypeFlags
- thumb_func_end sub_807F8C4
+ thumb_func_end BattleSetup_StartScriptedWildBattle
thumb_func_start sub_807F904
sub_807F904: @ 807F904
@@ -356,7 +356,7 @@ sub_807F904: @ 807F904
str r0, [r1, 0x8]
ldr r0, _0807F94C @ =0x00000167
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
cmp r0, 0
beq _0807F958
@@ -623,7 +623,7 @@ sub_807FB40: @ 807FB40
movs r0, 0
movs r1, 0x80
bl ResetOamRange
- ldr r0, _0807FB78 @ =gUnknown_2023E8A
+ ldr r0, _0807FB78 @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -633,12 +633,12 @@ sub_807FB40: @ 807FB40
b _0807FB8C
.align 2, 0
_0807FB74: .4byte 0x01000100
-_0807FB78: .4byte gUnknown_2023E8A
+_0807FB78: .4byte gBattleOutcome
_0807FB7C: .4byte c2_whiteout
_0807FB80:
- ldr r0, _0807FB94 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _0807FB94 @ =CB2_ReturnToField
bl SetMainCallback2
- ldr r1, _0807FB98 @ =gUnknown_3005020
+ ldr r1, _0807FB98 @ =gFieldCallback
ldr r0, _0807FB9C @ =sub_807E3EC
str r0, [r1]
_0807FB8C:
@@ -646,8 +646,8 @@ _0807FB8C:
pop {r0}
bx r0
.align 2, 0
-_0807FB94: .4byte c2_exit_to_overworld_2_switch
-_0807FB98: .4byte gUnknown_3005020
+_0807FB94: .4byte CB2_ReturnToField
+_0807FB98: .4byte gFieldCallback
_0807FB9C: .4byte sub_807E3EC
thumb_func_end sub_807FB40
@@ -666,7 +666,7 @@ sub_807FBA0: @ 807FBA0
movs r0, 0
movs r1, 0x80
bl ResetOamRange
- ldr r0, _0807FBD8 @ =gUnknown_2023E8A
+ ldr r0, _0807FBD8 @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -676,7 +676,7 @@ sub_807FBA0: @ 807FBA0
b _0807FBE6
.align 2, 0
_0807FBD4: .4byte 0x01000100
-_0807FBD8: .4byte gUnknown_2023E8A
+_0807FBD8: .4byte gBattleOutcome
_0807FBDC: .4byte c2_whiteout
_0807FBE0:
ldr r0, _0807FBEC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
@@ -704,7 +704,7 @@ sub_807FBF0: @ 807FBF0
movs r0, 0
movs r1, 0x80
bl ResetOamRange
- ldr r4, _0807FC28 @ =gUnknown_2023E8A
+ ldr r4, _0807FC28 @ =gBattleOutcome
ldrb r0, [r4]
bl IsPlayerDefeated
adds r1, r0, 0
@@ -715,7 +715,7 @@ sub_807FBF0: @ 807FBF0
b _0807FC4C
.align 2, 0
_0807FC24: .4byte 0x01000100
-_0807FC28: .4byte gUnknown_2023E8A
+_0807FC28: .4byte gBattleOutcome
_0807FC2C: .4byte c2_whiteout
_0807FC30:
ldrb r0, [r4]
@@ -1512,7 +1512,7 @@ battle_80801F0: @ 80801F0
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
bl GetFieldObjectIdByLocalIdAndMap
- ldr r1, _08080224 @ =gUnknown_3005074
+ ldr r1, _08080224 @ =gSelectedEventObject
strb r0, [r1]
_08080212:
pop {r0}
@@ -1521,11 +1521,11 @@ _08080212:
_08080218: .4byte gUnknown_20386B0
_0808021C: .4byte gSpecialVar_LastTalked
_08080220: .4byte gSaveBlock1Ptr
-_08080224: .4byte gUnknown_3005074
+_08080224: .4byte gSelectedEventObject
thumb_func_end battle_80801F0
- thumb_func_start sub_8080228
-sub_8080228: @ 8080228
+ thumb_func_start BattleSetup_ConfigureTrainerBattle
+BattleSetup_ConfigureTrainerBattle: @ 8080228
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8080110
@@ -1640,14 +1640,14 @@ _08080326:
.align 2, 0
_0808032C: .4byte gUnknown_83C6900
_08080330: .4byte gUnknown_81A4EC1
- thumb_func_end sub_8080228
+ thumb_func_end BattleSetup_ConfigureTrainerBattle
thumb_func_start TrainerWantsBattle
TrainerWantsBattle: @ 8080334
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _08080368 @ =gUnknown_3005074
+ ldr r2, _08080368 @ =gSelectedEventObject
strb r0, [r2]
ldr r4, _0808036C @ =gSpecialVar_LastTalked
ldr r3, _08080370 @ =gMapObjects
@@ -1659,7 +1659,7 @@ TrainerWantsBattle: @ 8080334
strh r0, [r4]
adds r1, 0x1
adds r0, r1, 0
- bl sub_8080228
+ bl BattleSetup_ConfigureTrainerBattle
ldr r0, _08080374 @ =gUnknown_81A4EB4
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
@@ -1667,7 +1667,7 @@ TrainerWantsBattle: @ 8080334
pop {r0}
bx r0
.align 2, 0
-_08080368: .4byte gUnknown_3005074
+_08080368: .4byte gSelectedEventObject
_0808036C: .4byte gSpecialVar_LastTalked
_08080370: .4byte gMapObjects
_08080374: .4byte gUnknown_81A4EB4
@@ -1693,7 +1693,7 @@ GetTrainerFlagFromScriptPointer: @ 8080378
thumb_func_start sub_8080398
sub_8080398: @ 8080398
push {r4,lr}
- ldr r0, _080803C4 @ =gUnknown_3005074
+ ldr r0, _080803C4 @ =gSelectedEventObject
ldrb r0, [r0]
lsls r4, r0, 3
adds r4, r0
@@ -1713,7 +1713,7 @@ sub_8080398: @ 8080398
pop {r0}
bx r0
.align 2, 0
-_080803C4: .4byte gUnknown_3005074
+_080803C4: .4byte gSelectedEventObject
_080803C8: .4byte gMapObjects
thumb_func_end sub_8080398
@@ -1785,8 +1785,8 @@ HasTrainerAlreadyBeenFought: @ 8080424
bx r1
thumb_func_end HasTrainerAlreadyBeenFought
- thumb_func_start trainer_flag_set
-trainer_flag_set: @ 808043C
+ thumb_func_start SetTrainerFlag
+SetTrainerFlag: @ 808043C
push {lr}
lsls r0, 16
movs r1, 0xA0
@@ -1796,10 +1796,10 @@ trainer_flag_set: @ 808043C
bl FlagSet
pop {r0}
bx r0
- thumb_func_end trainer_flag_set
+ thumb_func_end SetTrainerFlag
- thumb_func_start trainer_flag_clear
-trainer_flag_clear: @ 8080450
+ thumb_func_start ClearTrainerFlag
+ClearTrainerFlag: @ 8080450
push {lr}
lsls r0, 16
movs r1, 0xA0
@@ -1809,10 +1809,10 @@ trainer_flag_clear: @ 8080450
bl FlagClear
pop {r0}
bx r0
- thumb_func_end trainer_flag_clear
+ thumb_func_end ClearTrainerFlag
- thumb_func_start sub_8080464
-sub_8080464: @ 8080464
+ thumb_func_start BattleSetup_StartTrainerBattle
+BattleSetup_StartTrainerBattle: @ 8080464
push {r4,lr}
ldr r4, _080804A0 @ =gBattleTypeFlags
movs r0, 0x8
@@ -1844,7 +1844,7 @@ _0808048C:
_080804A0: .4byte gBattleTypeFlags
_080804A4: .4byte gMain
_080804A8: .4byte sub_80804AC
- thumb_func_end sub_8080464
+ thumb_func_end BattleSetup_StartTrainerBattle
thumb_func_start sub_80804AC
sub_80804AC: @ 80804AC
@@ -1853,7 +1853,7 @@ sub_80804AC: @ 80804AC
ldrh r0, [r0]
cmp r0, 0x9
bne _08080508
- ldr r0, _080804DC @ =gUnknown_2023E8A
+ ldr r0, _080804DC @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
adds r1, r0, 0
@@ -1870,7 +1870,7 @@ sub_80804AC: @ 80804AC
b _080804EE
.align 2, 0
_080804D8: .4byte gUnknown_20386AC
-_080804DC: .4byte gUnknown_2023E8A
+_080804DC: .4byte gBattleOutcome
_080804E0: .4byte gSpecialVar_Result
_080804E4: .4byte gUnknown_20386CC
_080804E8:
@@ -1900,7 +1900,7 @@ _08080508:
_0808051C: .4byte gTrainerBattleOpponent_A
_08080520: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080524:
- ldr r0, _08080538 @ =gUnknown_2023E8A
+ ldr r0, _08080538 @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -1910,7 +1910,7 @@ _08080530:
bl SetMainCallback2
b _0808054E
.align 2, 0
-_08080538: .4byte gUnknown_2023E8A
+_08080538: .4byte gBattleOutcome
_0808053C: .4byte c2_whiteout
_08080540:
ldr r0, _08080554 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
@@ -1940,7 +1940,7 @@ sub_8080558: @ 8080558
_08080570: .4byte gTrainerBattleOpponent_A
_08080574: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080578:
- ldr r0, _0808058C @ =gUnknown_2023E8A
+ ldr r0, _0808058C @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -1949,7 +1949,7 @@ _08080578:
bl SetMainCallback2
b _080805A6
.align 2, 0
-_0808058C: .4byte gUnknown_2023E8A
+_0808058C: .4byte gBattleOutcome
_08080590: .4byte c2_whiteout
_08080594:
ldr r0, _080805AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
@@ -1992,8 +1992,8 @@ sub_80805D8: @ 80805D8
bx r0
thumb_func_end sub_80805D8
- thumb_func_start sub_80805E8
-sub_80805E8: @ 80805E8
+ thumb_func_start BattleSetup_GetScriptAddrAfterBattle
+BattleSetup_GetScriptAddrAfterBattle: @ 80805E8
push {lr}
ldr r0, _080805F8 @ =gUnknown_20386C4
ldr r0, [r0]
@@ -2006,10 +2006,10 @@ _080805F4:
.align 2, 0
_080805F8: .4byte gUnknown_20386C4
_080805FC: .4byte gUnknown_81C555B
- thumb_func_end sub_80805E8
+ thumb_func_end BattleSetup_GetScriptAddrAfterBattle
- thumb_func_start sub_8080600
-sub_8080600: @ 8080600
+ thumb_func_start BattleSetup_GetTrainerPostBattleScript
+BattleSetup_GetTrainerPostBattleScript: @ 8080600
push {lr}
ldr r0, _08080610 @ =gUnknown_20386C8
ldr r0, [r0]
@@ -2022,7 +2022,7 @@ _0808060C:
.align 2, 0
_08080610: .4byte gUnknown_20386C8
_08080614: .4byte gUnknown_81C555B
- thumb_func_end sub_8080600
+ thumb_func_end BattleSetup_GetTrainerPostBattleScript
thumb_func_start sub_8080618
sub_8080618: @ 8080618
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 82922b88f..503a6343e 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -2033,7 +2033,7 @@ sub_80E68C4: @ 80E68C4
ldr r0, _080E68F4 @ =gMain
ldr r1, _080E68F8 @ =sub_80E6854
str r1, [r0, 0x8]
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _080E68FC @ =sub_800FD9C
bl SetMainCallback2
adds r0, r4, 0
@@ -2894,7 +2894,7 @@ _080E6FF2:
bl sub_80E712C
ldr r4, _080E703C @ =gSaveBlock2Ptr
ldr r0, [r4]
- ldr r1, _080E704C @ =gUnknown_2023E8A
+ ldr r1, _080E704C @ =gBattleOutcome
ldrb r1, [r1]
ldr r2, _080E7050 @ =0x0000055d
adds r0, r2
@@ -2930,7 +2930,7 @@ _080E703C: .4byte gSaveBlock2Ptr
_080E7040: .4byte 0x0000055c
_080E7044: .4byte gSpecialVar_0x8004
_080E7048: .4byte 0x00000564
-_080E704C: .4byte gUnknown_2023E8A
+_080E704C: .4byte gBattleOutcome
_080E7050: .4byte 0x0000055d
_080E7054: .4byte 0x0000055e
thumb_func_end sub_80E6FB8
@@ -3218,7 +3218,7 @@ sub_80E724C: @ 80E724C
adds r1, r0
ldrh r0, [r1]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
@@ -3229,7 +3229,7 @@ sub_80E724C: @ 80E724C
adds r0, r1
ldrh r0, [r0]
ldr r1, _080E7290 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _080E7294 @ =gSpecialVar_Result
strh r4, [r0]
b _080E72AA
@@ -3612,7 +3612,7 @@ _080E754C: .4byte gSaveBlock2Ptr
thumb_func_start sub_80E7550
sub_80E7550: @ 80E7550
push {lr}
- ldr r0, _080E7564 @ =gUnknown_2023E8A
+ ldr r0, _080E7564 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x3
bne _080E756C
@@ -3621,7 +3621,7 @@ sub_80E7550: @ 80E7550
strb r0, [r1]
b _080E7590
.align 2, 0
-_080E7564: .4byte gUnknown_2023E8A
+_080E7564: .4byte gBattleOutcome
_080E7568: .4byte gStringVar4
_080E756C:
cmp r0, 0x1
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index ae1c7fa08..cf761a220 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -463,7 +463,7 @@ sub_80D0C0C: @ 80D0C0C
sub sp, 0x8
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r0, 0x1
negs r0, r0
movs r4, 0
@@ -472,7 +472,7 @@ sub_80D0C0C: @ 80D0C0C
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _080D0C68 @ =gUnknown_2038E80
+ ldr r0, _080D0C68 @ =gScanlineEffectRegBuffers + 0x780
ldr r1, _080D0C6C @ =gUnknown_2039A2C
ldr r1, [r1]
movs r2, 0x14
@@ -498,7 +498,7 @@ sub_80D0C0C: @ 80D0C0C
pop {r1}
bx r1
.align 2, 0
-_080D0C68: .4byte gUnknown_2038E80
+_080D0C68: .4byte gScanlineEffectRegBuffers + 0x780
_080D0C6C: .4byte gUnknown_2039A2C
_080D0C70: .4byte sub_80D0CF0
_080D0C74: .4byte sub_80D0D28
@@ -519,7 +519,7 @@ sub_80D0C78: @ 80D0C78
ldrh r1, [r0, 0xC]
adds r1, 0x8
strh r1, [r0, 0xC]
- ldr r3, _080D0CE4 @ =gUnknown_2038700
+ ldr r3, _080D0CE4 @ =gScanlineEffectRegBuffers
ldr r1, [r4]
movs r2, 0x14
ldrsh r1, [r1, r2]
@@ -557,7 +557,7 @@ _080D0CCA:
bx r1
.align 2, 0
_080D0CE0: .4byte gUnknown_2039A2C
-_080D0CE4: .4byte gUnknown_2038700
+_080D0CE4: .4byte gScanlineEffectRegBuffers
_080D0CE8: .4byte gPaletteFade
_080D0CEC: .4byte sub_80D0BD4
thumb_func_end sub_80D0C78
@@ -572,7 +572,7 @@ sub_80D0CF0: @ 80D0CF0
cmp r0, 0
beq _080D0D14
ldr r1, _080D0D1C @ =0x040000d4
- ldr r0, _080D0D20 @ =gUnknown_2038700
+ ldr r0, _080D0D20 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -587,13 +587,13 @@ _080D0D14:
.align 2, 0
_080D0D18: .4byte gUnknown_2039A2C
_080D0D1C: .4byte 0x040000d4
-_080D0D20: .4byte gUnknown_2038700
+_080D0D20: .4byte gScanlineEffectRegBuffers
_080D0D24: .4byte 0x800000a0
thumb_func_end sub_80D0CF0
thumb_func_start sub_80D0D28
sub_80D0D28: @ 80D0D28
- ldr r1, _080D0D48 @ =gUnknown_2038700
+ ldr r1, _080D0D48 @ =gScanlineEffectRegBuffers
ldr r0, _080D0D4C @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -610,7 +610,7 @@ sub_80D0D28: @ 80D0D28
strh r1, [r0]
bx lr
.align 2, 0
-_080D0D48: .4byte gUnknown_2038700
+_080D0D48: .4byte gScanlineEffectRegBuffers
_080D0D4C: .4byte 0x04000006
_080D0D50: .4byte 0x04000014
thumb_func_end sub_80D0D28
@@ -651,7 +651,7 @@ sub_80D0D8C: @ 80D0D8C
sub sp, 0x4
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r0, 0x1
negs r0, r0
movs r1, 0
@@ -662,7 +662,7 @@ sub_80D0D8C: @ 80D0D8C
bl BeginNormalPaletteFade
ldr r0, _080D0DE0 @ =gUnknown_2039A2C
ldr r1, [r0]
- ldr r0, _080D0DE4 @ =gUnknown_2038E80
+ ldr r0, _080D0DE4 @ =gScanlineEffectRegBuffers + 0x780
movs r2, 0x16
ldrsh r1, [r1, r2]
movs r2, 0xA0
@@ -684,7 +684,7 @@ sub_80D0D8C: @ 80D0D8C
bx r1
.align 2, 0
_080D0DE0: .4byte gUnknown_2039A2C
-_080D0DE4: .4byte gUnknown_2038E80
+_080D0DE4: .4byte gScanlineEffectRegBuffers + 0x780
_080D0DE8: .4byte sub_80D0E80
_080D0DEC: .4byte sub_80D0EB8
thumb_func_end sub_80D0D8C
@@ -715,7 +715,7 @@ _080D0E18:
lsrs r0, r4, 8
asrs r1, r7, 16
bl Sin
- ldr r1, _080D0E74 @ =gUnknown_2038700
+ ldr r1, _080D0E74 @ =gScanlineEffectRegBuffers
lsls r2, r5, 1
adds r2, r1
ldr r6, _080D0E70 @ =gUnknown_2039A2C
@@ -756,7 +756,7 @@ _080D0E5E:
bx r1
.align 2, 0
_080D0E70: .4byte gUnknown_2039A2C
-_080D0E74: .4byte gUnknown_2038700
+_080D0E74: .4byte gScanlineEffectRegBuffers
_080D0E78: .4byte gPaletteFade
_080D0E7C: .4byte sub_80D0D54
thumb_func_end sub_80D0DF0
@@ -771,7 +771,7 @@ sub_80D0E80: @ 80D0E80
cmp r0, 0
beq _080D0EA4
ldr r1, _080D0EAC @ =0x040000d4
- ldr r0, _080D0EB0 @ =gUnknown_2038700
+ ldr r0, _080D0EB0 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -786,13 +786,13 @@ _080D0EA4:
.align 2, 0
_080D0EA8: .4byte gUnknown_2039A2C
_080D0EAC: .4byte 0x040000d4
-_080D0EB0: .4byte gUnknown_2038700
+_080D0EB0: .4byte gScanlineEffectRegBuffers
_080D0EB4: .4byte 0x800000a0
thumb_func_end sub_80D0E80
thumb_func_start sub_80D0EB8
sub_80D0EB8: @ 80D0EB8
- ldr r1, _080D0ED8 @ =gUnknown_2038700
+ ldr r1, _080D0ED8 @ =gScanlineEffectRegBuffers
ldr r0, _080D0EDC @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -809,7 +809,7 @@ sub_80D0EB8: @ 80D0EB8
strh r1, [r0]
bx lr
.align 2, 0
-_080D0ED8: .4byte gUnknown_2038700
+_080D0ED8: .4byte gScanlineEffectRegBuffers
_080D0EDC: .4byte 0x04000006
_080D0EE0: .4byte 0x04000016
thumb_func_end sub_80D0EB8
@@ -850,7 +850,7 @@ sub_80D0F1C: @ 80D0F1C
sub sp, 0xC
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r1, 0
movs r0, 0x10
strh r0, [r4, 0xA]
@@ -878,7 +878,7 @@ sub_80D0F1C: @ 80D0F1C
movs r1, 0
add r5, sp, 0x4
add r6, sp, 0x8
- ldr r3, _080D0FC0 @ =gUnknown_2038E80
+ ldr r3, _080D0FC0 @ =gScanlineEffectRegBuffers + 0x780
movs r2, 0xF0
_080D0F64:
lsls r0, r1, 1
@@ -921,7 +921,7 @@ _080D0F64:
.align 2, 0
_080D0FB8: .4byte gUnknown_2039A2C
_080D0FBC: .4byte 0x00003f41
-_080D0FC0: .4byte gUnknown_2038E80
+_080D0FC0: .4byte gScanlineEffectRegBuffers + 0x780
_080D0FC4: .4byte sub_80D1370
_080D0FC8: .4byte 0x01000400
_080D0FCC: .4byte gUnknown_83F87A0
@@ -943,7 +943,7 @@ sub_80D0FD4: @ 80D0FD4
movs r1, 0
ldr r0, [sp, 0x8]
mov r9, r0
- ldr r6, _080D1060 @ =gUnknown_2038700
+ ldr r6, _080D1060 @ =gScanlineEffectRegBuffers
mov r8, r6
movs r0, 0xF0
lsls r0, 8
@@ -1000,7 +1000,7 @@ _080D1000:
bx r1
.align 2, 0
_080D105C: .4byte gUnknown_83FA784
-_080D1060: .4byte gUnknown_2038700
+_080D1060: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D0FD4
thumb_func_start sub_80D1064
@@ -1053,7 +1053,7 @@ _080D10AE:
ldrh r5, [r3, 0x12]
adds r1, r5
strh r1, [r3, 0x12]
- ldr r0, _080D10F4 @ =gUnknown_2038700
+ ldr r0, _080D10F4 @ =gScanlineEffectRegBuffers
movs r5, 0x10
ldrsh r2, [r3, r5]
lsls r1, 16
@@ -1077,7 +1077,7 @@ _080D10AE:
.align 2, 0
_080D10EC: .4byte gUnknown_2039A2C
_080D10F0: .4byte 0xfffffe80
-_080D10F4: .4byte gUnknown_2038700
+_080D10F4: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D1064
thumb_func_start sub_80D10F8
@@ -1139,7 +1139,7 @@ _080D1160:
movs r0, 0
_080D1162:
strh r0, [r3, 0x12]
- ldr r0, _080D1194 @ =gUnknown_2038700
+ ldr r0, _080D1194 @ =gScanlineEffectRegBuffers
movs r1, 0x10
ldrsh r2, [r3, r1]
ldrh r1, [r3, 0x12]
@@ -1163,7 +1163,7 @@ _080D1162:
pop {r1}
bx r1
.align 2, 0
-_080D1194: .4byte gUnknown_2038700
+_080D1194: .4byte gScanlineEffectRegBuffers
_080D1198: .4byte gUnknown_2039A2C
thumb_func_end sub_80D10F8
@@ -1195,7 +1195,7 @@ _080D11C8: .4byte 0xfffffe80
_080D11CC:
strh r2, [r4, 0x12]
_080D11CE:
- ldr r0, _080D1218 @ =gUnknown_2038700
+ ldr r0, _080D1218 @ =gScanlineEffectRegBuffers
movs r3, 0x10
ldrsh r2, [r4, r3]
ldrh r1, [r4, 0x12]
@@ -1233,7 +1233,7 @@ _080D1202:
pop {r1}
bx r1
.align 2, 0
-_080D1218: .4byte gUnknown_2038700
+_080D1218: .4byte gScanlineEffectRegBuffers
_080D121C: .4byte gUnknown_2039A2C
thumb_func_end sub_80D119C
@@ -1272,7 +1272,7 @@ _080D1242:
bge _080D125E
strh r3, [r4, 0xA]
_080D125E:
- ldr r0, _080D12CC @ =gUnknown_2038700
+ ldr r0, _080D12CC @ =gScanlineEffectRegBuffers
movs r1, 0xA
ldrsh r3, [r4, r1]
movs r1, 0x78
@@ -1322,7 +1322,7 @@ _080D12AE:
.align 2, 0
_080D12C4: .4byte gUnknown_2039A2C
_080D12C8: .4byte 0x000007ff
-_080D12CC: .4byte gUnknown_2038700
+_080D12CC: .4byte gScanlineEffectRegBuffers
_080D12D0: .4byte 0x040000b0
_080D12D4: .4byte 0x0000c5ff
_080D12D8: .4byte 0x00007fff
@@ -1350,7 +1350,7 @@ sub_80D12E4: @ 80D12E4
cmp r0, 0
beq _080D131C
ldr r1, _080D1364 @ =0x040000d4
- ldr r0, _080D1368 @ =gUnknown_2038700
+ ldr r0, _080D1368 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -1389,7 +1389,7 @@ _080D1358: .4byte 0x0000c5ff
_080D135C: .4byte 0x00007fff
_080D1360: .4byte gUnknown_2039A2C
_080D1364: .4byte 0x040000d4
-_080D1368: .4byte gUnknown_2038700
+_080D1368: .4byte gScanlineEffectRegBuffers
_080D136C: .4byte 0x800000a0
thumb_func_end sub_80D12E4
@@ -1398,7 +1398,7 @@ sub_80D1370: @ 80D1370
push {lr}
bl sub_80D12E4
ldr r1, _080D138C @ =0x040000b0
- ldr r0, _080D1390 @ =gUnknown_2038E80
+ ldr r0, _080D1390 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r0, _080D1394 @ =0x04000010
str r0, [r1, 0x4]
@@ -1409,7 +1409,7 @@ sub_80D1370: @ 80D1370
bx r0
.align 2, 0
_080D138C: .4byte 0x040000b0
-_080D1390: .4byte gUnknown_2038E80
+_080D1390: .4byte gScanlineEffectRegBuffers + 0x780
_080D1394: .4byte 0x04000010
_080D1398: .4byte 0xa2400001
thumb_func_end sub_80D1370
@@ -1419,7 +1419,7 @@ sub_80D139C: @ 80D139C
push {lr}
bl sub_80D12E4
ldr r1, _080D13B8 @ =0x040000b0
- ldr r0, _080D13BC @ =gUnknown_2038E80
+ ldr r0, _080D13BC @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r0, _080D13C0 @ =0x04000040
str r0, [r1, 0x4]
@@ -1430,7 +1430,7 @@ sub_80D139C: @ 80D139C
bx r0
.align 2, 0
_080D13B8: .4byte 0x040000b0
-_080D13BC: .4byte gUnknown_2038E80
+_080D13BC: .4byte gScanlineEffectRegBuffers + 0x780
_080D13C0: .4byte 0x04000040
_080D13C4: .4byte 0xa2400001
thumb_func_end sub_80D139C
@@ -1782,7 +1782,7 @@ sub_80D1670: @ 80D1670
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D16C4 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r0, 0
@@ -1794,7 +1794,7 @@ sub_80D1670: @ 80D1670
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r3, _080D16CC @ =gUnknown_2038E80
+ ldr r3, _080D16CC @ =gScanlineEffectRegBuffers + 0x780
ldr r2, _080D16D0 @ =0x0000f3f4
_080D1696:
lsls r0, r1, 1
@@ -1821,7 +1821,7 @@ _080D1696:
.align 2, 0
_080D16C4: .4byte gUnknown_2039A2C
_080D16C8: .4byte 0x0000f0f1
-_080D16CC: .4byte gUnknown_2038E80
+_080D16CC: .4byte gScanlineEffectRegBuffers + 0x780
_080D16D0: .4byte 0x0000f3f4
_080D16D4: .4byte sub_80D1ABC
thumb_func_end sub_80D1670
@@ -1850,7 +1850,7 @@ sub_80D16D8: @ 80D16D8
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
- ldr r5, _080D1764 @ =gUnknown_2038700
+ ldr r5, _080D1764 @ =gScanlineEffectRegBuffers
_080D1708:
ldr r4, _080D1760 @ =gUnknown_2039A2C
ldr r0, [r4]
@@ -1898,7 +1898,7 @@ _080D174C:
bx r1
.align 2, 0
_080D1760: .4byte gUnknown_2039A2C
-_080D1764: .4byte gUnknown_2038700
+_080D1764: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D16D8
thumb_func_start sub_80D1768
@@ -1947,7 +1947,7 @@ _080D17A6:
ldrh r1, [r3, 0x28]
movs r4, 0xF0
_080D17BE:
- ldr r6, _080D17F0 @ =gUnknown_2038700
+ ldr r6, _080D17F0 @ =gScanlineEffectRegBuffers
movs r0, 0x2A
ldrsh r2, [r3, r0]
lsls r2, 1
@@ -1970,7 +1970,7 @@ _080D17BE:
b _080D17A6
.align 2, 0
_080D17EC: .4byte gUnknown_2039A2C
-_080D17F0: .4byte gUnknown_2038700
+_080D17F0: .4byte gScanlineEffectRegBuffers
_080D17F4:
ldr r1, [r7]
ldrh r0, [r1, 0x2E]
@@ -2051,7 +2051,7 @@ sub_80D185C: @ 80D185C
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
- ldr r5, _080D18E0 @ =gUnknown_2038700
+ ldr r5, _080D18E0 @ =gScanlineEffectRegBuffers
_080D188A:
ldr r4, _080D18DC @ =gUnknown_2039A2C
ldr r0, [r4]
@@ -2096,7 +2096,7 @@ _080D18C8:
bx r1
.align 2, 0
_080D18DC: .4byte gUnknown_2039A2C
-_080D18E0: .4byte gUnknown_2038700
+_080D18E0: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D185C
thumb_func_start sub_80D18E4
@@ -2129,7 +2129,7 @@ sub_80D18E4: @ 80D18E4
movs r2, 0x50
movs r3, 0
bl sub_80D4088
- ldr r7, _080D1970 @ =gUnknown_2038700
+ ldr r7, _080D1970 @ =gScanlineEffectRegBuffers
mov r10, r7
ldr r0, _080D196C @ =gUnknown_2039A2C
mov r8, r0
@@ -2171,7 +2171,7 @@ _080D1948:
b _080D1928
.align 2, 0
_080D196C: .4byte gUnknown_2039A2C
-_080D1970: .4byte gUnknown_2038700
+_080D1970: .4byte gScanlineEffectRegBuffers
_080D1974:
mov r0, r8
ldr r2, [r0]
@@ -2193,7 +2193,7 @@ _080D1992:
ldrsh r0, [r2, r4]
cmp r0, r3
ble _080D19BC
- ldr r6, _080D19DC @ =gUnknown_2038700
+ ldr r6, _080D19DC @ =gScanlineEffectRegBuffers
adds r3, r1, 0
ldr r5, _080D19E0 @ =gUnknown_2039A2C
_080D19A0:
@@ -2228,7 +2228,7 @@ _080D19BC:
pop {r1}
bx r1
.align 2, 0
-_080D19DC: .4byte gUnknown_2038700
+_080D19DC: .4byte gScanlineEffectRegBuffers
_080D19E0: .4byte gUnknown_2039A2C
thumb_func_end sub_80D18E4
@@ -2254,7 +2254,7 @@ sub_80D19E4: @ 80D19E4
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
- ldr r6, _080D1A78 @ =gUnknown_2038700
+ ldr r6, _080D1A78 @ =gScanlineEffectRegBuffers
_080D1A10:
movs r2, 0x78
ldr r5, _080D1A74 @ =gUnknown_2039A2C
@@ -2308,7 +2308,7 @@ _080D1A5E:
bx r1
.align 2, 0
_080D1A74: .4byte gUnknown_2039A2C
-_080D1A78: .4byte gUnknown_2038700
+_080D1A78: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D19E4
thumb_func_start sub_80D1A7C
@@ -2360,7 +2360,7 @@ sub_80D1ABC: @ 80D1ABC
cmp r0, 0
beq _080D1AF4
ldr r1, _080D1B44 @ =0x040000d4
- ldr r0, _080D1B48 @ =gUnknown_2038700
+ ldr r0, _080D1B48 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -2382,7 +2382,7 @@ _080D1AF4:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r4, _080D1B48 @ =gUnknown_2038700
+ ldr r4, _080D1B48 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r4, r0
@@ -2404,7 +2404,7 @@ _080D1B38: .4byte 0x0000c5ff
_080D1B3C: .4byte 0x00007fff
_080D1B40: .4byte gUnknown_2039A2C
_080D1B44: .4byte 0x040000d4
-_080D1B48: .4byte gUnknown_2038700
+_080D1B48: .4byte gScanlineEffectRegBuffers
_080D1B4C: .4byte 0x800000a0
_080D1B50: .4byte 0x04000040
_080D1B54: .4byte 0xa2400001
@@ -2445,9 +2445,9 @@ sub_80D1B90: @ 80D1B90
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r2, 0
- ldr r4, _080D1BD8 @ =gUnknown_2038E80
+ ldr r4, _080D1BD8 @ =gScanlineEffectRegBuffers + 0x780
ldr r3, _080D1BDC @ =gUnknown_2039A2C
_080D1BA2:
lsls r1, r2, 1
@@ -2474,7 +2474,7 @@ _080D1BA2:
pop {r1}
bx r1
.align 2, 0
-_080D1BD8: .4byte gUnknown_2038E80
+_080D1BD8: .4byte gScanlineEffectRegBuffers + 0x780
_080D1BDC: .4byte gUnknown_2039A2C
_080D1BE0: .4byte sub_80D1CC8
_080D1BE4: .4byte sub_80D1D00
@@ -2519,7 +2519,7 @@ _080D1C28:
lsrs r0, r4, 8
asrs r1, r7, 16
bl Sin
- ldr r1, _080D1CBC @ =gUnknown_2038700
+ ldr r1, _080D1CBC @ =gScanlineEffectRegBuffers
lsls r2, r5, 1
adds r2, r1
ldr r1, _080D1CB4 @ =gUnknown_2039A2C
@@ -2587,7 +2587,7 @@ _080D1C9A:
.align 2, 0
_080D1CB4: .4byte gUnknown_2039A2C
_080D1CB8: .4byte 0x1fff0000
-_080D1CBC: .4byte gUnknown_2038700
+_080D1CBC: .4byte gScanlineEffectRegBuffers
_080D1CC0: .4byte gPaletteFade
_080D1CC4: .4byte sub_80D1B58
thumb_func_end sub_80D1BE8
@@ -2602,7 +2602,7 @@ sub_80D1CC8: @ 80D1CC8
cmp r0, 0
beq _080D1CEC
ldr r1, _080D1CF4 @ =0x040000d4
- ldr r0, _080D1CF8 @ =gUnknown_2038700
+ ldr r0, _080D1CF8 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -2617,13 +2617,13 @@ _080D1CEC:
.align 2, 0
_080D1CF0: .4byte gUnknown_2039A2C
_080D1CF4: .4byte 0x040000d4
-_080D1CF8: .4byte gUnknown_2038700
+_080D1CF8: .4byte gScanlineEffectRegBuffers
_080D1CFC: .4byte 0x800000a0
thumb_func_end sub_80D1CC8
thumb_func_start sub_80D1D00
sub_80D1D00: @ 80D1D00
- ldr r1, _080D1D20 @ =gUnknown_2038700
+ ldr r1, _080D1D20 @ =gScanlineEffectRegBuffers
ldr r0, _080D1D24 @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -2640,7 +2640,7 @@ sub_80D1D00: @ 80D1D00
strh r1, [r0]
bx lr
.align 2, 0
-_080D1D20: .4byte gUnknown_2038700
+_080D1D20: .4byte gScanlineEffectRegBuffers
_080D1D24: .4byte 0x04000006
_080D1D28: .4byte 0x04000016
thumb_func_end sub_80D1D00
@@ -2680,7 +2680,7 @@ sub_80D1D64: @ 80D1D64
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D1DB0 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
@@ -2692,7 +2692,7 @@ sub_80D1D64: @ 80D1D64
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r3, _080D1DB4 @ =gUnknown_2038E80
+ ldr r3, _080D1DB4 @ =gScanlineEffectRegBuffers + 0x780
movs r2, 0xF2
_080D1D8A:
lsls r0, r1, 1
@@ -2714,7 +2714,7 @@ _080D1D8A:
bx r1
.align 2, 0
_080D1DB0: .4byte gUnknown_2039A2C
-_080D1DB4: .4byte gUnknown_2038E80
+_080D1DB4: .4byte gScanlineEffectRegBuffers + 0x780
_080D1DB8: .4byte sub_80D1E98
thumb_func_end sub_80D1D64
@@ -2729,7 +2729,7 @@ sub_80D1DBC: @ 80D1DBC
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
- ldr r7, _080D1E54 @ =gUnknown_2038700
+ ldr r7, _080D1E54 @ =gScanlineEffectRegBuffers
ldrh r0, [r4, 0xC]
ldrb r5, [r4, 0xC]
adds r0, 0x10
@@ -2799,7 +2799,7 @@ _080D1E36:
bx r1
.align 2, 0
_080D1E50: .4byte gUnknown_2039A2C
-_080D1E54: .4byte gUnknown_2038700
+_080D1E54: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D1DBC
thumb_func_start sub_80D1E58
@@ -2851,7 +2851,7 @@ sub_80D1E98: @ 80D1E98
cmp r0, 0
beq _080D1ED0
ldr r1, _080D1F14 @ =0x040000d4
- ldr r0, _080D1F18 @ =gUnknown_2038700
+ ldr r0, _080D1F18 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -2873,7 +2873,7 @@ _080D1ED0:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r0, _080D1F20 @ =gUnknown_2038E80
+ ldr r0, _080D1F20 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r4]
ldr r0, _080D1F24 @ =0x04000040
str r0, [r4, 0x4]
@@ -2889,9 +2889,9 @@ _080D1F08: .4byte 0x0000c5ff
_080D1F0C: .4byte 0x00007fff
_080D1F10: .4byte gUnknown_2039A2C
_080D1F14: .4byte 0x040000d4
-_080D1F18: .4byte gUnknown_2038700
+_080D1F18: .4byte gScanlineEffectRegBuffers
_080D1F1C: .4byte 0x800000a0
-_080D1F20: .4byte gUnknown_2038E80
+_080D1F20: .4byte gScanlineEffectRegBuffers + 0x780
_080D1F24: .4byte 0x04000040
_080D1F28: .4byte 0xa2400001
thumb_func_end sub_80D1E98
@@ -2946,7 +2946,7 @@ sub_80D1F64: @ 80D1F64
mov r10, r0
movs r1, 0xA0
lsls r1, 17
- ldr r4, _080D1FD8 @ =gUnknown_2038E80
+ ldr r4, _080D1FD8 @ =gScanlineEffectRegBuffers + 0x780
ldr r3, _080D1FDC @ =0x000003bf
movs r2, 0x78
_080D1F8E:
@@ -2988,7 +2988,7 @@ _080D1FAE:
adds r0, r1, 0
b _080D1FE6
.align 2, 0
-_080D1FD8: .4byte gUnknown_2038E80
+_080D1FD8: .4byte gScanlineEffectRegBuffers + 0x780
_080D1FDC: .4byte 0x000003bf
_080D1FE0:
lsls r0, r3, 16
@@ -3104,7 +3104,7 @@ _080D2092:
lsls r4, 1
adds r0, r2, r4
lsls r0, 1
- ldr r1, _080D20E8 @ =gUnknown_2038E80
+ ldr r1, _080D20E8 @ =gScanlineEffectRegBuffers + 0x780
adds r0, r1
strh r7, [r0]
lsls r0, r5, 16
@@ -3131,7 +3131,7 @@ _080D20C4:
subs r0, r2, 0x1
b _080D20FC
.align 2, 0
-_080D20E8: .4byte gUnknown_2038E80
+_080D20E8: .4byte gScanlineEffectRegBuffers + 0x780
_080D20EC:
lsls r0, r3, 16
asrs r0, 16
@@ -3150,7 +3150,7 @@ _080D2100:
cmp r1, 0
bge _080D212C
asrs r2, r6, 16
- ldr r3, _080D2128 @ =gUnknown_2038E80
+ ldr r3, _080D2128 @ =gScanlineEffectRegBuffers + 0x780
_080D210C:
asrs r1, r0, 16
adds r0, r2, r1
@@ -3166,12 +3166,12 @@ _080D210C:
blt _080D210C
b _080D21F8
.align 2, 0
-_080D2128: .4byte gUnknown_2038E80
+_080D2128: .4byte gScanlineEffectRegBuffers + 0x780
_080D212C:
cmp r1, 0
ble _080D21F8
asrs r2, r6, 16
- ldr r3, _080D2154 @ =gUnknown_2038E80
+ ldr r3, _080D2154 @ =gScanlineEffectRegBuffers + 0x780
_080D2134:
lsls r1, r5, 16
asrs r1, 16
@@ -3189,13 +3189,13 @@ _080D2134:
bgt _080D2134
b _080D21F8
.align 2, 0
-_080D2154: .4byte gUnknown_2038E80
+_080D2154: .4byte gScanlineEffectRegBuffers + 0x780
_080D2158:
movs r1, 0xF0
lsls r1, 1
adds r0, r2, r1
lsls r0, 1
- ldr r2, _080D2190 @ =gUnknown_2038E80
+ ldr r2, _080D2190 @ =gScanlineEffectRegBuffers + 0x780
adds r0, r2
strh r7, [r0]
lsls r0, r5, 16
@@ -3220,7 +3220,7 @@ _080D2158:
subs r0, r2, 0x1
b _080D21A4
.align 2, 0
-_080D2190: .4byte gUnknown_2038E80
+_080D2190: .4byte gScanlineEffectRegBuffers + 0x780
_080D2194:
lsls r0, r3, 16
asrs r0, 16
@@ -3239,7 +3239,7 @@ _080D21A8:
cmp r1, 0
bge _080D21D4
asrs r2, r6, 16
- ldr r3, _080D21D0 @ =gUnknown_2038E80
+ ldr r3, _080D21D0 @ =gScanlineEffectRegBuffers + 0x780
_080D21B4:
asrs r1, r0, 16
adds r0, r2, r1
@@ -3255,12 +3255,12 @@ _080D21B4:
blt _080D21B4
b _080D21F8
.align 2, 0
-_080D21D0: .4byte gUnknown_2038E80
+_080D21D0: .4byte gScanlineEffectRegBuffers + 0x780
_080D21D4:
cmp r1, 0
ble _080D21F8
asrs r2, r6, 16
- ldr r3, _080D2270 @ =gUnknown_2038E80
+ ldr r3, _080D2270 @ =gScanlineEffectRegBuffers + 0x780
_080D21DC:
lsls r1, r5, 16
asrs r1, 16
@@ -3307,7 +3307,7 @@ _080D221A:
_080D222C:
movs r2, 0
mov r9, r2
- ldr r4, _080D2270 @ =gUnknown_2038E80
+ ldr r4, _080D2270 @ =gScanlineEffectRegBuffers + 0x780
movs r5, 0xA0
lsls r5, 1
_080D2236:
@@ -3341,7 +3341,7 @@ _080D2236:
ble _080D2236
b _080D251C
.align 2, 0
-_080D2270: .4byte gUnknown_2038E80
+_080D2270: .4byte gScanlineEffectRegBuffers + 0x780
_080D2274:
ldr r1, [sp, 0xC]
asrs r4, r1, 16
@@ -3396,7 +3396,7 @@ _080D22CA:
adds r0, r5, r0
movs r3, 0
ldrsh r4, [r0, r3]
- ldr r6, _080D2324 @ =gUnknown_2038E80
+ ldr r6, _080D2324 @ =gScanlineEffectRegBuffers + 0x780
_080D22D4:
ldr r0, _080D2328 @ =gUnknown_2039A2C
ldr r5, [r0]
@@ -3437,7 +3437,7 @@ _080D22D4:
b _080D2334
.align 2, 0
_080D2320: .4byte gUnknown_83FA444
-_080D2324: .4byte gUnknown_2038E80
+_080D2324: .4byte gScanlineEffectRegBuffers + 0x780
_080D2328: .4byte gUnknown_2039A2C
_080D232C:
ldrh r0, [r3]
@@ -3474,7 +3474,7 @@ _080D2360:
adds r0, r5, r0
movs r3, 0
ldrsh r4, [r0, r3]
- ldr r6, _080D23C0 @ =gUnknown_2038E80
+ ldr r6, _080D23C0 @ =gScanlineEffectRegBuffers + 0x780
_080D236A:
ldr r0, _080D23C4 @ =gUnknown_2039A2C
ldr r3, [r0]
@@ -3519,7 +3519,7 @@ _080D23A6:
b _080D24DA
.align 2, 0
_080D23BC: .4byte gUnknown_83FA444
-_080D23C0: .4byte gUnknown_2038E80
+_080D23C0: .4byte gScanlineEffectRegBuffers + 0x780
_080D23C4: .4byte gUnknown_2039A2C
_080D23C8: .4byte 0xffff0000
_080D23CC:
@@ -3539,7 +3539,7 @@ _080D23DA:
adds r0, r5, r0
movs r6, 0
ldrsh r4, [r0, r6]
- ldr r6, _080D2440 @ =gUnknown_2038E80
+ ldr r6, _080D2440 @ =gScanlineEffectRegBuffers + 0x780
_080D23EC:
ldr r0, _080D2444 @ =gUnknown_2039A2C
ldr r5, [r0]
@@ -3581,7 +3581,7 @@ _080D23EC:
.align 2, 0
_080D2438: .4byte 0x0000ffb1
_080D243C: .4byte gUnknown_83FA444
-_080D2440: .4byte gUnknown_2038E80
+_080D2440: .4byte gScanlineEffectRegBuffers + 0x780
_080D2444: .4byte gUnknown_2039A2C
_080D2448:
ldrh r0, [r3]
@@ -3619,7 +3619,7 @@ _080D2474:
ldrsh r4, [r0, r3]
ldr r6, _080D2534 @ =gUnknown_2039A2C
mov r8, r6
- ldr r6, _080D2538 @ =gUnknown_2038E80
+ ldr r6, _080D2538 @ =gScanlineEffectRegBuffers + 0x780
_080D248A:
mov r0, r8
ldr r3, [r0]
@@ -3665,7 +3665,7 @@ _080D24C6:
_080D24DA:
movs r4, 0
mov r9, r4
- ldr r4, _080D2538 @ =gUnknown_2038E80
+ ldr r4, _080D2538 @ =gScanlineEffectRegBuffers + 0x780
movs r5, 0xA0
lsls r5, 1
_080D24E4:
@@ -3710,7 +3710,7 @@ _080D251C:
_080D252C: .4byte 0x0000ffb1
_080D2530: .4byte gUnknown_83FA444
_080D2534: .4byte gUnknown_2039A2C
-_080D2538: .4byte gUnknown_2038E80
+_080D2538: .4byte gScanlineEffectRegBuffers + 0x780
thumb_func_end sub_80D1F64
thumb_func_start sub_80D253C
@@ -3718,7 +3718,7 @@ sub_80D253C: @ 80D253C
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D25A0 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r4, 0
@@ -3741,7 +3741,7 @@ sub_80D253C: @ 80D253C
movs r2, 0x1
bl sub_80D1F64
ldr r1, _080D25B0 @ =0x040000d4
- ldr r0, _080D25B4 @ =gUnknown_2038E80
+ ldr r0, _080D25B4 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r2, _080D25B8 @ =0xfffff880
adds r0, r2
@@ -3766,7 +3766,7 @@ _080D25A4: .4byte 0x00007878
_080D25A8: .4byte 0x00003070
_080D25AC: .4byte 0x00001090
_080D25B0: .4byte 0x040000d4
-_080D25B4: .4byte gUnknown_2038E80
+_080D25B4: .4byte gScanlineEffectRegBuffers + 0x780
_080D25B8: .4byte 0xfffff880
_080D25BC: .4byte 0x80000140
_080D25C0: .4byte sub_80D2698
@@ -3919,7 +3919,7 @@ _080D26E4:
cmp r0, 0
beq _080D2700
ldr r1, _080D274C @ =0x040000d4
- ldr r0, _080D2750 @ =gUnknown_2038E80
+ ldr r0, _080D2750 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r6, _080D2754 @ =0xfffff880
adds r0, r6
@@ -3946,7 +3946,7 @@ _080D2700:
ldrh r1, [r0, 0xC]
movs r0, 0x46
bl SetGpuReg
- ldr r4, _080D275C @ =gUnknown_2038700
+ ldr r4, _080D275C @ =gScanlineEffectRegBuffers
ldrh r1, [r4]
movs r0, 0x40
bl SetGpuReg
@@ -3965,10 +3965,10 @@ _080D2746:
bx r0
.align 2, 0
_080D274C: .4byte 0x040000d4
-_080D2750: .4byte gUnknown_2038E80
+_080D2750: .4byte gScanlineEffectRegBuffers + 0x780
_080D2754: .4byte 0xfffff880
_080D2758: .4byte 0x80000140
-_080D275C: .4byte gUnknown_2038700
+_080D275C: .4byte gScanlineEffectRegBuffers
_080D2760: .4byte 0x04000040
_080D2764: .4byte 0xa6400001
thumb_func_end sub_80D2698
@@ -4103,7 +4103,7 @@ Phase2_Mugshot_Func1: @ 80D2840
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
adds r0, r4, 0
bl sub_80D2EA4
movs r0, 0
@@ -4121,7 +4121,7 @@ Phase2_Mugshot_Func1: @ 80D2840
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r3, _080D289C @ =gUnknown_2038E80
+ ldr r3, _080D289C @ =gScanlineEffectRegBuffers + 0x780
ldr r2, _080D28A0 @ =0x0000f0f1
_080D2874:
lsls r0, r1, 1
@@ -4143,7 +4143,7 @@ _080D2874:
bx r1
.align 2, 0
_080D2898: .4byte gUnknown_2039A2C
-_080D289C: .4byte gUnknown_2038E80
+_080D289C: .4byte gScanlineEffectRegBuffers + 0x780
_080D28A0: .4byte 0x0000f0f1
_080D28A4: .4byte sub_80D2D50
thumb_func_end Phase2_Mugshot_Func1
@@ -4248,7 +4248,7 @@ sub_80D2968: @ 80D2968
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
- ldr r7, _080D2A50 @ =gUnknown_2038700
+ ldr r7, _080D2A50 @ =gScanlineEffectRegBuffers
ldrh r0, [r4, 0xA]
ldrb r5, [r4, 0xA]
adds r0, 0x10
@@ -4364,7 +4364,7 @@ _080D2A2A:
bx r1
.align 2, 0
_080D2A4C: .4byte gUnknown_2039A2C
-_080D2A50: .4byte gUnknown_2038700
+_080D2A50: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2968
thumb_func_start sub_80D2A54
@@ -4376,7 +4376,7 @@ sub_80D2A54: @ 80D2A54
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
- ldr r1, _080D2ACC @ =gUnknown_2038700
+ ldr r1, _080D2ACC @ =gScanlineEffectRegBuffers
adds r5, r2, 0
movs r2, 0xF0
_080D2A68:
@@ -4425,7 +4425,7 @@ _080D2A68:
bx r1
.align 2, 0
_080D2AC8: .4byte gUnknown_2039A2C
-_080D2ACC: .4byte gUnknown_2038700
+_080D2ACC: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2A54
thumb_func_start sub_80D2AD0
@@ -4499,7 +4499,7 @@ sub_80D2B0C: @ 80D2B0C
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
- ldr r4, _080D2BBC @ =gUnknown_2038700
+ ldr r4, _080D2BBC @ =gScanlineEffectRegBuffers
movs r5, 0xA0
lsls r5, 1
adds r0, r4, 0
@@ -4542,7 +4542,7 @@ _080D2BAC: .4byte gUnknown_2039A2C
_080D2BB0: .4byte 0x040000b0
_080D2BB4: .4byte 0x0000c5ff
_080D2BB8: .4byte 0x00007fff
-_080D2BBC: .4byte gUnknown_2038700
+_080D2BBC: .4byte gScanlineEffectRegBuffers
_080D2BC0: .4byte sub_80D2DEC
thumb_func_end sub_80D2B0C
@@ -4593,7 +4593,7 @@ _080D2BFE:
cmp r0, 0
blt _080D2C60
movs r7, 0x50
- ldr r5, _080D2C88 @ =gUnknown_2038700
+ ldr r5, _080D2C88 @ =gScanlineEffectRegBuffers
_080D2C1C:
lsls r0, r2, 16
asrs r3, r0, 16
@@ -4652,7 +4652,7 @@ _080D2C6E:
bx r1
.align 2, 0
_080D2C84: .4byte gUnknown_2039A2C
-_080D2C88: .4byte gUnknown_2038700
+_080D2C88: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2BC4
thumb_func_start sub_80D2C8C
@@ -4697,7 +4697,7 @@ sub_80D2CC4: @ 80D2CC4
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
- ldr r0, _080D2D0C @ =gUnknown_2038700
+ ldr r0, _080D2D0C @ =gScanlineEffectRegBuffers
movs r2, 0xE
ldrsh r1, [r4, r2]
movs r2, 0xA0
@@ -4722,7 +4722,7 @@ _080D2CF4:
bx r1
.align 2, 0
_080D2D08: .4byte gUnknown_2039A2C
-_080D2D0C: .4byte gUnknown_2038700
+_080D2D0C: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2CC4
thumb_func_start sub_80D2D10
@@ -4775,7 +4775,7 @@ sub_80D2D50: @ 80D2D50
cmp r0, 0
beq _080D2D88
ldr r1, _080D2DD4 @ =0x040000d4
- ldr r0, _080D2DD8 @ =gUnknown_2038700
+ ldr r0, _080D2DD8 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -4801,7 +4801,7 @@ _080D2D88:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r0, _080D2DE0 @ =gUnknown_2038E80
+ ldr r0, _080D2DE0 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r4]
ldr r0, _080D2DE4 @ =0x04000040
str r0, [r4, 0x4]
@@ -4817,9 +4817,9 @@ _080D2DC8: .4byte 0x0000c5ff
_080D2DCC: .4byte 0x00007fff
_080D2DD0: .4byte gUnknown_2039A2C
_080D2DD4: .4byte 0x040000d4
-_080D2DD8: .4byte gUnknown_2038700
+_080D2DD8: .4byte gScanlineEffectRegBuffers
_080D2DDC: .4byte 0x800000a0
-_080D2DE0: .4byte gUnknown_2038E80
+_080D2DE0: .4byte gScanlineEffectRegBuffers + 0x780
_080D2DE4: .4byte 0x04000040
_080D2DE8: .4byte 0xa2400001
thumb_func_end sub_80D2D50
@@ -4844,7 +4844,7 @@ sub_80D2DEC: @ 80D2DEC
cmp r0, 0
beq _080D2E24
ldr r1, _080D2E54 @ =0x040000d4
- ldr r0, _080D2E58 @ =gUnknown_2038700
+ ldr r0, _080D2E58 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r3, 0xF0
lsls r3, 3
@@ -4858,7 +4858,7 @@ _080D2E24:
ldrh r1, [r0, 0xE]
movs r0, 0x50
bl SetGpuReg
- ldr r0, _080D2E60 @ =gUnknown_2038E80
+ ldr r0, _080D2E60 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r4]
ldr r0, _080D2E64 @ =0x04000054
str r0, [r4, 0x4]
@@ -4874,9 +4874,9 @@ _080D2E48: .4byte 0x0000c5ff
_080D2E4C: .4byte 0x00007fff
_080D2E50: .4byte gUnknown_2039A2C
_080D2E54: .4byte 0x040000d4
-_080D2E58: .4byte gUnknown_2038700
+_080D2E58: .4byte gScanlineEffectRegBuffers
_080D2E5C: .4byte 0x800000a0
-_080D2E60: .4byte gUnknown_2038E80
+_080D2E60: .4byte gScanlineEffectRegBuffers + 0x780
_080D2E64: .4byte 0x04000054
_080D2E68: .4byte 0xa2400001
thumb_func_end sub_80D2DEC
@@ -4953,7 +4953,7 @@ sub_80D2EA4: @ 80D2EA4
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
- bl sub_810C374
+ bl PlayerGenderToFrontTrainerPicId_Debug
lsls r0, 24
lsrs r0, 24
movs r1, 0x88
@@ -5321,7 +5321,7 @@ sub_80D31A4: @ 80D31A4
push {r4-r6,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r3, 0
movs r0, 0x80
lsls r0, 1
@@ -5335,7 +5335,7 @@ sub_80D31A4: @ 80D31A4
strh r3, [r1, 0x4]
movs r0, 0xA0
strh r0, [r1, 0x8]
- ldr r4, _080D3214 @ =gUnknown_2038E80
+ ldr r4, _080D3214 @ =gScanlineEffectRegBuffers + 0x780
adds r6, r2, 0
movs r2, 0xF0
_080D31D0:
@@ -5369,7 +5369,7 @@ _080D31D0:
bx r1
.align 2, 0
_080D3210: .4byte gUnknown_2039A2C
-_080D3214: .4byte gUnknown_2038E80
+_080D3214: .4byte gScanlineEffectRegBuffers + 0x780
_080D3218: .4byte sub_80D332C
_080D321C: .4byte sub_80D33C0
thumb_func_end sub_80D31A4
@@ -5417,7 +5417,7 @@ _080D325E:
strh r0, [r3, 0xE]
_080D326A:
movs r5, 0
- ldr r7, _080D32A4 @ =gUnknown_2038700
+ ldr r7, _080D32A4 @ =gScanlineEffectRegBuffers
movs r1, 0xA0
lsls r1, 1
adds r1, r7
@@ -5444,7 +5444,7 @@ _080D3278:
.align 2, 0
_080D329C: .4byte gUnknown_2039A2C
_080D32A0: .4byte 0x00000fff
-_080D32A4: .4byte gUnknown_2038700
+_080D32A4: .4byte gScanlineEffectRegBuffers
_080D32A8:
ldr r0, [r6]
ldrh r0, [r0, 0x14]
@@ -5545,7 +5545,7 @@ sub_80D332C: @ 80D332C
cmp r0, 0
beq _080D3382
ldr r1, _080D33A8 @ =0x040000d4
- ldr r0, _080D33AC @ =gUnknown_2038700
+ ldr r0, _080D33AC @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -5555,7 +5555,7 @@ sub_80D332C: @ 80D332C
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D3382:
- ldr r0, _080D33B4 @ =gUnknown_2038FC0
+ ldr r0, _080D33B4 @ =gScanlineEffectRegBuffers + 0x8C0
str r0, [r5]
ldr r0, _080D33B8 @ =0x04000040
str r0, [r5, 0x4]
@@ -5571,16 +5571,16 @@ _080D339C: .4byte 0x0000c5ff
_080D33A0: .4byte 0x00007fff
_080D33A4: .4byte gUnknown_2039A2C
_080D33A8: .4byte 0x040000d4
-_080D33AC: .4byte gUnknown_2038700
+_080D33AC: .4byte gScanlineEffectRegBuffers
_080D33B0: .4byte 0x80000140
-_080D33B4: .4byte gUnknown_2038FC0
+_080D33B4: .4byte gScanlineEffectRegBuffers + 0x8C0
_080D33B8: .4byte 0x04000040
_080D33BC: .4byte 0xa2400001
thumb_func_end sub_80D332C
thumb_func_start sub_80D33C0
sub_80D33C0: @ 80D33C0
- ldr r1, _080D33E0 @ =gUnknown_2038700
+ ldr r1, _080D33E0 @ =gScanlineEffectRegBuffers
ldr r0, _080D33E4 @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -5597,7 +5597,7 @@ sub_80D33C0: @ 80D33C0
strh r1, [r0]
bx lr
.align 2, 0
-_080D33E0: .4byte gUnknown_2038700
+_080D33E0: .4byte gScanlineEffectRegBuffers
_080D33E4: .4byte 0x04000006
_080D33E8: .4byte 0x04000014
thumb_func_end sub_80D33C0
@@ -5637,7 +5637,7 @@ sub_80D3424: @ 80D3424
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D348C @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
@@ -5651,7 +5651,7 @@ sub_80D3424: @ 80D3424
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r2, _080D3490 @ =gUnknown_2038E80
+ ldr r2, _080D3490 @ =gScanlineEffectRegBuffers + 0x780
movs r4, 0
movs r3, 0xF0
_080D3450:
@@ -5683,7 +5683,7 @@ _080D3450:
bx r1
.align 2, 0
_080D348C: .4byte gUnknown_2039A2C
-_080D3490: .4byte gUnknown_2038E80
+_080D3490: .4byte gScanlineEffectRegBuffers + 0x780
_080D3494: .4byte sub_80D36E0
_080D3498: .4byte sub_80D35F4
thumb_func_end sub_80D3424
@@ -5896,7 +5896,7 @@ sub_80D35F4: @ 80D35F4
cmp r0, 0
beq _080D3654
ldr r1, _080D3678 @ =0x040000d4
- ldr r0, _080D367C @ =gUnknown_2038700
+ ldr r0, _080D367C @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -5906,7 +5906,7 @@ sub_80D35F4: @ 80D35F4
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D3654:
- ldr r0, _080D3684 @ =gUnknown_2038FC0
+ ldr r0, _080D3684 @ =gScanlineEffectRegBuffers + 0x8C0
str r0, [r5]
ldr r0, _080D3688 @ =0x04000040
str r0, [r5, 0x4]
@@ -5922,9 +5922,9 @@ _080D366C: .4byte 0x0000c5ff
_080D3670: .4byte 0x00007fff
_080D3674: .4byte gUnknown_2039A2C
_080D3678: .4byte 0x040000d4
-_080D367C: .4byte gUnknown_2038700
+_080D367C: .4byte gScanlineEffectRegBuffers
_080D3680: .4byte 0x80000140
-_080D3684: .4byte gUnknown_2038FC0
+_080D3684: .4byte gScanlineEffectRegBuffers + 0x8C0
_080D3688: .4byte 0x04000040
_080D368C: .4byte 0xa2400001
thumb_func_end sub_80D35F4
@@ -5981,7 +5981,7 @@ sub_80D36E0: @ 80D36E0
strh r0, [r1]
_080D36F8:
ldr r2, _080D3718 @ =0x04000054
- ldr r1, _080D371C @ =gUnknown_2038700
+ ldr r1, _080D371C @ =gScanlineEffectRegBuffers
mov r0, sp
ldrh r0, [r0]
lsls r0, 1
@@ -5997,7 +5997,7 @@ _080D36F8:
.align 2, 0
_080D3714: .4byte 0x04000006
_080D3718: .4byte 0x04000054
-_080D371C: .4byte gUnknown_2038700
+_080D371C: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D36E0
thumb_func_start sub_80D3720
@@ -6027,7 +6027,7 @@ _080D374C:
movs r2, 0x22
ldrsh r0, [r3, r2]
lsls r0, 1
- ldr r1, _080D3810 @ =gUnknown_2038700
+ ldr r1, _080D3810 @ =gScanlineEffectRegBuffers
adds r7, r0, r1
movs r2, 0xA0
lsls r2, 1
@@ -6131,7 +6131,7 @@ _080D380A:
pop {r0}
bx r0
.align 2, 0
-_080D3810: .4byte gUnknown_2038700
+_080D3810: .4byte gScanlineEffectRegBuffers
_080D3814: .4byte gUnknown_2039A2C
thumb_func_end sub_80D3720
@@ -6308,7 +6308,7 @@ sub_80D3960: @ 80D3960
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D39B8 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
@@ -6318,7 +6318,7 @@ sub_80D3960: @ 80D3960
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r2, _080D39BC @ =gUnknown_2038700
+ ldr r2, _080D39BC @ =gScanlineEffectRegBuffers
movs r3, 0xF0
adds r4, r2, 0
_080D3984:
@@ -6347,7 +6347,7 @@ _080D3984:
bx r1
.align 2, 0
_080D39B8: .4byte gUnknown_2039A2C
-_080D39BC: .4byte gUnknown_2038700
+_080D39BC: .4byte gScanlineEffectRegBuffers
_080D39C0: .4byte sub_80D3BA4
thumb_func_end sub_80D3960
@@ -6428,10 +6428,10 @@ sub_80D3A40: @ 80D3A40
strb r0, [r1]
mov r8, r0
movs r7, 0
- ldr r0, _080D3A94 @ =gUnknown_2038700
+ ldr r0, _080D3A94 @ =gScanlineEffectRegBuffers
mov r9, r0
_080D3A5C:
- ldr r1, _080D3A94 @ =gUnknown_2038700
+ ldr r1, _080D3A94 @ =gScanlineEffectRegBuffers
ldr r0, _080D3A90 @ =gUnknown_2039A2C
ldr r2, [r0]
movs r3, 0x2A
@@ -6460,7 +6460,7 @@ _080D3A84:
b _080D3AB0
.align 2, 0
_080D3A90: .4byte gUnknown_2039A2C
-_080D3A94: .4byte gUnknown_2038700
+_080D3A94: .4byte gScanlineEffectRegBuffers
_080D3A98:
lsls r0, r5, 16
asrs r0, 16
@@ -6626,7 +6626,7 @@ sub_80D3BA4: @ 80D3BA4
cmp r0, 0
beq _080D3BDC
ldr r1, _080D3C2C @ =0x040000d4
- ldr r0, _080D3C30 @ =gUnknown_2038700
+ ldr r0, _080D3C30 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -6648,7 +6648,7 @@ _080D3BDC:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r4, _080D3C30 @ =gUnknown_2038700
+ ldr r4, _080D3C30 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r4, r0
@@ -6670,7 +6670,7 @@ _080D3C20: .4byte 0x0000c5ff
_080D3C24: .4byte 0x00007fff
_080D3C28: .4byte gUnknown_2039A2C
_080D3C2C: .4byte 0x040000d4
-_080D3C30: .4byte gUnknown_2038700
+_080D3C30: .4byte gScanlineEffectRegBuffers
_080D3C34: .4byte 0x800000a0
_080D3C38: .4byte 0x04000040
_080D3C3C: .4byte 0xa2400001
diff --git a/asm/berry.s b/asm/berry.s
deleted file mode 100644
index 5537e3590..000000000
--- a/asm/berry.s
+++ /dev/null
@@ -1,311 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_809C718
-sub_809C718: @ 809C718
- push {r4,r5,lr}
- ldr r2, _0809C778 @ =gSaveBlock1Ptr
- ldr r1, [r2]
- ldr r0, _0809C77C @ =gUnknown_83DF7E8
- ldr r3, _0809C780 @ =0x000030ec
- adds r1, r3
- movs r4, 0x93
- lsls r4, 3
- adds r0, r4
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r1, 0
- adds r4, r2, 0
- adds r5, r4, 0
- ldr r3, _0809C784 @ =0x00003108
- movs r2, 0
-_0809C740:
- ldr r0, [r5]
- adds r0, r3
- adds r0, r1
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0x11
- ble _0809C740
- ldr r0, [r4]
- ldr r5, _0809C788 @ =0x0000311a
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, _0809C78C @ =0x0000311b
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldr r3, _0809C780 @ =0x000030ec
- adds r0, r3
- bl GetEnigmaBerryChecksum
- ldr r1, [r4]
- ldr r4, _0809C790 @ =0x0000311c
- adds r1, r4
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C778: .4byte gSaveBlock1Ptr
-_0809C77C: .4byte gUnknown_83DF7E8
-_0809C780: .4byte 0x000030ec
-_0809C784: .4byte 0x00003108
-_0809C788: .4byte 0x0000311a
-_0809C78C: .4byte 0x0000311b
-_0809C790: .4byte 0x0000311c
- thumb_func_end sub_809C718
-
- thumb_func_start sub_809C794
-sub_809C794: @ 809C794
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0809C7B8 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, _0809C7BC @ =0x000030ec
- adds r1, r0
- ldr r2, _0809C7C0 @ =0x0100001a
- mov r0, sp
- bl CpuSet
- bl sub_809C718
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0809C7B8: .4byte gSaveBlock1Ptr
-_0809C7BC: .4byte 0x000030ec
-_0809C7C0: .4byte 0x0100001a
- thumb_func_end sub_809C794
-
- thumb_func_start SetEnigmaBerry
-SetEnigmaBerry: @ 809C7C4
- push {r4-r7,lr}
- adds r4, r0, 0
- bl sub_809C794
- adds r5, r4, 0
- ldr r0, _0809C824 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r0, _0809C828 @ =0x000030ec
- adds r4, r2, r0
- adds r1, r4, 0
- adds r0, r5, 0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldr r0, [r0]
- str r0, [r1]
- movs r3, 0
- ldr r0, _0809C82C @ =0x00003108
- adds r6, r2, r0
- ldr r1, _0809C830 @ =0x00000516
- adds r2, r5, r1
-_0809C7F0:
- adds r0, r6, r3
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x11
- ble _0809C7F0
- movs r3, 0xA5
- lsls r3, 3
- adds r0, r5, r3
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x2E
- strb r0, [r1]
- ldr r6, _0809C834 @ =0x00000529
- adds r0, r5, r6
- ldrb r0, [r0]
- adds r1, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl GetEnigmaBerryChecksum
- str r0, [r4, 0x30]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C824: .4byte gSaveBlock1Ptr
-_0809C828: .4byte 0x000030ec
-_0809C82C: .4byte 0x00003108
-_0809C830: .4byte 0x00000516
-_0809C834: .4byte 0x00000529
- thumb_func_end SetEnigmaBerry
-
- thumb_func_start GetEnigmaBerryChecksum
-GetEnigmaBerryChecksum: @ 809C838
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- movs r1, 0
-_0809C840:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, 0x2F
- bls _0809C840
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end GetEnigmaBerryChecksum
-
- thumb_func_start IsEnigmaBerryValid
-IsEnigmaBerryValid: @ 809C854
- push {r4,lr}
- ldr r4, _0809C888 @ =gSaveBlock1Ptr
- ldr r1, [r4]
- movs r2, 0xC4
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C898
- ldr r2, _0809C88C @ =0x000030f6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C898
- ldr r2, _0809C890 @ =0x000030ec
- adds r0, r1, r2
- bl GetEnigmaBerryChecksum
- ldr r1, [r4]
- ldr r2, _0809C894 @ =0x0000311c
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- bne _0809C898
- movs r0, 0x1
- b _0809C89A
- .align 2, 0
-_0809C888: .4byte gSaveBlock1Ptr
-_0809C88C: .4byte 0x000030f6
-_0809C890: .4byte 0x000030ec
-_0809C894: .4byte 0x0000311c
-_0809C898:
- movs r0, 0
-_0809C89A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsEnigmaBerryValid
-
- thumb_func_start sub_809C8A0
-sub_809C8A0: @ 809C8A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2B
- bne _0809C8C4
- bl IsEnigmaBerryValid
- cmp r0, 0
- beq _0809C8C4
- ldr r0, _0809C8BC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _0809C8C0 @ =0x000030ec
- b _0809C8D8
- .align 2, 0
-_0809C8BC: .4byte gSaveBlock1Ptr
-_0809C8C0: .4byte 0x000030ec
-_0809C8C4:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2A
- bls _0809C8D0
- movs r4, 0x1
-_0809C8D0:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _0809C8E0 @ =gUnknown_83DF7CC
-_0809C8D8:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809C8E0: .4byte gUnknown_83DF7CC
- thumb_func_end sub_809C8A0
-
- thumb_func_start ItemIdToBerryType
-ItemIdToBerryType: @ 809C8E4
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _0809C900 @ =0xff7b0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _0809C904
- adds r0, r1, 0
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- b _0809C906
- .align 2, 0
-_0809C900: .4byte 0xff7b0000
-_0809C904:
- movs r0, 0x1
-_0809C906:
- pop {r1}
- bx r1
- thumb_func_end ItemIdToBerryType
-
- thumb_func_start BerryTypeToItemId
-BerryTypeToItemId: @ 809C90C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _0809C928 @ =0xffff0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _0809C92C
- adds r0, r1, 0
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- b _0809C92E
- .align 2, 0
-_0809C928: .4byte 0xffff0000
-_0809C92C:
- movs r0, 0x85
-_0809C92E:
- pop {r1}
- bx r1
- thumb_func_end BerryTypeToItemId
-
- thumb_func_start GetBerryNameByBerryType
-GetBerryNameByBerryType: @ 809C934
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl sub_809C8A0
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0xFF
- strb r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetBerryNameByBerryType
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unk_814B6F0.s b/asm/berry_crush.s
index 90882d61c..42de36a1f 100644
--- a/asm/unk_814B6F0.s
+++ b/asm/berry_crush.s
@@ -39,7 +39,7 @@ _0814B716:
str r0, [r5]
adds r0, r4, 0
bl SetMainCallback2
- ldr r0, _0814B748 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _0814B748 @ =CB2_ReturnToField
cmp r4, r0
bne _0814B73E
ldr r0, _0814B74C @ =0x0000012f
@@ -53,7 +53,7 @@ _0814B740:
pop {r1}
bx r1
.align 2, 0
-_0814B748: .4byte c2_exit_to_overworld_2_switch
+_0814B748: .4byte CB2_ReturnToField
_0814B74C: .4byte 0x0000012f
_0814B750: .4byte sub_8056534
thumb_func_end sub_814B6FC
@@ -204,7 +204,7 @@ _0814B878: .4byte gSpecialVar_ItemId
_0814B87C:
ldrh r0, [r1]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_0814B884:
ldr r4, _0814B8E0 @ =gUnknown_203F3DC
ldr r2, [r4]
@@ -265,7 +265,7 @@ sub_814B8F0: @ 814B8F0
ldr r1, _0814B910 @ =sub_814B860
movs r0, 0x5
movs r2, 0
- bl sub_813CD50
+ bl InitBerryPouch
pop {r0}
bx r0
.align 2, 0
diff --git a/asm/unk_814BB4C.s b/asm/berry_crush_2.s
index 9c0e0503b..172724d0f 100644
--- a/asm/unk_814BB4C.s
+++ b/asm/berry_crush_2.s
@@ -201,7 +201,7 @@ _0814BC98:
_0814BCA2:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldrb r1, [r5, 0x1]
movs r0, 0x2
mov r8, r0
@@ -229,7 +229,7 @@ _0814BCA2:
movs r0, 0
movs r1, 0x2
adds r2, r4, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
b _0814BD12
.align 2, 0
_0814BCE8: .4byte gStringVar4
@@ -250,7 +250,7 @@ _0814BCF0:
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
_0814BD12:
movs r0, 0
movs r1, 0x3
@@ -287,7 +287,7 @@ _0814BD48:
beq _0814BD5A
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
_0814BD5A:
ldrb r0, [r7, 0xE]
movs r1, 0x1
@@ -597,7 +597,7 @@ _0814BFA0: .4byte gUnknown_83DFC9C
_0814BFA4:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
movs r0, 0xA
movs r1, 0x1
movs r2, 0
@@ -1046,7 +1046,7 @@ sub_814C2FC: @ 814C2FC
mov r10, r3
_0814C320:
lsls r0, r7, 4
- ldr r1, _0814C3C4 @ =gUnknown_3003ED0
+ ldr r1, _0814C3C4 @ =gRecvCmds
adds r2, r0, r1
ldrh r1, [r2]
movs r0, 0xFF
@@ -1127,7 +1127,7 @@ _0814C320:
b _0814C3D6
.align 2, 0
_0814C3C0: .4byte gUnknown_846E2E0
-_0814C3C4: .4byte gUnknown_3003ED0
+_0814C3C4: .4byte gRecvCmds
_0814C3C8:
adds r0, r4, r6
adds r2, r0, 0
@@ -1671,7 +1671,7 @@ sub_814C7BC: @ 814C7BC
push {r4,r5,lr}
adds r5, r0, 0
movs r4, 0
- ldr r3, _0814C808 @ =gUnknown_3003ED0
+ ldr r3, _0814C808 @ =gRecvCmds
ldrb r0, [r5, 0x9]
cmp r4, r0
bcs _0814C7E0
@@ -1710,7 +1710,7 @@ _0814C7F8:
strb r0, [r2]
b _0814C84A
.align 2, 0
-_0814C808: .4byte gUnknown_3003ED0
+_0814C808: .4byte gRecvCmds
_0814C80C:
adds r4, r5, 0
adds r4, 0x4E
@@ -2758,7 +2758,7 @@ _0814D03C:
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0814D080 @ =gStringVar2
- bl sub_815EFA0
+ bl GetBerryPowder
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0
@@ -2855,7 +2855,7 @@ _0814D106:
beq _0814D17E
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _0814D148 @ =gUnknown_8419F54
movs r0, 0
str r0, [sp]
@@ -2868,7 +2868,7 @@ _0814D106:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -2949,7 +2949,7 @@ _0814D1CA:
bl sub_80F7858
b _0814D230
_0814D1D0:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@@ -2963,7 +2963,7 @@ _0814D1D0:
bl memset
cmp r4, 0
bne _0814D202
- bl sub_8099FAC
+ bl CheckHasAtLeastOneBerry
lsls r0, 24
cmp r0, 0
beq _0814D1FE
@@ -2979,7 +2979,7 @@ _0814D204:
_0814D206:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
movs r4, 0
str r4, [sp]
adds r0, r6, 0
@@ -3159,7 +3159,7 @@ _0814D34A:
_0814D356:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r5, 0
bl sub_814DA04
movs r0, 0x1
@@ -3217,7 +3217,7 @@ _0814D3BA:
_0814D3C0:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldrh r1, [r5, 0x14]
cmp r1, 0x3
bne _0814D3F0
@@ -3232,7 +3232,7 @@ _0814D3C0:
str r1, [sp, 0xC]
movs r0, 0
movs r1, 0x2
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
b _0814D40C
.align 2, 0
_0814D3EC: .4byte gUnknown_846E328
@@ -3249,7 +3249,7 @@ _0814D3F0:
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
_0814D40C:
movs r0, 0
movs r1, 0x3
diff --git a/asm/unk_814D5C8.s b/asm/berry_crush_3.s
index 4c78d4459..f447c848f 100644
--- a/asm/unk_814D5C8.s
+++ b/asm/berry_crush_3.s
@@ -49,7 +49,7 @@ _0814D61C:
movs r0, 0
movs r1, 0
bl SetGpuReg
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl reset_temp_tile_data_buffers
b _0814D878
_0814D63A:
@@ -186,8 +186,8 @@ _0814D768:
beq _0814D774
b _0814D87E
_0814D774:
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
adds r0, r5, 0
bl sub_814EB38
adds r0, r5, 0
@@ -424,7 +424,7 @@ _0814D962:
bl ClearGpuRegBits
b _0814D9BA
_0814D9A2:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r0, r5, 0
bl sub_814EF10
bl sub_815C9F4
@@ -1212,7 +1212,7 @@ sub_814DF44: @ 814DF44
movs r1, 0x2
adds r2, r4, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r3}
mov r8, r3
@@ -1355,7 +1355,7 @@ _0814E048:
movs r1, 0x2
adds r2, r7, 0
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [sp, 0x2C]
ldrb r0, [r1]
adds r2, r7, 0
@@ -1370,7 +1370,7 @@ _0814E048:
str r1, [sp, 0x8]
movs r1, 0x2
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
mov r9, r6
_0814E0C8:
ldr r6, [sp, 0x20]
@@ -1509,7 +1509,7 @@ _0814E178:
ldr r1, _0814E1F8 @ =gStringVar4
str r1, [sp, 0x8]
movs r1, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
b _0814E27E
.align 2, 0
_0814E1E4: .4byte gStringVar1
@@ -1537,7 +1537,7 @@ _0814E21A:
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
- ldr r0, _0814E294 @ =gUnknown_83DF7E8
+ ldr r0, _0814E294 @ =sBerries
adds r1, r0
ldr r0, _0814E298 @ =gStringVar1
bl StringCopy
@@ -1573,7 +1573,7 @@ _0814E21A:
ldr r1, _0814E2A0 @ =gStringVar4
str r1, [sp, 0x8]
movs r1, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
mov r9, r4
mov r6, r8
adds r6, 0xA2
@@ -1591,7 +1591,7 @@ _0814E27E:
bl StringCopy
b _0814E2B8
.align 2, 0
-_0814E294: .4byte gUnknown_83DF7E8
+_0814E294: .4byte sBerries
_0814E298: .4byte gStringVar1
_0814E29C: .4byte gUnknown_846F4B8
_0814E2A0: .4byte gStringVar4
@@ -1632,7 +1632,7 @@ _0814E2B8:
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r10
lsls r0, r2, 24
lsrs r0, 24
@@ -1702,7 +1702,7 @@ sub_814E32C: @ 814E32C
movs r1, 0x2
movs r2, 0x2
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, _0814E568 @ =gUnknown_841D088
movs r0, 0x2
adds r1, r4, 0
@@ -1722,7 +1722,7 @@ sub_814E32C: @ 814E32C
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r6, 0
subs r0, 0x20
lsls r0, 24
@@ -1759,7 +1759,7 @@ sub_814E32C: @ 814E32C
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, _0814E57C @ =gUnknown_841D078
movs r0, 0x2
adds r1, r4, 0
@@ -1779,7 +1779,7 @@ sub_814E32C: @ 814E32C
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r6, 0
subs r0, 0x9
lsls r0, 24
@@ -1806,7 +1806,7 @@ sub_814E32C: @ 814E32C
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r7, 0
adds r0, 0xE
lsls r0, 24
@@ -1821,7 +1821,7 @@ sub_814E32C: @ 814E32C
movs r1, 0x2
movs r2, 0x2
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, _0814E588 @ =gUnknown_841D098
movs r0, 0x2
adds r1, r4, 0
@@ -1842,7 +1842,7 @@ sub_814E32C: @ 814E32C
movs r1, 0x3
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
mov r4, r8
ldrb r2, [r4, 0x16]
ldrh r0, [r4, 0x16]
@@ -1919,7 +1919,7 @@ _0814E4EA:
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
b _0814E5B6
.align 2, 0
_0814E560: .4byte gUnknown_846E3DC
@@ -1949,7 +1949,7 @@ _0814E59C:
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
_0814E5B6:
adds r0, r7, 0
adds r0, 0xE
@@ -1970,7 +1970,7 @@ _0814E5B6:
movs r1, 0x2
movs r2, 0x2
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, _0814E638 @ =gStringVar1
ldr r4, [sp, 0x10]
ldrh r1, [r4, 0x8]
@@ -1998,7 +1998,7 @@ _0814E5B6:
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x1C
pop {r3-r5}
mov r8, r3
@@ -2097,7 +2097,7 @@ _0814E6E0:
ldr r4, _0814E700 @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r5]
movs r1, 0
adds r2, r4, 0
@@ -2246,7 +2246,7 @@ sub_814E80C: @ 814E80C
adds r5, r4, r0
ldrb r0, [r5]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r5]
bl RemoveWindow
adds r0, r4, 0
@@ -2309,7 +2309,7 @@ _0814E876:
ldr r4, _0814E8AC @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r7, 0x2]
movs r1, 0
adds r2, r4, 0
@@ -2341,7 +2341,7 @@ _0814E8B0:
str r5, [sp, 0x8]
movs r1, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r5, _0814EA04 @ =gUnknown_841D124
movs r0, 0x2
adds r1, r5, 0
@@ -2358,7 +2358,7 @@ _0814E8B0:
str r5, [sp, 0x8]
movs r1, 0x2
movs r3, 0x12
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x2A
str r0, [sp, 0xC]
ldr r1, _0814EA08 @ =gStringVar4
@@ -2383,7 +2383,7 @@ _0814E90E:
movs r1, 0x2
movs r2, 0x4
ldr r3, [sp, 0xC]
- bl box_print
+ bl AddTextPrinterParameterized3
movs r3, 0
mov r0, r9
lsls r4, r0, 1
@@ -2456,7 +2456,7 @@ _0814E96E:
str r1, [sp, 0x8]
movs r1, 0x3
ldr r3, [sp, 0xC]
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [sp, 0x10]
lsls r0, r1, 24
lsrs r0, 24
@@ -2499,7 +2499,7 @@ _0814EA3C: .4byte gMain
_0814EA40:
ldrb r0, [r7, 0x2]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r7, 0x2]
bl ClearWindowTilemap
ldrb r0, [r7, 0x2]
@@ -2723,7 +2723,7 @@ _0814EBC6:
str r4, [sp, 0x10]
movs r1, 0x2
movs r3, 0x1
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
b _0814EC4C
.align 2, 0
_0814EC10: .4byte 0x000001bb
@@ -2752,7 +2752,7 @@ _0814EC18:
str r4, [sp, 0x10]
movs r1, 0x2
movs r3, 0x1
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
_0814EC4C:
ldr r1, _0814EC7C @ =0x000001bb
adds r0, r6, r1
diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s
deleted file mode 100644
index ec40e1d98..000000000
--- a/asm/berry_fix_program.s
+++ /dev/null
@@ -1,344 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815F6E0
-sub_815F6E0: @ 815F6E0
- push {r4-r6,lr}
- movs r6, 0x80
- lsls r6, 19
- movs r2, 0
- strh r2, [r6]
- ldr r1, _0815F73C @ =0x04000010
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- adds r1, 0x3E
- strh r2, [r1]
- ldr r5, _0815F740 @ =gUnknown_847A890
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- adds r0, r5, 0x4
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, _0815F744 @ =0x0600f800
- bl LZ77UnCompVram
- adds r5, 0x8
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0xA0
- lsls r1, 19
- movs r4, 0x80
- lsls r4, 1
- adds r2, r4, 0
- bl CpuSet
- ldr r1, _0815F748 @ =0x04000008
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- strh r4, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F73C: .4byte 0x04000010
-_0815F740: .4byte gUnknown_847A890
-_0815F744: .4byte 0x0600f800
-_0815F748: .4byte 0x04000008
- thumb_func_end sub_815F6E0
-
- thumb_func_start sub_815F74C
-sub_815F74C: @ 815F74C
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0815F7C4 @ =0x0000ffff
- bl DisableInterrupts
- movs r0, 0x1
- bl EnableInterrupts
- bl m4aSoundVSyncOff
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp]
- ldr r0, _0815F7C8 @ =0x040000d4
- mov r1, sp
- str r1, [r0]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r0, 0x4]
- ldr r1, _0815F7CC @ =0x85006000
- str r1, [r0, 0x8]
- ldr r1, [r0, 0x8]
- str r4, [sp]
- mov r1, sp
- str r1, [r0]
- movs r1, 0xA0
- lsls r1, 19
- str r1, [r0, 0x4]
- ldr r1, _0815F7D0 @ =0x85000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl ResetSpriteData
- bl ResetTasks
- bl remove_some_task
- ldr r0, _0815F7D4 @ =gUnknown_3005ECC
- strb r4, [r0]
- ldr r0, _0815F7D8 @ =sub_815F7F0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0815F7DC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- ldr r0, _0815F7E0 @ =sub_815F7E4
- bl SetMainCallback2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F7C4: .4byte 0x0000ffff
-_0815F7C8: .4byte 0x040000d4
-_0815F7CC: .4byte 0x85006000
-_0815F7D0: .4byte 0x85000100
-_0815F7D4: .4byte gUnknown_3005ECC
-_0815F7D8: .4byte sub_815F7F0
-_0815F7DC: .4byte gTasks
-_0815F7E0: .4byte sub_815F7E4
- thumb_func_end sub_815F74C
-
- thumb_func_start sub_815F7E4
-sub_815F7E4: @ 815F7E4
- push {lr}
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_815F7E4
-
- thumb_func_start sub_815F7F0
-sub_815F7F0: @ 815F7F0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0815F818 @ =gTasks+0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bls _0815F80C
- b _0815F9A6
-_0815F80C:
- lsls r0, 2
- ldr r1, _0815F81C @ =_0815F820
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0815F818: .4byte gTasks+0x8
-_0815F81C: .4byte _0815F820
- .align 2, 0
-_0815F820:
- .4byte _0815F84C
- .4byte _0815F856
- .4byte _0815F874
- .4byte _0815F9A6
- .4byte _0815F890
- .4byte _0815F8C8
- .4byte _0815F934
- .4byte _0815F96A
- .4byte _0815F96E
- .4byte _0815F98C
- .4byte _0815F996
-_0815F84C:
- movs r0, 0x5
- bl sub_815F6E0
- movs r0, 0x1
- b _0815F9A4
-_0815F856:
- ldr r0, _0815F870 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F864
- b _0815F9A6
-_0815F864:
- movs r0, 0
- bl sub_815F6E0
- movs r0, 0x2
- b _0815F9A4
- .align 2, 0
-_0815F870: .4byte gMain
-_0815F874:
- ldr r0, _0815F88C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F882
- b _0815F9A6
-_0815F882:
- movs r0, 0x1
- bl sub_815F6E0
- movs r0, 0x4
- b _0815F9A4
- .align 2, 0
-_0815F88C: .4byte gMain
-_0815F890:
- ldr r0, _0815F8B4 @ =gUnknown_3005EF0
- ldr r1, _0815F8B8 @ =gMultiBootProgram_BerryGlitchFix_Start
- str r1, [r0]
- ldr r2, _0815F8BC @ =gUnknown_3005EF8
- ldr r0, _0815F8C0 @ =gMultiBootProgram_BerryGlitchFix_End
- subs r0, r1
- str r0, [r2]
- ldr r0, _0815F8C4 @ =gUnknown_3005F00
- str r1, [r0, 0x28]
- adds r1, r0, 0
- adds r1, 0x4B
- movs r4, 0
- strb r4, [r1]
- bl MultiBootInit
- strh r4, [r5, 0x2]
- movs r0, 0x5
- b _0815F9A4
- .align 2, 0
-_0815F8B4: .4byte gUnknown_3005EF0
-_0815F8B8: .4byte gMultiBootProgram_BerryGlitchFix_Start
-_0815F8BC: .4byte gUnknown_3005EF8
-_0815F8C0: .4byte gMultiBootProgram_BerryGlitchFix_End
-_0815F8C4: .4byte gUnknown_3005F00
-_0815F8C8:
- ldr r0, _0815F910 @ =gUnknown_3005F00
- ldrb r6, [r0, 0x18]
- adds r4, r0, 0
- cmp r6, 0
- bne _0815F920
- ldr r0, [r4, 0x1C]
- ldr r1, _0815F914 @ =0x00020200
- ands r0, r1
- cmp r0, r1
- bne _0815F920
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB4
- ble _0815F924
- movs r0, 0x2
- bl sub_815F6E0
- ldr r0, _0815F918 @ =gUnknown_3005EF0
- ldr r1, [r0]
- adds r1, 0xC0
- ldr r0, _0815F91C @ =gUnknown_3005EF8
- ldr r2, [r0]
- subs r2, 0xC0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x4
- bl MultiBootStartMaster
- strh r6, [r5, 0x2]
- movs r0, 0x6
- b _0815F9A4
- .align 2, 0
-_0815F910: .4byte gUnknown_3005F00
-_0815F914: .4byte 0x00020200
-_0815F918: .4byte gUnknown_3005EF0
-_0815F91C: .4byte gUnknown_3005EF8
-_0815F920:
- movs r0, 0
- strh r0, [r5, 0x2]
-_0815F924:
- adds r0, r4, 0
- bl MultiBootMain
- ldr r1, _0815F930 @ =gUnknown_3005EF4
- str r0, [r1]
- b _0815F9A6
- .align 2, 0
-_0815F930: .4byte gUnknown_3005EF4
-_0815F934:
- ldr r4, _0815F954 @ =gUnknown_3005F00
- adds r0, r4, 0
- bl MultiBootMain
- ldr r1, _0815F958 @ =gUnknown_3005EF4
- str r0, [r1]
- adds r0, r4, 0
- bl MultiBootCheckComplete
- cmp r0, 0
- beq _0815F95C
- movs r0, 0x3
- bl sub_815F6E0
- movs r0, 0x7
- b _0815F9A4
- .align 2, 0
-_0815F954: .4byte gUnknown_3005F00
-_0815F958: .4byte gUnknown_3005EF4
-_0815F95C:
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0815F9A6
- movs r0, 0x9
- b _0815F9A4
-_0815F96A:
- movs r0, 0x8
- b _0815F9A4
-_0815F96E:
- ldr r0, _0815F988 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815F9A6
- adds r0, r2, 0
- bl DestroyTask
- bl DoSoftReset
- b _0815F9A6
- .align 2, 0
-_0815F988: .4byte gMain
-_0815F98C:
- movs r0, 0x4
- bl sub_815F6E0
- movs r0, 0xA
- b _0815F9A4
-_0815F996:
- ldr r0, _0815F9B0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815F9A6
- movs r0, 0
-_0815F9A4:
- strh r0, [r5]
-_0815F9A6:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F9B0: .4byte gMain
- thumb_func_end sub_815F7F0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index b58832931..ab157ab99 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_813CD50
-sub_813CD50: @ 813CD50
+ thumb_func_start InitBerryPouch
+InitBerryPouch: @ 813CD50
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -92,7 +92,7 @@ _0813CDF0: .4byte gTextFlags
_0813CDF4: .4byte gSpecialVar_ItemId
_0813CDF8: .4byte sub_813CE30
_0813CDFC: .4byte 0x0000080c
- thumb_func_end sub_813CD50
+ thumb_func_end InitBerryPouch
thumb_func_start sub_813CE00
sub_813CE00: @ 813CE00
@@ -130,7 +130,7 @@ _0813CE32:
lsrs r0, 24
cmp r0, 0x1
beq _0813CE56
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -183,11 +183,11 @@ _0813CE84:
.4byte _0813CFB0
.4byte _0813CFBE
_0813CED0:
- bl sub_80BF768
+ bl VblankHblankHandlerSetZero
bl clear_scheduled_bg_copies_to_vram
b _0813CFD2
_0813CEDA:
- bl remove_some_task
+ bl ScanlineEffect_Stop
b _0813CFD2
_0813CEE0:
bl FreeAllSpritePalettes
@@ -199,10 +199,10 @@ _0813CEEC:
bl ResetSpriteData
b _0813CFD2
_0813CEF2:
- bl sub_80984D8
+ bl ResetItemMenuIconState
b _0813CFD2
_0813CEF8:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0813CFD2
@@ -255,7 +255,7 @@ _0813CF62:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0813CF98 @ =gUnknown_3005E70
+ ldr r0, _0813CF98 @ =gMultiuseListMenuTemplate
ldr r2, _0813CF9C @ =gUnknown_203F370
ldrh r1, [r2, 0xA]
ldrh r2, [r2, 0x8]
@@ -273,7 +273,7 @@ _0813CF62:
b _0813CFD2
.align 2, 0
_0813CF94: .4byte sub_813DA68
-_0813CF98: .4byte gUnknown_3005E70
+_0813CF98: .4byte gMultiuseListMenuTemplate
_0813CF9C: .4byte gUnknown_203F370
_0813CFA0: .4byte gTasks
_0813CFA4:
@@ -386,7 +386,7 @@ _0813D078: .4byte gUnknown_203F370
thumb_func_start sub_813D07C
sub_813D07C: @ 813D07C
push {r4,lr}
- bl sub_80BF7C8
+ bl InitBgReg
ldr r4, _0813D0DC @ =gUnknown_203F36C
ldr r0, [r4]
adds r0, 0xC
@@ -573,7 +573,7 @@ sub_813D204: @ 813D204
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _0813D280 @ =gUnknown_20398AC
+ ldr r0, _0813D280 @ =gBagPockets + 0x20
mov r8, r0
movs r6, 0
ldr r0, _0813D284 @ =gUnknown_203F36C
@@ -615,10 +615,10 @@ _0813D254:
ldr r2, [r0]
lsls r0, r6, 3
adds r0, r2
- ldr r1, _0813D290 @ =gUnknown_84166DB
+ ldr r1, _0813D290 @ =gText_Close
str r1, [r0]
str r6, [r0, 0x4]
- ldr r1, _0813D294 @ =gUnknown_3005E70
+ ldr r1, _0813D294 @ =gMultiuseListMenuTemplate
str r2, [r1]
ldr r0, _0813D298 @ =gUnknown_203F370
ldrb r0, [r0, 0x4]
@@ -633,12 +633,12 @@ _0813D254:
adds r2, r1, 0
b _0813D2A6
.align 2, 0
-_0813D280: .4byte gUnknown_20398AC
+_0813D280: .4byte gBagPockets + 0x20
_0813D284: .4byte gUnknown_203F36C
_0813D288: .4byte gUnknown_203F380
_0813D28C: .4byte gUnknown_203F37C
-_0813D290: .4byte gUnknown_84166DB
-_0813D294: .4byte gUnknown_3005E70
+_0813D290: .4byte gText_Close
+_0813D294: .4byte gMultiuseListMenuTemplate
_0813D298: .4byte gUnknown_203F370
_0813D29C:
ldr r0, _0813D310 @ =gUnknown_203F36C
@@ -715,10 +715,10 @@ sub_813D31C: @ 813D31C
lsls r5, r1, 16
lsrs r5, 16
ldr r4, _0813D384 @ =gStringVar4
- ldr r1, _0813D388 @ =gUnknown_84166FF
+ ldr r1, _0813D388 @ =gText_FontSize0
adds r0, r4, 0
bl StringCopy
- ldr r1, _0813D38C @ =gUnknown_8416226
+ ldr r1, _0813D38C @ =gOtherText_UnkF9_08_Clear_01
adds r0, r4, 0
bl StringAppend
ldr r6, _0813D390 @ =gStringVar1
@@ -733,11 +733,11 @@ sub_813D31C: @ 813D31C
bl StringAppend
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r1, _0813D394 @ =gUnknown_84643B4
adds r0, r4, 0
bl StringAppend
- ldr r1, _0813D398 @ =gUnknown_8416703
+ ldr r1, _0813D398 @ =gText_FontSize2
adds r0, r4, 0
bl StringAppend
adds r0, r4, 0
@@ -753,11 +753,11 @@ sub_813D31C: @ 813D31C
bx r0
.align 2, 0
_0813D384: .4byte gStringVar4
-_0813D388: .4byte gUnknown_84166FF
-_0813D38C: .4byte gUnknown_8416226
+_0813D388: .4byte gText_FontSize0
+_0813D38C: .4byte gOtherText_UnkF9_08_Clear_01
_0813D390: .4byte gStringVar1
_0813D394: .4byte gUnknown_84643B4
-_0813D398: .4byte gUnknown_8416703
+_0813D398: .4byte gText_FontSize2
thumb_func_end sub_813D31C
thumb_func_start sub_813D39C
@@ -798,7 +798,7 @@ _0813D3D6:
ldrb r1, [r0, 0x9]
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
ldr r1, [r4]
ldrb r0, [r1, 0x7]
cmp r0, r5
@@ -806,7 +806,7 @@ _0813D3D6:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
@@ -857,10 +857,10 @@ sub_813D430: @ 813D430
lsrs r4, 16
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -869,7 +869,7 @@ sub_813D430: @ 813D430
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0813D4A8 @ =gStringVar4
- ldr r1, _0813D4AC @ =gUnknown_84162B9
+ ldr r1, _0813D4AC @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r5, [sp]
@@ -894,7 +894,7 @@ _0813D498:
_0813D4A0: .4byte gUnknown_203F36C
_0813D4A4: .4byte gStringVar1
_0813D4A8: .4byte gStringVar4
-_0813D4AC: .4byte gUnknown_84162B9
+_0813D4AC: .4byte gText_TimesStrVar1
thumb_func_end sub_813D430
thumb_func_start sub_813D4B0
@@ -980,7 +980,7 @@ sub_813D538: @ 813D538
lsls r1, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetDescription
@@ -1028,7 +1028,7 @@ sub_813D594: @ 813D594
movs r1, 0
movs r2, 0x10
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x8
@@ -1072,7 +1072,7 @@ _0813D5EA:
movs r1, 0xA0
movs r2, 0x8
movs r3, 0x78
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r4]
strb r0, [r1, 0x6]
add sp, 0x10
@@ -1102,7 +1102,7 @@ sub_813D614: @ 813D614
movs r1, 0xD4
movs r2, 0x78
movs r3, 0x98
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r4]
strb r0, [r1, 0x6]
add sp, 0x10
@@ -1132,7 +1132,7 @@ sub_813D64C: @ 813D64C
movs r1, 0x98
movs r2, 0x48
movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r4]
strb r0, [r1, 0x6]
add sp, 0x10
@@ -1358,8 +1358,8 @@ _0813D800: .4byte gUnknown_203F37C
_0813D804: .4byte gUnknown_203F380
thumb_func_end sub_813D7CC
- thumb_func_start sub_813D808
-sub_813D808: @ 813D808
+ thumb_func_start BerryPouch_StartFadeToExitCallback
+BerryPouch_StartFadeToExitCallback: @ 813D808
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -1387,7 +1387,7 @@ sub_813D808: @ 813D808
.align 2, 0
_0813D83C: .4byte gTasks
_0813D840: .4byte sub_813D844
- thumb_func_end sub_813D808
+ thumb_func_end BerryPouch_StartFadeToExitCallback
thumb_func_start sub_813D844
sub_813D844: @ 813D844
@@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844
ldr r4, _0813D884 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _0813D888 @ =gUnknown_203F36C
ldr r0, [r0]
ldr r0, [r0]
@@ -1441,9 +1441,9 @@ _0813D8A4:
thumb_func_start sub_813D8AC
sub_813D8AC: @ 813D8AC
push {r4,lr}
- ldr r4, _0813D904 @ =gUnknown_20398AC
+ ldr r4, _0813D904 @ =gBagPockets + 0x20
adds r0, r4, 0
- bl sub_809A720
+ bl SortAndCompactBagPocket
ldr r3, _0813D908 @ =gUnknown_203F36C
ldr r1, [r3]
movs r0, 0
@@ -1485,7 +1485,7 @@ _0813D8EE:
adds r1, r0, 0
b _0813D916
.align 2, 0
-_0813D904: .4byte gUnknown_20398AC
+_0813D904: .4byte gBagPockets + 0x20
_0813D908: .4byte gUnknown_203F36C
_0813D90C: .4byte gUnknown_203F370
_0813D910:
@@ -1510,15 +1510,15 @@ _0813D92C:
bx r0
thumb_func_end sub_813D8AC
- thumb_func_start sub_813D934
-sub_813D934: @ 813D934
+ thumb_func_start BerryPouch_SetExitCallback
+BerryPouch_SetExitCallback: @ 813D934
ldr r1, _0813D93C @ =gUnknown_203F36C
ldr r1, [r1]
str r0, [r1]
bx lr
.align 2, 0
_0813D93C: .4byte gUnknown_203F36C
- thumb_func_end sub_813D934
+ thumb_func_end BerryPouch_SetExitCallback
thumb_func_start sub_813D940
sub_813D940: @ 813D940
@@ -1574,7 +1574,7 @@ sub_813D940: @ 813D940
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _0813D9F4 @ =gUnknown_84162B9
+ ldr r1, _0813D9F4 @ =gText_TimesStrVar1
mov r0, r9
bl StringExpandPlaceholders
movs r0, 0xA
@@ -1601,7 +1601,7 @@ sub_813D940: @ 813D940
_0813D9E8: .4byte gTasks+0x8
_0813D9EC: .4byte gStringVar1
_0813D9F0: .4byte gStringVar4
-_0813D9F4: .4byte gUnknown_84162B9
+_0813D9F4: .4byte gText_TimesStrVar1
thumb_func_end sub_813D940
thumb_func_start sub_813D9F8
@@ -1631,7 +1631,7 @@ sub_813D9F8: @ 813D9F8
adds r3, r5, 0
bl ConvertIntToDecimalStringN
ldr r4, _0813DA60 @ =gStringVar4
- ldr r1, _0813DA64 @ =gUnknown_84162B9
+ ldr r1, _0813DA64 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -1654,7 +1654,7 @@ sub_813D9F8: @ 813D9F8
.align 2, 0
_0813DA5C: .4byte gStringVar1
_0813DA60: .4byte gStringVar4
-_0813DA64: .4byte gUnknown_84162B9
+_0813DA64: .4byte gText_TimesStrVar1
thumb_func_end sub_813D9F8
thumb_func_start sub_813DA68
@@ -1694,7 +1694,7 @@ _0813DA9E:
ldr r4, _0813DAE0 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
ldr r0, _0813DAE4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
@@ -1748,7 +1748,7 @@ _0813DB10:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _0813DB34 @ =gSpecialVar_ItemId
b _0813DB46
.align 2, 0
@@ -1767,7 +1767,7 @@ _0813DB46:
strh r0, [r1]
_0813DB48:
adds r0, r6, 0
- bl sub_813D808
+ bl BerryPouch_StartFadeToExitCallback
b _0813DB9E
.align 2, 0
_0813DB50: .4byte gUnknown_203F36C
@@ -1784,11 +1784,11 @@ _0813DB58:
lsrs r4, 16
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
strh r0, [r7, 0x4]
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _0813DBA8 @ =gSpecialVar_ItemId
strh r0, [r1]
ldr r0, _0813DBAC @ =gTasks
@@ -1869,7 +1869,7 @@ _0813DC18: .4byte gUnknown_203F384
_0813DC1C: .4byte gUnknown_84643B0
_0813DC20: .4byte gUnknown_203F388
_0813DC24:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1974,7 +1974,7 @@ _0813DC86:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x6
bl sub_813EA08
adds r4, r0, 0
@@ -1985,7 +1985,7 @@ _0813DC86:
ldr r1, _0813DD68 @ =gStringVar1
bl sub_813D39C
ldr r5, _0813DD6C @ =gStringVar4
- ldr r1, _0813DD70 @ =gUnknown_84162FF
+ ldr r1, _0813DD70 @ =gOtherText_StrVar1
adds r0, r5, 0
bl StringExpandPlaceholders
movs r0, 0x2
@@ -2014,7 +2014,7 @@ _0813DD60: .4byte gUnknown_203F388
_0813DD64: .4byte gUnknown_846437C
_0813DD68: .4byte gStringVar1
_0813DD6C: .4byte gStringVar4
-_0813DD70: .4byte gUnknown_84162FF
+_0813DD70: .4byte gOtherText_StrVar1
thumb_func_end sub_813DBE4
thumb_func_start sub_813DD74
@@ -2124,7 +2124,7 @@ sub_813DE0C: @ 813DE0C
cmp r0, 0
bne _0813DE68
adds r0, r5, 0
- bl sub_80A2238
+ bl FieldUseFunc_OakStopsYou
b _0813DEB0
.align 2, 0
_0813DE5C: .4byte gUnknown_203F388
@@ -2497,18 +2497,18 @@ _0813E18A:
ldr r0, _0813E1F4 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldrh r1, [r5, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x9
bl sub_813EA98
ldrb r0, [r5]
ldr r4, _0813E1F8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E1FC @ =gUnknown_3005E70
+ ldr r0, _0813E1FC @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -2534,7 +2534,7 @@ _0813E1EC: .4byte gTasks+0x8
_0813E1F0: .4byte gMain
_0813E1F4: .4byte gSpecialVar_ItemId
_0813E1F8: .4byte gUnknown_203F37A
-_0813E1FC: .4byte gUnknown_3005E70
+_0813E1FC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_813E164
thumb_func_start sub_813E200
@@ -2577,7 +2577,7 @@ _0813E248:
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _0813E270 @ =sub_813D808
+ ldr r1, _0813E270 @ =BerryPouch_StartFadeToExitCallback
str r1, [r0]
_0813E25E:
pop {r4}
@@ -2587,7 +2587,7 @@ _0813E25E:
_0813E264: .4byte gUnknown_203F36C
_0813E268: .4byte sub_8126EDC
_0813E26C: .4byte gTasks
-_0813E270: .4byte sub_813D808
+_0813E270: .4byte BerryPouch_StartFadeToExitCallback
thumb_func_end sub_813E200
thumb_func_start sub_813E274
@@ -2595,14 +2595,14 @@ sub_813E274: @ 813E274
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _0813E288 @ =gUnknown_841632A
+ ldr r2, _0813E288 @ =gText_ThereIsNoPokemon
ldr r3, _0813E28C @ =sub_813E290
movs r1, 0x2
- bl sub_813EB20
+ bl DisplayItemMessageInBerryPouch
pop {r0}
bx r0
.align 2, 0
-_0813E288: .4byte gUnknown_841632A
+_0813E288: .4byte gText_ThereIsNoPokemon
_0813E28C: .4byte sub_813E290
thumb_func_end sub_813E274
@@ -2646,11 +2646,11 @@ sub_813E2B8: @ 813E2B8
ldr r4, _0813E318 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E31C @ =gUnknown_3005E70
+ ldr r0, _0813E31C @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -2671,7 +2671,7 @@ sub_813E2B8: @ 813E2B8
.align 2, 0
_0813E314: .4byte gTasks+0x8
_0813E318: .4byte gUnknown_203F37A
-_0813E31C: .4byte gUnknown_3005E70
+_0813E31C: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_813E2B8
thumb_func_start sub_813E320
@@ -2726,7 +2726,7 @@ sub_813E37C: @ 813E37C
adds r0, r6, r7
ldrh r1, [r0, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -2736,7 +2736,7 @@ sub_813E37C: @ 813E37C
bne _0813E3D8
ldr r1, _0813E3C8 @ =gStringVar1
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0813E3CC @ =gStringVar4
ldr r1, _0813E3D0 @ =gUnknown_8416374
adds r0, r4, 0
@@ -2745,7 +2745,7 @@ sub_813E37C: @ 813E37C
adds r0, r5, 0
movs r1, 0x2
adds r2, r4, 0
- bl sub_813EB20
+ bl DisplayItemMessageInBerryPouch
b _0813E3EA
.align 2, 0
_0813E3C4: .4byte gTasks+0x8
@@ -2761,7 +2761,7 @@ _0813E3D8:
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
- ldr r1, _0813E3F8 @ =sub_813D808
+ ldr r1, _0813E3F8 @ =BerryPouch_StartFadeToExitCallback
str r1, [r0]
_0813E3EA:
pop {r4-r7}
@@ -2770,7 +2770,7 @@ _0813E3EA:
.align 2, 0
_0813E3F0: .4byte gUnknown_203F36C
_0813E3F4: .4byte c2_8123744
-_0813E3F8: .4byte sub_813D808
+_0813E3F8: .4byte BerryPouch_StartFadeToExitCallback
thumb_func_end sub_813E37C
thumb_func_start sub_813E3FC
@@ -2786,14 +2786,14 @@ sub_813E3FC: @ 813E3FC
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _0813E424 @ =sub_813D808
+ ldr r0, _0813E424 @ =BerryPouch_StartFadeToExitCallback
str r0, [r1]
bx lr
.align 2, 0
_0813E418: .4byte gUnknown_203F36C
_0813E41C: .4byte sub_808CE60
_0813E420: .4byte gTasks
-_0813E424: .4byte sub_813D808
+_0813E424: .4byte BerryPouch_StartFadeToExitCallback
thumb_func_end sub_813E3FC
thumb_func_start sub_813E428
@@ -2815,9 +2815,9 @@ sub_813E428: @ 813E428
bne _0813E488
ldrh r0, [r6]
ldr r1, _0813E478 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0813E47C @ =gStringVar4
- ldr r1, _0813E480 @ =gUnknown_84168F1
+ ldr r1, _0813E480 @ =gText_OhNoICantBuyThat
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2827,14 +2827,14 @@ sub_813E428: @ 813E428
ldr r3, _0813E484 @ =sub_813E2B8
adds r0, r5, 0
adds r2, r4, 0
- bl sub_813EB20
+ bl DisplayItemMessageInBerryPouch
b _0813E4CE
.align 2, 0
_0813E470: .4byte gTasks+0x8
_0813E474: .4byte gSpecialVar_ItemId
_0813E478: .4byte gStringVar1
_0813E47C: .4byte gStringVar4
-_0813E480: .4byte gUnknown_84168F1
+_0813E480: .4byte gText_OhNoICantBuyThat
_0813E484: .4byte sub_813E2B8
_0813E488:
movs r0, 0x1
@@ -2855,9 +2855,9 @@ _0813E4A0:
_0813E4A8:
ldrh r0, [r6]
ldr r1, _0813E4D4 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0813E4D8 @ =gStringVar4
- ldr r1, _0813E4DC @ =gUnknown_8416911
+ ldr r1, _0813E4DC @ =gText_HowManyWouldYouLikeToSell
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2867,7 +2867,7 @@ _0813E4A8:
ldr r3, _0813E4E0 @ =sub_813E5B8
adds r0, r7, 0
adds r2, r4, 0
- bl sub_813EB20
+ bl DisplayItemMessageInBerryPouch
_0813E4CE:
pop {r4-r7}
pop {r0}
@@ -2875,7 +2875,7 @@ _0813E4CE:
.align 2, 0
_0813E4D4: .4byte gStringVar1
_0813E4D8: .4byte gStringVar4
-_0813E4DC: .4byte gUnknown_8416911
+_0813E4DC: .4byte gText_HowManyWouldYouLikeToSell
_0813E4E0: .4byte sub_813E5B8
thumb_func_end sub_813E428
@@ -2893,7 +2893,7 @@ sub_813E4E4: @ 813E4E4
ldr r6, _0813E544 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -2907,7 +2907,7 @@ sub_813E4E4: @ 813E4E4
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0813E548 @ =gStringVar4
- ldr r1, _0813E54C @ =gUnknown_8416936
+ ldr r1, _0813E54C @ =gText_ICanPayThisMuch_WouldThatBeOkay
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2917,7 +2917,7 @@ sub_813E4E4: @ 813E4E4
ldr r3, _0813E550 @ =sub_813E554
adds r0, r5, 0
adds r2, r4, 0
- bl sub_813EB20
+ bl DisplayItemMessageInBerryPouch
pop {r4-r6}
pop {r0}
bx r0
@@ -2925,7 +2925,7 @@ sub_813E4E4: @ 813E4E4
_0813E540: .4byte gTasks+0x8
_0813E544: .4byte gStringVar3
_0813E548: .4byte gStringVar4
-_0813E54C: .4byte gUnknown_8416936
+_0813E54C: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
_0813E550: .4byte sub_813E554
thumb_func_end sub_813E4E4
@@ -3004,7 +3004,7 @@ sub_813E5B8: @ 813E5B8
bl ConvertIntToDecimalStringN
ldr r2, _0813E65C @ =gStringVar4
mov r8, r2
- ldr r1, _0813E660 @ =gUnknown_84162B9
+ ldr r1, _0813E660 @ =gText_TimesStrVar1
mov r0, r8
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3024,7 +3024,7 @@ sub_813E5B8: @ 813E5B8
mov r3, r9
ldrh r1, [r3, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3052,7 +3052,7 @@ sub_813E5B8: @ 813E5B8
_0813E654: .4byte gTasks+0x8
_0813E658: .4byte gStringVar1
_0813E65C: .4byte gStringVar4
-_0813E660: .4byte gUnknown_84162B9
+_0813E660: .4byte gText_TimesStrVar1
_0813E664: .4byte sub_813E690
thumb_func_end sub_813E5B8
@@ -3103,7 +3103,7 @@ sub_813E690: @ 813E690
bl sub_813D9F8
ldrh r1, [r5, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3188,11 +3188,11 @@ sub_813E768: @ 813E768
ldr r0, _0813E7D8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0813E7DC @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _0813E7E0 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3206,14 +3206,14 @@ sub_813E768: @ 813E768
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0813E7E4 @ =gStringVar4
- ldr r1, _0813E7E8 @ =gUnknown_8416959
+ ldr r1, _0813E7E8 @ =gText_TurnedOverItemsWorthYen
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r3, _0813E7EC @ =sub_813E7F0
adds r0, r5, 0
movs r1, 0x2
adds r2, r4, 0
- bl sub_813EB20
+ bl DisplayItemMessageInBerryPouch
pop {r4-r6}
pop {r0}
bx r0
@@ -3223,7 +3223,7 @@ _0813E7D8: .4byte gSpecialVar_ItemId
_0813E7DC: .4byte gStringVar1
_0813E7E0: .4byte gStringVar3
_0813E7E4: .4byte gStringVar4
-_0813E7E8: .4byte gUnknown_8416959
+_0813E7E8: .4byte gText_TurnedOverItemsWorthYen
_0813E7EC: .4byte sub_813E7F0
thumb_func_end sub_813E768
@@ -3250,7 +3250,7 @@ sub_813E7F0: @ 813E7F0
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r7, _0813E8C4 @ =gSaveBlock1Ptr
ldr r4, [r7]
movs r3, 0xA4
@@ -3277,11 +3277,11 @@ sub_813E7F0: @ 813E7F0
ldr r4, _0813E8C8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E8CC @ =gUnknown_3005E70
+ ldr r0, _0813E8CC @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -3322,7 +3322,7 @@ _0813E8BC: .4byte gTasks+0x8
_0813E8C0: .4byte gSpecialVar_ItemId
_0813E8C4: .4byte gSaveBlock1Ptr
_0813E8C8: .4byte gUnknown_203F37A
-_0813E8CC: .4byte gUnknown_3005E70
+_0813E8CC: .4byte gMultiuseListMenuTemplate
_0813E8D0: .4byte sub_813E8D4
thumb_func_end sub_813E7F0
@@ -3367,16 +3367,16 @@ sub_813E910: @ 813E910
movs r0, 0
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x13
movs r2, 0xD0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
movs r0, 0
movs r1, 0xA
movs r2, 0xC0
- bl sub_814FF2C
- ldr r0, _0813E998 @ =gUnknown_841F408
+ bl TextWindow_SetStdFrame0_WithPal
+ ldr r0, _0813E998 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -3418,7 +3418,7 @@ _0813E97C:
bx r0
.align 2, 0
_0813E994: .4byte gUnknown_84643B8
-_0813E998: .4byte gUnknown_841F408
+_0813E998: .4byte gTMCaseMainWindowPalette
_0813E99C: .4byte gUnknown_203F38C
thumb_func_end sub_813E910
@@ -3465,7 +3465,7 @@ sub_813E9A0: @ 813E9A0
str r4, [sp, 0xC]
str r2, [sp, 0x10]
mov r2, r9
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0x14
pop {r3,r4}
mov r8, r3
@@ -3562,7 +3562,7 @@ sub_813EA98: @ 813EA98
adds r4, r0
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
@@ -3589,7 +3589,7 @@ sub_813EACC: @ 813EACC
cmp r0, 0xFF
beq _0813EB04
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
@@ -3622,8 +3622,8 @@ sub_813EB10: @ 813EB10
_0813EB1C: .4byte gUnknown_203F38C
thumb_func_end sub_813EB10
- thumb_func_start sub_813EB20
-sub_813EB20: @ 813EB20
+ thumb_func_start DisplayItemMessageInBerryPouch
+DisplayItemMessageInBerryPouch: @ 813EB20
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -3642,7 +3642,7 @@ sub_813EB20: @ 813EB20
bl AddWindow
strb r0, [r4, 0x5]
_0813EB44:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x5]
@@ -3666,7 +3666,7 @@ _0813EB44:
.align 2, 0
_0813EB74: .4byte gUnknown_203F38C
_0813EB78: .4byte gUnknown_8464400
- thumb_func_end sub_813EB20
+ thumb_func_end DisplayItemMessageInBerryPouch
thumb_func_start sub_813EB7C
sub_813EB7C: @ 813EB7C
@@ -3685,7 +3685,7 @@ sub_813EB7C: @ 813EB7C
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
@@ -3710,7 +3710,7 @@ sub_813EBA8: @ 813EBA8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/bike.s b/asm/bike.s
index 915c4bf8f..b731e51c0 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -713,8 +713,8 @@ _080BD5C2:
bx r1
thumb_func_end player_should_look_direction_be_enforced_upon_movement
- thumb_func_start sub_80BD5C8
-sub_80BD5C8: @ 80BD5C8
+ thumb_func_start StartTransitionToFlipBikeState
+StartTransitionToFlipBikeState: @ 80BD5C8
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
@@ -738,21 +738,21 @@ _080BD5F4: .4byte gPlayerAvatar
_080BD5F8:
adds r0, r2, 0
bl SetPlayerAvatarTransitionFlags
- movs r4, 0x8D
- lsls r4, 1
+ movs r4, 0x8D @ BGM_FRLG_BICYCLE
+ lsls r4, 1 @ BGM_FRLG_BICYCLE
adds r0, r4, 0
bl sub_8056124
cmp r0, 0
beq _080BD618
adds r0, r4, 0
- bl sub_8055E78
+ bl Overworld_SetSavedMusic
adds r0, r4, 0
- bl sub_8055F48
+ bl Overworld_ChangeMusicTo
_080BD618:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80BD5C8
+ thumb_func_end StartTransitionToFlipBikeState
thumb_func_start sub_80BD620
sub_80BD620: @ 80BD620
diff --git a/asm/blend_palette.s b/asm/blend_palette.s
deleted file mode 100644
index 7c95f18e9..000000000
--- a/asm/blend_palette.s
+++ /dev/null
@@ -1,186 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start BlendPalette
-BlendPalette: @ 8045274
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r12, r1
- lsls r2, 24
- lsrs r7, r2, 24
- mov r0, sp
- strh r3, [r0]
- movs r6, 0
- cmp r6, r12
- bcs _080452FA
- ldr r0, _0804530C @ =gPlttBufferUnfaded
- mov r10, r0
- ldr r1, _08045310 @ =gPlttBufferFaded
- mov r9, r1
-_080452A2:
- mov r0, r8
- adds r5, r6, r0
- lsls r5, 16
- lsrs r5, 15
- mov r1, r10
- adds r0, r5, r1
- ldr r3, [r0]
- lsls r4, r3, 27
- lsls r2, r3, 22
- lsls r3, 17
- add r5, r9
- lsrs r4, 27
- ldr r1, [sp]
- lsls r0, r1, 27
- lsrs r0, 27
- subs r0, r4
- muls r0, r7
- asrs r0, 4
- adds r4, r0
- lsrs r2, 27
- lsls r0, r1, 22
- lsrs r0, 27
- subs r0, r2
- muls r0, r7
- asrs r0, 4
- adds r2, r0
- lsls r2, 5
- orrs r4, r2
- lsrs r3, 27
- lsls r1, 17
- lsrs r1, 27
- subs r1, r3
- adds r0, r1, 0
- muls r0, r7
- asrs r0, 4
- adds r3, r0
- lsls r3, 10
- orrs r4, r3
- strh r4, [r5]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r12
- bcc _080452A2
-_080452FA:
- 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
-_0804530C: .4byte gPlttBufferUnfaded
-_08045310: .4byte gPlttBufferFaded
- thumb_func_end BlendPalette
-
- thumb_func_start sub_8045314
-sub_8045314: @ 8045314
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- adds r6, r2, 0
- adds r4, r3, 0
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r6, 0x10
- bne _08045342
- subs r4, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _080453B2
-_08045336:
- strh r2, [r5]
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, r0
- bne _08045336
- b _080453B2
-_08045342:
- movs r0, 0x1F
- movs r3, 0x1F
- mov r9, r3
- mov r7, r9
- ands r7, r2
- mov r9, r7
- lsrs r2, r1, 21
- ands r2, r0
- mov r12, r2
- lsrs r1, 26
- mov r10, r1
- mov r3, r10
- ands r3, r0
- mov r10, r3
- subs r4, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _080453B2
- movs r7, 0x1F
- mov r8, r7
-_0804536C:
- ldrh r2, [r5]
- movs r3, 0x1F
- ands r3, r2
- lsls r2, 16
- lsrs r1, r2, 21
- mov r0, r8
- ands r1, r0
- lsrs r2, 26
- ands r2, r0
- mov r7, r9
- subs r0, r7, r3
- muls r0, r6
- lsrs r0, 4
- adds r3, r0
- mov r7, r12
- subs r0, r7, r1
- muls r0, r6
- lsrs r0, 4
- adds r1, r0
- lsls r1, 5
- orrs r3, r1
- mov r1, r10
- subs r0, r1, r2
- muls r0, r6
- lsrs r0, 4
- adds r2, r0
- lsls r2, 10
- orrs r3, r2
- strh r3, [r5]
- adds r5, 0x2
- subs r4, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0804536C
-_080453B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8045314
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/blit.s b/asm/blit.s
deleted file mode 100644
index 84b56fd67..000000000
--- a/asm/blit.s
+++ /dev/null
@@ -1,813 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start BlitBitmapRect4BitWithoutColorKey
-BlitBitmapRect4BitWithoutColorKey: @ 8004A60
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- ldr r7, [sp, 0x38]
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r7, 16
- lsrs r7, 16
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- str r7, [sp, 0xC]
- movs r4, 0xFF
- str r4, [sp, 0x10]
- bl BlitBitmapRect4Bit
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BlitBitmapRect4BitWithoutColorKey
-
- thumb_func_start BlitBitmapRect4Bit
-BlitBitmapRect4Bit: @ 8004AA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r4, [sp, 0x54]
- ldr r5, [sp, 0x58]
- ldr r6, [sp, 0x5C]
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- str r6, [sp, 0x10]
- ldr r0, [sp, 0x4]
- ldrh r3, [r0, 0x4]
- ldr r1, [sp, 0xC]
- subs r0, r3, r1
- adds r2, r4
- mov r8, r2
- cmp r0, r4
- bge _08004AF8
- ldr r2, [sp, 0x8]
- adds r0, r2
- mov r8, r0
-_08004AF8:
- ldr r4, [sp, 0x4]
- ldrh r0, [r4, 0x6]
- mov r1, r9
- subs r0, r1
- adds r2, r5, r7
- str r2, [sp, 0x14]
- cmp r0, r5
- bge _08004B0C
- adds r0, r7
- str r0, [sp, 0x14]
-_08004B0C:
- ldr r4, [sp]
- ldrh r1, [r4, 0x4]
- movs r2, 0x7
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x18]
- adds r0, r3, 0
- ands r0, r2
- adds r0, r3, r0
- asrs r0, 3
- str r0, [sp, 0x1C]
- ldr r0, [sp, 0x10]
- cmp r0, 0xFF
- bne _08004BCA
- adds r3, r7, 0
- mov r1, r9
- ldr r2, [sp, 0x14]
- cmp r3, r2
- blt _08004B38
- b _08004C72
-_08004B38:
- ldr r5, [sp, 0x8]
- ldr r6, [sp, 0xC]
- adds r4, r3, 0x1
- str r4, [sp, 0x24]
- adds r0, r1, 0x1
- str r0, [sp, 0x28]
- cmp r5, r8
- bge _08004BBE
- movs r7, 0x3
- asrs r0, r3, 3
- ldr r2, [sp, 0x18]
- muls r0, r2
- lsls r0, 5
- mov r10, r0
- lsls r0, r3, 29
- lsrs r0, 27
- mov r9, r0
- asrs r0, r1, 3
- ldr r4, [sp, 0x1C]
- muls r0, r4
- lsls r0, 5
- mov r12, r0
- lsls r0, r1, 29
- lsrs r3, r0, 27
-_08004B68:
- asrs r0, r5, 1
- ands r0, r7
- ldr r2, [sp]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r5, 3
- lsls r0, 5
- adds r1, r0
- add r1, r10
- mov r4, r9
- adds r2, r1, r4
- asrs r0, r6, 1
- ands r0, r7
- ldr r4, [sp, 0x4]
- ldr r1, [r4]
- adds r1, r0
- asrs r0, r6, 3
- lsls r0, 5
- adds r1, r0
- add r1, r12
- adds r4, r1, r3
- ldrb r2, [r2]
- adds r0, r5, 0
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- adds r0, r6, 0
- ands r0, r1
- lsls r1, r0, 2
- lsls r2, r1
- movs r0, 0xF0
- asrs r0, r1
- ldrb r1, [r4]
- ands r0, r1
- orrs r2, r0
- strb r2, [r4]
- adds r5, 0x1
- adds r6, 0x1
- cmp r5, r8
- blt _08004B68
-_08004BBE:
- ldr r3, [sp, 0x24]
- ldr r1, [sp, 0x28]
- ldr r2, [sp, 0x14]
- cmp r3, r2
- blt _08004B38
- b _08004C72
-_08004BCA:
- adds r3, r7, 0
- mov r1, r9
- ldr r4, [sp, 0x14]
- cmp r3, r4
- bge _08004C72
-_08004BD4:
- ldr r5, [sp, 0x8]
- ldr r6, [sp, 0xC]
- adds r0, r3, 0x1
- str r0, [sp, 0x24]
- adds r2, r1, 0x1
- str r2, [sp, 0x28]
- cmp r5, r8
- bge _08004C68
- movs r4, 0x3
- mov r9, r4
- asrs r0, r3, 3
- ldr r2, [sp, 0x18]
- muls r0, r2
- lsls r0, 5
- str r0, [sp, 0x20]
- lsls r0, r3, 29
- lsrs r0, 27
- mov r10, r0
- movs r3, 0x1
- asrs r0, r1, 3
- ldr r4, [sp, 0x1C]
- muls r0, r4
- lsls r0, 5
- mov r12, r0
- lsls r0, r1, 29
- lsrs r7, r0, 27
-_08004C08:
- asrs r0, r5, 1
- mov r1, r9
- ands r0, r1
- ldr r2, [sp]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r5, 3
- lsls r0, 5
- adds r1, r0
- ldr r4, [sp, 0x20]
- adds r1, r4
- mov r0, r10
- adds r2, r1, r0
- asrs r0, r6, 1
- mov r1, r9
- ands r0, r1
- ldr r4, [sp, 0x4]
- ldr r1, [r4]
- adds r1, r0
- asrs r0, r6, 3
- lsls r0, 5
- adds r1, r0
- add r1, r12
- adds r4, r1, r7
- ldrb r2, [r2]
- adds r0, r5, 0
- ands r0, r3
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- ldr r0, [sp, 0x10]
- cmp r2, r0
- beq _08004C60
- adds r0, r6, 0
- ands r0, r3
- lsls r1, r0, 2
- lsls r2, r1
- movs r0, 0xF0
- asrs r0, r1
- ldrb r1, [r4]
- ands r0, r1
- orrs r2, r0
- strb r2, [r4]
-_08004C60:
- adds r5, 0x1
- adds r6, 0x1
- cmp r5, r8
- blt _08004C08
-_08004C68:
- ldr r3, [sp, 0x24]
- ldr r1, [sp, 0x28]
- ldr r2, [sp, 0x14]
- cmp r3, r2
- blt _08004BD4
-_08004C72:
- 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 BlitBitmapRect4Bit
-
- thumb_func_start FillBitmapRect4Bit
-FillBitmapRect4Bit: @ 8004C84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- adds r5, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r7, r4, 24
- adds r4, r1, r3
- mov r3, r9
- ldrh r1, [r3, 0x4]
- cmp r4, r1
- ble _08004CBA
- adds r4, r1, 0
-_08004CBA:
- adds r2, r0
- mov r12, r2
- mov r2, r9
- ldrh r0, [r2, 0x6]
- cmp r12, r0
- ble _08004CC8
- mov r12, r0
-_08004CC8:
- movs r0, 0x7
- ands r0, r1
- adds r0, r1, r0
- asrs r0, 3
- str r0, [sp]
- adds r1, r5, 0
- cmp r1, r12
- bge _08004D30
-_08004CD8:
- mov r3, r10
- adds r0, r1, 0x1
- mov r8, r0
- cmp r3, r4
- bge _08004D2A
- asrs r0, r1, 3
- ldr r2, [sp]
- muls r0, r2
- lsls r6, r0, 5
- lsls r0, r1, 29
- lsrs r5, r0, 27
-_08004CEE:
- asrs r2, r3, 1
- movs r0, 0x3
- ands r2, r0
- mov r0, r9
- ldr r1, [r0]
- adds r1, r2
- asrs r0, r3, 3
- lsls r0, 5
- adds r1, r0
- adds r1, r6
- adds r2, r1, r5
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08004D1A
- ldrb r0, [r2]
- movs r1, 0xF
- ands r1, r0
- lsls r0, r7, 4
- orrs r1, r0
- strb r1, [r2]
- b _08004D24
-_08004D1A:
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- orrs r0, r7
- strb r0, [r2]
-_08004D24:
- adds r3, 0x1
- cmp r3, r4
- blt _08004CEE
-_08004D2A:
- mov r1, r8
- cmp r1, r12
- blt _08004CD8
-_08004D30:
- 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 FillBitmapRect4Bit
-
- thumb_func_start BlitBitmapRect4BitTo8Bit
-BlitBitmapRect4BitTo8Bit: @ 8004D40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x60]
- ldr r5, [sp, 0x64]
- ldr r4, [sp, 0x68]
- ldr r6, [sp, 0x6C]
- ldr r7, [sp, 0x70]
- mov r8, r7
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 24
- lsrs r6, 24
- str r6, [sp, 0x10]
- mov r0, r8
- lsls r0, 28
- lsrs r0, 24
- str r0, [sp, 0x14]
- lsls r0, r6, 28
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x4]
- ldr r2, [sp, 0xC]
- subs r0, r2
- ldr r1, [sp, 0x8]
- adds r1, r5, r1
- str r1, [sp, 0x18]
- cmp r0, r5
- bge _08004DA6
- ldr r2, [sp, 0x8]
- adds r0, r2
- str r0, [sp, 0x18]
-_08004DA6:
- ldr r5, [sp, 0x4]
- ldrh r1, [r5, 0x6]
- subs r0, r1, r7
- cmp r0, r4
- bge _08004DB8
- adds r0, r3, r1
- subs r0, r7
- str r0, [sp, 0x1C]
- b _08004DBC
-_08004DB8:
- adds r4, r3, r4
- str r4, [sp, 0x1C]
-_08004DBC:
- ldr r0, [sp]
- ldrh r1, [r0, 0x4]
- movs r2, 0x7
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x20]
- ldr r5, [sp, 0x4]
- ldrh r1, [r5, 0x4]
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x24]
- ldr r0, [sp, 0x10]
- cmp r0, 0xFF
- bne _08004E9C
- adds r2, r3, 0
- adds r5, r7, 0
- ldr r1, [sp, 0x1C]
- cmp r2, r1
- blt _08004DEC
- b _08004F7E
-_08004DEC:
- ldr r3, [sp, 0x8]
- lsrs r3, 1
- str r3, [sp, 0x2C]
- movs r0, 0x3
- ands r3, r0
- str r3, [sp, 0x2C]
- ldr r7, [sp, 0x8]
- lsrs r0, r7, 3
- lsls r0, 5
- str r0, [sp, 0x30]
-_08004E00:
- ldr r0, [sp]
- ldr r1, [r0]
- ldr r3, [sp, 0x2C]
- adds r1, r3
- ldr r7, [sp, 0x30]
- adds r1, r7
- asrs r0, r2, 3
- ldr r3, [sp, 0x20]
- muls r0, r3
- lsls r0, 5
- mov r8, r0
- add r1, r8
- lsls r0, r2, 29
- lsrs r7, r0, 27
- adds r6, r1, r7
- ldr r3, [sp, 0x8]
- ldr r4, [sp, 0xC]
- adds r2, 0x1
- mov r10, r2
- adds r0, r5, 0x1
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x18]
- cmp r3, r1
- bge _08004E90
- asrs r0, r5, 3
- ldr r2, [sp, 0x24]
- muls r0, r2
- lsls r0, 6
- mov r12, r0
- lsls r0, r5, 29
- lsrs r0, 26
- mov r9, r0
-_08004E40:
- movs r0, 0x7
- ands r0, r4
- ldr r5, [sp, 0x4]
- ldr r1, [r5]
- adds r1, r0
- asrs r0, r4, 3
- lsls r0, 6
- adds r1, r0
- add r1, r12
- mov r0, r9
- adds r5, r1, r0
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08004E64
- ldrb r0, [r6]
- lsrs r0, 4
- b _08004E80
-_08004E64:
- asrs r2, r3, 1
- movs r0, 0x3
- ands r2, r0
- ldr r0, [sp]
- ldr r1, [r0]
- adds r1, r2
- asrs r0, r3, 3
- lsls r0, 5
- adds r1, r0
- add r1, r8
- adds r6, r1, r7
- ldrb r1, [r6]
- movs r0, 0xF
- ands r0, r1
-_08004E80:
- ldr r1, [sp, 0x14]
- adds r0, r1, r0
- strb r0, [r5]
- adds r3, 0x1
- adds r4, 0x1
- ldr r2, [sp, 0x18]
- cmp r3, r2
- blt _08004E40
-_08004E90:
- mov r2, r10
- ldr r5, [sp, 0x38]
- ldr r3, [sp, 0x1C]
- cmp r2, r3
- blt _08004E00
- b _08004F7E
-_08004E9C:
- adds r2, r3, 0
- adds r5, r7, 0
- ldr r7, [sp, 0x1C]
- cmp r2, r7
- bge _08004F7E
- ldr r0, [sp, 0x8]
- lsrs r0, 1
- str r0, [sp, 0x34]
- movs r0, 0x3
- ldr r1, [sp, 0x34]
- ands r1, r0
- str r1, [sp, 0x34]
-_08004EB4:
- ldr r3, [sp]
- ldr r1, [r3]
- ldr r7, [sp, 0x34]
- adds r1, r7
- ldr r3, [sp, 0x8]
- lsrs r0, r3, 3
- lsls r0, 5
- adds r1, r0
- asrs r0, r2, 3
- ldr r7, [sp, 0x20]
- muls r0, r7
- lsls r0, 5
- mov r8, r0
- add r1, r8
- lsls r0, r2, 29
- lsrs r7, r0, 27
- adds r6, r1, r7
- ldr r4, [sp, 0xC]
- adds r2, 0x1
- mov r10, r2
- adds r0, r5, 0x1
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x18]
- cmp r3, r1
- bge _08004F74
- asrs r0, r5, 3
- ldr r2, [sp, 0x24]
- muls r0, r2
- lsls r0, 6
- mov r9, r0
- lsls r0, r5, 29
- lsrs r0, 26
- mov r12, r0
-_08004EF6:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08004F2A
- ldrb r2, [r6]
- movs r0, 0xF0
- ands r0, r2
- ldr r5, [sp, 0x28]
- cmp r0, r5
- beq _08004F6A
- adds r0, r4, 0
- movs r1, 0x7
- ands r0, r1
- ldr r5, [sp, 0x4]
- ldr r1, [r5]
- adds r1, r0
- asrs r0, r4, 3
- lsls r0, 6
- adds r1, r0
- add r1, r9
- mov r0, r12
- adds r5, r1, r0
- lsrs r0, r2, 4
- ldr r1, [sp, 0x14]
- adds r0, r1, r0
- b _08004F68
-_08004F2A:
- asrs r2, r3, 1
- movs r0, 0x3
- ands r2, r0
- ldr r5, [sp]
- ldr r1, [r5]
- adds r1, r2
- asrs r0, r3, 3
- lsls r0, 5
- adds r1, r0
- add r1, r8
- adds r6, r1, r7
- ldrb r0, [r6]
- movs r2, 0xF
- ands r2, r0
- ldr r0, [sp, 0x10]
- cmp r2, r0
- beq _08004F6A
- adds r0, r4, 0
- movs r1, 0x7
- ands r0, r1
- ldr r5, [sp, 0x4]
- ldr r1, [r5]
- adds r1, r0
- asrs r0, r4, 3
- lsls r0, 6
- adds r1, r0
- add r1, r9
- mov r0, r12
- adds r5, r1, r0
- ldr r1, [sp, 0x14]
- adds r0, r1, r2
-_08004F68:
- strb r0, [r5]
-_08004F6A:
- adds r3, 0x1
- adds r4, 0x1
- ldr r2, [sp, 0x18]
- cmp r3, r2
- blt _08004EF6
-_08004F74:
- mov r2, r10
- ldr r5, [sp, 0x38]
- ldr r3, [sp, 0x1C]
- cmp r2, r3
- blt _08004EB4
-_08004F7E:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BlitBitmapRect4BitTo8Bit
-
- thumb_func_start FillBitmapRect8Bit
-FillBitmapRect8Bit: @ 8004F90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r8, r0
- ldr r0, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- adds r6, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- adds r5, r1, r3
- mov r3, r8
- ldrh r1, [r3, 0x4]
- cmp r5, r1
- ble _08004FC8
- adds r5, r1, 0
-_08004FC8:
- adds r7, r2, r0
- mov r2, r8
- ldrh r0, [r2, 0x6]
- cmp r7, r0
- ble _08004FD4
- adds r7, r0, 0
-_08004FD4:
- movs r0, 0x7
- ands r0, r1
- adds r0, r1, r0
- asrs r0, 3
- str r0, [sp]
- adds r1, r6, 0
- cmp r1, r7
- bge _08005024
-_08004FE4:
- mov r3, r10
- adds r6, r1, 0x1
- str r6, [sp, 0x4]
- cmp r3, r5
- bge _0800501E
- movs r0, 0x7
- mov r12, r0
- asrs r0, r1, 3
- ldr r2, [sp]
- muls r0, r2
- lsls r4, r0, 6
- lsls r0, r1, 29
- lsrs r2, r0, 26
-_08004FFE:
- adds r0, r3, 0
- mov r6, r12
- ands r0, r6
- mov r6, r8
- ldr r1, [r6]
- adds r1, r0
- asrs r0, r3, 3
- lsls r0, 6
- adds r1, r0
- adds r1, r4
- adds r1, r2
- mov r0, r9
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, r5
- blt _08004FFE
-_0800501E:
- ldr r1, [sp, 0x4]
- cmp r1, r7
- blt _08004FE4
-_08005024:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end FillBitmapRect8Bit
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/braille_text.s b/asm/braille_text.s
index 8297df7e7..2428f2984 100644
--- a/asm/braille_text.s
+++ b/asm/braille_text.s
@@ -5,591 +5,4 @@
.text
- thumb_func_start Font6Func
-Font6Func: @ 814F884
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r6, 0
- adds r4, 0x14
- ldrb r0, [r6, 0x1C]
- cmp r0, 0x6
- bls _0814F894
- b _0814FC94
-_0814F894:
- lsls r0, 2
- ldr r1, _0814F8A0 @ =_0814F8A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814F8A0: .4byte _0814F8A4
- .align 2, 0
-_0814F8A4:
- .4byte _0814F8C0
- .4byte _0814FB88
- .4byte _0814FB9A
- .4byte _0814FBC4
- .4byte _0814FBFC
- .4byte _0814FC70
- .4byte _0814FC82
-_0814F8C0:
- ldr r2, _0814F914 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0814F8DA
- ldrb r1, [r4]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0814F8DA
- movs r0, 0
- strb r0, [r6, 0x1E]
-_0814F8DA:
- ldrb r1, [r6, 0x1E]
- cmp r1, 0
- beq _0814F91C
- ldrb r0, [r6, 0x1D]
- cmp r0, 0
- beq _0814F91C
- subs r0, r1, 0x1
- strb r0, [r6, 0x1E]
- ldr r0, _0814F918 @ =gTextFlags
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0814F8F8
- b _0814FB42
-_0814F8F8:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0814F904
- b _0814FB42
-_0814F904:
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0
- strb r0, [r6, 0x1E]
- b _0814FB42
- .align 2, 0
-_0814F914: .4byte gMain
-_0814F918: .4byte gTextFlags
-_0814F91C:
- ldr r2, _0814F92C @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0814F930
- movs r0, 0x1
- b _0814F932
- .align 2, 0
-_0814F92C: .4byte gTextFlags
-_0814F930:
- ldrb r0, [r6, 0x1D]
-_0814F932:
- strb r0, [r6, 0x1E]
- ldr r0, [r6]
- ldrb r3, [r0]
- adds r0, 0x1
- str r0, [r6]
- adds r0, r3, 0
- subs r0, 0xF8
- cmp r0, 0x7
- bls _0814F946
- b _0814FB62
-_0814F946:
- lsls r0, 2
- ldr r1, _0814F950 @ =_0814F954
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814F950: .4byte _0814F954
- .align 2, 0
-_0814F954:
- .4byte _0814FB58
- .4byte _0814FB46
- .4byte _0814FB38
- .4byte _0814FB34
- .4byte _0814F9A2
- .4byte _0814F99C
- .4byte _0814F974
- .4byte _0814FC94
-_0814F974:
- ldrb r0, [r6, 0x6]
- strb r0, [r6, 0x8]
- ldrb r1, [r6, 0x5]
- ldr r0, _0814F998 @ =gFonts
- ldr r2, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r6, 0xB]
- ldrb r0, [r0, 0x5]
- adds r1, r0
- ldrb r0, [r6, 0x9]
- adds r0, r1
- strb r0, [r6, 0x9]
-_0814F992:
- movs r0, 0x2
- b _0814FC96
- .align 2, 0
-_0814F998: .4byte gFonts
-_0814F99C:
- ldr r0, [r6]
- adds r0, 0x1
- b _0814FAF8
-_0814F9A2:
- ldr r0, [r6]
- ldrb r3, [r0]
- adds r0, 0x1
- str r0, [r6]
- subs r0, r3, 0x1
- cmp r0, 0xF
- bls _0814F9B2
- b _0814FB62
-_0814F9B2:
- lsls r0, 2
- ldr r1, _0814F9BC @ =_0814F9C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814F9BC: .4byte _0814F9C0
- .align 2, 0
-_0814F9C0:
- .4byte _0814FA00
- .4byte _0814FA22
- .4byte _0814FA46
- .4byte _0814FA60
- .4byte _0814FAAC
- .4byte _0814FAB2
- .4byte _0814F992
- .4byte _0814FACC
- .4byte _0814FADC
- .4byte _0814FAF0
- .4byte _0814FAF4
- .4byte _0814FAFC
- .4byte _0814FB06
- .4byte _0814FB12
- .4byte _0814FB22
- .4byte _0814FAF4
-_0814FA00:
- ldr r2, [r6]
- ldrb r1, [r2]
- lsls r1, 4
- ldrb r3, [r6, 0xC]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r6, 0xC]
- adds r2, 0x1
- str r2, [r6]
- lsls r0, 24
- lsrs r0, 28
- ldrb r2, [r6, 0xD]
- lsls r1, r2, 28
- lsrs r1, 28
- lsrs r2, 4
- b _0814FAA6
-_0814FA22:
- ldr r1, [r6]
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- ldrb r3, [r6, 0xD]
- movs r2, 0x10
- negs r2, r2
- ands r2, r3
- orrs r2, r0
- strb r2, [r6, 0xD]
- adds r1, 0x1
- str r1, [r6]
- ldrb r0, [r6, 0xC]
- lsrs r0, 4
- lsls r1, r2, 28
- lsrs r1, 28
- lsrs r2, 4
- b _0814FAA6
-_0814FA46:
- ldr r1, [r6]
- ldrb r0, [r1]
- lsls r0, 4
- ldrb r3, [r6, 0xD]
- movs r2, 0xF
- ands r2, r3
- orrs r2, r0
- strb r2, [r6, 0xD]
- adds r1, 0x1
- str r1, [r6]
- ldrb r0, [r6, 0xC]
- lsrs r0, 4
- b _0814FA9E
-_0814FA60:
- ldr r3, [r6]
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r4, [r6, 0xC]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r6, 0xC]
- adds r5, r3, 0x1
- str r5, [r6]
- ldrb r3, [r3, 0x1]
- adds r1, r2, 0
- ands r1, r3
- ldrb r4, [r6, 0xD]
- movs r3, 0x10
- negs r3, r3
- ands r3, r4
- orrs r3, r1
- strb r3, [r6, 0xD]
- adds r4, r5, 0x1
- str r4, [r6]
- ldrb r1, [r5, 0x1]
- lsls r1, 4
- ands r2, r3
- orrs r2, r1
- strb r2, [r6, 0xD]
- adds r4, 0x1
- str r4, [r6]
- lsls r0, 24
- lsrs r0, 28
-_0814FA9E:
- lsls r1, r2, 28
- lsrs r1, 28
- lsls r2, 24
- lsrs r2, 28
-_0814FAA6:
- bl GenerateFontHalfRowLookupTable
- b _0814F992
-_0814FAAC:
- ldr r0, [r6]
- adds r0, 0x1
- b _0814FAF8
-_0814FAB2:
- ldr r0, [r6]
- ldrb r0, [r0]
- movs r1, 0xF
- ands r1, r0
- ldrb r2, [r4]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldr r0, [r6]
- adds r0, 0x1
- b _0814FAF8
-_0814FACC:
- ldr r0, [r6]
- ldrb r1, [r0]
- strb r1, [r6, 0x1E]
- adds r0, 0x1
- str r0, [r6]
- movs r0, 0x6
- strb r0, [r6, 0x1C]
- b _0814F992
-_0814FADC:
- movs r0, 0x1
- strb r0, [r6, 0x1C]
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0814FB42
- movs r0, 0
- strb r0, [r4, 0x2]
- b _0814FB42
-_0814FAF0:
- movs r0, 0x5
- b _0814FC7E
-_0814FAF4:
- ldr r0, [r6]
- adds r0, 0x2
-_0814FAF8:
- str r0, [r6]
- b _0814F992
-_0814FAFC:
- ldr r1, [r6]
- adds r0, r1, 0x1
- str r0, [r6]
- ldrb r3, [r1, 0x1]
- b _0814FB62
-_0814FB06:
- ldr r1, [r6]
- ldrb r0, [r1]
- ldrb r2, [r6, 0x6]
- adds r0, r2
- strb r0, [r6, 0x8]
- b _0814FB1C
-_0814FB12:
- ldr r1, [r6]
- ldrb r0, [r1]
- ldrb r2, [r6, 0x7]
- adds r0, r2
- strb r0, [r6, 0x9]
-_0814FB1C:
- adds r1, 0x1
- str r1, [r6]
- b _0814F992
-_0814FB22:
- ldrb r0, [r6, 0x4]
- ldrb r2, [r6, 0xD]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- b _0814F992
-_0814FB34:
- movs r0, 0x2
- b _0814FB3A
-_0814FB38:
- movs r0, 0x3
-_0814FB3A:
- strb r0, [r6, 0x1C]
- adds r0, r6, 0
- bl TextPrinterInitDownArrowCounters
-_0814FB42:
- movs r0, 0x3
- b _0814FC96
-_0814FB46:
- ldr r0, [r6]
- ldrb r3, [r0]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r3, r1
- adds r0, 0x1
- str r0, [r6]
- b _0814FB62
-_0814FB58:
- ldr r0, [r6]
- adds r0, 0x1
- str r0, [r6]
- movs r0, 0
- b _0814FC96
-_0814FB62:
- adds r0, r3, 0
- bl DecompressGlyphFont6
- adds r0, r6, 0
- bl CopyGlyphToWindow
- ldr r0, _0814FB84 @ =gGlyphInfo
- adds r0, 0x80
- ldrb r1, [r6, 0xA]
- ldrb r0, [r0]
- adds r1, r0
- ldrb r0, [r6, 0x8]
- adds r0, r1
- strb r0, [r6, 0x8]
- movs r0, 0
- b _0814FC96
- .align 2, 0
-_0814FB84: .4byte gGlyphInfo
-_0814FB88:
- adds r0, r6, 0
- bl TextPrinterWait
- lsls r0, 16
- cmp r0, 0
- beq _0814FB42
- movs r0, 0
- strb r0, [r6, 0x1C]
- b _0814FB42
-_0814FB9A:
- adds r0, r6, 0
- bl TextPrinterWaitWithDownArrow
- lsls r0, 16
- cmp r0, 0
- beq _0814FB42
- ldrb r0, [r6, 0x4]
- ldrb r2, [r6, 0xD]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrb r0, [r6, 0x6]
- movs r1, 0
- strb r0, [r6, 0x8]
- ldrb r0, [r6, 0x7]
- strb r0, [r6, 0x9]
- strb r1, [r6, 0x1C]
- b _0814FB42
-_0814FBC4:
- adds r0, r6, 0
- bl TextPrinterWaitWithDownArrow
- lsls r0, 16
- cmp r0, 0
- beq _0814FB42
- adds r0, r6, 0
- bl TextPrinterClearDownArrow
- ldrb r1, [r6, 0x5]
- ldr r0, _0814FBF8 @ =gFonts
- ldr r2, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r6, 0xB]
- ldrb r0, [r0, 0x5]
- adds r1, r0
- strb r1, [r6, 0x1F]
- ldrb r0, [r6, 0x6]
- strb r0, [r6, 0x8]
- movs r0, 0x4
- strb r0, [r6, 0x1C]
- b _0814FB42
- .align 2, 0
-_0814FBF8: .4byte gFonts
-_0814FBFC:
- ldrb r2, [r6, 0x1F]
- cmp r2, 0
- beq _0814FC6C
- ldr r4, _0814FC30 @ =gUnknown_846FB08
- ldr r5, _0814FC34 @ =gSaveBlock2Ptr
- ldr r0, [r5]
- ldrb r0, [r0, 0x14]
- lsls r1, r0, 29
- lsrs r0, r1, 29
- adds r0, r4
- ldrb r0, [r0]
- cmp r2, r0
- bcs _0814FC38
- ldrb r0, [r6, 0x4]
- ldrb r1, [r6, 0xD]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0
- bl ScrollWindow
- movs r0, 0
- strb r0, [r6, 0x1F]
- b _0814FC62
- .align 2, 0
-_0814FC30: .4byte gUnknown_846FB08
-_0814FC34: .4byte gSaveBlock2Ptr
-_0814FC38:
- ldrb r0, [r6, 0x4]
- lsrs r1, 29
- adds r1, r4
- ldrb r2, [r1]
- ldrb r1, [r6, 0xD]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0
- bl ScrollWindow
- ldr r0, [r5]
- ldrb r0, [r0, 0x14]
- lsls r0, 29
- lsrs r0, 29
- adds r0, r4
- ldrb r1, [r6, 0x1F]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r6, 0x1F]
-_0814FC62:
- ldrb r0, [r6, 0x4]
- movs r1, 0x2
- bl CopyWindowToVram
- b _0814FB42
-_0814FC6C:
- strb r2, [r6, 0x1C]
- b _0814FB42
-_0814FC70:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0814FC7E
- b _0814FB42
-_0814FC7E:
- strb r0, [r6, 0x1C]
- b _0814FB42
-_0814FC82:
- ldrb r0, [r6, 0x1E]
- adds r1, r0, 0
- cmp r1, 0
- beq _0814FC90
- subs r0, 0x1
- strb r0, [r6, 0x1E]
- b _0814FB42
-_0814FC90:
- strb r1, [r6, 0x1C]
- b _0814FB42
-_0814FC94:
- movs r0, 0x1
-_0814FC96:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end Font6Func
-
- thumb_func_start DecompressGlyphFont6
-DecompressGlyphFont6: @ 814FC9C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 19
- lsls r2, 9
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 11
- ldr r0, _0814FCF8 @ =gUnknown_846FB0C
- adds r1, r0
- adds r5, r2, r1
- ldr r4, _0814FCFC @ =gGlyphInfo
- adds r0, r5, 0
- adds r1, r4, 0
- bl DecompressGlyphTile
- adds r0, r5, 0
- adds r0, 0x10
- adds r1, r4, 0
- adds r1, 0x20
- bl DecompressGlyphTile
- movs r1, 0x80
- lsls r1, 1
- adds r0, r5, r1
- adds r1, r4, 0
- adds r1, 0x40
- bl DecompressGlyphTile
- movs r1, 0x88
- lsls r1, 1
- adds r0, r5, r1
- adds r1, r4, 0
- adds r1, 0x60
- bl DecompressGlyphTile
- adds r0, r4, 0
- adds r0, 0x80
- movs r1, 0x10
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FCF8: .4byte gUnknown_846FB0C
-_0814FCFC: .4byte gGlyphInfo
- thumb_func_end DecompressGlyphFont6
-
- thumb_func_start GetGlyphWidthFont6
-GetGlyphWidthFont6: @ 814FD00
- movs r0, 0x10
- bx lr
- thumb_func_end GetGlyphWidthFont6
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/bug.s b/asm/bug.s
new file mode 100644
index 000000000..6970411d1
--- /dev/null
+++ b/asm/bug.s
@@ -0,0 +1,829 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B3FAC
+sub_80B3FAC: @ 80B3FAC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3FD8
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080B3FD4 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x4]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+ b _080B4008
+ .align 2, 0
+_080B3FD4: .4byte gBattleAnimArgs
+_080B3FD8:
+ ldr r0, _080B406C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4008
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080B4070 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080B4008:
+ ldr r5, _080B406C @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074844
+ lsls r0, 24
+ ldr r4, _080B4070 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080B4074 @ =sub_8075590
+ str r0, [r6, 0x1C]
+ ldr r1, _080B4078 @ =DestroyAnimSprite
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B406C: .4byte gBattleAnimTarget
+_080B4070: .4byte gBattleAnimArgs
+_080B4074: .4byte sub_8075590
+_080B4078: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B3FAC
+
+ thumb_func_start sub_80B407C
+sub_80B407C: @ 80B407C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B40A0
+ ldr r1, _080B409C @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _080B40BC
+ .align 2, 0
+_080B409C: .4byte gBattleAnimArgs
+_080B40A0:
+ ldr r0, _080B4118 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B40BC
+ ldr r0, _080B411C @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+_080B40BC:
+ ldr r5, _080B4118 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074844
+ lsls r0, 24
+ ldr r4, _080B411C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ ldr r0, _080B4120 @ =sub_8075590
+ str r0, [r6, 0x1C]
+ ldr r1, _080B4124 @ =DestroyAnimSprite
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4118: .4byte gBattleAnimTarget
+_080B411C: .4byte gBattleAnimArgs
+_080B4120: .4byte sub_8075590
+_080B4124: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B407C
+
+ thumb_func_start sub_80B4128
+sub_80B4128: @ 80B4128
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4144
+ ldr r0, _080B4184 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r0, 0x4]
+_080B4144:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080B4184 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080B418C
+ ldr r4, _080B4188 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080B419E
+ .align 2, 0
+_080B4184: .4byte gBattleAnimArgs
+_080B4188: .4byte gBattleAnimTarget
+_080B418C:
+ ldr r0, _080B41B4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_8076D9C
+_080B419E:
+ adds r0, r5, 0
+ bl sub_8075678
+ ldr r0, _080B41B8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x38]
+ ldr r0, _080B41BC @ =sub_80B41C0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B41B4: .4byte gBattleAnimTarget
+_080B41B8: .4byte gBattleAnimArgs
+_080B41BC: .4byte sub_80B41C0
+ thumb_func_end sub_80B4128
+
+ thumb_func_start sub_80B41C0
+sub_80B41C0: @ 80B41C0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B41D6
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ b _080B41F2
+_080B41D6:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0xD
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+_080B41F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B41C0
+
+ thumb_func_start sub_80B41F8
+sub_80B41F8: @ 80B41F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080B4228 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_8076D9C
+ ldr r0, _080B422C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4234
+ ldr r0, _080B4230 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080B4240
+ .align 2, 0
+_080B4228: .4byte gBattleAnimTarget
+_080B422C: .4byte gBattleAnimAttacker
+_080B4230: .4byte gBattleAnimArgs
+_080B4234:
+ ldr r1, _080B4268 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080B4240:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080B426C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B425C
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+_080B425C:
+ ldr r0, _080B4270 @ =sub_80B4274
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4268: .4byte gBattleAnimArgs
+_080B426C: .4byte gBattleAnimTarget
+_080B4270: .4byte sub_80B4274
+ thumb_func_end sub_80B41F8
+
+ thumb_func_start sub_80B4274
+sub_80B4274: @ 80B4274
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080B42A8
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080B42A8:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080B42BC
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080B42BC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B4274
+
+ thumb_func_start sub_80B42C0
+sub_80B42C0: @ 80B42C0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B42E4 @ =sub_80B42E8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B42E4: .4byte sub_80B42E8
+ thumb_func_end sub_80B42C0
+
+ thumb_func_start sub_80B42E8
+sub_80B42E8: @ 80B42E8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x13
+ bgt _080B42FC
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x32]
+ b _080B433A
+_080B42FC:
+ ldrh r1, [r4, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B433A
+ ldrh r1, [r4, 0x2E]
+ subs r1, 0x1
+ strh r1, [r4, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B433A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B4340 @ =sub_80B4344
+ str r0, [r4, 0x1C]
+_080B433A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4340: .4byte sub_80B4344
+ thumb_func_end sub_80B42E8
+
+ thumb_func_start sub_80B4344
+sub_80B4344: @ 80B4344
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B4344
+
+ thumb_func_start sub_80B4364
+sub_80B4364: @ 80B4364
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4384
+ ldr r1, _080B4380 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080B43A6
+ .align 2, 0
+_080B4380: .4byte gBattleAnimArgs
+_080B4384:
+ ldr r0, _080B4480 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B43A6
+ ldr r1, _080B4484 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080B43A6:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B43F6
+ ldr r0, _080B4480 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r5, _080B4488 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080B43F6
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B43E4
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B43F6
+_080B43E4:
+ ldr r0, _080B4484 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0]
+_080B43F6:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080B4488 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r6, _080B4484 @ =gBattleAnimArgs
+ lsrs r4, 24
+ ldrh r0, [r6, 0x4]
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r6, 0x6]
+ adds r1, r2
+ lsls r1, 16
+ ldrh r2, [r7, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r7, 0x22]
+ lsrs r5, r1, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8075A1C
+ ldrh r0, [r6, 0x8]
+ strh r0, [r7, 0x2E]
+ strh r4, [r7, 0x32]
+ strh r5, [r7, 0x36]
+ ldr r0, _080B448C @ =sub_8075590
+ str r0, [r7, 0x1C]
+ ldr r1, _080B4490 @ =DestroyAnimSprite
+ adds r0, r7, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4480: .4byte gBattleAnimAttacker
+_080B4484: .4byte gBattleAnimArgs
+_080B4488: .4byte gBattleAnimTarget
+_080B448C: .4byte sub_8075590
+_080B4490: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B4364
+
+ thumb_func_start sub_80B4494
+sub_80B4494: @ 80B4494
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080B4500 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B44B4
+ ldr r1, _080B4504 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080B44B4:
+ ldr r4, _080B4504 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080B4508 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_8075068
+ ldr r0, _080B450C @ =sub_80B4510
+ str r0, [r6, 0x1C]
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4500: .4byte gBattleAnimAttacker
+_080B4504: .4byte gBattleAnimArgs
+_080B4508: .4byte gBattleAnimTarget
+_080B450C: .4byte sub_80B4510
+ thumb_func_end sub_80B4494
+
+ thumb_func_start sub_80B4510
+sub_80B4510: @ 80B4510
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B453C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ b _080B45CC
+_080B453C:
+ movs r0, 0x2E
+ adds r0, r4
+ mov r8, r0
+ ldrh r7, [r4, 0x20]
+ ldrh r5, [r4, 0x24]
+ ldrh r1, [r4, 0x22]
+ mov r12, r1
+ ldrh r6, [r4, 0x26]
+ mov r2, r8
+ add r1, sp, 0x4
+ movs r3, 0x7
+_080B4552:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080B4552
+ adds r0, r7, r5
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B45CC
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r1, r5, 16
+ asrs r1, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r1, r2
+ lsls r2, r6, 16
+ asrs r2, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8075A1C
+ add r2, sp, 0x4
+ mov r1, r8
+ movs r3, 0x7
+_080B45BE:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080B45BE
+_080B45CC:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B4510
+
+ thumb_func_start sub_80B45D8
+sub_80B45D8: @ 80B45D8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080B45EC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B45F4
+ ldr r4, _080B45F0 @ =gBattleAnimAttacker
+ b _080B45F6
+ .align 2, 0
+_080B45EC: .4byte gBattleAnimArgs
+_080B45F0: .4byte gBattleAnimAttacker
+_080B45F4:
+ ldr r4, _080B4628 @ =gBattleAnimTarget
+_080B45F6:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x12
+ strh r0, [r5, 0x22]
+ ldr r1, _080B462C @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080B4630 @ =sub_8074F50
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4628: .4byte gBattleAnimTarget
+_080B462C: .4byte move_anim_8074EE0
+_080B4630: .4byte sub_8074F50
+ thumb_func_end sub_80B45D8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s
index 734e648b3..ed18eb711 100644
--- a/asm/buy_menu_helpers.s
+++ b/asm/buy_menu_helpers.s
@@ -24,15 +24,15 @@ _0813F686:
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x13
movs r2, 0xE0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
movs r0, 0
movs r1, 0xA
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0
bl PutWindowTilemap
movs r0, 0x4
@@ -114,7 +114,7 @@ sub_813F6F4: @ 813F6F4
str r4, [sp, 0xC]
str r2, [sp, 0x10]
mov r2, r9
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0x14
pop {r3,r4}
mov r8, r3
@@ -141,7 +141,7 @@ sub_813F75C: @ 813F75C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r4, [sp]
@@ -209,7 +209,7 @@ sub_813F7D8: @ 813F7D8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 45967283c..b9b3a595c 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -91,7 +91,7 @@ sub_80807E8: @ 80807E8
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
adds r0, r4, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -765,7 +765,7 @@ _08080D3C:
cmp r2, 0x9
bne _08080D54
_08080D44:
- bl sub_80098B8
+ bl CloseLink
bl HideFieldMessageBox
ldr r0, _08080D50 @ =sub_8080F78
b _08080D72
@@ -860,7 +860,7 @@ _08080DF6:
cmp r0, 0x9
bne _08080E20
_08080DFE:
- bl sub_80098B8
+ bl CloseLink
_08080E02:
bl HideFieldMessageBox
ldr r0, _08080E18 @ =gTasks
@@ -1631,7 +1631,7 @@ _08081410:
_08081418:
str r0, [r1]
_0808141A:
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r1, _08081444 @ =gTrainerBattleOpponent_A
movs r2, 0x80
lsls r2, 4
@@ -1854,7 +1854,7 @@ _080815E0:
_080815E8:
str r0, [r1]
_080815EA:
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r1, _08081614 @ =gTrainerBattleOpponent_A
movs r3, 0x80
lsls r3, 4
@@ -1905,14 +1905,14 @@ _0808164C:
lsls r0, 24
cmp r0, 0
beq _0808165C
- ldr r0, _08081664 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _08081664 @ =CB2_ReturnToField
bl SetMainCallback2
_0808165C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_08081664: .4byte c2_exit_to_overworld_2_switch
+_08081664: .4byte CB2_ReturnToField
thumb_func_end sub_8081624
thumb_func_start sub_8081668
@@ -1940,7 +1940,7 @@ sub_8081668: @ 8081668
ldrb r0, [r0]
cmp r0, 0
beq _0808170A
- ldr r0, _080816C4 @ =gUnknown_2023E8A
+ ldr r0, _080816C4 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _080816C8
@@ -1953,7 +1953,7 @@ _080816B4: .4byte 0x0000ffdf
_080816B8: .4byte gSpecialVar_0x8004
_080816BC: .4byte gUnknown_300502C
_080816C0: .4byte gWirelessCommType
-_080816C4: .4byte gUnknown_2023E8A
+_080816C4: .4byte gBattleOutcome
_080816C8:
ldr r4, _080816E8 @ =gLinkPlayers
bl GetMultiplayerId
@@ -2459,7 +2459,7 @@ sub_8081A90: @ 8081A90
lsls r0, 17
cmp r1, r0
ble _08081AC2
- bl sub_80098B8
+ bl CloseLink
ldr r0, _08081ADC @ =c2_800ACD4
bl SetMainCallback2
adds r0, r4, 0
diff --git a/asm/cereader_tool.s b/asm/cereader_tool.s
deleted file mode 100644
index 749cb5303..000000000
--- a/asm/cereader_tool.s
+++ /dev/null
@@ -1,196 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815D654
-sub_815D654: @ 815D654
- push {lr}
- ldr r0, _0815D674 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _0815D678 @ =0x00003d41
- adds r0, r1
- ldrb r1, [r0]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 8
- lsls r0, 8
- subs r0, r2, r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0815D674: .4byte gSaveBlock1Ptr
-_0815D678: .4byte 0x00003d41
- thumb_func_end sub_815D654
-
- thumb_func_start sub_815D67C
-sub_815D67C: @ 815D67C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _0815D6AA
- ldrb r0, [r5, 0x2]
- cmp r0, 0x2
- bhi _0815D6AA
- movs r4, 0xF7
- lsls r4, 2
- adds r0, r5, 0
- adds r1, r4, 0
- bl CalcByteArraySum
- adds r4, r5, r4
- ldr r1, [r4]
- cmp r0, r1
- bne _0815D6AA
- movs r0, 0x1
- b _0815D6AC
-_0815D6AA:
- movs r0, 0
-_0815D6AC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_815D67C
-
- thumb_func_start sub_815D6B4
-sub_815D6B4: @ 815D6B4
- push {r4-r7,lr}
- adds r7, r0, 0
- ldrb r6, [r7]
- subs r0, r6, 0x1
- cmp r0, 0x7
- bhi _0815D6F8
- movs r5, 0
- cmp r5, r6
- bcs _0815D6E0
- adds r4, r7, 0
- adds r4, 0x8
-_0815D6CA:
- adds r0, r4, 0
- bl sub_815D67C
- cmp r0, 0
- beq _0815D6F8
- movs r0, 0xF8
- lsls r0, 2
- adds r4, r0
- adds r5, 0x1
- cmp r5, r6
- bcc _0815D6CA
-_0815D6E0:
- adds r0, r7, 0
- adds r0, 0x8
- lsls r1, r6, 5
- subs r1, r6
- lsls r1, 5
- bl CalcByteArraySum
- ldr r1, [r7, 0x4]
- cmp r0, r1
- bne _0815D6F8
- movs r0, 0x1
- b _0815D6FA
-_0815D6F8:
- movs r0, 0
-_0815D6FA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_815D6B4
-
- thumb_func_start sub_815D700
-sub_815D700: @ 815D700
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrh r0, [r5, 0x2]
- cmp r0, 0
- beq _0815D718
- ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c"
- ldr r2, _0815D780 @ =gUnknown_8479D10 "ttdata->dummy == 0"
- movs r1, 0xC6
- movs r3, 0x1
- bl AGBAssert
-_0815D718:
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0815D72A
- ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c"
- ldr r2, _0815D784 @ =gUnknown_8479D24 "ttdata->id == 0"
- movs r1, 0xC7
- movs r3, 0x1
- bl AGBAssert
-_0815D72A:
- movs r6, 0x80
- lsls r6, 5
- adds r0, r4, 0
- movs r1, 0
- adds r2, r6, 0
- bl memset
- ldr r2, _0815D788 @ =0x00000f88
- adds r0, r4, 0
- adds r1, r5, 0
- bl memcpy
- bl sub_815D654
- strb r0, [r4, 0x1]
- movs r0, 0x1E
- adds r1, r4, 0
- bl sub_80DA5E0
- cmp r0, 0x1
- bne _0815D78C
- adds r0, r4, 0
- movs r1, 0
- adds r2, r6, 0
- bl memset
- ldr r0, _0815D788 @ =0x00000f88
- adds r1, r5, r0
- movs r2, 0xF8
- lsls r2, 4
- adds r0, r4, 0
- bl memcpy
- movs r0, 0x1F
- adds r1, r4, 0
- bl sub_80DA5E0
- cmp r0, 0x1
- bne _0815D78C
- movs r0, 0x1
- b _0815D78E
- .align 2, 0
-_0815D77C: .4byte gUnknown_8479CD8
-_0815D780: .4byte gUnknown_8479D10
-_0815D784: .4byte gUnknown_8479D24
-_0815D788: .4byte 0x00000f88
-_0815D78C:
- movs r0, 0
-_0815D78E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_815D700
-
- thumb_func_start sub_815D794
-sub_815D794: @ 815D794
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 5
- bl AllocZeroed
- adds r5, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_815D700
- adds r4, r0, 0
- adds r0, r5, 0
- bl Free
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_815D794
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s
index 84dd082f6..ccae18c34 100644
--- a/asm/clear_save_data_screen.s
+++ b/asm/clear_save_data_screen.s
@@ -109,11 +109,11 @@ _080F564A:
movs r0, 0
movs r1, 0x1
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x1
movs r1, 0x1
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
b _080F56E2
_080F5660:
movs r0, 0x1
@@ -134,7 +134,7 @@ _080F5660:
movs r1, 0x2
movs r2, 0
movs r3, 0x3
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
@@ -152,7 +152,7 @@ _080F569C:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
b _080F56E2
@@ -204,7 +204,7 @@ sub_80F5708: @ 80F5708
ldrb r0, [r0]
cmp r0, 0
bne _080F578C
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x1
@@ -241,7 +241,7 @@ _080F5744:
movs r1, 0x2
movs r2, 0
movs r3, 0x3
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s
deleted file mode 100644
index 8c987c6e2..000000000
--- a/asm/coord_event_weather.s
+++ /dev/null
@@ -1,105 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_27
-nullsub_27: @ 806E7A8
- bx lr
- thumb_func_end nullsub_27
-
- thumb_func_start nullsub_28
-nullsub_28: @ 806E7AC
- bx lr
- thumb_func_end nullsub_28
-
- thumb_func_start nullsub_29
-nullsub_29: @ 806E7B0
- bx lr
- thumb_func_end nullsub_29
-
- thumb_func_start nullsub_30
-nullsub_30: @ 806E7B4
- bx lr
- thumb_func_end nullsub_30
-
- thumb_func_start nullsub_31
-nullsub_31: @ 806E7B8
- bx lr
- thumb_func_end nullsub_31
-
- thumb_func_start nullsub_32
-nullsub_32: @ 806E7BC
- bx lr
- thumb_func_end nullsub_32
-
- thumb_func_start nullsub_33
-nullsub_33: @ 806E7C0
- bx lr
- thumb_func_end nullsub_33
-
- thumb_func_start nullsub_34
-nullsub_34: @ 806E7C4
- bx lr
- thumb_func_end nullsub_34
-
- thumb_func_start nullsub_35
-nullsub_35: @ 806E7C8
- bx lr
- thumb_func_end nullsub_35
-
- thumb_func_start nullsub_36
-nullsub_36: @ 806E7CC
- bx lr
- thumb_func_end nullsub_36
-
- thumb_func_start nullsub_37
-nullsub_37: @ 806E7D0
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start nullsub_38
-nullsub_38: @ 806E7D4
- bx lr
- thumb_func_end nullsub_38
-
- thumb_func_start nullsub_39
-nullsub_39: @ 806E7D8
- bx lr
- thumb_func_end nullsub_39
-
- thumb_func_start trigger_activate_weather
-trigger_activate_weather: @ 806E7DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, _0806E7FC @ =gUnknown_83A72A8
-_0806E7E6:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0806E800
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _0806E80A
- .align 2, 0
-_0806E7FC: .4byte gUnknown_83A72A8
-_0806E800:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _0806E7E6
-_0806E80A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end trigger_activate_weather
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/credits.s b/asm/credits.s
index bf8c5eeac..6317b95f7 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -177,7 +177,7 @@ sub_80F3B04: @ 80F3B04
beq _080F3B20
ldrb r0, [r1, 0xA]
bl RemoveWindow
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r1, [r4]
movs r0, 0
strb r0, [r1, 0xB]
@@ -241,7 +241,7 @@ _080F3B5E:
bl sub_80F3A74
bl sub_80F3AA4
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
ldr r0, _080F3BC8 @ =gPlttBufferUnfaded
movs r2, 0xFF
lsls r2, 1
@@ -325,7 +325,7 @@ _080F3C64:
bl sub_80F3AA4
bl sub_80F3AC4
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
ldr r0, _080F3C8C @ =gPlttBufferUnfaded
movs r2, 0xFF
lsls r2, 1
@@ -422,7 +422,7 @@ _080F3D0A:
movs r1, 0x1
movs r2, 0x8
movs r3, 0x29
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r1, [r7]
movs r0, 0x5
b _080F413C
@@ -649,7 +649,7 @@ _080F3EB4:
movs r1, 0x1
movs r2, 0x2
movs r3, 0x6
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r1, [r7]
movs r0, 0x8
b _080F3FB8
@@ -696,7 +696,7 @@ _080F3F24:
movs r1, 0x2
movs r2, 0x8
movs r3, 0x6
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r1, [r7]
movs r0, 0x9
b _080F3FB8
@@ -1279,13 +1279,13 @@ _080F4374:
movs r0, 0x1
adds r2, r5, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _080F44B4 @ =gUnknown_840C650
str r4, [sp]
movs r0, 0x2
adds r2, r5, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _080F44B8 @ =gUnknown_8EAB30C
movs r2, 0xA0
lsls r2, 3
@@ -1293,14 +1293,14 @@ _080F4374:
str r4, [sp]
movs r0, 0x1
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _080F44BC @ =gUnknown_840CA54
movs r2, 0x80
lsls r2, 3
str r4, [sp]
movs r0, 0x2
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, [r6]
ldrb r0, [r0, 0x9]
lsls r0, 5
@@ -1620,7 +1620,7 @@ _080F46A0:
str r5, [sp]
movs r0, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, [r6]
ldrb r1, [r0, 0x9]
lsls r0, r1, 1
@@ -1635,7 +1635,7 @@ _080F46A0:
str r0, [sp]
movs r0, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, [r6]
ldrb r1, [r0, 0x9]
lsls r0, r1, 1
diff --git a/asm/dark.s b/asm/dark.s
new file mode 100644
index 000000000..a232c19ad
--- /dev/null
+++ b/asm/dark.s
@@ -0,0 +1,2323 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B78E0
+sub_80B78E0: @ 80B78E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B791C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080B7920 @ =gBattleAnimArgs
+ ldrh r1, [r1]
+ strh r1, [r0, 0x8]
+ ldr r1, _080B7924 @ =gBattleAnimAttacker
+ ldrb r4, [r1]
+ movs r1, 0x10
+ strh r1, [r0, 0xA]
+ movs r0, 0x52
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B792C
+ ldr r1, _080B7928 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ b _080B7934
+ .align 2, 0
+_080B791C: .4byte gTasks
+_080B7920: .4byte gBattleAnimArgs
+_080B7924: .4byte gBattleAnimAttacker
+_080B7928: .4byte 0x00003f42
+_080B792C:
+ ldr r1, _080B7948 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+_080B7934:
+ ldr r0, _080B794C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080B7950 @ =sub_80B7954
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7948: .4byte 0x00003f44
+_080B794C: .4byte gTasks
+_080B7950: .4byte sub_80B7954
+ thumb_func_end sub_80B78E0
+
+ thumb_func_start sub_80B7954
+sub_80B7954: @ 80B7954
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080B79C0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0xA]
+ lsrs r4, r0, 8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r6, r2]
+ ldrb r2, [r6, 0x8]
+ cmp r0, r2
+ bne _080B79D0
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 8
+ orrs r1, r0
+ movs r5, 0
+ strh r1, [r6, 0xA]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r5, [r6, 0xC]
+ cmp r4, 0x10
+ bne _080B79D6
+ ldr r2, _080B79C4 @ =gSprites
+ ldr r1, _080B79C8 @ =gBattlerSpriteIds
+ ldr r0, _080B79CC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _080B79D6
+ .align 2, 0
+_080B79C0: .4byte gTasks
+_080B79C4: .4byte gSprites
+_080B79C8: .4byte gBattlerSpriteIds
+_080B79CC: .4byte gBattleAnimAttacker
+_080B79D0:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+_080B79D6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7954
+
+ thumb_func_start sub_80B79DC
+sub_80B79DC: @ 80B79DC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B7A08 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ ldr r0, _080B7A0C @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r2, 0x8]
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r2, 0xA]
+ ldr r0, _080B7A10 @ =sub_80B7A14
+ str r0, [r2]
+ movs r0, 0x52
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7A08: .4byte gTasks
+_080B7A0C: .4byte gBattleAnimArgs
+_080B7A10: .4byte sub_80B7A14
+ thumb_func_end sub_80B79DC
+
+ thumb_func_start sub_80B7A14
+sub_80B7A14: @ 80B7A14
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080B7A70 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0xA]
+ lsrs r4, r0, 8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r6, r2]
+ ldrb r2, [r6, 0x8]
+ cmp r0, r2
+ bne _080B7A74
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 8
+ orrs r1, r0
+ movs r5, 0
+ strh r1, [r6, 0xA]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r5, [r6, 0xC]
+ cmp r4, 0
+ bne _080B7A7A
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _080B7A7A
+ .align 2, 0
+_080B7A70: .4byte gTasks
+_080B7A74:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+_080B7A7A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7A14
+
+ thumb_func_start sub_80B7A80
+sub_80B7A80: @ 80B7A80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, _080B7AAC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B7AB4
+ ldr r1, _080B7AB0 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ b _080B7ABC
+ .align 2, 0
+_080B7AAC: .4byte gBattleAnimAttacker
+_080B7AB0: .4byte 0x00003f42
+_080B7AB4:
+ ldr r1, _080B7AC8 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+_080B7ABC:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7AC8: .4byte 0x00003f44
+ thumb_func_end sub_80B7A80
+
+ thumb_func_start sub_80B7ACC
+sub_80B7ACC: @ 80B7ACC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080B7B38 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldr r5, _080B7B3C @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ movs r0, 0x7E
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80754B8
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldr r0, _080B7B40 @ =0x0000ffd8
+ strh r0, [r4, 0x3A]
+ ldr r1, _080B7B44 @ =sub_80B7B48
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7B38: .4byte gBattleAnimTarget
+_080B7B3C: .4byte gBattleAnimAttacker
+_080B7B40: .4byte 0x0000ffd8
+_080B7B44: .4byte sub_80B7B48
+ thumb_func_end sub_80B7ACC
+
+ thumb_func_start sub_80B7B48
+sub_80B7B48: @ 80B7B48
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x30]
+ ldrh r0, [r4, 0x34]
+ adds r2, r5, r0
+ strh r2, [r4, 0x34]
+ ldrh r3, [r4, 0x32]
+ ldrh r6, [r4, 0x36]
+ adds r1, r3, r6
+ strh r1, [r4, 0x36]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r6, 0x3C
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _080B7B8A
+ adds r0, r2, r5
+ strh r0, [r4, 0x34]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080B7B8A:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r6, [r4, 0x26]
+ adds r0, r6
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ cmp r0, 0x7F
+ ble _080B7BBA
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x14
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+_080B7BBA:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B7BCC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B7BCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7B48
+
+ thumb_func_start sub_80B7BD4
+sub_80B7BD4: @ 80B7BD4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B7C08 @ =gBattleAnimArgs
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x32]
+ ldr r0, _080B7C0C @ =sub_80B7C10
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7C08: .4byte gBattleAnimArgs
+_080B7C0C: .4byte sub_80B7C10
+ thumb_func_end sub_80B7BD4
+
+ thumb_func_start sub_80B7C10
+sub_80B7C10: @ 80B7C10
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _080B7C46
+ ldr r0, _080B7C4C @ =sub_80B7C50
+ str r0, [r2, 0x1C]
+_080B7C46:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7C4C: .4byte sub_80B7C50
+ thumb_func_end sub_80B7C10
+
+ thumb_func_start sub_80B7C50
+sub_80B7C50: @ 80B7C50
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0
+ strh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x38]
+ ldrh r2, [r3, 0x30]
+ subs r0, r2
+ strh r0, [r3, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r3, 0x24]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B7C82
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080B7C82:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7C50
+
+ thumb_func_start sub_80B7C88
+sub_80B7C88: @ 80B7C88
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080B7C9C @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080B7CA4
+ ldr r0, _080B7CA0 @ =gBattleAnimAttacker
+ b _080B7CA6
+ .align 2, 0
+_080B7C9C: .4byte gBattleAnimArgs
+_080B7CA0: .4byte gBattleAnimAttacker
+_080B7CA4:
+ ldr r0, _080B7CD4 @ =gBattleAnimTarget
+_080B7CA6:
+ ldrb r5, [r0]
+ movs r6, 0x14
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ ldr r7, _080B7CD8 @ =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080B7CDC @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080B7D04
+ cmp r0, 0x1
+ bgt _080B7CE0
+ cmp r0, 0
+ beq _080B7CEA
+ b _080B7D58
+ .align 2, 0
+_080B7CD4: .4byte gBattleAnimTarget
+_080B7CD8: .4byte 0x000003ff
+_080B7CDC: .4byte 0xfffffc00
+_080B7CE0:
+ cmp r0, 0x2
+ beq _080B7D1E
+ cmp r0, 0x3
+ beq _080B7D36
+ b _080B7D58
+_080B7CEA:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_8076B2C
+ subs r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ b _080B7D58
+_080B7D04:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_8076B2C
+ subs r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ b _080B7D58
+_080B7D1E:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_8076B2C
+ adds r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x8
+ b _080B7D4C
+_080B7D36:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_8076B2C
+ adds r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x10
+_080B7D4C:
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r6, 0xEC
+_080B7D58:
+ movs r0, 0x20
+ strh r0, [r4, 0x2E]
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0xC
+ strh r0, [r4, 0x36]
+ ldr r0, _080B7D80 @ =0x0000fff4
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_8075068
+ ldr r0, _080B7D84 @ =sub_80B7D88
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7D80: .4byte 0x0000fff4
+_080B7D84: .4byte sub_80B7D88
+ thumb_func_end sub_80B7C88
+
+ thumb_func_start sub_80B7D88
+sub_80B7D88: @ 80B7D88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B7D9C
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080B7D9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7D88
+
+ thumb_func_start sub_80B7DA4
+sub_80B7DA4: @ 80B7DA4
+ push {r4-r7,lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B7E08 @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080B7E0C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8076B2C
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ strh r1, [r5, 0x12]
+ strh r0, [r5, 0x10]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r5, 0x24]
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B7E14
+ ldr r0, _080B7E10 @ =0x0000fff4
+ b _080B7E16
+ .align 2, 0
+_080B7E08: .4byte gTasks
+_080B7E0C: .4byte gBattleAnimAttacker
+_080B7E10: .4byte 0x0000fff4
+_080B7E14:
+ ldr r0, _080B7E60 @ =0x0000ffc0
+_080B7E16:
+ strh r0, [r5, 0x18]
+ ldr r0, _080B7E64 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080B7E78
+ add r4, sp, 0xC
+ adds r0, r4, 0
+ bl sub_80752A0
+ ldr r0, _080B7E68 @ =gBattle_BG1_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080B7E6C @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrb r1, [r4, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080B7E70 @ =0x04000016
+ str r0, [sp]
+ movs r7, 0x2
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B7EA8
+ ldr r1, _080B7E74 @ =gBattle_BG2_X
+ b _080B7EA2
+ .align 2, 0
+_080B7E60: .4byte 0x0000ffc0
+_080B7E64: .4byte gBattleAnimAttacker
+_080B7E68: .4byte gBattle_BG1_Y
+_080B7E6C: .4byte 0x00003f42
+_080B7E70: .4byte 0x04000016
+_080B7E74: .4byte gBattle_BG2_X
+_080B7E78:
+ ldr r0, _080B7F30 @ =gBattle_BG2_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080B7F34 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080B7F38 @ =0x0400001a
+ str r0, [sp]
+ movs r7, 0x4
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B7EA8
+ ldr r1, _080B7F3C @ =gBattle_BG1_X
+_080B7EA2:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080B7EA8:
+ ldr r0, _080B7F40 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r2, sp
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ mov r0, sp
+ strb r1, [r0, 0x9]
+ strh r1, [r5, 0x1E]
+ movs r0, 0x10
+ strh r0, [r5, 0x20]
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ movs r0, 0x3
+ bl sub_80B856C
+ movs r3, 0
+ ldr r4, _080B7F44 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080B7ED4:
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080B7ED4
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ movs r0, 0x3F
+ eors r7, r0
+ movs r1, 0xFC
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r7, r0
+ movs r0, 0x4A
+ adds r1, r7, 0
+ bl SetGpuReg
+ ldr r1, _080B7F48 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r2, _080B7F4C @ =gUnknown_2022984
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080B7F50 @ =gUnknown_2022986
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080B7F54 @ =sub_80B7F58
+ str r0, [r5]
+ add sp, 0x1C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7F30: .4byte gBattle_BG2_Y
+_080B7F34: .4byte 0x00003f44
+_080B7F38: .4byte 0x0400001a
+_080B7F3C: .4byte gBattle_BG1_X
+_080B7F40: .4byte 0xa2600001
+_080B7F44: .4byte gScanlineEffectRegBuffers
+_080B7F48: .4byte 0x00003f3f
+_080B7F4C: .4byte gUnknown_2022984
+_080B7F50: .4byte gUnknown_2022986
+_080B7F54: .4byte sub_80B7F58
+ thumb_func_end sub_80B7DA4
+
+ thumb_func_start sub_80B7F58
+sub_80B7F58: @ 80B7F58
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B7F7C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080B7F72
+ b _080B806A
+_080B7F72:
+ lsls r0, 2
+ ldr r1, _080B7F80 @ =_080B7F84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B7F7C: .4byte gTasks
+_080B7F80: .4byte _080B7F84
+ .align 2, 0
+_080B7F84:
+ .4byte _080B7F98
+ .4byte _080B7FFA
+ .4byte _080B8014
+ .4byte _080B8050
+ .4byte _080B8064
+_080B7F98:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B806A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B7FC8
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC
+ beq _080B7FD6
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080B7FD6
+_080B7FC8:
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _080B7FD6
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080B7FD6:
+ ldrh r1, [r4, 0x20]
+ lsls r1, 8
+ ldrh r0, [r4, 0x1E]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ bne _080B806A
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ bne _080B806A
+ b _080B8056
+_080B7FFA:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80B843C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _080B806A
+ b _080B8056
+_080B8014:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80B843C
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x4
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r2, r0, 0x4
+ strh r2, [r4, 0x26]
+ lsls r1, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080B8036
+ strh r2, [r4, 0x24]
+_080B8036:
+ ldr r3, _080B804C @ =gUnknown_2022984
+ ldrh r2, [r4, 0x24]
+ lsls r0, r2, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r3]
+ lsls r2, 16
+ lsls r1, 16
+ cmp r2, r1
+ bne _080B806A
+ b _080B8056
+ .align 2, 0
+_080B804C: .4byte gUnknown_2022984
+_080B8050:
+ ldr r1, _080B8060 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080B8056:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B806A
+ .align 2, 0
+_080B8060: .4byte gScanlineEffect
+_080B8064:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B806A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7F58
+
+ thumb_func_start sub_80B8070
+sub_80B8070: @ 80B8070
+ push {r4-r7,lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080B8098 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080B808C
+ b _080B829E
+_080B808C:
+ lsls r0, 2
+ ldr r1, _080B809C @ =_080B80A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B8098: .4byte gTasks
+_080B809C: .4byte _080B80A0
+ .align 2, 0
+_080B80A0:
+ .4byte _080B80B4
+ .4byte _080B8138
+ .4byte _080B817C
+ .4byte _080B81E8
+ .4byte _080B8250
+_080B80B4:
+ bl sub_8073788
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B80F0
+ ldr r0, _080B80E4 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080B80E8 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r4, _080B80EC @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ b _080B829E
+ .align 2, 0
+_080B80E4: .4byte gUnknown_2022984
+_080B80E8: .4byte gUnknown_2022986
+_080B80EC: .4byte 0x00003f3f
+_080B80F0:
+ ldr r0, _080B8110 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080B811C
+ ldr r1, _080B8114 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, _080B8118 @ =gBattle_BG2_X
+ b _080B8126
+ .align 2, 0
+_080B8110: .4byte gBattleAnimTarget
+_080B8114: .4byte 0x00003f42
+_080B8118: .4byte gBattle_BG2_X
+_080B811C:
+ ldr r1, _080B8130 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, _080B8134 @ =gBattle_BG1_X
+_080B8126:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+ b _080B823C
+ .align 2, 0
+_080B8130: .4byte 0x00003f44
+_080B8134: .4byte gBattle_BG1_X
+_080B8138:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080B8160
+ mov r0, sp
+ bl sub_80752A0
+ ldr r0, _080B815C @ =gBattle_BG1_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ b _080B8170
+ .align 2, 0
+_080B815C: .4byte gBattle_BG1_Y
+_080B8160:
+ ldr r0, _080B8178 @ =gBattle_BG2_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+_080B8170:
+ movs r0, 0x3
+ bl sub_80B856C
+ b _080B823C
+ .align 2, 0
+_080B8178: .4byte gBattle_BG2_Y
+_080B817C:
+ ldr r4, _080B81C8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8076B2C
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x4
+ strh r1, [r5, 0x24]
+ adds r0, 0x4
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B81D0
+ ldr r0, _080B81CC @ =0x0000fff4
+ b _080B81D2
+ .align 2, 0
+_080B81C8: .4byte gBattleAnimTarget
+_080B81CC: .4byte 0x0000fff4
+_080B81D0:
+ ldr r0, _080B81E4 @ =0x0000ffc0
+_080B81D2:
+ strh r0, [r5, 0x18]
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x10]
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ movs r0, 0x8
+ strh r0, [r5, 0x20]
+ b _080B823C
+ .align 2, 0
+_080B81E4: .4byte 0x0000ffc0
+_080B81E8:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080B81F8
+ ldr r0, _080B81F4 @ =0x04000016
+ b _080B81FA
+ .align 2, 0
+_080B81F4: .4byte 0x04000016
+_080B81F8:
+ ldr r0, _080B8244 @ =0x0400001a
+_080B81FA:
+ str r0, [sp, 0x10]
+ movs r3, 0
+ add r4, sp, 0x10
+ ldr r6, _080B8248 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r7, r6, r0
+_080B8208:
+ lsls r1, r3, 1
+ adds r2, r1, r6
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r2]
+ adds r1, r7
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080B8208
+ ldr r1, _080B824C @ =0xa2600001
+ str r1, [r4, 0x4]
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r4, 0x8]
+ strb r2, [r4, 0x9]
+ ldr r0, [sp, 0x10]
+ ldr r2, [r4, 0x8]
+ bl ScanlineEffect_SetParams
+_080B823C:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080B829E
+ .align 2, 0
+_080B8244: .4byte 0x0400001a
+_080B8248: .4byte gScanlineEffectRegBuffers
+_080B824C: .4byte 0xa2600001
+_080B8250:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080B8268
+ ldr r1, _080B8264 @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ b _080B8270
+ .align 2, 0
+_080B8264: .4byte 0x00003f3d
+_080B8268:
+ ldr r1, _080B82A8 @ =0x00003f3b
+ movs r0, 0x4A
+ bl SetGpuReg
+_080B8270:
+ ldr r1, _080B82AC @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r2, _080B82B0 @ =gUnknown_2022984
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080B82B4 @ =gUnknown_2022986
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldr r1, _080B82B8 @ =0x0000080c
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, _080B82BC @ =sub_80B82C0
+ str r0, [r5]
+_080B829E:
+ add sp, 0x1C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B82A8: .4byte 0x00003f3b
+_080B82AC: .4byte 0x00003f3f
+_080B82B0: .4byte gUnknown_2022984
+_080B82B4: .4byte gUnknown_2022986
+_080B82B8: .4byte 0x0000080c
+_080B82BC: .4byte sub_80B82C0
+ thumb_func_end sub_80B8070
+
+ thumb_func_start sub_80B82C0
+sub_80B82C0: @ 80B82C0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B82E4 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080B82DA
+ b _080B842A
+_080B82DA:
+ lsls r0, 2
+ ldr r1, _080B82E8 @ =_080B82EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B82E4: .4byte gTasks
+_080B82E8: .4byte _080B82EC
+ .align 2, 0
+_080B82EC:
+ .4byte _080B8300
+ .4byte _080B832C
+ .4byte _080B8394
+ .4byte _080B83F6
+ .4byte _080B8408
+_080B8300:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x8
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x16]
+ movs r3, 0x16
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080B8316
+ strh r2, [r4, 0x12]
+_080B8316:
+ adds r0, r4, 0
+ bl sub_80B843C
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _080B832A
+ b _080B842A
+_080B832A:
+ b _080B83FC
+_080B832C:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ cmp r0, 0x3F
+ bgt _080B8348
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x4
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x4
+ strh r0, [r4, 0x26]
+ b _080B834C
+_080B8348:
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+_080B834C:
+ ldr r2, _080B8390 @ =gUnknown_2022984
+ ldrh r0, [r4, 0x24]
+ lsls r0, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x8
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080B836E
+ strh r2, [r4, 0x10]
+_080B836E:
+ adds r0, r4, 0
+ bl sub_80B843C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B842A
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080B842A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080B83FC
+ .align 2, 0
+_080B8390: .4byte gUnknown_2022984
+_080B8394:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B842A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B83C4
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B83D2
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080B83D2
+_080B83C4:
+ ldrh r1, [r4, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _080B83D2
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080B83D2:
+ ldrh r1, [r4, 0x20]
+ lsls r1, 8
+ ldrh r0, [r4, 0x1E]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B842A
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080B842A
+ b _080B83FC
+_080B83F6:
+ ldr r1, _080B8404 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080B83FC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B842A
+ .align 2, 0
+_080B8404: .4byte gScanlineEffect
+_080B8408:
+ ldr r0, _080B8430 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080B8434 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r4, _080B8438 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B842A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8430: .4byte gUnknown_2022984
+_080B8434: .4byte gUnknown_2022986
+_080B8438: .4byte 0x00003f3f
+ thumb_func_end sub_80B82C0
+
+ thumb_func_start sub_80B843C
+sub_80B843C: @ 80B843C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x12]
+ ldrh r4, [r6, 0x10]
+ subs r0, r4
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B8530
+ movs r2, 0x22
+ ldrsh r0, [r6, r2]
+ bl __divsi3
+ mov r8, r0
+ movs r3, 0x14
+ ldrsh r0, [r6, r3]
+ lsls r5, r0, 8
+ lsls r0, r4, 16
+ movs r4, 0
+ cmp r0, 0
+ ble _080B849C
+ ldr r0, _080B8528 @ =gScanlineEffectRegBuffers
+ mov r12, r0
+ ldr r7, _080B852C @ =gScanlineEffect
+_080B8470:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ adds r1, r2, 0
+ subs r1, 0x9F
+ ldrh r0, [r6, 0x1C]
+ subs r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ blt _080B8470
+_080B849C:
+ ldrh r4, [r6, 0x10]
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ bgt _080B84E6
+ ldr r0, _080B8528 @ =gScanlineEffectRegBuffers
+ mov r12, r0
+ ldr r7, _080B852C @ =gScanlineEffect
+_080B84B0:
+ asrs r4, r3, 16
+ cmp r4, 0
+ blt _080B84D2
+ asrs r1, r5, 8
+ subs r1, r4
+ lsls r3, r4, 1
+ ldrb r2, [r7, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r6, 0x1C]
+ adds r1, r2
+ strh r1, [r3]
+_080B84D2:
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080B84B0
+_080B84E6:
+ movs r3, 0x1C
+ ldrsh r0, [r6, r3]
+ adds r0, 0x9F
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ subs r5, r0, r1
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bge _080B855E
+ ldr r7, _080B8528 @ =gScanlineEffectRegBuffers
+ ldr r4, _080B852C @ =gScanlineEffect
+_080B84FE:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080B8516
+ lsls r2, r3, 1
+ ldrb r1, [r4, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ strh r5, [r2]
+ subs r5, 0x1
+_080B8516:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ blt _080B84FE
+ b _080B855E
+ .align 2, 0
+_080B8528: .4byte gScanlineEffectRegBuffers
+_080B852C: .4byte gScanlineEffect
+_080B8530:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ adds r5, r0, 0
+ adds r5, 0x9F
+ movs r4, 0
+ ldr r3, _080B8568 @ =gScanlineEffectRegBuffers
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r6, r3, r2
+_080B8542:
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ strh r5, [r1]
+ adds r2, r6
+ strh r5, [r2]
+ subs r5, 0x1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080B8542
+_080B855E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8568: .4byte gScanlineEffectRegBuffers
+ thumb_func_end sub_80B843C
+
+ thumb_func_start sub_80B856C
+sub_80B856C: @ 80B856C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ ldr r7, _080B85B4 @ =gSprites
+ movs r1, 0x3
+ ands r0, r1
+ lsls r5, r0, 2
+ movs r0, 0xD
+ negs r0, r0
+ adds r6, r0, 0
+_080B8582:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080B85A2
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r0, r6
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_080B85A2:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080B8582
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B85B4: .4byte gSprites
+ thumb_func_end sub_80B856C
+
+ thumb_func_start sub_80B85B8
+sub_80B85B8: @ 80B85B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r6, _080B8658 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ ldrb r0, [r6]
+ adds r1, r4, 0
+ bl sub_8072E48
+ ldr r0, _080B865C @ =gSprites
+ mov r9, r0
+ ldr r0, _080B8660 @ =gBattlerSpriteIds
+ mov r8, r0
+ ldrb r0, [r6]
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r7, 0x5
+ negs r7, r7
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8642
+ ldrb r0, [r6]
+ eors r0, r5
+ movs r1, 0x1
+ eors r4, r1
+ adds r1, r4, 0
+ bl sub_8072E48
+ ldrb r0, [r6]
+ eors r0, r5
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+_080B8642:
+ mov r0, r10
+ bl DestroyAnimVisualTask
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8658: .4byte gBattleAnimAttacker
+_080B865C: .4byte gSprites
+_080B8660: .4byte gBattlerSpriteIds
+ thumb_func_end sub_80B85B8
+
+ thumb_func_start sub_80B8664
+sub_80B8664: @ 80B8664
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _080B86AC @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r5, 0
+ bl sub_8073128
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B86A0
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8073128
+_080B86A0:
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B86AC: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80B8664
+
+ thumb_func_start sub_80B86B0
+sub_80B86B0: @ 80B86B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080B86E0 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080B86E4 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _080B86E8 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B86E0: .4byte gBattleAnimArgs
+_080B86E4: .4byte sub_8074F6C
+_080B86E8: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B86B0
+
+ thumb_func_start sub_80B86EC
+sub_80B86EC: @ 80B86EC
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r0, _080B87EC @ =gUnknown_2022984
+ strh r6, [r0]
+ ldr r0, _080B87F0 @ =gUnknown_2022986
+ strh r6, [r0]
+ ldr r1, _080B87F4 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080B87F8 @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, _080B87FC @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, _080B8800 @ =0x00000c08
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B8750
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080B8750:
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B87CA
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B87CA
+ ldr r4, _080B8804 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080B8780
+ ldrb r0, [r4]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B87CA
+_080B8780:
+ ldrb r0, [r4]
+ movs r5, 0x2
+ eors r0, r5
+ bl sub_8072DF0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B87CA
+ ldr r3, _080B8808 @ =gSprites
+ ldr r1, _080B880C @ =gBattlerSpriteIds
+ ldrb r0, [r4]
+ eors r0, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r6, 0x1
+_080B87CA:
+ ldr r4, _080B8804 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8818
+ ldr r1, _080B8810 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080B8814 @ =gEnemyParty
+ b _080B8828
+ .align 2, 0
+_080B87EC: .4byte gUnknown_2022984
+_080B87F0: .4byte gUnknown_2022986
+_080B87F4: .4byte 0x00003f3f
+_080B87F8: .4byte 0x00003f3d
+_080B87FC: .4byte 0x00003f42
+_080B8800: .4byte 0x00000c08
+_080B8804: .4byte gBattleAnimAttacker
+_080B8808: .4byte gSprites
+_080B880C: .4byte gBattlerSpriteIds
+_080B8810: .4byte gBattlerPartyIndexes
+_080B8814: .4byte gEnemyParty
+_080B8818:
+ ldr r1, _080B88B8 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080B88BC @ =gPlayerParty
+_080B8828:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B88C0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap
+ bl sub_807543C
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r2, _080B88D0 @ =gBattle_BG1_X
+ ldr r0, _080B88D4 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x60
+ strh r0, [r2]
+ ldr r2, _080B88D8 @ =gBattle_BG1_Y
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ ldr r2, _080B88DC @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080B88E0
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_8075B48
+ b _080B88EC
+ .align 2, 0
+_080B88B8: .4byte gBattlerPartyIndexes
+_080B88BC: .4byte gPlayerParty
+_080B88C0: .4byte gBattleAnimAttacker
+_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap
+_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet
+_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette
+_080B88D0: .4byte gBattle_BG1_X
+_080B88D4: .4byte gSprites
+_080B88D8: .4byte gBattle_BG1_Y
+_080B88DC: .4byte gBattleAnimArgs
+_080B88E0:
+ lsls r0, r1, 4
+ ldrh r3, [r2, 0x4]
+ movs r1, 0x10
+ movs r2, 0xB
+ bl BlendPalette
+_080B88EC:
+ ldr r1, _080B8914 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r2, _080B8918 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0xE]
+ strh r6, [r0, 0x14]
+ ldr r1, _080B891C @ =sub_80B8920
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8914: .4byte gTasks
+_080B8918: .4byte gBattleAnimArgs
+_080B891C: .4byte sub_80B8920
+ thumb_func_end sub_80B86EC
+
+ thumb_func_start sub_80B8920
+sub_80B8920: @ 80B8920
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080B89E8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r2, _080B89EC @ =gBattle_BG1_X
+ ldrh r3, [r2]
+ subs r1, r3, 0x4
+ strh r1, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x80
+ beq _080B894E
+ b _080B8A5E
+_080B894E:
+ strh r5, [r4, 0x1C]
+ adds r0, r3, 0
+ adds r0, 0x7C
+ strh r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080B89FC
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080B89F0 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B8990
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_8075B48
+_080B8990:
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_8075358
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080B8A5E
+ ldr r2, _080B89F4 @ =gBattlerSpriteIds
+ ldr r0, _080B89F8 @ =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ b _080B8A5E
+ .align 2, 0
+_080B89E8: .4byte gTasks
+_080B89EC: .4byte gBattle_BG1_X
+_080B89F0: .4byte gSprites
+_080B89F4: .4byte gBattlerSpriteIds
+_080B89F8: .4byte gBattleAnimAttacker
+_080B89FC:
+ cmp r0, 0x3
+ bne _080B8A5E
+ ldr r0, _080B8A68 @ =gUnknown_2022984
+ strh r5, [r0]
+ ldr r0, _080B8A6C @ =gUnknown_2022986
+ strh r5, [r0]
+ ldr r4, _080B8A70 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B8A2E
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080B8A2E:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080B8A5E:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8A68: .4byte gUnknown_2022984
+_080B8A6C: .4byte gUnknown_2022986
+_080B8A70: .4byte 0x00003f3f
+ thumb_func_end sub_80B8920
+
+ thumb_func_start sub_80B8A74
+sub_80B8A74: @ 80B8A74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080B8A94 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0x7
+ bhi _080B8AD8
+ lsls r0, r1, 2
+ ldr r1, _080B8A98 @ =_080B8A9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B8A94: .4byte gBattleAnimArgs
+_080B8A98: .4byte _080B8A9C
+ .align 2, 0
+_080B8A9C:
+ .4byte _080B8ABC
+ .4byte _080B8ABC
+ .4byte _080B8ABC
+ .4byte _080B8ABC
+ .4byte _080B8AC8
+ .4byte _080B8ACC
+ .4byte _080B8AD0
+ .4byte _080B8AD4
+_080B8ABC:
+ ldrb r0, [r2]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080B8ADA
+_080B8AC8:
+ movs r4, 0
+ b _080B8AE0
+_080B8ACC:
+ movs r4, 0x2
+ b _080B8AE0
+_080B8AD0:
+ movs r4, 0x1
+ b _080B8AE0
+_080B8AD4:
+ movs r4, 0x3
+ b _080B8AE0
+_080B8AD8:
+ movs r2, 0xFF
+_080B8ADA:
+ movs r0, 0
+ cmp r0, 0
+ beq _080B8B06
+_080B8AE0:
+ adds r0, r4, 0
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8B04
+ ldr r0, _080B8B00 @ =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ b _080B8B06
+ .align 2, 0
+_080B8B00: .4byte gBattlerSpriteIds
+_080B8B04:
+ movs r2, 0xFF
+_080B8B06:
+ cmp r2, 0xFF
+ beq _080B8B22
+ ldr r1, _080B8B30 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ ldr r1, _080B8B34 @ =gBattleAnimArgs
+ ldrb r1, [r1, 0x2]
+ bl sub_8075B48
+_080B8B22:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8B30: .4byte gSprites
+_080B8B34: .4byte gBattleAnimArgs
+ thumb_func_end sub_80B8A74
+
+ thumb_func_start sub_80B8B38
+sub_80B8B38: @ 80B8B38
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080B8B64 @ =gAnimMoveTurn
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _080B8B4C
+ ldr r1, _080B8B68 @ =gBattleAnimArgs
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080B8B4C:
+ ldrb r0, [r2]
+ cmp r0, 0x2
+ bne _080B8B58
+ ldr r1, _080B8B68 @ =gBattleAnimArgs
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080B8B58:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8B64: .4byte gAnimMoveTurn
+_080B8B68: .4byte gBattleAnimArgs
+ thumb_func_end sub_80B8B38
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/daycare.s b/asm/daycare.s
deleted file mode 100644
index 3b7d7ffe0..000000000
--- a/asm/daycare.s
+++ /dev/null
@@ -1,3216 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetMonNick
-GetMonNick: @ 80453C0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonNick
-
- thumb_func_start GetBoxMonNick
-GetBoxMonNick: @ 80453E0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetBoxMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetBoxMonNick
-
- thumb_func_start CountPokemonInDaycare
-CountPokemonInDaycare: @ 8045400
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08045408:
- movs r0, 0x8C
- muls r0, r4
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _0804541E
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0804541E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08045408
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CountPokemonInDaycare
-
- thumb_func_start InitDaycareMailRecordMixing
-InitDaycareMailRecordMixing: @ 8045430
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- mov r10, r1
- movs r7, 0
- movs r5, 0
- mov r6, r10
- adds r6, 0x74
- movs r0, 0x1
- mov r8, r0
-_0804544A:
- movs r0, 0x8C
- muls r0, r5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08045478
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0xC
- bl GetBoxMonData
- adds r1, r0, 0
- cmp r1, 0
- bne _08045478
- lsls r0, r5, 1
- adds r0, r6, r0
- b _0804547E
-_08045478:
- lsls r0, r5, 1
- adds r0, r6, r0
- mov r1, r8
-_0804547E:
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804544A
- mov r0, r10
- str r7, [r0, 0x70]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end InitDaycareMailRecordMixing
-
- thumb_func_start Daycare_FindEmptySpot
-Daycare_FindEmptySpot: @ 804549C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_080454A2:
- movs r0, 0x8C
- muls r0, r4
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080454B8
- lsls r0, r4, 24
- asrs r0, 24
- b _080454C6
-_080454B8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080454A2
- movs r0, 0x1
- negs r0, r0
-_080454C6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end Daycare_FindEmptySpot
-
- thumb_func_start StorePokemonInDaycare
-StorePokemonInDaycare: @ 80454CC
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl MonHasMail
- lsls r0, 24
- cmp r0, 0
- beq _08045524
- adds r0, r4, 0
- adds r0, 0x74
- ldr r1, _08045550 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- adds r1, r4, 0
- adds r1, 0x7C
- adds r0, r5, 0
- bl GetMonNick
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08045554 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0x50
- ldr r2, _08045558 @ =0x00002cd0
- adds r1, r2
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- adds r0, r5, 0
- bl TakeMailFromMon
-_08045524:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl BoxMonRestorePP
- adds r1, r4, 0
- adds r1, 0x88
- movs r0, 0
- str r0, [r1]
- adds r0, r5, 0
- bl ZeroMonData
- bl CompactPartySlots
- bl CalculatePlayerPartyCount
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08045550: .4byte gSaveBlock2Ptr
-_08045554: .4byte gSaveBlock1Ptr
-_08045558: .4byte 0x00002cd0
- thumb_func_end StorePokemonInDaycare
-
- thumb_func_start StorePokemonInEmptyDaycareSlot
-StorePokemonInEmptyDaycareSlot: @ 804555C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- bl Daycare_FindEmptySpot
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x8C
- muls r0, r1
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl StorePokemonInDaycare
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end StorePokemonInEmptyDaycareSlot
-
- thumb_func_start StoreSelectedPokemonInDaycare
-StoreSelectedPokemonInDaycare: @ 8045580
- push {lr}
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080455A4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080455A8 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- movs r2, 0xBE
- lsls r2, 6
- adds r1, r2
- bl StorePokemonInEmptyDaycareSlot
- pop {r0}
- bx r0
- .align 2, 0
-_080455A4: .4byte gPlayerParty
-_080455A8: .4byte gSaveBlock1Ptr
- thumb_func_end StoreSelectedPokemonInDaycare
-
- thumb_func_start ShiftDaycareSlots
-ShiftDaycareSlots: @ 80455AC
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x8C
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08045602
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r6, r0, 0
- cmp r6, 0
- bne _08045602
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl ZeroBoxMonData
- adds r4, 0x50
- adds r0, r5, 0
- adds r0, 0x50
- adds r1, r4, 0
- movs r2, 0x38
- bl memcpy
- adds r2, r5, 0
- adds r2, 0x88
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r5, r0
- ldr r0, [r1]
- str r0, [r2]
- str r6, [r1]
- adds r0, r4, 0
- bl ClearDaycareMonMisc
-_08045602:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ShiftDaycareSlots
-
- thumb_func_start ApplyDaycareExperience
-ApplyDaycareExperience: @ 8045608
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
- ldr r7, _08045624 @ =0x0000ffff
-_08045610:
- adds r0, r4, 0
- bl sub_8043B90
- lsls r0, 24
- cmp r0, 0
- beq _0804564C
- movs r6, 0x1
- adds r5, 0x1
- b _08045638
- .align 2, 0
-_08045624: .4byte 0x0000ffff
-_08045628:
- movs r6, 0
- cmp r0, r7
- bne _08045638
- ldr r0, _08045658 @ =gMoveToLearn
- ldrh r1, [r0]
- adds r0, r4, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_08045638:
- adds r0, r4, 0
- adds r1, r6, 0
- bl MonTryLearningNewMove
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08045628
- cmp r5, 0x63
- ble _08045610
-_0804564C:
- adds r0, r4, 0
- bl CalculateMonStats
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045658: .4byte gMoveToLearn
- thumb_func_end ApplyDaycareExperience
-
- thumb_func_start TakeSelectedPokemonFromDaycare
-TakeSelectedPokemonFromDaycare: @ 804565C
- push {r4-r7,lr}
- sub sp, 0x68
- adds r5, r0, 0
- ldr r1, _080456F8 @ =gStringVar1
- bl GetBoxMonNick
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r5, 0
- mov r1, sp
- bl BoxMonToMon
- mov r0, sp
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080456AA
- mov r0, sp
- movs r1, 0x19
- bl GetMonData
- adds r1, r5, 0
- adds r1, 0x88
- ldr r1, [r1]
- adds r0, r1
- str r0, [sp, 0x64]
- add r2, sp, 0x64
- mov r0, sp
- movs r1, 0x19
- bl SetMonData
- mov r0, sp
- bl ApplyDaycareExperience
-_080456AA:
- ldr r0, _080456FC @ =gPlayerParty
- movs r1, 0xFA
- lsls r1, 1
- adds r6, r0, r1
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- adds r0, 0x70
- ldrh r0, [r0]
- cmp r0, 0
- beq _080456D8
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r6, 0
- adds r1, r4, 0
- bl GiveMailToMon2
- adds r0, r4, 0
- bl ClearDaycareMonMisc
-_080456D8:
- adds r0, r5, 0
- bl ZeroBoxMonData
- adds r1, r5, 0
- adds r1, 0x88
- movs r0, 0
- str r0, [r1]
- bl CompactPartySlots
- bl CalculatePlayerPartyCount
- adds r0, r7, 0
- add sp, 0x68
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080456F8: .4byte gStringVar1
-_080456FC: .4byte gPlayerParty
- thumb_func_end TakeSelectedPokemonFromDaycare
-
- thumb_func_start TakeSelectedPokemonMonFromDaycareShiftSlots
-TakeSelectedPokemonMonFromDaycareShiftSlots: @ 8045700
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x8C
- muls r0, r1
- adds r0, r5, r0
- bl TakeSelectedPokemonFromDaycare
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ShiftDaycareSlots
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end TakeSelectedPokemonMonFromDaycareShiftSlots
-
- thumb_func_start TakePokemonFromDaycare
-TakePokemonFromDaycare: @ 8045728
- push {lr}
- ldr r0, _08045744 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- ldr r1, _08045748 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl TakeSelectedPokemonMonFromDaycareShiftSlots
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08045744: .4byte gSaveBlock1Ptr
-_08045748: .4byte gSpecialVar_0x8004
- thumb_func_end TakePokemonFromDaycare
-
- thumb_func_start GetLevelAfterDaycareSteps
-GetLevelAfterDaycareSteps: @ 804574C
- push {r4,r5,lr}
- sub sp, 0x54
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x19
- bl GetBoxMonData
- adds r0, r5
- str r0, [sp, 0x50]
- add r2, sp, 0x50
- mov r0, sp
- movs r1, 0x19
- bl SetBoxMonData
- mov r0, sp
- bl GetLevelFromBoxMonExp
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x54
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetLevelAfterDaycareSteps
-
- thumb_func_start GetNumLevelsGainedFromSteps
-GetNumLevelsGainedFromSteps: @ 8045788
- push {r4,r5,lr}
- adds r5, r0, 0
- bl GetLevelFromBoxMonExp
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r0, 0x88
- ldr r1, [r0]
- adds r0, r5, 0
- bl GetLevelAfterDaycareSteps
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetNumLevelsGainedFromSteps
-
- thumb_func_start GetNumLevelsGainedForDaycareMon
-GetNumLevelsGainedForDaycareMon: @ 80457B4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl GetNumLevelsGainedFromSteps
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080457E0 @ =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _080457E4 @ =gStringVar1
- adds r0, r5, 0
- bl GetBoxMonNick
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080457E0: .4byte gStringVar2
-_080457E4: .4byte gStringVar1
- thumb_func_end GetNumLevelsGainedForDaycareMon
-
- thumb_func_start GetDaycareCostForSelectedMon
-GetDaycareCostForSelectedMon: @ 80457E8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl GetNumLevelsGainedFromSteps
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08045818 @ =gStringVar1
- adds r0, r5, 0
- bl GetBoxMonNick
- movs r0, 0x64
- muls r4, r0
- adds r4, 0x64
- ldr r0, _0804581C @ =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08045818: .4byte gStringVar1
-_0804581C: .4byte gStringVar2
- thumb_func_end GetDaycareCostForSelectedMon
-
- thumb_func_start GetDaycareCostForMon
-GetDaycareCostForMon: @ 8045820
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x8C
- muls r1, r2
- adds r0, r1
- bl GetDaycareCostForSelectedMon
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end GetDaycareCostForMon
-
- thumb_func_start GetDaycareCost
-GetDaycareCost: @ 8045838
- push {lr}
- ldr r0, _08045854 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- ldr r1, _08045858 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl GetDaycareCostForMon
- ldr r1, _0804585C @ =gSpecialVar_0x8005
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08045854: .4byte gSaveBlock1Ptr
-_08045858: .4byte gSpecialVar_0x8004
-_0804585C: .4byte gSpecialVar_0x8005
- thumb_func_end GetDaycareCost
-
- thumb_func_start sub_8045860
-sub_8045860: @ 8045860
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08045888 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldr r1, _0804588C @ =0x00003008
- adds r3, r2, r1
- ldr r1, [r3]
- adds r1, r0
- str r1, [r3]
- ldr r1, _08045890 @ =0x00003094
- adds r3, r2, r1
- ldr r1, [r3]
- adds r1, r0
- str r1, [r3]
- ldr r1, _08045894 @ =0x00003d20
- adds r2, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
- bx lr
- .align 2, 0
-_08045888: .4byte gSaveBlock1Ptr
-_0804588C: .4byte 0x00003008
-_08045890: .4byte 0x00003094
-_08045894: .4byte 0x00003d20
- thumb_func_end sub_8045860
-
- thumb_func_start GetNumLevelsGainedFromDaycare
-GetNumLevelsGainedFromDaycare: @ 8045898
- push {r4-r6,lr}
- ldr r6, _080458C0 @ =gSaveBlock1Ptr
- ldr r5, _080458C4 @ =gSpecialVar_0x8004
- ldrh r0, [r5]
- movs r4, 0x8C
- adds r1, r0, 0
- muls r1, r4
- movs r0, 0xBE
- lsls r0, 6
- adds r1, r0
- ldr r0, [r6]
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080458C8
- movs r0, 0
- b _080458E0
- .align 2, 0
-_080458C0: .4byte gSaveBlock1Ptr
-_080458C4: .4byte gSpecialVar_0x8004
-_080458C8:
- ldrh r0, [r5]
- adds r1, r0, 0
- muls r1, r4
- movs r0, 0xBE
- lsls r0, 6
- adds r1, r0
- ldr r0, [r6]
- adds r0, r1
- bl GetNumLevelsGainedForDaycareMon
- lsls r0, 24
- lsrs r0, 24
-_080458E0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetNumLevelsGainedFromDaycare
-
- thumb_func_start ClearDaycareMonMisc
-ClearDaycareMonMisc: @ 80458E8
- push {lr}
- movs r3, 0
- movs r2, 0x7
- adds r1, r0, 0
- adds r1, 0x2B
-_080458F2:
- strb r3, [r1]
- subs r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080458F2
- adds r2, r0, 0
- adds r2, 0x2C
- movs r3, 0
- adds r1, r0, 0
- adds r1, 0x36
-_08045906:
- strb r3, [r1]
- subs r1, 0x1
- cmp r1, r2
- bge _08045906
- bl ClearMailStruct
- pop {r0}
- bx r0
- thumb_func_end ClearDaycareMonMisc
-
- thumb_func_start ClearDaycareMon
-ClearDaycareMon: @ 8045918
- push {r4,lr}
- adds r4, r0, 0
- bl ZeroBoxMonData
- adds r1, r4, 0
- adds r1, 0x88
- movs r0, 0
- str r0, [r1]
- adds r4, 0x50
- adds r0, r4, 0
- bl ClearDaycareMonMisc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ClearDaycareMon
-
- thumb_func_start ClearAllDaycareData
-ClearAllDaycareData: @ 8045938
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r4, 0
- movs r6, 0x8C
-_08045940:
- adds r0, r4, 0
- muls r0, r6
- adds r0, r5, r0
- bl ClearDaycareMon
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08045940
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r5, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r5, r1
- strb r2, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ClearAllDaycareData
-
- thumb_func_start sub_8045970
-sub_8045970: @ 8045970
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- mov r8, r0
- ldr r0, _0804599C @ =gEvolutionTable
- mov r12, r0
-_08045982:
- movs r7, 0
- movs r6, 0x1
- movs r4, 0x80
- lsls r4, 9
- movs r5, 0x28
- mov r3, r12
- adds r3, 0x28
-_08045990:
- movs r1, 0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080459A0
- lsrs r2, r4, 16
- b _080459CC
- .align 2, 0
-_0804599C: .4byte gEvolutionTable
-_080459A0:
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080459B6
- lsls r0, r1, 3
- adds r0, r5
- add r0, r12
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080459A0
- lsrs r2, r4, 16
- movs r7, 0x1
-_080459B6:
- cmp r7, 0
- bne _080459CC
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x28
- adds r3, 0x28
- adds r6, 0x1
- ldr r0, _080459EC @ =0x0000019b
- cmp r6, r0
- ble _08045990
-_080459CC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- beq _080459DE
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x4
- ble _08045982
-_080459DE:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080459EC: .4byte 0x0000019b
- thumb_func_end sub_8045970
-
- thumb_func_start sub_80459F0
-sub_80459F0: @ 80459F0
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08045A18 @ =0x0000fffe
- bl __umodsi3
- adds r0, 0x1
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- ldr r0, _08045A1C @ =0x00000266
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08045A18: .4byte 0x0000fffe
-_08045A1C: .4byte 0x00000266
- thumb_func_end sub_80459F0
-
- thumb_func_start sub_8045A20
-sub_8045A20: @ 8045A20
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- movs r2, 0x8C
- lsls r2, 1
- adds r4, r2
- orrs r1, r0
- strh r1, [r4]
- ldr r0, _08045A44 @ =0x00000266
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08045A44: .4byte 0x00000266
- thumb_func_end sub_8045A20
-
- thumb_func_start sub_8045A48
-sub_8045A48: @ 8045A48
- push {lr}
- ldr r0, _08045A5C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl sub_80459F0
- pop {r0}
- bx r0
- .align 2, 0
-_08045A5C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_8045A48
-
- thumb_func_start sub_8045A60
-sub_8045A60: @ 8045A60
- push {lr}
- ldr r0, _08045A74 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl sub_8045A20
- pop {r0}
- bx r0
- .align 2, 0
-_08045A74: .4byte gSaveBlock1Ptr
- thumb_func_end sub_8045A60
-
- thumb_func_start RemoveIVIndexFromList
-RemoveIVIndexFromList: @ 8045A78
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
-_08045A8A:
- mov r1, sp
- adds r0, r1, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _08045A8A
- movs r3, 0
- movs r2, 0
-_08045A9E:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08045AB0
- adds r0, r4, r3
- strb r1, [r0]
- adds r3, 0x1
-_08045AB0:
- adds r2, 0x1
- cmp r2, 0x5
- ble _08045A9E
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end RemoveIVIndexFromList
-
- thumb_func_start InheritIVs
-InheritIVs: @ 8045AC0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r0
- mov r8, r1
- movs r5, 0
- add r1, sp, 0x4
- add r7, sp, 0xC
- adds r2, r1, 0
-_08045AD6:
- adds r0, r2, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08045AD6
- movs r5, 0
- adds r6, r1, 0
-_08045AE8:
- bl Random
- mov r1, sp
- adds r4, r1, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- subs r1, r5
- bl __modsi3
- adds r0, r6, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl RemoveIVIndexFromList
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08045AE8
- movs r5, 0
- movs r4, 0x1
-_08045B18:
- bl Random
- adds r1, r7, r5
- lsls r0, 16
- lsrs r0, 16
- ands r0, r4
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08045B18
- movs r5, 0
-_08045B32:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08045C0E
- lsls r0, 2
- ldr r1, _08045B48 @ =_08045B4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08045B48: .4byte _08045B4C
- .align 2, 0
-_08045B4C:
- .4byte _08045B64
- .4byte _08045B82
- .4byte _08045B9C
- .4byte _08045BB6
- .4byte _08045BD0
- .4byte _08045BF0
-_08045B64:
- adds r0, r7, r5
- ldrb r1, [r0]
- movs r0, 0x8C
- muls r0, r1
- add r0, r8
- movs r1, 0x27
- bl GetBoxMonData
- add r2, sp, 0x10
- strb r0, [r2]
- mov r0, r9
- movs r1, 0x27
- bl SetMonData
- b _08045C0E
-_08045B82:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- movs r0, 0x8C
- muls r0, r1
- add r0, r8
- movs r1, 0x28
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x28
- b _08045BE8
-_08045B9C:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- movs r0, 0x8C
- muls r0, r1
- add r0, r8
- movs r1, 0x29
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x29
- b _08045BE8
-_08045BB6:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- movs r0, 0x8C
- muls r0, r1
- add r0, r8
- movs r1, 0x2A
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2A
- b _08045BE8
-_08045BD0:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- movs r0, 0x8C
- muls r0, r1
- add r0, r8
- movs r1, 0x2B
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2B
-_08045BE8:
- adds r2, r4, 0
- bl SetMonData
- b _08045C0E
-_08045BF0:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- movs r0, 0x8C
- muls r0, r1
- add r0, r8
- movs r1, 0x2C
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2C
- adds r2, r4, 0
- bl SetMonData
-_08045C0E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08045B32
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end InheritIVs
-
- thumb_func_start GetEggMoves
-GetEggMoves: @ 8045C28
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- movs r6, 0
- movs r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _08045C50 @ =gUnknown_825EF0C
- ldrh r1, [r5]
- ldr r7, _08045C54 @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08045C58
- movs r4, 0x1
- b _08045C7A
- .align 2, 0
-_08045C50: .4byte gUnknown_825EF0C
-_08045C54: .4byte 0x00004e20
-_08045C58:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08045CC4 @ =0x00000471
- ldr r5, _08045CC8 @ =gUnknown_825EF0C
- cmp r2, r0
- bhi _08045C7A
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r7, _08045CCC @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08045C58
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08045C7A:
- movs r2, 0
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, _08045CCC @ =0x00004e20
- cmp r0, r1
- bhi _08045CB6
- adds r7, r5, 0
- adds r3, r1, 0
-_08045C8C:
- lsls r1, r2, 1
- add r1, r8
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bhi _08045CB6
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r3
- bls _08045C8C
-_08045CB6:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08045CC4: .4byte 0x00000471
-_08045CC8: .4byte gUnknown_825EF0C
-_08045CCC: .4byte 0x00004e20
- thumb_func_end GetEggMoves
-
- thumb_func_start BuildEggMoveset
-BuildEggMoveset: @ 8045CD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- mov r10, r1
- mov r9, r2
- movs r0, 0
- str r0, [sp]
- movs r6, 0
- ldr r5, _08045DD4 @ =gUnknown_2024580
- movs r2, 0
- ldr r4, _08045DD8 @ =gUnknown_202455C
- ldr r3, _08045DDC @ =gUnknown_2024564
-_08045CF0:
- lsls r1, r6, 1
- adds r0, r1, r5
- strh r2, [r0]
- adds r0, r1, r4
- strh r2, [r0]
- adds r1, r3
- strh r2, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08045CF0
- movs r6, 0
- ldr r2, _08045DE0 @ =gUnknown_202456C
- movs r1, 0
-_08045D0E:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _08045D0E
- movs r6, 0
- ldr r2, _08045DE4 @ =gUnknown_20244F8
- movs r1, 0
-_08045D24:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x31
- bls _08045D24
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08045DE4 @ =gUnknown_20244F8
- bl GetLevelUpMovesBySpecies
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r6, 0
- ldr r1, _08045DD8 @ =gUnknown_202455C
- mov r8, r1
-_08045D52:
- adds r5, r6, 0
- adds r5, 0xD
- mov r0, r10
- adds r1, r5, 0
- bl GetBoxMonData
- lsls r4, r6, 1
- mov r2, r8
- adds r1, r4, r2
- strh r0, [r1]
- mov r0, r9
- adds r1, r5, 0
- bl GetBoxMonData
- ldr r1, _08045DD4 @ =gUnknown_2024580
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08045D52
- ldr r1, _08045DE0 @ =gUnknown_202456C
- adds r0, r7, 0
- bl GetEggMoves
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
-_08045D8E:
- ldr r0, _08045DD8 @ =gUnknown_202455C
- lsls r1, r6, 1
- adds r2, r1, r0
- ldrh r1, [r2]
- mov r9, r0
- cmp r1, 0
- beq _08045E04
- movs r5, 0
- cmp r5, r8
- bcs _08045DF6
- adds r4, r2, 0
- ldr r2, _08045DE8 @ =0x0000ffff
-_08045DA6:
- ldr r0, _08045DE0 @ =gUnknown_202456C
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r4]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08045DEC
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08045DF6
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08045DF6
- .align 2, 0
-_08045DD4: .4byte gUnknown_2024580
-_08045DD8: .4byte gUnknown_202455C
-_08045DDC: .4byte gUnknown_2024564
-_08045DE0: .4byte gUnknown_202456C
-_08045DE4: .4byte gUnknown_20244F8
-_08045DE8: .4byte 0x0000ffff
-_08045DEC:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _08045DA6
-_08045DF6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _08045F20 @ =gUnknown_202455C
- mov r9, r3
- cmp r6, 0x3
- bls _08045D8E
-_08045E04:
- movs r6, 0
-_08045E06:
- lsls r0, r6, 1
- mov r2, r9
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r2, r0, 0
- adds r6, 0x1
- mov r8, r6
- cmp r1, 0
- beq _08045E68
- movs r5, 0
- ldr r0, _08045F20 @ =gUnknown_202455C
- adds r4, r2, r0
- ldr r6, _08045F24 @ =0x0000ffff
- mov r9, r0
-_08045E22:
- ldr r3, _08045F28 @ =0x00000121
- adds r0, r5, r3
- lsls r0, 16
- lsrs r0, 16
- bl ItemIdToBattleMoveId
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bne _08045E5E
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- beq _08045E5E
- ldrh r1, [r4]
- adds r0, r7, 0
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bne _08045E5E
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_08045E5E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x39
- bls _08045E22
-_08045E68:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08045E06
- movs r6, 0
- mov r2, r9
- ldrh r0, [r2]
- ldr r3, _08045F2C @ =gUnknown_2024564
- mov r10, r3
- cmp r0, 0
- beq _08045ED2
- mov r4, r9
- ldr r0, _08045F30 @ =gUnknown_2024580
- mov r9, r0
- mov r12, r10
-_08045E88:
- movs r5, 0
- lsls r2, r6, 1
- adds r6, 0x1
- mov r8, r6
- adds r3, r2, r4
-_08045E92:
- lsls r0, r5, 1
- add r0, r9
- ldrh r2, [r3]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bne _08045EB4
- cmp r1, 0
- beq _08045EB4
- ldr r1, [sp]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 1
- add r1, r12
- strh r2, [r1]
-_08045EB4:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _08045E92
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08045ED2
- lsls r0, r6, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _08045E88
-_08045ED2:
- movs r6, 0
- mov r2, r10
- ldrh r0, [r2]
- cmp r0, 0
- beq _08045F5C
-_08045EDC:
- movs r5, 0
- adds r3, r6, 0x1
- mov r8, r3
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcs _08045F44
- ldr r2, _08045F24 @ =0x0000ffff
-_08045EEA:
- ldr r1, _08045F34 @ =gUnknown_20244F8
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08045F38
- lsls r0, r6, 1
- mov r3, r10
- adds r4, r0, r3
- ldrh r0, [r4]
- cmp r0, r1
- bne _08045F38
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08045F44
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08045F44
- .align 2, 0
-_08045F20: .4byte gUnknown_202455C
-_08045F24: .4byte 0x0000ffff
-_08045F28: .4byte 0x00000121
-_08045F2C: .4byte gUnknown_2024564
-_08045F30: .4byte gUnknown_2024580
-_08045F34: .4byte gUnknown_20244F8
-_08045F38:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcc _08045EEA
-_08045F44:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08045F5C
- ldr r0, _08045F6C @ =gUnknown_2024564
- lsls r1, r6, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r10, r0
- cmp r1, 0
- bne _08045EDC
-_08045F5C:
- 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
-_08045F6C: .4byte gUnknown_2024564
- thumb_func_end BuildEggMoveset
-
- thumb_func_start RemoveEggFromDayCare
-RemoveEggFromDayCare: @ 8045F70
- adds r3, r0, 0
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r3, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r3, r1
- strb r2, [r0]
- bx lr
- thumb_func_end RemoveEggFromDayCare
-
- thumb_func_start RejectEggFromDayCare
-RejectEggFromDayCare: @ 8045F88
- push {lr}
- ldr r0, _08045F9C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl RemoveEggFromDayCare
- pop {r0}
- bx r0
- .align 2, 0
-_08045F9C: .4byte gSaveBlock1Ptr
- thumb_func_end RejectEggFromDayCare
-
- thumb_func_start sub_8045FA0
-sub_8045FA0: @ 8045FA0
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrh r1, [r4]
- movs r7, 0xB4
- lsls r7, 1
- cmp r1, r7
- beq _08045FB8
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08045FFA
-_08045FB8:
- adds r0, r5, 0
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r0, 0x8C
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4]
- cmp r0, r7
- bne _08045FE4
- cmp r6, 0xDD
- beq _08045FE4
- cmp r2, 0xDD
- beq _08045FE4
- movs r0, 0xCA
- strh r0, [r4]
-_08045FE4:
- ldrh r1, [r4]
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08045FFA
- cmp r6, 0xDC
- beq _08045FFA
- cmp r2, 0xDC
- beq _08045FFA
- movs r0, 0xB7
- strh r0, [r4]
-_08045FFA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8045FA0
-
- thumb_func_start sub_8046000
-sub_8046000: @ 8046000
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- movs r4, 0
- movs r7, 0x1
-_08046010:
- movs r0, 0x8C
- muls r0, r4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- lsls r1, r4, 1
- add r1, sp
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bne _08046038
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6]
- strb r4, [r6, 0x1]
- b _0804604E
-_08046038:
- adds r0, r5, 0
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- bne _0804604E
- strb r4, [r6]
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6, 0x1]
-_0804604E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08046010
- ldrb r0, [r6]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- bl sub_8045970
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bne _08046080
- movs r0, 0x8C
- lsls r0, 1
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08046080
- movs r4, 0x20
-_08046080:
- ldr r0, _080460D0 @ =0x00000183
- cmp r4, r0
- bne _0804609A
- subs r0, 0x6B
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _0804609A
- movs r4, 0xC1
- lsls r4, 1
-_0804609A:
- ldrb r0, [r6, 0x1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r0, 0x84
- bne _080460C2
- ldrb r1, [r6]
- movs r0, 0x8C
- muls r0, r1
- add r0, r8
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- beq _080460C2
- ldrb r1, [r6, 0x1]
- ldrb r0, [r6]
- strb r0, [r6, 0x1]
- strb r1, [r6]
-_080460C2:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080460D0: .4byte 0x00000183
- thumb_func_end sub_8046000
-
- thumb_func_start sub_80460D4
-sub_80460D4: @ 80460D4
- push {r4-r6,lr}
- sub sp, 0x6C
- adds r5, r0, 0
- add r6, sp, 0x64
- adds r1, r6, 0
- bl sub_8046000
- add r4, sp, 0x68
- strh r0, [r4]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8045FA0
- ldrh r1, [r4]
- mov r0, sp
- adds r2, r5, 0
- bl SetInitialEggData
- mov r0, sp
- adds r1, r5, 0
- bl InheritIVs
- ldrb r0, [r6, 0x1]
- movs r2, 0x8C
- adds r1, r0, 0
- muls r1, r2
- adds r1, r5, r1
- ldrb r0, [r6]
- muls r2, r0
- adds r2, r5, r2
- mov r0, sp
- bl BuildEggMoveset
- mov r2, sp
- adds r2, 0x6A
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- ldr r0, _0804614C @ =gPlayerParty
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- bl CompactPartySlots
- bl CalculatePlayerPartyCount
- adds r0, r5, 0
- bl RemoveEggFromDayCare
- add sp, 0x6C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804614C: .4byte gPlayerParty
- thumb_func_end sub_80460D4
-
- thumb_func_start CreateEgg
-CreateEgg: @ 8046150
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r7, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r0, 0x12
- add r0, sp
- mov r8, r0
- strb r4, [r0]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- movs r0, 0x1
- mov r9, r0
- mov r0, r9
- strb r0, [r4]
- adds r0, r7, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _08046200 @ =gUnknown_825F83E
- adds r0, r7, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _08046204 @ =gUnknown_8254795
- adds r2, r0
- adds r0, r7, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x24
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- cmp r6, 0
- beq _080461E2
- add r2, sp, 0x14
- movs r0, 0xFD
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x23
- bl SetMonData
-_080461E2:
- mov r2, sp
- adds r2, 0x15
- mov r0, r9
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x2D
- bl SetMonData
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046200: .4byte gUnknown_825F83E
-_08046204: .4byte gUnknown_8254795
- thumb_func_end CreateEgg
-
- thumb_func_start SetInitialEggData
-SetInitialEggData: @ 8046208
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- bl Random
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- ldrh r1, [r4]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x1
- mov r8, r0
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x12
- add r1, sp
- mov r9, r1
- strb r4, [r1]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- mov r0, r8
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _080462A4 @ =gUnknown_825F83E
- adds r0, r6, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _080462A8 @ =gUnknown_8254795
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x24
- mov r2, r9
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080462A4: .4byte gUnknown_825F83E
-_080462A8: .4byte gUnknown_8254795
- thumb_func_end SetInitialEggData
-
- thumb_func_start GiveEggFromDaycare
-GiveEggFromDaycare: @ 80462AC
- push {lr}
- ldr r0, _080462C0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl sub_80460D4
- pop {r0}
- bx r0
- .align 2, 0
-_080462C0: .4byte gSaveBlock1Ptr
- thumb_func_end GiveEggFromDaycare
-
- thumb_func_start sub_80462C4
-sub_80462C4: @ 80462C4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r7, 0
- movs r5, 0
-_080462CE:
- movs r0, 0x8C
- adds r4, r5, 0
- muls r4, r0
- adds r0, r6, r4
- movs r1, 0x5
- bl GetBoxMonData
- cmp r0, 0
- beq _080462EE
- adds r1, r6, 0
- adds r1, 0x88
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- adds r7, 0x1
-_080462EE:
- adds r5, 0x1
- cmp r5, 0x1
- bls _080462CE
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r6, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08046334
- cmp r7, 0x2
- bne _08046334
- subs r1, 0x4
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08046334
- adds r0, r6, 0
- bl GetDaycareCompatibilityScore
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0804634C @ =0x0000ffff
- bl __udivsi3
- cmp r4, r0
- bls _08046334
- bl sub_8045A48
-_08046334:
- movs r0, 0x8D
- lsls r0, 1
- adds r1, r6, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080463A8
- movs r5, 0
- b _080463A0
- .align 2, 0
-_0804634C: .4byte 0x0000ffff
-_08046350:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08046388 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0804639E
- adds r0, r4, 0
- movs r1, 0x4
- bl GetMonData
- cmp r0, 0
- bne _0804639E
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- bne _08046390
- ldr r0, _0804638C @ =gSpecialVar_0x8004
- strh r5, [r0]
- movs r0, 0x1
- b _080463AA
- .align 2, 0
-_08046388: .4byte gPlayerParty
-_0804638C: .4byte gSpecialVar_0x8004
-_08046390:
- subs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_0804639E:
- adds r5, 0x1
-_080463A0:
- ldr r0, _080463B4 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r5, r0
- bcc _08046350
-_080463A8:
- movs r0, 0
-_080463AA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080463B4: .4byte gPlayerPartyCount
- thumb_func_end sub_80462C4
-
- thumb_func_start sub_80463B8
-sub_80463B8: @ 80463B8
- push {r4,lr}
- ldr r4, _080463F0 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r1, _080463F4 @ =0x00003c98
- adds r0, r1
- movs r1, 0x5
- bl GetBoxMonData
- cmp r0, 0
- beq _080463D8
- ldr r1, [r4]
- ldr r0, _080463F8 @ =0x00003d20
- adds r1, r0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080463D8:
- ldr r0, [r4]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl sub_80462C4
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080463F0: .4byte gSaveBlock1Ptr
-_080463F4: .4byte 0x00003c98
-_080463F8: .4byte 0x00003d20
- thumb_func_end sub_80463B8
-
- thumb_func_start sub_80463FC
-sub_80463FC: @ 80463FC
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- ldrh r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- thumb_func_end sub_80463FC
-
- thumb_func_start _GetDaycareMonNicknames
-_GetDaycareMonNicknames: @ 804640C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08046436
- ldr r1, _08046454 @ =gStringVar1
- adds r0, r4, 0
- bl GetBoxMonNick
- adds r0, r4, 0
- movs r1, 0x7
- mov r2, sp
- bl GetBoxMonData
- ldr r0, _08046458 @ =gStringVar3
- mov r1, sp
- bl StringCopy
-_08046436:
- adds r4, 0x8C
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _0804644C
- ldr r1, _0804645C @ =gStringVar2
- adds r0, r4, 0
- bl GetBoxMonNick
-_0804644C:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046454: .4byte gStringVar1
-_08046458: .4byte gStringVar3
-_0804645C: .4byte gStringVar2
- thumb_func_end _GetDaycareMonNicknames
-
- thumb_func_start GetSelectedMonNickAndSpecies
-GetSelectedMonNickAndSpecies: @ 8046460
- push {r4,r5,lr}
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08046494 @ =gPlayerParty
- adds r0, r4
- ldr r1, _08046498 @ =gStringVar1
- bl GetBoxMonNick
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08046494: .4byte gPlayerParty
-_08046498: .4byte gStringVar1
- thumb_func_end GetSelectedMonNickAndSpecies
-
- thumb_func_start GetDaycareMonNicknames
-GetDaycareMonNicknames: @ 804649C
- push {lr}
- ldr r0, _080464B0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl _GetDaycareMonNicknames
- pop {r0}
- bx r0
- .align 2, 0
-_080464B0: .4byte gSaveBlock1Ptr
- thumb_func_end GetDaycareMonNicknames
-
- thumb_func_start sub_80464B4
-sub_80464B4: @ 80464B4
- push {r4,lr}
- ldr r4, _080464D0 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl sub_80463FC
- lsls r0, 24
- cmp r0, 0
- beq _080464D4
- movs r0, 0x1
- b _080464F2
- .align 2, 0
-_080464D0: .4byte gSaveBlock1Ptr
-_080464D4:
- ldr r0, [r4]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl CountPokemonInDaycare
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080464EC
- movs r0, 0
- b _080464F2
-_080464EC:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080464F2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80464B4
-
- thumb_func_start GetDaycarePokemonCount
-GetDaycarePokemonCount: @ 80464F8
- push {lr}
- ldr r0, _08046518 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl CountPokemonInDaycare
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08046512
- movs r0, 0
-_08046512:
- pop {r1}
- bx r1
- .align 2, 0
-_08046518: .4byte gSaveBlock1Ptr
- thumb_func_end GetDaycarePokemonCount
-
- thumb_func_start EggGroupsOverlap
-EggGroupsOverlap: @ 804651C
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r4, 0
- adds r1, r0, 0
-_08046524:
- movs r3, 0
- ldrh r0, [r1]
- adds r2, r5, 0
-_0804652A:
- ldrh r6, [r2]
- cmp r0, r6
- bne _08046534
- movs r0, 0x1
- b _08046546
-_08046534:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x1
- ble _0804652A
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x1
- ble _08046524
- movs r0, 0
-_08046546:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end EggGroupsOverlap
-
- thumb_func_start GetDaycareCompatibilityScore
-GetDaycareCompatibilityScore: @ 804654C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- str r0, [sp, 0x1C]
- movs r7, 0
- mov r0, sp
- adds r0, 0x8
- str r0, [sp, 0x20]
- add r1, sp, 0xC
- mov r9, r1
- mov r2, sp
- adds r2, 0x14
- str r2, [sp, 0x24]
- subs r0, 0x6
- ldr r1, _08046600 @ =gBaseStats
- mov r10, r1
- ldr r5, [sp, 0x20]
- mov r8, r0
- mov r6, sp
- str r2, [sp, 0x28]
- mov r2, r9
- str r2, [sp, 0x2C]
-_0804657E:
- movs r0, 0x8C
- adds r4, r7, 0
- muls r4, r0
- ldr r0, [sp, 0x1C]
- adds r4, r0, r4
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBoxMonData
- ldr r1, [sp, 0x2C]
- stm r1!, {r0}
- str r1, [sp, 0x2C]
- adds r0, r4, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldrh r0, [r5]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x28]
- stm r2!, {r0}
- str r2, [sp, 0x28]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r0, [r0, 0x14]
- strh r0, [r6]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r0, [r0, 0x15]
- mov r1, r8
- strh r0, [r1]
- adds r5, 0x2
- movs r2, 0x4
- add r8, r2
- adds r6, 0x4
- adds r7, 0x1
- cmp r7, 0x1
- bls _0804657E
- mov r0, sp
- ldrh r1, [r0]
- cmp r1, 0xF
- beq _080465FC
- ldrh r0, [r0, 0x4]
- cmp r0, 0xF
- beq _080465FC
- cmp r1, 0xD
- bne _08046604
- cmp r0, 0xD
- bne _08046608
-_080465FC:
- movs r0, 0
- b _0804665C
- .align 2, 0
-_08046600: .4byte gBaseStats
-_08046604:
- cmp r0, 0xD
- bne _08046614
-_08046608:
- ldr r1, [sp, 0xC]
- mov r2, r9
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _08046656
- b _0804665A
-_08046614:
- ldr r0, [sp, 0x14]
- ldr r2, [sp, 0x24]
- ldr r1, [r2, 0x4]
- cmp r0, r1
- beq _080465FC
- cmp r0, 0xFF
- beq _080465FC
- cmp r1, 0xFF
- beq _080465FC
- add r1, sp, 0x4
- mov r0, sp
- bl EggGroupsOverlap
- lsls r0, 24
- cmp r0, 0
- beq _080465FC
- ldr r0, [sp, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r0, [r0]
- cmp r0, r1
- bne _0804664C
- ldr r1, [sp, 0xC]
- mov r2, r9
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _0804665A
- movs r0, 0x46
- b _0804665C
-_0804664C:
- ldr r1, [sp, 0xC]
- mov r2, r9
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bne _0804665A
-_08046656:
- movs r0, 0x14
- b _0804665C
-_0804665A:
- movs r0, 0x32
-_0804665C:
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetDaycareCompatibilityScore
-
- thumb_func_start GetDaycareCompatibilityScoreFromSave
-GetDaycareCompatibilityScoreFromSave: @ 804666C
- push {lr}
- ldr r0, _08046684 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- bl GetDaycareCompatibilityScore
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08046684: .4byte gSaveBlock1Ptr
- thumb_func_end GetDaycareCompatibilityScoreFromSave
-
- thumb_func_start SetDaycareCompatibilityString
-SetDaycareCompatibilityString: @ 8046688
- push {lr}
- bl GetDaycareCompatibilityScoreFromSave
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- movs r1, 0
- cmp r0, 0
- bne _0804669C
- movs r1, 0x3
-_0804669C:
- cmp r0, 0x14
- bne _080466A2
- movs r1, 0x2
-_080466A2:
- cmp r0, 0x32
- bne _080466A8
- movs r1, 0x1
-_080466A8:
- cmp r2, 0x46
- bne _080466AE
- movs r1, 0
-_080466AE:
- ldr r0, _080466C0 @ =gStringVar4
- ldr r2, _080466C4 @ =gUnknown_825F82C
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_080466C0: .4byte gStringVar4
-_080466C4: .4byte gUnknown_825F82C
- thumb_func_end SetDaycareCompatibilityString
-
- thumb_func_start NameHasGenderSymbol
-NameHasGenderSymbol: @ 80466C8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r2, sp
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x1]
- strb r0, [r2]
- movs r3, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0804670C
-_080466E4:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0xB5
- bne _080466F2
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_080466F2:
- ldrb r0, [r1]
- cmp r0, 0xB6
- bne _080466FE
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- strb r0, [r2, 0x1]
-_080466FE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080466E4
-_0804670C:
- cmp r5, 0
- bne _08046720
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _08046720
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08046734
-_08046720:
- cmp r5, 0xFE
- bne _08046738
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08046738
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _08046738
-_08046734:
- movs r0, 0x1
- b _0804673A
-_08046738:
- movs r0, 0
-_0804673A:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end NameHasGenderSymbol
-
- thumb_func_start AppendGenderSymbol
-AppendGenderSymbol: @ 8046744
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _08046764
- movs r1, 0
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08046780
- ldr r1, _08046760 @ =gUnknown_8261EC1
- b _08046782
- .align 2, 0
-_08046760: .4byte gUnknown_8261EC1
-_08046764:
- cmp r1, 0xFE
- bne _08046780
- adds r0, r4, 0
- movs r1, 0xFE
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08046780
- ldr r1, _0804677C @ =gUnknown_8261EC3
- b _08046782
- .align 2, 0
-_0804677C: .4byte gUnknown_8261EC3
-_08046780:
- ldr r1, _08046790 @ =gUnknown_8261EC5
-_08046782:
- adds r0, r4, 0
- bl StringAppend
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08046790: .4byte gUnknown_8261EC5
- thumb_func_end AppendGenderSymbol
-
- thumb_func_start AppendMonGenderSymbol
-AppendMonGenderSymbol: @ 8046794
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- bl GetBoxMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl AppendGenderSymbol
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end AppendMonGenderSymbol
-
- thumb_func_start GetDaycareLevelMenuText
-GetDaycareLevelMenuText: @ 80467B0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- mov r8, r0
- adds r7, r1, 0
- movs r0, 0xFF
- strb r0, [r7]
- movs r6, 0
- add r0, sp, 0x14
- mov r9, r0
-_080467C8:
- movs r0, 0x8C
- adds r4, r6, 0
- muls r4, r0
- add r4, r8
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- mov r1, sp
- adds r5, r1, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetBoxMonNick
- adds r0, r5, 0
- adds r1, r4, 0
- bl AppendMonGenderSymbol
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _080467C8
- adds r0, r7, 0
- mov r1, sp
- bl StringCopy
- ldr r4, _0804682C @ =gUnknown_825F83C
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- adds r0, r7, 0
- mov r1, r9
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- ldr r1, _08046830 @ =gUnknown_84161C8
- adds r0, r7, 0
- bl StringAppend
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804682C: .4byte gUnknown_825F83C
-_08046830: .4byte gUnknown_84161C8
- thumb_func_end GetDaycareLevelMenuText
-
- thumb_func_start GetDaycareLevelMenuLevelText
-GetDaycareLevelMenuLevelText: @ 8046834
- push {r4-r6,lr}
- sub sp, 0x14
- adds r6, r0, 0
- adds r4, r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r5, 0
-_08046842:
- adds r0, r4, 0
- ldr r1, _08046890 @ =gUnknown_8416223
- bl StringAppend
- movs r0, 0x8C
- adds r2, r5, 0
- muls r2, r0
- adds r0, r6, r2
- adds r1, r6, 0
- adds r1, 0x88
- adds r1, r2
- ldr r1, [r1]
- bl GetLevelAfterDaycareSteps
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- mov r1, sp
- bl StringAppend
- adds r0, r4, 0
- ldr r1, _08046894 @ =gUnknown_825F83C
- bl StringAppend
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _08046842
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08046890: .4byte gUnknown_8416223
-_08046894: .4byte gUnknown_825F83C
- thumb_func_end GetDaycareLevelMenuLevelText
-
- thumb_func_start DaycareAddTextPrinter
-DaycareAddTextPrinter: @ 8046898
- push {r4,r5,lr}
- sub sp, 0x10
- str r1, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- movs r0, 0x3
- strb r0, [r1, 0x5]
- mov r0, sp
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- strb r2, [r0, 0x8]
- strb r3, [r0, 0x9]
- mov r3, sp
- ldrb r1, [r3, 0xC]
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r3, 0xC]
- ldr r3, _08046908 @ =gTextFlags
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- mov r0, sp
- movs r5, 0x1
- movs r1, 0x1
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r3, sp
- ldrb r1, [r3, 0xC]
- movs r4, 0xF
- adds r0, r4, 0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r3, 0xC]
- mov r1, sp
- ldrb r0, [r1, 0xD]
- ands r2, r0
- orrs r2, r5
- strb r2, [r1, 0xD]
- ands r2, r4
- movs r0, 0x30
- orrs r2, r0
- strb r2, [r1, 0xD]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046908: .4byte gTextFlags
- thumb_func_end DaycareAddTextPrinter
-
- thumb_func_start DaycarePrintMonNick
-DaycarePrintMonNick: @ 804690C
- push {r4-r6,lr}
- sub sp, 0x14
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x8C
- muls r0, r2
- adds r5, r0
- adds r0, r5, 0
- mov r1, sp
- bl GetBoxMonNick
- mov r0, sp
- adds r1, r5, 0
- bl AppendMonGenderSymbol
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0x8
- adds r3, r6, 0
- bl DaycareAddTextPrinter
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end DaycarePrintMonNick
-
- thumb_func_start DaycarePrintMonLvl
-DaycarePrintMonLvl: @ 8046944
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080469B0 @ =gUnknown_8416223
- mov r0, sp
- bl strcpy
- movs r0, 0x8C
- adds r1, r6, 0
- muls r1, r0
- adds r0, r4, r1
- adds r4, 0x88
- adds r4, r1
- ldr r1, [r4]
- bl GetLevelAfterDaycareSteps
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- add r4, sp, 0xC
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- movs r0, 0x3
- mov r1, sp
- movs r2, 0
- bl GetStringWidth
- movs r2, 0x84
- subs r2, r0
- adds r0, r5, 0
- mov r1, sp
- mov r3, r8
- bl DaycareAddTextPrinter
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080469B0: .4byte gUnknown_8416223
- thumb_func_end DaycarePrintMonLvl
-
- thumb_func_start DaycarePrintMonInfo
-DaycarePrintMonInfo: @ 80469B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 24
- lsrs r5, r2, 24
- cmp r6, 0x1
- bhi _080469EE
- ldr r0, _080469F8 @ =gSaveBlock1Ptr
- mov r8, r0
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 6
- adds r0, r4
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl DaycarePrintMonNick
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl DaycarePrintMonLvl
-_080469EE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080469F8: .4byte gSaveBlock1Ptr
- thumb_func_end DaycarePrintMonInfo
-
- thumb_func_start Task_HandleDaycareLevelMenuInput
-Task_HandleDaycareLevelMenuInput: @ 80469FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _08046A2C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrb r0, [r4, 0x8]
- bl ListMenuHandleInput
- adds r1, r0, 0
- ldr r0, _08046A30 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08046A7C
- cmp r1, 0x1
- bls _08046A34
- cmp r1, 0x5
- beq _08046A40
- b _08046A46
- .align 2, 0
-_08046A2C: .4byte gTasks
-_08046A30: .4byte gMain
-_08046A34:
- ldr r0, _08046A3C @ =gSpecialVar_Result
- strh r1, [r0]
- b _08046A46
- .align 2, 0
-_08046A3C: .4byte gSpecialVar_Result
-_08046A40:
- ldr r1, _08046A74 @ =gSpecialVar_Result
- movs r0, 0x2
- strh r0, [r1]
-_08046A46:
- ldr r0, _08046A78 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- movs r1, 0
- movs r2, 0
- bl sub_810713C
- ldrb r0, [r4, 0xA]
- movs r1, 0x1
- bl sub_80F6F9C
- ldrb r0, [r4, 0xA]
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- b _08046AAC
- .align 2, 0
-_08046A74: .4byte gSpecialVar_Result
-_08046A78: .4byte gTasks
-_08046A7C:
- movs r1, 0x2
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08046AAC
- ldr r0, _08046AB4 @ =gSpecialVar_Result
- strh r1, [r0]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- movs r2, 0
- bl sub_810713C
- ldrb r0, [r4, 0xA]
- movs r1, 0x1
- bl sub_80F6F9C
- ldrb r0, [r4, 0xA]
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_08046AAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046AB4: .4byte gSpecialVar_Result
- thumb_func_end Task_HandleDaycareLevelMenuInput
-
- thumb_func_start ShowDaycareLevelMenu
-ShowDaycareLevelMenu: @ 8046AB8
- push {r4,r5,lr}
- sub sp, 0x18
- ldr r0, _08046B18 @ =gUnknown_825F7F4
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_80F6F1C
- mov r1, sp
- ldr r0, _08046B1C @ =gUnknown_825F814
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- strb r4, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _08046B20 @ =Task_HandleDaycareLevelMenuInput
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046B24 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r4, [r1, 0xA]
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046B18: .4byte gUnknown_825F7F4
-_08046B1C: .4byte gUnknown_825F814
-_08046B20: .4byte Task_HandleDaycareLevelMenuInput
-_08046B24: .4byte gTasks
- thumb_func_end ShowDaycareLevelMenu
-
- thumb_func_start ChooseSendDaycareMon
-ChooseSendDaycareMon: @ 8046B28
- push {lr}
- bl sub_8128370
- ldr r1, _08046B38 @ =gMain
- ldr r0, _08046B3C @ =c2_exit_to_overworld_2_switch
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_08046B38: .4byte gMain
-_08046B3C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end ChooseSendDaycareMon
-
- thumb_func_start sub_8046B40
-sub_8046B40: @ 8046B40
- push {lr}
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08046B64 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08046B68 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r2, _08046B6C @ =0x00003c98
- adds r1, r2
- bl StorePokemonInDaycare
- pop {r0}
- bx r0
- .align 2, 0
-_08046B64: .4byte gPlayerParty
-_08046B68: .4byte gSaveBlock1Ptr
-_08046B6C: .4byte 0x00003c98
- thumb_func_end sub_8046B40
-
- thumb_func_start sub_8046B70
-sub_8046B70: @ 8046B70
- push {lr}
- ldr r0, _08046B88 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08046B8C @ =0x00003c98
- adds r0, r1
- bl GetDaycareCostForSelectedMon
- ldr r1, _08046B90 @ =gSpecialVar_0x8005
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08046B88: .4byte gSaveBlock1Ptr
-_08046B8C: .4byte 0x00003c98
-_08046B90: .4byte gSpecialVar_0x8005
- thumb_func_end sub_8046B70
-
- thumb_func_start sub_8046B94
-sub_8046B94: @ 8046B94
- push {lr}
- ldr r0, _08046BAC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08046BB0 @ =0x00003c98
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08046BB4
- movs r0, 0
- b _08046BB6
- .align 2, 0
-_08046BAC: .4byte gSaveBlock1Ptr
-_08046BB0: .4byte 0x00003c98
-_08046BB4:
- movs r0, 0x1
-_08046BB6:
- pop {r1}
- bx r1
- thumb_func_end sub_8046B94
-
- thumb_func_start sub_8046BBC
-sub_8046BBC: @ 8046BBC
- push {lr}
- ldr r0, _08046BD4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08046BD8 @ =0x00003c98
- adds r0, r1
- bl GetNumLevelsGainedForDaycareMon
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08046BD4: .4byte gSaveBlock1Ptr
-_08046BD8: .4byte 0x00003c98
- thumb_func_end sub_8046BBC
-
- thumb_func_start sub_8046BDC
-sub_8046BDC: @ 8046BDC
- push {lr}
- ldr r0, _08046BF4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08046BF8 @ =0x00003c98
- adds r0, r1
- bl TakeSelectedPokemonFromDaycare
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08046BF4: .4byte gSaveBlock1Ptr
-_08046BF8: .4byte 0x00003c98
- thumb_func_end sub_8046BDC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/decompress.s b/asm/decompress.s
index 8c213a8d1..cc38e0df5 100644
--- a/asm/decompress.s
+++ b/asm/decompress.s
@@ -132,12 +132,12 @@ DecompressPicFromTable: @ 800EC8C
lsls r0, 1
cmp r5, r0
ble _0800ECAC
- ldr r0, _0800ECA8 @ =gUnknown_82350AC
+ ldr r0, _0800ECA8 @ =gMonFrontPicTable
ldr r0, [r0]
bl LZ77UnCompWram
b _0800ECB4
.align 2, 0
-_0800ECA8: .4byte gUnknown_82350AC
+_0800ECA8: .4byte gMonFrontPicTable
_0800ECAC:
ldr r0, [r3]
adds r1, r4, 0
@@ -158,7 +158,7 @@ sub_800ECC4: @ 800ECC4
adds r4, r0, 0
adds r5, r1, 0
lsls r0, r2, 3
- ldr r1, _0800ECEC @ =gUnknown_82350AC
+ ldr r1, _0800ECEC @ =gMonFrontPicTable
adds r0, r1
movs r1, 0
cmp r4, r0
@@ -168,17 +168,17 @@ _0800ECDA:
str r1, [sp]
adds r0, r4, 0
adds r1, r5, 0
- bl sub_800ECF0
+ bl LoadSpecialPokePic
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_0800ECEC: .4byte gUnknown_82350AC
+_0800ECEC: .4byte gMonFrontPicTable
thumb_func_end sub_800ECC4
- thumb_func_start sub_800ECF0
-sub_800ECF0: @ 800ECF0
+ thumb_func_start LoadSpecialPokePic
+LoadSpecialPokePic: @ 800ECF0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -227,34 +227,34 @@ _0800ED48:
mov r0, r8
cmp r0, 0
bne _0800ED5C
- ldr r0, _0800ED58 @ =gUnknown_823654C
+ ldr r0, _0800ED58 @ =gMonBackPicTable
lsls r1, 3
adds r1, r0
ldr r0, [r1]
b _0800ED78
.align 2, 0
-_0800ED58: .4byte gUnknown_823654C
+_0800ED58: .4byte gMonBackPicTable
_0800ED5C:
- ldr r0, _0800ED68 @ =gUnknown_82350AC
+ ldr r0, _0800ED68 @ =gMonFrontPicTable
lsls r1, 3
adds r1, r0
ldr r0, [r1]
b _0800ED78
.align 2, 0
-_0800ED68: .4byte gUnknown_82350AC
+_0800ED68: .4byte gMonFrontPicTable
_0800ED6C:
movs r0, 0xCE
lsls r0, 1
cmp r7, r0
ble _0800ED84
- ldr r0, _0800ED80 @ =gUnknown_82350AC
+ ldr r0, _0800ED80 @ =gMonFrontPicTable
ldr r0, [r0]
_0800ED78:
adds r1, r4, 0
bl LZ77UnCompWram
b _0800ED8C
.align 2, 0
-_0800ED80: .4byte gUnknown_82350AC
+_0800ED80: .4byte gMonFrontPicTable
_0800ED84:
ldr r0, [r6]
adds r1, r4, 0
@@ -274,7 +274,7 @@ _0800ED8C:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_800ECF0
+ thumb_func_end LoadSpecialPokePic
thumb_func_start sub_800EDAC
sub_800EDAC: @ 800EDAC
@@ -722,8 +722,8 @@ _0800F0BA:
bx r1
thumb_func_end sub_800F078
- thumb_func_start sub_800F0C4
-sub_800F0C4: @ 800F0C4
+ thumb_func_start GetDecompressedDataSize
+GetDecompressedDataSize: @ 800F0C4
sub sp, 0x4
mov r3, sp
ldrb r2, [r0, 0x1]
@@ -738,7 +738,7 @@ sub_800F0C4: @ 800F0C4
ldr r0, [sp]
add sp, 0x4
bx lr
- thumb_func_end sub_800F0C4
+ thumb_func_end GetDecompressedDataSize
thumb_func_start DecompressPicFromTable_DontHandleDeoxys
DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0
@@ -748,12 +748,12 @@ DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0
lsls r0, 1
cmp r2, r0
ble _0800F0FC
- ldr r0, _0800F0F8 @ =gUnknown_82350AC
+ ldr r0, _0800F0F8 @ =gMonFrontPicTable
ldr r0, [r0]
bl LZ77UnCompWram
b _0800F102
.align 2, 0
-_0800F0F8: .4byte gUnknown_82350AC
+_0800F0F8: .4byte gMonFrontPicTable
_0800F0FC:
ldr r0, [r3]
bl LZ77UnCompWram
@@ -769,7 +769,7 @@ HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108
adds r4, r0, 0
adds r5, r1, 0
lsls r0, r2, 3
- ldr r1, _0800F130 @ =gUnknown_82350AC
+ ldr r1, _0800F130 @ =gMonFrontPicTable
adds r0, r1
movs r1, 0
cmp r4, r0
@@ -785,7 +785,7 @@ _0800F11E:
pop {r0}
bx r0
.align 2, 0
-_0800F130: .4byte gUnknown_82350AC
+_0800F130: .4byte gMonFrontPicTable
thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys
thumb_func_start LoadSpecialPokePic_DontHandleDeoxys
@@ -838,34 +838,34 @@ _0800F18C:
mov r0, r8
cmp r0, 0
bne _0800F1A0
- ldr r0, _0800F19C @ =gUnknown_823654C
+ ldr r0, _0800F19C @ =gMonBackPicTable
lsls r1, 3
adds r1, r0
ldr r0, [r1]
b _0800F1BC
.align 2, 0
-_0800F19C: .4byte gUnknown_823654C
+_0800F19C: .4byte gMonBackPicTable
_0800F1A0:
- ldr r0, _0800F1AC @ =gUnknown_82350AC
+ ldr r0, _0800F1AC @ =gMonFrontPicTable
lsls r1, 3
adds r1, r0
ldr r0, [r1]
b _0800F1BC
.align 2, 0
-_0800F1AC: .4byte gUnknown_82350AC
+_0800F1AC: .4byte gMonFrontPicTable
_0800F1B0:
movs r0, 0xCE
lsls r0, 1
cmp r7, r0
ble _0800F1C8
- ldr r0, _0800F1C4 @ =gUnknown_82350AC
+ ldr r0, _0800F1C4 @ =gMonFrontPicTable
ldr r0, [r0]
_0800F1BC:
adds r1, r5, 0
bl LZ77UnCompWram
b _0800F1D0
.align 2, 0
-_0800F1C4: .4byte gUnknown_82350AC
+_0800F1C4: .4byte gMonFrontPicTable
_0800F1C8:
ldr r0, [r6]
adds r1, r5, 0
diff --git a/asm/diploma.s b/asm/diploma.s
index d0b652619..cfc70d694 100644
--- a/asm/diploma.s
+++ b/asm/diploma.s
@@ -279,7 +279,7 @@ sub_80F4E24: @ 80F4E24
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_80F4E24
@@ -559,7 +559,7 @@ _080F5050:
movs r0, 0
movs r1, 0x2
movs r3, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, _080F50EC @ =gUnknown_841B619
add r0, sp, 0xC
bl UnkTextUtil_StringExpandPlaceholders
@@ -579,7 +579,7 @@ _080F5050:
movs r1, 0x2
adds r2, r4, 0
movs r3, 0x1E
- bl box_print
+ bl AddTextPrinterParameterized3
str r6, [sp]
movs r0, 0
str r0, [sp, 0x4]
@@ -589,7 +589,7 @@ _080F5050:
movs r1, 0x2
movs r2, 0x78
movs r3, 0x69
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
bl PutWindowTilemap
add sp, 0xAC
diff --git a/asm/unk_81507FC.s b/asm/dodrio_berry_picking.s
index 0118eff4b..160208493 100644
--- a/asm/unk_81507FC.s
+++ b/asm/dodrio_berry_picking.s
@@ -6240,7 +6240,7 @@ _08153754: .4byte gUnknown_203F3E0
_08153758:
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
bne _0815376A
@@ -6249,10 +6249,10 @@ _08153758:
_0815376A:
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
beq _08153784
@@ -6474,11 +6474,11 @@ sub_81538D0: @ 81538D0
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r0, r7, 0
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -8351,7 +8351,7 @@ sub_8154720: @ 8154720
movs r0, 0
movs r1, 0xA
movs r2, 0xB0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
pop {r0}
bx r0
thumb_func_end sub_8154720
@@ -9014,7 +9014,7 @@ _08154C4E:
str r4, [sp, 0x8]
movs r1, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r10
ldr r0, [r2]
add r0, r9
@@ -9319,7 +9319,7 @@ _08154EC8:
movs r1, 0
movs r2, 0x1C
adds r3, r6, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add r0, sp, 0xC
mov r1, r9
movs r2, 0x1
@@ -9563,7 +9563,7 @@ _081550EA:
str r6, [sp, 0x8]
movs r1, 0
movs r2, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
movs r7, 0
mov r0, r9
adds r0, 0x1
@@ -9624,7 +9624,7 @@ _0815512E:
add r1, sp, 0xC
str r1, [sp, 0x8]
movs r1, 0
- bl box_print
+ bl AddTextPrinterParameterized3
b _081551FA
.align 2, 0
_081551A8: .4byte gUnknown_203F440
@@ -9989,7 +9989,7 @@ _08155480:
lsrs r0, 16
add r5, sp, 0x70
adds r1, r5, 0
- bl sub_8099E90
+ bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
@@ -10021,7 +10021,7 @@ _08155480:
lsls r0, 16
lsrs r0, 16
adds r1, r5, 0
- bl sub_8099E90
+ bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
@@ -10657,7 +10657,7 @@ _08155A9C:
_08155AA6:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _08155ACC @ =gUnknown_8419F54
str r4, [sp]
movs r0, 0x2
@@ -10669,7 +10669,7 @@ _08155AA6:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
b _08155B08
.align 2, 0
_08155ACC: .4byte gUnknown_8419F54
@@ -11276,8 +11276,8 @@ _08155EC6:
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
movs r1, 0x82
lsls r1, 5
movs r0, 0
diff --git a/asm/dodrio_berry_picking_2.s b/asm/dodrio_berry_picking_2.s
new file mode 100644
index 000000000..792dc4b0f
--- /dev/null
+++ b/asm/dodrio_berry_picking_2.s
@@ -0,0 +1,734 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_815A61C
+sub_815A61C: @ 815A61C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r4, [sp, 0x48]
+ lsls r4, 24
+ str r4, [sp, 0x1C]
+ movs r4, 0x14
+ adds r4, r0
+ mov r9, r4
+ mov r5, sp
+ movs r4, 0x2
+ strb r4, [r5]
+ mov r10, sp
+ mov r5, r9
+ ldrb r4, [r5, 0xB]
+ movs r7, 0xF
+ adds r5, r7, 0
+ ands r5, r4
+ mov r6, r10
+ ldrb r6, [r6, 0x1]
+ mov r8, r6
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x1]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0xC]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x1]
+ ldrb r5, [r6, 0xD]
+ movs r6, 0xF
+ ands r5, r6
+ mov r4, r10
+ ldrb r4, [r4, 0x2]
+ mov r8, r4
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x2]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0xE]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x2]
+ ldrb r5, [r6, 0xF]
+ movs r6, 0xF
+ ands r5, r6
+ mov r4, r10
+ ldrb r4, [r4, 0x3]
+ mov r8, r4
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x3]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0x10]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x3]
+ ldrb r5, [r6, 0x11]
+ movs r6, 0xF
+ ands r5, r6
+ mov r4, r10
+ ldrb r4, [r4, 0x4]
+ mov r8, r4
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x4]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0x12]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x4]
+ ldrb r4, [r6, 0x13]
+ movs r6, 0xF
+ ands r4, r6
+ mov r6, r8
+ ldrb r5, [r6, 0x5]
+ movs r6, 0x10
+ negs r6, r6
+ ands r6, r5
+ orrs r6, r4
+ str r6, [sp, 0xC]
+ mov r4, r8
+ strb r6, [r4, 0x5]
+ mov r5, sp
+ mov r6, r9
+ ldrb r4, [r6, 0x14]
+ lsls r4, 4
+ ldr r6, [sp, 0xC]
+ ands r6, r7
+ orrs r6, r4
+ strb r6, [r5, 0x5]
+ mov r7, sp
+ movs r4, 0x3
+ mov r8, r4
+ ldrb r0, [r0, 0x14]
+ mov r5, r8
+ ands r0, r5
+ ldrb r5, [r7, 0x6]
+ movs r6, 0x4
+ negs r6, r6
+ mov r10, r6
+ mov r4, r10
+ ands r4, r5
+ orrs r4, r0
+ strb r4, [r7, 0x6]
+ mov r5, r9
+ ldrb r0, [r5, 0x1]
+ mov r6, r8
+ ands r0, r6
+ lsls r0, 2
+ movs r5, 0xD
+ negs r5, r5
+ ands r5, r4
+ orrs r5, r0
+ strb r5, [r7, 0x6]
+ mov r0, r9
+ ldrb r4, [r0, 0x2]
+ ands r4, r6
+ lsls r4, 4
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r5
+ orrs r0, r4
+ strb r0, [r7, 0x6]
+ mov r5, sp
+ mov r6, r9
+ ldrb r4, [r6, 0x3]
+ lsls r4, 6
+ movs r6, 0x3F
+ ands r0, r6
+ orrs r0, r4
+ strb r0, [r5, 0x6]
+ mov r4, r9
+ ldrb r0, [r4, 0x4]
+ mov r5, r8
+ ands r0, r5
+ ldrb r5, [r7, 0x7]
+ mov r4, r10
+ ands r4, r5
+ orrs r4, r0
+ strb r4, [r7, 0x7]
+ mov r6, r9
+ ldrb r0, [r6, 0x5]
+ mov r5, r8
+ ands r0, r5
+ lsls r0, 2
+ movs r5, 0xD
+ negs r5, r5
+ ands r5, r4
+ orrs r5, r0
+ strb r5, [r7, 0x7]
+ ldrb r4, [r6, 0x6]
+ mov r6, r8
+ ands r4, r6
+ lsls r4, 4
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r5
+ orrs r0, r4
+ strb r0, [r7, 0x7]
+ mov r5, sp
+ mov r6, r9
+ ldrb r4, [r6, 0x7]
+ lsls r4, 6
+ movs r6, 0x3F
+ ands r0, r6
+ orrs r0, r4
+ strb r0, [r5, 0x7]
+ mov r8, sp
+ mov r0, r9
+ ldrb r4, [r0, 0x8]
+ movs r7, 0x3
+ adds r0, r7, 0
+ ands r0, r4
+ mov r4, r8
+ ldrb r5, [r4, 0x8]
+ mov r4, r10
+ ands r4, r5
+ orrs r4, r0
+ mov r5, r8
+ strb r4, [r5, 0x8]
+ mov r6, r9
+ ldrb r5, [r6, 0x9]
+ adds r0, r7, 0
+ ands r0, r5
+ lsls r0, 2
+ movs r5, 0xD
+ negs r5, r5
+ ands r5, r4
+ orrs r5, r0
+ mov r0, r8
+ strb r5, [r0, 0x8]
+ ldrb r0, [r1]
+ adds r4, r7, 0
+ ands r4, r0
+ lsls r4, 4
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r8
+ strb r0, [r4, 0x8]
+ mov r5, sp
+ ldrb r4, [r2]
+ lsls r4, 6
+ movs r6, 0x3F
+ ands r0, r6
+ orrs r0, r4
+ strb r0, [r5, 0x8]
+ ldrb r4, [r3]
+ adds r0, r7, 0
+ ands r0, r4
+ ldrb r4, [r5, 0x9]
+ mov r6, r10
+ ands r6, r4
+ orrs r6, r0
+ mov r10, r6
+ strb r6, [r5, 0x9]
+ ldr r0, [sp, 0x40]
+ ldrb r4, [r0]
+ adds r0, r7, 0
+ ands r0, r4
+ lsls r0, 2
+ movs r4, 0xD
+ negs r4, r4
+ ands r6, r4
+ orrs r6, r0
+ str r6, [sp, 0x10]
+ strb r6, [r5, 0x9]
+ mov r4, sp
+ ldr r5, [sp, 0x44]
+ ldrb r0, [r5]
+ adds r6, r7, 0
+ ands r6, r0
+ lsls r0, r6, 4
+ subs r7, 0x34
+ ldr r5, [sp, 0x10]
+ ands r7, r5
+ orrs r7, r0
+ strb r7, [r4, 0x9]
+ mov r5, sp
+ ldrb r0, [r1, 0x4]
+ movs r6, 0x1
+ mov r12, r6
+ mov r4, r12
+ ands r4, r0
+ lsls r4, 6
+ movs r0, 0x41
+ negs r0, r0
+ mov r10, r0
+ ands r0, r7
+ orrs r0, r4
+ strb r0, [r5, 0x9]
+ ldrb r4, [r2, 0x4]
+ lsls r4, 7
+ movs r5, 0x7F
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r8
+ strb r0, [r4, 0x9]
+ ldrb r4, [r3, 0x4]
+ mov r0, r12
+ ands r0, r4
+ mov r5, r8
+ ldrb r4, [r5, 0xA]
+ movs r7, 0x2
+ negs r7, r7
+ adds r5, r7, 0
+ ands r5, r4
+ orrs r5, r0
+ mov r6, r8
+ strb r5, [r6, 0xA]
+ mov r9, sp
+ ldr r4, [sp, 0x40]
+ ldrb r0, [r4, 0x4]
+ mov r4, r12
+ ands r4, r0
+ lsls r4, 1
+ movs r6, 0x3
+ negs r6, r6
+ mov r8, r6
+ mov r0, r8
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r9
+ strb r0, [r4, 0xA]
+ ldr r6, [sp, 0x44]
+ ldrb r5, [r6, 0x4]
+ mov r4, r12
+ ands r4, r5
+ lsls r4, 2
+ movs r5, 0x5
+ negs r5, r5
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r9
+ strb r0, [r4, 0xA]
+ mov r4, sp
+ ldrb r1, [r1, 0x8]
+ mov r0, r12
+ ands r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0xB]
+ ands r5, r1
+ orrs r5, r0
+ strb r5, [r4, 0xB]
+ ldrb r1, [r2, 0x8]
+ mov r0, r12
+ ands r0, r1
+ lsls r0, 3
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r5
+ orrs r1, r0
+ strb r1, [r4, 0xB]
+ ldrb r2, [r3, 0x8]
+ mov r0, r12
+ ands r0, r2
+ lsls r0, 4
+ movs r2, 0x11
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4, 0xB]
+ mov r3, sp
+ ldr r5, [sp, 0x40]
+ ldrb r0, [r5, 0x8]
+ mov r1, r12
+ ands r1, r0
+ lsls r1, 5
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xB]
+ mov r2, sp
+ ldrb r1, [r6, 0x8]
+ mov r6, r12
+ ands r6, r1
+ lsls r1, r6, 6
+ mov r3, r10
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0xB]
+ ldr r4, [sp, 0x1C]
+ lsrs r3, r4, 21
+ ldrb r1, [r2, 0xA]
+ movs r0, 0x7
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0xA]
+ mov r1, sp
+ ldr r5, [sp, 0x4C]
+ movs r6, 0x1
+ ands r5, r6
+ lsls r2, r5, 1
+ ldrb r0, [r1, 0xB]
+ mov r3, r8
+ ands r3, r0
+ orrs r3, r2
+ mov r8, r3
+ strb r3, [r1, 0xB]
+ mov r0, sp
+ ldr r4, [sp, 0x50]
+ ands r4, r6
+ mov r5, r8
+ ands r5, r7
+ orrs r5, r4
+ strb r5, [r0, 0xB]
+ bl sub_80F9E2C
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815A61C
+
+ thumb_func_start sub_815A950
+sub_815A950: @ 815A950
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r0, [sp, 0x1C]
+ mov r12, r0
+ ldr r1, [sp, 0x20]
+ mov r8, r1
+ ldr r0, [sp, 0x24]
+ mov r9, r0
+ adds r2, r7, 0
+ adds r2, 0x14
+ ldr r4, _0815A98C @ =gRecvCmds
+ ldrh r0, [r4]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _0815A988
+ adds r3, r4, 0x2
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _0815A990
+_0815A988:
+ movs r0, 0
+ b _0815AACA
+ .align 2, 0
+_0815A98C: .4byte gRecvCmds
+_0815A990:
+ ldrb r0, [r3, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0xB]
+ ldrb r0, [r3, 0x1]
+ lsrs r0, 4
+ strb r0, [r2, 0xC]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0xD]
+ ldrb r0, [r3, 0x2]
+ lsrs r0, 4
+ strb r0, [r2, 0xE]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0xF]
+ ldrb r0, [r3, 0x3]
+ lsrs r0, 4
+ strb r0, [r2, 0x10]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0x11]
+ ldrb r0, [r3, 0x4]
+ lsrs r0, 4
+ strb r0, [r2, 0x12]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0x13]
+ ldrb r0, [r3, 0x5]
+ lsrs r0, 4
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0x15]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r7, 0x14]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 28
+ lsrs r0, 30
+ strb r0, [r2, 0x1]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 26
+ lsrs r0, 30
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3, 0x6]
+ lsrs r0, 6
+ strb r0, [r2, 0x3]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r2, 0x4]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 28
+ lsrs r0, 30
+ strb r0, [r2, 0x5]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 26
+ lsrs r0, 30
+ strb r0, [r2, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsrs r0, 6
+ strb r0, [r2, 0x7]
+ ldrb r0, [r3, 0x8]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r2, 0x8]
+ ldrb r0, [r3, 0x8]
+ lsls r0, 28
+ lsrs r0, 30
+ strb r0, [r2, 0x9]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r2, 0xA]
+ ldrb r0, [r3, 0x8]
+ lsls r0, 26
+ lsrs r0, 30
+ strb r0, [r5]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 25
+ lsrs r0, 31
+ strb r0, [r5, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 29
+ lsrs r0, 31
+ strb r0, [r5, 0x8]
+ ldrb r0, [r3, 0x8]
+ lsrs r0, 6
+ strb r0, [r6]
+ ldrb r0, [r3, 0x9]
+ lsrs r0, 7
+ strb r0, [r6, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 28
+ lsrs r0, 31
+ strb r0, [r6, 0x8]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 30
+ lsrs r0, 30
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 31
+ lsrs r0, 31
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 27
+ lsrs r0, 31
+ strb r0, [r1, 0x8]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 28
+ lsrs r0, 30
+ mov r1, r8
+ strb r0, [r1]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 30
+ lsrs r0, 31
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 26
+ lsrs r0, 31
+ strb r0, [r1, 0x8]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 26
+ lsrs r0, 30
+ mov r1, r9
+ strb r0, [r1]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 29
+ lsrs r0, 31
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 25
+ lsrs r0, 31
+ strb r0, [r1, 0x8]
+ ldrb r0, [r3, 0xA]
+ lsrs r0, 3
+ ldr r1, [sp, 0x28]
+ strb r0, [r1]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 30
+ lsrs r0, 31
+ ldr r1, [sp, 0x2C]
+ str r0, [r1]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 31
+ lsrs r0, 31
+ ldr r1, [sp, 0x30]
+ str r0, [r1]
+ movs r0, 0x1
+_0815AACA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_815A950
+
+ thumb_func_start sub_815AAD8
+sub_815AAD8: @ 815AAD8
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0815AB00 @ =0xffffff00
+ ldr r1, [sp]
+ ands r1, r3
+ movs r2, 0x3
+ orrs r1, r2
+ str r1, [sp]
+ ldr r1, [sp, 0x4]
+ ands r1, r3
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl sub_80F9E2C
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0815AB00: .4byte 0xffffff00
+ thumb_func_end sub_815AAD8
+
+ thumb_func_start sub_815AB04
+sub_815AB04: @ 815AB04
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldr r3, _0815AB2C @ =gRecvCmds
+ ldrh r0, [r3]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _0815AB28
+ lsls r0, r2, 4
+ adds r1, r3, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ beq _0815AB30
+_0815AB28:
+ movs r0, 0
+ b _0815AB36
+ .align 2, 0
+_0815AB2C: .4byte gRecvCmds
+_0815AB30:
+ ldrb r0, [r1, 0x4]
+ strb r0, [r4]
+ movs r0, 0x1
+_0815AB36:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_815AB04
+
+ thumb_func_start sub_815AB3C
+sub_815AB3C: @ 815AB3C
+ push {lr}
+ sub sp, 0x8
+ ldr r2, _0815AB5C @ =0xffffff00
+ ldr r1, [sp]
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl sub_80F9E2C
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0815AB5C: .4byte 0xffffff00
+ thumb_func_end sub_815AB3C
+
+ thumb_func_start sub_815AB60
+sub_815AB60: @ 815AB60
+ push {lr}
+ adds r2, r0, 0
+ ldr r3, _0815AB88 @ =gRecvCmds
+ ldrh r0, [r3]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _0815AB82
+ lsls r0, r2, 4
+ adds r1, r3, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _0815AB8C
+_0815AB82:
+ movs r0, 0
+ b _0815AB8E
+ .align 2, 0
+_0815AB88: .4byte gRecvCmds
+_0815AB8C:
+ ldr r0, [r1, 0x4]
+_0815AB8E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_815AB60
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/dragon.s b/asm/dragon.s
new file mode 100644
index 000000000..66e76017a
--- /dev/null
+++ b/asm/dragon.s
@@ -0,0 +1,835 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B725C
+sub_80B725C: @ 80B725C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B72A4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B72AC
+ ldr r2, _080B72A8 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x6]
+ negs r0, r0
+ strh r0, [r2, 0x6]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r2, 0x8]
+ adds r1, r2, 0
+ b _080B72B6
+ .align 2, 0
+_080B72A4: .4byte gBattleAnimAttacker
+_080B72A8: .4byte gBattleAnimArgs
+_080B72AC:
+ ldr r1, _080B72EC @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080B72B6:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080B72F0 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080B72F4 @ =sub_8074E70
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B72EC: .4byte gBattleAnimArgs
+_080B72F0: .4byte move_anim_8074EE0
+_080B72F4: .4byte sub_8074E70
+ thumb_func_end sub_80B725C
+
+ thumb_func_start sub_80B72F8
+sub_80B72F8: @ 80B72F8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8074FCC
+ ldr r4, _080B7350 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080B7354 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B735C
+ ldr r2, _080B7358 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r1, r0
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x32]
+ ldrh r1, [r2, 0x4]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ b _080B7386
+ .align 2, 0
+_080B7350: .4byte gBattleAnimTarget
+_080B7354: .4byte gBattleAnimAttacker
+_080B7358: .4byte gBattleAnimArgs
+_080B735C:
+ ldr r1, _080B73A0 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080B7386:
+ ldr r0, _080B73A0 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080B73A4 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080B73A8 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B73A0: .4byte gBattleAnimArgs
+_080B73A4: .4byte sub_8075590
+_080B73A8: .4byte move_anim_8074EE0
+ thumb_func_end sub_80B72F8
+
+ thumb_func_start sub_80B73AC
+sub_80B73AC: @ 80B73AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080B73C0 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B73C8
+ ldr r4, _080B73C4 @ =gBattleAnimAttacker
+ b _080B73CA
+ .align 2, 0
+_080B73C0: .4byte gBattleAnimArgs
+_080B73C4: .4byte gBattleAnimAttacker
+_080B73C8:
+ ldr r4, _080B740C @ =gBattleAnimTarget
+_080B73CA:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080B7410 @ =gBattleAnimArgs
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_8074FF8
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldr r0, _080B7414 @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ ldr r1, _080B7418 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B740C: .4byte gBattleAnimTarget
+_080B7410: .4byte gBattleAnimArgs
+_080B7414: .4byte sub_8074F6C
+_080B7418: .4byte move_anim_8074EE0
+ thumb_func_end sub_80B73AC
+
+ thumb_func_start sub_80B741C
+sub_80B741C: @ 80B741C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080B7444 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B7436
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080B7436:
+ adds r0, r4, 0
+ bl sub_80B72F8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7444: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80B741C
+
+ thumb_func_start sub_80B7448
+sub_80B7448: @ 80B7448
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r4, _080B749C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x36]
+ movs r0, 0x1
+ strh r0, [r6, 0x38]
+ ldr r0, _080B74A0 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r6, 0x3A]
+ ldr r4, _080B74A4 @ =sBattler_AI
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r7, r0, 16
+ lsrs r5, r7, 16
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8076B2C
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r5, r0
+ bls _080B74A8
+ lsrs r0, r7, 17
+ b _080B74AA
+ .align 2, 0
+_080B749C: .4byte gBattleAnimAttacker
+_080B74A0: .4byte gBattleAnimArgs
+_080B74A4: .4byte sBattler_AI
+_080B74A8:
+ lsrs r0, r1, 17
+_080B74AA:
+ strh r0, [r6, 0x3C]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Cos
+ strh r0, [r6, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ ldr r0, _080B74D4 @ =sub_80B74D8
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B74D4: .4byte sub_80B74D8
+ thumb_func_end sub_80B7448
+
+ thumb_func_start sub_80B74D8
+sub_80B74D8: @ 80B74D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080B74EA
+ cmp r5, 0x1
+ beq _080B7556
+ b _080B75DA
+_080B74EA:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080B753C
+ strh r5, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080B753C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080B753C
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080B753C:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B75DA
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080B75DA
+_080B7556:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x95
+ bgt _080B757E
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x95
+ ble _080B757E
+ movs r0, 0x96
+ strh r0, [r4, 0x3C]
+_080B757E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080B75C6
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080B75C6
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080B75C6
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080B75C6:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080B75DA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B75DA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B74D8
+
+ thumb_func_start sub_80B75E0
+sub_80B75E0: @ 80B75E0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B760C @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _080B7610 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B761C
+ ldr r0, _080B7614 @ =0x04000014
+ str r0, [sp]
+ ldr r0, _080B7618 @ =gBattle_BG1_X
+ b _080B7622
+ .align 2, 0
+_080B760C: .4byte gTasks
+_080B7610: .4byte gBattleAnimAttacker
+_080B7614: .4byte 0x04000014
+_080B7618: .4byte gBattle_BG1_X
+_080B761C:
+ ldr r0, _080B7698 @ =0x04000018
+ str r0, [sp]
+ ldr r0, _080B769C @ =gBattle_BG2_X
+_080B7622:
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+ ldr r0, _080B76A0 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r5, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r5, [r0, 0x9]
+ ldr r0, _080B76A4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0xE]
+ adds r0, 0x20
+ strh r0, [r4, 0x10]
+ cmp r1, 0
+ bge _080B7652
+ strh r5, [r4, 0xE]
+_080B7652:
+ ldrh r3, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bgt _080B7680
+ ldr r5, _080B76A8 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080B7664:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ ble _080B7664
+_080B7680:
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ ldr r0, _080B76AC @ =sub_80B76B0
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7698: .4byte 0x04000018
+_080B769C: .4byte gBattle_BG2_X
+_080B76A0: .4byte 0xa2600001
+_080B76A4: .4byte gBattleAnimAttacker
+_080B76A8: .4byte gScanlineEffectRegBuffers
+_080B76AC: .4byte sub_80B76B0
+ thumb_func_end sub_80B75E0
+
+ thumb_func_start sub_80B76B0
+sub_80B76B0: @ 80B76B0
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080B76D4 @ =gTasks
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _080B7766
+ lsls r0, 2
+ ldr r1, _080B76D8 @ =_080B76DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B76D4: .4byte gTasks
+_080B76D8: .4byte _080B76DC
+ .align 2, 0
+_080B76DC:
+ .4byte _080B76F0
+ .4byte _080B7712
+ .4byte _080B7722
+ .4byte _080B774E
+ .4byte _080B7760
+_080B76F0:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B7746
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ adds r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080B7746
+ b _080B7740
+_080B7712:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B7746
+ b _080B7740
+_080B7722:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B7746
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ subs r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B7746
+_080B7740:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_080B7746:
+ adds r0, r2, 0
+ bl sub_80B776C
+ b _080B7766
+_080B774E:
+ ldr r1, _080B775C @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080B7766
+ .align 2, 0
+_080B775C: .4byte gScanlineEffect
+_080B7760:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080B7766:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B76B0
+
+ thumb_func_start sub_80B776C
+sub_80B776C: @ 80B776C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldrh r3, [r5, 0x12]
+ ldrh r4, [r5, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ bgt _080B77C2
+ ldr r7, _080B77D8 @ =gScanlineEffectRegBuffers
+ mov r12, r7
+ ldr r0, _080B77DC @ =gSineTable
+ mov r8, r0
+ ldr r6, _080B77E0 @ =gScanlineEffect
+_080B778A:
+ lsls r2, r4, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ lsls r0, r3, 1
+ add r0, r8
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ movs r7, 0x14
+ ldrsh r0, [r5, r7]
+ muls r0, r1
+ asrs r0, 7
+ ldrh r1, [r5, 0xC]
+ adds r0, r1
+ strh r0, [r2]
+ adds r3, 0x8
+ movs r0, 0xFF
+ ands r3, r0
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0x10
+ ldrsh r0, [r5, r7]
+ cmp r4, r0
+ ble _080B778A
+_080B77C2:
+ ldrh r0, [r5, 0x12]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x12]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B77D8: .4byte gScanlineEffectRegBuffers
+_080B77DC: .4byte gSineTable
+_080B77E0: .4byte gScanlineEffect
+ thumb_func_end sub_80B776C
+
+ thumb_func_start sub_80B77E4
+sub_80B77E4: @ 80B77E4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ ldr r5, _080B7884 @ =gBattleAnimArgs
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ adds r6, r0, 0
+ ldr r1, _080B7888 @ =gBattleAnimAttacker
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r5, 0x8]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Cos
+ strh r0, [r4, 0x30]
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r6, 0
+ bl Sin
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r5]
+ adds r3, r2, 0
+ muls r3, r1
+ adds r1, r3, 0
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ strh r1, [r4, 0x20]
+ adds r1, r2, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x34]
+ ldr r0, _080B788C @ =sub_80B7894
+ str r0, [r4, 0x1C]
+ adds r4, 0x2E
+ ldr r2, _080B7890 @ =gUnknown_20399A4
+ movs r1, 0x6
+_080B786C:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080B786C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7884: .4byte gBattleAnimArgs
+_080B7888: .4byte gBattleAnimAttacker
+_080B788C: .4byte sub_80B7894
+_080B7890: .4byte gUnknown_20399A4
+ thumb_func_end sub_80B77E4
+
+ thumb_func_start sub_80B7894
+sub_80B7894: @ 80B7894
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _080B78D8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B78D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7894
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index eef234a71..2428f2984 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -5,1816 +5,4 @@
.text
- thumb_func_start sub_8046BFC
-sub_8046BFC: @ 8046BFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x50
- adds r6, r0, 0
- adds r5, r1, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x3C]
- movs r4, 0
- add r7, sp, 0x18
- movs r0, 0x31
- add r0, sp
- mov r10, r0
- mov r1, sp
- adds r1, 0x32
- str r1, [sp, 0x40]
- mov r0, sp
- adds r0, 0x34
- str r0, [sp, 0x48]
- add r1, sp, 0x30
- mov r9, r1
- subs r0, 0x1
- str r0, [sp, 0x44]
- mov r1, sp
- adds r1, 0x38
- str r1, [sp, 0x4C]
-_08046C3C:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- lsls r1, r4, 1
- add r1, sp
- adds r1, 0x10
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08046C3C
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- movs r4, 0
-_08046C64:
- adds r1, r4, 0
- adds r1, 0x27
- adds r0, r6, 0
- bl GetMonData
- lsls r1, r4, 2
- adds r1, r7, r1
- str r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08046C64
- adds r0, r6, 0
- movs r1, 0x25
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x8
- bl GetMonData
- ldr r1, [sp, 0x40]
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x22
- bl GetMonData
- str r0, [sp, 0x38]
- adds r0, r6, 0
- movs r1, 0x50
- bl GetMonData
- ldr r1, [sp, 0x48]
- strb r0, [r1]
- movs r0, 0x1
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- ldr r1, [sp, 0x3C]
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r4, 0
-_08046CC8:
- adds r1, r4, 0
- adds r1, 0xD
- lsls r0, r4, 1
- mov r2, sp
- adds r2, r0
- adds r2, 0x10
- adds r0, r5, 0
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08046CC8
- movs r4, 0
-_08046CE6:
- adds r1, r4, 0
- adds r1, 0x27
- lsls r2, r4, 2
- adds r2, r7, r2
- adds r0, r5, 0
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08046CE6
- movs r0, 0x2
- mov r1, r9
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x25
- mov r2, r10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x8
- ldr r2, [sp, 0x40]
- bl SetMonData
- movs r0, 0x78
- ldr r1, [sp, 0x44]
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x20
- ldr r2, [sp, 0x44]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x22
- ldr r2, [sp, 0x4C]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x50
- ldr r2, [sp, 0x48]
- bl SetMonData
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- add sp, 0x50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8046BFC
-
- thumb_func_start AddHatchedMonToParty
-AddHatchedMonToParty: @ 8046D60
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0xC
- movs r1, 0x46
- strb r1, [r4]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r0, _08046E14 @ =gPlayerParty
- adds r5, r0
- ldr r1, _08046E18 @ =gEnemyParty
- adds r0, r5, 0
- bl sub_8046BFC
- adds r0, r5, 0
- movs r1, 0x2D
- adds r2, r4, 0
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- adds r1, r4, 0
- bl GetSpeciesName
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl GetSetPokedexFlag
- adds r0, r4, 0
- movs r1, 0x3
- bl GetSetPokedexFlag
- ldr r1, _08046E1C @ =gStringVar1
- adds r0, r5, 0
- bl GetMonNick
- mov r2, sp
- adds r2, 0xE
- movs r0, 0x4
- strh r0, [r2]
- adds r0, r5, 0
- movs r1, 0x26
- bl SetMonData
- add r2, sp, 0x10
- movs r0, 0
- strh r0, [r2]
- adds r0, r5, 0
- movs r1, 0x24
- bl SetMonData
- bl sav1_map_get_name
- mov r2, sp
- adds r2, 0x12
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x23
- bl SetMonData
- adds r0, r5, 0
- bl MonRestorePP
- adds r0, r5, 0
- bl CalculateMonStats
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046E14: .4byte gPlayerParty
-_08046E18: .4byte gEnemyParty
-_08046E1C: .4byte gStringVar1
- thumb_func_end AddHatchedMonToParty
-
- thumb_func_start ScriptHatchMon
-ScriptHatchMon: @ 8046E20
- push {lr}
- ldr r0, _08046E30 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl AddHatchedMonToParty
- pop {r0}
- bx r0
- .align 2, 0
-_08046E30: .4byte gSpecialVar_0x8004
- thumb_func_end ScriptHatchMon
-
- thumb_func_start sub_8046E34
-sub_8046E34: @ 8046E34
- push {r4,r5,lr}
- sub sp, 0x20
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x8C
- muls r1, r2
- adds r4, r0, r1
- adds r0, r4, 0
- mov r1, sp
- bl GetBoxMonNick
- adds r0, r4, 0
- adds r0, 0x70
- ldrh r0, [r0]
- cmp r0, 0
- beq _08046EA0
- adds r5, r4, 0
- adds r5, 0x7C
- mov r0, sp
- adds r1, r5, 0
- bl StringCompare
- adds r4, 0x74
- cmp r0, 0
- bne _08046E74
- ldr r0, _08046E90 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r1, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _08046EA0
-_08046E74:
- ldr r0, _08046E94 @ =gStringVar1
- mov r1, sp
- bl StringCopy
- ldr r0, _08046E98 @ =gStringVar2
- adds r1, r4, 0
- bl StringCopy
- ldr r0, _08046E9C @ =gStringVar3
- adds r1, r5, 0
- bl StringCopy
- movs r0, 0x1
- b _08046EA2
- .align 2, 0
-_08046E90: .4byte gSaveBlock2Ptr
-_08046E94: .4byte gStringVar1
-_08046E98: .4byte gStringVar2
-_08046E9C: .4byte gStringVar3
-_08046EA0:
- movs r0, 0
-_08046EA2:
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8046E34
-
- thumb_func_start sub_8046EAC
-sub_8046EAC: @ 8046EAC
- push {lr}
- ldr r0, _08046EC8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 6
- adds r0, r1
- ldr r1, _08046ECC @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl sub_8046E34
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08046EC8: .4byte gSaveBlock1Ptr
-_08046ECC: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8046EAC
-
- thumb_func_start sub_8046ED0
-sub_8046ED0: @ 8046ED0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r3
- lsls r0, 24
- lsrs r3, r0, 24
- mov r8, r3
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r1, r2, 24
- adds r2, r1, 0
- movs r4, 0
- movs r7, 0
- movs r5, 0
- cmp r3, 0
- bne _08046EFE
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046F18 @ =gPlayerParty
- adds r5, r1, r0
- movs r4, 0x1
-_08046EFE:
- cmp r3, 0x1
- bne _08046F0E
- movs r0, 0x64
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _08046F18 @ =gPlayerParty
- adds r5, r1, r0
- movs r4, 0x3
-_08046F0E:
- cmp r6, 0
- beq _08046F1C
- cmp r6, 0x1
- beq _08046F6C
- b _08046FA6
- .align 2, 0
-_08046F18: .4byte gPlayerParty
-_08046F1C:
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- adds r3, r0, 0
- lsls r0, r4, 3
- ldr r1, _08046F64 @ =gUnknown_82350AC
- adds r0, r1
- ldr r1, _08046F68 @ =gMonSpritesGfxPtr
- ldr r2, [r1]
- mov r6, r8
- lsls r1, r6, 1
- adds r1, 0x1
- lsls r1, 2
- adds r2, 0x4
- adds r2, r1
- ldr r1, [r2]
- adds r2, r4, 0
- bl sub_800ECC4
- adds r0, r5, 0
- bl GetMonSpritePalStruct
- bl LoadCompressedObjectPalette
- mov r0, r9
- strh r4, [r0]
- b _08046FA6
- .align 2, 0
-_08046F64: .4byte gUnknown_82350AC
-_08046F68: .4byte gMonSpritesGfxPtr
-_08046F6C:
- adds r0, r5, 0
- bl GetMonSpritePalStruct
- ldrh r0, [r0, 0x4]
- adds r1, r4, 0
- bl sub_803F7D4
- ldr r0, _08046FB4 @ =gMultiuseSpriteTemplate
- movs r1, 0x78
- movs r2, 0x46
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _08046FB8 @ =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r2, r1, r4
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r2]
- adds r4, 0x1C
- adds r1, r4
- ldr r0, _08046FBC @ =SpriteCallbackDummy
- str r0, [r1]
-_08046FA6:
- adds r0, r7, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08046FB4: .4byte gMultiuseSpriteTemplate
-_08046FB8: .4byte gSprites
-_08046FBC: .4byte SpriteCallbackDummy
- thumb_func_end sub_8046ED0
-
- thumb_func_start sub_8046FC0
-sub_8046FC0: @ 8046FC0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8046FC0
-
- thumb_func_start sub_8046FD4
-sub_8046FD4: @ 8046FD4
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08047000 @ =sub_8047004
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl sub_812B478
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08047000: .4byte sub_8047004
- thumb_func_end sub_8046FD4
-
- thumb_func_start sub_8047004
-sub_8047004: @ 8047004
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08047034 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804702C
- bl sub_80563F0
- ldr r0, _08047038 @ =CB2_EggHatch_0
- bl SetMainCallback2
- ldr r1, _0804703C @ =gUnknown_3005020
- ldr r0, _08047040 @ =sub_807DD24
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0804702C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08047034: .4byte gPaletteFade
-_08047038: .4byte CB2_EggHatch_0
-_0804703C: .4byte gUnknown_3005020
-_08047040: .4byte sub_807DD24
- thumb_func_end sub_8047004
-
- thumb_func_start CB2_EggHatch_0
-CB2_EggHatch_0: @ 8047044
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08047064 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08047058
- b _0804727A
-_08047058:
- lsls r0, 2
- ldr r1, _08047068 @ =_0804706C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08047064: .4byte gMain
-_08047068: .4byte _0804706C
- .align 2, 0
-_0804706C:
- .4byte _08047090
- .4byte _0804715C
- .4byte _08047174
- .4byte _080471A8
- .4byte _080471C8
- .4byte _080471E0
- .4byte _080471F8
- .4byte _08047214
- .4byte _0804726C
-_08047090:
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r4, _08047148 @ =gUnknown_3000E74
- movs r0, 0x14
- bl Alloc
- str r0, [r4]
- bl AllocateMonSpritesGfx
- ldr r2, [r4]
- ldr r0, _0804714C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- movs r1, 0
- strb r0, [r2, 0x4]
- ldr r0, [r4]
- strb r1, [r0, 0x7]
- ldr r0, _08047150 @ =sub_8046FC0
- bl SetVBlankCallback
- bl GetCurrentMapMusic
- ldr r1, _08047154 @ =gSpecialVar_0x8005
- strh r0, [r1]
- bl reset_temp_tile_data_buffers
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08047158 @ =gUnknown_826019C
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0x80
- lsls r0, 5
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0x80
- lsls r0, 6
- bl Alloc
- adds r1, r0, 0
- movs r0, 0
- bl SetBgTilemapBuffer
- bl DeactivateAllTextPrinters
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- bl ResetSpriteData
- bl ResetTasks
- bl remove_some_task
- bl m4aSoundVSyncOn
- b _0804724A
- .align 2, 0
-_08047148: .4byte gUnknown_3000E74
-_0804714C: .4byte gSpecialVar_0x8004
-_08047150: .4byte sub_8046FC0
-_08047154: .4byte gSpecialVar_0x8005
-_08047158: .4byte gUnknown_826019C
-_0804715C:
- ldr r0, _0804716C @ =gUnknown_82601A4
- bl InitWindows
- ldr r0, _08047170 @ =gUnknown_3000E74
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x8]
- b _0804724A
- .align 2, 0
-_0804716C: .4byte gUnknown_82601A4
-_08047170: .4byte gUnknown_3000E74
-_08047174:
- ldr r1, _0804719C @ =gUnknown_8D00000
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_80F696C
- ldr r1, _080471A0 @ =gFile_graphics_interface_menu_map_tilemap
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r0, _080471A4 @ =gUnknown_8D004D8
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _0804724A
- .align 2, 0
-_0804719C: .4byte gUnknown_8D00000
-_080471A0: .4byte gFile_graphics_interface_menu_map_tilemap
-_080471A4: .4byte gUnknown_8D004D8
-_080471A8:
- ldr r0, _080471BC @ =gUnknown_826011C
- bl LoadSpriteSheet
- ldr r0, _080471C0 @ =gUnknown_8260124
- bl LoadSpriteSheet
- ldr r0, _080471C4 @ =gUnknown_826012C
- bl LoadSpritePalette
- b _0804724A
- .align 2, 0
-_080471BC: .4byte gUnknown_826011C
-_080471C0: .4byte gUnknown_8260124
-_080471C4: .4byte gUnknown_826012C
-_080471C8:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r0, _080471DC @ =gUnknown_3000E74
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- bl AddHatchedMonToParty
- b _0804724A
- .align 2, 0
-_080471DC: .4byte gUnknown_3000E74
-_080471E0:
- ldr r0, _080471F4 @ =gUnknown_3000E74
- ldr r3, [r0]
- ldrb r2, [r3, 0x4]
- adds r3, 0xC
- movs r0, 0
- movs r1, 0
- bl sub_8046ED0
- b _0804724A
- .align 2, 0
-_080471F4: .4byte gUnknown_3000E74
-_080471F8:
- ldr r4, _08047210 @ =gUnknown_3000E74
- ldr r3, [r4]
- ldrb r2, [r3, 0x4]
- adds r3, 0xC
- movs r0, 0
- movs r1, 0x1
- bl sub_8046ED0
- ldr r1, [r4]
- strb r0, [r1, 0x1]
- b _0804724A
- .align 2, 0
-_08047210: .4byte gUnknown_3000E74
-_08047214:
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r0, _0804725C @ =gUnknown_8EAEA20
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r1, _08047260 @ =gUnknown_8EAEA80
- movs r2, 0xA1
- lsls r2, 5
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- ldr r1, _08047264 @ =gUnknown_826601C
- movs r2, 0x80
- lsls r2, 5
- movs r0, 0x1
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
-_0804724A:
- ldr r1, _08047268 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804727A
- .align 2, 0
-_0804725C: .4byte gUnknown_8EAEA20
-_08047260: .4byte gUnknown_8EAEA80
-_08047264: .4byte gUnknown_826601C
-_08047268: .4byte gMain
-_0804726C:
- ldr r0, _08047298 @ =sub_8047338
- bl SetMainCallback2
- ldr r0, _0804729C @ =gUnknown_3000E74
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x2]
-_0804727A:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08047298: .4byte sub_8047338
-_0804729C: .4byte gUnknown_3000E74
- thumb_func_end CB2_EggHatch_0
-
- thumb_func_start EggHatchSetMonNickname
-EggHatchSetMonNickname: @ 80472A0
- push {lr}
- ldr r0, _080472D0 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080472D4 @ =gPlayerParty
- adds r0, r1
- ldr r2, _080472D8 @ =gStringVar3
- movs r1, 0x2
- bl SetMonData
- bl FreeMonSpritesGfx
- ldr r0, _080472DC @ =gUnknown_3000E74
- ldr r0, [r0]
- bl Free
- bl sub_812B484
- ldr r0, _080472E0 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080472D0: .4byte gSpecialVar_0x8004
-_080472D4: .4byte gPlayerParty
-_080472D8: .4byte gStringVar3
-_080472DC: .4byte gUnknown_3000E74
-_080472E0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end EggHatchSetMonNickname
-
- thumb_func_start sub_80472E4
-sub_80472E4: @ 80472E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08047330 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08047300
- bl StopMapMusic
-_08047300:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0804730E
- ldr r0, _08047334 @ =0x00000107
- bl PlayBGM
-_0804730E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- ble _08047324
- movs r0, 0x84
- lsls r0, 1
- bl PlayBGM
- adds r0, r5, 0
- bl DestroyTask
-_08047324:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08047330: .4byte gTasks
-_08047334: .4byte 0x00000107
- thumb_func_end sub_80472E4
-
- thumb_func_start sub_8047338
-sub_8047338: @ 8047338
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0xC
- ldr r1, _0804735C @ =gUnknown_3000E74
- ldr r0, [r1]
- ldrb r0, [r0, 0x2]
- adds r5, r1, 0
- cmp r0, 0xC
- bls _08047352
- b _08047684
-_08047352:
- lsls r0, 2
- ldr r1, _08047360 @ =_08047364
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804735C: .4byte gUnknown_3000E74
-_08047360: .4byte _08047364
- .align 2, 0
-_08047364:
- .4byte _08047398
- .4byte _080473E4
- .4byte _0804740C
- .4byte _08047444
- .4byte _08047474
- .4byte _08047482
- .4byte _080474E8
- .4byte _080474F6
- .4byte _08047504
- .4byte _08047548
- .4byte _08047588
- .4byte _08047634
- .4byte _08047654
-_08047398:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080473D8 @ =gUnknown_8260134
- movs r1, 0x78
- movs r2, 0x4B
- movs r3, 0x5
- bl CreateSprite
- ldr r4, _080473DC @ =gUnknown_3000E74
- ldr r1, [r4]
- strb r0, [r1]
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r1, [r4]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r0, _080473E0 @ =sub_80472E4
- movs r1, 0x5
- bl CreateTask
- b _08047684
- .align 2, 0
-_080473D8: .4byte gUnknown_8260134
-_080473DC: .4byte gUnknown_3000E74
-_080473E0: .4byte sub_80472E4
-_080473E4:
- ldr r0, _08047408 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080473F6
- b _08047684
-_080473F6:
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- strb r4, [r0, 0x3]
- ldr r1, [r5]
- b _08047648
- .align 2, 0
-_08047408: .4byte gPaletteFade
-_0804740C:
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bhi _0804741E
- b _08047684
-_0804741E:
- ldr r1, [r5]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r2, _0804743C @ =gSprites
- ldr r0, [r5]
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08047440 @ =SpriteCB_Egg_0
- str r1, [r0]
- b _08047684
- .align 2, 0
-_0804743C: .4byte gSprites
-_08047440: .4byte SpriteCB_Egg_0
-_08047444:
- ldr r2, _0804746C @ =gSprites
- ldr r3, [r5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08047470 @ =SpriteCallbackDummy
- cmp r1, r0
- beq _0804745E
- b _08047684
-_0804745E:
- ldrh r0, [r3, 0xC]
- movs r1, 0
- bl PlayCry1
- ldr r1, [r5]
- b _08047648
- .align 2, 0
-_0804746C: .4byte gSprites
-_08047470: .4byte SpriteCallbackDummy
-_08047474:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _08047480
- b _08047684
-_08047480:
- b _08047644
-_08047482:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080474D4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080474D8 @ =gStringVar1
- bl GetMonNick
- ldr r4, _080474DC @ =gStringVar4
- ldr r1, _080474E0 @ =gUnknown_841B6FD
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- movs r1, 0xFF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl EggHatchPrintMessage
- ldr r0, _080474E4 @ =0x00000103
- bl PlayFanfare
- ldr r1, [r5]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- bl PutWindowTilemap
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- movs r1, 0x3
- bl CopyWindowToVram
- b _08047684
- .align 2, 0
-_080474D4: .4byte gPlayerParty
-_080474D8: .4byte gStringVar1
-_080474DC: .4byte gStringVar4
-_080474E0: .4byte gUnknown_841B6FD
-_080474E4: .4byte 0x00000103
-_080474E8:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- bne _080474F4
- b _08047684
-_080474F4:
- b _08047644
-_080474F6:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- bne _08047502
- b _08047684
-_08047502:
- b _08047644
-_08047504:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08047538 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0804753C @ =gStringVar1
- bl GetMonNick
- ldr r4, _08047540 @ =gStringVar4
- ldr r1, _08047544 @ =gUnknown_841B716
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- movs r1, 0x1
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl EggHatchPrintMessage
- ldr r1, [r5]
- b _08047648
- .align 2, 0
-_08047538: .4byte gPlayerParty
-_0804753C: .4byte gStringVar1
-_08047540: .4byte gStringVar4
-_08047544: .4byte gUnknown_841B716
-_08047548:
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _0804755A
- b _08047684
-_0804755A:
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- movs r4, 0xA0
- lsls r4, 1
- adds r1, r4, 0
- movs r2, 0xE0
- bl sub_814FE40
- ldr r0, _08047584 @ =gUnknown_82601B4
- str r4, [sp]
- movs r1, 0xE
- str r1, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x2
- bl sub_810FF60
- ldr r1, [r5]
- b _08047648
- .align 2, 0
-_08047584: .4byte gUnknown_82601B4
-_08047588:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080475A8
- cmp r1, 0
- bgt _080475A2
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08047644
- b _08047684
-_080475A2:
- cmp r1, 0x1
- beq _08047644
- b _08047684
-_080475A8:
- ldr r0, _08047624 @ =gUnknown_3000E74
- mov r9, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _08047628 @ =gPlayerParty
- adds r0, r6
- ldr r1, _0804762C @ =gStringVar3
- mov r10, r1
- bl GetMonNick
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _08047630 @ =EggHatchSetMonNickname
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- b _08047684
- .align 2, 0
-_08047624: .4byte gUnknown_3000E74
-_08047628: .4byte gPlayerParty
-_0804762C: .4byte gStringVar3
-_08047630: .4byte EggHatchSetMonNickname
-_08047634:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08047644:
- ldr r0, _08047650 @ =gUnknown_3000E74
- ldr r1, [r0]
-_08047648:
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- b _08047684
- .align 2, 0
-_08047650: .4byte gUnknown_3000E74
-_08047654:
- ldr r0, _080476A8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08047684
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- bl RemoveWindow
- movs r0, 0
- bl UnsetBgTilemapBuffer
- movs r0, 0x1
- bl UnsetBgTilemapBuffer
- ldr r0, [r5]
- bl Free
- ldr r0, _080476AC @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- bl sub_812B484
-_08047684:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080476A8: .4byte gPaletteFade
-_080476AC: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8047338
-
- thumb_func_start SpriteCB_Egg_0
-SpriteCB_Egg_0: @ 80476B0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080476D0
- ldr r0, _080476CC @ =SpriteCB_Egg_1
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x2E]
- b _08047700
- .align 2, 0
-_080476CC: .4byte SpriteCB_Egg_1
-_080476D0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08047700
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- bl CreateRandomEggShardSprite
-_08047700:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_0
-
- thumb_func_start SpriteCB_Egg_1
-SpriteCB_Egg_1: @ 8047708
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _08047764
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08047738
- ldr r0, _08047734 @ =SpriteCB_Egg_2
- str r0, [r4, 0x1C]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x32]
- b _08047764
- .align 2, 0
-_08047734: .4byte SpriteCB_Egg_2
-_08047738:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08047764
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_08047764:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_1
-
- thumb_func_start SpriteCB_Egg_2
-SpriteCB_Egg_2: @ 804776C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _08047826
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x26
- ble _080477E4
- ldr r0, _080477D0 @ =SpriteCB_Egg_3
- str r0, [r4, 0x1C]
- strh r6, [r4, 0x2E]
- ldr r5, _080477D4 @ =gUnknown_3000E74
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080477D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- ldr r4, _080477DC @ =gSprites
- ldr r3, [r5]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r6, [r1, 0x24]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _080477E0 @ =gUnknown_82349CC
- lsrs r0, 14
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x26]
- b _08047826
- .align 2, 0
-_080477D0: .4byte SpriteCB_Egg_3
-_080477D4: .4byte gUnknown_3000E74
-_080477D8: .4byte gPlayerParty
-_080477DC: .4byte gSprites
-_080477E0: .4byte gUnknown_82349CC
-_080477E4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08047818
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- bl CreateRandomEggShardSprite
- bl CreateRandomEggShardSprite
-_08047818:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- bne _08047826
- movs r0, 0x17
- bl PlaySE
-_08047826:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_2
-
- thumb_func_start SpriteCB_Egg_3
-SpriteCB_Egg_3: @ 804782C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _08047846
- ldr r0, _0804784C @ =SpriteCB_Egg_4
- str r0, [r1, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x2E]
-_08047846:
- pop {r0}
- bx r0
- .align 2, 0
-_0804784C: .4byte SpriteCB_Egg_4
- thumb_func_end SpriteCB_Egg_3
-
- thumb_func_start SpriteCB_Egg_4
-SpriteCB_Egg_4: @ 8047850
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08047870
- movs r1, 0x1
- negs r1, r1
- ldr r0, _080478C4 @ =0x0000ffff
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08047870:
- ldrh r0, [r5, 0x2E]
- cmp r0, 0x3
- bhi _0804788C
- movs r4, 0
-_08047878:
- bl CreateRandomEggShardSprite
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08047878
-_0804788C:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- ldr r0, _080478C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080478BA
- movs r0, 0x6A
- bl PlaySE
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080478CC @ =SpriteCB_Egg_5
- str r0, [r5, 0x1C]
- strh r4, [r5, 0x2E]
-_080478BA:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080478C4: .4byte 0x0000ffff
-_080478C8: .4byte gPaletteFade
-_080478CC: .4byte SpriteCB_Egg_5
- thumb_func_end SpriteCB_Egg_4
-
- thumb_func_start SpriteCB_Egg_5
-SpriteCB_Egg_5: @ 80478D0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0804790C
- ldr r4, _08047960 @ =gSprites
- ldr r3, _08047964 @ =gUnknown_3000E74
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0804790C:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x8
- bne _08047926
- movs r1, 0x1
- negs r1, r1
- ldr r0, _08047968 @ =0x0000ffff
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08047926:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x9
- bgt _08047944
- ldr r2, _08047960 @ =gSprites
- ldr r0, _08047964 @ =gUnknown_3000E74
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_08047944:
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x28
- ble _08047952
- ldr r0, _0804796C @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
-_08047952:
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08047960: .4byte gSprites
-_08047964: .4byte gUnknown_3000E74
-_08047968: .4byte 0x0000ffff
-_0804796C: .4byte SpriteCallbackDummy
- thumb_func_end SpriteCB_Egg_5
-
- thumb_func_start SpriteCB_EggShard
-SpriteCB_EggShard: @ 8047970
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- ldrh r3, [r2, 0x38]
- adds r0, r1, r3
- strh r0, [r2, 0x38]
- movs r4, 0x36
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bge _0804798E
- adds r0, 0xFF
-_0804798E:
- asrs r0, 8
- strh r0, [r2, 0x24]
- movs r3, 0x38
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _0804799C
- adds r0, 0xFF
-_0804799C:
- asrs r0, 8
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r3, r1, r0
- strh r3, [r2, 0x32]
- movs r4, 0x22
- ldrsh r1, [r2, r4]
- movs r4, 0x26
- ldrsh r0, [r2, r4]
- adds r0, r1, r0
- adds r1, 0x14
- cmp r0, r1
- ble _080479C2
- lsls r0, r3, 16
- cmp r0, 0
- ble _080479C2
- adds r0, r2, 0
- bl DestroySprite
-_080479C2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_EggShard
-
- thumb_func_start CreateRandomEggShardSprite
-CreateRandomEggShardSprite: @ 80479C8
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r2, _08047A14 @ =gUnknown_82601BC
- ldr r0, _08047A18 @ =gUnknown_3000E74
- ldr r6, [r0]
- ldrb r3, [r6, 0x7]
- lsls r0, r3, 2
- adds r1, r0, r2
- ldrh r5, [r1]
- adds r2, 0x2
- adds r0, r2
- ldrh r4, [r0]
- adds r3, 0x1
- strb r3, [r6, 0x7]
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x64
- str r0, [sp]
- lsrs r1, 16
- str r1, [sp, 0x4]
- movs r0, 0x78
- movs r1, 0x3C
- adds r2, r5, 0
- adds r3, r4, 0
- bl CreateEggShardSprite
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047A14: .4byte gUnknown_82601BC
-_08047A18: .4byte gUnknown_3000E74
- thumb_func_end CreateRandomEggShardSprite
-
- thumb_func_start CreateEggShardSprite
-CreateEggShardSprite: @ 8047A1C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x1C]
- mov r9, r0
- ldr r1, [sp, 0x20]
- mov r10, r1
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r1, r9
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08047A94 @ =gUnknown_8260184
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08047A98 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x30]
- mov r1, r8
- strh r1, [r0, 0x32]
- mov r1, r9
- strh r1, [r0, 0x34]
- mov r1, r10
- bl StartSpriteAnim
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047A94: .4byte gUnknown_8260184
-_08047A98: .4byte gSprites
- thumb_func_end CreateEggShardSprite
-
- thumb_func_start EggHatchPrintMessage
-EggHatchPrintMessage: @ 8047A9C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r5, r0, 0
- mov r8, r1
- adds r6, r2, 0
- ldr r4, [sp, 0x2C]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xFF
- str r3, [sp, 0x14]
- bl FillWindowPixelBuffer
- ldr r2, _08047B08 @ =gUnknown_3000E74
- ldr r1, [r2]
- movs r0, 0
- strb r0, [r1, 0xE]
- ldr r1, [r2]
- movs r0, 0x5
- strb r0, [r1, 0xF]
- ldr r1, [r2]
- movs r0, 0x6
- strb r0, [r1, 0x10]
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- ldr r0, [r2]
- adds r0, 0xE
- str r0, [sp, 0x8]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- mov r0, r8
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r6, 0
- ldr r3, [sp, 0x14]
- bl AddTextPrinterParametrized2
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047B08: .4byte gUnknown_3000E74
- thumb_func_end EggHatchPrintMessage
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/electric.s b/asm/electric.s
new file mode 100644
index 000000000..187e30b6d
--- /dev/null
+++ b/asm/electric.s
@@ -0,0 +1,2675 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80ADBEC
+sub_80ADBEC: @ 80ADBEC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080ADC0C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADC14
+ ldr r0, _080ADC10 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080ADC20
+ .align 2, 0
+_080ADC0C: .4byte gBattleAnimAttacker
+_080ADC10: .4byte gBattleAnimArgs
+_080ADC14:
+ ldr r1, _080ADC34 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080ADC20:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080ADC38 @ =sub_80ADC3C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC34: .4byte gBattleAnimArgs
+_080ADC38: .4byte sub_80ADC3C
+ thumb_func_end sub_80ADBEC
+
+ thumb_func_start sub_80ADC3C
+sub_80ADC3C: @ 80ADC3C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ADC52
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080ADC52:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADC3C
+
+ thumb_func_start sub_80ADC58
+sub_80ADC58: @ 80ADC58
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080ADC78 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADC80
+ ldr r0, _080ADC7C @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ b _080ADC8A
+ .align 2, 0
+_080ADC78: .4byte gBattleAnimAttacker
+_080ADC7C: .4byte gBattleAnimArgs
+_080ADC80:
+ ldr r0, _080ADC94 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+_080ADC8A:
+ ldr r0, _080ADC98 @ =sub_80ADC9C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC94: .4byte gBattleAnimArgs
+_080ADC98: .4byte sub_80ADC9C
+ thumb_func_end sub_80ADC58
+
+ thumb_func_start sub_80ADC9C
+sub_80ADC9C: @ 80ADC9C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080ADCB2
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080ADCB2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADC9C
+
+ thumb_func_start sub_80ADCB8
+sub_80ADCB8: @ 80ADCB8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080ADCFC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080ADD00 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADD08
+ ldr r2, _080ADD04 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ b _080ADD1C
+ .align 2, 0
+_080ADCFC: .4byte gBattleAnimTarget
+_080ADD00: .4byte gBattleAnimAttacker
+_080ADD04: .4byte gBattleAnimArgs
+_080ADD08:
+ ldr r0, _080ADD40 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r1, r2
+ strh r1, [r5, 0x22]
+ adds r2, r0, 0
+_080ADD1C:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080ADD44 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080ADD48 @ =sub_8074A80
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADD40: .4byte gBattleAnimArgs
+_080ADD44: .4byte move_anim_8074EE0
+_080ADD48: .4byte sub_8074A80
+ thumb_func_end sub_80ADCB8
+
+ thumb_func_start sub_80ADD4C
+sub_80ADD4C: @ 80ADD4C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080ADD64 @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080ADDC4
+ cmp r0, 0x1
+ bgt _080ADD68
+ cmp r0, 0
+ beq _080ADD72
+ b _080ADDC4
+ .align 2, 0
+_080ADD64: .4byte gBattleAnimArgs
+_080ADD68:
+ cmp r0, 0x2
+ beq _080ADD7C
+ cmp r0, 0x3
+ beq _080ADDA0
+ b _080ADDC4
+_080ADD72:
+ ldr r0, _080ADD78 @ =gBattleAnimAttacker
+ b _080ADDC6
+ .align 2, 0
+_080ADD78: .4byte gBattleAnimAttacker
+_080ADD7C:
+ ldr r4, _080ADD94 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ADD98
+ ldrb r4, [r4]
+ b _080ADDC8
+ .align 2, 0
+_080ADD94: .4byte gBattleAnimAttacker
+_080ADD98:
+ ldrb r0, [r4]
+ adds r4, r6, 0
+ eors r4, r0
+ b _080ADDC8
+_080ADDA0:
+ ldr r0, _080ADDBC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r4, 0x2
+ eors r0, r4
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADDC4
+ ldr r0, _080ADDC0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ eors r4, r0
+ b _080ADDC8
+ .align 2, 0
+_080ADDBC: .4byte gBattleAnimAttacker
+_080ADDC0: .4byte gBattleAnimTarget
+_080ADDC4:
+ ldr r0, _080ADDE8 @ =gBattleAnimTarget
+_080ADDC6:
+ ldrb r4, [r0]
+_080ADDC8:
+ ldr r0, _080ADDEC @ =gBattleAnimArgs
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080ADDF0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _080ADE02
+ .align 2, 0
+_080ADDE8: .4byte gBattleAnimTarget
+_080ADDEC: .4byte gBattleAnimArgs
+_080ADDF0:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x3
+_080ADE02:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r7, _080ADEA0 @ =gSineTable
+ ldr r6, _080ADEA4 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x26]
+ ldrh r1, [r6, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ADE66
+ adds r0, r4, 0
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+_080ADE66:
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ ldr r3, _080ADEA8 @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r7
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080ADEAC @ =sub_80B1D3C
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADEA0: .4byte gSineTable
+_080ADEA4: .4byte gBattleAnimArgs
+_080ADEA8: .4byte gOamMatrices
+_080ADEAC: .4byte sub_80B1D3C
+ thumb_func_end sub_80ADD4C
+
+ thumb_func_start sub_80ADEB0
+sub_80ADEB0: @ 80ADEB0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080ADF24 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r6, _080ADF28 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x3C]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080ADF2C @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080ADF30 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r1, _080ADF34 @ =sub_80ADF38
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADF24: .4byte gBattleAnimArgs
+_080ADF28: .4byte gBattleAnimTarget
+_080ADF2C: .4byte 0x000003ff
+_080ADF30: .4byte 0xfffffc00
+_080ADF34: .4byte sub_80ADF38
+ thumb_func_end sub_80ADEB0
+
+ thumb_func_start sub_80ADF38
+sub_80ADF38: @ 80ADF38
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ADFA2
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080ADFA8
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080ADFA8
+_080ADFA2:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080ADFA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADF38
+
+ thumb_func_start sub_80ADFB0
+sub_80ADFB0: @ 80ADFB0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x1
+ strh r0, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080ADFE8
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x36]
+ strh r0, [r3, 0x38]
+_080ADFE8:
+ ldrh r0, [r3, 0x34]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080ADFFA
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080ADFFA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADFB0
+
+ thumb_func_start sub_80AE000
+sub_80AE000: @ 80AE000
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE01C
+ ldr r0, _080AE060 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE024
+_080AE01C:
+ ldr r1, _080AE064 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080AE024:
+ ldr r5, _080AE060 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080AE064 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4]
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x36]
+ strh r0, [r6, 0x38]
+ ldr r0, _080AE068 @ =sub_80ADFB0
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE060: .4byte gBattleAnimTarget
+_080AE064: .4byte gBattleAnimArgs
+_080AE068: .4byte sub_80ADFB0
+ thumb_func_end sub_80AE000
+
+ thumb_func_start sub_80AE06C
+sub_80AE06C: @ 80AE06C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080AE088 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080AE090
+ ldr r0, _080AE08C @ =gBattleAnimTarget
+ b _080AE092
+ .align 2, 0
+_080AE088: .4byte gBattleAnimArgs
+_080AE08C: .4byte gBattleAnimTarget
+_080AE090:
+ ldr r0, _080AE118 @ =gBattleAnimAttacker
+_080AE092:
+ ldrb r6, [r0]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE0AA
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE0B2
+_080AE0AA:
+ ldr r1, _080AE11C @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080AE0B2:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080AE11C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r3, [r4]
+ adds r0, r3
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldr r0, _080AE120 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x3C]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080AE124 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080AE128 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, _080AE12C @ =sub_80AE130
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE118: .4byte gBattleAnimAttacker
+_080AE11C: .4byte gBattleAnimArgs
+_080AE120: .4byte 0x00007fff
+_080AE124: .4byte 0x000003ff
+_080AE128: .4byte 0xfffffc00
+_080AE12C: .4byte sub_80AE130
+ thumb_func_end sub_80AE06C
+
+ thumb_func_start sub_80AE130
+sub_80AE130: @ 80AE130
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _080AE186
+ 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]
+_080AE186:
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080AE198
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AE198:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE130
+
+ thumb_func_start sub_80AE1A0
+sub_80AE1A0: @ 80AE1A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080AE1DC @ =gBattleAnimArgs
+ movs r5, 0x6
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r5, _080AE1E0 @ =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _080AE1E4 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080AE1E8
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ b _080AE1F6
+ .align 2, 0
+_080AE1DC: .4byte gBattleAnimArgs
+_080AE1E0: .4byte 0x000003ff
+_080AE1E4: .4byte 0xfffffc00
+_080AE1E8:
+ cmp r0, 0x2
+ bne _080AE1FA
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+_080AE1F6:
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_080AE1FA:
+ ldr r0, _080AE214 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080AE218 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080AE21C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE214: .4byte gBattleAnimArgs
+_080AE218: .4byte sub_8074C44
+_080AE21C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AE1A0
+
+ thumb_func_start sub_80AE220
+sub_80AE220: @ 80AE220
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080AE268 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ ldr r1, _080AE26C @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ ldr r5, _080AE270 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldr r0, _080AE274 @ =sub_80AE278
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE268: .4byte gBattleAnimTarget
+_080AE26C: .4byte gTasks
+_080AE270: .4byte gBattleAnimArgs
+_080AE274: .4byte sub_80AE278
+ thumb_func_end sub_80AE220
+
+ thumb_func_start sub_80AE278
+sub_80AE278: @ 80AE278
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _080AE2B8 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0xC]
+ str r2, [sp]
+ ldrh r4, [r0, 0x8]
+ ldrh r6, [r0, 0xA]
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0
+ bne _080AE2BC
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0x1
+ movs r1, 0x10
+ mov r12, r1
+ b _080AE2C6
+ .align 2, 0
+_080AE2B8: .4byte gTasks
+_080AE2BC:
+ movs r2, 0x10
+ mov r12, r2
+ movs r3, 0x8
+ mov r8, r3
+ movs r2, 0x4
+_080AE2C6:
+ mov r0, r9
+ lsls r1, r0, 2
+ adds r0, r1, r0
+ lsls r0, 3
+ add r0, r10
+ movs r3, 0x1C
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0xA
+ bhi _080AE3BC
+ lsls r0, 2
+ ldr r1, _080AE2E4 @ =_080AE2E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AE2E4: .4byte _080AE2E8
+ .align 2, 0
+_080AE2E8:
+ .4byte _080AE314
+ .4byte _080AE3BC
+ .4byte _080AE328
+ .4byte _080AE3BC
+ .4byte _080AE348
+ .4byte _080AE3BC
+ .4byte _080AE35E
+ .4byte _080AE3BC
+ .4byte _080AE380
+ .4byte _080AE3BC
+ .4byte _080AE3B4
+_080AE314:
+ ldr r0, _080AE324 @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r4, r12
+ lsls r3, r4, 16
+ b _080AE396
+ .align 2, 0
+_080AE324: .4byte gUnknown_83E60A0
+_080AE328:
+ mov r0, r12
+ lsls r3, r0, 17
+ mov r1, r8
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080AE344 @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080AE396
+ .align 2, 0
+_080AE344: .4byte gUnknown_83E60A0
+_080AE348:
+ mov r3, r12
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ b _080AE38A
+_080AE35E:
+ mov r0, r12
+ lsls r3, r0, 18
+ lsls r0, r2, 1
+ adds r0, r2
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080AE37C @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080AE396
+ .align 2, 0
+_080AE37C: .4byte gUnknown_83E60A0
+_080AE380:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+_080AE38A:
+ ldr r0, _080AE3B0 @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ lsls r3, 16
+_080AE396:
+ asrs r3, 16
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080AE3BC
+ .align 2, 0
+_080AE3B0: .4byte gUnknown_83E60A0
+_080AE3B4:
+ mov r0, r9
+ bl DestroyAnimVisualTask
+ b _080AE400
+_080AE3BC:
+ cmp r7, 0
+ beq _080AE3F0
+ ldr r4, _080AE410 @ =gSprites
+ lsls r3, r5, 4
+ adds r3, r5
+ lsls r3, 2
+ adds r0, r3, r4
+ ldrh r5, [r0, 0x4]
+ lsls r2, r5, 22
+ lsrs r2, 22
+ add r2, r8
+ ldr r6, _080AE414 @ =0x000003ff
+ adds r1, r6, 0
+ ands r2, r1
+ ldr r1, _080AE418 @ =0xfffffc00
+ ands r1, r5
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r1, [r3]
+ bl _call_via_r1
+_080AE3F0:
+ ldr r0, _080AE41C @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+_080AE400:
+ 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
+_080AE410: .4byte gSprites
+_080AE414: .4byte 0x000003ff
+_080AE418: .4byte 0xfffffc00
+_080AE41C: .4byte gTasks
+ thumb_func_end sub_80AE278
+
+ thumb_func_start sub_80AE420
+sub_80AE420: @ 80AE420
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080AE442
+ ldrb r1, [r3, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r2, r0
+ strb r2, [r3, 0x3]
+ b _080AE456
+_080AE442:
+ ldrb r2, [r3, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+_080AE456:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _080AE46A
+ adds r0, r3, 0
+ bl DestroySprite
+_080AE46A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE420
+
+ thumb_func_start sub_80AE470
+sub_80AE470: @ 80AE470
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080AE4D8 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ ldr r0, _080AE4DC @ =gUnknown_83E60B8
+ adds r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ movs r7, 0x22
+ ldrsh r2, [r4, r7]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080AE4E0 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r6, r2, r3
+ ldrh r5, [r6, 0x4]
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r7, _080AE4E4 @ =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080AE4E8 @ =0xfffffc00
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080AE4EC @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080AE4F0 @ =sub_80AE4F4
+ str r0, [r2]
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE4D8: .4byte gBattleAnimArgs
+_080AE4DC: .4byte gUnknown_83E60B8
+_080AE4E0: .4byte gSprites
+_080AE4E4: .4byte 0x000003ff
+_080AE4E8: .4byte 0xfffffc00
+_080AE4EC: .4byte gUnknown_2037EE2
+_080AE4F0: .4byte sub_80AE4F4
+ thumb_func_end sub_80AE470
+
+ thumb_func_start sub_80AE4F4
+sub_80AE4F4: @ 80AE4F4
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080AE528
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080AE528:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080AE53C
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080AE53C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE4F4
+
+ thumb_func_start sub_80AE540
+sub_80AE540: @ 80AE540
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AE560 @ =gTasks
+ adds r5, r1, r0
+ ldr r0, _080AE564 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AE56C
+ ldr r4, _080AE568 @ =gBattleAnimAttacker
+ b _080AE56E
+ .align 2, 0
+_080AE560: .4byte gTasks
+_080AE564: .4byte gBattleAnimArgs
+_080AE568: .4byte gBattleAnimAttacker
+_080AE56C:
+ ldr r4, _080AE5B0 @ =gBattleAnimTarget
+_080AE56E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x26]
+ ldr r2, _080AE5B4 @ =gBattleAnimArgs
+ ldrh r0, [r2, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ strh r1, [r5, 0x18]
+ strh r1, [r5, 0x1A]
+ strh r1, [r5, 0x1C]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x22]
+ ldr r0, _080AE5B8 @ =sub_80AE5BC
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE5B0: .4byte gBattleAnimTarget
+_080AE5B4: .4byte gBattleAnimArgs
+_080AE5B8: .4byte sub_80AE5BC
+ thumb_func_end sub_80AE540
+
+ thumb_func_start sub_80AE5BC
+sub_80AE5BC: @ 80AE5BC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r2, r6, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080AE6A4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080AE6BC
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ ble _080AE6CA
+ strh r7, [r5, 0x20]
+ ldr r0, _080AE6A8 @ =gUnknown_83E6120
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ movs r3, 0x26
+ ldrsh r2, [r5, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080AE6CA
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080AE6AC @ =gSprites
+ adds r4, r0
+ ldr r1, _080AE6B0 @ =gUnknown_83E60D0
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x20]
+ adds r3, r0
+ strh r3, [r4, 0x20]
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r4, 0x22]
+ adds r2, r0
+ strh r2, [r4, 0x22]
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0x28
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ strh r3, [r4, 0x30]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ ldrh r0, [r5, 0x26]
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080AE6B4 @ =sub_80AE704
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AE6B8 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080AE674
+ strh r7, [r5, 0x1A]
+_080AE674:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080AE696
+ strh r7, [r5, 0x1C]
+ ldrh r1, [r5, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x5
+ bgt _080AE696
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x18]
+_080AE696:
+ ldrh r0, [r5, 0x16]
+ adds r0, 0x1
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x14]
+ subs r0, 0x1
+ strh r0, [r5, 0x14]
+ b _080AE6CA
+ .align 2, 0
+_080AE6A4: .4byte gTasks
+_080AE6A8: .4byte gUnknown_83E6120
+_080AE6AC: .4byte gSprites
+_080AE6B0: .4byte gUnknown_83E60D0
+_080AE6B4: .4byte sub_80AE704
+_080AE6B8: .4byte sub_8074F6C
+_080AE6BC:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AE6CA
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080AE6CA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE5BC
+
+ thumb_func_start sub_80AE6D0
+sub_80AE6D0: @ 80AE6D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AE6F8
+ ldr r2, _080AE700 @ =gTasks
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x16]
+ subs r1, 0x1
+ strh r1, [r0, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080AE6F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE700: .4byte gTasks
+ thumb_func_end sub_80AE6D0
+
+ thumb_func_start sub_80AE704
+sub_80AE704: @ 80AE704
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080AE718 @ =sub_80AE6D0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE718: .4byte sub_80AE6D0
+ thumb_func_end sub_80AE704
+
+ thumb_func_start sub_80AE71C
+sub_80AE71C: @ 80AE71C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080AE730 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AE738
+ ldr r4, _080AE734 @ =gBattleAnimAttacker
+ b _080AE73A
+ .align 2, 0
+_080AE730: .4byte gBattleAnimArgs
+_080AE734: .4byte gBattleAnimAttacker
+_080AE738:
+ ldr r4, _080AE768 @ =gBattleAnimTarget
+_080AE73A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080AE76C @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AE770 @ =sub_8074F50
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE768: .4byte gBattleAnimTarget
+_080AE76C: .4byte move_anim_8074EE0
+_080AE770: .4byte sub_8074F50
+ thumb_func_end sub_80AE71C
+
+ thumb_func_start sub_80AE774
+sub_80AE774: @ 80AE774
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080AE788 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AE790
+ ldr r4, _080AE78C @ =gBattleAnimAttacker
+ b _080AE792
+ .align 2, 0
+_080AE788: .4byte gBattleAnimArgs
+_080AE78C: .4byte gBattleAnimAttacker
+_080AE790:
+ ldr r4, _080AE7CC @ =gBattleAnimTarget
+_080AE792:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080AE7D0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x26]
+ ldr r1, _080AE7D4 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AE7D8 @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE7CC: .4byte gBattleAnimTarget
+_080AE7D0: .4byte gBattleAnimArgs
+_080AE7D4: .4byte DestroyAnimSprite
+_080AE7D8: .4byte sub_8074F6C
+ thumb_func_end sub_80AE774
+
+ thumb_func_start sub_80AE7DC
+sub_80AE7DC: @ 80AE7DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r4, _080AE834 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080AE82A
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x3C]
+_080AE82A:
+ ldr r0, _080AE838 @ =sub_80AE83C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE834: .4byte gBattleAnimAttacker
+_080AE838: .4byte sub_80AE83C
+ thumb_func_end sub_80AE7DC
+
+ thumb_func_start sub_80AE83C
+sub_80AE83C: @ 80AE83C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AE84E
+ cmp r0, 0x1
+ beq _080AE864
+ b _080AE894
+_080AE84E:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080AE894
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080AE894
+_080AE864:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x20]
+ adds r0, r2, r1
+ strh r0, [r4, 0x20]
+ ldr r3, _080AE89C @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ adds r2, r1
+ strh r2, [r0, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x50
+ lsls r0, 16
+ movs r1, 0xC8
+ lsls r1, 17
+ cmp r0, r1
+ bls _080AE894
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080AE894:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE89C: .4byte gSprites
+ thumb_func_end sub_80AE83C
+
+ thumb_func_start sub_80AE8A0
+sub_80AE8A0: @ 80AE8A0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080AE8C4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AE934
+ cmp r0, 0x1
+ bgt _080AE8C8
+ cmp r0, 0
+ beq _080AE8D4
+ b _080AEA04
+ .align 2, 0
+_080AE8C4: .4byte gTasks
+_080AE8C8:
+ cmp r0, 0x2
+ beq _080AE990
+ cmp r0, 0x3
+ bne _080AE8D2
+ b _080AE9E4
+_080AE8D2:
+ b _080AEA04
+_080AE8D4:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x26]
+ ldr r4, _080AE908 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE910
+ ldr r0, _080AE90C @ =0x0000ffe0
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _080AE916
+ .align 2, 0
+_080AE908: .4byte gBattleAnimAttacker
+_080AE90C: .4byte 0x0000ffe0
+_080AE910:
+ movs r0, 0x20
+ strh r0, [r5, 0x24]
+ ldr r0, _080AE92C @ =0x0000fffe
+_080AE916:
+ strh r0, [r5, 0x22]
+ ldr r2, _080AE930 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r5, 0x24]
+ strh r1, [r0, 0x24]
+ b _080AE9D6
+ .align 2, 0
+_080AE92C: .4byte 0x0000fffe
+_080AE930: .4byte gSprites
+_080AE934:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AEA04
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r4, _080AE98C @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r1, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080AE9D6
+ ldrh r2, [r5, 0x22]
+ adds r2, r1, r2
+ strh r2, [r5, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ b _080AEA04
+ .align 2, 0
+_080AE98C: .4byte gSprites
+_080AE990:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AEA04
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r1, _080AE9E0 @ =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080AEA04
+_080AE9D6:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080AEA04
+ .align 2, 0
+_080AE9E0: .4byte gSprites
+_080AE9E4:
+ ldr r2, _080AEA0C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080AEA04:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEA0C: .4byte gSprites
+ thumb_func_end sub_80AE8A0
+
+ thumb_func_start sub_80AEA10
+sub_80AEA10: @ 80AEA10
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080AEA34 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080AEA2A
+ b _080AEB50
+_080AEA2A:
+ cmp r0, 0x1
+ bgt _080AEA38
+ cmp r0, 0
+ beq _080AEA40
+ b _080AEB92
+ .align 2, 0
+_080AEA34: .4byte gTasks
+_080AEA38:
+ cmp r0, 0x2
+ bne _080AEA3E
+ b _080AEB84
+_080AEA3E:
+ b _080AEB92
+_080AEA40:
+ ldr r4, _080AEA80 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080AEA56
+ movs r1, 0x1
+_080AEA56:
+ movs r6, 0
+ strh r1, [r5, 0xA]
+ ldr r0, _080AEA84 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r3, r0, 0
+ cmp r2, 0
+ beq _080AEA8C
+ cmp r2, 0x4
+ beq _080AEAB4
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AEAEC
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xE]
+ ldr r0, _080AEA88 @ =0x0000fff0
+ b _080AEAF4
+ .align 2, 0
+_080AEA80: .4byte gBattleAnimAttacker
+_080AEA84: .4byte gBattleAnimArgs
+_080AEA88: .4byte 0x0000fff0
+_080AEA8C:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 7
+ adds r0, 0x78
+ strh r0, [r5, 0x10]
+ b _080AEB2A
+_080AEAB4:
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r1, 7
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r4, _080AEAE8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ lsls r1, 5
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ b _080AEB2A
+ .align 2, 0
+_080AEAE8: .4byte gBattleAnimTarget
+_080AEAEC:
+ ldr r0, _080AEB10 @ =0x0000fff0
+ strh r0, [r5, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+_080AEAF4:
+ strh r0, [r5, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080AEB14
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0x50
+ subs r0, r1
+ strh r0, [r5, 0x12]
+ b _080AEB2A
+ .align 2, 0
+_080AEB10: .4byte 0x0000fff0
+_080AEB14:
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x28
+ strh r0, [r5, 0x12]
+ ldrh r1, [r5, 0xE]
+ ldrh r0, [r5, 0x10]
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+_080AEB2A:
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bge _080AEB40
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0x14]
+ b _080AEB7C
+_080AEB40:
+ ldr r0, _080AEB4C @ =0x0000ffff
+ strh r0, [r5, 0xA]
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ b _080AEB7C
+ .align 2, 0
+_080AEB4C: .4byte 0x0000ffff
+_080AEB50:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080AEB92
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AEB98
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AEB7C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AEB98
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AEB92
+_080AEB7C:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080AEB92
+_080AEB84:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AEB92
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AEB92:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AEA10
+
+ thumb_func_start sub_80AEB98
+sub_80AEB98: @ 80AEB98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080AEC24 @ =gUnknown_83E6278
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r3, 0x12
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080AEBCE
+ ldr r1, _080AEC28 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x3A]
+ movs r1, 0x7
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080AEBCE:
+ ldrh r1, [r4, 0xA]
+ ldrh r5, [r4, 0x14]
+ adds r0, r1, r5
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080AEBE0
+ movs r0, 0x3
+ strh r0, [r4, 0x14]
+_080AEBE0:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080AEBEC
+ movs r0, 0
+ strh r0, [r4, 0x14]
+_080AEBEC:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ ldrh r5, [r4, 0xE]
+ adds r2, r0, r5
+ strh r2, [r4, 0xE]
+ lsls r0, r1, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1
+ bne _080AEC0C
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x10
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ bge _080AEC20
+_080AEC0C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080AEC2C
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bgt _080AEC2C
+_080AEC20:
+ movs r0, 0x1
+ b _080AEC2E
+ .align 2, 0
+_080AEC24: .4byte gUnknown_83E6278
+_080AEC28: .4byte gSprites
+_080AEC2C:
+ movs r0, 0
+_080AEC2E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEB98
+
+ thumb_func_start sub_80AEC34
+sub_80AEC34: @ 80AEC34
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080AEC74
+ ldr r3, _080AEC7C @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080AEC74:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEC7C: .4byte gTasks
+ thumb_func_end sub_80AEC34
+
+ thumb_func_start sub_80AEC80
+sub_80AEC80: @ 80AEC80
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080AEC92
+ cmp r0, 0x1
+ beq _080AECC4
+ b _080AECD8
+_080AEC92:
+ ldr r4, _080AECC0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080AECD8
+ .align 2, 0
+_080AECC0: .4byte gBattleAnimAttacker
+_080AECC4:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080AECD8
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080AECD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AEC80
+
+ thumb_func_start sub_80AECE0
+sub_80AECE0: @ 80AECE0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080AED04 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080AECFA
+ b _080AEE6C
+_080AECFA:
+ lsls r0, 2
+ ldr r1, _080AED08 @ =_080AED0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AED04: .4byte gTasks
+_080AED08: .4byte _080AED0C
+ .align 2, 0
+_080AED0C:
+ .4byte _080AED20
+ .4byte _080AEDB0
+ .4byte _080AEDEC
+ .4byte _080AEE48
+ .4byte _080AEE58
+_080AED20:
+ ldr r4, _080AEDA4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ ldr r0, _080AEDA8 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r5, r2]
+ movs r2, 0x14
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r5, 0x1A]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080AEDAC @ =0x0000ffff
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ subs r0, 0x4C
+ bl sub_8073A44
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x20]
+ movs r0, 0x3F
+ bl sub_8073A44
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x24]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ b _080AEE6A
+ .align 2, 0
+_080AEDA4: .4byte gBattleAnimAttacker
+_080AEDA8: .4byte gBattleAnimTarget
+_080AEDAC: .4byte 0x0000ffff
+_080AEDB0:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080AEDE0
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80AEE74
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AEDE0
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bne _080AEDDA
+ movs r0, 0x3
+ b _080AEDDE
+_080AEDDA:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+_080AEDDE:
+ strh r0, [r5, 0x8]
+_080AEDE0:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080AEE6C
+ b _080AEE62
+_080AEDEC:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080AEDFA
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+_080AEDFA:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080AEE6C
+ strh r3, [r5, 0xA]
+ ldrh r1, [r5, 0xC]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AEE26
+ movs r0, 0x4
+ strh r0, [r5, 0x16]
+ movs r0, 0x44
+ strh r0, [r5, 0x18]
+ strh r3, [r5, 0x10]
+ strh r2, [r5, 0x12]
+ b _080AEE36
+_080AEE26:
+ movs r0, 0x44
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080AEE44 @ =0x0000ffff
+ strh r0, [r5, 0x12]
+_080AEE36:
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080AEE68
+ movs r0, 0x4
+ b _080AEE6A
+ .align 2, 0
+_080AEE44: .4byte 0x0000ffff
+_080AEE48:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AEE6C
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080AEE6C
+_080AEE58:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080AEE68
+_080AEE62:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+ b _080AEE6C
+_080AEE68:
+ movs r0, 0x1
+_080AEE6A:
+ strh r0, [r5, 0x8]
+_080AEE6C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AECE0
+
+ thumb_func_start sub_80AEE74
+sub_80AEE74: @ 80AEE74
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080AEF3C @ =gUnknown_83E62A8
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r3, 0x16
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080AEEE0
+ ldr r1, _080AEF40 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldrh r6, [r4, 0x10]
+ adds r1, r6
+ ldr r6, _080AEF44 @ =0x000003ff
+ adds r0, r6, 0
+ ands r1, r0
+ ldr r0, _080AEF48 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080AEEC8
+ movs r0, 0x7
+ strh r0, [r4, 0x10]
+_080AEEC8:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ ble _080AEED4
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_080AEED4:
+ strh r5, [r3, 0x3A]
+ movs r0, 0x3
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080AEEE0:
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080AEF02
+ movs r5, 0x12
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ ble _080AEF02
+ ldrh r1, [r4, 0x26]
+ ldrh r6, [r4, 0x24]
+ adds r1, r6
+ strh r1, [r4, 0x24]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x6F
+ bl PlaySE12WithPanning
+_080AEF02:
+ movs r0, 0x12
+ ldrsh r3, [r4, r0]
+ ldrh r2, [r4, 0x16]
+ cmp r3, 0
+ bge _080AEF18
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x18
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080AEF28
+_080AEF18:
+ cmp r3, 0
+ ble _080AEF4C
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0x18
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080AEF4C
+_080AEF28:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x1A]
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r0, 0x1
+ b _080AEF58
+ .align 2, 0
+_080AEF3C: .4byte gUnknown_83E62A8
+_080AEF40: .4byte gSprites
+_080AEF44: .4byte 0x000003ff
+_080AEF48: .4byte 0xfffffc00
+_080AEF4C:
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ strh r0, [r4, 0x16]
+ movs r0, 0
+_080AEF58:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEE74
+
+ thumb_func_start sub_80AEF60
+sub_80AEF60: @ 80AEF60
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080AEF96
+ ldr r3, _080AEF9C @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080AEF96:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEF9C: .4byte gTasks
+ thumb_func_end sub_80AEF60
+
+ thumb_func_start sub_80AEFA0
+sub_80AEFA0: @ 80AEFA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080AEFC4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AF01C
+ cmp r0, 0x1
+ bgt _080AEFC8
+ cmp r0, 0
+ beq _080AEFCE
+ b _080AF052
+ .align 2, 0
+_080AEFC4: .4byte gTasks
+_080AEFC8:
+ cmp r0, 0x2
+ beq _080AF044
+ b _080AF052
+_080AEFCE:
+ ldr r0, _080AF018 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ cmp r0, 0x10
+ ble _080AEFF8
+ adds r2, r0, 0
+_080AEFE8:
+ adds r1, r2, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bgt _080AEFE8
+ strh r1, [r5, 0x24]
+_080AEFF8:
+ ldr r4, _080AF018 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _080AF03C
+ .align 2, 0
+_080AF018: .4byte gBattleAnimTarget
+_080AF01C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AF052
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80AF058
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF052
+_080AF03C:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080AF052
+_080AF044:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AF052
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080AF052:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AEFA0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index d343c68d4..08aa16703 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -171,25 +171,25 @@ EvolutionScene: @ 80CDDF4
movs r1, 0
bl SetGpuReg
bl ResetPaletteFade
- ldr r0, _080CE080 @ =gUnknown_2022974
+ ldr r0, _080CE080 @ =gBattle_BG0_X
movs r2, 0
strh r2, [r0]
- ldr r0, _080CE084 @ =gUnknown_2022976
+ ldr r0, _080CE084 @ =gBattle_BG0_Y
strh r2, [r0]
- ldr r0, _080CE088 @ =gUnknown_2022978
+ ldr r0, _080CE088 @ =gBattle_BG1_X
strh r2, [r0]
- ldr r0, _080CE08C @ =gUnknown_202297A
+ ldr r0, _080CE08C @ =gBattle_BG1_Y
strh r2, [r0]
- ldr r0, _080CE090 @ =gUnknown_202297C
+ ldr r0, _080CE090 @ =gBattle_BG2_X
strh r2, [r0]
- ldr r0, _080CE094 @ =gUnknown_202297E
+ ldr r0, _080CE094 @ =gBattle_BG2_Y
strh r2, [r0]
- ldr r1, _080CE098 @ =gUnknown_2022980
+ ldr r1, _080CE098 @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080CE09C @ =gUnknown_2022982
+ ldr r0, _080CE09C @ =gBattle_BG3_Y
movs r1, 0
strh r1, [r0]
ldr r1, _080CE0A0 @ =gUnknown_2022B50
@@ -198,7 +198,7 @@ EvolutionScene: @ 80CDDF4
bl sub_800F34C
bl LoadBattleTextboxAndBackground
bl ResetSpriteData
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl FreeAllSpritePalettes
ldr r0, _080CE0A4 @ =gReservedSpritePaletteCount
@@ -239,7 +239,7 @@ EvolutionScene: @ 80CDDF4
bl GetMonData
mov r9, r0
lsls r0, r5, 3
- ldr r1, _080CE0B8 @ =gUnknown_82350AC
+ ldr r1, _080CE0B8 @ =gMonFrontPicTable
adds r0, r1
ldr r2, _080CE0BC @ =gMonSpritesGfxPtr
ldr r1, [r2]
@@ -257,7 +257,7 @@ EvolutionScene: @ 80CDDF4
bl LoadCompressedPalette
adds r0, r5, 0
movs r1, 0x1
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080CE0C0 @ =gMultiuseSpriteTemplate
mov r8, r0
ldr r1, _080CE0C4 @ =gDummySpriteAffineAnimTable
@@ -295,7 +295,7 @@ EvolutionScene: @ 80CDDF4
strb r0, [r1]
mov r1, r10
lsls r0, r1, 3
- ldr r2, _080CE0B8 @ =gUnknown_82350AC
+ ldr r2, _080CE0B8 @ =gMonFrontPicTable
adds r0, r2
ldr r2, _080CE0BC @ =gMonSpritesGfxPtr
ldr r1, [r2]
@@ -313,7 +313,7 @@ EvolutionScene: @ 80CDDF4
bl LoadCompressedPalette
mov r0, r10
movs r1, 0x3
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080CE0C4 @ =gDummySpriteAffineAnimTable
mov r1, r8
str r0, [r1, 0x10]
@@ -401,21 +401,21 @@ EvolutionScene: @ 80CDDF4
bx r0
.align 2, 0
_080CE07C: .4byte 0x05006000
-_080CE080: .4byte gUnknown_2022974
-_080CE084: .4byte gUnknown_2022976
-_080CE088: .4byte gUnknown_2022978
-_080CE08C: .4byte gUnknown_202297A
-_080CE090: .4byte gUnknown_202297C
-_080CE094: .4byte gUnknown_202297E
-_080CE098: .4byte gUnknown_2022980
-_080CE09C: .4byte gUnknown_2022982
+_080CE080: .4byte gBattle_BG0_X
+_080CE084: .4byte gBattle_BG0_Y
+_080CE088: .4byte gBattle_BG1_X
+_080CE08C: .4byte gBattle_BG1_Y
+_080CE090: .4byte gBattle_BG2_X
+_080CE094: .4byte gBattle_BG2_Y
+_080CE098: .4byte gBattle_BG3_X
+_080CE09C: .4byte gBattle_BG3_Y
_080CE0A0: .4byte gUnknown_2022B50
_080CE0A4: .4byte gReservedSpritePaletteCount
_080CE0A8: .4byte gUnknown_2039A20
_080CE0AC: .4byte gStringVar1
_080CE0B0: .4byte gStringVar2
_080CE0B4: .4byte gSpeciesNames
-_080CE0B8: .4byte gUnknown_82350AC
+_080CE0B8: .4byte gMonFrontPicTable
_080CE0BC: .4byte gMonSpritesGfxPtr
_080CE0C0: .4byte gMultiuseSpriteTemplate
_080CE0C4: .4byte gDummySpriteAffineAnimTable
@@ -494,24 +494,24 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
movs r1, 0
bl SetGpuReg
bl ResetPaletteFade
- ldr r0, _080CE290 @ =gUnknown_2022974
+ ldr r0, _080CE290 @ =gBattle_BG0_X
strh r4, [r0]
- ldr r0, _080CE294 @ =gUnknown_2022976
+ ldr r0, _080CE294 @ =gBattle_BG0_Y
strh r4, [r0]
- ldr r0, _080CE298 @ =gUnknown_2022978
+ ldr r0, _080CE298 @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _080CE29C @ =gUnknown_202297A
+ ldr r0, _080CE29C @ =gBattle_BG1_Y
strh r4, [r0]
- ldr r0, _080CE2A0 @ =gUnknown_202297C
+ ldr r0, _080CE2A0 @ =gBattle_BG2_X
strh r4, [r0]
- ldr r0, _080CE2A4 @ =gUnknown_202297E
+ ldr r0, _080CE2A4 @ =gBattle_BG2_Y
strh r4, [r0]
- ldr r1, _080CE2A8 @ =gUnknown_2022980
+ ldr r1, _080CE2A8 @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080CE2AC @ =gUnknown_2022982
+ ldr r0, _080CE2AC @ =gBattle_BG3_Y
strh r4, [r0]
ldr r1, _080CE2B0 @ =gUnknown_2022B50
movs r0, 0x9
@@ -524,7 +524,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
movs r0, 0x4
strb r0, [r1]
lsls r0, r5, 3
- ldr r1, _080CE2B8 @ =gUnknown_82350AC
+ ldr r1, _080CE2B8 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _080CE2BC @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -542,7 +542,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
bl LoadCompressedPalette
adds r0, r5, 0
movs r1, 0x3
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080CE2C0 @ =gMultiuseSpriteTemplate
ldr r1, _080CE2C4 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
@@ -608,17 +608,17 @@ _080CE280: .4byte gTasks
_080CE284: .4byte gUnknown_2039A20
_080CE288: .4byte gPlayerParty
_080CE28C: .4byte 0x05006000
-_080CE290: .4byte gUnknown_2022974
-_080CE294: .4byte gUnknown_2022976
-_080CE298: .4byte gUnknown_2022978
-_080CE29C: .4byte gUnknown_202297A
-_080CE2A0: .4byte gUnknown_202297C
-_080CE2A4: .4byte gUnknown_202297E
-_080CE2A8: .4byte gUnknown_2022980
-_080CE2AC: .4byte gUnknown_2022982
+_080CE290: .4byte gBattle_BG0_X
+_080CE294: .4byte gBattle_BG0_Y
+_080CE298: .4byte gBattle_BG1_X
+_080CE29C: .4byte gBattle_BG1_Y
+_080CE2A0: .4byte gBattle_BG2_X
+_080CE2A4: .4byte gBattle_BG2_Y
+_080CE2A8: .4byte gBattle_BG3_X
+_080CE2AC: .4byte gBattle_BG3_Y
_080CE2B0: .4byte gUnknown_2022B50
_080CE2B4: .4byte gReservedSpritePaletteCount
-_080CE2B8: .4byte gUnknown_82350AC
+_080CE2B8: .4byte gMonFrontPicTable
_080CE2BC: .4byte gMonSpritesGfxPtr
_080CE2C0: .4byte gMultiuseSpriteTemplate
_080CE2C4: .4byte gDummySpriteAffineAnimTable
@@ -691,37 +691,37 @@ _080CE34C:
ldr r1, _080CE398 @ =gReservedSpritePaletteCount
movs r0, 0x4
strb r0, [r1]
- ldr r0, _080CE39C @ =gUnknown_2022974
+ ldr r0, _080CE39C @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080CE3A0 @ =gUnknown_2022976
+ ldr r0, _080CE3A0 @ =gBattle_BG0_Y
strh r1, [r0]
- ldr r0, _080CE3A4 @ =gUnknown_2022978
+ ldr r0, _080CE3A4 @ =gBattle_BG1_X
strh r1, [r0]
- ldr r0, _080CE3A8 @ =gUnknown_202297A
+ ldr r0, _080CE3A8 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _080CE3AC @ =gUnknown_202297C
+ ldr r0, _080CE3AC @ =gBattle_BG2_X
strh r1, [r0]
- ldr r0, _080CE3B0 @ =gUnknown_202297E
+ ldr r0, _080CE3B0 @ =gBattle_BG2_Y
strh r1, [r0]
- ldr r2, _080CE3B4 @ =gUnknown_2022980
+ ldr r2, _080CE3B4 @ =gBattle_BG3_X
movs r3, 0x80
lsls r3, 1
adds r0, r3, 0
strh r0, [r2]
- ldr r0, _080CE3B8 @ =gUnknown_2022982
+ ldr r0, _080CE3B8 @ =gBattle_BG3_Y
strh r1, [r0]
b _080CE4EC
.align 2, 0
_080CE398: .4byte gReservedSpritePaletteCount
-_080CE39C: .4byte gUnknown_2022974
-_080CE3A0: .4byte gUnknown_2022976
-_080CE3A4: .4byte gUnknown_2022978
-_080CE3A8: .4byte gUnknown_202297A
-_080CE3AC: .4byte gUnknown_202297C
-_080CE3B0: .4byte gUnknown_202297E
-_080CE3B4: .4byte gUnknown_2022980
-_080CE3B8: .4byte gUnknown_2022982
+_080CE39C: .4byte gBattle_BG0_X
+_080CE3A0: .4byte gBattle_BG0_Y
+_080CE3A4: .4byte gBattle_BG1_X
+_080CE3A8: .4byte gBattle_BG1_Y
+_080CE3AC: .4byte gBattle_BG2_X
+_080CE3B0: .4byte gBattle_BG2_Y
+_080CE3B4: .4byte gBattle_BG3_X
+_080CE3B8: .4byte gBattle_BG3_Y
_080CE3BC:
bl ResetPaletteFade
ldr r0, _080CE3D8 @ =nullsub_76
@@ -770,7 +770,7 @@ _080CE414:
bl GetMonData
adds r4, r0, 0
lsls r0, r6, 3
- ldr r1, _080CE454 @ =gUnknown_82350AC
+ ldr r1, _080CE454 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _080CE458 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -788,12 +788,12 @@ _080CE414:
bl LoadCompressedPalette
b _080CE4EC
.align 2, 0
-_080CE454: .4byte gUnknown_82350AC
+_080CE454: .4byte gMonFrontPicTable
_080CE458: .4byte gMonSpritesGfxPtr
_080CE45C:
adds r0, r6, 0
movs r1, 0x1
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080CE4B4 @ =gMultiuseSpriteTemplate
ldr r1, _080CE4B8 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
@@ -951,7 +951,7 @@ TradeEvolutionScene: @ 80CE540
movs r4, 0
strb r6, [r0]
lsls r0, r5, 3
- ldr r1, _080CE6C4 @ =gUnknown_82350AC
+ ldr r1, _080CE6C4 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _080CE6C8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -969,7 +969,7 @@ TradeEvolutionScene: @ 80CE540
bl LoadCompressedPalette
adds r0, r5, 0
movs r1, 0x1
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _080CE6CC @ =gMultiuseSpriteTemplate
ldr r1, _080CE6D0 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
@@ -1027,24 +1027,24 @@ TradeEvolutionScene: @ 80CE540
mov r1, sp
ldrh r1, [r1, 0x14]
strh r1, [r0, 0x1C]
- ldr r0, _080CE6E4 @ =gUnknown_2022974
+ ldr r0, _080CE6E4 @ =gBattle_BG0_X
strh r4, [r0]
- ldr r0, _080CE6E8 @ =gUnknown_2022976
+ ldr r0, _080CE6E8 @ =gBattle_BG0_Y
strh r4, [r0]
- ldr r0, _080CE6EC @ =gUnknown_2022978
+ ldr r0, _080CE6EC @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _080CE6F0 @ =gUnknown_202297A
+ ldr r0, _080CE6F0 @ =gBattle_BG1_Y
strh r4, [r0]
- ldr r0, _080CE6F4 @ =gUnknown_202297C
+ ldr r0, _080CE6F4 @ =gBattle_BG2_X
strh r4, [r0]
- ldr r0, _080CE6F8 @ =gUnknown_202297E
+ ldr r0, _080CE6F8 @ =gBattle_BG2_Y
strh r4, [r0]
- ldr r1, _080CE6FC @ =gUnknown_2022980
+ ldr r1, _080CE6FC @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080CE700 @ =gUnknown_2022982
+ ldr r0, _080CE700 @ =gBattle_BG3_Y
strh r4, [r0]
ldr r2, _080CE704 @ =gTextFlags
ldrb r0, [r2]
@@ -1069,7 +1069,7 @@ _080CE6B4: .4byte gStringVar2
_080CE6B8: .4byte gSpeciesNames
_080CE6BC: .4byte gAffineAnimsDisabled
_080CE6C0: .4byte gUnknown_2039A20
-_080CE6C4: .4byte gUnknown_82350AC
+_080CE6C4: .4byte gMonFrontPicTable
_080CE6C8: .4byte gMonSpritesGfxPtr
_080CE6CC: .4byte gMultiuseSpriteTemplate
_080CE6D0: .4byte gDummySpriteAffineAnimTable
@@ -1077,14 +1077,14 @@ _080CE6D4: .4byte gSprites
_080CE6D8: .4byte nullsub_10
_080CE6DC: .4byte sub_80CF53C
_080CE6E0: .4byte gTasks
-_080CE6E4: .4byte gUnknown_2022974
-_080CE6E8: .4byte gUnknown_2022976
-_080CE6EC: .4byte gUnknown_2022978
-_080CE6F0: .4byte gUnknown_202297A
-_080CE6F4: .4byte gUnknown_202297C
-_080CE6F8: .4byte gUnknown_202297E
-_080CE6FC: .4byte gUnknown_2022980
-_080CE700: .4byte gUnknown_2022982
+_080CE6E4: .4byte gBattle_BG0_X
+_080CE6E8: .4byte gBattle_BG0_Y
+_080CE6EC: .4byte gBattle_BG1_X
+_080CE6F0: .4byte gBattle_BG1_Y
+_080CE6F4: .4byte gBattle_BG2_X
+_080CE6F8: .4byte gBattle_BG2_Y
+_080CE6FC: .4byte gBattle_BG3_X
+_080CE700: .4byte gBattle_BG3_Y
_080CE704: .4byte gTextFlags
_080CE708: .4byte sub_80D00D8
_080CE70C: .4byte sub_80CE72C
@@ -3567,7 +3567,7 @@ _080CFCAE:
movs r0, 0
movs r1, 0xA8
movs r2, 0xE0
- bl sub_814FE40
+ bl LoadUserWindowBorderGfx
ldr r0, _080CFCF4 @ =gUnknown_826D1CC
movs r1, 0xA8
str r1, [sp]
@@ -3577,7 +3577,7 @@ _080CFCAE:
movs r1, 0x3
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r3, _080CFCF8 @ =gUnknown_2023E82
strb r4, [r3, 0x1]
ldr r0, _080CFCF0 @ =gTasks
@@ -3597,7 +3597,7 @@ _080CFCF0: .4byte gTasks
_080CFCF4: .4byte gUnknown_826D1CC
_080CFCF8: .4byte gUnknown_2023E82
_080CFCFC:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r4, r0, 24
cmp r4, 0
@@ -3691,7 +3691,7 @@ _080CFDBA:
ldrb r0, [r0]
cmp r0, 0
beq _080CFDC6
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
_080CFDC6:
movs r0, 0x3
bl GetBgTilemapBuffer
@@ -3981,105 +3981,105 @@ nullsub_76: @ 80D004C
thumb_func_start sub_80D0050
sub_80D0050: @ 80D0050
push {lr}
- ldr r0, _080D00B8 @ =gUnknown_2022974
+ ldr r0, _080D00B8 @ =gBattle_BG0_X
ldrh r1, [r0]
movs r0, 0x10
bl SetGpuReg
- ldr r0, _080D00BC @ =gUnknown_2022976
+ ldr r0, _080D00BC @ =gBattle_BG0_Y
ldrh r1, [r0]
movs r0, 0x12
bl SetGpuReg
- ldr r0, _080D00C0 @ =gUnknown_2022978
+ ldr r0, _080D00C0 @ =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
- ldr r0, _080D00C4 @ =gUnknown_202297A
+ ldr r0, _080D00C4 @ =gBattle_BG1_Y
ldrh r1, [r0]
movs r0, 0x16
bl SetGpuReg
- ldr r0, _080D00C8 @ =gUnknown_202297C
+ ldr r0, _080D00C8 @ =gBattle_BG2_X
ldrh r1, [r0]
movs r0, 0x18
bl SetGpuReg
- ldr r0, _080D00CC @ =gUnknown_202297E
+ ldr r0, _080D00CC @ =gBattle_BG2_Y
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
- ldr r0, _080D00D0 @ =gUnknown_2022980
+ ldr r0, _080D00D0 @ =gBattle_BG3_X
ldrh r1, [r0]
movs r0, 0x1C
bl SetGpuReg
- ldr r0, _080D00D4 @ =gUnknown_2022982
+ ldr r0, _080D00D4 @ =gBattle_BG3_Y
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
-_080D00B8: .4byte gUnknown_2022974
-_080D00BC: .4byte gUnknown_2022976
-_080D00C0: .4byte gUnknown_2022978
-_080D00C4: .4byte gUnknown_202297A
-_080D00C8: .4byte gUnknown_202297C
-_080D00CC: .4byte gUnknown_202297E
-_080D00D0: .4byte gUnknown_2022980
-_080D00D4: .4byte gUnknown_2022982
+_080D00B8: .4byte gBattle_BG0_X
+_080D00BC: .4byte gBattle_BG0_Y
+_080D00C0: .4byte gBattle_BG1_X
+_080D00C4: .4byte gBattle_BG1_Y
+_080D00C8: .4byte gBattle_BG2_X
+_080D00CC: .4byte gBattle_BG2_Y
+_080D00D0: .4byte gBattle_BG3_X
+_080D00D4: .4byte gBattle_BG3_Y
thumb_func_end sub_80D0050
thumb_func_start sub_80D00D8
sub_80D00D8: @ 80D00D8
push {lr}
- ldr r0, _080D0140 @ =gUnknown_2022974
+ ldr r0, _080D0140 @ =gBattle_BG0_X
ldrh r1, [r0]
movs r0, 0x10
bl SetGpuReg
- ldr r0, _080D0144 @ =gUnknown_2022976
+ ldr r0, _080D0144 @ =gBattle_BG0_Y
ldrh r1, [r0]
movs r0, 0x12
bl SetGpuReg
- ldr r0, _080D0148 @ =gUnknown_2022978
+ ldr r0, _080D0148 @ =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
- ldr r0, _080D014C @ =gUnknown_202297A
+ ldr r0, _080D014C @ =gBattle_BG1_Y
ldrh r1, [r0]
movs r0, 0x16
bl SetGpuReg
- ldr r0, _080D0150 @ =gUnknown_202297C
+ ldr r0, _080D0150 @ =gBattle_BG2_X
ldrh r1, [r0]
movs r0, 0x18
bl SetGpuReg
- ldr r0, _080D0154 @ =gUnknown_202297E
+ ldr r0, _080D0154 @ =gBattle_BG2_Y
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
- ldr r0, _080D0158 @ =gUnknown_2022980
+ ldr r0, _080D0158 @ =gBattle_BG3_X
ldrh r1, [r0]
movs r0, 0x1C
bl SetGpuReg
- ldr r0, _080D015C @ =gUnknown_2022982
+ ldr r0, _080D015C @ =gBattle_BG3_Y
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
-_080D0140: .4byte gUnknown_2022974
-_080D0144: .4byte gUnknown_2022976
-_080D0148: .4byte gUnknown_2022978
-_080D014C: .4byte gUnknown_202297A
-_080D0150: .4byte gUnknown_202297C
-_080D0154: .4byte gUnknown_202297E
-_080D0158: .4byte gUnknown_2022980
-_080D015C: .4byte gUnknown_2022982
+_080D0140: .4byte gBattle_BG0_X
+_080D0144: .4byte gBattle_BG0_Y
+_080D0148: .4byte gBattle_BG1_X
+_080D014C: .4byte gBattle_BG1_Y
+_080D0150: .4byte gBattle_BG2_X
+_080D0154: .4byte gBattle_BG2_Y
+_080D0158: .4byte gBattle_BG3_X
+_080D015C: .4byte gBattle_BG3_Y
thumb_func_end sub_80D00D8
thumb_func_start sub_80D0160
@@ -4225,9 +4225,9 @@ sub_80D025C: @ 80D025C
push {r6,r7}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080D0288 @ =gUnknown_2022978
+ ldr r0, _080D0288 @ =gBattle_BG1_X
mov r8, r0
- ldr r1, _080D028C @ =gUnknown_202297A
+ ldr r1, _080D028C @ =gBattle_BG1_Y
mov r9, r1
ldr r1, _080D0290 @ =gTasks
lsls r0, r5, 2
@@ -4238,18 +4238,18 @@ sub_80D025C: @ 80D025C
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080D029C
- ldr r7, _080D0294 @ =gUnknown_202297C
- ldr r6, _080D0298 @ =gUnknown_202297E
+ ldr r7, _080D0294 @ =gBattle_BG2_X
+ ldr r6, _080D0298 @ =gBattle_BG2_Y
b _080D02A0
.align 2, 0
-_080D0288: .4byte gUnknown_2022978
-_080D028C: .4byte gUnknown_202297A
+_080D0288: .4byte gBattle_BG1_X
+_080D028C: .4byte gBattle_BG1_Y
_080D0290: .4byte gTasks
-_080D0294: .4byte gUnknown_202297C
-_080D0298: .4byte gUnknown_202297E
+_080D0294: .4byte gBattle_BG2_X
+_080D0298: .4byte gBattle_BG2_Y
_080D029C:
- ldr r7, _080D0328 @ =gUnknown_2022980
- ldr r6, _080D032C @ =gUnknown_2022982
+ ldr r7, _080D0328 @ =gBattle_BG3_X
+ ldr r6, _080D032C @ =gBattle_BG3_Y
_080D02A0:
lsls r4, r5, 2
adds r4, r5
@@ -4314,8 +4314,8 @@ _080D031A:
pop {r0}
bx r0
.align 2, 0
-_080D0328: .4byte gUnknown_2022980
-_080D032C: .4byte gUnknown_2022982
+_080D0328: .4byte gBattle_BG3_X
+_080D032C: .4byte gBattle_BG3_Y
_080D0330: .4byte sub_80D0160
thumb_func_end sub_80D025C
@@ -4388,7 +4388,7 @@ _080D03A0:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _080D0428 @ =gUnknown_83F73A8
movs r0, 0x1
movs r2, 0
@@ -4527,12 +4527,12 @@ sub_80D04E8: @ 80D04E8
movs r0, 0x50
movs r1, 0
bl SetGpuReg
- ldr r0, _080D0544 @ =gUnknown_2022978
+ ldr r0, _080D0544 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080D0548 @ =gUnknown_202297A
+ ldr r0, _080D0548 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _080D054C @ =gUnknown_202297C
+ ldr r0, _080D054C @ =gBattle_BG2_X
strh r1, [r0]
movs r0, 0x1
movs r1, 0x5
@@ -4562,9 +4562,9 @@ sub_80D04E8: @ 80D04E8
pop {r0}
bx r0
.align 2, 0
-_080D0544: .4byte gUnknown_2022978
-_080D0548: .4byte gUnknown_202297A
-_080D054C: .4byte gUnknown_202297C
+_080D0544: .4byte gBattle_BG1_X
+_080D0548: .4byte gBattle_BG1_Y
+_080D054C: .4byte gBattle_BG2_X
_080D0550: .4byte gUnknown_2039A24
thumb_func_end sub_80D04E8
diff --git a/asm/field_camera.s b/asm/field_camera.s
index 3d4ca0025..5541c6472 100644
--- a/asm/field_camera.s
+++ b/asm/field_camera.s
@@ -528,7 +528,7 @@ sub_805A948: @ 805A948
mov r8, r1
adds r0, r6, 0
adds r1, r7, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x80
@@ -557,7 +557,7 @@ _0805A98C:
asrs r0, 16
lsls r1, r7, 16
asrs r1, 16
- bl sub_8058F8C
+ bl MapGridGetMetatileLayerTypeAt
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 4
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 9748301f7..67e7e7d5a 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -884,7 +884,7 @@ sub_806CF38: @ 806CF38
ldrh r1, [r4, 0x2]
b _0806CF7E
_0806CF60:
- ldr r1, _0806CFA4 @ =gUnknown_826D2D8
+ ldr r1, _0806CFA4 @ =gDirectionToVectors
lsls r2, r6, 3
adds r0, r2, r1
ldr r3, [r0]
@@ -919,7 +919,7 @@ _0806CF9E:
movs r0, 0
b _0806CFDE
.align 2, 0
-_0806CFA4: .4byte gUnknown_826D2D8
+_0806CFA4: .4byte gDirectionToVectors
_0806CFA8: .4byte gMapObjects
_0806CFAC:
movs r4, 0
@@ -936,7 +936,7 @@ _0806CFBC:
adds r4, 0x1
cmp r4, 0x3
ble _0806CFB0
- ldr r0, _0806CFE8 @ =gUnknown_3005074
+ ldr r0, _0806CFE8 @ =gSelectedEventObject
strb r3, [r0]
ldr r1, _0806CFEC @ =gSpecialVar_LastTalked
adds r0, r2, r3
@@ -954,7 +954,7 @@ _0806CFDE:
bx r1
.align 2, 0
_0806CFE4: .4byte gUnknown_2031DEC
-_0806CFE8: .4byte gUnknown_3005074
+_0806CFE8: .4byte gSelectedEventObject
_0806CFEC: .4byte gSpecialVar_LastTalked
_0806CFF0: .4byte gSpecialVar_Facing
thumb_func_end sub_806CF38
@@ -994,7 +994,7 @@ _0806D02A:
lsrs r0, 24
cmp r0, 0x1
bne _0806D092
- ldr r1, _0806D09C @ =gUnknown_826D2D8
+ ldr r1, _0806D09C @ =gDirectionToVectors
mov r0, r8
lsls r2, r0, 3
adds r0, r2, r1
@@ -1042,9 +1042,9 @@ _0806D092:
b _0806D0C8
.align 2, 0
_0806D098: .4byte gMapObjects
-_0806D09C: .4byte gUnknown_826D2D8
+_0806D09C: .4byte gDirectionToVectors
_0806D0A0:
- ldr r0, _0806D0D4 @ =gUnknown_3005074
+ ldr r0, _0806D0D4 @ =gSelectedEventObject
strb r5, [r0]
ldr r4, _0806D0D8 @ =gSpecialVar_LastTalked
ldr r1, _0806D0DC @ =gMapObjects
@@ -1069,7 +1069,7 @@ _0806D0C8:
pop {r1}
bx r1
.align 2, 0
-_0806D0D4: .4byte gUnknown_3005074
+_0806D0D4: .4byte gSelectedEventObject
_0806D0D8: .4byte gSpecialVar_LastTalked
_0806D0DC: .4byte gMapObjects
_0806D0E0: .4byte gSpecialVar_Facing
@@ -1828,7 +1828,7 @@ _0806D6EC:
.align 2, 0
_0806D700: .4byte gUnknown_81A8DFD
_0806D704:
- bl sub_80463B8
+ bl ShouldEggHatch
lsls r0, 24
cmp r0, 0
beq _0806D720
@@ -2195,7 +2195,7 @@ mapheader_run_first_tag2_script_list_match_conditionally: @ 806D964
adds r1, r5, 0
adds r2, r7, 0
bl sub_806DC54
- bl sub_807E438
+ bl DoWarp
movs r0, 0x1
b _0806DA02
.align 2, 0
@@ -2331,7 +2331,7 @@ _0806DAC4:
lsrs r0, 24
cmp r0, 0x1
bne _0806DAE4
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
ldr r0, _0806DAE0 @ =gUnknown_81C1361
bl ScriptContext1_SetupScript
movs r0, 0x1
@@ -2339,7 +2339,7 @@ _0806DAC4:
.align 2, 0
_0806DAE0: .4byte gUnknown_81C1361
_0806DAE4:
- bl sub_807E438
+ bl DoWarp
movs r0, 0x1
b _0806DAEE
_0806DAEC:
@@ -2638,7 +2638,7 @@ map_warp_consider_2_to_inside: @ 806DCD0
adds r1, r4, 0
adds r2, r6, 0
bl sub_806DC54
- bl sub_807E4DC
+ bl DoDoorWarp
movs r0, 0x1
b _0806DD32
.align 2, 0
@@ -2990,7 +2990,7 @@ _0806DF98:
cmp r0, 0
beq _0806DFB0
bl sub_8055A08
- bl sp13E_warp_to_last_warp
+ bl DoDiveWarp
movs r0, 0xE2
bl PlaySE
movs r0, 0x1
diff --git a/asm/field_door.s b/asm/field_door.s
index 9c7e5eb10..bcb8a6082 100644
--- a/asm/field_door.s
+++ b/asm/field_door.s
@@ -337,7 +337,7 @@ sub_805B158: @ 805B158
adds r6, r2, 0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -392,7 +392,7 @@ sub_805B1B8: @ 805B1B8
adds r6, r2, 0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -439,7 +439,7 @@ sub_805B210: @ 805B210
adds r6, r2, 0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -478,8 +478,8 @@ _0805B25C:
_0805B264: .4byte gUnknown_835B4B0
thumb_func_end sub_805B210
- thumb_func_start sub_805B268
-sub_805B268: @ 805B268
+ thumb_func_start FieldSetDoorOpened
+FieldSetDoorOpened: @ 805B268
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -504,10 +504,10 @@ _0805B292:
bx r0
.align 2, 0
_0805B298: .4byte gUnknown_835B5D8
- thumb_func_end sub_805B268
+ thumb_func_end FieldSetDoorOpened
- thumb_func_start sub_805B29C
-sub_805B29C: @ 805B29C
+ thumb_func_start FieldSetDoorClosed
+FieldSetDoorClosed: @ 805B29C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -532,10 +532,10 @@ _0805B2C6:
bx r0
.align 2, 0
_0805B2CC: .4byte gUnknown_835B5D8
- thumb_func_end sub_805B29C
+ thumb_func_end FieldSetDoorClosed
- thumb_func_start sub_805B2D0
-sub_805B2D0: @ 805B2D0
+ thumb_func_start FieldAnimateDoorClose
+FieldAnimateDoorClose: @ 805B2D0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -566,10 +566,10 @@ _0805B308:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_805B2D0
+ thumb_func_end FieldAnimateDoorClose
- thumb_func_start sub_805B310
-sub_805B310: @ 805B310
+ thumb_func_start FieldAnimateDoorOpen
+FieldAnimateDoorOpen: @ 805B310
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -600,10 +600,10 @@ _0805B348:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_805B310
+ thumb_func_end FieldAnimateDoorOpen
- thumb_func_start sub_805B350
-sub_805B350: @ 805B350
+ thumb_func_start FieldIsDoorAnimationRunning
+FieldIsDoorAnimationRunning: @ 805B350
push {lr}
ldr r0, _0805B360 @ =sub_805B028
bl FuncIsActiveTask
@@ -613,10 +613,10 @@ sub_805B350: @ 805B350
bx r1
.align 2, 0
_0805B360: .4byte sub_805B028
- thumb_func_end sub_805B350
+ thumb_func_end FieldIsDoorAnimationRunning
- thumb_func_start sub_805B364
-sub_805B364: @ 805B364
+ thumb_func_start GetDoorSoundEffect
+GetDoorSoundEffect: @ 805B364
push {lr}
adds r3, r0, 0
adds r2, r1, 0
@@ -635,7 +635,7 @@ _0805B380:
_0805B382:
pop {r1}
bx r1
- thumb_func_end sub_805B364
+ thumb_func_end GetDoorSoundEffect
thumb_func_start sub_805B388
sub_805B388: @ 805B388
@@ -643,7 +643,7 @@ sub_805B388: @ 805B388
adds r4, r0, 0
adds r0, r1, 0
adds r1, r2, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 1cbdc8214..0fa36ce46 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -603,13 +603,13 @@ CreateTrainerSprite: @ 8083858
lsrs r0, 24
mov r9, r0
lsrs r4, 21
- ldr r3, _080838E0 @ =gUnknown_8239A1C
+ ldr r3, _080838E0 @ =gTrainerFrontPicPaletteTable
mov r8, r3
add r8, r4
mov r0, r8
adds r1, r7, 0
bl LoadCompressedObjectPaletteOverrideBuffer
- ldr r0, _080838E4 @ =gUnknown_823957C
+ ldr r0, _080838E4 @ =gTrainerFrontPicTable
adds r4, r0
adds r0, r4, 0
adds r1, r7, 0
@@ -649,8 +649,8 @@ CreateTrainerSprite: @ 8083858
pop {r1}
bx r1
.align 2, 0
-_080838E0: .4byte gUnknown_8239A1C
-_080838E4: .4byte gUnknown_823957C
+_080838E0: .4byte gTrainerFrontPicPaletteTable
+_080838E4: .4byte gTrainerFrontPicTable
_080838E8: .4byte gUnknown_83CBE50
_080838EC: .4byte gDummySpriteAnimTable
_080838F0: .4byte gDummySpriteAffineAnimTable
@@ -666,12 +666,12 @@ LoadTrainerGfx_TrainerCard: @ 80838F8
lsls r4, 24
lsls r5, 16
lsrs r5, 16
- ldr r0, _08083928 @ =gUnknown_823957C
+ ldr r0, _08083928 @ =gTrainerFrontPicTable
lsrs r4, 21
adds r0, r4, r0
ldr r0, [r0]
bl LZDecompressVram
- ldr r0, _0808392C @ =gUnknown_8239A1C
+ ldr r0, _0808392C @ =gTrainerFrontPicPaletteTable
adds r4, r0
ldr r0, [r4]
adds r1, r5, 0
@@ -681,8 +681,8 @@ LoadTrainerGfx_TrainerCard: @ 80838F8
pop {r0}
bx r0
.align 2, 0
-_08083928: .4byte gUnknown_823957C
-_0808392C: .4byte gUnknown_8239A1C
+_08083928: .4byte gTrainerFrontPicTable
+_0808392C: .4byte gTrainerFrontPicPaletteTable
thumb_func_end LoadTrainerGfx_TrainerCard
thumb_func_start AddNewGameBirchObject
@@ -742,7 +742,7 @@ sub_8083970: @ 8083970
movs r1, 0
adds r2, r3, 0
movs r3, 0x1
- bl sub_810C1CC
+ bl CreateMonPicSprite_HandleDeoxys
lsls r0, 16
lsrs r5, r0, 16
ldrh r0, [r4, 0x4]
@@ -806,7 +806,7 @@ sub_80839D4: @ 80839D4
mov r1, r9
mov r2, r10
movs r3, 0x1
- bl sub_810C1CC
+ bl CreateMonPicSprite_HandleDeoxys
lsls r0, 16
lsrs r4, r0, 16
mov r1, r8
@@ -854,7 +854,7 @@ sub_8083A5C: @ 8083A5C
bl FreeOamMatrix
_08083A7A:
adds r0, r5, 0
- bl sub_810C214
+ bl FreeAndDestroyMonPicSprite
pop {r4,r5}
pop {r0}
bx r0
@@ -1968,16 +1968,16 @@ _080842C2:
thumb_func_start sub_80842C8
sub_80842C8: @ 80842C8
push {lr}
- ldr r0, _080842DC @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080842DC @ =CB2_ReturnToField
bl SetMainCallback2
- ldr r1, _080842E0 @ =gUnknown_3005020
+ ldr r1, _080842E0 @ =gFieldCallback
ldr r0, _080842E4 @ =mapldr_080842E8
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_080842DC: .4byte c2_exit_to_overworld_2_switch
-_080842E0: .4byte gUnknown_3005020
+_080842DC: .4byte CB2_ReturnToField
+_080842E0: .4byte gFieldCallback
_080842E4: .4byte mapldr_080842E8
thumb_func_end sub_80842C8
@@ -1990,14 +1990,14 @@ mapldr_080842E8: @ 80842E8
bl CreateTask
bl ScriptContext2_Enable
bl player_bitmagic
- ldr r1, _0808430C @ =gUnknown_3005020
+ ldr r1, _0808430C @ =gFieldCallback
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08084308: .4byte task00_8084310
-_0808430C: .4byte gUnknown_3005020
+_0808430C: .4byte gFieldCallback
thumb_func_end mapldr_080842E8
thumb_func_start task00_8084310
@@ -2042,7 +2042,7 @@ _08084350:
bl warp_in
ldr r0, _08084384 @ =sub_805671C
bl SetMainCallback2
- ldr r1, _08084388 @ =gUnknown_3005020
+ ldr r1, _08084388 @ =gFieldCallback
ldr r0, _0808438C @ =mapldr_08084390
str r0, [r1]
adds r0, r5, 0
@@ -2055,7 +2055,7 @@ _08084376:
_0808437C: .4byte gTasks
_08084380: .4byte gFieldEffectArguments
_08084384: .4byte sub_805671C
-_08084388: .4byte gUnknown_3005020
+_08084388: .4byte gFieldCallback
_0808438C: .4byte mapldr_08084390
thumb_func_end task00_8084310
@@ -2093,7 +2093,7 @@ mapldr_08084390: @ 8084390
_080843D2:
bl ScriptContext2_Enable
bl player_bitmagic
- ldr r1, _080843F4 @ =gUnknown_3005020
+ ldr r1, _080843F4 @ =gFieldCallback
movs r0, 0
str r0, [r1]
pop {r4}
@@ -2103,7 +2103,7 @@ _080843D2:
_080843E8: .4byte c3_080843F8
_080843EC: .4byte gMapObjects
_080843F0: .4byte gPlayerAvatar
-_080843F4: .4byte gUnknown_3005020
+_080843F4: .4byte gFieldCallback
thumb_func_end mapldr_08084390
thumb_func_start c3_080843F8
@@ -2162,14 +2162,14 @@ sub_8084454: @ 8084454
ldr r0, _0808447C @ =sub_8084484
movs r1, 0
bl CreateTask
- ldr r1, _08084480 @ =gUnknown_3005020
+ ldr r1, _08084480 @ =gFieldCallback
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0808447C: .4byte sub_8084484
-_08084480: .4byte gUnknown_3005020
+_08084480: .4byte gFieldCallback
thumb_func_end sub_8084454
thumb_func_start sub_8084484
@@ -2542,7 +2542,7 @@ sub_8084708: @ 8084708
movs r0, 0x8
bl SetPlayerAvatarTransitionFlags
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08084760:
ldr r0, _08084780 @ =sub_8084484
bl FindTaskIdByFunc
@@ -2861,7 +2861,7 @@ sub_80849A0: @ 80849A0
bne _080849DC
bl sub_809C460
bl warp_in
- ldr r1, _080849E4 @ =gUnknown_3005020
+ ldr r1, _080849E4 @ =gFieldCallback
ldr r0, _080849E8 @ =sub_80849F4
str r0, [r1]
ldr r0, _080849EC @ =sub_805671C
@@ -2876,7 +2876,7 @@ _080849DC:
bx r0
.align 2, 0
_080849E0: .4byte gPaletteFade
-_080849E4: .4byte gUnknown_3005020
+_080849E4: .4byte gFieldCallback
_080849E8: .4byte sub_80849F4
_080849EC: .4byte sub_805671C
_080849F0: .4byte sub_80847C0
@@ -2893,14 +2893,14 @@ sub_80849F4: @ 80849F4
ldr r0, _08084A1C @ =sub_8084A24
movs r1, 0
bl CreateTask
- ldr r1, _08084A20 @ =gUnknown_3005020
+ ldr r1, _08084A20 @ =gFieldCallback
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08084A1C: .4byte sub_8084A24
-_08084A20: .4byte gUnknown_3005020
+_08084A20: .4byte gFieldCallback
thumb_func_end sub_80849F4
thumb_func_start sub_8084A24
@@ -3884,7 +3884,7 @@ sub_8085168: @ 8085168
cmp r0, 0x1
bne _080851A0
bl warp_in
- ldr r1, _080851AC @ =gUnknown_3005020
+ ldr r1, _080851AC @ =gFieldCallback
ldr r0, _080851B0 @ =mapldr_080851BC
str r0, [r1]
ldr r0, _080851B4 @ =sub_805671C
@@ -3900,7 +3900,7 @@ _080851A0:
bx r1
.align 2, 0
_080851A8: .4byte gPaletteFade
-_080851AC: .4byte gUnknown_3005020
+_080851AC: .4byte gFieldCallback
_080851B0: .4byte mapldr_080851BC
_080851B4: .4byte sub_805671C
_080851B8: .4byte sub_8084F44
@@ -3913,7 +3913,7 @@ mapldr_080851BC: @ 80851BC
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- ldr r0, _080851E0 @ =gUnknown_3005020
+ ldr r0, _080851E0 @ =gFieldCallback
movs r1, 0
str r1, [r0]
ldr r0, _080851E4 @ =sub_80851E8
@@ -3921,7 +3921,7 @@ mapldr_080851BC: @ 80851BC
pop {r0}
bx r0
.align 2, 0
-_080851E0: .4byte gUnknown_3005020
+_080851E0: .4byte gFieldCallback
_080851E4: .4byte sub_80851E8
thumb_func_end mapldr_080851BC
@@ -4389,7 +4389,7 @@ sub_808554C: @ 808554C
cmp r0, 0x1
bne _08085584
bl warp_in
- ldr r1, _08085590 @ =gUnknown_3005020
+ ldr r1, _08085590 @ =gFieldCallback
ldr r0, _08085594 @ =sub_8084454
str r0, [r1]
ldr r0, _08085598 @ =sub_805671C
@@ -4405,7 +4405,7 @@ _08085584:
bx r1
.align 2, 0
_0808558C: .4byte gPaletteFade
-_08085590: .4byte gUnknown_3005020
+_08085590: .4byte gFieldCallback
_08085594: .4byte sub_8084454
_08085598: .4byte sub_805671C
_0808559C: .4byte sub_80853E4
@@ -4613,7 +4613,7 @@ _08085702:
bl FieldObjectSetDirection
bl sub_80555E0
bl warp_in
- ldr r1, _0808575C @ =gUnknown_3005020
+ ldr r1, _0808575C @ =gFieldCallback
ldr r0, _08085760 @ =sub_80859D4
str r0, [r1]
ldr r0, _08085764 @ =sub_805671C
@@ -4629,7 +4629,7 @@ _08085750:
bx r0
.align 2, 0
_08085758: .4byte gPaletteFade
-_0808575C: .4byte gUnknown_3005020
+_0808575C: .4byte gFieldCallback
_08085760: .4byte sub_80859D4
_08085764: .4byte sub_805671C
_08085768: .4byte sub_808563C
@@ -4970,7 +4970,7 @@ sub_80859D4: @ 80859D4
bl sub_8111CF0
bl ScriptContext2_Enable
bl player_bitmagic
- ldr r1, _08085A14 @ =gUnknown_3005020
+ ldr r1, _08085A14 @ =gFieldCallback
movs r0, 0
str r0, [r1]
ldr r2, _08085A18 @ =gMapObjects
@@ -4990,7 +4990,7 @@ sub_80859D4: @ 80859D4
pop {r0}
bx r0
.align 2, 0
-_08085A14: .4byte gUnknown_3005020
+_08085A14: .4byte gFieldCallback
_08085A18: .4byte gMapObjects
_08085A1C: .4byte gPlayerAvatar
_08085A20: .4byte sub_8085A24
@@ -5156,8 +5156,8 @@ _08085B58:
_08085B60: .4byte sub_8085A24
thumb_func_end sub_8085A80
- thumb_func_start sub_8085B64
-sub_8085B64: @ 8085B64
+ thumb_func_start CreateTeleportFieldEffectTask
+CreateTeleportFieldEffectTask: @ 8085B64
push {lr}
ldr r0, _08085B74 @ =sub_8085B78
movs r1, 0
@@ -5166,7 +5166,7 @@ sub_8085B64: @ 8085B64
bx r0
.align 2, 0
_08085B74: .4byte sub_8085B78
- thumb_func_end sub_8085B64
+ thumb_func_end CreateTeleportFieldEffectTask
thumb_func_start sub_8085B78
sub_8085B78: @ 8085B78
@@ -5409,7 +5409,7 @@ sub_8085D34: @ 8085D34
bl warp_in
ldr r0, _08085D78 @ =sub_805671C
bl SetMainCallback2
- ldr r1, _08085D7C @ =gUnknown_3005020
+ ldr r1, _08085D7C @ =gFieldCallback
ldr r0, _08085D80 @ =mapldr_08085D88
str r0, [r1]
ldr r0, _08085D84 @ =sub_8085B78
@@ -5423,7 +5423,7 @@ _08085D70:
.align 2, 0
_08085D74: .4byte gPaletteFade
_08085D78: .4byte sub_805671C
-_08085D7C: .4byte gUnknown_3005020
+_08085D7C: .4byte gFieldCallback
_08085D80: .4byte mapldr_08085D88
_08085D84: .4byte sub_8085B78
thumb_func_end sub_8085D34
@@ -5436,7 +5436,7 @@ mapldr_08085D88: @ 8085D88
bl sub_8111CF0
bl ScriptContext2_Enable
bl player_bitmagic
- ldr r1, _08085DCC @ =gUnknown_3005020
+ ldr r1, _08085DCC @ =gFieldCallback
movs r0, 0
str r0, [r1]
ldr r2, _08085DD0 @ =gMapObjects
@@ -5457,7 +5457,7 @@ mapldr_08085D88: @ 8085D88
pop {r0}
bx r0
.align 2, 0
-_08085DCC: .4byte gUnknown_3005020
+_08085DCC: .4byte gFieldCallback
_08085DD0: .4byte gMapObjects
_08085DD4: .4byte gPlayerAvatar
_08085DD8: .4byte sub_8085DDC
@@ -6955,7 +6955,7 @@ sub_8086944: @ 8086944
cmp r0, 0
beq _08086978
adds r0, r4, 0
- bl sub_8055F48
+ bl Overworld_ChangeMusicTo
_08086978:
movs r0, 0
pop {r4}
@@ -7213,7 +7213,7 @@ sub_8086B30: @ 8086B30
lsrs r0, 24
bl DestroyTask
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08086B96:
pop {r4,r5}
pop {r0}
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index ed746de25..be79c3b21 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -845,7 +845,7 @@ unc_grass_normal: @ 80DB3EC
lsrs r4, r0, 8
lsls r0, 24
lsrs r7, r0, 24
- ldr r3, _080DB498 @ =gUnknown_2036E18
+ ldr r3, _080DB498 @ =gCamera
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
@@ -921,7 +921,7 @@ _080DB48C:
bl FieldEffectStop
b _080DB4E4
.align 2, 0
-_080DB498: .4byte gUnknown_2036E18
+_080DB498: .4byte gCamera
_080DB49C: .4byte gSaveBlock1Ptr
_080DB4A0:
mov r0, sp
@@ -1196,7 +1196,7 @@ unc_grass_tall: @ 80DB69C
lsrs r7, r0, 8
lsls r0, 24
lsrs r6, r0, 24
- ldr r3, _080DB748 @ =gUnknown_2036E18
+ ldr r3, _080DB748 @ =gCamera
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
@@ -1272,7 +1272,7 @@ _080DB73C:
bl FieldEffectStop
b _080DB786
.align 2, 0
-_080DB748: .4byte gUnknown_2036E18
+_080DB748: .4byte gCamera
_080DB74C: .4byte gSaveBlock1Ptr
_080DB750:
mov r0, sp
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
index 8ccc347e9..ceaaaf7a6 100644
--- a/asm/field_fadetransition.s
+++ b/asm/field_fadetransition.s
@@ -273,8 +273,8 @@ _0807DD1C:
bx r0
thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running
- thumb_func_start sub_807DD24
-sub_807DD24: @ 807DD24
+ thumb_func_start FieldCallback_ReturnToEventScript2
+FieldCallback_ReturnToEventScript2: @ 807DD24
push {lr}
bl ScriptContext2_Enable
bl sub_8055DC4
@@ -286,7 +286,7 @@ sub_807DD24: @ 807DD24
bx r0
.align 2, 0
_0807DD40: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
- thumb_func_end sub_807DD24
+ thumb_func_end FieldCallback_ReturnToEventScript2
thumb_func_start sub_807DD44
sub_807DD44: @ 807DD44
@@ -661,7 +661,7 @@ _0807E028:
ldrsh r0, [r6, r2]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B268
+ bl FieldSetDoorOpened
movs r0, 0x1
strh r0, [r4, 0x8]
b _0807E206
@@ -691,7 +691,7 @@ _0807E074:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B364
+ bl GetDoorSoundEffect
lsls r0, 16
lsrs r0, 16
bl PlaySE
@@ -699,12 +699,12 @@ _0807E074:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B310
+ bl FieldAnimateDoorOpen
movs r0, 0x7
strh r0, [r4, 0x8]
b _0807E206
_0807E0A2:
- bl sub_805B350
+ bl FieldIsDoorAnimationRunning
lsls r0, 24
cmp r0, 0
beq _0807E0AE
@@ -750,7 +750,7 @@ _0807E0FC:
ldrsh r0, [r4, r1]
movs r2, 0x22
ldrsh r1, [r4, r2]
- bl sub_805B2D0
+ bl FieldAnimateDoorClose
movs r0, 0x9
strh r0, [r4, 0x8]
b _0807E206
@@ -762,7 +762,7 @@ _0807E10E:
lsls r0, 24
cmp r0, 0
beq _0807E206
- bl sub_805B350
+ bl FieldIsDoorAnimationRunning
lsls r0, 24
cmp r0, 0
bne _0807E206
@@ -822,7 +822,7 @@ _0807E198:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805B2D0
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0xA]
@@ -1153,16 +1153,16 @@ _0807E434:
bx r1
thumb_func_end sub_807E418
- thumb_func_start sub_807E438
-sub_807E438: @ 807E438
+ thumb_func_start DoWarp
+DoWarp: @ 807E438
push {lr}
bl ScriptContext2_Enable
bl sub_8055F88
bl sub_807DC18
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
movs r0, 0x9
bl PlaySE
- ldr r0, _0807E464 @ =gUnknown_3005020
+ ldr r0, _0807E464 @ =gFieldCallback
ldr r1, _0807E468 @ =sub_807DF64
str r1, [r0]
ldr r0, _0807E46C @ =sub_807E718
@@ -1171,19 +1171,19 @@ sub_807E438: @ 807E438
pop {r0}
bx r0
.align 2, 0
-_0807E464: .4byte gUnknown_3005020
+_0807E464: .4byte gFieldCallback
_0807E468: .4byte sub_807DF64
_0807E46C: .4byte sub_807E718
- thumb_func_end sub_807E438
+ thumb_func_end DoWarp
- thumb_func_start sp13E_warp_to_last_warp
-sp13E_warp_to_last_warp: @ 807E470
+ thumb_func_start DoDiveWarp
+DoDiveWarp: @ 807E470
push {lr}
bl ScriptContext2_Enable
bl sub_8055F88
bl sub_807DC18
- bl play_some_sound
- ldr r0, _0807E494 @ =gUnknown_3005020
+ bl PlayRainStoppingSoundEffect
+ ldr r0, _0807E494 @ =gFieldCallback
ldr r1, _0807E498 @ =sub_807DF64
str r1, [r0]
ldr r0, _0807E49C @ =sub_807E718
@@ -1192,10 +1192,10 @@ sp13E_warp_to_last_warp: @ 807E470
pop {r0}
bx r0
.align 2, 0
-_0807E494: .4byte gUnknown_3005020
+_0807E494: .4byte gFieldCallback
_0807E498: .4byte sub_807DF64
_0807E49C: .4byte sub_807E718
- thumb_func_end sp13E_warp_to_last_warp
+ thumb_func_end DoDiveWarp
thumb_func_start sub_807E4A0
sub_807E4A0: @ 807E4A0
@@ -1228,11 +1228,11 @@ _0807E4D4: .4byte sub_807E980
_0807E4D8: .4byte gTasks
thumb_func_end sub_807E4A0
- thumb_func_start sub_807E4DC
-sub_807E4DC: @ 807E4DC
+ thumb_func_start DoDoorWarp
+DoDoorWarp: @ 807E4DC
push {lr}
bl ScriptContext2_Enable
- ldr r0, _0807E4F4 @ =gUnknown_3005020
+ ldr r0, _0807E4F4 @ =gFieldCallback
ldr r1, _0807E4F8 @ =sub_807DF64
str r1, [r0]
ldr r0, _0807E4FC @ =sub_807E80C
@@ -1241,10 +1241,10 @@ sub_807E4DC: @ 807E4DC
pop {r0}
bx r0
.align 2, 0
-_0807E4F4: .4byte gUnknown_3005020
+_0807E4F4: .4byte gFieldCallback
_0807E4F8: .4byte sub_807DF64
_0807E4FC: .4byte sub_807E80C
- thumb_func_end sub_807E4DC
+ thumb_func_end DoDoorWarp
thumb_func_start sub_807E500
sub_807E500: @ 807E500
@@ -1253,14 +1253,14 @@ sub_807E500: @ 807E500
ldr r0, _0807E518 @ =sub_807E718
movs r1, 0xA
bl CreateTask
- ldr r1, _0807E51C @ =gUnknown_3005020
+ ldr r1, _0807E51C @ =gFieldCallback
ldr r0, _0807E520 @ =sub_807DF94
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0807E518: .4byte sub_807E718
-_0807E51C: .4byte gUnknown_3005020
+_0807E51C: .4byte gFieldCallback
_0807E520: .4byte sub_807DF94
thumb_func_end sub_807E500
@@ -1268,7 +1268,7 @@ _0807E520: .4byte sub_807DF94
sub_807E524: @ 807E524
push {lr}
bl ScriptContext2_Enable
- ldr r0, _0807E53C @ =gUnknown_3005020
+ ldr r0, _0807E53C @ =gFieldCallback
ldr r1, _0807E540 @ =sub_807DF64
str r1, [r0]
ldr r0, _0807E544 @ =sub_807E784
@@ -1277,24 +1277,24 @@ sub_807E524: @ 807E524
pop {r0}
bx r0
.align 2, 0
-_0807E53C: .4byte gUnknown_3005020
+_0807E53C: .4byte gFieldCallback
_0807E540: .4byte sub_807DF64
_0807E544: .4byte sub_807E784
thumb_func_end sub_807E524
- thumb_func_start sp13F_fall_to_last_warp
-sp13F_fall_to_last_warp: @ 807E548
+ thumb_func_start DoFallWarp
+DoFallWarp: @ 807E548
push {lr}
- bl sp13E_warp_to_last_warp
- ldr r1, _0807E558 @ =gUnknown_3005020
+ bl DoDiveWarp
+ ldr r1, _0807E558 @ =gFieldCallback
ldr r0, _0807E55C @ =sub_8084454
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_0807E558: .4byte gUnknown_3005020
+_0807E558: .4byte gFieldCallback
_0807E55C: .4byte sub_8084454
- thumb_func_end sp13F_fall_to_last_warp
+ thumb_func_end DoFallWarp
thumb_func_start sub_807E560
sub_807E560: @ 807E560
@@ -1339,14 +1339,14 @@ sub_807E59C: @ 807E59C
ldr r0, _0807E5B8 @ =sub_807E784
movs r1, 0xA
bl CreateTask
- ldr r1, _0807E5BC @ =gUnknown_3005020
+ ldr r1, _0807E5BC @ =gFieldCallback
ldr r0, _0807E5C0 @ =sub_807DF94
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0807E5B8: .4byte sub_807E784
-_0807E5BC: .4byte gUnknown_3005020
+_0807E5BC: .4byte gFieldCallback
_0807E5C0: .4byte sub_807DF94
thumb_func_end sub_807E59C
@@ -1358,14 +1358,14 @@ sub_807E5C4: @ 807E5C4
ldr r0, _0807E5E0 @ =sub_807E718
movs r1, 0xA
bl CreateTask
- ldr r1, _0807E5E4 @ =gUnknown_3005020
+ ldr r1, _0807E5E4 @ =gFieldCallback
ldr r0, _0807E5E8 @ =nullsub_60
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0807E5E0: .4byte sub_807E718
-_0807E5E4: .4byte gUnknown_3005020
+_0807E5E4: .4byte gFieldCallback
_0807E5E8: .4byte nullsub_60
thumb_func_end sub_807E5C4
@@ -1690,7 +1690,7 @@ _0807E85C:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_805B364
+ bl GetDoorSoundEffect
lsls r0, 16
lsrs r0, 16
bl PlaySE
@@ -1699,7 +1699,7 @@ _0807E85C:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_805B310
+ bl FieldAnimateDoorOpen
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -1760,7 +1760,7 @@ _0807E8F4:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_805B2D0
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -1807,7 +1807,7 @@ _0807E95C:
_0807E966:
bl sub_8055F88
_0807E96A:
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
movs r0, 0
strh r0, [r5, 0x8]
ldr r0, _0807E97C @ =sub_807E718
@@ -1891,7 +1891,7 @@ _0807EA00:
b _0807EAB0
_0807EA10:
bl sub_8055F88
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
ldrb r1, [r7, 0x5]
movs r0, 0xD
negs r0, r0
@@ -1954,7 +1954,7 @@ _0807EA92:
strh r0, [r5]
b _0807EAB0
_0807EA9A:
- ldr r0, _0807EAB8 @ =gUnknown_3005020
+ ldr r0, _0807EAB8 @ =gFieldCallback
ldr r1, _0807EABC @ =sub_807DF64
str r1, [r0]
bl warp_in
@@ -1968,7 +1968,7 @@ _0807EAB0:
pop {r0}
bx r0
.align 2, 0
-_0807EAB8: .4byte gUnknown_3005020
+_0807EAB8: .4byte gFieldCallback
_0807EABC: .4byte sub_807DF64
_0807EAC0: .4byte sub_805671C
thumb_func_end sub_807E980
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 308421098..1275f7471 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -673,7 +673,7 @@ sub_805E2E8: @ 805E2E8
lsls r0, 24
cmp r0, 0
beq _0805E37C
- ldr r1, _0805E374 @ =gUnknown_3005040
+ ldr r1, _0805E374 @ =VMap
ldr r0, [r1]
adds r3, r0, 0
subs r3, 0x10
@@ -736,7 +736,7 @@ _0805E36A:
movs r0, 0
b _0805E37E
.align 2, 0
-_0805E374: .4byte gUnknown_3005040
+_0805E374: .4byte VMap
_0805E378: .4byte gSaveBlock1Ptr
_0805E37C:
movs r0, 0x1
@@ -1373,8 +1373,8 @@ SpawnSpecialFieldObject: @ 805E7F4
_0805E82C: .4byte gSaveBlock1Ptr
thumb_func_end SpawnSpecialFieldObject
- thumb_func_start SpawnSpecialFieldObjectParametrized
-SpawnSpecialFieldObjectParametrized: @ 805E830
+ thumb_func_start SpawnSpecialFieldObjectParameterized
+SpawnSpecialFieldObjectParameterized: @ 805E830
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -1425,7 +1425,7 @@ SpawnSpecialFieldObjectParametrized: @ 805E830
bx r1
.align 2, 0
_0805E894: .4byte 0xfff90000
- thumb_func_end SpawnSpecialFieldObjectParametrized
+ thumb_func_end SpawnSpecialFieldObjectParameterized
thumb_func_start show_sprite
show_sprite: @ 805E898
@@ -1550,8 +1550,8 @@ MakeObjectTemplateFromFieldObjectTemplate: @ 805E960
bx r0
thumb_func_end MakeObjectTemplateFromFieldObjectTemplate
- thumb_func_start AddPseudoFieldObject
-AddPseudoFieldObject: @ 805E978
+ thumb_func_start AddPseudoEventObject
+AddPseudoEventObject: @ 805E978
push {r4-r6,lr}
sub sp, 0x1C
ldr r4, [sp, 0x2C]
@@ -1612,10 +1612,10 @@ _0805E9E4:
.align 2, 0
_0805E9F0: .4byte 0x0000ffff
_0805E9F4: .4byte gSprites
- thumb_func_end AddPseudoFieldObject
+ thumb_func_end AddPseudoEventObject
- thumb_func_start sub_805E9F8
-sub_805E9F8: @ 805E9F8
+ thumb_func_start sprite_new
+sprite_new: @ 805E9F8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1772,7 +1772,7 @@ _0805EB24:
_0805EB38: .4byte sub_8068FA8
_0805EB3C: .4byte 0x0000ffff
_0805EB40: .4byte gSprites
- thumb_func_end sub_805E9F8
+ thumb_func_end sprite_new
thumb_func_start sub_805EB44
sub_805EB44: @ 805EB44
@@ -3516,7 +3516,7 @@ npc_coords_shift_still: @ 805F818
thumb_func_start UpdateFieldObjectCoordsForCameraUpdate
UpdateFieldObjectCoordsForCameraUpdate: @ 805F82C
push {r4,r5,lr}
- ldr r2, _0805F88C @ =gUnknown_2036E18
+ ldr r2, _0805F88C @ =gCamera
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -3566,7 +3566,7 @@ _0805F884:
pop {r0}
bx r0
.align 2, 0
-_0805F88C: .4byte gUnknown_2036E18
+_0805F88C: .4byte gCamera
_0805F890: .4byte gMapObjects
thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
@@ -12332,13 +12332,13 @@ npc_block_way: @ 80636AC
_080636E2:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8058DC4
+ bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _08063724
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8059334
+ bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
@@ -12432,13 +12432,13 @@ sub_8063770: @ 8063770
lsrs r4, r1, 31
adds r0, r6, 0
adds r1, r5, 0
- bl sub_8058DC4
+ bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _080637E8
adds r0, r6, 0
adds r1, r5, 0
- bl sub_8059334
+ bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
@@ -21605,7 +21605,7 @@ _080677EA:
ands r0, r1
strb r0, [r5, 0x1]
_08067822:
- ldr r1, _08067850 @ =gUnknown_825E074
+ ldr r1, _08067850 @ =gSineTable
movs r2, 0x3A
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -21629,7 +21629,7 @@ _08067822:
strb r0, [r5]
b _080678B6
.align 2, 0
-_08067850: .4byte gUnknown_825E074
+_08067850: .4byte gSineTable
_08067854:
ldrh r0, [r4, 0x36]
adds r0, 0x1
@@ -21697,7 +21697,7 @@ sub_80678C0: @ 80678C0
movs r0, 0xFF
ands r2, r0
strh r2, [r1, 0x3C]
- ldr r3, _080678EC @ =gUnknown_825E074
+ ldr r3, _080678EC @ =gSineTable
movs r4, 0x3C
ldrsh r0, [r1, r4]
lsls r0, 1
@@ -21715,7 +21715,7 @@ _080678E6:
pop {r1}
bx r1
.align 2, 0
-_080678EC: .4byte gUnknown_825E074
+_080678EC: .4byte gSineTable
thumb_func_end sub_80678C0
thumb_func_start sub_80678F0
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index 78a5f8c8c..46f4c3f8e 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -83,7 +83,7 @@ _080693D4:
_080693DA:
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
_080693E2:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -250,7 +250,7 @@ HideFieldMessageBox: @ 80694F4
bl task_del_textbox
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldr r1, _0806950C @ =gUnknown_203709C
movs r0, 0
strb r0, [r1]
@@ -293,7 +293,7 @@ sub_8069538: @ 8069538
bl task_del_textbox
movs r0, 0
movs r1, 0x1
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r1, _08069550 @ =gUnknown_203709C
movs r0, 0
strb r0, [r1]
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index aa68c6ef2..5fb0f3dad 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -2818,7 +2818,7 @@ PartyHasMonWithSurf: @ 805C83C
_0805C84E:
adds r0, r4, 0
movs r1, 0x39
- bl pokemon_has_move
+ bl MonKnowsMove
lsls r0, 24
cmp r0, 0
beq _0805C860
@@ -4676,7 +4676,7 @@ sub_805D66C: @ 805D66C
movs r0, 0
movs r1, 0x2
movs r3, 0x1
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -4769,7 +4769,7 @@ _0805D748:
strh r6, [r0, 0x26]
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
@@ -4851,7 +4851,7 @@ sub_805D7C0: @ 805D7C0
movs r0, 0
movs r1, 0x2
movs r3, 0x1
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0xD
strh r0, [r6, 0x8]
movs r0, 0x1
@@ -4904,7 +4904,7 @@ sub_805D838: @ 805D838
movs r0, 0
movs r1, 0x2
movs r3, 0x1
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
@@ -5043,7 +5043,7 @@ sub_805D980: @ 805D980
bl UnfreezeMapObjects
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldr r0, _0805D9C0 @ =sub_805D304
bl FindTaskIdByFunc
lsls r0, 24
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
index a8477a33f..079abee2c 100644
--- a/asm/field_screen_effect.s
+++ b/asm/field_screen_effect.s
@@ -135,12 +135,12 @@ _0807EEE0:
beq _0807EF6C
b _0807EF76
_0807EEE6:
- ldr r0, _0807EF0C @ =gUnknown_2039600
+ ldr r0, _0807EF0C @ =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, _0807EF10 @ =gUnknown_2038700
+ ldr r1, _0807EF10 @ =gScanlineEffectRegBuffers
adds r0, r1
movs r2, 0x2
ldrsh r1, [r4, r2]
@@ -153,15 +153,15 @@ _0807EEE6:
strh r0, [r4]
b _0807EF76
.align 2, 0
-_0807EF0C: .4byte gUnknown_2039600
-_0807EF10: .4byte gUnknown_2038700
+_0807EF0C: .4byte gScanlineEffect
+_0807EF10: .4byte gScanlineEffectRegBuffers
_0807EF14:
- ldr r0, _0807EF5C @ =gUnknown_2039600
+ ldr r0, _0807EF5C @ =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, _0807EF60 @ =gUnknown_2038700
+ ldr r1, _0807EF60 @ =gScanlineEffectRegBuffers
adds r0, r1
movs r6, 0x2
ldrsh r1, [r4, r6]
@@ -186,19 +186,19 @@ _0807EF14:
ldrsh r0, [r4, r3]
cmp r0, 0x1
bne _0807EF64
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r0, 0x2
strh r0, [r4]
b _0807EF76
.align 2, 0
-_0807EF5C: .4byte gUnknown_2039600
-_0807EF60: .4byte gUnknown_2038700
+_0807EF5C: .4byte gScanlineEffect
+_0807EF60: .4byte gScanlineEffectRegBuffers
_0807EF64:
adds r0, r5, 0
bl DestroyTask
b _0807EF76
_0807EF6C:
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
adds r0, r5, 0
bl DestroyTask
_0807EF76:
@@ -344,7 +344,7 @@ sub_807F074: @ 807F074
lsrs r0, 24
cmp r0, 0
beq _0807F0A2
- ldr r4, _0807F0A8 @ =gUnknown_2038700
+ ldr r4, _0807F0A8 @ =gScanlineEffectRegBuffers
ldr r1, _0807F0AC @ =gUnknown_83C68D4
lsls r0, 1
adds r0, r1
@@ -365,7 +365,7 @@ _0807F0A2:
pop {r0}
bx r0
.align 2, 0
-_0807F0A8: .4byte gUnknown_2038700
+_0807F0A8: .4byte gScanlineEffectRegBuffers
_0807F0AC: .4byte gUnknown_83C68D4
thumb_func_end sub_807F074
@@ -785,7 +785,7 @@ _0807F3E0:
movs r1, 0x2
mov r2, r10
mov r3, r9
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r2, _0807F42C @ =gTextFlags
ldrb r1, [r2]
movs r0, 0x2
@@ -869,7 +869,7 @@ _0807F4A8:
adds r7, r0, r1
strh r5, [r7, 0xA]
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
adds r0, r5, 0
movs r1, 0
bl FillWindowPixelBuffer
diff --git a/asm/field_specials.s b/asm/field_specials.s
index a4f3e6dc7..fcec338e7 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -33,9 +33,9 @@ _080CA644:
movs r4, 0x8D
lsls r4, 1
adds r0, r4, 0
- bl sub_8055E78
+ bl Overworld_SetSavedMusic
adds r0, r4, 0
- bl sub_8055F48
+ bl Overworld_ChangeMusicTo
pop {r4}
pop {r0}
bx r0
@@ -178,11 +178,11 @@ _080CA748: .4byte gUnknown_8417FCC
thumb_func_start sub_80CA74C
sub_80CA74C: @ 80CA74C
- ldr r0, _080CA754 @ =gUnknown_2023E8A
+ ldr r0, _080CA754 @ =gBattleOutcome
ldrb r0, [r0]
bx lr
.align 2, 0
-_080CA754: .4byte gUnknown_2023E8A
+_080CA754: .4byte gBattleOutcome
thumb_func_end sub_80CA74C
thumb_func_start sub_80CA758
@@ -601,7 +601,7 @@ SpawnScriptFieldObject: @ 80CAA34
movs r0, 0x12
movs r1, 0x8
movs r2, 0x7F
- bl SpawnSpecialFieldObjectParametrized
+ bl SpawnSpecialFieldObjectParameterized
lsls r0, 24
lsrs r0, 24
ldr r2, _080CAA84 @ =gMapObjects
@@ -756,7 +756,7 @@ sub_80CAB78: @ 80CAB78
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_80CBD94
+ bl GetStarterPokemon
lsls r0, 16
lsrs r6, r0, 16
bl CalculatePlayerPartyCount
@@ -2071,7 +2071,7 @@ sub_80CB580: @ 80CB580
ldr r5, _080CB62C @ =0x0000021d
adds r1, r5, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r4]
movs r1, 0
adds r2, r5, 0
@@ -2141,7 +2141,7 @@ sub_80CB63C: @ 80CB63C
ldr r4, _080CB654 @ =gUnknown_2039A0C
ldrb r0, [r4]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -2753,7 +2753,7 @@ sub_80CBADC: @ 80CBADC
ldr r4, _080CBB20 @ =gUnknown_3005378
adds r1, r4, 0
movs r2, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
ldr r1, _080CBB24 @ =gUnknown_2039A18
ldrh r0, [r4]
strh r0, [r1]
@@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC
lsrs r0, 24
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _080CBC28 @ =gUnknown_2039A14
ldr r0, [r0]
bl Free
@@ -2862,7 +2862,7 @@ sub_80CBBAC: @ 80CBBAC
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
@@ -3078,15 +3078,15 @@ _080CBD7C: .4byte gTasks
sub_80CBD80: @ 80CBD80
push {lr}
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
movs r0, 0x8
bl SetPlayerAvatarTransitionFlags
pop {r0}
bx r0
thumb_func_end sub_80CBD80
- thumb_func_start sub_80CBD94
-sub_80CBD94: @ 80CBD94
+ thumb_func_start GetStarterPokemon
+GetStarterPokemon: @ 80CBD94
push {lr}
lsls r0, 16
lsrs r1, r0, 16
@@ -3094,31 +3094,31 @@ sub_80CBD94: @ 80CBD94
bls _080CBDA0
movs r1, 0
_080CBDA0:
- ldr r0, _080CBDAC @ =gUnknown_83F5D2C
+ ldr r0, _080CBDAC @ =sStarterMon
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
-_080CBDAC: .4byte gUnknown_83F5D2C
- thumb_func_end sub_80CBD94
+_080CBDAC: .4byte sStarterMon
+ thumb_func_end GetStarterPokemon
- thumb_func_start sub_80CBDB0
-sub_80CBDB0: @ 80CBDB0
+ thumb_func_start ScrSpecial_GetStarter
+ScrSpecial_GetStarter: @ 80CBDB0
push {lr}
ldr r0, _080CBDC8 @ =0x00004031
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_80CBD94
+ bl GetStarterPokemon
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_080CBDC8: .4byte 0x00004031
- thumb_func_end sub_80CBDB0
+ thumb_func_end ScrSpecial_GetStarter
thumb_func_start sub_80CBDCC
sub_80CBDCC: @ 80CBDCC
@@ -3138,7 +3138,7 @@ _080CBDE4: .4byte gSpecialVar_0x8004
thumb_func_start sub_80CBDE8
sub_80CBDE8: @ 80CBDE8
- ldr r1, _080CBDF8 @ =gUnknown_3005074
+ ldr r1, _080CBDF8 @ =gSelectedEventObject
movs r0, 0
strb r0, [r1]
ldr r1, _080CBDFC @ =gUnknown_20370DA
@@ -3146,7 +3146,7 @@ sub_80CBDE8: @ 80CBDE8
strh r0, [r1]
bx lr
.align 2, 0
-_080CBDF8: .4byte gUnknown_3005074
+_080CBDF8: .4byte gSelectedEventObject
_080CBDFC: .4byte gUnknown_20370DA
thumb_func_end sub_80CBDE8
@@ -3157,7 +3157,7 @@ sub_80CBE00: @ 80CBE00
ldrh r0, [r0]
cmp r0, 0xFF
bne _080CBE44
- ldr r1, _080CBE1C @ =gUnknown_3005074
+ ldr r1, _080CBE1C @ =gSelectedEventObject
ldrb r0, [r1]
cmp r0, 0
bne _080CBE20
@@ -3165,7 +3165,7 @@ sub_80CBE00: @ 80CBE00
b _080CBE48
.align 2, 0
_080CBE18: .4byte gUnknown_20370DA
-_080CBE1C: .4byte gUnknown_3005074
+_080CBE1C: .4byte gSelectedEventObject
_080CBE20:
ldr r2, _080CBE4C @ =gMapObjects
ldrb r1, [r1]
@@ -3267,7 +3267,7 @@ TV_PrintIntToStringVar: @ 80CBED4
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
- bl sub_80CBF04
+ bl CountDigits
adds r3, r0, 0
ldr r0, _080CBF00 @ =gUnknown_83F5AF8
lsls r4, 2
@@ -3285,8 +3285,8 @@ TV_PrintIntToStringVar: @ 80CBED4
_080CBF00: .4byte gUnknown_83F5AF8
thumb_func_end TV_PrintIntToStringVar
- thumb_func_start sub_80CBF04
-sub_80CBF04: @ 80CBF04
+ thumb_func_start CountDigits
+CountDigits: @ 80CBF04
push {r4,lr}
adds r4, r0, 0
movs r1, 0xA
@@ -3366,7 +3366,7 @@ _080CBF9A:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80CBF04
+ thumb_func_end CountDigits
thumb_func_start sub_80CBFA0
sub_80CBFA0: @ 80CBFA0
@@ -5542,7 +5542,7 @@ sub_80CD098: @ 80CD098
str r3, [sp]
movs r0, 0
movs r3, 0
- bl sub_8006300
+ bl CreateTextCursorSpriteForOakSpeech
ldr r1, _080CD0DC @ =gUnknown_2039A1B
strb r0, [r1]
b _080CD0E8
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
index 306b52940..b4106c021 100644
--- a/asm/field_tasks.s
+++ b/asm/field_tasks.s
@@ -490,7 +490,7 @@ _0806EB8E:
ldrsh r0, [r0, r3]
movs r2, 0
ldrsh r1, [r4, r2]
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
ldr r1, _0806EBDC @ =0x0000020a
cmp r0, r1
bne _0806EBE4
@@ -534,7 +534,7 @@ sub_806EC04: @ 806EC04
asrs r4, r1, 16
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
ldr r1, _0806EC38 @ =0x0000022f
ldr r2, _0806EC3C @ =0x00000237
cmp r0, r1
diff --git a/asm/field_weather.s b/asm/field_weather.s
index 77a138ad2..e8d3ba7ee 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -122,7 +122,7 @@ weather_set: @ 8079CF4
beq _08079D0A
cmp r4, 0xD
beq _08079D0A
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
_08079D0A:
ldr r1, _08079D4C @ =gUnknown_2037F34
ldr r2, _08079D50 @ =0x000006d1
@@ -170,7 +170,7 @@ sub_8079D60: @ 8079D60
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
ldr r0, _08079D84 @ =gUnknown_2037F34
movs r2, 0xDA
lsls r2, 3
@@ -193,7 +193,7 @@ sub_8079D8C: @ 8079D8C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
ldr r1, _08079DB8 @ =gUnknown_2037F34
movs r2, 0xDA
lsls r2, 3
@@ -2250,7 +2250,7 @@ _0807AD14:
movs r1, 0x7F
ands r0, r1
strh r0, [r2]
- ldr r1, _0807AD5C @ =gUnknown_825E074
+ ldr r1, _0807AD5C @ =gSineTable
movs r3, 0
ldrsh r0, [r2, r3]
lsls r0, 1
@@ -2278,7 +2278,7 @@ _0807AD54:
strh r0, [r4]
b _0807ADA0
.align 2, 0
-_0807AD5C: .4byte gUnknown_825E074
+_0807AD5C: .4byte gSineTable
_0807AD60: .4byte 0x0000073c
_0807AD64: .4byte 0x0000073e
_0807AD68:
@@ -2625,8 +2625,8 @@ _0807AFFA:
_0807B000: .4byte 0x000006dd
thumb_func_end SetRainStrengthFromSoundEffect
- thumb_func_start play_some_sound
-play_some_sound: @ 807B004
+ thumb_func_start PlayRainStoppingSoundEffect
+PlayRainStoppingSoundEffect: @ 807B004
push {lr}
bl IsSpecialSEPlaying
lsls r0, 24
@@ -2658,7 +2658,7 @@ _0807B03C:
_0807B042:
pop {r0}
bx r0
- thumb_func_end play_some_sound
+ thumb_func_end PlayRainStoppingSoundEffect
thumb_func_start sub_807B048
sub_807B048: @ 807B048
@@ -2804,8 +2804,8 @@ sav1_get_weather_probably: @ 807B130
_0807B13C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_weather_probably
- thumb_func_start sub_807B140
-sub_807B140: @ 807B140
+ thumb_func_start SetSav1WeatherFromCurrMapHeader
+SetSav1WeatherFromCurrMapHeader: @ 807B140
push {r4,r5,lr}
ldr r4, _0807B16C @ =gSaveBlock1Ptr
ldr r0, [r4]
@@ -2828,7 +2828,7 @@ sub_807B140: @ 807B140
.align 2, 0
_0807B16C: .4byte gSaveBlock1Ptr
_0807B170: .4byte gMapHeader
- thumb_func_end sub_807B140
+ thumb_func_end SetSav1WeatherFromCurrMapHeader
thumb_func_start SetWeather
SetWeather: @ 807B174
diff --git a/asm/field_weather_effects.s b/asm/field_weather_effects.s
index fd9b2361a..0330bcbaf 100644
--- a/asm/field_weather_effects.s
+++ b/asm/field_weather_effects.s
@@ -1972,7 +1972,7 @@ sub_807C1AC: @ 807C1AC
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x34]
- ldr r1, _0807C224 @ =gUnknown_825E074
+ ldr r1, _0807C224 @ =gSineTable
movs r3, 0x34
ldrsh r0, [r4, r3]
lsls r0, 1
@@ -2020,7 +2020,7 @@ _0807C210:
subs r0, r1
b _0807C23C
.align 2, 0
-_0807C224: .4byte gUnknown_825E074
+_0807C224: .4byte gSineTable
_0807C228: .4byte gSpriteCoordOffsetX
_0807C22C: .4byte 0x000001ff
_0807C230: .4byte 0xffffff00
@@ -4417,7 +4417,7 @@ sub_807D4C4: @ 807D4C4
ldr r2, [r0]
ldr r0, _0807D52C @ =0x00000704
adds r4, r2, r0
- ldr r6, _0807D530 @ =gUnknown_825E074
+ ldr r6, _0807D530 @ =gSineTable
ldr r1, _0807D534 @ =0x00000712
adds r5, r2, r1
ldrh r0, [r5]
@@ -4465,7 +4465,7 @@ sub_807D4C4: @ 807D4C4
.align 2, 0
_0807D528: .4byte gUnknown_83C2BBC
_0807D52C: .4byte 0x00000704
-_0807D530: .4byte gUnknown_825E074
+_0807D530: .4byte gSineTable
_0807D534: .4byte 0x00000712
_0807D538: .4byte gSpriteCoordOffsetX
_0807D53C: .4byte 0x0000070e
@@ -4856,7 +4856,7 @@ SandstormSpriteCallback3: @ 807D81C
_0807D83A:
movs r0, 0x2E
ldrsh r4, [r5, r0]
- ldr r3, _0807D88C @ =gUnknown_825E074
+ ldr r3, _0807D88C @ =gSineTable
movs r2, 0x30
ldrsh r1, [r5, r2]
lsls r0, r1, 1
@@ -4897,7 +4897,7 @@ _0807D886:
pop {r0}
bx r0
.align 2, 0
-_0807D88C: .4byte gUnknown_825E074
+_0807D88C: .4byte gSineTable
thumb_func_end SandstormSpriteCallback3
thumb_func_start Weather11_InitVars
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
deleted file mode 100644
index a8b2d36ee..000000000
--- a/asm/fieldmap.s
+++ /dev/null
@@ -1,2400 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start mapconnection_get_mapheader
-mapconnection_get_mapheader: @ 80589C4
- push {lr}
- ldrb r2, [r0, 0x8]
- ldrb r1, [r0, 0x9]
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- pop {r1}
- bx r1
- thumb_func_end mapconnection_get_mapheader
-
- thumb_func_start not_trainer_hill_battle_pyramid
-not_trainer_hill_battle_pyramid: @ 80589D4
- push {lr}
- ldr r0, _080589E4 @ =gMapHeader
- bl sub_8058A00
- bl mapheader_run_script_with_tag_x1
- pop {r0}
- bx r0
- .align 2, 0
-_080589E4: .4byte gMapHeader
- thumb_func_end not_trainer_hill_battle_pyramid
-
- thumb_func_start sub_80589E8
-sub_80589E8: @ 80589E8
- push {lr}
- ldr r0, _080589FC @ =gMapHeader
- bl sub_8058A00
- bl sub_80591C4
- bl mapheader_run_script_with_tag_x1
- pop {r0}
- bx r0
- .align 2, 0
-_080589FC: .4byte gMapHeader
- thumb_func_end sub_80589E8
-
- thumb_func_start sub_8058A00
-sub_8058A00: @ 8058A00
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r5, [r6]
- ldr r0, _08058A58 @ =0x03ff03ff
- str r0, [sp]
- ldr r4, _08058A5C @ =gUnknown_2031DFC
- ldr r2, _08058A60 @ =0x01001400
- mov r0, sp
- adds r1, r4, 0
- bl CpuFastSet
- ldr r2, _08058A64 @ =gUnknown_3005040
- str r4, [r2, 0x8]
- ldr r1, [r5]
- adds r1, 0xF
- str r1, [r2]
- ldr r0, [r5, 0x4]
- adds r0, 0xE
- str r0, [r2, 0x4]
- muls r1, r0
- movs r0, 0xA0
- lsls r0, 6
- cmp r1, r0
- ble _08058A3E
- ldr r0, _08058A68 @ =gUnknown_8352F18 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c"
- ldr r2, _08058A6C @ =gUnknown_8352F4C "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE"
- movs r1, 0x9E
- movs r3, 0x1
- bl AGBAssert
-_08058A3E:
- ldr r0, [r5, 0xC]
- ldrh r1, [r5]
- ldrh r2, [r5, 0x4]
- bl map_copy_with_padding
- adds r0, r6, 0
- bl mapheader_copy_mapdata_of_adjacent_maps
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08058A58: .4byte 0x03ff03ff
-_08058A5C: .4byte gUnknown_2031DFC
-_08058A60: .4byte 0x01001400
-_08058A64: .4byte gUnknown_3005040
-_08058A68: .4byte gUnknown_8352F18
-_08058A6C: .4byte gUnknown_8352F4C
- thumb_func_end sub_8058A00
-
- thumb_func_start map_copy_with_padding
-map_copy_with_padding: @ 8058A70
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _08058AC4 @ =gUnknown_3005040
- ldr r4, [r0, 0x8]
- ldr r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, 0xE
- adds r4, r0
- cmp r2, 0
- beq _08058AB8
- mov r0, r8
- lsls r6, r0, 1
- adds r5, r2, 0
- movs r0, 0x1E
- adds r0, r6
- mov r9, r0
-_08058AA4:
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
- bl CpuSet
- add r4, r9
- adds r7, r6
- subs r5, 0x1
- cmp r5, 0
- bne _08058AA4
-_08058AB8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058AC4: .4byte gUnknown_3005040
- thumb_func_end map_copy_with_padding
-
- thumb_func_start mapheader_copy_mapdata_of_adjacent_maps
-mapheader_copy_mapdata_of_adjacent_maps: @ 8058AC8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r2, _08058B00 @ =gUnknown_2036E24
- ldr r0, _08058B04 @ =gUnknown_8352EEC
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r6, 0xC]
- cmp r0, 0
- beq _08058B4C
- ldr r1, [r0]
- ldr r5, [r0, 0x4]
- cmp r1, 0
- ble _08058B4C
- adds r4, r2, 0
- adds r7, r1, 0
-_08058AE6:
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldr r2, [r5, 0x4]
- ldrb r0, [r5]
- cmp r0, 0x2
- beq _08058B1E
- cmp r0, 0x2
- bgt _08058B08
- cmp r0, 0x1
- beq _08058B12
- b _08058B44
- .align 2, 0
-_08058B00: .4byte gUnknown_2036E24
-_08058B04: .4byte gUnknown_8352EEC
-_08058B08:
- cmp r0, 0x3
- beq _08058B2A
- cmp r0, 0x4
- beq _08058B36
- b _08058B44
-_08058B12:
- adds r0, r6, 0
- bl fillSouthConnection
- ldrb r0, [r4]
- movs r1, 0x1
- b _08058B40
-_08058B1E:
- adds r0, r6, 0
- bl fillNorthConnection
- ldrb r0, [r4]
- movs r1, 0x2
- b _08058B40
-_08058B2A:
- adds r0, r6, 0
- bl fillWestConnection
- ldrb r0, [r4]
- movs r1, 0x4
- b _08058B40
-_08058B36:
- adds r0, r6, 0
- bl fillEastConnection
- ldrb r0, [r4]
- movs r1, 0x8
-_08058B40:
- orrs r0, r1
- strb r0, [r4]
-_08058B44:
- subs r7, 0x1
- adds r5, 0xC
- cmp r7, 0
- bne _08058AE6
-_08058B4C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end mapheader_copy_mapdata_of_adjacent_maps
-
- thumb_func_start sub_8058B54
-sub_8058B54: @ 8058B54
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, [sp, 0x18]
- ldr r4, [r2]
- ldr r7, [r4]
- adds r2, r7, 0
- muls r2, r5
- adds r2, r3
- lsls r2, 1
- ldr r3, [r4, 0xC]
- adds r6, r3, r2
- ldr r3, _08058BB0 @ =gUnknown_3005040
- ldr r2, [r3]
- muls r1, r2
- adds r1, r0
- lsls r1, 1
- ldr r0, [r3, 0x8]
- adds r5, r0, r1
- ldr r0, [sp, 0x20]
- cmp r0, 0
- ble _08058BA6
- adds r4, r0, 0
- ldr r3, _08058BB4 @ =0x001fffff
- mov r8, r3
-_08058B86:
- adds r0, r6, 0
- adds r1, r5, 0
- ldr r2, [sp, 0x1C]
- mov r3, r8
- ands r2, r3
- bl CpuSet
- ldr r0, _08058BB0 @ =gUnknown_3005040
- ldr r0, [r0]
- lsls r0, 1
- adds r5, r0
- lsls r0, r7, 1
- adds r6, r0
- subs r4, 0x1
- cmp r4, 0
- bne _08058B86
-_08058BA6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058BB0: .4byte gUnknown_3005040
-_08058BB4: .4byte 0x001fffff
- thumb_func_end sub_8058B54
-
- thumb_func_start fillSouthConnection
-fillSouthConnection: @ 8058BB8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _08058C12
- ldr r0, [r5]
- ldr r4, [r0]
- adds r2, 0x7
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- adds r7, r0, 0x7
- cmp r2, 0
- bge _08058BEC
- negs r6, r2
- adds r2, r4
- ldr r0, _08058BE8 @ =gUnknown_3005040
- ldr r3, [r0]
- cmp r2, r3
- bge _08058BE2
- adds r3, r2, 0
-_08058BE2:
- movs r2, 0
- b _08058BFC
- .align 2, 0
-_08058BE8: .4byte gUnknown_3005040
-_08058BEC:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058C1C @ =gUnknown_3005040
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058BFC
- adds r3, r4, 0
-_08058BFC:
- movs r0, 0
- str r0, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- adds r1, r7, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8058B54
-_08058C12:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058C1C: .4byte gUnknown_3005040
- thumb_func_end fillSouthConnection
-
- thumb_func_start fillNorthConnection
-fillNorthConnection: @ 8058C20
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _08058C74
- ldr r0, [r5]
- ldr r4, [r0]
- ldr r0, [r0, 0x4]
- adds r2, 0x7
- subs r7, r0, 0x7
- cmp r2, 0
- bge _08058C50
- negs r6, r2
- adds r2, r4
- ldr r0, _08058C4C @ =gUnknown_3005040
- ldr r3, [r0]
- cmp r2, r3
- bge _08058C46
- adds r3, r2, 0
-_08058C46:
- movs r2, 0
- b _08058C60
- .align 2, 0
-_08058C4C: .4byte gUnknown_3005040
-_08058C50:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058C7C @ =gUnknown_3005040
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058C60
- adds r3, r4, 0
-_08058C60:
- str r7, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8058B54
-_08058C74:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058C7C: .4byte gUnknown_3005040
- thumb_func_end fillNorthConnection
-
- thumb_func_start fillWestConnection
-fillWestConnection: @ 8058C80
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _08058CD4
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r4, [r0, 0x4]
- adds r2, 0x7
- subs r7, r1, 0x7
- cmp r2, 0
- bge _08058CB0
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _08058CAC @ =gUnknown_3005040
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _08058CA6
- adds r3, r1, 0
-_08058CA6:
- movs r2, 0
- b _08058CC0
- .align 2, 0
-_08058CAC: .4byte gUnknown_3005040
-_08058CB0:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058CDC @ =gUnknown_3005040
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058CC0
- adds r3, r4, 0
-_08058CC0:
- str r6, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r0, 0
- adds r1, r2, 0
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8058B54
-_08058CD4:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058CDC: .4byte gUnknown_3005040
- thumb_func_end fillWestConnection
-
- thumb_func_start fillEastConnection
-fillEastConnection: @ 8058CE0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _08058D38
- ldr r0, [r5]
- ldr r4, [r0, 0x4]
- ldr r0, [r3]
- ldr r0, [r0]
- adds r7, r0, 0x7
- adds r2, 0x7
- cmp r2, 0
- bge _08058D14
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _08058D10 @ =gUnknown_3005040
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _08058D0A
- adds r3, r1, 0
-_08058D0A:
- movs r2, 0
- b _08058D24
- .align 2, 0
-_08058D10: .4byte gUnknown_3005040
-_08058D14:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08058D40 @ =gUnknown_3005040
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _08058D24
- adds r3, r4, 0
-_08058D24:
- str r6, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_8058B54
-_08058D38:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08058D40: .4byte gUnknown_3005040
- thumb_func_end fillEastConnection
-
- thumb_func_start MapGridGetZCoordAt
-MapGridGetZCoordAt: @ 8058D44
- push {r4-r7,lr}
- adds r2, r0, 0
- adds r7, r1, 0
- cmp r2, 0
- blt _08058D74
- ldr r1, _08058D70 @ =gUnknown_3005040
- ldr r3, [r1]
- cmp r2, r3
- bge _08058D74
- cmp r7, 0
- blt _08058D74
- ldr r0, [r1, 0x4]
- cmp r7, r0
- bge _08058D74
- adds r0, r3, 0
- muls r0, r7
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _08058DA8
- .align 2, 0
-_08058D70: .4byte gUnknown_3005040
-_08058D74:
- ldr r0, _08058DB4 @ =gMapHeader
- ldr r6, [r0]
- subs r0, r2, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- subs r0, r7, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08058DA8:
- ldr r0, _08058DB8 @ =0x000003ff
- cmp r1, r0
- beq _08058DBC
- lsrs r0, r1, 12
- b _08058DBE
- .align 2, 0
-_08058DB4: .4byte gMapHeader
-_08058DB8: .4byte 0x000003ff
-_08058DBC:
- movs r0, 0
-_08058DBE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MapGridGetZCoordAt
-
- thumb_func_start sub_8058DC4
-sub_8058DC4: @ 8058DC4
- push {r4-r7,lr}
- adds r2, r0, 0
- adds r7, r1, 0
- cmp r2, 0
- blt _08058DF4
- ldr r1, _08058DF0 @ =gUnknown_3005040
- ldr r3, [r1]
- cmp r2, r3
- bge _08058DF4
- cmp r7, 0
- blt _08058DF4
- ldr r0, [r1, 0x4]
- cmp r7, r0
- bge _08058DF4
- adds r0, r3, 0
- muls r0, r7
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _08058E28
- .align 2, 0
-_08058DF0: .4byte gUnknown_3005040
-_08058DF4:
- ldr r0, _08058E38 @ =gMapHeader
- ldr r6, [r0]
- subs r0, r2, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- subs r0, r7, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08058E28:
- ldr r0, _08058E3C @ =0x000003ff
- cmp r1, r0
- beq _08058E40
- movs r0, 0xC0
- lsls r0, 4
- ands r1, r0
- lsrs r0, r1, 10
- b _08058E42
- .align 2, 0
-_08058E38: .4byte gMapHeader
-_08058E3C: .4byte 0x000003ff
-_08058E40:
- movs r0, 0x1
-_08058E42:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8058DC4
-
- thumb_func_start sub_8058E48
-sub_8058E48: @ 8058E48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- mov r9, r1
- cmp r0, 0
- blt _08058E80
- ldr r1, _08058E7C @ =gUnknown_3005040
- ldr r2, [r1]
- cmp r8, r2
- bge _08058E80
- mov r0, r9
- cmp r0, 0
- blt _08058E80
- ldr r0, [r1, 0x4]
- cmp r9, r0
- bge _08058E80
- mov r0, r9
- muls r0, r2
- add r0, r8
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- b _08058EBA
- .align 2, 0
-_08058E7C: .4byte gUnknown_3005040
-_08058E80:
- ldr r0, _08058EC8 @ =gMapHeader
- ldr r6, [r0]
- mov r0, r8
- subs r0, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- mov r0, r9
- subs r0, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- adds r7, r0, 0
- orrs r7, r1
-_08058EBA:
- ldr r0, _08058ECC @ =0x000003ff
- cmp r7, r0
- beq _08058ED0
- ands r7, r0
- adds r0, r7, 0
- b _08058F0A
- .align 2, 0
-_08058EC8: .4byte gMapHeader
-_08058ECC: .4byte 0x000003ff
-_08058ED0:
- ldr r0, _08058F18 @ =gMapHeader
- ldr r6, [r0]
- mov r0, r8
- subs r0, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- mov r0, r9
- subs r0, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r1, r2, 0
- orrs r0, r1
- ands r0, r7
-_08058F0A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08058F18: .4byte gMapHeader
- thumb_func_end sub_8058E48
-
- thumb_func_start sub_8058F1C
-sub_8058F1C: @ 8058F1C
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- cmp r3, 0x7
- bhi _08058F3A
- ldr r1, _08058F40 @ =gUnknown_8352EF0
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- ldr r0, _08058F44 @ =gUnknown_8352F10
- adds r0, r3, r0
- ldrb r0, [r0]
- lsrs r2, r0
-_08058F3A:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08058F40: .4byte gUnknown_8352EF0
-_08058F44: .4byte gUnknown_8352F10
- thumb_func_end sub_8058F1C
-
- thumb_func_start sub_8058F48
-sub_8058F48: @ 8058F48
- push {r4,lr}
- adds r4, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl sub_8058E48
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08058F74 @ =gMapHeader
- ldr r0, [r0]
- adds r2, r4, 0
- bl sub_8059080
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058F74: .4byte gMapHeader
- thumb_func_end sub_8058F48
-
- thumb_func_start MapGridGetMetatileBehaviorAt
-MapGridGetMetatileBehaviorAt: @ 8058F78
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- bl sub_8058F48
- pop {r1}
- bx r1
- thumb_func_end MapGridGetMetatileBehaviorAt
-
- thumb_func_start sub_8058F8C
-sub_8058F8C: @ 8058F8C
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x6
- bl sub_8058F48
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8058F8C
-
- thumb_func_start MapGridSetMetatileIdAt
-MapGridSetMetatileIdAt: @ 8058FA4
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08058FDC
- ldr r2, _08058FE4 @ =gUnknown_3005040
- ldr r4, [r2]
- cmp r3, r4
- bge _08058FDC
- cmp r1, 0
- blt _08058FDC
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08058FDC
- muls r1, r4
- adds r1, r3, r1
- ldr r0, [r2, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- movs r2, 0xF0
- lsls r2, 8
- ands r2, r0
- ldr r0, _08058FE8 @ =0x00000fff
- ands r0, r5
- orrs r2, r0
- strh r2, [r1]
-_08058FDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08058FE4: .4byte gUnknown_3005040
-_08058FE8: .4byte 0x00000fff
- thumb_func_end MapGridSetMetatileIdAt
-
- thumb_func_start MapGridSetMetatileEntryAt
-MapGridSetMetatileEntryAt: @ 8058FEC
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08059018
- ldr r2, _08059020 @ =gUnknown_3005040
- ldr r4, [r2]
- cmp r3, r4
- bge _08059018
- cmp r1, 0
- blt _08059018
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08059018
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3, r0
- ldr r1, [r2, 0x8]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
-_08059018:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059020: .4byte gUnknown_3005040
- thumb_func_end MapGridSetMetatileEntryAt
-
- thumb_func_start sub_8059024
-sub_8059024: @ 8059024
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- adds r5, r2, 0
- cmp r4, 0
- blt _08059076
- ldr r2, _08059060 @ =gUnknown_3005040
- ldr r1, [r2]
- cmp r4, r1
- bge _08059076
- cmp r3, 0
- blt _08059076
- ldr r0, [r2, 0x4]
- cmp r3, r0
- bge _08059076
- cmp r5, 0
- beq _08059064
- adds r0, r1, 0
- muls r0, r3
- adds r0, r4, r0
- ldr r1, [r2, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- b _08059076
- .align 2, 0
-_08059060: .4byte gUnknown_3005040
-_08059064:
- muls r1, r3
- adds r1, r4, r1
- ldr r0, [r2, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r2, [r1]
- ldr r0, _0805907C @ =0x0000f3ff
- ands r0, r2
- strh r0, [r1]
-_08059076:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805907C: .4byte 0x0000f3ff
- thumb_func_end sub_8059024
-
- thumb_func_start sub_8059080
-sub_8059080: @ 8059080
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- adds r5, r3, 0
- lsls r2, 24
- lsrs r2, 24
- adds r6, r2, 0
- ldr r0, _080590A4 @ =0x0000027f
- cmp r3, r0
- bhi _080590A8
- ldr r0, [r4, 0x10]
- ldr r1, [r0, 0x14]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- b _080590C8
- .align 2, 0
-_080590A4: .4byte 0x0000027f
-_080590A8:
- ldr r0, _080590B4 @ =0x000003ff
- cmp r3, r0
- bls _080590B8
- movs r0, 0xFF
- b _080590CC
- .align 2, 0
-_080590B4: .4byte 0x000003ff
-_080590B8:
- ldr r0, [r4, 0x14]
- ldr r1, [r0, 0x14]
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _080590D4 @ =0xfffff600
- adds r0, r1
- ldr r0, [r0]
- adds r1, r6, 0
-_080590C8:
- bl sub_8058F1C
-_080590CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080590D4: .4byte 0xfffff600
- thumb_func_end sub_8059080
-
- thumb_func_start sub_80590D8
-sub_80590D8: @ 80590D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08059144 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _08059148 @ =0x00000898
- adds r4, r0, r1
- ldr r0, _0805914C @ =gUnknown_3005040
- ldr r0, [r0]
- mov r8, r0
- ldr r0, _08059150 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0
- ldrsh r6, [r0, r2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _08059138
- mov r12, r1
- ldr r2, _08059154 @ =gUnknown_2031DFC
- mov r9, r2
- lsls r7, r6, 1
-_0805910A:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r5, r0, 0x1
- cmp r1, r3
- bge _08059132
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_08059124:
- ldrh r0, [r2]
- strh r0, [r4]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _08059124
-_08059132:
- adds r0, r5, 0
- cmp r0, r12
- blt _0805910A
-_08059138:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08059144: .4byte gSaveBlock2Ptr
-_08059148: .4byte 0x00000898
-_0805914C: .4byte gUnknown_3005040
-_08059150: .4byte gSaveBlock1Ptr
-_08059154: .4byte gUnknown_2031DFC
- thumb_func_end sub_80590D8
-
- thumb_func_start sub_8059158
-sub_8059158: @ 8059158
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r0, _08059184 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r4, _08059188 @ =0x00000898
- adds r3, r0, r4
- ldr r4, _0805918C @ =0x000001ff
-_08059168:
- lsls r0, r1, 1
- adds r0, r3, r0
- ldrh r0, [r0]
- orrs r2, r0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bls _08059168
- cmp r2, 0
- beq _08059190
- movs r0, 0
- b _08059192
- .align 2, 0
-_08059184: .4byte gSaveBlock2Ptr
-_08059188: .4byte 0x00000898
-_0805918C: .4byte 0x000001ff
-_08059190:
- movs r0, 0x1
-_08059192:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8059158
-
- thumb_func_start sub_8059198
-sub_8059198: @ 8059198
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080591B8 @ =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, _080591BC @ =0x00000898
- adds r1, r0
- ldr r2, _080591C0 @ =0x01000100
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080591B8: .4byte gSaveBlock2Ptr
-_080591BC: .4byte 0x00000898
-_080591C0: .4byte 0x01000100
- thumb_func_end sub_8059198
-
- thumb_func_start sub_80591C4
-sub_80591C4: @ 80591C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0805923C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _08059240 @ =0x00000898
- adds r4, r0, r1
- bl sub_8059158
- cmp r0, 0
- bne _08059230
- ldr r0, _08059244 @ =gUnknown_3005040
- ldr r0, [r0]
- mov r8, r0
- ldr r0, _08059248 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0
- ldrsh r6, [r0, r2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _0805922C
- mov r12, r1
- ldr r2, _0805924C @ =gUnknown_2031DFC
- mov r9, r2
- lsls r7, r6, 1
-_080591FE:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r5, r0, 0x1
- cmp r1, r3
- bge _08059226
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_08059218:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _08059218
-_08059226:
- adds r0, r5, 0
- cmp r0, r12
- blt _080591FE
-_0805922C:
- bl sub_8059198
-_08059230:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805923C: .4byte gSaveBlock2Ptr
-_08059240: .4byte 0x00000898
-_08059244: .4byte gUnknown_3005040
-_08059248: .4byte gSaveBlock1Ptr
-_0805924C: .4byte gUnknown_2031DFC
- thumb_func_end sub_80591C4
-
- thumb_func_start sub_8059250
-sub_8059250: @ 8059250
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _0805929C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, _080592A0 @ =0x00000898
- adds r3, r0, r3
- str r3, [sp, 0x4]
- ldr r0, _080592A4 @ =gUnknown_3005040
- ldr r0, [r0]
- str r0, [sp]
- movs r4, 0
- mov r9, r4
- mov r8, r4
- ldr r0, _080592A8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r3, 0
- ldrsh r6, [r0, r3]
- str r6, [sp, 0x8]
- movs r4, 0x2
- ldrsh r5, [r0, r4]
- movs r7, 0xF
- movs r6, 0xE
- mov r12, r6
- cmp r1, 0x2
- beq _080592B6
- cmp r1, 0x2
- bgt _080592AC
- cmp r1, 0x1
- beq _080592BE
- b _080592D6
- .align 2, 0
-_0805929C: .4byte gSaveBlock2Ptr
-_080592A0: .4byte 0x00000898
-_080592A4: .4byte gUnknown_3005040
-_080592A8: .4byte gSaveBlock1Ptr
-_080592AC:
- cmp r2, 0x3
- beq _080592C8
- cmp r2, 0x4
- beq _080592D0
- b _080592D6
-_080592B6:
- adds r5, 0x1
- movs r0, 0xD
- mov r12, r0
- b _080592D6
-_080592BE:
- movs r1, 0x1
- mov r8, r1
- movs r3, 0xD
- mov r12, r3
- b _080592D6
-_080592C8:
- ldr r4, [sp, 0x8]
- adds r4, 0x1
- str r4, [sp, 0x8]
- b _080592D4
-_080592D0:
- movs r6, 0x1
- mov r9, r6
-_080592D4:
- movs r7, 0xE
-_080592D6:
- movs r1, 0
- cmp r1, r12
- bge _0805931A
- ldr r0, _08059330 @ =gUnknown_2031DFC
- mov r10, r0
-_080592E0:
- adds r4, r1, 0x1
- cmp r7, 0
- beq _08059314
- adds r0, r1, r5
- ldr r3, [sp]
- adds r2, r3, 0
- muls r2, r0
- add r1, r8
- lsls r0, r1, 4
- subs r0, r1
- add r0, r9
- ldr r6, [sp, 0x8]
- adds r2, r6, r2
- adds r3, r7, 0
- lsls r2, 1
- add r2, r10
- lsls r0, 1
- ldr r6, [sp, 0x4]
- adds r1, r0, r6
-_08059306:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08059306
-_08059314:
- adds r1, r4, 0
- cmp r1, r12
- blt _080592E0
-_0805931A:
- bl sub_8059198
- 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
-_08059330: .4byte gUnknown_2031DFC
- thumb_func_end sub_8059250
-
- thumb_func_start sub_8059334
-sub_8059334: @ 8059334
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- mov r8, r1
- cmp r7, 0
- blt _08059374
- ldr r1, _0805936C @ =gUnknown_3005040
- ldr r2, [r1]
- cmp r7, r2
- bge _08059374
- mov r0, r8
- cmp r0, 0
- blt _08059374
- ldr r0, [r1, 0x4]
- cmp r8, r0
- bge _08059374
- mov r0, r8
- muls r0, r2
- adds r0, r7, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08059370 @ =0x000003ff
- cmp r1, r0
- beq _08059422
- b _080593B0
- .align 2, 0
-_0805936C: .4byte gUnknown_3005040
-_08059370: .4byte 0x000003ff
-_08059374:
- ldr r0, _080593CC @ =gMapHeader
- ldr r6, [r0]
- subs r0, r7, 0x7
- ldrb r5, [r6, 0x18]
- lsls r1, r5, 3
- adds r0, r1
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- mov r0, r8
- subs r0, 0x7
- ldrb r1, [r6, 0x19]
- lsls r2, r1, 3
- adds r0, r2
- bl __modsi3
- muls r0, r5
- adds r4, r0
- ldr r0, [r6, 0x8]
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r0, r1
- ldr r1, _080593D0 @ =0x000003ff
- cmp r0, r1
- beq _08059422
-_080593B0:
- ldr r1, _080593D4 @ =gUnknown_3005040
- ldr r0, [r1]
- subs r0, 0x8
- cmp r7, r0
- blt _080593DC
- ldr r0, _080593D8 @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08059422
- movs r0, 0x4
- b _08059432
- .align 2, 0
-_080593CC: .4byte gMapHeader
-_080593D0: .4byte 0x000003ff
-_080593D4: .4byte gUnknown_3005040
-_080593D8: .4byte gUnknown_2036E24
-_080593DC:
- cmp r7, 0x6
- bgt _080593F4
- ldr r0, _080593F0 @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08059422
- movs r0, 0x3
- b _08059432
- .align 2, 0
-_080593F0: .4byte gUnknown_2036E24
-_080593F4:
- ldr r0, [r1, 0x4]
- subs r0, 0x7
- cmp r8, r0
- blt _08059410
- ldr r0, _0805940C @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08059422
- movs r0, 0x1
- b _08059432
- .align 2, 0
-_0805940C: .4byte gUnknown_2036E24
-_08059410:
- mov r0, r8
- cmp r0, 0x6
- bgt _08059430
- ldr r0, _08059428 @ =gUnknown_2036E24
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0805942C
-_08059422:
- movs r0, 0x1
- negs r0, r0
- b _08059432
- .align 2, 0
-_08059428: .4byte gUnknown_2036E24
-_0805942C:
- movs r0, 0x2
- b _08059432
-_08059430:
- movs r0, 0
-_08059432:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8059334
-
- thumb_func_start GetPostCameraMoveMapBorderId
-GetPostCameraMoveMapBorderId: @ 805943C
- push {r4,lr}
- adds r3, r1, 0
- ldr r1, _08059460 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- movs r4, 0
- ldrsh r2, [r1, r4]
- adds r0, 0x7
- adds r2, r0
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- adds r3, 0x7
- adds r1, r3
- adds r0, r2, 0
- bl sub_8059334
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08059460: .4byte gSaveBlock1Ptr
- thumb_func_end GetPostCameraMoveMapBorderId
-
- thumb_func_start CanCameraMoveInDirection
-CanCameraMoveInDirection: @ 8059464
- push {r4,r5,lr}
- ldr r1, _0805949C @ =gSaveBlock1Ptr
- ldr r4, [r1]
- movs r1, 0
- ldrsh r3, [r4, r1]
- ldr r2, _080594A0 @ =gUnknown_826D2D8
- lsls r0, 3
- adds r1, r0, r2
- ldr r1, [r1]
- adds r1, 0x7
- adds r3, r1
- movs r5, 0x2
- ldrsh r1, [r4, r5]
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- adds r0, 0x7
- adds r1, r0
- adds r0, r3, 0
- bl sub_8059334
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080594A4
- movs r0, 0x1
- b _080594A6
- .align 2, 0
-_0805949C: .4byte gSaveBlock1Ptr
-_080594A0: .4byte gUnknown_826D2D8
-_080594A4:
- movs r0, 0
-_080594A6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CanCameraMoveInDirection
-
- thumb_func_start sub_80594AC
-sub_80594AC: @ 80594AC
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- cmp r4, 0x2
- beq _08059514
- cmp r4, 0x2
- bgt _080594CA
- cmp r4, 0x1
- beq _08059500
- b _08059526
-_080594CA:
- cmp r4, 0x3
- beq _080594E8
- cmp r4, 0x4
- bne _08059526
- ldr r0, _080594E4 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- negs r0, r6
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08059524
- .align 2, 0
-_080594E4: .4byte gSaveBlock1Ptr
-_080594E8:
- ldr r0, _080594FC @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, [r3]
- ldr r0, [r0]
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08059524
- .align 2, 0
-_080594FC: .4byte gSaveBlock1Ptr
-_08059500:
- ldr r0, _08059510 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- negs r0, r7
- b _08059524
- .align 2, 0
-_08059510: .4byte gSaveBlock1Ptr
-_08059514:
- ldr r0, _0805952C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
-_08059524:
- strh r0, [r1, 0x2]
-_08059526:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805952C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80594AC
-
- thumb_func_start CameraMove
-CameraMove: @ 8059530
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- mov r9, r1
- ldr r1, _08059570 @ =gUnknown_2036E18
- ldrb r0, [r1]
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- ldr r2, _08059570 @ =gUnknown_2036E18
- strb r1, [r2]
- mov r0, r10
- mov r1, r9
- bl GetPostCameraMoveMapBorderId
- adds r7, r0, 0
- adds r0, r7, 0x1
- cmp r0, 0x1
- bhi _08059578
- ldr r0, _08059574 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrh r0, [r1]
- add r0, r10
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- add r0, r9
- strh r0, [r1, 0x2]
- b _080595E2
- .align 2, 0
-_08059570: .4byte gUnknown_2036E18
-_08059574: .4byte gSaveBlock1Ptr
-_08059578:
- bl sub_80590D8
- ldr r1, _080595F8 @ =gSaveBlock1Ptr
- ldr r0, [r1]
- movs r2, 0
- ldrsh r5, [r0, r2]
- movs r1, 0x2
- ldrsh r6, [r0, r1]
- lsls r2, r7, 24
- lsrs r2, 24
- mov r8, r2
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8059600
- adds r4, r0, 0
- adds r1, r7, 0
- mov r2, r10
- mov r3, r9
- bl sub_80594AC
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- bl sub_8055864
- ldr r1, _080595FC @ =gUnknown_2036E18
- ldrb r0, [r1]
- movs r1, 0x1
- orrs r0, r1
- ldr r2, _080595FC @ =gUnknown_2036E18
- strb r0, [r2]
- ldr r0, _080595F8 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r2, 0
- ldrsh r0, [r1, r2]
- subs r5, r0
- ldr r0, _080595FC @ =gUnknown_2036E18
- str r5, [r0, 0x4]
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- subs r6, r0
- ldr r0, _080595FC @ =gUnknown_2036E18
- str r6, [r0, 0x8]
- ldrh r0, [r1]
- add r0, r10
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- add r0, r9
- strh r0, [r1, 0x2]
- mov r0, r8
- bl sub_8059250
-_080595E2:
- ldr r0, _080595FC @ =gUnknown_2036E18
- ldrb r0, [r0]
- lsls r0, 31
- 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
-_080595F8: .4byte gSaveBlock1Ptr
-_080595FC: .4byte gUnknown_2036E18
- thumb_func_end CameraMove
-
- thumb_func_start sub_8059600
-sub_8059600: @ 8059600
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r1
- mov r8, r2
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0805963C @ =gMapHeader
- ldr r0, [r0, 0xC]
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r5, 0
- cmp r5, r7
- bge _08059648
-_0805961E:
- ldrb r0, [r4]
- cmp r0, r6
- bne _08059640
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- adds r3, r4, 0
- bl sub_8059658
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08059640
- adds r0, r4, 0
- b _0805964A
- .align 2, 0
-_0805963C: .4byte gMapHeader
-_08059640:
- adds r5, 0x1
- adds r4, 0xC
- cmp r5, r7
- blt _0805961E
-_08059648:
- movs r0, 0
-_0805964A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8059600
-
- thumb_func_start sub_8059658
-sub_8059658: @ 8059658
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- mov r8, r2
- adds r5, r3, 0
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r2, r0, 0
- cmp r4, 0x1
- blt _080596B0
- cmp r4, 0x2
- bgt _08059690
- ldr r0, _0805968C @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r0, [r2]
- ldr r2, [r0]
- ldr r3, [r5, 0x4]
- adds r0, r7, 0
- b _080596A2
- .align 2, 0
-_0805968C: .4byte gMapHeader
-_08059690:
- cmp r6, 0x4
- bgt _080596B0
- ldr r0, _080596AC @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- ldr r0, [r2]
- ldr r2, [r0, 0x4]
- ldr r3, [r5, 0x4]
- mov r0, r8
-_080596A2:
- bl sub_80596BC
- lsls r0, 24
- lsrs r0, 24
- b _080596B2
- .align 2, 0
-_080596AC: .4byte gMapHeader
-_080596B0:
- movs r0, 0
-_080596B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8059658
-
- thumb_func_start sub_80596BC
-sub_80596BC: @ 80596BC
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r2, 0
- adds r2, r3, 0
- cmp r3, 0
- bge _080596CA
- movs r3, 0
-_080596CA:
- adds r2, r0, r2
- cmp r2, r1
- bge _080596D2
- adds r1, r2, 0
-_080596D2:
- cmp r3, r4
- bgt _080596DE
- cmp r4, r1
- bgt _080596DE
- movs r0, 0x1
- b _080596E0
-_080596DE:
- movs r0, 0
-_080596E0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80596BC
-
- thumb_func_start sub_80596E8
-sub_80596E8: @ 80596E8
- push {lr}
- cmp r0, 0
- blt _080596F6
- cmp r0, r1
- bge _080596F6
- movs r0, 0x1
- b _080596F8
-_080596F6:
- movs r0, 0
-_080596F8:
- pop {r1}
- bx r1
- thumb_func_end sub_80596E8
-
- thumb_func_start sub_80596FC
-sub_80596FC: @ 80596FC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x1
- blt _08059734
- cmp r0, 0x2
- bgt _08059722
- ldr r0, [r4, 0x4]
- subs r0, r5, r0
- ldr r1, [r1]
- ldr r1, [r1]
- bl sub_80596E8
- b _08059736
-_08059722:
- cmp r0, 0x4
- bgt _08059734
- ldr r0, [r4, 0x4]
- subs r0, r6, r0
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- bl sub_80596E8
- b _08059736
-_08059734:
- movs r0, 0
-_08059736:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80596FC
-
- thumb_func_start sub_805973C
-sub_805973C: @ 805973C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0805975C @ =gMapHeader
- ldr r0, [r2, 0xC]
- cmp r0, 0
- bne _08059764
- b _080597DA
- .align 2, 0
-_0805975C: .4byte gMapHeader
-_08059760:
- adds r0, r4, 0
- b _080597DC
-_08059764:
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r6, 0
- cmp r6, r7
- bge _080597DA
- lsls r0, r1, 16
- asrs r5, r0, 16
- mov r9, r2
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- mov r10, r0
-_0805977C:
- ldrb r1, [r4]
- adds r3, r1, 0
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080597D2
- cmp r1, 0x2
- bne _08059792
- cmp r5, 0x6
- bgt _080597D2
-_08059792:
- cmp r1, 0x1
- bne _080597A2
- mov r2, r9
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r0, 0x7
- cmp r5, r0
- blt _080597D2
-_080597A2:
- mov r0, r8
- lsls r2, r0, 16
- cmp r1, 0x3
- bne _080597B0
- mov r1, r10
- cmp r1, 0x6
- bgt _080597D2
-_080597B0:
- cmp r3, 0x4
- bne _080597C2
- asrs r1, r2, 16
- mov r3, r9
- ldr r0, [r3]
- ldr r0, [r0]
- adds r0, 0x7
- cmp r1, r0
- blt _080597D2
-_080597C2:
- asrs r1, r2, 16
- subs r1, 0x7
- adds r0, r4, 0
- subs r2, r5, 0x7
- bl sub_80596FC
- cmp r0, 0x1
- beq _08059760
-_080597D2:
- adds r6, 0x1
- adds r4, 0xC
- cmp r6, r7
- blt _0805977C
-_080597DA:
- movs r0, 0
-_080597DC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805973C
-
- thumb_func_start sub_80597EC
-sub_80597EC: @ 80597EC
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08059804 @ =gSaveBlock1Ptr
- ldr r2, [r2]
- subs r0, 0x7
- strh r0, [r2]
- subs r1, 0x7
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_08059804: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80597EC
-
- thumb_func_start sav1_camera_get_focus_coords
-sav1_camera_get_focus_coords: @ 8059808
- ldr r2, _0805981C @ =gSaveBlock1Ptr
- ldr r3, [r2]
- ldrh r2, [r3]
- adds r2, 0x7
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- adds r0, 0x7
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0805981C: .4byte gSaveBlock1Ptr
- thumb_func_end sav1_camera_get_focus_coords
-
- thumb_func_start SetCameraCoords
-SetCameraCoords: @ 8059820
- ldr r2, _0805982C @ =gSaveBlock1Ptr
- ldr r2, [r2]
- strh r0, [r2]
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_0805982C: .4byte gSaveBlock1Ptr
- thumb_func_end SetCameraCoords
-
- thumb_func_start GetCameraCoords
-GetCameraCoords: @ 8059830
- ldr r2, _08059840 @ =gSaveBlock1Ptr
- ldr r3, [r2]
- ldrh r2, [r3]
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08059840: .4byte gSaveBlock1Ptr
- thumb_func_end GetCameraCoords
-
- thumb_func_start copy_tileset_patterns_to_vram
-copy_tileset_patterns_to_vram: @ 8059844
- push {r4-r7,lr}
- sub sp, 0x4
- adds r3, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- lsls r2, 16
- lsrs r5, r2, 16
- adds r7, r5, 0
- cmp r3, 0
- beq _08059880
- ldrb r0, [r3]
- cmp r0, 0
- bne _08059870
- ldr r1, [r3, 0x4]
- lsls r2, r4, 21
- lsrs r2, 16
- movs r0, 0x2
- adds r3, r5, 0
- bl LoadBgTiles
- b _08059880
-_08059870:
- ldr r1, [r3, 0x4]
- lsls r2, r6, 5
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- adds r3, r7, 0
- bl sub_80F68F0
-_08059880:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end copy_tileset_patterns_to_vram
-
- thumb_func_start copy_tileset_patterns_to_vram2
-copy_tileset_patterns_to_vram2: @ 8059888
- push {r4-r7,lr}
- sub sp, 0x4
- adds r3, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- lsls r2, 16
- lsrs r5, r2, 16
- adds r7, r5, 0
- cmp r3, 0
- beq _080598C4
- ldrb r0, [r3]
- cmp r0, 0
- bne _080598B4
- ldr r1, [r3, 0x4]
- lsls r2, r4, 21
- lsrs r2, 16
- movs r0, 0x2
- adds r3, r5, 0
- bl LoadBgTiles
- b _080598C4
-_080598B4:
- ldr r1, [r3, 0x4]
- lsls r2, r6, 5
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- adds r3, r7, 0
- bl sub_80F69E8
-_080598C4:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end copy_tileset_patterns_to_vram2
-
- thumb_func_start sub_80598CC
-sub_80598CC: @ 80598CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _080598EC @ =gUnknown_2036E28
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080598F0
- cmp r0, 0x1
- ble _0805993A
- cmp r0, 0x2
- beq _08059904
- cmp r0, 0x3
- beq _08059918
- b _0805993A
- .align 2, 0
-_080598EC: .4byte gUnknown_2036E28
-_080598F0:
- lsls r4, 1
- ldr r0, _08059900 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_GrayScale
- b _0805992C
- .align 2, 0
-_08059900: .4byte gPlttBufferUnfaded
-_08059904:
- lsls r4, 1
- ldr r0, _08059914 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_SepiaTone
- b _0805992C
- .align 2, 0
-_08059914: .4byte gPlttBufferUnfaded
-_08059918:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8111F38
- lsls r4, 1
- ldr r0, _08059940 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_GrayScale
-_0805992C:
- ldr r0, _08059940 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- ldr r1, _08059944 @ =gPlttBufferFaded
- adds r1, r4, r1
- adds r2, r5, 0
- bl CpuSet
-_0805993A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059940: .4byte gPlttBufferUnfaded
-_08059944: .4byte gPlttBufferFaded
- thumb_func_end sub_80598CC
-
- thumb_func_start sub_8059948
-sub_8059948: @ 8059948
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _08059968 @ =gUnknown_2036E28
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0805996C
- cmp r0, 0x1
- ble _080599B8
- cmp r0, 0x2
- beq _08059980
- cmp r0, 0x3
- beq _08059994
- b _080599B8
- .align 2, 0
-_08059968: .4byte gUnknown_2036E28
-_0805996C:
- lsls r4, 5
- ldr r0, _0805997C @ =gPlttBufferUnfaded
- adds r0, r4, r0
- lsls r1, r6, 4
- bl TintPalette_GrayScale
- b _080599AA
- .align 2, 0
-_0805997C: .4byte gPlttBufferUnfaded
-_08059980:
- lsls r4, 5
- ldr r0, _08059990 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- lsls r1, r6, 4
- bl TintPalette_SepiaTone
- b _080599AA
- .align 2, 0
-_08059990: .4byte gPlttBufferUnfaded
-_08059994:
- lsls r0, r4, 4
- lsls r5, r6, 4
- adds r1, r5, 0
- bl sub_8111F38
- lsls r4, 5
- ldr r0, _080599C0 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- adds r1, r5, 0
- bl TintPalette_GrayScale
-_080599AA:
- ldr r0, _080599C0 @ =gPlttBufferUnfaded
- adds r0, r4, r0
- ldr r1, _080599C4 @ =gPlttBufferFaded
- adds r1, r4, r1
- lsls r2, r6, 3
- bl CpuFastSet
-_080599B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080599C0: .4byte gPlttBufferUnfaded
-_080599C4: .4byte gPlttBufferFaded
- thumb_func_end sub_8059948
-
- thumb_func_start apply_map_tileset_palette
-apply_map_tileset_palette: @ 80599C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- mov r8, r5
- lsls r6, r2, 16
- lsrs r7, r6, 16
- adds r2, r7, 0
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- cmp r4, 0
- beq _08059A46
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08059A1C
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x2
- bl LoadPalette
- ldr r0, [r4, 0x8]
- adds r0, 0x2
- adds r5, 0x1
- lsls r5, 16
- lsrs r5, 16
- subs r4, r7, 0x2
- lsls r2, r4, 16
- lsrs r2, 16
- adds r1, r5, 0
- bl LoadPalette
- lsls r4, 15
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80598CC
- b _08059A46
-_08059A1C:
- cmp r0, 0x1
- bne _08059A36
- ldr r0, [r4, 0x8]
- adds r0, 0xE0
- adds r1, r5, 0
- adds r2, r7, 0
- bl LoadPalette
- lsrs r1, r6, 17
- adds r0, r5, 0
- bl sub_80598CC
- b _08059A46
-_08059A36:
- ldr r0, [r4, 0x8]
- mov r1, r8
- bl LoadCompressedPalette
- lsrs r1, r6, 17
- mov r0, r8
- bl sub_80598CC
-_08059A46:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset_palette
-
- thumb_func_start sub_8059A54
-sub_8059A54: @ 8059A54
- push {lr}
- ldr r0, [r0, 0x10]
- movs r1, 0xA0
- lsls r1, 2
- movs r2, 0
- bl copy_tileset_patterns_to_vram
- pop {r0}
- bx r0
- thumb_func_end sub_8059A54
-
- thumb_func_start sub_8059A68
-sub_8059A68: @ 8059A68
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0xC0
- lsls r1, 1
- movs r2, 0xA0
- lsls r2, 2
- bl copy_tileset_patterns_to_vram
- pop {r0}
- bx r0
- thumb_func_end sub_8059A68
-
- thumb_func_start copy_map_tileset2_to_vram_2
-copy_map_tileset2_to_vram_2: @ 8059A7C
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0xC0
- lsls r1, 1
- movs r2, 0xA0
- lsls r2, 2
- bl copy_tileset_patterns_to_vram2
- pop {r0}
- bx r0
- thumb_func_end copy_map_tileset2_to_vram_2
-
- thumb_func_start sub_8059A90
-sub_8059A90: @ 8059A90
- push {lr}
- ldr r0, [r0, 0x10]
- movs r1, 0
- movs r2, 0xE0
- bl apply_map_tileset_palette
- pop {r0}
- bx r0
- thumb_func_end sub_8059A90
-
- thumb_func_start sub_8059AA0
-sub_8059AA0: @ 8059AA0
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0x70
- movs r2, 0xC0
- bl apply_map_tileset_palette
- pop {r0}
- bx r0
- thumb_func_end sub_8059AA0
-
- thumb_func_start copy_map_tileset1_tileset2_to_vram
-copy_map_tileset1_tileset2_to_vram: @ 8059AB0
- push {r4,r5,lr}
- adds r5, r0, 0
- cmp r5, 0
- beq _08059AD2
- ldr r0, [r5, 0x10]
- movs r4, 0xA0
- lsls r4, 2
- adds r1, r4, 0
- movs r2, 0
- bl copy_tileset_patterns_to_vram2
- ldr r0, [r5, 0x14]
- movs r1, 0xC0
- lsls r1, 1
- adds r2, r4, 0
- bl copy_tileset_patterns_to_vram2
-_08059AD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end copy_map_tileset1_tileset2_to_vram
-
- thumb_func_start apply_map_tileset1_tileset2_palette
-apply_map_tileset1_tileset2_palette: @ 8059AD8
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08059AEA
- bl sub_8059A90
- adds r0, r4, 0
- bl sub_8059AA0
-_08059AEA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset1_tileset2_palette
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fighting.s b/asm/fighting.s
new file mode 100644
index 000000000..518927a3c
--- /dev/null
+++ b/asm/fighting.s
@@ -0,0 +1,1746 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unc_080B08A0
+unc_080B08A0: @ 80B08A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B08D0 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_8074FF8
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0xF
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B08D4 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080B08D8 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B08D0: .4byte gBattleAnimArgs
+_080B08D4: .4byte sub_8074C44
+_080B08D8: .4byte DestroyAnimSprite
+ thumb_func_end unc_080B08A0
+
+ thumb_func_start sub_80B08DC
+sub_80B08DC: @ 80B08DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B0920 @ =gBattleAnimArgs
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080B0904
+ ldr r0, _080B0924 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0904
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x6]
+_080B0904:
+ ldr r4, _080B0920 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_8075F0C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0920: .4byte gBattleAnimArgs
+_080B0924: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80B08DC
+
+ thumb_func_start sub_80B0928
+sub_80B0928: @ 80B0928
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0944
+ ldr r0, _080B0950 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080B0944:
+ adds r0, r4, 0
+ bl sub_80B08DC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0950: .4byte gBattleAnimArgs
+ thumb_func_end sub_80B0928
+
+ thumb_func_start sub_80B0954
+sub_80B0954: @ 80B0954
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B0974 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x8]
+ bl StartSpriteAnim
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B0978
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ b _080B0980
+ .align 2, 0
+_080B0974: .4byte gBattleAnimArgs
+_080B0978:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075114
+_080B0980:
+ ldr r0, _080B0998 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080B099C @ =sub_8074C44
+ str r0, [r5, 0x1C]
+ ldr r1, _080B09A0 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0998: .4byte gBattleAnimArgs
+_080B099C: .4byte sub_8074C44
+_080B09A0: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B0954
+
+ thumb_func_start sub_80B09A4
+sub_80B09A4: @ 80B09A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ ldr r0, _080B09C0 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r9, r0
+ cmp r1, 0
+ bne _080B09C8
+ ldr r0, _080B09C4 @ =gBattleAnimAttacker
+ b _080B09CA
+ .align 2, 0
+_080B09C0: .4byte gBattleAnimArgs
+_080B09C4: .4byte gBattleAnimAttacker
+_080B09C8:
+ ldr r0, _080B0B10 @ =gBattleAnimTarget
+_080B09CA:
+ ldrb r0, [r0]
+ mov r8, r0
+ mov r4, r9
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080B09E8
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x4]
+_080B09E8:
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ mov r0, r8
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ mov r0, r8
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r6, r1, 16
+ mov r0, r8
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080B0A32
+ adds r0, 0x3
+_080B0A32:
+ lsls r4, r0, 14
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080B0A74
+ lsls r0, r6, 16
+ negs r0, r0
+ lsrs r6, r0, 16
+_080B0A74:
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080B0A86
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080B0A86:
+ ldr r0, _080B0B14 @ =gUnknown_2023BD6
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080B0A9C
+ lsls r0, r4, 16
+ ldr r1, _080B0B18 @ =0xfff00000
+ adds r0, r1
+ lsrs r4, r0, 16
+_080B0A9C:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ mov r1, r9
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080B0B1C @ =gUnknown_83E7C08
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ adds r3, r5, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3C]
+ cmp r0, 0x40
+ beq _080B0B00
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080B0B20 @ =gSprites
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r2, 0x3C
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080B0B24 @ =SpriteCallbackDummy
+ str r1, [r0]
+_080B0B00:
+ ldr r0, _080B0B28 @ =sub_80B0B2C
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0B10: .4byte gBattleAnimTarget
+_080B0B14: .4byte gUnknown_2023BD6
+_080B0B18: .4byte 0xfff00000
+_080B0B1C: .4byte gUnknown_83E7C08
+_080B0B20: .4byte gSprites
+_080B0B24: .4byte SpriteCallbackDummy
+_080B0B28: .4byte sub_80B0B2C
+ thumb_func_end sub_80B09A4
+
+ thumb_func_start sub_80B0B2C
+sub_80B0B2C: @ 80B0B2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080B0B74
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ beq _080B0B68
+ ldr r4, _080B0B70 @ =gSprites
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080B0B68:
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+ b _080B0B78
+ .align 2, 0
+_080B0B70: .4byte gSprites
+_080B0B74:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+_080B0B78:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0B2C
+
+ thumb_func_start sub_80B0B80
+sub_80B0B80: @ 80B0B80
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B0BA0 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B0BA4
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x14
+ strh r0, [r4, 0x32]
+ b _080B0BB6
+ .align 2, 0
+_080B0BA0: .4byte gBattleAnimArgs
+_080B0BA4:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x14
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080B0BB6:
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x14
+ strh r0, [r4, 0x36]
+ ldr r0, _080B0BD0 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080B0BD4 @ =sub_80B0BD8
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0BD0: .4byte sub_8075590
+_080B0BD4: .4byte sub_80B0BD8
+ thumb_func_end sub_80B0B80
+
+ thumb_func_start sub_80B0BD8
+sub_80B0BD8: @ 80B0BD8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080B0C18
+ ldrh r2, [r5, 0x20]
+ ldrh r4, [r5, 0x24]
+ subs r0, r2, r4
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x22]
+ ldrh r3, [r5, 0x26]
+ subs r0, r1, r3
+ strh r0, [r5, 0x36]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ adds r2, r4
+ strh r2, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x22]
+ strh r6, [r5, 0x26]
+ strh r6, [r5, 0x24]
+ ldr r0, _080B0C20 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080B0C24 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080B0C18:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0C20: .4byte sub_8075590
+_080B0C24: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B0BD8
+
+ thumb_func_start sub_80B0C28
+sub_80B0C28: @ 80B0C28
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080B0CA4 @ =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ldr r2, _080B0CA8 @ =gBattleAnimTarget
+ eors r0, r1
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _080B0C54
+ ldrb r0, [r2]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080B0C54
+ ldr r1, _080B0CAC @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080B0C54:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r0, _080B0CA4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0C72
+ ldr r1, _080B0CAC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080B0C72:
+ ldr r4, _080B0CAC @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x6]
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x3A]
+ strh r5, [r6, 0x3C]
+ ldr r0, _080B0CB0 @ =sub_80B0CB4
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0CA4: .4byte gBattleAnimAttacker
+_080B0CA8: .4byte gBattleAnimTarget
+_080B0CAC: .4byte gBattleAnimArgs
+_080B0CB0: .4byte sub_80B0CB4
+ thumb_func_end sub_80B0C28
+
+ thumb_func_start sub_80B0CB4
+sub_80B0CB4: @ 80B0CB4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0CE0
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ strh r0, [r4, 0x3C]
+ b _080B0CE6
+_080B0CE0:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B0CE6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0CB4
+
+ thumb_func_start sub_80B0CEC
+sub_80B0CEC: @ 80B0CEC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r5, _080B0D18 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B0D1C @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080B0D20 @ =sub_80B0D24
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0D18: .4byte gBattleAnimArgs
+_080B0D1C: .4byte sub_8074C44
+_080B0D20: .4byte sub_80B0D24
+ thumb_func_end sub_80B0CEC
+
+ thumb_func_start sub_80B0D24
+sub_80B0D24: @ 80B0D24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B0D50 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080B0D54 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0D50: .4byte sub_8074C44
+_080B0D54: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B0D24
+
+ thumb_func_start sub_80B0D58
+sub_80B0D58: @ 80B0D58
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r0, _080B0D74 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B0D78 @ =sub_80B0D7C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0D74: .4byte gBattleAnimArgs
+_080B0D78: .4byte sub_80B0D7C
+ thumb_func_end sub_80B0D58
+
+ thumb_func_start sub_80B0D7C
+sub_80B0D7C: @ 80B0D7C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080B0DC0
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080B0DC8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080B0DCC @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080B0DD0 @ =sub_80B0DD4
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080B0DC0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0DC8: .4byte gBattleAnimTarget
+_080B0DCC: .4byte sub_8075590
+_080B0DD0: .4byte sub_80B0DD4
+ thumb_func_end sub_80B0D7C
+
+ thumb_func_start sub_80B0DD4
+sub_80B0DD4: @ 80B0DD4
+ push {lr}
+ movs r1, 0xF
+ strh r1, [r0, 0x2E]
+ ldr r1, _080B0DE8 @ =sub_8074C44
+ str r1, [r0, 0x1C]
+ ldr r1, _080B0DEC @ =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0DE8: .4byte sub_8074C44
+_080B0DEC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B0DD4
+
+ thumb_func_start sub_80B0DF0
+sub_80B0DF0: @ 80B0DF0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B0E1C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r1, _080B0E18 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080B0E78
+ .align 2, 0
+_080B0E18: .4byte gBattleAnimArgs
+_080B0E1C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080B0E6A
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080B0E6A:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080B0E78
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B0E78:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0DF0
+
+ thumb_func_start sub_80B0E80
+sub_80B0E80: @ 80B0E80
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080B0E94 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B0E9C
+ ldr r4, _080B0E98 @ =gBattleAnimAttacker
+ b _080B0E9E
+ .align 2, 0
+_080B0E94: .4byte gBattleAnimArgs
+_080B0E98: .4byte gBattleAnimAttacker
+_080B0E9C:
+ ldr r4, _080B0EE4 @ =gBattleAnimTarget
+_080B0E9E:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080B0EE8 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x4]
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ strh r2, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldr r0, _080B0EEC @ =sub_80B0EF0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0EE4: .4byte gBattleAnimTarget
+_080B0EE8: .4byte gBattleAnimArgs
+_080B0EEC: .4byte sub_80B0EF0
+ thumb_func_end sub_80B0E80
+
+ thumb_func_start sub_80B0EF0
+sub_80B0EF0: @ 80B0EF0
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080B0F02
+ cmp r2, 0x1
+ beq _080B0F26
+ b _080B0F60
+_080B0F02:
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B0F60
+ movs r2, 0x32
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080B0F1E
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+ b _080B0F60
+_080B0F1E:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080B0F60
+_080B0F26:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B0F4E
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x34]
+ adds r0, 0x1
+ strh r0, [r1, 0x34]
+ ands r0, r2
+ lsls r0, 16
+ cmp r0, 0
+ beq _080B0F4A
+ movs r0, 0x2
+ b _080B0F4C
+_080B0F4A:
+ ldr r0, _080B0F64 @ =0x0000fffe
+_080B0F4C:
+ strh r0, [r1, 0x24]
+_080B0F4E:
+ ldrh r0, [r1, 0x32]
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B0F60
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080B0F60:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0F64: .4byte 0x0000fffe
+ thumb_func_end sub_80B0EF0
+
+ thumb_func_start sub_80B0F68
+sub_80B0F68: @ 80B0F68
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080B0F8C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080B0F94
+ ldr r4, _080B0F90 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x4]
+ adds r0, r2
+ b _080B0FA6
+ .align 2, 0
+_080B0F8C: .4byte gBattleAnimArgs
+_080B0F90: .4byte gBattleAnimAttacker
+_080B0F94:
+ ldr r4, _080B0FF0 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+_080B0FA6:
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080B0FF4 @ =gBattleAnimArgs
+ movs r4, 0x2
+ ldrsh r0, [r3, r4]
+ lsls r0, 4
+ adds r1, r0
+ ldr r4, _080B0FF8 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080B0FFC @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ beq _080B1014
+ cmp r0, 0x1
+ bgt _080B1000
+ cmp r0, 0
+ beq _080B100A
+ b _080B103A
+ .align 2, 0
+_080B0FF0: .4byte gBattleAnimTarget
+_080B0FF4: .4byte gBattleAnimArgs
+_080B0FF8: .4byte 0x000003ff
+_080B0FFC: .4byte 0xfffffc00
+_080B1000:
+ cmp r0, 0x2
+ beq _080B1024
+ cmp r0, 0x3
+ beq _080B1034
+ b _080B103A
+_080B100A:
+ ldr r0, _080B1010 @ =0x0000fffd
+ b _080B1034
+ .align 2, 0
+_080B1010: .4byte 0x0000fffd
+_080B1014:
+ movs r0, 0x3
+ strh r0, [r5, 0x3A]
+ ldr r0, _080B1020 @ =0x0000fffd
+ strh r0, [r5, 0x3C]
+ b _080B1042
+ .align 2, 0
+_080B1020: .4byte 0x0000fffd
+_080B1024:
+ ldr r0, _080B1030 @ =0x0000fffd
+ strh r0, [r5, 0x3A]
+ movs r0, 0x3
+ strh r0, [r5, 0x3C]
+ b _080B1042
+ .align 2, 0
+_080B1030: .4byte 0x0000fffd
+_080B1034:
+ strh r0, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ b _080B1042
+_080B103A:
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+ b _080B1046
+_080B1042:
+ ldr r0, _080B104C @ =sub_80B1050
+ str r0, [r5, 0x1C]
+_080B1046:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B104C: .4byte sub_80B1050
+ thumb_func_end sub_80B0F68
+
+ thumb_func_start sub_80B1050
+sub_80B1050: @ 80B1050
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x3A]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x3C]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080B1078
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080B1078:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1050
+
+ thumb_func_start sub_80B107C
+sub_80B107C: @ 80B107C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080B10C8 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B10D8
+ ldr r4, _080B10CC @ =sBattler_AI
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080B10D0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080B10D4 @ =gBattleAnimTarget
+ b _080B10F4
+ .align 2, 0
+_080B10C8: .4byte gBattleAnimArgs
+_080B10CC: .4byte sBattler_AI
+_080B10D0: .4byte gBattleAnimAttacker
+_080B10D4: .4byte gBattleAnimTarget
+_080B10D8:
+ ldr r0, _080B1110 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080B1114 @ =gBattleAnimAttacker
+_080B10F4:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r0, 0xC
+ strh r0, [r5, 0x30]
+ movs r0, 0x8
+ strh r0, [r5, 0x32]
+ ldr r0, _080B1118 @ =sub_80B111C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1110: .4byte gBattleAnimTarget
+_080B1114: .4byte gBattleAnimAttacker
+_080B1118: .4byte sub_80B111C
+ thumb_func_end sub_80B107C
+
+ thumb_func_start sub_80B111C
+sub_80B111C: @ 80B111C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB4
+ bne _080B1178
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080B1180 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080B1184 @ =sub_807563C
+ str r0, [r4, 0x1C]
+_080B1178:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1180: .4byte move_anim_8074EE0
+_080B1184: .4byte sub_807563C
+ thumb_func_end sub_80B111C
+
+ thumb_func_start sub_80B1188
+sub_80B1188: @ 80B1188
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B11D4 @ =gBattleAnimArgs
+ ldrh r0, [r4]
+ strh r0, [r5, 0x20]
+ movs r2, 0x78
+ strh r2, [r5, 0x22]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ adds r0, 0x36
+ adds r1, r5, 0
+ adds r1, 0x38
+ lsls r2, 8
+ bl sub_80765C0
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080B11D8 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080B11DC @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080B11E0 @ =sub_80B11E4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B11D4: .4byte gBattleAnimArgs
+_080B11D8: .4byte 0x000003ff
+_080B11DC: .4byte 0xfffffc00
+_080B11E0: .4byte sub_80B11E4
+ thumb_func_end sub_80B1188
+
+ thumb_func_start sub_80B11E4
+sub_80B11E4: @ 80B11E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080B1236
+ movs r2, 0x36
+ ldrsh r0, [r7, r2]
+ movs r2, 0x38
+ ldrsh r1, [r7, r2]
+ bl sub_80765C8
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r7, r1]
+ subs r4, r0
+ adds r0, r7, 0
+ adds r0, 0x36
+ adds r1, r7, 0
+ adds r1, 0x38
+ adds r2, r4, 0
+ bl sub_80765C0
+ asrs r4, 8
+ strh r4, [r7, 0x22]
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r4, r0
+ bge _080B122E
+ adds r0, r7, 0
+ bl DestroyAnimSprite
+ b _080B128C
+_080B122E:
+ ldrh r0, [r7, 0x2E]
+ subs r0, 0x1
+ strh r0, [r7, 0x2E]
+ b _080B128C
+_080B1236:
+ ldr r4, _080B1298 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r2, _080B129C @ =gBattleAnimTarget
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ subs r4, r6
+ strh r4, [r7, 0x2E]
+ lsrs r0, 24
+ subs r0, r5
+ strh r0, [r7, 0x30]
+ ldrh r0, [r7, 0x20]
+ lsls r0, 4
+ strh r0, [r7, 0x32]
+ ldrh r0, [r7, 0x22]
+ lsls r0, 4
+ strh r0, [r7, 0x34]
+ ldr r0, _080B12A0 @ =sub_80B12A4
+ str r0, [r7, 0x1C]
+_080B128C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1298: .4byte gBattleAnimAttacker
+_080B129C: .4byte gBattleAnimTarget
+_080B12A0: .4byte sub_80B12A4
+ thumb_func_end sub_80B11E4
+
+ thumb_func_start sub_80B12A4
+sub_80B12A4: @ 80B12A4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080B12DE
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080B12DE
+ cmp r1, 0x78
+ ble _080B12E4
+_080B12DE:
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080B12E4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B12A4
+
+ thumb_func_start sub_80B12E8
+sub_80B12E8: @ 80B12E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080B131C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B132C
+ ldr r4, _080B1320 @ =sBattler_AI
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080B1324 @ =gBattleAnimTarget
+ ldrb r4, [r0]
+ ldr r0, _080B1328 @ =gBattleAnimAttacker
+ b _080B1332
+ .align 2, 0
+_080B131C: .4byte gBattleAnimArgs
+_080B1320: .4byte sBattler_AI
+_080B1324: .4byte gBattleAnimTarget
+_080B1328: .4byte gBattleAnimAttacker
+_080B132C:
+ ldr r0, _080B1364 @ =gBattleAnimAttacker
+ ldrb r4, [r0]
+ ldr r0, _080B1368 @ =gBattleAnimTarget
+_080B1332:
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B136C
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ b _080B1386
+ .align 2, 0
+_080B1364: .4byte gBattleAnimAttacker
+_080B1368: .4byte gBattleAnimTarget
+_080B136C:
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B138C
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+_080B1386:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080B138C:
+ movs r0, 0x10
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080B13CC @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080B13D0 @ =sub_807563C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B13CC: .4byte DestroyAnimSprite
+_080B13D0: .4byte sub_807563C
+ thumb_func_end sub_80B12E8
+
+ thumb_func_start sub_80B13D4
+sub_80B13D4: @ 80B13D4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B13EA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B13EA:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B13D4
+
+ thumb_func_start sub_80B13F8
+sub_80B13F8: @ 80B13F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080B1474 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080B1478 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x36]
+ ldr r0, _080B147C @ =gAnimMoveTurn
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B1442
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080B1442:
+ movs r0, 0x1
+ ands r6, r0
+ cmp r6, 0
+ beq _080B1456
+ ldrh r0, [r5, 0x32]
+ negs r0, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+_080B1456:
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x32]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x26]
+ ldr r0, _080B1480 @ =sub_80B13D4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1474: .4byte gBattleAnimTarget
+_080B1478: .4byte gBattleAnimArgs
+_080B147C: .4byte gAnimMoveTurn
+_080B1480: .4byte sub_80B13D4
+ thumb_func_end sub_80B13F8
+
+ thumb_func_start sub_80B1484
+sub_80B1484: @ 80B1484
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080B149C @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B14A0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075160
+ b _080B14A8
+ .align 2, 0
+_080B149C: .4byte gBattleAnimArgs
+_080B14A0:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075114
+_080B14A8:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B14BC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _080B14D2
+_080B14BC:
+ ldr r0, _080B14E4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B14D2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080B14D2:
+ ldr r0, _080B14E8 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _080B14EC @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B14E4: .4byte gBattleAnimAttacker
+_080B14E8: .4byte sub_8074F6C
+_080B14EC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B1484
+
+ thumb_func_start sub_80B14F0
+sub_80B14F0: @ 80B14F0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B152A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x28
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080B152A
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B152A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B14F0
+
+ thumb_func_start sub_80B1530
+sub_80B1530: @ 80B1530
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080B1560 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B1568
+ cmp r0, 0x1
+ bgt _080B1582
+ cmp r0, 0
+ bne _080B1582
+ movs r0, 0
+ bl sub_8075458
+ ldr r0, _080B1564 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x18]
+ b _080B157A
+ .align 2, 0
+_080B1560: .4byte gTasks
+_080B1564: .4byte gBattleAnimArgs
+_080B1568:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080B158E
+_080B157A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B158E
+_080B1582:
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+_080B158E:
+ movs r2, 0xB0
+ lsls r2, 4
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ strh r0, [r4, 0x1C]
+ ldr r0, _080B15BC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B15C4
+ ldr r1, _080B15C0 @ =gBattle_BG3_X
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r7, r1, 0
+ b _080B15D4
+ .align 2, 0
+_080B15BC: .4byte gBattleAnimTarget
+_080B15C0: .4byte gBattle_BG3_X
+_080B15C4:
+ ldr r2, _080B1614 @ =gBattle_BG3_X
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ adds r7, r2, 0
+_080B15D4:
+ ldr r3, _080B1618 @ =gBattle_BG3_Y
+ ldrh r2, [r4, 0x1C]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ movs r0, 0xFF
+ ldrb r1, [r4, 0x1A]
+ movs r5, 0
+ strh r1, [r4, 0x1A]
+ ands r0, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, _080B161C @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080B160C
+ strh r5, [r7]
+ strh r5, [r3]
+ movs r0, 0x1
+ bl sub_8075458
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080B160C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1614: .4byte gBattle_BG3_X
+_080B1618: .4byte gBattle_BG3_Y
+_080B161C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80B1530
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fire.s b/asm/fire.s
new file mode 100644
index 000000000..f4b89300a
--- /dev/null
+++ b/asm/fire.s
@@ -0,0 +1,2500 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80AC90C
+sub_80AC90C: @ 80AC90C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AC940 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080AC944 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080AC948 @ =sub_8074AE0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC940: .4byte gBattleAnimArgs
+_080AC944: .4byte DestroyAnimSprite
+_080AC948: .4byte sub_8074AE0
+ thumb_func_end sub_80AC90C
+
+ thumb_func_start sub_80AC94C
+sub_80AC94C: @ 80AC94C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080AC984 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_8074FF8
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080AC988 @ =sub_8074D00
+ str r0, [r4, 0x1C]
+ ldr r1, _080AC98C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC984: .4byte gBattleAnimArgs
+_080AC988: .4byte sub_8074D00
+_080AC98C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AC94C
+
+ thumb_func_start sub_80AC990
+sub_80AC990: @ 80AC990
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080AC9C4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC9CC
+ ldr r2, _080AC9C8 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080AC9E2
+ .align 2, 0
+_080AC9C4: .4byte gBattleAnimAttacker
+_080AC9C8: .4byte gBattleAnimArgs
+_080AC9CC:
+ ldr r1, _080AC9F8 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+_080AC9E2:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080AC9FC @ =sub_80ACA6C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC9F8: .4byte gBattleAnimArgs
+_080AC9FC: .4byte sub_80ACA6C
+ thumb_func_end sub_80AC990
+
+ thumb_func_start sub_80ACA00
+sub_80ACA00: @ 80ACA00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080ACA2C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACA34
+ ldr r2, _080ACA30 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080ACA4C
+ .align 2, 0
+_080ACA2C: .4byte gBattleAnimAttacker
+_080ACA30: .4byte gBattleAnimArgs
+_080ACA34:
+ ldr r1, _080ACA64 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+_080ACA4C:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080ACA68 @ =sub_80ACA6C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACA64: .4byte gBattleAnimArgs
+_080ACA68: .4byte sub_80ACA6C
+ thumb_func_end sub_80ACA00
+
+ thumb_func_start sub_80ACA6C
+sub_80ACA6C: @ 80ACA6C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _080ACA92
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+_080ACA92:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080ACAA4
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080ACAA4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACA6C
+
+ thumb_func_start sub_80ACAA8
+sub_80ACAA8: @ 80ACAA8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080ACACC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACAD4
+ ldr r0, _080ACAD0 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080ACAE6
+ .align 2, 0
+_080ACACC: .4byte gBattleAnimAttacker
+_080ACAD0: .4byte gBattleAnimArgs
+_080ACAD4:
+ ldr r0, _080ACB14 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ adds r2, r4, 0
+ adds r2, 0x43
+ movs r1, 0x8
+ strb r1, [r2]
+_080ACAE6:
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r2, 0xC]
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldr r0, _080ACB18 @ =sub_80ACB1C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACB14: .4byte gBattleAnimArgs
+_080ACB18: .4byte sub_80ACB1C
+ thumb_func_end sub_80ACAA8
+
+ thumb_func_start sub_80ACB1C
+sub_80ACB1C: @ 80ACB1C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ACBA4
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, _080ACB88 @ =0x00002710
+ cmp r1, r0
+ ble _080ACB3A
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_080ACB3A:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080ACB90
+ ldr r2, _080ACB8C @ =0xffffff00
+ b _080ACB98
+ .align 2, 0
+_080ACB88: .4byte 0x00002710
+_080ACB8C: .4byte 0xffffff00
+_080ACB90:
+ cmp r0, 0
+ bge _080ACB9C
+ movs r2, 0x80
+ lsls r2, 1
+_080ACB98:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_080ACB9C:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080ACBAA
+_080ACBA4:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080ACBAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACB1C
+
+ thumb_func_start sub_80ACBB0
+sub_80ACBB0: @ 80ACBB0
+ push {lr}
+ movs r1, 0
+ strh r1, [r0, 0x20]
+ strh r1, [r0, 0x22]
+ movs r1, 0x3C
+ strh r1, [r0, 0x2E]
+ movs r1, 0x8C
+ strh r1, [r0, 0x32]
+ movs r1, 0x50
+ strh r1, [r0, 0x36]
+ ldr r1, _080ACBD4 @ =sub_8075590
+ str r1, [r0, 0x1C]
+ ldr r1, _080ACBD8 @ =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACBD4: .4byte sub_8075590
+_080ACBD8: .4byte DestroyAnimSprite
+ thumb_func_end sub_80ACBB0
+
+ thumb_func_start sub_80ACBDC
+sub_80ACBDC: @ 80ACBDC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080ACC34 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080ACC38 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080ACC22
+ movs r0, 0x2
+ bl GetBattlerAtPosition
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _080ACC1A
+ movs r0, 0x3
+ bl GetBattlerAtPosition
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080ACC22
+_080ACC1A:
+ ldr r1, _080ACC3C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080ACC22:
+ ldr r1, _080ACC40 @ =sub_8075F0C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACC34: .4byte gBattleAnimAttacker
+_080ACC38: .4byte gBattleAnimTarget
+_080ACC3C: .4byte gBattleAnimArgs
+_080ACC40: .4byte sub_8075F0C
+ thumb_func_end sub_80ACBDC
+
+ thumb_func_start sub_80ACC44
+sub_80ACC44: @ 80ACC44
+ ldr r2, _080ACC58 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ negs r1, r1
+ strh r1, [r2]
+ ldrh r1, [r2, 0x4]
+ negs r1, r1
+ strh r1, [r2, 0x4]
+ ldr r1, _080ACC5C @ =sub_8075F0C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080ACC58: .4byte gBattleAnimArgs
+_080ACC5C: .4byte sub_8075F0C
+ thumb_func_end sub_80ACC44
+
+ thumb_func_start sub_80ACC60
+sub_80ACC60: @ 80ACC60
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080ACC80 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x2E]
+ ldr r0, _080ACC84 @ =sub_80ACC88
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACC80: .4byte gBattleAnimArgs
+_080ACC84: .4byte sub_80ACC88
+ thumb_func_end sub_80ACC60
+
+ thumb_func_start sub_80ACC88
+sub_80ACC88: @ 80ACC88
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80ACD7C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bne _080ACCD2
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080ACCD8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080ACCDC @ =sub_80ACCE0
+ str r0, [r5, 0x1C]
+_080ACCD2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACCD8: .4byte gBattleAnimTarget
+_080ACCDC: .4byte sub_80ACCE0
+ thumb_func_end sub_80ACC88
+
+ thumb_func_start sub_80ACCE0
+sub_80ACCE0: @ 80ACCE0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACD28
+ movs r4, 0
+ strh r4, [r6, 0x2E]
+ ldr r5, _080ACD20 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r4, [r6, 0x26]
+ strh r4, [r6, 0x24]
+ ldr r1, _080ACD24 @ =sub_80ACD58
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080ACD52
+ .align 2, 0
+_080ACD20: .4byte gBattleAnimTarget
+_080ACD24: .4byte sub_80ACD58
+_080ACD28:
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Sin
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Cos
+ ldrh r1, [r6, 0x26]
+ adds r0, r1
+ strh r0, [r6, 0x26]
+ ldrh r0, [r6, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3C]
+_080ACD52:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACCE0
+
+ thumb_func_start sub_80ACD58
+sub_80ACD58: @ 80ACD58
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80ACD7C
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080ACD74
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080ACD74:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACD58
+
+ thumb_func_start sub_80ACD7C
+sub_80ACD7C: @ 80ACD7C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACD7C
+
+ thumb_func_start sub_80ACDA8
+sub_80ACDA8: @ 80ACDA8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080ACDDC @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080ACDE0 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080ACDE4 @ =sub_8074CD0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACDDC: .4byte gBattleAnimArgs
+_080ACDE0: .4byte DestroyAnimSprite
+_080ACDE4: .4byte sub_8074CD0
+ thumb_func_end sub_80ACDA8
+
+ thumb_func_start sub_80ACDE8
+sub_80ACDE8: @ 80ACDE8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080ACE1C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080ACE20 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080ACE24 @ =sub_80ACE28
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACE1C: .4byte gBattleAnimArgs
+_080ACE20: .4byte sub_8074C44
+_080ACE24: .4byte sub_80ACE28
+ thumb_func_end sub_80ACDE8
+
+ thumb_func_start sub_80ACE28
+sub_80ACE28: @ 80ACE28
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldrh r1, [r0, 0x30]
+ movs r2, 0
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ ldr r1, _080ACE4C @ =sub_80ACE50
+ str r1, [r0, 0x1C]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACE4C: .4byte sub_80ACE50
+ thumb_func_end sub_80ACE28
+
+ thumb_func_start sub_80ACE50
+sub_80ACE50: @ 80ACE50
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0xD0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080ACE9C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080ACE9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACE50
+
+ thumb_func_start sub_80ACEA4
+sub_80ACEA4: @ 80ACEA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080ACF04 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldr r2, _080ACF08 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x10]
+ ldr r0, _080ACF0C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80758E0
+ ldr r0, _080ACF10 @ =sub_80ACF14
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACF04: .4byte gTasks
+_080ACF08: .4byte gSprites
+_080ACF0C: .4byte gBattleAnimAttacker
+_080ACF10: .4byte sub_80ACF14
+ thumb_func_end sub_80ACEA4
+
+ thumb_func_start sub_80ACF14
+sub_80ACF14: @ 80ACF14
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080ACF3C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080ACF30
+ b _080AD1EE
+_080ACF30:
+ lsls r0, 2
+ ldr r1, _080ACF40 @ =_080ACF44
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ACF3C: .4byte gTasks
+_080ACF40: .4byte _080ACF44
+ .align 2, 0
+_080ACF44:
+ .4byte _080ACF60
+ .4byte _080ACF86
+ .4byte _080AD038
+ .4byte _080AD098
+ .4byte _080AD0B6
+ .4byte _080AD18C
+ .4byte _080AD1E0
+_080ACF60:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_80765D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080ACF86:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080ACFCE
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACFBC
+ ldr r2, _080ACFB8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ b _080ACFCC
+ .align 2, 0
+_080ACFB8: .4byte gSprites
+_080ACFBC:
+ ldr r2, _080AD030 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080AD034 @ =0x0000fffd
+_080ACFCC:
+ strh r1, [r0, 0x24]
+_080ACFCE:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ACFFC
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080ACFFC
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldr r2, _080AD030 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+_080ACFFC:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080AD00C
+ b _080AD1EE
+_080AD00C:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076440
+ ldr r2, _080AD030 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ b _080AD1D4
+ .align 2, 0
+_080AD030: .4byte gSprites
+_080AD034: .4byte 0x0000fffd
+_080AD038:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080AD048
+ b _080AD1EE
+_080AD048:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AD072
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xF0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_80765D4
+ b _080AD092
+_080AD072:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xC0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_80765D4
+_080AD092:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080AD1D4
+_080AD098:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD0A6
+ b _080AD1EE
+_080AD0A6:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80AD1F8
+ b _080AD1D4
+_080AD0B6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AD104
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD0F0
+ ldr r2, _080AD0EC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ b _080AD102
+ .align 2, 0
+_080AD0EC: .4byte gSprites
+_080AD0F0:
+ ldr r2, _080AD13C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+_080AD102:
+ strh r1, [r0, 0x26]
+_080AD104:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _080AD1EE
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AD140
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xF0
+ bl sub_80765D4
+ b _080AD15E
+ .align 2, 0
+_080AD13C: .4byte gSprites
+_080AD140:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xC0
+ bl sub_80765D4
+_080AD15E:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD17C
+ ldr r2, _080AD188 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+_080AD17C:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ b _080AD1D4
+ .align 2, 0
+_080AD188: .4byte gSprites
+_080AD18C:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AD1A8
+ ldr r2, _080AD1DC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_080AD1A8:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080AD1EE
+ ldr r2, _080AD1DC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x22]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ strh r5, [r4, 0xC]
+_080AD1D4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AD1EE
+ .align 2, 0
+_080AD1DC: .4byte gSprites
+_080AD1E0:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AD1EE
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080AD1EE:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACF14
+
+ thumb_func_start sub_80AD1F8
+sub_80AD1F8: @ 80AD1F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80AD374
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r1, _080AD248 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r4, [r0, 0x20]
+ ldr r0, _080AD24C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD250
+ adds r0, r4, 0
+ subs r0, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ b _080AD25A
+ .align 2, 0
+_080AD248: .4byte gSprites
+_080AD24C: .4byte gBattleAnimAttacker
+_080AD250:
+ adds r0, r4, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xFF
+_080AD25A:
+ movs r6, 0
+ movs r5, 0
+ lsls r4, 16
+ str r4, [sp, 0x8]
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x4]
+ ldr r2, _080AD314 @ =gUnknown_83E5E44
+ mov r9, r2
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r3, r8
+ lsls r3, 1
+ mov r10, r3
+_080AD278:
+ ldr r0, _080AD318 @ =gUnknown_83E5E2C
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x4]
+ asrs r2, r3, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080AD2FA
+ ldr r1, _080AD31C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ lsls r0, r5, 2
+ adds r0, 0x40
+ adds r1, r0
+ ldr r3, _080AD320 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r3, _080AD324 @ =0xfffffc00
+ adds r0, r3, 0
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r4, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080AD2C2
+ movs r5, 0
+_080AD2C2:
+ lsls r2, r6, 2
+ mov r1, r9
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ ldr r3, [sp]
+ adds r1, r0, 0
+ muls r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _080AD328 @ =gUnknown_83E5E46
+ adds r2, r0
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r0, r4, 0
+ bl sub_80AD3C8
+ strh r7, [r4, 0x3A]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ add r0, r10
+ ldr r1, _080AD32C @ =gTasks+0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+_080AD2FA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x6
+ bls _080AD278
+ 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
+_080AD314: .4byte gUnknown_83E5E44
+_080AD318: .4byte gUnknown_83E5E2C
+_080AD31C: .4byte gSprites
+_080AD320: .4byte 0x000003ff
+_080AD324: .4byte 0xfffffc00
+_080AD328: .4byte gUnknown_83E5E46
+_080AD32C: .4byte gTasks+0x8
+ thumb_func_end sub_80AD1F8
+
+ thumb_func_start sub_80AD330
+sub_80AD330: @ 80AD330
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80AD3E4
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD36A
+ ldr r3, _080AD370 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080AD36A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD370: .4byte gTasks
+ thumb_func_end sub_80AD330
+
+ thumb_func_start sub_80AD374
+sub_80AD374: @ 80AD374
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AD3AC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x26]
+ ldrh r0, [r1, 0x22]
+ adds r2, r0
+ adds r1, 0x29
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080AD3B0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD3B4
+ lsls r0, r4, 16
+ movs r1, 0x94
+ lsls r1, 15
+ b _080AD3BA
+ .align 2, 0
+_080AD3AC: .4byte gSprites
+_080AD3B0: .4byte gBattleAnimAttacker
+_080AD3B4:
+ lsls r0, r4, 16
+ movs r1, 0xB0
+ lsls r1, 14
+_080AD3BA:
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD374
+
+ thumb_func_start sub_80AD3C8
+sub_80AD3C8: @ 80AD3C8
+ movs r3, 0
+ strh r3, [r0, 0x2E]
+ strh r3, [r0, 0x30]
+ ldrh r3, [r0, 0x20]
+ lsls r3, 3
+ strh r3, [r0, 0x32]
+ ldrh r3, [r0, 0x22]
+ lsls r3, 3
+ strh r3, [r0, 0x34]
+ lsls r1, 3
+ strh r1, [r0, 0x36]
+ lsls r2, 3
+ strh r2, [r0, 0x38]
+ bx lr
+ thumb_func_end sub_80AD3C8
+
+ thumb_func_start sub_80AD3E4
+sub_80AD3E4: @ 80AD3E4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080AD40E
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r3, [r2, 0x34]
+ adds r0, r3
+ strh r0, [r2, 0x34]
+_080AD40E:
+ ldrh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r1, 16
+ asrs r3, r1, 19
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080AD444
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080AD444
+ cmp r1, 0x78
+ ble _080AD450
+_080AD444:
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080AD450:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD3E4
+
+ thumb_func_start sub_80AD454
+sub_80AD454: @ 80AD454
+ push {r4,r5,lr}
+ ldr r3, _080AD498 @ =gBattleAnimArgs
+ ldrh r1, [r3]
+ movs r2, 0
+ strh r1, [r0, 0x20]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0, 0x3A]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r0, 0x3C]
+ ldrh r4, [r0, 0x4]
+ lsls r2, r4, 22
+ lsrs r2, 22
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r1, 4
+ adds r2, r1
+ ldr r3, _080AD49C @ =0x000003ff
+ adds r1, r3, 0
+ ands r2, r1
+ ldr r1, _080AD4A0 @ =0xfffffc00
+ ands r1, r4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ ldr r1, _080AD4A4 @ =sub_80AD4A8
+ str r1, [r0, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD498: .4byte gBattleAnimArgs
+_080AD49C: .4byte 0x000003ff
+_080AD4A0: .4byte 0xfffffc00
+_080AD4A4: .4byte sub_80AD4A8
+ thumb_func_end sub_80AD454
+
+ thumb_func_start sub_80AD4A8
+sub_80AD4A8: @ 80AD4A8
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080AD4DA
+ cmp r0, 0x1
+ bgt _080AD4BE
+ cmp r0, 0
+ beq _080AD4C4
+ b _080AD538
+_080AD4BE:
+ cmp r0, 0x2
+ beq _080AD4F8
+ b _080AD538
+_080AD4C4:
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080AD4D4
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+ b _080AD538
+_080AD4D4:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_080AD4DA:
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x8
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x3C]
+ movs r4, 0x3C
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080AD538
+ strh r3, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _080AD538
+_080AD4F8:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AD524
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD520
+ ldr r0, _080AD51C @ =0x0000fffd
+ b _080AD522
+ .align 2, 0
+_080AD51C: .4byte 0x0000fffd
+_080AD520:
+ movs r0, 0x3
+_080AD522:
+ strh r0, [r2, 0x26]
+_080AD524:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080AD538
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AD538:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD4A8
+
+ thumb_func_start sub_80AD540
+sub_80AD540: @ 80AD540
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AD5B4
+ cmp r0, 0x1
+ bgt _080AD556
+ cmp r0, 0
+ beq _080AD55C
+ b _080AD682
+_080AD556:
+ cmp r0, 0x2
+ beq _080AD612
+ b _080AD682
+_080AD55C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r4, _080AD584 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080AD588 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD58C
+ movs r0, 0x4
+ b _080AD58E
+ .align 2, 0
+_080AD584: .4byte gBattleAnimArgs
+_080AD588: .4byte gBattleAnimAttacker
+_080AD58C:
+ ldr r0, _080AD5AC @ =0x0000fffc
+_080AD58E:
+ strh r0, [r5, 0x36]
+ ldr r0, _080AD5B0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080AD60A
+ .align 2, 0
+_080AD5AC: .4byte 0x0000fffc
+_080AD5B0: .4byte gBattleAnimTarget
+_080AD5B4:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldr r0, _080AD5D4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD5D8
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080AD5DE
+ .align 2, 0
+_080AD5D4: .4byte gBattleAnimAttacker
+_080AD5D8:
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_080AD5DE:
+ strh r0, [r5, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080AD682
+ movs r0, 0
+ strh r0, [r5, 0x34]
+_080AD60A:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080AD682
+_080AD612:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r2, r0, 0
+ movs r3, 0
+ strh r2, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080AD682
+ ldrh r0, [r5, 0x20]
+ adds r1, r2, r0
+ strh r1, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r3, [r5, 0x26]
+ strh r3, [r5, 0x24]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080AD688 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8075678
+ ldr r0, _080AD68C @ =sub_80AD690
+ str r0, [r5, 0x1C]
+_080AD682:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD688: .4byte gBattleAnimTarget
+_080AD68C: .4byte sub_80AD690
+ thumb_func_end sub_80AD540
+
+ thumb_func_start sub_80AD690
+sub_80AD690: @ 80AD690
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD6E8
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080AD6C6
+ cmp r2, 0xC4
+ ble _080AD6EE
+_080AD6C6:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080AD6EE
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AD6EE
+ ldr r0, _080AD6E4 @ =gUnknown_2037F24
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x89
+ bl PlaySE12WithPanning
+ b _080AD6EE
+ .align 2, 0
+_080AD6E4: .4byte gUnknown_2037F24
+_080AD6E8:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AD6EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD690
+
+ thumb_func_start sub_80AD6F4
+sub_80AD6F4: @ 80AD6F4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AD70C
+ ldr r0, _080AD778 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_080AD70C:
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0xA0
+ strh r0, [r4, 0x36]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x36]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x7
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD7A8
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080AD780
+ ldr r0, _080AD77C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080AD7C4
+ .align 2, 0
+_080AD778: .4byte gBattleAnimArgs
+_080AD77C: .4byte gBattleAnimTarget
+_080AD780:
+ ldr r0, _080AD7A4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080AD7C4
+ .align 2, 0
+_080AD7A4: .4byte gBattleAnimTarget
+_080AD7A8:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080AD7BC
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _080AD7C2
+_080AD7BC:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_080AD7C2:
+ strb r0, [r1]
+_080AD7C4:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080AD7EC
+ 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]
+_080AD7EC:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1E
+ bne _080AD7FA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AD7FA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD6F4
+
+ thumb_func_start sub_80AD800
+sub_80AD800: @ 80AD800
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AD860 @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _080AD864 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080AD826
+ movs r1, 0x1
+_080AD826:
+ strh r1, [r4, 0x20]
+ ldr r0, _080AD868 @ =gBattleAnimTarget
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r0, 0x3
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080AD86C @ =sub_80AD870
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD860: .4byte gTasks
+_080AD864: .4byte gBattleAnimAttacker
+_080AD868: .4byte gBattleAnimTarget
+_080AD86C: .4byte sub_80AD870
+ thumb_func_end sub_80AD800
+
+ thumb_func_start sub_80AD870
+sub_80AD870: @ 80AD870
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080AD894 @ =gTasks
+ adds r2, r0, r1
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ cmp r3, 0x1
+ beq _080AD938
+ cmp r3, 0x1
+ bgt _080AD898
+ cmp r3, 0
+ beq _080AD8A6
+ b _080ADA98
+ .align 2, 0
+_080AD894: .4byte gTasks
+_080AD898:
+ cmp r3, 0x2
+ bne _080AD89E
+ b _080AD9C0
+_080AD89E:
+ cmp r3, 0x3
+ bne _080AD8A4
+ b _080ADA54
+_080AD8A4:
+ b _080ADA98
+_080AD8A6:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AD8D8
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD8D4
+ movs r0, 0x2
+ b _080AD8D6
+_080AD8D4:
+ ldr r0, _080AD930 @ =0x0000fffe
+_080AD8D6:
+ strh r0, [r2, 0x1E]
+_080AD8D8:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080AD91A
+ ldr r4, _080AD934 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080AD8EA:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080AD8EA
+_080AD91A:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080AD92A
+ b _080ADA98
+_080AD92A:
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080ADA44
+ .align 2, 0
+_080AD930: .4byte 0x0000fffe
+_080AD934: .4byte gSprites
+_080AD938:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080AD960
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ands r0, r3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080AD95C
+ movs r0, 0x2
+ b _080AD95E
+_080AD95C:
+ ldr r0, _080AD9B8 @ =0x0000fffe
+_080AD95E:
+ strh r0, [r2, 0x1E]
+_080AD960:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080AD9A2
+ ldr r4, _080AD9BC @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080AD972:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080AD972
+_080AD9A2:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x60
+ bne _080ADA98
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080ADA44
+ .align 2, 0
+_080AD9B8: .4byte 0x0000fffe
+_080AD9BC: .4byte gSprites
+_080AD9C0:
+ movs r7, 0x20
+ ldrsh r1, [r2, r7]
+ lsls r1, 1
+ ldrh r0, [r2, 0x1C]
+ subs r0, r1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AD9F4
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD9F0
+ strh r3, [r2, 0x1E]
+ b _080AD9F4
+_080AD9F0:
+ ldr r0, _080ADA4C @ =0x0000fffe
+ strh r0, [r2, 0x1E]
+_080AD9F4:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080ADA36
+ ldr r4, _080ADA50 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080ADA06:
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080ADA06
+_080ADA36:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080ADA98
+_080ADA44:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080ADA98
+ .align 2, 0
+_080ADA4C: .4byte 0x0000fffe
+_080ADA50: .4byte gSprites
+_080ADA54:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080ADA92
+ ldr r6, _080ADAA0 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+ movs r5, 0
+_080ADA68:
+ movs r7, 0xE
+ ldrsh r0, [r2, r7]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080ADA68
+_080ADA92:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080ADA98:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAA0: .4byte gSprites
+ thumb_func_end sub_80AD870
+
+ thumb_func_start sub_80ADAA4
+sub_80ADAA4: @ 80ADAA4
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ ldr r1, _080ADAD4 @ =gBattleAnimArgs
+ ldrb r2, [r1]
+ ldrh r3, [r1, 0x2]
+ movs r1, 0x10
+ bl BlendPalette
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAD4: .4byte gBattleAnimArgs
+ thumb_func_end sub_80ADAA4
+
+ thumb_func_start sub_80ADAD8
+sub_80ADAD8: @ 80ADAD8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080ADB30 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ mov r9, r1
+ ldr r4, _080ADB34 @ =gBattleAnimArgs
+ mov r8, r4
+ cmp r0, 0
+ bne _080ADB0E
+ ldrh r0, [r4]
+ strh r0, [r2, 0xA]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r2, 0xC]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r2, 0xE]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r2, 0x10]
+_080ADB0E:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _080ADB38 @ =gBattlerSpriteIds
+ ldr r0, _080ADB3C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ movs r5, 0x10
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _080ADB44
+ ldr r4, _080ADB40 @ =gUnknown_83E5EFC
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ b _080ADB4A
+ .align 2, 0
+_080ADB30: .4byte gTasks
+_080ADB34: .4byte gBattleAnimArgs
+_080ADB38: .4byte gBattlerSpriteIds
+_080ADB3C: .4byte gBattleAnimTarget
+_080ADB40: .4byte gUnknown_83E5EFC
+_080ADB44:
+ ldr r4, _080ADB90 @ =gUnknown_83E5F0C
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+_080ADB4A:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, r4
+ ldrb r5, [r0]
+ lsls r0, r7, 2
+ adds r1, r0, r7
+ lsls r1, 3
+ add r1, r9
+ movs r4, 0xE
+ ldrsh r1, [r1, r4]
+ mov r12, r0
+ cmp r1, 0x1
+ bne _080ADB98
+ ldr r2, _080ADB94 @ =gSprites
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ mov r10, r0
+ mov r0, r8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ lsls r0, r5, 24
+ asrs r0, 24
+ muls r0, r1
+ cmp r0, 0
+ bge _080ADB88
+ negs r0, r0
+_080ADB88:
+ mov r5, r10
+ strh r0, [r5, 0x26]
+ b _080ADBB2
+ .align 2, 0
+_080ADB90: .4byte gUnknown_83E5F0C
+_080ADB94: .4byte gSprites
+_080ADB98:
+ ldr r3, _080ADBE8 @ =gSprites
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ lsls r0, r5, 24
+ asrs r0, 24
+ mov r5, r8
+ ldrh r1, [r5, 0x2]
+ muls r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_080ADBB2:
+ mov r1, r12
+ adds r0, r1, r7
+ lsls r0, 3
+ add r0, r9
+ movs r4, 0x8
+ ldrsh r1, [r0, r4]
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _080ADBD8
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_080ADBD8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADBE8: .4byte gSprites
+ thumb_func_end sub_80ADAD8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_berrytree.s b/asm/fldeff_berrytree.s
deleted file mode 100644
index 83c9c8be8..000000000
--- a/asm/fldeff_berrytree.s
+++ /dev/null
@@ -1,13 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_56
-nullsub_56: @ 80A0E74
- bx lr
- thumb_func_end nullsub_56
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
index 2497c695d..c98cda3b7 100644
--- a/asm/fldeff_cut.s
+++ b/asm/fldeff_cut.s
@@ -44,34 +44,34 @@ sub_8097898: @ 8097898
lsrs r0, 24
cmp r0, 0x1
bne _08097904
- ldr r1, _080978D0 @ =gUnknown_3005024
- ldr r0, _080978D4 @ =hm_add_c3_launch_phase_2
+ ldr r1, _080978D0 @ =gFieldCallback2
+ ldr r0, _080978D4 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _080978D8 @ =gUnknown_203B0C4
+ ldr r1, _080978D8 @ =gPostMenuFieldCallback
ldr r0, _080978DC @ =sub_80979D0
b _080978EC
.align 2, 0
_080978CC: .4byte gUnknown_2039874
-_080978D0: .4byte gUnknown_3005024
-_080978D4: .4byte hm_add_c3_launch_phase_2
-_080978D8: .4byte gUnknown_203B0C4
+_080978D0: .4byte gFieldCallback2
+_080978D4: .4byte FieldCallback_PrepareFadeInFromMenu
+_080978D8: .4byte gPostMenuFieldCallback
_080978DC: .4byte sub_80979D0
_080978E0:
strb r0, [r4]
_080978E2:
- ldr r1, _080978F4 @ =gUnknown_3005024
- ldr r0, _080978F8 @ =hm_add_c3_launch_phase_2
+ ldr r1, _080978F4 @ =gFieldCallback2
+ ldr r0, _080978F8 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _080978FC @ =gUnknown_203B0C4
+ ldr r1, _080978FC @ =gPostMenuFieldCallback
ldr r0, _08097900 @ =sub_8097984
_080978EC:
str r0, [r1]
movs r0, 0x1
b _08097970
.align 2, 0
-_080978F4: .4byte gUnknown_3005024
-_080978F8: .4byte hm_add_c3_launch_phase_2
-_080978FC: .4byte gUnknown_203B0C4
+_080978F4: .4byte gFieldCallback2
+_080978F8: .4byte FieldCallback_PrepareFadeInFromMenu
+_080978FC: .4byte gPostMenuFieldCallback
_08097900: .4byte sub_8097984
_08097904:
ldr r4, _0809797C @ =gUnknown_2039A04
@@ -380,7 +380,7 @@ sub_8097B50: @ 8097B50
asrs r0, 16
lsrs r7, r1, 16
asrs r1, 16
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
lsls r0, 16
lsrs r2, r0, 16
ldr r1, _08097B84 @ =gUnknown_83D4100
diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s
index 6466c706e..c25978eb1 100644
--- a/asm/fldeff_flash.s
+++ b/asm/fldeff_flash.s
@@ -17,10 +17,10 @@ sub_80C9B2C: @ 80C9B2C
lsls r0, 24
cmp r0, 0
bne _080C9B6C
- ldr r1, _080C9B5C @ =gUnknown_3005024
- ldr r0, _080C9B60 @ =hm_add_c3_launch_phase_2
+ ldr r1, _080C9B5C @ =gFieldCallback2
+ ldr r0, _080C9B60 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _080C9B64 @ =gUnknown_203B0C4
+ ldr r1, _080C9B64 @ =gPostMenuFieldCallback
ldr r0, _080C9B68 @ =sub_80C9B74
str r0, [r1]
movs r0, 0x1
@@ -28,9 +28,9 @@ sub_80C9B2C: @ 80C9B2C
.align 2, 0
_080C9B54: .4byte gMapHeader
_080C9B58: .4byte 0x00000806
-_080C9B5C: .4byte gUnknown_3005024
-_080C9B60: .4byte hm_add_c3_launch_phase_2
-_080C9B64: .4byte gUnknown_203B0C4
+_080C9B5C: .4byte gFieldCallback2
+_080C9B60: .4byte FieldCallback_PrepareFadeInFromMenu
+_080C9B64: .4byte gPostMenuFieldCallback
_080C9B68: .4byte sub_80C9B74
_080C9B6C:
movs r0, 0
diff --git a/asm/fldeff_softboiled.s b/asm/fldeff_softboiled.s
deleted file mode 100644
index 857686ab3..000000000
--- a/asm/fldeff_softboiled.s
+++ /dev/null
@@ -1,366 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start hm_prepare_dive_probably
-hm_prepare_dive_probably: @ 80E5684
- push {r4-r6,lr}
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x64
- muls r0, r6
- ldr r4, _080E56D0 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- muls r0, r6
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bhi _080E56D4
- movs r0, 0
- b _080E56D6
- .align 2, 0
-_080E56D0: .4byte gPlayerParty
-_080E56D4:
- movs r0, 0x1
-_080E56D6:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end hm_prepare_dive_probably
-
- thumb_func_start sub_80E56DC
-sub_80E56DC: @ 80E56DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E5718 @ =gUnknown_203B0A0
- movs r1, 0xA
- strb r1, [r0, 0xB]
- ldrb r1, [r0, 0x9]
- strb r1, [r0, 0xA]
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_811F818
- movs r0, 0x5
- bl sub_8121D0C
- ldr r1, _080E571C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E5720 @ =sub_811FB28
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5718: .4byte gUnknown_203B0A0
-_080E571C: .4byte gTasks
-_080E5720: .4byte sub_811FB28
- thumb_func_end sub_80E56DC
-
- thumb_func_start sub_80E5724
-sub_80E5724: @ 80E5724
- 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
- str r4, [sp, 0x4]
- ldr r1, _080E575C @ =gUnknown_203B0A0
- ldrb r7, [r1, 0x9]
- mov r8, r7
- ldrb r0, [r1, 0xA]
- adds r5, r0, 0
- cmp r5, 0x6
- bls _080E5768
- movs r0, 0
- strb r0, [r1, 0xB]
- bl sub_8121D0C
- ldr r1, _080E5760 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E5764 @ =sub_811FB28
- str r1, [r0]
- b _080E57D4
- .align 2, 0
-_080E575C: .4byte gUnknown_203B0A0
-_080E5760: .4byte gTasks
-_080E5764: .4byte sub_811FB28
-_080E5768:
- movs r0, 0x64
- mov r10, r0
- mov r0, r10
- muls r0, r5
- ldr r1, _080E57A0 @ =gPlayerParty
- mov r9, r1
- adds r6, r0, r1
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080E5796
- cmp r7, r5
- beq _080E5796
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- cmp r0, r4
- bne _080E57A4
-_080E5796:
- ldr r0, [sp, 0x4]
- bl sub_80E5934
- b _080E57D4
- .align 2, 0
-_080E57A0: .4byte gPlayerParty
-_080E57A4:
- movs r0, 0x1
- bl PlaySE
- mov r1, r10
- mov r0, r8
- muls r0, r1
- add r0, r9
- movs r1, 0x3A
- bl GetMonData
- movs r1, 0x5
- bl __udivsi3
- adds r3, r0, 0
- lsls r3, 16
- asrs r3, 16
- movs r2, 0x1
- negs r2, r2
- ldr r0, _080E57E4 @ =sub_80E57E8
- str r0, [sp]
- ldr r0, [sp, 0x4]
- mov r1, r8
- bl sub_8120760
-_080E57D4:
- 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
-_080E57E4: .4byte sub_80E57E8
- thumb_func_end sub_80E5724
-
- thumb_func_start sub_80E57E8
-sub_80E57E8: @ 80E57E8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl PlaySE
- ldr r5, _080E5830 @ =gUnknown_203B0A0
- movs r1, 0x9
- ldrsb r1, [r5, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E5834 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- movs r1, 0x5
- bl __udivsi3
- adds r3, r0, 0
- lsls r3, 16
- asrs r3, 16
- ldrb r1, [r5, 0xA]
- ldr r0, _080E5838 @ =sub_80E583C
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_8120760
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5830: .4byte gUnknown_203B0A0
-_080E5834: .4byte gPlayerParty
-_080E5838: .4byte sub_80E583C
- thumb_func_end sub_80E57E8
-
- thumb_func_start sub_80E583C
-sub_80E583C: @ 80E583C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080E5884 @ =gUnknown_203B0A0
- movs r1, 0xA
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E5888 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E588C @ =gStringVar1
- bl GetMonNickname
- ldr r4, _080E5890 @ =gStringVar4
- ldr r1, _080E5894 @ =gUnknown_8416F27
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81202F8
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, _080E5898 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E589C @ =sub_80E58A0
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5884: .4byte gUnknown_203B0A0
-_080E5888: .4byte gPlayerParty
-_080E588C: .4byte gStringVar1
-_080E5890: .4byte gStringVar4
-_080E5894: .4byte gUnknown_8416F27
-_080E5898: .4byte gTasks
-_080E589C: .4byte sub_80E58A0
- thumb_func_end sub_80E583C
-
- thumb_func_start sub_80E58A0
-sub_80E58A0: @ 80E58A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8120370
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E58EE
- ldr r4, _080E58F4 @ =gUnknown_203B0A0
- movs r0, 0
- strb r0, [r4, 0xB]
- ldrb r0, [r4, 0x9]
- movs r1, 0
- bl sub_811F818
- ldrb r0, [r4, 0xA]
- strb r0, [r4, 0x9]
- ldrb r0, [r4, 0xA]
- movs r1, 0x1
- bl sub_811F818
- movs r0, 0x6
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- bl ClearWindowTilemap
- movs r0, 0
- bl sub_8121D0C
- ldr r1, _080E58F8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E58FC @ =sub_811FB28
- str r1, [r0]
-_080E58EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E58F4: .4byte gUnknown_203B0A0
-_080E58F8: .4byte gTasks
-_080E58FC: .4byte sub_811FB28
- thumb_func_end sub_80E58A0
-
- thumb_func_start sub_80E5900
-sub_80E5900: @ 80E5900
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8120370
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E5926
- movs r0, 0x5
- bl sub_8121D0C
- ldr r0, _080E592C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080E5930 @ =sub_811FB28
- str r0, [r1]
-_080E5926:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E592C: .4byte gTasks
-_080E5930: .4byte sub_811FB28
- thumb_func_end sub_80E5900
-
- thumb_func_start sub_80E5934
-sub_80E5934: @ 80E5934
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080E5964 @ =gUnknown_84169F8
- movs r1, 0
- bl sub_81202F8
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, _080E5968 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E596C @ =sub_80E5900
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5964: .4byte gUnknown_84169F8
-_080E5968: .4byte gTasks
-_080E596C: .4byte sub_80E5900
- thumb_func_end sub_80E5934
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
index 778f2c916..ace765f55 100644
--- a/asm/fldeff_strength.s
+++ b/asm/fldeff_strength.s
@@ -28,10 +28,10 @@ _080D080C:
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
- ldr r1, _080D0830 @ =gUnknown_3005024
- ldr r0, _080D0834 @ =hm_add_c3_launch_phase_2
+ ldr r1, _080D0830 @ =gFieldCallback2
+ ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _080D0838 @ =gUnknown_203B0C4
+ ldr r1, _080D0838 @ =gPostMenuFieldCallback
ldr r0, _080D083C @ =sub_80D0840
str r0, [r1]
movs r0, 0x1
@@ -41,9 +41,9 @@ _080D0826:
bx r1
.align 2, 0
_080D082C: .4byte gSpecialVar_Result
-_080D0830: .4byte gUnknown_3005024
-_080D0834: .4byte hm_add_c3_launch_phase_2
-_080D0838: .4byte gUnknown_203B0C4
+_080D0830: .4byte gFieldCallback2
+_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu
+_080D0838: .4byte gPostMenuFieldCallback
_080D083C: .4byte sub_80D0840
thumb_func_end sub_80D07EC
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
index 47b9ef390..aead537d4 100644
--- a/asm/fldeff_sweetscent.s
+++ b/asm/fldeff_sweetscent.s
@@ -20,18 +20,18 @@ _080DE0C4: .4byte gUnknown_203B0A0
thumb_func_start sub_80DE0C8
sub_80DE0C8: @ 80DE0C8
- ldr r1, _080DE0D8 @ =gUnknown_3005024
- ldr r0, _080DE0DC @ =hm_add_c3_launch_phase_2
+ ldr r1, _080DE0D8 @ =gFieldCallback2
+ ldr r0, _080DE0DC @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _080DE0E0 @ =gUnknown_203B0C4
+ ldr r1, _080DE0E0 @ =gPostMenuFieldCallback
ldr r0, _080DE0E4 @ =hm2_sweet_scent
str r0, [r1]
movs r0, 0x1
bx lr
.align 2, 0
-_080DE0D8: .4byte gUnknown_3005024
-_080DE0DC: .4byte hm_add_c3_launch_phase_2
-_080DE0E0: .4byte gUnknown_203B0C4
+_080DE0D8: .4byte gFieldCallback2
+_080DE0DC: .4byte FieldCallback_PrepareFadeInFromMenu
+_080DE0E0: .4byte gPostMenuFieldCallback
_080DE0E4: .4byte hm2_sweet_scent
thumb_func_end sub_80DE0C8
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
deleted file mode 100644
index 698ad4c23..000000000
--- a/asm/fldeff_teleport.s
+++ /dev/null
@@ -1,92 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpFieldMove_Teleport
-SetUpFieldMove_Teleport: @ 80F66F0
- push {lr}
- ldr r0, _080F6708 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080F670C
- movs r0, 0
- b _080F671A
- .align 2, 0
-_080F6708: .4byte gMapHeader
-_080F670C:
- ldr r1, _080F6720 @ =gUnknown_3005024
- ldr r0, _080F6724 @ =hm_add_c3_launch_phase_2
- str r0, [r1]
- ldr r1, _080F6728 @ =gUnknown_203B0C4
- ldr r0, _080F672C @ =hm_teleport_run_dp02scr
- str r0, [r1]
- movs r0, 0x1
-_080F671A:
- pop {r1}
- bx r1
- .align 2, 0
-_080F6720: .4byte gUnknown_3005024
-_080F6724: .4byte hm_add_c3_launch_phase_2
-_080F6728: .4byte gUnknown_203B0C4
-_080F672C: .4byte hm_teleport_run_dp02scr
- thumb_func_end SetUpFieldMove_Teleport
-
- thumb_func_start hm_teleport_run_dp02scr
-hm_teleport_run_dp02scr: @ 80F6730
- push {lr}
- bl sub_8054D08
- movs r0, 0x3F
- bl FieldEffectStart
- bl GetCursorSelectionMonId
- ldr r1, _080F674C @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080F674C: .4byte gFieldEffectArguments
- thumb_func_end hm_teleport_run_dp02scr
-
- thumb_func_start FldEff_UseTeleport
-FldEff_UseTeleport: @ 80F6750
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F6778 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080F677C @ =sub_80F6780
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080F6778: .4byte gTasks
-_080F677C: .4byte sub_80F6780
- thumb_func_end FldEff_UseTeleport
-
- thumb_func_start sub_80F6780
-sub_80F6780: @ 80F6780
- push {lr}
- movs r0, 0x3F
- bl FieldEffectActiveListRemove
- bl sub_8085B64
- pop {r0}
- bx r0
- thumb_func_end sub_80F6780
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/flying.s b/asm/flying.s
new file mode 100644
index 000000000..ada0296c8
--- /dev/null
+++ b/asm/flying.s
@@ -0,0 +1,2945 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B18A0
+sub_80B18A0: @ 80B18A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B18DC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B18DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B18A0
+
+ thumb_func_start sub_80B18E4
+sub_80B18E4: @ 80B18E4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x14
+ strh r0, [r4, 0x22]
+ movs r0, 0xBF
+ strh r0, [r4, 0x30]
+ ldr r1, _080B1908 @ =sub_80B190C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1908: .4byte sub_80B190C
+ thumb_func_end sub_80B18E4
+
+ thumb_func_start sub_80B190C
+sub_80B190C: @ 80B190C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x47
+ bne _080B1946
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B1946:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B190C
+
+ thumb_func_start sub_80B194C
+sub_80B194C: @ 80B194C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B197C @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r1, _080B1980 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ ldr r0, _080B1984 @ =0x00002719
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldr r0, _080B1988 @ =sub_80B198C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B197C: .4byte gTasks
+_080B1980: .4byte gBattleAnimArgs
+_080B1984: .4byte 0x00002719
+_080B1988: .4byte sub_80B198C
+ thumb_func_end sub_80B194C
+
+ thumb_func_start sub_80B198C
+sub_80B198C: @ 80B198C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080B1A0C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r3, r4]
+ adds r7, r2, 0
+ cmp r0, r1
+ bne _080B19EA
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrb r0, [r3, 0xC]
+ ldr r2, _080B1A10 @ =gPlttBufferFaded
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r0, r3
+ lsls r1, 1
+ adds r1, r2
+ ldrh r6, [r1]
+ movs r4, 0x7
+ mov r12, r0
+ ldr r0, _080B1A14 @ =0x00000107
+ add r0, r12
+ lsls r0, 1
+ adds r3, r0, r2
+_080B19D2:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _080B19D2
+ ldr r0, _080B1A18 @ =0x00000101
+ add r0, r12
+ lsls r0, 1
+ adds r0, r2
+ strh r6, [r0]
+_080B19EA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080B1A04
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B1A04:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1A0C: .4byte gTasks
+_080B1A10: .4byte gPlttBufferFaded
+_080B1A14: .4byte 0x00000107
+_080B1A18: .4byte 0x00000101
+ thumb_func_end sub_80B198C
+
+ thumb_func_start sub_80B1A1C
+sub_80B1A1C: @ 80B1A1C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080B1A88 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1A3C
+ ldr r1, _080B1A8C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080B1A3C:
+ ldr r4, _080B1A8C @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r5, _080B1A90 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080B1A94 @ =sub_8074F50
+ str r0, [r6, 0x1C]
+ ldr r1, _080B1A98 @ =sub_80B1A9C
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1A88: .4byte gBattleAnimAttacker
+_080B1A8C: .4byte gBattleAnimArgs
+_080B1A90: .4byte gBattleAnimTarget
+_080B1A94: .4byte sub_8074F50
+_080B1A98: .4byte sub_80B1A9C
+ thumb_func_end sub_80B1A1C
+
+ thumb_func_start sub_80B1A9C
+sub_80B1A9C: @ 80B1A9C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1AB0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B1AB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1A9C
+
+ thumb_func_start sub_80B1AB8
+sub_80B1AB8: @ 80B1AB8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B1B54 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1AE4
+ ldr r1, _080B1B58 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080B1AE4:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1AFC
+ ldr r0, _080B1B58 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080B1AFC:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ ldr r2, _080B1B58 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ ldrh r3, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x20]
+ lsrs r0, 24
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080B1B60
+ ldr r4, _080B1B5C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080B1B72
+ .align 2, 0
+_080B1B54: .4byte gBattleAnimAttacker
+_080B1B58: .4byte gBattleAnimArgs
+_080B1B5C: .4byte gBattleAnimTarget
+_080B1B60:
+ ldr r0, _080B1BA0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_8076D9C
+_080B1B72:
+ ldr r4, _080B1BA4 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ ldrh r3, [r5, 0x36]
+ adds r0, r3
+ strh r0, [r5, 0x36]
+ ldr r0, _080B1BA8 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080B1BAC @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1BA0: .4byte gBattleAnimTarget
+_080B1BA4: .4byte gBattleAnimArgs
+_080B1BA8: .4byte sub_8075590
+_080B1BAC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B1AB8
+
+ thumb_func_start sub_80B1BB0
+sub_80B1BB0: @ 80B1BB0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080B1BEC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080B1BF0 @ =sub_80B1BF8
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080B1BF4 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1BEC: .4byte gBattleAnimArgs
+_080B1BF0: .4byte sub_80B1BF8
+_080B1BF4: .4byte gSprites
+ thumb_func_end sub_80B1BB0
+
+ thumb_func_start sub_80B1BF8
+sub_80B1BF8: @ 80B1BF8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080B1C0C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080B1C1E
+_080B1C0C:
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+_080B1C1E:
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080B1C36
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080B1C36:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1BF8
+
+ thumb_func_start sub_80B1C3C
+sub_80B1C3C: @ 80B1C3C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080B1C64 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1C6C
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldr r0, _080B1C68 @ =0x0000ffe0
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080B1C72
+ .align 2, 0
+_080B1C64: .4byte gBattleAnimAttacker
+_080B1C68: .4byte 0x0000ffe0
+_080B1C6C:
+ ldr r0, _080B1CB0 @ =0x0000ffe0
+ strh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+_080B1C72:
+ ldr r0, _080B1CB4 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080B1CB8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080B1CBC @ =sub_80B1CC0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1CB0: .4byte 0x0000ffe0
+_080B1CB4: .4byte gBattleAnimArgs
+_080B1CB8: .4byte gBattleAnimTarget
+_080B1CBC: .4byte sub_80B1CC0
+ thumb_func_end sub_80B1C3C
+
+ thumb_func_start sub_80B1CC0
+sub_80B1CC0: @ 80B1CC0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80755E0
+ ldrh r1, [r4, 0x34]
+ lsrs r0, r1, 8
+ cmp r0, 0xC8
+ bls _080B1CE8
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+_080B1CE8:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080B1D0A
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ ble _080B1D30
+_080B1D0A:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080B1D38 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B1D30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1D38: .4byte gSprites
+ thumb_func_end sub_80B1CC0
+
+ thumb_func_start sub_80B1D3C
+sub_80B1D3C: @ 80B1D3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B1D7C
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1D6E
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080B1D6E:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080B1D84 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080B1D7C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1D84: .4byte gUnknown_2037EE2
+ thumb_func_end sub_80B1D3C
+
+ thumb_func_start sub_80B1D88
+sub_80B1D88: @ 80B1D88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r5, r7, 0
+ adds r5, 0x2E
+ ldr r0, _080B1DA8 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1DB0
+ ldr r0, _080B1DAC @ =gBattleAnimAttacker
+ b _080B1DB2
+ .align 2, 0
+_080B1DA8: .4byte gBattleAnimArgs
+_080B1DAC: .4byte gBattleAnimAttacker
+_080B1DB0:
+ ldr r0, _080B1E5C @ =gBattleAnimTarget
+_080B1DB2:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B1DC8
+ ldr r1, _080B1E60 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080B1DC8:
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080B1E60 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ ldrh r1, [r4, 0x2]
+ lsrs r0, 24
+ adds r1, r0, r1
+ strh r1, [r7, 0x22]
+ lsls r1, 8
+ strh r1, [r5, 0x8]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 1
+ ldrh r2, [r5, 0xE]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0xE]
+ ldrb r0, [r5]
+ movs r2, 0x4
+ mov r8, r2
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4, 0x4]
+ ldrb r1, [r4, 0x4]
+ strh r1, [r5, 0x2]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x6]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0xC]
+ subs r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x7F
+ bhi _080B1EBE
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B1E64
+ adds r0, r6, 0
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r7, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ b _080B1E7C
+ .align 2, 0
+_080B1E5C: .4byte gBattleAnimTarget
+_080B1E60: .4byte gBattleAnimArgs
+_080B1E64:
+ adds r0, r6, 0
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+_080B1E7C:
+ ldrb r1, [r5, 0xE]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r5, 0xE]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _080B1F1E
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ b _080B1F16
+_080B1EBE:
+ adds r0, r6, 0
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ ldrb r0, [r5, 0xE]
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r5, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1F1E
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ mov r2, r8
+ orrs r0, r2
+_080B1F16:
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+_080B1F1E:
+ ldrh r1, [r5, 0x2]
+ lsrs r1, 6
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r3, _080B1F88 @ =gSineTable
+ ldrh r0, [r5, 0x2]
+ lsls r0, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldrb r0, [r5, 0xC]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ ldrb r2, [r7, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r7, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r5, [r5, 0xA]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ ldr r1, _080B1F8C @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r4, [r2, 0x2]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldr r0, _080B1F90 @ =sub_80B1F94
+ str r0, [r7, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1F88: .4byte gSineTable
+_080B1F8C: .4byte gOamMatrices
+_080B1F90: .4byte sub_80B1F94
+ thumb_func_end sub_80B1D88
+
+ thumb_func_start sub_80B1F94
+sub_80B1F94: @ 80B1F94
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r6, 0
+ adds r4, r5, 0
+ adds r4, 0x2E
+ ldrb r2, [r4]
+ movs r7, 0x1
+ movs r0, 0x1
+ mov r9, r0
+ ands r0, r2
+ cmp r0, 0
+ beq _080B1FCE
+ ldrb r0, [r4, 0x1]
+ adds r1, r0, 0
+ adds r1, 0xFF
+ strb r1, [r4, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1FC2
+ b _080B24AA
+_080B1FC2:
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080B24AA
+_080B1FCE:
+ ldrh r0, [r4, 0x2]
+ lsrs r1, r0, 6
+ mov r12, r0
+ cmp r1, 0x1
+ bne _080B1FDA
+ b _080B20FE
+_080B1FDA:
+ cmp r1, 0x1
+ bgt _080B1FE4
+ cmp r1, 0
+ beq _080B1FF2
+ b _080B23F0
+_080B1FE4:
+ cmp r1, 0x2
+ bne _080B1FEA
+ b _080B21F2
+_080B1FEA:
+ cmp r1, 0x3
+ bne _080B1FF0
+ b _080B22E6
+_080B1FF0:
+ b _080B23F0
+_080B1FF2:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080B2006
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080B20F4
+_080B2006:
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080B2028
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ strb r1, [r4]
+ strb r6, [r4, 0x1]
+ b _080B20F4
+_080B2028:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080B20F4
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B20E6
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B20B6
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B209C
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B20D4
+_080B209C:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B20D4
+_080B20B6:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B20CA
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _080B20D2
+_080B20CA:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_080B20D2:
+ strb r0, [r1]
+_080B20D4:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080B20E6:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_080B20F4:
+ ldrb r1, [r4]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r4]
+ b _080B23F0
+_080B20FE:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080B210C
+ movs r0, 0x8
+ orrs r0, r2
+ b _080B2114
+_080B210C:
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080B211C
+ adds r0, r2, 0
+_080B2114:
+ orrs r0, r7
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080B21E8
+_080B211C:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080B21E8
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B21DA
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B21AA
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B2190
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B21C8
+_080B2190:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B21C8
+_080B21AA:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B21BE
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _080B21C6
+_080B21BE:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_080B21C6:
+ strb r0, [r1]
+_080B21C8:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080B21DA:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_080B21E8:
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ b _080B23EC
+_080B21F2:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080B2200
+ movs r0, 0x8
+ orrs r0, r2
+ b _080B2208
+_080B2200:
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080B2210
+ adds r0, r2, 0
+_080B2208:
+ orrs r0, r7
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080B22DC
+_080B2210:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080B22DC
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B22CE
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B229E
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B2284
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B22BC
+_080B2284:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B22BC
+_080B229E:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B22B2
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _080B22BA
+_080B22B2:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_080B22BA:
+ strb r0, [r1]
+_080B22BC:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080B22CE:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_080B22DC:
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x20
+ b _080B23EC
+_080B22E6:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080B22F6
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r4]
+ b _080B23E4
+_080B22F6:
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080B2318
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ strb r1, [r4]
+ strb r6, [r4, 0x1]
+ b _080B23E4
+_080B2318:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080B23E4
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B23D6
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B23A6
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B238C
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B23C4
+_080B238C:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080B23C4
+_080B23A6:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080B23BA
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _080B23C2
+_080B23BA:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_080B23C2:
+ strb r0, [r1]
+_080B23C4:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080B23D6:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_080B23E4:
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x30
+_080B23EC:
+ orrs r1, r0
+ strb r1, [r4]
+_080B23F0:
+ ldrb r1, [r4]
+ lsls r1, 30
+ lsrs r1, 31
+ adds r0, r4, 0
+ adds r0, 0xC
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r3, _080B2478 @ =gSineTable
+ mov r2, r12
+ lsls r0, r2, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r1, [r4, 0xA]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldr r1, _080B247C @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r6, [r2, 0x2]
+ lsls r0, r6, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldrh r0, [r4, 0x6]
+ ldrh r2, [r4, 0x8]
+ adds r0, r2
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2480
+ ldrh r0, [r4, 0x4]
+ subs r1, 0x1
+ ands r1, r0
+ ldrh r0, [r4, 0x2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2]
+ b _080B2490
+ .align 2, 0
+_080B2478: .4byte gSineTable
+_080B247C: .4byte gOamMatrices
+_080B2480:
+ ldrh r0, [r4, 0x4]
+ ldr r1, _080B24B8 @ =0x00007fff
+ ands r1, r0
+ ldrh r2, [r4, 0x2]
+ adds r1, r2
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x2]
+_080B2490:
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ ldrh r0, [r4, 0xE]
+ lsrs r0, 1
+ cmp r1, r0
+ blt _080B24AA
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080B24BC @ =sub_80B1D3C
+ str r0, [r5, 0x1C]
+_080B24AA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B24B8: .4byte 0x00007fff
+_080B24BC: .4byte sub_80B1D3C
+ thumb_func_end sub_80B1F94
+
+ thumb_func_start sub_80B24C0
+sub_80B24C0: @ 80B24C0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _080B2508 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldr r5, _080B250C @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080B2510 @ =sub_8075DF4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2508: .4byte gBattleAnimTarget
+_080B250C: .4byte gBattleAnimAttacker
+_080B2510: .4byte sub_8075DF4
+ thumb_func_end sub_80B24C0
+
+ thumb_func_start sub_80B2514
+sub_80B2514: @ 80B2514
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080B2554 @ =gBattleAnimArgs
+ ldrh r0, [r5]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x34]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B25C4
+ ldr r0, _080B2558 @ =gUnknown_2023BD6
+ ldr r1, _080B255C @ =gBattleAnimTarget
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2560
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ b _080B256E
+ .align 2, 0
+_080B2554: .4byte gBattleAnimArgs
+_080B2558: .4byte gUnknown_2023BD6
+_080B255C: .4byte gBattleAnimTarget
+_080B2560:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+_080B256E:
+ strh r0, [r4, 0x3C]
+ ldr r0, _080B259C @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080B25A4
+ ldr r0, _080B25A0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080B25D8
+ .align 2, 0
+_080B259C: .4byte gBattleAnimArgs
+_080B25A0: .4byte gBattleAnimTarget
+_080B25A4:
+ ldr r0, _080B25C0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080B25D8
+ .align 2, 0
+_080B25C0: .4byte gBattleAnimTarget
+_080B25C4:
+ ldr r0, _080B267C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x3C]
+_080B25D8:
+ ldr r5, _080B2680 @ =gSineTable
+ ldrh r3, [r4, 0x30]
+ movs r1, 0xFF
+ ands r1, r3
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r4, 0x36]
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ strh r2, [r4, 0x26]
+ strh r2, [r4, 0x24]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r6, r0, 27
+ lsls r3, 16
+ lsrs r3, 24
+ strh r3, [r4, 0x30]
+ bl Random
+ lsls r0, 16
+ asrs r7, r0, 16
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r7
+ cmp r0, 0
+ beq _080B2622
+ ldrh r1, [r4, 0x30]
+ movs r0, 0xFF
+ subs r0, r1
+ strh r0, [r4, 0x30]
+_080B2622:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r3, _080B2684 @ =gOamMatrices
+ lsls r2, r6, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ adds r3, r4, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ ands r0, r7
+ cmp r0, 0
+ beq _080B2672
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r1, 0x1
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+_080B2672:
+ ldr r0, _080B2688 @ =sub_80B268C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B267C: .4byte gBattleAnimTarget
+_080B2680: .4byte gSineTable
+_080B2684: .4byte gOamMatrices
+_080B2688: .4byte sub_80B268C
+ thumb_func_end sub_80B2514
+
+ thumb_func_start sub_80B268C
+sub_80B268C: @ 80B268C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r4, 0
+ adds r5, 0x2E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ mov r8, r1
+ movs r7, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080B2770
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r6, r0, 8
+ strh r6, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r3, r0, 8
+ strh r3, [r4, 0x26]
+ ldrh r2, [r4, 0x34]
+ movs r1, 0xFF
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ ands r1, r2
+ cmp r0, r1
+ blt _080B2770
+ ldrh r0, [r4, 0x20]
+ adds r0, r6
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ strh r7, [r4, 0x24]
+ strh r7, [r4, 0x26]
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldrh r0, [r4, 0x22]
+ lsls r0, 8
+ strh r0, [r5, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ lsrs r1, r0, 8
+ strh r1, [r5, 0x6]
+ strh r7, [r5, 0x2]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B2740
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080B2738
+ ldr r0, _080B2734 @ =0x00008001
+ b _080B274E
+ .align 2, 0
+_080B2734: .4byte 0x00008001
+_080B2738:
+ ldr r0, _080B273C @ =0x00008002
+ b _080B274E
+ .align 2, 0
+_080B273C: .4byte 0x00008002
+_080B2740:
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080B274C
+ movs r0, 0x1
+ b _080B274E
+_080B274C:
+ movs r0, 0x2
+_080B274E:
+ strh r0, [r5, 0x4]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ lsrs r0, 8
+ strb r0, [r5, 0xC]
+ subs r0, 0x2
+ strb r0, [r5, 0xD]
+ mov r0, sp
+ ldrh r1, [r0, 0xE]
+ lsls r1, 1
+ ldrh r2, [r5, 0xE]
+ movs r0, 0x1
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _080B277C @ =sub_80B1F94
+ str r0, [r4, 0x1C]
+_080B2770:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B277C: .4byte sub_80B1F94
+ thumb_func_end sub_80B268C
+
+ thumb_func_start sub_80B2780
+sub_80B2780: @ 80B2780
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080B2798 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B279C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075160
+ b _080B27A4
+ .align 2, 0
+_080B2798: .4byte gBattleAnimArgs
+_080B279C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075114
+_080B27A4:
+ ldr r4, _080B280C @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B27BC
+ ldr r0, _080B2810 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B27D2
+_080B27BC:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080B27D8
+ ldr r0, _080B2814 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B27D8
+_080B27D2:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+_080B27D8:
+ ldr r4, _080B280C @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+ strh r0, [r5, 0x20]
+ ldr r0, _080B2818 @ =0x00000ccc
+ strh r0, [r5, 0x30]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x24]
+ adds r0, r2
+ strh r0, [r5, 0x24]
+ strh r1, [r5, 0x2E]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080B281C @ =sub_80B2820
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B280C: .4byte gBattleAnimArgs
+_080B2810: .4byte gBattleAnimAttacker
+_080B2814: .4byte gBattleAnimTarget
+_080B2818: .4byte 0x00000ccc
+_080B281C: .4byte sub_80B2820
+ thumb_func_end sub_80B2780
+
+ thumb_func_start sub_80B2820
+sub_80B2820: @ 80B2820
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080B284A
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080B284A:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080B2862
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B2862:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B2820
+
+ thumb_func_start sub_80B2868
+sub_80B2868: @ 80B2868
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080B2900 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x8]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080B28E2
+ ldr r1, _080B2904 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r5, 0xD
+ negs r5, r5
+ adds r1, r5, 0
+ bl Sin
+ ldr r4, _080B2908 @ =gBattleAnimArgs
+ strh r0, [r4]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ adds r1, r5, 0
+ bl Cos
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ movs r0, 0x3
+ strh r0, [r4, 0x6]
+ ldr r0, _080B290C @ =gUnknown_83E7C98
+ mov r8, r0
+ ldr r5, _080B2910 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl CreateSpriteAndAnimate
+_080B28E2:
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x8
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080B28F6
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080B28F6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2900: .4byte gTasks
+_080B2904: .4byte gUnknown_2037EE2
+_080B2908: .4byte gBattleAnimArgs
+_080B290C: .4byte gUnknown_83E7C98
+_080B2910: .4byte gBattleAnimTarget
+ thumb_func_end sub_80B2868
+
+ thumb_func_start sub_80B2914
+sub_80B2914: @ 80B2914
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B2926
+ cmp r0, 0x1
+ beq _080B2958
+ b _080B296C
+_080B2926:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075160
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080B2954 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080B296C
+ .align 2, 0
+_080B2954: .4byte gSprites
+_080B2958:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B296C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B296C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B2914
+
+ thumb_func_start sub_80B2974
+sub_80B2974: @ 80B2974
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B29AC
+ cmp r0, 0x1
+ bgt _080B298A
+ cmp r0, 0
+ beq _080B2990
+ b _080B29FE
+_080B298A:
+ cmp r0, 0x2
+ beq _080B29C0
+ b _080B29FE
+_080B2990:
+ ldr r0, _080B29A8 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080B29B8
+ .align 2, 0
+_080B29A8: .4byte gBattleAnimTarget
+_080B29AC:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080B29FE
+_080B29B8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080B29FE
+_080B29C0:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0xA
+ strh r0, [r4, 0x26]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080B29FE
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080B2A04 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B29FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2A04: .4byte gSprites
+ thumb_func_end sub_80B2974
+
+ thumb_func_start sub_80B2A08
+sub_80B2A08: @ 80B2A08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080B2A44 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080B2A48 @ =sub_80B2A50
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r2, _080B2A4C @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2A44: .4byte gBattleAnimArgs
+_080B2A48: .4byte sub_80B2A50
+_080B2A4C: .4byte gSprites
+ thumb_func_end sub_80B2A08
+
+ thumb_func_start sub_80B2A50
+sub_80B2A50: @ 80B2A50
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080B2A64
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080B2AA8
+_080B2A64:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080B2A8A
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+ b _080B2AA8
+_080B2A8A:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080B2AA8
+ ldr r0, _080B2AAC @ =sub_80B2AB0
+ str r0, [r2, 0x1C]
+_080B2AA8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2AAC: .4byte sub_80B2AB0
+ thumb_func_end sub_80B2A50
+
+ thumb_func_start sub_80B2AB0
+sub_80B2AB0: @ 80B2AB0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080B2AE0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080B2AE0:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _080B2AEE
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080B2AEE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B2AB0
+
+ thumb_func_start sub_80B2AF4
+sub_80B2AF4: @ 80B2AF4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080B2B08
+ cmp r0, 0x1
+ beq _080B2B60
+ b _080B2BCC
+_080B2B08:
+ ldr r0, _080B2B18 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080B2B20
+ ldr r4, _080B2B1C @ =gBattleAnimAttacker
+ b _080B2B22
+ .align 2, 0
+_080B2B18: .4byte gBattleAnimArgs
+_080B2B1C: .4byte gBattleAnimAttacker
+_080B2B20:
+ ldr r4, _080B2B5C @ =gBattleAnimTarget
+_080B2B22:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ movs r3, 0x80
+ lsls r3, 2
+ strh r3, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075A1C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080B2BCC
+ .align 2, 0
+_080B2B5C: .4byte gBattleAnimTarget
+_080B2B60:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xB
+ bgt _080B2B6E
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x28
+ b _080B2B72
+_080B2B6E:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x28
+_080B2B72:
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x30
+ ldrsh r3, [r5, r0]
+ str r1, [sp]
+ adds r0, r5, 0
+ bl sub_8075A1C
+ ldrb r1, [r5, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ movs r0, 0xF4
+ lsls r0, 6
+ ldr r2, _080B2BD4 @ =gOamMatrices
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ adds r1, r0, 0x1
+ cmp r1, 0x80
+ ble _080B2BAC
+ movs r1, 0x80
+_080B2BAC:
+ movs r0, 0x40
+ subs r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r1, r0, 1
+ strh r1, [r5, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x18
+ bne _080B2BCC
+ adds r0, r5, 0
+ bl sub_8075AD8
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+_080B2BCC:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2BD4: .4byte gOamMatrices
+ thumb_func_end sub_80B2AF4
+
+ thumb_func_start sub_80B2BD8
+sub_80B2BD8: @ 80B2BD8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ ldr r4, _080B2BFC @ =0x000001ff
+ ands r4, r0
+ bl Random
+ movs r1, 0x7F
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080B2C00
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r4, r2
+ b _080B2C08
+ .align 2, 0
+_080B2BFC: .4byte 0x000001ff
+_080B2C00:
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r4
+_080B2C08:
+ strh r0, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2C1C
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ adds r0, r1, r0
+ b _080B2C24
+_080B2C1C:
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r1
+_080B2C24:
+ strh r0, [r5, 0x30]
+ ldr r2, _080B2C4C @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080B2C40
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+_080B2C40:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080B2C54
+ ldr r4, _080B2C50 @ =gBattleAnimAttacker
+ b _080B2C56
+ .align 2, 0
+_080B2C4C: .4byte gBattleAnimArgs
+_080B2C50: .4byte gBattleAnimAttacker
+_080B2C54:
+ ldr r4, _080B2C80 @ =gBattleAnimTarget
+_080B2C56:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x22]
+ ldr r0, _080B2C84 @ =sub_80B2C88
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2C80: .4byte gBattleAnimTarget
+_080B2C84: .4byte sub_80B2C88
+ thumb_func_end sub_80B2BD8
+
+ thumb_func_start sub_80B2C88
+sub_80B2C88: @ 80B2C88
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B2CA0
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _080B2CAA
+_080B2CA0:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_080B2CAA:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ strh r3, [r4, 0x2E]
+ adds r0, r2, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x30]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080B2CCA
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080B2CCA:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080B2CDE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B2CDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B2C88
+
+ thumb_func_start sub_80B2CE4
+sub_80B2CE4: @ 80B2CE4
+ movs r1, 0
+ strh r1, [r0, 0x3A]
+ movs r1, 0x40
+ strh r1, [r0, 0x3C]
+ ldr r1, _080B2CF4 @ =sub_80B2CF8
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080B2CF4: .4byte sub_80B2CF8
+ thumb_func_end sub_80B2CE4
+
+ thumb_func_start sub_80B2CF8
+sub_80B2CF8: @ 80B2CF8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080B2D0A
+ cmp r1, 0x1
+ beq _080B2D58
+ b _080B2D5E
+_080B2D0A:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080B2D5E
+ strh r1, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080B2D5E
+ ldrb r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2D5E
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080B2D5E
+_080B2D58:
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080B2D5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B2CF8
+
+ thumb_func_start sub_80B2D64
+sub_80B2D64: @ 80B2D64
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ ldrh r4, [r0, 0x20]
+ ldrh r5, [r0, 0x22]
+ ldr r6, _080B2E18 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ strh r0, [r1, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r2, r8
+ strh r6, [r2, 0x22]
+ ldrh r0, [r2, 0x20]
+ mov r9, r0
+ mov r1, r9
+ lsls r0, r1, 4
+ strh r0, [r2, 0x36]
+ lsls r0, r6, 4
+ strh r0, [r2, 0x38]
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ subs r0, r4, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3A]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ subs r0, r5, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ subs r5, r6
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8075B30
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl sub_8075A1C
+ ldr r0, _080B2E1C @ =sub_80B2E20
+ mov r2, r8
+ str r0, [r2, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2E18: .4byte gBattleAnimAttacker
+_080B2E1C: .4byte sub_80B2E20
+ thumb_func_end sub_80B2D64
+
+ thumb_func_start sub_80B2E20
+sub_80B2E20: @ 80B2E20
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x3C]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x2D
+ lsls r0, 16
+ movs r1, 0xA5
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080B2E5A
+ adds r1, r3, 0
+ cmp r1, 0x9D
+ bgt _080B2E5A
+ movs r0, 0x2D
+ negs r0, r0
+ cmp r1, r0
+ bge _080B2E60
+_080B2E5A:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080B2E60:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B2E20
+
+ thumb_func_start sub_80B2E64
+sub_80B2E64: @ 80B2E64
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080B2E94 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B2E9C
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B2E98 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ b _080B2EBA
+ .align 2, 0
+_080B2E94: .4byte gBattleAnimArgs
+_080B2E98: .4byte gSprites
+_080B2E9C:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B2EC8 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_080B2EBA:
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2EC8: .4byte gSprites
+ thumb_func_end sub_80B2E64
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/ghost.s b/asm/ghost.s
new file mode 100644
index 000000000..e3665a210
--- /dev/null
+++ b/asm/ghost.s
@@ -0,0 +1,4055 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B5268
+sub_80B5268: @ 80B5268
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080B52C4 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080B52C8 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8075678
+ ldr r0, _080B52CC @ =sub_80B52D0
+ str r0, [r4, 0x1C]
+ movs r0, 0x10
+ strh r0, [r4, 0x3A]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r4, 0x3A]
+ movs r0, 0x52
+ bl SetGpuReg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B52C4: .4byte gBattleAnimArgs
+_080B52C8: .4byte gBattleAnimTarget
+_080B52CC: .4byte sub_80B52D0
+ thumb_func_end sub_80B5268
+
+ thumb_func_start sub_80B52D0
+sub_80B52D0: @ 80B52D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80B53C0
+ adds r0, r4, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B52F0
+ ldr r0, _080B52EC @ =sub_80B5344
+ str r0, [r4, 0x1C]
+ b _080B533A
+ .align 2, 0
+_080B52EC: .4byte sub_80B5344
+_080B52F0:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080B5328
+ cmp r2, 0xC4
+ ble _080B533A
+_080B5328:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080B533A
+ ldr r0, _080B5340 @ =gUnknown_2037F24
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xBD
+ bl PlaySE12WithPanning
+_080B533A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5340: .4byte gUnknown_2037F24
+ thumb_func_end sub_80B52D0
+
+ thumb_func_start sub_80B5344
+sub_80B5344: @ 80B5344
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80755E0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080B538A
+ cmp r2, 0xC4
+ ble _080B5396
+_080B538A:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080B5396
+ movs r0, 0xBD
+ bl PlaySE
+_080B5396:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B53B4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B53B0 @ =sub_8074F88
+ str r0, [r4, 0x1C]
+ b _080B53BA
+ .align 2, 0
+_080B53B0: .4byte sub_8074F88
+_080B53B4:
+ adds r0, r4, 0
+ bl sub_80B53C0
+_080B53BA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5344
+
+ thumb_func_start sub_80B53C0
+sub_80B53C0: @ 80B53C0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xFF
+ ble _080B53E4
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ ldr r1, _080B53E0 @ =0x010d0000
+ cmp r0, r1
+ bne _080B544A
+ movs r0, 0
+ b _080B5448
+ .align 2, 0
+_080B53E0: .4byte 0x010d0000
+_080B53E4:
+ ldrh r1, [r4, 0x3C]
+ adds r3, r1, 0x1
+ strh r3, [r4, 0x3C]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ bne _080B544A
+ ldr r1, _080B5408 @ =0xffffff00
+ ands r1, r3
+ strh r1, [r4, 0x3C]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B540C
+ adds r0, r2, 0x1
+ b _080B540E
+ .align 2, 0
+_080B5408: .4byte 0xffffff00
+_080B540C:
+ subs r0, r2, 0x1
+_080B540E:
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3A]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B5430
+ cmp r0, 0x10
+ bne _080B543C
+_080B5430:
+ ldrh r0, [r4, 0x3C]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r4, 0x3C]
+_080B543C:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B544A
+ movs r0, 0x80
+ lsls r0, 1
+_080B5448:
+ strh r0, [r4, 0x3A]
+_080B544A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B53C0
+
+ thumb_func_start sub_80B5450
+sub_80B5450: @ 80B5450
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r1, _080B546C @ =sub_80B5470
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B546C: .4byte sub_80B5470
+ thumb_func_end sub_80B5450
+
+ thumb_func_start sub_80B5470
+sub_80B5470: @ 80B5470
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x82
+ bhi _080B54A4
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x8
+ b _080B54AE
+_080B54A4:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+_080B54AE:
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x13
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x50
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3D
+ bne _080B54E0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B54E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5470
+
+ thumb_func_start sub_80B54E8
+sub_80B54E8: @ 80B54E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80758E0
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x80
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080B5560 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r1, _080B5564 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x80
+ strh r1, [r0, 0x8]
+ ldr r1, _080B5568 @ =gBattleAnimArgs
+ ldrh r1, [r1]
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r1, 0x10
+ strh r1, [r0, 0xE]
+ ldr r1, _080B556C @ =sub_80B5570
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5560: .4byte gSprites
+_080B5564: .4byte gTasks
+_080B5568: .4byte gBattleAnimArgs
+_080B556C: .4byte sub_80B5570
+ thumb_func_end sub_80B54E8
+
+ thumb_func_start sub_80B5570
+sub_80B5570: @ 80B5570
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B55C0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080B55B8
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0xC]
+ adds r1, 0x1
+ strh r1, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9
+ bne _080B55B8
+ ldr r0, _080B55C4 @ =sub_80B55C8
+ str r0, [r4]
+_080B55B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B55C0: .4byte gTasks
+_080B55C4: .4byte sub_80B55C8
+ thumb_func_end sub_80B5570
+
+ thumb_func_start sub_80B55C8
+sub_80B55C8: @ 80B55C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080B55EC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080B55F0
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080B5634
+ .align 2, 0
+_080B55EC: .4byte gTasks
+_080B55F0:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x8
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ bgt _080B5618
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ b _080B5634
+_080B5618:
+ adds r0, r1, 0
+ bl sub_8075980
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+_080B5634:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B55C8
+
+ thumb_func_start sub_80B563C
+sub_80B563C: @ 80B563C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x20]
+ ldrh r6, [r4, 0x22]
+ ldr r0, _080B56D8 @ =gBattleAnimAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ strh r0, [r4, 0x20]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ mov r1, r9
+ strh r1, [r4, 0x2E]
+ ldr r2, _080B56DC @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r4, 0x30]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r4, 0x32]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x20]
+ lsls r1, 4
+ strh r1, [r4, 0x36]
+ lsls r0, 4
+ strh r0, [r4, 0x38]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ subs r5, r0
+ lsls r5, 4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r5, 0
+ str r2, [sp]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ lsls r6, 16
+ asrs r6, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ subs r6, r0
+ lsls r6, 4
+ ldr r2, [sp]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r6, 0
+ bl __divsi3
+ strh r0, [r4, 0x3C]
+ ldr r0, _080B56E0 @ =sub_80B56E4
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B56D8: .4byte gBattleAnimAttacker
+_080B56DC: .4byte gBattleAnimArgs
+_080B56E0: .4byte sub_80B56E4
+ thumb_func_end sub_80B563C
+
+ thumb_func_start sub_80B56E4
+sub_80B56E4: @ 80B56E4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080B572E
+ cmp r0, 0x1
+ bgt _080B56FA
+ cmp r0, 0
+ beq _080B5704
+ b _080B57F2
+_080B56FA:
+ cmp r0, 0x2
+ beq _080B5798
+ cmp r0, 0x3
+ beq _080B57EC
+ b _080B57F2
+_080B5704:
+ ldrh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x36]
+ adds r0, r2
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B57F2
+ b _080B57DE
+_080B572E:
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B57F2
+ ldr r4, _080B5794 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x20]
+ lsls r0, 4
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x22]
+ lsls r0, 4
+ strh r0, [r5, 0x38]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3A]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3C]
+ b _080B57DE
+ .align 2, 0
+_080B5794: .4byte gBattleAnimTarget
+_080B5798:
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B57F2
+ ldr r4, _080B57E8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080B57DE:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080B57F2
+ .align 2, 0
+_080B57E8: .4byte gBattleAnimTarget
+_080B57EC:
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080B57F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B56E4
+
+ thumb_func_start sub_80B57F8
+sub_80B57F8: @ 80B57F8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r0, _080B580C @ =sub_80B5810
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B580C: .4byte sub_80B5810
+ thumb_func_end sub_80B57F8
+
+ thumb_func_start sub_80B5810
+sub_80B5810: @ 80B5810
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r5, 0
+ movs r6, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B58A6
+ adds r1, r3, 0
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x4
+ ands r0, r2
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080B583A
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r4]
+_080B583A:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080B584A
+ cmp r0, 0x1
+ beq _080B5854
+ movs r6, 0x1
+ b _080B585E
+_080B584A:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _080B585E
+ b _080B5862
+_080B5854:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bne _080B585E
+ movs r5, 0x1
+_080B585E:
+ cmp r5, 0
+ beq _080B5894
+_080B5862:
+ ldrb r2, [r4]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080B58A6
+ strh r1, [r3, 0x32]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080B58A6
+_080B5894:
+ cmp r6, 0
+ beq _080B58A0
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+ b _080B58A6
+_080B58A0:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_080B58A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5810
+
+ thumb_func_start sub_80B58AC
+sub_80B58AC: @ 80B58AC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080B58D8 @ =gTasks
+ adds r5, r0, r1
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ movs r6, 0
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080B58DC
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080B59B8
+ .align 2, 0
+_080B58D8: .4byte gTasks
+_080B58DC:
+ strh r1, [r5, 0xA]
+ movs r0, 0xF
+ strh r0, [r5, 0xC]
+ movs r0, 0x2
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r5, 0xE]
+ lsls r1, 8
+ ldrh r0, [r5, 0xC]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r4, _080B5944 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x50
+ strh r1, [r0, 0x2E]
+ ldr r0, _080B5948 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B5950
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080B594C @ =0x0000ff70
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x70
+ b _080B596E
+ .align 2, 0
+_080B5944: .4byte gSprites
+_080B5948: .4byte gBattleAnimTarget
+_080B594C: .4byte 0x0000ff70
+_080B5950:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x90
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080B59C0 @ =0x0000ff90
+_080B596E:
+ strh r1, [r0, 0x32]
+ ldr r4, _080B59C4 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x34]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x36]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080B59C8 @ =SpriteCallbackDummy
+ bl StoreSpriteCallbackInData6
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080B59CC @ =sub_8074D00
+ str r1, [r0]
+ ldr r0, _080B59D0 @ =sub_80B59D4
+ str r0, [r5]
+_080B59B8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B59C0: .4byte 0x0000ff90
+_080B59C4: .4byte gSprites
+_080B59C8: .4byte SpriteCallbackDummy
+_080B59CC: .4byte sub_8074D00
+_080B59D0: .4byte sub_80B59D4
+ thumb_func_end sub_80B58AC
+
+ thumb_func_start sub_80B59D4
+sub_80B59D4: @ 80B59D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B59F8 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B5A78
+ cmp r0, 0x1
+ bgt _080B59FC
+ cmp r0, 0
+ beq _080B5A02
+ b _080B5AA4
+ .align 2, 0
+_080B59F8: .4byte gTasks
+_080B59FC:
+ cmp r0, 0x2
+ beq _080B5A9E
+ b _080B5AA4
+_080B5A02:
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0x1
+ bne _080B5A20
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080B5A20
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_080B5A20:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _080B5A36
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080B5A36
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+_080B5A36:
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0xC]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, [r4, 0xC]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080B5AA4
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080B5AA4
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B5A74 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080B5AA4
+ .align 2, 0
+_080B5A74: .4byte gSprites
+_080B5A78:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B5AA4
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080B5AA4
+_080B5A9E:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B5AA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B59D4
+
+ thumb_func_start sub_80B5AAC
+sub_80B5AAC: @ 80B5AAC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080B5ACC @ =gTasks
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ ldr r2, _080B5AD0 @ =sub_80B5AD4
+ str r2, [r1]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5ACC: .4byte gTasks
+_080B5AD0: .4byte sub_80B5AD4
+ thumb_func_end sub_80B5AAC
+
+ thumb_func_start sub_80B5AD4
+sub_80B5AD4: @ 80B5AD4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080B5B0C @ =gTasks
+ adds r5, r0, r1
+ ldr r0, _080B5B10 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080B5B00
+ b _080B5D22
+_080B5B00:
+ lsls r0, 2
+ ldr r1, _080B5B14 @ =_080B5B18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B5B0C: .4byte gTasks
+_080B5B10: .4byte gBattleAnimTarget
+_080B5B14: .4byte _080B5B18
+ .align 2, 0
+_080B5B18:
+ .4byte _080B5B2C
+ .4byte _080B5C2C
+ .4byte _080B5C70
+ .4byte _080B5CD8
+ .4byte _080B5D04
+_080B5B2C:
+ ldr r7, _080B5B64 @ =0x00002771
+ adds r0, r7, 0
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r5, 0x24]
+ cmp r0, 0xFF
+ beq _080B5B5A
+ cmp r0, 0xF
+ beq _080B5B5A
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080B5B68
+ adds r0, r7, 0
+ bl FreeSpritePaletteByTag
+_080B5B5A:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080B5D28
+ .align 2, 0
+_080B5B64: .4byte 0x00002771
+_080B5B68:
+ ldr r4, _080B5C14 @ =gSprites
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r2, [r5, 0x24]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, _080B5C18 @ =gUnknown_2024018
+ ldr r1, [r0]
+ ldr r0, _080B5C1C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 31
+ adds r2, 0x3E
+ lsrs r1, 31
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ mov r2, r8
+ strh r2, [r5, 0xA]
+ strh r2, [r5, 0xC]
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x10]
+ cmp r6, 0x1
+ bne _080B5C20
+ movs r1, 0x80
+ lsls r1, 2
+ b _080B5C24
+ .align 2, 0
+_080B5C14: .4byte gSprites
+_080B5C18: .4byte gUnknown_2024018
+_080B5C1C: .4byte gBattleAnimTarget
+_080B5C20:
+ movs r1, 0x80
+ lsls r1, 3
+_080B5C24:
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _080B5D22
+_080B5C2C:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x24]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ ldr r1, _080B5C60 @ =gPlttBufferUnfaded
+ adds r0, r1
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ ldr r2, _080B5C64 @ =gPlttBufferFaded
+ adds r1, r2
+ ldr r2, _080B5C68 @ =0x04000008
+ bl CpuSet
+ ldrh r0, [r5, 0x10]
+ ldr r3, _080B5C6C @ =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0xA
+ bl BlendPalette
+ b _080B5D22
+ .align 2, 0
+_080B5C60: .4byte gPlttBufferUnfaded
+_080B5C64: .4byte gPlttBufferFaded
+_080B5C68: .4byte 0x04000008
+_080B5C6C: .4byte 0x00003c0d
+_080B5C70:
+ ldr r2, _080B5CAC @ =gSprites
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ subs r1, 0x20
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _080B5C90
+ movs r2, 0
+_080B5C90:
+ cmp r6, 0x1
+ bne _080B5CB0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x4
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ b _080B5CC8
+ .align 2, 0
+_080B5CAC: .4byte gSprites
+_080B5CB0:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x8
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+_080B5CC8:
+ movs r2, 0x2
+ movs r3, 0x6
+ bl ScanlineEffect_InitWave
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ b _080B5D22
+_080B5CD8:
+ cmp r6, 0x1
+ bne _080B5CEC
+ ldr r1, _080B5CE8 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ b _080B5CF4
+ .align 2, 0
+_080B5CE8: .4byte 0x00003f42
+_080B5CEC:
+ ldr r1, _080B5D00 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+_080B5CF4:
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ b _080B5D22
+ .align 2, 0
+_080B5D00: .4byte 0x00003f44
+_080B5D04:
+ cmp r6, 0x1
+ bne _080B5D14
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _080B5D1E
+_080B5D14:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_080B5D1E:
+ ldr r0, _080B5D34 @ =sub_80B5D38
+ str r0, [r5]
+_080B5D22:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+_080B5D28:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5D34: .4byte sub_80B5D38
+ thumb_func_end sub_80B5AD4
+
+ thumb_func_start sub_80B5D38
+sub_80B5D38: @ 80B5D38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B5DC0 @ =gTasks
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0
+ bne _080B5D70
+ ldr r1, _080B5DC4 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ strh r0, [r4, 0xC]
+_080B5D70:
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _080B5D92
+ ldr r1, _080B5DC4 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ movs r1, 0x10
+ subs r1, r0
+ strh r1, [r4, 0xE]
+_080B5D92:
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0xC]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ bne _080B5DBA
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080B5DC8 @ =sub_80B5DCC
+ str r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080B5DBA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5DC0: .4byte gTasks
+_080B5DC4: .4byte gSineTable
+_080B5DC8: .4byte sub_80B5DCC
+ thumb_func_end sub_80B5D38
+
+ thumb_func_start sub_80B5DCC
+sub_80B5DCC: @ 80B5DCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B5DFC @ =gTasks
+ adds r4, r0, r1
+ ldr r0, _080B5E00 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B5E38
+ cmp r0, 0x1
+ bgt _080B5E04
+ cmp r0, 0
+ beq _080B5E0A
+ b _080B5EB4
+ .align 2, 0
+_080B5DFC: .4byte gTasks
+_080B5E00: .4byte gBattleAnimTarget
+_080B5E04:
+ cmp r0, 0x2
+ beq _080B5E4C
+ b _080B5EB4
+_080B5E0A:
+ ldr r1, _080B5E28 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ cmp r6, 0x1
+ bne _080B5E2C
+ movs r1, 0x80
+ lsls r1, 2
+ b _080B5E30
+ .align 2, 0
+_080B5E28: .4byte gScanlineEffect
+_080B5E2C:
+ movs r1, 0x80
+ lsls r1, 3
+_080B5E30:
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _080B5EB4
+_080B5E38:
+ ldrh r0, [r4, 0x10]
+ ldr r3, _080B5E48 @ =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ b _080B5EB4
+ .align 2, 0
+_080B5E48: .4byte 0x00003c0d
+_080B5E4C:
+ ldr r3, _080B5E9C @ =gSprites
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl obj_delete_but_dont_free_vram
+ ldr r0, _080B5EA0 @ =0x00002771
+ bl FreeSpritePaletteByTag
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ cmp r6, 0x1
+ bne _080B5EA4
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _080B5EAE
+ .align 2, 0
+_080B5E9C: .4byte gSprites
+_080B5EA0: .4byte 0x00002771
+_080B5EA4:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_080B5EAE:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B5EB4:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5DCC
+
+ thumb_func_start sub_80B5EC0
+sub_80B5EC0: @ 80B5EC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r0, _080B5EFC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B5F08
+ ldr r4, _080B5F00 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080B5F04 @ =gBattleAnimTarget
+ b _080B5F2C
+ .align 2, 0
+_080B5EFC: .4byte gBattleAnimArgs
+_080B5F00: .4byte gBattleAnimAttacker
+_080B5F04: .4byte gBattleAnimTarget
+_080B5F08:
+ ldr r4, _080B5FD0 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080B5FD4 @ =gBattleAnimAttacker
+_080B5F2C:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xE0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ mov r9, r0
+ mov r8, r5
+ mov r2, r9
+ subs r4, r2, r5
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, r6, 4
+ strh r0, [r7, 0x2E]
+ lsls r0, r5, 4
+ strh r0, [r7, 0x30]
+ mov r1, r10
+ subs r0, r1, r6
+ lsls r0, 4
+ ldr r5, _080B5FD8 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r7, 0x32]
+ lsls r4, 16
+ asrs r4, 12
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ strh r0, [r7, 0x34]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0x36]
+ mov r1, r10
+ strh r1, [r7, 0x38]
+ mov r2, r9
+ strh r2, [r7, 0x3A]
+ movs r1, 0x36
+ ldrsh r0, [r7, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r7, 0x3C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ strh r6, [r7, 0x20]
+ mov r2, r8
+ strh r2, [r7, 0x22]
+ ldr r0, _080B5FDC @ =sub_80B5FE0
+ str r0, [r7, 0x1C]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5FD0: .4byte gBattleAnimTarget
+_080B5FD4: .4byte gBattleAnimAttacker
+_080B5FD8: .4byte gBattleAnimArgs
+_080B5FDC: .4byte sub_80B5FE0
+ thumb_func_end sub_80B5EC0
+
+ thumb_func_start sub_80B5FE0
+sub_80B5FE0: @ 80B5FE0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080B6018
+ ldrh r0, [r2, 0x32]
+ ldrh r4, [r2, 0x2E]
+ adds r0, r4
+ strh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r1, r4
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080B6018
+ strh r0, [r2, 0x2E]
+_080B6018:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5FE0
+
+ thumb_func_start sub_80B6020
+sub_80B6020: @ 80B6020
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B6170 @ =gTasks
+ adds r1, r0
+ str r1, [sp]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0
+ ldr r1, [sp]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ movs r0, 0x10
+ strh r0, [r1, 0x1A]
+ ldr r2, _080B6174 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldr r4, _080B6178 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8076B2C
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B6090
+ b _080B618C
+_080B6090:
+ movs r4, 0
+_080B6092:
+ lsls r1, r4, 16
+ asrs r3, r1, 16
+ ldr r0, _080B6178 @ =gBattleAnimAttacker
+ ldrb r2, [r0]
+ str r1, [sp, 0x10]
+ cmp r3, r2
+ beq _080B615E
+ movs r0, 0x2
+ eors r2, r0
+ cmp r3, r2
+ beq _080B615E
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B615E
+ ldr r6, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ ldr r0, _080B617C @ =gUnknown_83E7668
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080B615E
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8076B2C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r0, r8
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r1, _080B6180 @ =gSprites
+ adds r4, r5, r1
+ lsls r0, r6, 4
+ strh r0, [r4, 0x2E]
+ lsls r0, r7, 4
+ strh r0, [r4, 0x30]
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 4
+ ldr r3, _080B6174 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ lsls r0, r3, 16
+ asrs r0, 16
+ subs r0, r7
+ lsls r0, 4
+ ldr r2, _080B6174 @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080B6174 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ ldr r0, _080B6184 @ =gSprites + 0x1C
+ adds r5, r0
+ ldr r0, _080B6188 @ =sub_80B5FE0
+ str r0, [r5]
+ ldr r2, [sp]
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+_080B615E:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080B6092
+ b _080B6210
+ .align 2, 0
+_080B6170: .4byte gTasks
+_080B6174: .4byte gBattleAnimArgs
+_080B6178: .4byte gBattleAnimAttacker
+_080B617C: .4byte gUnknown_83E7668
+_080B6180: .4byte gSprites
+_080B6184: .4byte gSprites + 0x1C
+_080B6188: .4byte sub_80B5FE0
+_080B618C:
+ ldr r0, _080B6228 @ =gUnknown_83E7668
+ ldr r7, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ lsls r1, r2, 16
+ asrs r1, 16
+ str r1, [sp, 0xC]
+ adds r1, r7, 0
+ ldr r2, [sp, 0xC]
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080B6210
+ movs r3, 0x30
+ mov r10, r3
+ movs r0, 0x28
+ mov r9, r0
+ ldr r6, _080B622C @ =gSprites
+ mov r1, r8
+ lsls r5, r1, 4
+ add r5, r8
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, r7, 4
+ strh r0, [r4, 0x2E]
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 4
+ strh r0, [r4, 0x30]
+ subs r0, r3, r7
+ lsls r0, 4
+ ldr r3, _080B6230 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ ldr r1, [sp, 0xC]
+ subs r0, r3, r1
+ lsls r0, 4
+ ldr r2, _080B6230 @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080B6230 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, _080B6234 @ =sub_80B5FE0
+ str r0, [r5]
+ mov r1, r8
+ ldr r0, [sp]
+ strh r1, [r0, 0x22]
+ movs r0, 0x1
+ ldr r2, [sp]
+ strh r0, [r2, 0x20]
+_080B6210:
+ ldr r0, _080B6238 @ =sub_80B623C
+ ldr r3, [sp]
+ str r0, [r3]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6228: .4byte gUnknown_83E7668
+_080B622C: .4byte gSprites
+_080B6230: .4byte gBattleAnimArgs
+_080B6234: .4byte sub_80B5FE0
+_080B6238: .4byte sub_80B623C
+ thumb_func_end sub_80B6020
+
+ thumb_func_start sub_80B623C
+sub_80B623C: @ 80B623C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B6260 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080B62F2
+ cmp r1, 0x1
+ bgt _080B6264
+ cmp r1, 0
+ beq _080B6272
+ b _080B63AE
+ .align 2, 0
+_080B6260: .4byte gTasks
+_080B6264:
+ cmp r1, 0x2
+ bne _080B626A
+ b _080B6384
+_080B626A:
+ cmp r1, 0x3
+ bne _080B6270
+ b _080B6398
+_080B6270:
+ b _080B63AE
+_080B6272:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B62D8
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B62D8
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62A8
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080B62B6
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080B62B6
+_080B62A8:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B62B6
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080B62B6:
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ ble _080B62D8
+ movs r0, 0
+ strh r0, [r4, 0x16]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+_080B62D8:
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B62E8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _080B63AE
+_080B62E8:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B63AE
+ b _080B6390
+_080B62F2:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B63AE
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080B6322
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6330
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080B6330
+_080B6322:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080B6330
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080B6330:
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, [r4, 0x18]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080B63AE
+ movs r5, 0
+ b _080B6374
+_080B6350:
+ adds r1, r5, 0
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6380 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B6374:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _080B6350
+ b _080B6390
+ .align 2, 0
+_080B6380: .4byte gSprites
+_080B6384:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080B63AE
+_080B6390:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B63AE
+_080B6398:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B63AE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B623C
+
+ thumb_func_start sub_80B63B4
+sub_80B63B4: @ 80B63B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080B6400 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080B6404 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r1, _080B6408 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080B640C @ =0x00003f1f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0xC8
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r0, _080B6410 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B63FC
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B6414
+_080B63FC:
+ movs r6, 0x28
+ b _080B6416
+ .align 2, 0
+_080B6400: .4byte gUnknown_2022984
+_080B6404: .4byte gUnknown_2022986
+_080B6408: .4byte 0x00003f3f
+_080B640C: .4byte 0x00003f1f
+_080B6410: .4byte gBattleAnimAttacker
+_080B6414:
+ movs r6, 0xC8
+_080B6416:
+ ldr r1, _080B6454 @ =gUnknown_2022984
+ lsls r3, r6, 16
+ asrs r2, r3, 16
+ lsls r0, r2, 8
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r1, _080B6458 @ =gUnknown_2022986
+ movs r5, 0x28
+ ldr r0, _080B645C @ =0x00002828
+ strh r0, [r1]
+ lsrs r3, 16
+ movs r1, 0xF0
+ subs r1, r2
+ movs r4, 0x48
+ ldr r2, _080B6460 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ strh r3, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r5, [r0, 0xE]
+ strh r4, [r0, 0x10]
+ strh r6, [r0, 0x12]
+ strh r5, [r0, 0x14]
+ ldr r1, _080B6464 @ =sub_80B6468
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6454: .4byte gUnknown_2022984
+_080B6458: .4byte gUnknown_2022986
+_080B645C: .4byte 0x00002828
+_080B6460: .4byte gTasks
+_080B6464: .4byte sub_80B6468
+ thumb_func_end sub_80B63B4
+
+ thumb_func_start sub_80B6468
+sub_80B6468: @ 80B6468
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B6588 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r5, [r4, 0xA]
+ ldrh r7, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ mov r10, r0
+ ldrh r2, [r4, 0x10]
+ str r2, [sp, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r2, [r4, 0x14]
+ mov r8, r2
+ lsls r1, 16
+ asrs r6, r1, 16
+ cmp r6, 0xF
+ ble _080B64A4
+ b _080B6594
+_080B64A4:
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsidf
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080B658C @ =0x3fb00000
+ ldr r3, _080B6590 @ =0x00000000
+ bl __muldf3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl __floatsidf
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ adds r1, r5, 0
+ adds r0, r4, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080B658C @ =0x3fb00000
+ ldr r3, _080B6590 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ adds r5, r1, 0
+ adds r4, r0, 0
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080B658C @ =0x3fb00000
+ ldr r3, _080B6590 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080B658C @ =0x3fb00000
+ ldr r3, _080B6590 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080B65C2
+ .align 2, 0
+_080B6588: .4byte gTasks
+_080B658C: .4byte 0x3fb00000
+_080B6590: .4byte 0x00000000
+_080B6594:
+ movs r2, 0
+ mov r9, r2
+ movs r7, 0xF0
+ movs r6, 0
+ movs r5, 0x70
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_8075BE8
+ lsls r0, 16
+ lsrs r0, 16
+ str r6, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080B65E4 @ =sub_80B65F0
+ str r0, [r4]
+_080B65C2:
+ ldr r1, _080B65E8 @ =gUnknown_2022984
+ mov r2, r9
+ lsls r0, r2, 8
+ orrs r7, r0
+ strh r7, [r1]
+ ldr r1, _080B65EC @ =gUnknown_2022986
+ lsls r0, r6, 8
+ orrs r5, r0
+ strh r5, [r1]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B65E4: .4byte sub_80B65F0
+_080B65E8: .4byte gUnknown_2022984
+_080B65EC: .4byte gUnknown_2022986
+ thumb_func_end sub_80B6468
+
+ thumb_func_start sub_80B65F0
+sub_80B65F0: @ 80B65F0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B663C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080B6636
+ ldr r0, _080B6640 @ =gUnknown_2022984
+ strh r1, [r0]
+ ldr r0, _080B6644 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r4, _080B6648 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B6636:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B663C: .4byte gPaletteFade
+_080B6640: .4byte gUnknown_2022984
+_080B6644: .4byte gUnknown_2022986
+_080B6648: .4byte 0x00003f3f
+ thumb_func_end sub_80B65F0
+
+ thumb_func_start sub_80B664C
+sub_80B664C: @ 80B664C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080B6678 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B6680
+ movs r2, 0x18
+ ldr r3, _080B667C @ =0x0000fffe
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ b _080B6684
+ .align 2, 0
+_080B6678: .4byte gBattleAnimAttacker
+_080B667C: .4byte 0x0000fffe
+_080B6680:
+ ldr r2, _080B66A0 @ =0x0000ffe8
+ movs r3, 0x2
+_080B6684:
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r3, [r4, 0x30]
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B66A4 @ =sub_80B66A8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B66A0: .4byte 0x0000ffe8
+_080B66A4: .4byte sub_80B66A8
+ thumb_func_end sub_80B664C
+
+ thumb_func_start sub_80B66A8
+sub_80B66A8: @ 80B66A8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080B66BA
+ subs r0, r1, 0x1
+ b _080B671E
+_080B66BA:
+ ldrh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x24]
+ adds r1, r0, r4
+ strh r1, [r3, 0x24]
+ adds r0, r1, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bls _080B6720
+ ldrh r0, [r3, 0x20]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0
+ strh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r4, _080B670C @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080B6710 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080B671C
+ movs r0, 0x1E
+ strh r0, [r3, 0x2E]
+ ldr r0, _080B6714 @ =sub_8074C44
+ str r0, [r3, 0x1C]
+ ldr r1, _080B6718 @ =sub_80B6728
+ adds r0, r3, 0
+ bl StoreSpriteCallbackInData6
+ b _080B6720
+ .align 2, 0
+_080B670C: .4byte 0x000003ff
+_080B6710: .4byte 0xfffffc00
+_080B6714: .4byte sub_8074C44
+_080B6718: .4byte sub_80B6728
+_080B671C:
+ movs r0, 0x28
+_080B671E:
+ strh r0, [r3, 0x2E]
+_080B6720:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B66A8
+
+ thumb_func_start sub_80B6728
+sub_80B6728: @ 80B6728
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080B6752
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ b _080B6796
+_080B6752:
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bgt _080B6762
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080B6796
+_080B6762:
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080B6796
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B679C @ =sub_80B67A0
+ str r0, [r4, 0x1C]
+_080B6796:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B679C: .4byte sub_80B67A0
+ thumb_func_end sub_80B6728
+
+ thumb_func_start sub_80B67A0
+sub_80B67A0: @ 80B67A0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ ldr r0, _080B67CC @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080B67D0 @ =gUnknown_2022986
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B67CC: .4byte gUnknown_2022984
+_080B67D0: .4byte gUnknown_2022986
+ thumb_func_end sub_80B67A0
+
+ thumb_func_start sub_80B67D4
+sub_80B67D4: @ 80B67D4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r5, 0x24]
+ ldr r0, _080B683C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B67F8
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_080B67F8:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080B6844
+ ldr r0, _080B6840 @ =0x0000050b
+ strh r0, [r5, 0x3A]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r5, 0x3A]
+ movs r0, 0x52
+ bl SetGpuReg
+ b _080B689C
+ .align 2, 0
+_080B683C: .4byte gBattleAnimAttacker
+_080B6840: .4byte 0x0000050b
+_080B6844:
+ cmp r0, 0x1E
+ ble _080B689C
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x3A]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ movs r6, 0xFF
+ ands r6, r1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r7, r0, 16
+ cmp r7, 0x10
+ bls _080B6868
+ movs r7, 0x10
+_080B6868:
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r0, 0
+ bge _080B6874
+ movs r6, 0
+_080B6874:
+ lsls r4, r7, 8
+ orrs r4, r6
+ lsls r1, r4, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r4, [r5, 0x3A]
+ cmp r7, 0x10
+ bne _080B689C
+ cmp r6, 0
+ bne _080B689C
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B68A4 @ =sub_80B68A8
+ str r0, [r5, 0x1C]
+_080B689C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B68A4: .4byte sub_80B68A8
+ thumb_func_end sub_80B67D4
+
+ thumb_func_start sub_80B68A8
+sub_80B68A8: @ 80B68A8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B68A8
+
+ thumb_func_start sub_80B68C8
+sub_80B68C8: @ 80B68C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080B6960 @ =gTasks
+ adds r4, r0
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ movs r0, 0x10
+ mov r8, r0
+ mov r0, r8
+ strh r0, [r4, 0xA]
+ ldr r5, _080B6964 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r5]
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ adds r1, 0x8
+ strh r1, [r4, 0x1E]
+ strh r6, [r4, 0x16]
+ ldrb r0, [r5]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ ldrb r0, [r5]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0xE]
+ mov r0, r8
+ strh r0, [r4, 0x10]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r6, [r4, 0x18]
+ ldr r0, _080B6968 @ =sub_80B696C
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6960: .4byte gTasks
+_080B6964: .4byte gBattleAnimAttacker
+_080B6968: .4byte sub_80B696C
+ thumb_func_end sub_80B68C8
+
+ thumb_func_start sub_80B696C
+sub_80B696C: @ 80B696C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080B6990 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080B6986
+ b _080B6AF2
+_080B6986:
+ lsls r0, 2
+ ldr r1, _080B6994 @ =_080B6998
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B6990: .4byte gTasks
+_080B6994: .4byte _080B6998
+ .align 2, 0
+_080B6998:
+ .4byte _080B69B0
+ .4byte _080B6A20
+ .4byte _080B6A62
+ .4byte _080B6A76
+ .4byte _080B6ACC
+ .4byte _080B6ADC
+_080B69B0:
+ movs r6, 0
+_080B69B2:
+ movs r2, 0x1A
+ ldrsh r1, [r4, r2]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ ldrb r3, [r4, 0x14]
+ ldr r0, _080B6A14 @ =gUnknown_83E76E0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080B6A06
+ ldr r1, _080B6A18 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ strh r7, [r5, 0x2E]
+ ldr r0, _080B6A1C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B69E8
+ movs r1, 0x1
+_080B69E8:
+ strh r1, [r5, 0x30]
+ movs r0, 0x2A
+ muls r0, r6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r5, 0x34]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080B6A06:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080B69B2
+ b _080B6AD4
+ .align 2, 0
+_080B6A14: .4byte gUnknown_83E76E0
+_080B6A18: .4byte gSprites
+_080B6A1C: .4byte gBattleAnimAttacker
+_080B6A20:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A3E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bgt _080B6A4C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080B6A4C
+_080B6A3E:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ ble _080B6A4C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080B6A4C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r2, [r4, 0xE]
+ ldrh r1, [r4, 0x10]
+ cmp r0, 0xE
+ bne _080B6ABC
+ cmp r1, 0x4
+ bne _080B6ABC
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080B6AB6
+_080B6A62:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080B6AF2
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080B6AD4
+_080B6A76:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A94
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080B6AA2
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080B6AA2
+_080B6A94:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080B6AA2
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080B6AA2:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r2, [r4, 0xE]
+ ldrh r1, [r4, 0x10]
+ cmp r0, 0
+ bne _080B6ABC
+ cmp r1, 0x10
+ bne _080B6ABC
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+_080B6AB6:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B6ABC:
+ lsls r1, 8
+ orrs r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ b _080B6AF2
+_080B6ACC:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B6AF2
+_080B6AD4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B6AF2
+_080B6ADC:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_080B6AF2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B696C
+
+ thumb_func_start sub_80B6AF8
+sub_80B6AF8: @ 80B6AF8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B6B0A
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x2
+ b _080B6B0E
+_080B6B0A:
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x2
+_080B6B0E:
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bhi _080B6B50
+ ldr r2, _080B6B4C @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x12]
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ b _080B6B64
+ .align 2, 0
+_080B6B4C: .4byte gTasks
+_080B6B50:
+ ldr r2, _080B6BB8 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x3
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+_080B6B64:
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r1, 0x7
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r2, _080B6BB8 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x18
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080B6BB2
+ ldrh r0, [r1, 0x16]
+ subs r0, 0x1
+ strh r0, [r1, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080B6BB2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6BB8: .4byte gTasks
+ thumb_func_end sub_80B6AF8
+
+ thumb_func_start sub_80B6BBC
+sub_80B6BBC: @ 80B6BBC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080B6BDC @ =gTasks
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ ldr r2, _080B6BE0 @ =sub_80B6BE4
+ str r2, [r1]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6BDC: .4byte gTasks
+_080B6BE0: .4byte sub_80B6BE4
+ thumb_func_end sub_80B6BBC
+
+ thumb_func_start sub_80B6BE4
+sub_80B6BE4: @ 80B6BE4
+ push {r4-r6,lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B6C18 @ =gTasks
+ adds r6, r1, r0
+ ldr r0, _080B6C1C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7
+ bls _080B6C0C
+ b _080B6F1E
+_080B6C0C:
+ lsls r0, 2
+ ldr r1, _080B6C20 @ =_080B6C24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B6C18: .4byte gTasks
+_080B6C1C: .4byte gBattleAnimAttacker
+_080B6C20: .4byte _080B6C24
+ .align 2, 0
+_080B6C24:
+ .4byte _080B6C44
+ .4byte _080B6CCC
+ .4byte _080B6D28
+ .4byte _080B6D8C
+ .4byte _080B6E04
+ .4byte _080B6E6C
+ .4byte _080B6E82
+ .4byte _080B6EEC
+_080B6C44:
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x2
+ bl SetAnimBgAttribute
+ movs r0, 0x2
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0
+ strh r0, [r6, 0xA]
+ strh r0, [r6, 0xC]
+ movs r0, 0x10
+ strh r0, [r6, 0xE]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x10]
+ ldr r3, _080B6CC8 @ =gSprites
+ movs r2, 0x10
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x5]
+ lsls r0, 28
+ lsrs r0, 30
+ strh r0, [r6, 0x12]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r6, 0x14]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r0, 0x10
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r0, 0x80
+ strh r0, [r6, 0x16]
+ b _080B6F1E
+ .align 2, 0
+_080B6CC8: .4byte gSprites
+_080B6CCC:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ movs r5, 0x1
+ ands r5, r0
+ cmp r5, 0
+ beq _080B6CDC
+ b _080B6F24
+_080B6CDC:
+ ldrh r0, [r6, 0x14]
+ ldrb r2, [r6, 0xC]
+ ldr r4, _080B6D08 @ =0x000066e0
+ movs r1, 0x10
+ adds r3, r4, 0
+ bl BlendPalette
+ ldrh r0, [r6, 0x16]
+ ldrb r2, [r6, 0xC]
+ movs r1, 0x10
+ adds r3, r4, 0
+ bl BlendPalette
+ ldrh r1, [r6, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xB
+ bgt _080B6D0C
+ adds r0, r1, 0x1
+ strh r0, [r6, 0xC]
+ b _080B6F24
+ .align 2, 0
+_080B6D08: .4byte 0x000066e0
+_080B6D0C:
+ strh r5, [r6, 0xA]
+ strh r5, [r6, 0xC]
+ ldr r1, _080B6D24 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ b _080B6F1E
+ .align 2, 0
+_080B6D24: .4byte 0x00003f44
+_080B6D28:
+ movs r0, 0x2
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ ldr r0, _080B6D7C @ =gBattle_BG2_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080B6D80 @ =gBattle_BG2_Y
+ strh r1, [r4]
+ movs r0, 0x18
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x1A
+ bl SetGpuReg
+ add r0, sp, 0xC
+ movs r1, 0x2
+ bl sub_80752C8
+ add r0, sp, 0xC
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
+ add r2, sp, 0xC
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
+ add r1, sp, 0xC
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080B6F1E
+ .align 2, 0
+_080B6D7C: .4byte gBattle_BG2_X
+_080B6D80: .4byte gBattle_BG2_Y
+_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
+_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
+_080B6D8C:
+ add r0, sp, 0xC
+ movs r1, 0x2
+ bl sub_80752C8
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ adds r1, r0, 0
+ ldr r5, _080B6DFC @ =gMonSpritesGfxPtr
+ ldr r0, [r5]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ str r1, [r0]
+ ldr r0, _080B6E00 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
+ bl LZDecompressWram
+ add r0, sp, 0xC
+ ldrb r0, [r0, 0x8]
+ ldr r1, [r5]
+ adds r1, r4
+ ldr r1, [r1]
+ movs r2, 0x80
+ lsls r2, 1
+ movs r3, 0
+ bl sub_80730C0
+ add r0, sp, 0xC
+ ldrb r0, [r0, 0x9]
+ ldr r1, [r5]
+ adds r1, r4
+ ldr r1, [r1]
+ movs r2, 0x20
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r2, 0x11
+ str r2, [sp, 0x8]
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+ b _080B6F1E
+ .align 2, 0
+_080B6DFC: .4byte gMonSpritesGfxPtr
+_080B6E00: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
+_080B6E04:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6E14
+ b _080B6F24
+_080B6E14:
+ ldrh r1, [r6, 0xC]
+ adds r1, 0x1
+ strh r1, [r6, 0xC]
+ ldrh r0, [r6, 0xE]
+ subs r0, 0x1
+ strh r0, [r6, 0xE]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080B6F24
+ strh r0, [r6, 0xA]
+ strh r0, [r6, 0xC]
+ movs r0, 0x10
+ strh r0, [r6, 0xE]
+ ldr r1, _080B6E68 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x2
+ movs r1, 0x4
+ movs r2, 0x2
+ bl SetAnimBgAttribute
+ b _080B6F1E
+ .align 2, 0
+_080B6E68: .4byte 0x00003f42
+_080B6E6C:
+ cmp r4, 0x1
+ bne _080B6E76
+ movs r1, 0x80
+ lsls r1, 2
+ b _080B6E7A
+_080B6E76:
+ movs r1, 0x80
+ lsls r1, 3
+_080B6E7A:
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _080B6F1E
+_080B6E82:
+ ldr r2, _080B6EC0 @ =gSprites
+ movs r0, 0x10
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ subs r1, 0x20
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _080B6EA2
+ movs r2, 0
+_080B6EA2:
+ cmp r4, 0x1
+ bne _080B6EC4
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x4
+ str r2, [sp, 0x4]
+ str r4, [sp, 0x8]
+ b _080B6EDE
+ .align 2, 0
+_080B6EC0: .4byte gSprites
+_080B6EC4:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x8
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r2, 0x4
+_080B6EDE:
+ movs r3, 0x8
+ bl ScanlineEffect_InitWave
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1C]
+ b _080B6F1E
+_080B6EEC:
+ ldrh r0, [r6, 0x16]
+ ldr r3, _080B6F08 @ =0x000077ff
+ movs r1, 0x10
+ movs r2, 0xC
+ bl BlendPalette
+ cmp r4, 0x1
+ bne _080B6F0C
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _080B6F16
+ .align 2, 0
+_080B6F08: .4byte 0x000077ff
+_080B6F0C:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_080B6F16:
+ ldr r0, _080B6F2C @ =sub_80B6F30
+ str r0, [r6]
+ movs r0, 0
+ strh r0, [r6, 0x26]
+_080B6F1E:
+ ldrh r0, [r6, 0x26]
+ adds r0, 0x1
+ strh r0, [r6, 0x26]
+_080B6F24:
+ add sp, 0x1C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6F2C: .4byte sub_80B6F30
+ thumb_func_end sub_80B6BE4
+
+ thumb_func_start sub_80B6F30
+sub_80B6F30: @ 80B6F30
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B6FB8 @ =gTasks
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x18]
+ cmp r0, 0
+ bne _080B6F68
+ ldr r1, _080B6FBC @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ strh r0, [r4, 0xC]
+_080B6F68:
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _080B6F8A
+ ldr r1, _080B6FBC @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ movs r1, 0x10
+ subs r1, r0
+ strh r1, [r4, 0xE]
+_080B6F8A:
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0xC]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ bne _080B6FB2
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080B6FC0 @ =sub_80B6FC4
+ str r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080B6FB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6FB8: .4byte gTasks
+_080B6FBC: .4byte gSineTable
+_080B6FC0: .4byte sub_80B6FC4
+ thumb_func_end sub_80B6F30
+
+ thumb_func_start sub_80B6FC4
+sub_80B6FC4: @ 80B6FC4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080B6FE8 @ =gTasks
+ adds r6, r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _080B6FDE
+ b _080B7148
+_080B6FDE:
+ lsls r0, 2
+ ldr r1, _080B6FEC @ =_080B6FF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B6FE8: .4byte gTasks
+_080B6FEC: .4byte _080B6FF0
+ .align 2, 0
+_080B6FF0:
+ .4byte _080B7008
+ .4byte _080B7024
+ .4byte _080B7044
+ .4byte _080B707C
+ .4byte _080B709C
+ .4byte _080B70E8
+_080B7008:
+ ldr r1, _080B701C @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ ldrh r0, [r6, 0x16]
+ ldr r3, _080B7020 @ =0x000066e0
+ movs r1, 0x10
+ movs r2, 0xC
+ bl BlendPalette
+ b _080B7148
+ .align 2, 0
+_080B701C: .4byte gScanlineEffect
+_080B7020: .4byte 0x000066e0
+_080B7024:
+ ldr r1, _080B7040 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ movs r1, 0
+ movs r0, 0x10
+ strh r0, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ b _080B7148
+ .align 2, 0
+_080B7040: .4byte 0x00003f44
+_080B7044:
+ ldrh r1, [r6, 0xC]
+ subs r1, 0x1
+ strh r1, [r6, 0xC]
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0xE
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xF
+ ble _080B714E
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x2
+ bl SetAnimBgAttribute
+ movs r0, 0x2
+ movs r1, 0x4
+ movs r2, 0x2
+ bl SetAnimBgAttribute
+ b _080B7148
+_080B707C:
+ movs r0, 0x2
+ bl sub_8075358
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+ movs r0, 0x2
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+ movs r0, 0xC
+ strh r0, [r6, 0xA]
+ b _080B7148
+_080B709C:
+ ldrh r0, [r6, 0x14]
+ ldrb r2, [r6, 0xA]
+ ldr r4, _080B70C8 @ =0x000066e0
+ movs r1, 0x10
+ adds r3, r4, 0
+ bl BlendPalette
+ ldrh r0, [r6, 0x16]
+ ldrb r2, [r6, 0xA]
+ movs r1, 0x10
+ adds r3, r4, 0
+ bl BlendPalette
+ ldrh r0, [r6, 0xA]
+ movs r2, 0xA
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ beq _080B70CC
+ subs r0, 0x1
+ strh r0, [r6, 0xA]
+ b _080B714E
+ .align 2, 0
+_080B70C8: .4byte 0x000066e0
+_080B70CC:
+ strh r1, [r6, 0xA]
+ ldr r1, _080B70E4 @ =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ b _080B7148
+ .align 2, 0
+_080B70E4: .4byte 0x00003f44
+_080B70E8:
+ ldr r5, _080B7154 @ =gSprites
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x3
+ ldrb r2, [r6, 0x12]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r4, [r1, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r2, 0x10
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r3, r1
+ strb r3, [r0, 0x1]
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x2
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_080B7148:
+ ldrh r0, [r6, 0x26]
+ adds r0, 0x1
+ strh r0, [r6, 0x26]
+_080B714E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7154: .4byte gSprites
+ thumb_func_end sub_80B6FC4
+
+ thumb_func_start sub_80B7158
+sub_80B7158: @ 80B7158
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r2, _080B719C @ =gBattlerSpriteIds
+ ldr r1, _080B71A0 @ =gBattleAnimAttacker
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ strh r1, [r0, 0x38]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0xA
+ strh r1, [r0, 0x30]
+ ldr r2, _080B71A4 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x34]
+ ldr r1, _080B71A8 @ =sub_80B71B0
+ str r1, [r0, 0x1C]
+ ldr r2, _080B71AC @ =gSprites
+ movs r3, 0x38
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080B719C: .4byte gBattlerSpriteIds
+_080B71A0: .4byte gBattleAnimAttacker
+_080B71A4: .4byte gBattleAnimArgs
+_080B71A8: .4byte sub_80B71B0
+_080B71AC: .4byte gSprites
+ thumb_func_end sub_80B7158
+
+ thumb_func_start sub_80B71B0
+sub_80B71B0: @ 80B71B0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x34
+ ldrsh r3, [r5, r1]
+ cmp r3, 0
+ beq _080B7218
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldr r4, _080B7210 @ =gSprites
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Cos
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x32]
+ ldrh r2, [r5, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r5, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080B724C
+ ldr r2, _080B7214 @ =0xffffff00
+ adds r0, r1, r2
+ strh r0, [r5, 0x2E]
+ b _080B724C
+ .align 2, 0
+_080B7210: .4byte gSprites
+_080B7214: .4byte 0xffffff00
+_080B7218:
+ ldr r2, _080B7254 @ =gSprites
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r0, _080B7258 @ =move_anim_8074EE0
+ str r0, [r5, 0x1C]
+_080B724C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7254: .4byte gSprites
+_080B7258: .4byte move_anim_8074EE0
+ thumb_func_end sub_80B71B0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/ground.s b/asm/ground.s
new file mode 100644
index 000000000..4009c7056
--- /dev/null
+++ b/asm/ground.s
@@ -0,0 +1,1787 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B8B6C
+sub_80B8B6C: @ 80B8B6C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B8BC4 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080B8BC8 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080B8BCC @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_8075068
+ ldr r0, _080B8BD0 @ =sub_80B8BD4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8BC4: .4byte gBattleAnimAttacker
+_080B8BC8: .4byte gBattleAnimTarget
+_080B8BCC: .4byte 0x0000ffd8
+_080B8BD0: .4byte sub_80B8BD4
+ thumb_func_end sub_80B8B6C
+
+ thumb_func_start sub_80B8BD4
+sub_80B8BD4: @ 80B8BD4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8C28
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _080B8C30 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ movs r0, 0x28
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_8075068
+ ldr r0, _080B8C34 @ =sub_80B8C38
+ str r0, [r5, 0x1C]
+_080B8C28:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8C30: .4byte gBattleAnimAttacker
+_080B8C34: .4byte sub_80B8C38
+ thumb_func_end sub_80B8BD4
+
+ thumb_func_start sub_80B8C38
+sub_80B8C38: @ 80B8C38
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8C4C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B8C4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B8C38
+
+ thumb_func_start sub_80B8C54
+sub_80B8C54: @ 80B8C54
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r0, _080B8CB4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8C74
+ ldr r1, _080B8CB8 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080B8C74:
+ ldr r4, _080B8CB8 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080B8CBC @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080B8CC0 @ =sub_8075590
+ str r0, [r6, 0x1C]
+ ldr r1, _080B8CC4 @ =DestroyAnimSprite
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8CB4: .4byte gBattleAnimAttacker
+_080B8CB8: .4byte gBattleAnimArgs
+_080B8CBC: .4byte gBattleAnimTarget
+_080B8CC0: .4byte sub_8075590
+_080B8CC4: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B8C54
+
+ thumb_func_start sub_80B8CC8
+sub_80B8CC8: @ 80B8CC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r4, _080B8D48 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl Random
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ bl Random
+ ands r4, r0
+ adds r1, r5, 0
+ cmp r1, 0x10
+ ble _080B8D10
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B8D10:
+ lsls r0, r4, 16
+ asrs r1, r0, 16
+ cmp r1, 0x10
+ ble _080B8D20
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080B8D20:
+ ldr r0, _080B8D4C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r6, 0x2E]
+ mov r1, r8
+ adds r0, r1, r5
+ strh r0, [r6, 0x32]
+ adds r0, r7, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080B8D50 @ =sub_8075590
+ str r0, [r6, 0x1C]
+ ldr r1, _080B8D54 @ =move_anim_8074EE0
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8D48: .4byte gBattleAnimTarget
+_080B8D4C: .4byte gBattleAnimArgs
+_080B8D50: .4byte sub_8075590
+_080B8D54: .4byte move_anim_8074EE0
+ thumb_func_end sub_80B8CC8
+
+ thumb_func_start sub_80B8D58
+sub_80B8D58: @ 80B8D58
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ ldr r3, _080B8DB8 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080B8DBC @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r6, _080B8DC0 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080B8DCC
+ ldr r4, _080B8DC4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r6, 0x4]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ ble _080B8DB2
+ movs r1, 0x1
+_080B8DB2:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080B8DC8 @ =sub_80B8DE8
+ b _080B8DDA
+ .align 2, 0
+_080B8DB8: .4byte 0x000003ff
+_080B8DBC: .4byte 0xfffffc00
+_080B8DC0: .4byte gBattleAnimArgs
+_080B8DC4: .4byte gBattleAnimAttacker
+_080B8DC8: .4byte sub_80B8DE8
+_080B8DCC:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x22]
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ ldr r0, _080B8DE4 @ =sub_80B8E24
+_080B8DDA:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8DE4: .4byte sub_80B8E24
+ thumb_func_end sub_80B8D58
+
+ thumb_func_start sub_80B8DE8
+sub_80B8DE8: @ 80B8DE8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B8E06
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+_080B8E06:
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x4
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080B8E1E
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080B8E1E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B8DE8
+
+ thumb_func_start sub_80B8E24
+sub_80B8E24: @ 80B8E24
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080B8E36
+ cmp r1, 0x1
+ beq _080B8E4C
+ b _080B8E8E
+_080B8E36:
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x4
+ strh r0, [r3, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080B8E8E
+ strh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080B8E8E
+_080B8E4C:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080B8E8E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080B8E8E
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080B8E8E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B8E24
+
+ thumb_func_start sub_80B8E94
+sub_80B8E94: @ 80B8E94
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B8EB4 @ =gTasks
+ adds r1, r0, r1
+ ldr r0, _080B8EB8 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080B8EC0
+ ldr r0, _080B8EBC @ =sub_80B8ED4
+ b _080B8EC2
+ .align 2, 0
+_080B8EB4: .4byte gTasks
+_080B8EB8: .4byte gBattleAnimArgs
+_080B8EBC: .4byte sub_80B8ED4
+_080B8EC0:
+ ldr r0, _080B8ED0 @ =sub_80B908C
+_080B8EC2:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8ED0: .4byte sub_80B908C
+ thumb_func_end sub_80B8E94
+
+ thumb_func_start sub_80B8ED4
+sub_80B8ED4: @ 80B8ED4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B8EF8 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080B8EEE
+ b _080B9082
+_080B8EEE:
+ lsls r0, 2
+ ldr r1, _080B8EFC @ =_080B8F00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B8EF8: .4byte gTasks
+_080B8EFC: .4byte _080B8F00
+ .align 2, 0
+_080B8F00:
+ .4byte _080B8F14
+ .4byte _080B8F9C
+ .4byte _080B8FAC
+ .4byte _080B9050
+ .4byte _080B9064
+_080B8F14:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080B8F3C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080B8F48
+ ldr r0, _080B8F40 @ =gBattle_BG1_X
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080B8F44 @ =gBattle_BG1_Y
+ b _080B8F50
+ .align 2, 0
+_080B8F3C: .4byte gBattleAnimAttacker
+_080B8F40: .4byte gBattle_BG1_X
+_080B8F44: .4byte gBattle_BG1_Y
+_080B8F48:
+ ldr r0, _080B8F8C @ =gBattle_BG2_X
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080B8F90 @ =gBattle_BG2_Y
+_080B8F50:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080B8F94 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ cmp r1, 0
+ bge _080B8F72
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080B8F72:
+ ldr r2, _080B8F98 @ =gSprites
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080B9056
+ .align 2, 0
+_080B8F8C: .4byte gBattle_BG2_X
+_080B8F90: .4byte gBattle_BG2_Y
+_080B8F94: .4byte gBattleAnimAttacker
+_080B8F98: .4byte gSprites
+_080B8F9C:
+ ldrb r0, [r4, 0x1E]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ bl sub_80B92B8
+ b _080B9056
+_080B8FAC:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x6
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B8FCE
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080B8FCE:
+ ldr r1, _080B8FF0 @ =gSineTable
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ ldrh r3, [r4, 0xE]
+ adds r2, r0, r3
+ strh r2, [r4, 0x12]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080B8FF8
+ ldr r1, _080B8FF4 @ =gBattle_BG1_Y
+ b _080B8FFA
+ .align 2, 0
+_080B8FF0: .4byte gSineTable
+_080B8FF4: .4byte gBattle_BG1_Y
+_080B8FF8:
+ ldr r1, _080B901C @ =gBattle_BG2_Y
+_080B8FFA:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3F
+ ble _080B9082
+ ldrh r0, [r4, 0x24]
+ movs r1, 0x78
+ subs r2, r1, r0
+ strh r2, [r4, 0x12]
+ movs r3, 0x1E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080B9024
+ ldr r1, _080B9020 @ =gBattle_BG1_Y
+ b _080B9026
+ .align 2, 0
+_080B901C: .4byte gBattle_BG2_Y
+_080B9020: .4byte gBattle_BG1_Y
+_080B9024:
+ ldr r1, _080B9048 @ =gBattle_BG2_Y
+_080B9026:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ ldr r2, _080B904C @ =gSprites
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r3, 0
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ b _080B9056
+ .align 2, 0
+_080B9048: .4byte gBattle_BG2_Y
+_080B904C: .4byte gSprites
+_080B9050:
+ ldr r1, _080B9060 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080B9056:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B9082
+ .align 2, 0
+_080B9060: .4byte gScanlineEffect
+_080B9064:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ ldr r2, _080B9088 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080B9082:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9088: .4byte gSprites
+ thumb_func_end sub_80B8ED4
+
+ thumb_func_start sub_80B908C
+sub_80B908C: @ 80B908C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B90CC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ movs r4, 0
+ strh r4, [r1, 0x24]
+ strh r4, [r1, 0x26]
+ ldr r0, _080B90D0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B90D8
+ ldr r0, _080B90D4 @ =gBattle_BG1_Y
+ b _080B90DA
+ .align 2, 0
+_080B90CC: .4byte gSprites
+_080B90D0: .4byte gBattleAnimAttacker
+_080B90D4: .4byte gBattle_BG1_Y
+_080B90D8:
+ ldr r0, _080B90E8 @ =gBattle_BG2_Y
+_080B90DA:
+ strh r4, [r0]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B90E8: .4byte gBattle_BG2_Y
+ thumb_func_end sub_80B908C
+
+ thumb_func_start sub_80B90EC
+sub_80B90EC: @ 80B90EC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B910C @ =gTasks
+ adds r1, r0, r1
+ ldr r0, _080B9110 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080B9118
+ ldr r0, _080B9114 @ =sub_80B912C
+ b _080B911A
+ .align 2, 0
+_080B910C: .4byte gTasks
+_080B9110: .4byte gBattleAnimArgs
+_080B9114: .4byte sub_80B912C
+_080B9118:
+ ldr r0, _080B9128 @ =sub_80B91B0
+_080B911A:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9128: .4byte sub_80B91B0
+ thumb_func_end sub_80B90EC
+
+ thumb_func_start sub_80B912C
+sub_80B912C: @ 80B912C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B914C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080B9150
+ cmp r5, 0x1
+ beq _080B91A4
+ b _080B91AA
+ .align 2, 0
+_080B914C: .4byte gTasks
+_080B9150:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r3, _080B91A0 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r5, [r0, 0x24]
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x22]
+ movs r0, 0xA0
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B91AA
+ .align 2, 0
+_080B91A0: .4byte gSprites
+_080B91A4:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B91AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B912C
+
+ thumb_func_start sub_80B91B0
+sub_80B91B0: @ 80B91B0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B91D4 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _080B92B2
+ lsls r0, 2
+ ldr r1, _080B91D8 @ =_080B91DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B91D4: .4byte gTasks
+_080B91D8: .4byte _080B91DC
+ .align 2, 0
+_080B91DC:
+ .4byte _080B91F0
+ .4byte _080B9244
+ .4byte _080B9252
+ .4byte _080B926C
+ .4byte _080B92AC
+_080B91F0:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080B9214 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080B921C
+ ldr r0, _080B9218 @ =gBattle_BG1_X
+ b _080B921E
+ .align 2, 0
+_080B9214: .4byte gBattleAnimAttacker
+_080B9218: .4byte gBattle_BG1_X
+_080B921C:
+ ldr r0, _080B923C @ =gBattle_BG2_X
+_080B921E:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080B9240 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080B929A
+ .align 2, 0
+_080B923C: .4byte gBattle_BG2_X
+_080B9240: .4byte gBattleAnimAttacker
+_080B9244:
+ ldrb r0, [r4, 0x1E]
+ movs r1, 0x26
+ ldrsh r2, [r4, r1]
+ movs r1, 0
+ bl sub_80B92B8
+ b _080B929A
+_080B9252:
+ ldr r2, _080B9268 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x60
+ strh r1, [r0, 0x26]
+ b _080B929A
+ .align 2, 0
+_080B9268: .4byte gSprites
+_080B926C:
+ ldr r2, _080B92A4 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B92B2
+ ldr r1, _080B92A8 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080B929A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B92B2
+ .align 2, 0
+_080B92A4: .4byte gSprites
+_080B92A8: .4byte gScanlineEffect
+_080B92AC:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B92B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B91B0
+
+ thumb_func_start sub_80B92B8
+sub_80B92B8: @ 80B92B8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ cmp r0, 0x1
+ bne _080B92DC
+ ldr r0, _080B92D4 @ =gBattle_BG1_X
+ ldrh r3, [r0]
+ ldr r0, _080B92D8 @ =0x04000014
+ b _080B92E2
+ .align 2, 0
+_080B92D4: .4byte gBattle_BG1_X
+_080B92D8: .4byte 0x04000014
+_080B92DC:
+ ldr r0, _080B9368 @ =gBattle_BG2_X
+ ldrh r3, [r0]
+ ldr r0, _080B936C @ =0x04000018
+_080B92E2:
+ str r0, [sp]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080B92EC
+ movs r1, 0
+_080B92EC:
+ lsls r2, r1, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ cmp r2, r0
+ bge _080B9318
+ ldr r5, _080B9370 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080B92FE:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r5
+ strh r3, [r0]
+ adds r1, r6
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r2, r1, 16
+ asrs r0, r2, 16
+ cmp r0, r4
+ blt _080B92FE
+_080B9318:
+ lsls r1, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080B9346
+ ldr r4, _080B9370 @ =gScanlineEffectRegBuffers
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_080B9330:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r1, r2, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080B9330
+_080B9346:
+ ldr r0, _080B9374 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9368: .4byte gBattle_BG2_X
+_080B936C: .4byte 0x04000018
+_080B9370: .4byte gScanlineEffectRegBuffers
+_080B9374: .4byte 0xa2600001
+ thumb_func_end sub_80B92B8
+
+ thumb_func_start sub_80B9378
+sub_80B9378: @ 80B9378
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080B938C @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080B9394
+ ldr r0, _080B9390 @ =gBattleAnimAttacker
+ b _080B9396
+ .align 2, 0
+_080B938C: .4byte gBattleAnimArgs
+_080B9390: .4byte gBattleAnimAttacker
+_080B9394:
+ ldr r0, _080B93F8 @ =gBattleAnimTarget
+_080B9396:
+ ldrb r4, [r0]
+ movs r6, 0x18
+ adds r1, r7, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080B93B2
+ negs r0, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080B93B2:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1E
+ strh r0, [r5, 0x22]
+ ldrh r1, [r7, 0xA]
+ strh r1, [r5, 0x2E]
+ ldrh r1, [r7, 0x4]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x32]
+ ldrh r1, [r7, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_8075068
+ ldr r0, _080B93FC @ =sub_80B9400
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B93F8: .4byte gBattleAnimTarget
+_080B93FC: .4byte sub_80B9400
+ thumb_func_end sub_80B9378
+
+ thumb_func_start sub_80B9400
+sub_80B9400: @ 80B9400
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B9414
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B9414:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9400
+
+ thumb_func_start sub_80B941C
+sub_80B941C: @ 80B941C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080B9430 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B9438
+ ldr r0, _080B9434 @ =gBattleAnimAttacker
+ b _080B943A
+ .align 2, 0
+_080B9430: .4byte gBattleAnimArgs
+_080B9434: .4byte gBattleAnimAttacker
+_080B9438:
+ ldr r0, _080B9498 @ =gBattleAnimTarget
+_080B943A:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B949C @ =0x0000fff0
+ adds r0, r2
+ ldr r4, _080B94A0 @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ lsls r1, 5
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r6, 0x22]
+ ldrh r2, [r6, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r1, r0
+ ldr r3, _080B94A4 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080B94A8 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080B94AC @ =DestroyAnimSprite
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldr r0, _080B94B0 @ =sub_8074C44
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9498: .4byte gBattleAnimTarget
+_080B949C: .4byte 0x0000fff0
+_080B94A0: .4byte gBattleAnimArgs
+_080B94A4: .4byte 0x000003ff
+_080B94A8: .4byte 0xfffffc00
+_080B94AC: .4byte DestroyAnimSprite
+_080B94B0: .4byte sub_8074C44
+ thumb_func_end sub_80B941C
+
+ thumb_func_start sub_80B94B4
+sub_80B94B4: @ 80B94B4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B94D8 @ =gTasks
+ adds r4, r0, r1
+ ldr r0, _080B94DC @ =gBattleAnimArgs
+ ldrh r2, [r0, 0x2]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080B94E0
+ adds r0, r2, 0x3
+ b _080B94EC
+ .align 2, 0
+_080B94D8: .4byte gTasks
+_080B94DC: .4byte gBattleAnimArgs
+_080B94E0:
+ ldr r0, _080B950C @ =gUnknown_2037EEC
+ ldrh r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0x3
+_080B94EC:
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x24]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xE]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080B9518
+ cmp r0, 0x5
+ bne _080B9558
+ ldr r0, _080B9510 @ =gBattle_BG3_X
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080B9514 @ =sub_80B9584
+ b _080B9576
+ .align 2, 0
+_080B950C: .4byte gUnknown_2037EEC
+_080B9510: .4byte gBattle_BG3_X
+_080B9514: .4byte sub_80B9584
+_080B9518:
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ movs r5, 0
+_080B951E:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B9548
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ adds r0, 0x9
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r1, r0
+ ldr r0, _080B9554 @ =gBattlerSpriteIds
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080B9548:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080B951E
+ b _080B9574
+ .align 2, 0
+_080B9554: .4byte gBattlerSpriteIds
+_080B9558:
+ ldrb r0, [r6]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ cmp r0, 0xFF
+ bne _080B9570
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _080B9578
+_080B9570:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+_080B9574:
+ ldr r0, _080B9580 @ =sub_80B967C
+_080B9576:
+ str r0, [r4]
+_080B9578:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9580: .4byte sub_80B967C
+ thumb_func_end sub_80B94B4
+
+ thumb_func_start sub_80B9584
+sub_80B9584: @ 80B9584
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B95A8 @ =gTasks
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _080B9608
+ cmp r1, 0x1
+ bgt _080B95AC
+ cmp r1, 0
+ beq _080B95B2
+ b _080B9674
+ .align 2, 0
+_080B95A8: .4byte gTasks
+_080B95AC:
+ cmp r1, 0x2
+ beq _080B9668
+ b _080B9674
+_080B95B2:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B9674
+ strh r1, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B95DC
+ ldr r1, _080B95D8 @ =gBattle_BG3_X
+ ldrh r0, [r3, 0x26]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080B95E6
+ .align 2, 0
+_080B95D8: .4byte gBattle_BG3_X
+_080B95DC:
+ ldr r0, _080B9604 @ =gBattle_BG3_X
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x26]
+ subs r1, r2
+ strh r1, [r0]
+_080B95E6:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bne _080B9674
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ b _080B965C
+ .align 2, 0
+_080B9604: .4byte gBattle_BG3_X
+_080B9608:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B9674
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ ands r1, r0
+ cmp r1, 0
+ bne _080B9634
+ ldr r1, _080B9630 @ =gBattle_BG3_X
+ ldrh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080B963E
+ .align 2, 0
+_080B9630: .4byte gBattle_BG3_X
+_080B9634:
+ ldr r0, _080B9664 @ =gBattle_BG3_X
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x24]
+ subs r1, r2
+ strh r1, [r0]
+_080B963E:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080B9674
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B9674
+_080B965C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080B9674
+ .align 2, 0
+_080B9664: .4byte gBattle_BG3_X
+_080B9668:
+ ldr r1, _080B9678 @ =gBattle_BG3_X
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B9674:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9678: .4byte gBattle_BG3_X
+ thumb_func_end sub_80B9584
+
+ thumb_func_start sub_80B967C
+sub_80B967C: @ 80B967C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080B96A0 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080B96DC
+ cmp r5, 0x1
+ bgt _080B96A4
+ cmp r5, 0
+ beq _080B96AA
+ b _080B9756
+ .align 2, 0
+_080B96A0: .4byte gTasks
+_080B96A4:
+ cmp r5, 0x2
+ beq _080B9718
+ b _080B9756
+_080B96AA:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B9756
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80B9760
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080B9756
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080B9710
+_080B96DC:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B9756
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80B9760
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080B9756
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B9756
+_080B9710:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B9756
+_080B9718:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r4, r7]
+ cmp r2, r0
+ bge _080B9750
+ ldr r0, _080B975C @ =gSprites
+ mov r12, r0
+ adds r5, r4, 0
+ adds r5, 0x8
+ movs r6, 0
+_080B972C:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ strh r6, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080B972C
+_080B9750:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080B9756:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B975C: .4byte gSprites
+ thumb_func_end sub_80B967C
+
+ thumb_func_start sub_80B9760
+sub_80B9760: @ 80B9760
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xC]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080B9788
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r2, [r3, 0x24]
+ adds r0, r4, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ b _080B9798
+_080B9788:
+ movs r1, 0x24
+ ldrsh r0, [r3, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080B9798:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r3, r7]
+ cmp r2, r0
+ bge _080B97CC
+ ldr r6, _080B97D4 @ =gSprites
+ adds r5, r3, 0
+ adds r5, 0x8
+_080B97A8:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r3, r1]
+ cmp r2, r0
+ blt _080B97A8
+_080B97CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B97D4: .4byte gSprites
+ thumb_func_end sub_80B9760
+
+ thumb_func_start sub_80B97D8
+sub_80B97D8: @ 80B97D8
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080B97F8 @ =gBattleAnimArgs
+ movs r2, 0
+ ldr r0, _080B97FC @ =gUnknown_2037EEC
+ ldrh r0, [r0]
+ cmp r0, 0x63
+ bls _080B97EC
+ movs r2, 0x1
+_080B97EC:
+ strh r2, [r3, 0x1E]
+ adds r0, r1, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B97F8: .4byte gBattleAnimArgs
+_080B97FC: .4byte gUnknown_2037EEC
+ thumb_func_end sub_80B97D8
+
+ thumb_func_start sub_80B9800
+sub_80B9800: @ 80B9800
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080B9818 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _080B9820
+ ldr r0, _080B981C @ =gBattleAnimTarget
+ b _080B9822
+ .align 2, 0
+_080B9818: .4byte gBattleAnimArgs
+_080B981C: .4byte gBattleAnimTarget
+_080B9820:
+ ldr r0, _080B9890 @ =gBattleAnimAttacker
+_080B9822:
+ ldrb r0, [r0]
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ ble _080B9832
+ movs r0, 0x2
+ eors r5, r0
+_080B9832:
+ ldr r0, _080B9894 @ =sub_80B98A8
+ ldrb r1, [r6, 0x2]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080B9898 @ =gTasks
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x20
+ subs r1, r0
+ ldr r2, _080B989C @ =0x000001ff
+ adds r0, r2, 0
+ ands r1, r0
+ strh r1, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x40
+ subs r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0xC]
+ ldr r2, _080B98A0 @ =gBattle_BG3_X
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ ldr r0, _080B98A4 @ =gBattle_BG3_Y
+ strh r1, [r0]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0xE]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9890: .4byte gBattleAnimAttacker
+_080B9894: .4byte sub_80B98A8
+_080B9898: .4byte gTasks
+_080B989C: .4byte 0x000001ff
+_080B98A0: .4byte gBattle_BG3_X
+_080B98A4: .4byte gBattle_BG3_Y
+ thumb_func_end sub_80B9800
+
+ thumb_func_start sub_80B98A8
+sub_80B98A8: @ 80B98A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080B98D8 @ =gTasks
+ adds r2, r0, r1
+ ldr r0, _080B98DC @ =gBattleAnimArgs
+ movs r4, 0xE
+ ldrsh r1, [r0, r4]
+ movs r4, 0xE
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _080B98E8
+ ldr r0, _080B98E0 @ =gBattle_BG3_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080B98E4 @ =gBattle_BG3_Y
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080B98F4
+ .align 2, 0
+_080B98D8: .4byte gTasks
+_080B98DC: .4byte gBattleAnimArgs
+_080B98E0: .4byte gBattle_BG3_X
+_080B98E4: .4byte gBattle_BG3_Y
+_080B98E8:
+ ldr r1, _080B98FC @ =gBattle_BG3_X
+ ldrh r0, [r2, 0xA]
+ strh r0, [r1]
+ ldr r1, _080B9900 @ =gBattle_BG3_Y
+ ldrh r0, [r2, 0xC]
+ strh r0, [r1]
+_080B98F4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B98FC: .4byte gBattle_BG3_X
+_080B9900: .4byte gBattle_BG3_Y
+ thumb_func_end sub_80B98A8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index 147bc65c0..97bf9ef64 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -508,7 +508,7 @@ _080F21B2:
bl memcpy
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F2214 @ =gUnknown_8419F54
movs r0, 0
str r0, [sp]
@@ -521,7 +521,7 @@ _080F21B2:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -692,7 +692,7 @@ _080F22F2:
ldr r3, _080F238C @ =0x0000ffff
str r3, [sp, 0xC]
movs r3, 0x1
- bl sub_810C1CC
+ bl CreateMonPicSprite_HandleDeoxys
lsls r0, 24
lsrs r0, 24
ldr r3, _080F2390 @ =gSprites
@@ -723,7 +723,7 @@ _080F22F2:
strh r0, [r1]
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r4, r5
ldr r0, _080F239C @ =sub_80F23A0
str r0, [r4]
@@ -1172,7 +1172,7 @@ sub_80F26D4: @ 80F26D4
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
- bl sub_810C374
+ bl PlayerGenderToFrontTrainerPicId_Debug
lsls r0, 16
lsrs r0, 16
movs r1, 0x6
@@ -1182,7 +1182,7 @@ sub_80F26D4: @ 80F26D4
movs r1, 0x1
movs r2, 0x78
movs r3, 0x48
- bl sub_810C2A4
+ bl CreateTrainerPicSprite
ldr r1, _080F2750 @ =gTasks
lsls r4, r5, 2
adds r4, r5
@@ -1194,7 +1194,7 @@ sub_80F26D4: @ 80F26D4
ldr r1, _080F2758 @ =0x0000021d
movs r0, 0x1
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x78
strh r0, [r4, 0xE]
ldr r0, _080F275C @ =Task_Hof_WaitAndPrintPlayerInfo
@@ -1265,7 +1265,7 @@ _080F27AC:
bl sub_80F33DC
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F27FC @ =gUnknown_84160C8
str r5, [sp]
movs r0, 0x2
@@ -1277,7 +1277,7 @@ _080F27AC:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1383,7 +1383,7 @@ _080F28AC:
ldrb r0, [r4]
cmp r0, 0xFF
beq _080F28B6
- bl sub_810C214
+ bl FreeAndDestroyMonPicSprite
_080F28B6:
adds r4, 0x2
subs r5, 0x1
@@ -1394,7 +1394,7 @@ _080F28B6:
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x10]
- bl sub_810C2E8
+ bl FreeAndDestroyTrainerPicSprite
movs r0, 0
bl HideBg
movs r0, 0x1
@@ -1459,8 +1459,8 @@ sub_80F2934: @ 80F2934
movs r1, 0x9
movs r3, 0xB
bl Overworld_SetWarpDestination
- bl sub_807E438
- bl sub_80559E4
+ bl DoWarp
+ bl ResetInitialPlayerAvatarState
add sp, 0x4
pop {r0}
bx r0
@@ -1607,7 +1607,7 @@ sub_80F2AA4: @ 80F2AA4
movs r1, 0x1E
movs r2, 0
movs r3, 0xC
- bl sub_810F558
+ bl CreateWindow_SnapRight_StdPal
movs r0, 0x3
bl Save_LoadGameData
lsls r0, 24
@@ -1825,7 +1825,7 @@ _080F2C4C:
ldr r3, _080F2CA0 @ =0x0000ffff
str r3, [sp, 0xC]
movs r3, 0x1
- bl sub_810C1CC
+ bl CreateMonPicSprite_HandleDeoxys
lsls r0, 16
lsrs r0, 16
ldr r2, _080F2CA4 @ =gSprites
@@ -1888,13 +1888,13 @@ _080F2CB4:
ldrsh r0, [r4, r1]
cmp r0, 0
bgt _080F2D24
- ldr r1, _080F2D20 @ =gUnknown_8415D78
+ ldr r1, _080F2D20 @ =gText_UPDOWNPick_ABUTTONBBUTTONCancel
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl sub_810F650
+ bl Menu_PrintHelpSystemUIHeader
b _080F2D34
.align 2, 0
_080F2D08: .4byte 0xffff0000
@@ -1903,15 +1903,15 @@ _080F2D10: .4byte gStringVar1
_080F2D14: .4byte gTasks
_080F2D18: .4byte gStringVar4
_080F2D1C: .4byte gUnknown_84160B4
-_080F2D20: .4byte gUnknown_8415D78
+_080F2D20: .4byte gText_UPDOWNPick_ABUTTONBBUTTONCancel
_080F2D24:
- ldr r1, _080F2D54 @ =gUnknown_8415D60
+ ldr r1, _080F2D54 @ =gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl sub_810F650
+ bl Menu_PrintHelpSystemUIHeader
_080F2D34:
ldr r0, _080F2D58 @ =gTasks
ldr r1, [sp, 0x14]
@@ -1929,7 +1929,7 @@ _080F2D34:
pop {r0}
bx r0
.align 2, 0
-_080F2D54: .4byte gUnknown_8415D60
+_080F2D54: .4byte gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
_080F2D58: .4byte gTasks
_080F2D5C: .4byte Task_HofPC_PrintMonInfo
thumb_func_end sub_80F2B6C
@@ -2118,7 +2118,7 @@ _080F2EC4:
ldrb r0, [r0]
cmp r0, 0xFF
beq _080F2ED6
- bl sub_810C214
+ bl FreeAndDestroyMonPicSprite
_080F2ED6:
adds r0, r4, 0x1
lsls r0, 16
@@ -2339,13 +2339,13 @@ sub_80F30A4: @ 80F30A4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080F30FC @ =gUnknown_8415D8C
+ ldr r0, _080F30FC @ =gText_ABUTTONExit
movs r1, 0x8
movs r2, 0x1
- bl sub_810F5E8
+ bl PrintTextOnRightSnappedWindow
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F3100 @ =gUnknown_8416090
movs r0, 0
str r0, [sp]
@@ -2358,7 +2358,7 @@ sub_80F30A4: @ 80F30A4
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -2374,7 +2374,7 @@ sub_80F30A4: @ 80F30A4
pop {r0}
bx r0
.align 2, 0
-_080F30FC: .4byte gUnknown_8415D8C
+_080F30FC: .4byte gText_ABUTTONExit
_080F3100: .4byte gUnknown_8416090
_080F3104: .4byte gTasks
_080F3108: .4byte Task_HofPC_ExitOnButtonPress
@@ -2436,7 +2436,7 @@ HallOfFame_PrintWelcomeText: @ 80F313C
movs r1, 0x2
adds r2, r4, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -2535,7 +2535,7 @@ _080F322E:
movs r1, 0x2
movs r2, 0x10
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_080F3252:
movs r2, 0
ldrb r0, [r7, 0xA]
@@ -2606,7 +2606,7 @@ _080F32C4:
movs r0, 0
movs r1, 0x2
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldrh r2, [r7, 0x8]
ldr r4, _080F3320 @ =0x000001ff
adds r0, r4, 0
@@ -2676,7 +2676,7 @@ _080F3348:
movs r1, 0x2
movs r2, 0x80
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, _080F33D4 @ =gUnknown_84160F4
add r0, sp, 0xC
bl StringCopy
@@ -2694,7 +2694,7 @@ _080F3348:
movs r1, 0x2
movs r2, 0x20
movs r3, 0x11
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, _080F33D8 @ =gUnknown_8416104
add r0, sp, 0xC
bl StringCopy
@@ -2711,7 +2711,7 @@ _080F3348:
movs r1, 0x2
movs r2, 0x60
movs r3, 0x11
- bl box_print
+ bl AddTextPrinterParameterized3
_080F33BA:
movs r0, 0
movs r1, 0x3
@@ -2764,7 +2764,7 @@ sub_80F33DC: @ 80F33DC
movs r1, 0x2
movs r2, 0x4
movs r3, 0x3
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r0, _080F35FC @ =gSaveBlock2Ptr
mov r10, r0
ldr r1, [r0]
@@ -2785,7 +2785,7 @@ sub_80F33DC: @ 80F33DC
movs r0, 0x1
movs r1, 0x2
movs r3, 0x3
- bl box_print
+ bl AddTextPrinterParameterized3
mov r1, r10
ldr r0, [r1]
ldrb r4, [r0, 0xA]
@@ -2801,7 +2801,7 @@ sub_80F33DC: @ 80F33DC
movs r1, 0x2
movs r2, 0x4
movs r3, 0x12
- bl box_print
+ bl AddTextPrinterParameterized3
add r1, sp, 0x14
mov r8, r1
ldr r1, _080F3604 @ =0x000186a0
@@ -2869,7 +2869,7 @@ sub_80F33DC: @ 80F33DC
movs r1, 0x2
adds r2, r6, 0
movs r3, 0x12
- bl box_print
+ bl AddTextPrinterParameterized3
mov r1, r9
str r1, [sp]
str r7, [sp, 0x4]
@@ -2879,7 +2879,7 @@ sub_80F33DC: @ 80F33DC
movs r1, 0x2
movs r2, 0x4
movs r3, 0x20
- bl box_print
+ bl AddTextPrinterParameterized3
add r5, sp, 0x14
mov r0, r10
ldr r4, [r0]
@@ -2957,7 +2957,7 @@ _080F3582:
movs r0, 0x1
movs r1, 0x2
movs r3, 0x20
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
@@ -3070,11 +3070,11 @@ _080F36B8: .4byte gUnknown_840C39C
thumb_func_start sub_80F36BC
sub_80F36BC: @ 80F36BC
push {lr}
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl reset_temp_tile_data_buffers
- bl dp13_810BB8C
+ bl ResetAllPicSprites
bl FreeAllSpritePalettes
ldr r1, _080F36EC @ =gReservedSpritePaletteCount
movs r0, 0x8
@@ -3223,8 +3223,8 @@ _080F37C8:
bl CopyBgTilemapBufferToVram
b _080F3854
_080F381E:
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
b _080F3854
_080F3828:
movs r1, 0x82
@@ -3353,7 +3353,7 @@ _080F38EE:
movs r1, 0x3
ands r0, r1
adds r0, 0x8
- ldr r1, _080F392C @ =gUnknown_825E074
+ ldr r1, _080F392C @ =gSineTable
lsls r4, 1
adds r4, r1
movs r2, 0
@@ -3373,7 +3373,7 @@ _080F3926:
pop {r0}
bx r0
.align 2, 0
-_080F392C: .4byte gUnknown_825E074
+_080F392C: .4byte gSineTable
thumb_func_end sub_80F38D8
thumb_func_start sub_80F3930
diff --git a/asm/heal_location.s b/asm/heal_location.s
deleted file mode 100644
index 34eb1461b..000000000
--- a/asm/heal_location.s
+++ /dev/null
@@ -1,254 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetHealLocationIndexFromMapGroupAndNum
-GetHealLocationIndexFromMapGroupAndNum: @ 80BFC50
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- ldr r2, _080BFC74 @ =gUnknown_83EEBF8
-_080BFC5E:
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _080BFC78
- movs r0, 0x1
- ldrsb r0, [r2, r0]
- cmp r0, r1
- bne _080BFC78
- adds r0, r3, 0x1
- b _080BFC82
- .align 2, 0
-_080BFC74: .4byte gUnknown_83EEBF8
-_080BFC78:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x13
- bls _080BFC5E
- movs r0, 0
-_080BFC82:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetHealLocationIndexFromMapGroupAndNum
-
- thumb_func_start GetHealLocationPointerFromMapGroupAndNum
-GetHealLocationPointerFromMapGroupAndNum: @ 80BFC88
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl GetHealLocationIndexFromMapGroupAndNum
- cmp r0, 0
- beq _080BFCA8
- lsls r0, 3
- ldr r1, _080BFCA4 @ =gUnknown_83EEBF0
- adds r0, r1
- b _080BFCAA
- .align 2, 0
-_080BFCA4: .4byte gUnknown_83EEBF0
-_080BFCA8:
- movs r0, 0
-_080BFCAA:
- pop {r1}
- bx r1
- thumb_func_end GetHealLocationPointerFromMapGroupAndNum
-
- thumb_func_start GetHealLocationPointer
-GetHealLocationPointer: @ 80BFCB0
- push {lr}
- cmp r0, 0
- beq _080BFCC8
- cmp r0, 0x14
- bhi _080BFCC8
- lsls r0, 3
- ldr r1, _080BFCC4 @ =gUnknown_83EEBF0
- adds r0, r1
- b _080BFCCA
- .align 2, 0
-_080BFCC4: .4byte gUnknown_83EEBF0
-_080BFCC8:
- movs r0, 0
-_080BFCCA:
- pop {r1}
- bx r1
- thumb_func_end GetHealLocationPointer
-
- thumb_func_start sub_80BFCD0
-sub_80BFCD0: @ 80BFCD0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080BFD24 @ =0x00004082
- adds r0, r6, 0
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bne _080BFD38
- ldr r0, _080BFD28 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _080BFD2C @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _080BFD30 @ =0x00003d42
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _080BFD0A
- adds r0, r6, 0
- movs r1, 0
- bl VarSet
-_080BFD0A:
- ldr r0, _080BFD34 @ =gSpecialVar_LastTalked
- strh r5, [r0]
- movs r0, 0x4
- strh r0, [r4, 0x4]
- movs r0, 0xB
- strh r0, [r4, 0x6]
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0xA
- strb r0, [r4, 0x1]
- movs r0, 0xFF
- strb r0, [r4, 0x2]
- b _080BFDFA
- .align 2, 0
-_080BFD24: .4byte 0x00004082
-_080BFD28: .4byte gSaveBlock1Ptr
-_080BFD2C: .4byte 0x00003d34
-_080BFD30: .4byte 0x00003d42
-_080BFD34: .4byte gSpecialVar_LastTalked
-_080BFD38:
- ldr r0, _080BFD7C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x1D]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl GetHealLocationIndexFromMapGroupAndNum
- adds r6, r0, 0
- ldr r2, _080BFD80 @ =gUnknown_83EEC98
- subs r0, r6, 0x1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r1, [r1]
- strb r1, [r4]
- adds r2, 0x2
- adds r0, r2
- ldrh r2, [r0]
- strb r2, [r4, 0x1]
- movs r0, 0xFF
- strb r0, [r4, 0x2]
- cmp r1, 0x4
- bne _080BFD84
- cmp r2, 0
- bne _080BFD84
- movs r0, 0x8
- strh r0, [r4, 0x4]
- movs r0, 0x5
- b _080BFDF2
- .align 2, 0
-_080BFD7C: .4byte gSaveBlock1Ptr
-_080BFD80: .4byte gUnknown_83EEC98
-_080BFD84:
- ldr r0, _080BFDA4 @ =gUnknown_83EEC98
- subs r2, r6, 0x1
- lsls r3, r2, 2
- adds r1, r3, r0
- ldrh r1, [r1]
- adds r5, r0, 0
- cmp r1, 0xD
- bne _080BFDA8
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BFDA8
- strh r1, [r4, 0x4]
- movs r0, 0xC
- b _080BFDF2
- .align 2, 0
-_080BFDA4: .4byte gUnknown_83EEC98
-_080BFDA8:
- lsls r1, r2, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0x20
- bne _080BFDC0
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BFDC0
- movs r0, 0x5
- b _080BFDEE
-_080BFDC0:
- lsls r2, 2
- adds r0, r2, r5
- ldrh r0, [r0]
- cmp r0, 0x2
- bne _080BFDEC
- adds r0, r5, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, 0xA
- bne _080BFDEC
- movs r0, 0x4
- strh r0, [r4, 0x4]
- movs r0, 0xB
- strh r0, [r4, 0x6]
- ldr r0, _080BFDE8 @ =0x00004082
- movs r1, 0
- bl VarSet
- b _080BFDF4
- .align 2, 0
-_080BFDE8: .4byte 0x00004082
-_080BFDEC:
- movs r0, 0x7
-_080BFDEE:
- strh r0, [r4, 0x4]
- movs r0, 0x4
-_080BFDF2:
- strh r0, [r4, 0x6]
-_080BFDF4:
- adds r0, r6, 0
- bl sub_80BFE00
-_080BFDFA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BFCD0
-
- thumb_func_start sub_80BFE00
-sub_80BFE00: @ 80BFE00
- ldr r2, _080BFE10 @ =gSpecialVar_LastTalked
- ldr r1, _080BFE14 @ =gUnknown_83EECE8
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080BFE10: .4byte gSpecialVar_LastTalked
-_080BFE14: .4byte gUnknown_83EECE8
- thumb_func_end sub_80BFE00
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/help_system.s b/asm/help_system.s
deleted file mode 100644
index 7026c65d5..000000000
--- a/asm/help_system.s
+++ /dev/null
@@ -1,2254 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_813B870
-sub_813B870: @ 813B870
- push {r4,r5,lr}
- ldr r0, _0813B888 @ =gUnknown_203F178
- ldrb r0, [r0, 0x15]
- cmp r0, 0x8
- bls _0813B87C
- b _0813BB24
-_0813B87C:
- lsls r0, 2
- ldr r1, _0813B88C @ =_0813B890
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813B888: .4byte gUnknown_203F178
-_0813B88C: .4byte _0813B890
- .align 2, 0
-_0813B890:
- .4byte _0813B8B4
- .4byte _0813B968
- .4byte _0813B994
- .4byte _0813B9D8
- .4byte _0813BA40
- .4byte _0813BA78
- .4byte _0813BAA0
- .4byte _0813BAE0
- .4byte _0813BB14
-_0813B8B4:
- ldr r1, _0813B904 @ =gUnknown_203F177
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0813B908 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- bne _0813B900
- ldr r2, _0813B90C @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0813B8DA
- ldr r0, _0813B910 @ =gUnknown_203F175
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0813B900
-_0813B8DA:
- ldrh r1, [r2, 0x2E]
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0813B8E8
- b _0813BB24
-_0813B8E8:
- bl sub_812B45C
- lsls r0, 24
- cmp r0, 0
- beq _0813B8FA
- ldr r0, _0813B914 @ =gUnknown_3005ECC
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B918
-_0813B8FA:
- movs r0, 0xFC
- bl PlaySE
-_0813B900:
- movs r0, 0
- b _0813BB28
- .align 2, 0
-_0813B904: .4byte gUnknown_203F177
-_0813B908: .4byte gSaveBlock2Ptr
-_0813B90C: .4byte gMain
-_0813B910: .4byte gUnknown_203F175
-_0813B914: .4byte gUnknown_3005ECC
-_0813B918:
- ldr r0, _0813B94C @ =gMPlayInfo_SE1
- bl m4aMPlayStop
- ldr r0, _0813B950 @ =gMPlayInfo_SE2
- bl m4aMPlayStop
- movs r0, 0xFA
- bl PlaySE
- ldr r0, _0813B954 @ =gUnknown_203F174
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B93C
- ldr r0, _0813B958 @ =gMPlayInfo_BGM
- ldr r1, _0813B95C @ =0x0000ffff
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_0813B93C:
- bl sub_813BB38
- ldr r1, _0813B960 @ =gUnknown_203F177
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0813B964 @ =gUnknown_203F178
- movs r0, 0x1
- b _0813BB22
- .align 2, 0
-_0813B94C: .4byte gMPlayInfo_SE1
-_0813B950: .4byte gMPlayInfo_SE2
-_0813B954: .4byte gUnknown_203F174
-_0813B958: .4byte gMPlayInfo_BGM
-_0813B95C: .4byte 0x0000ffff
-_0813B960: .4byte gUnknown_203F177
-_0813B964: .4byte gUnknown_203F178
-_0813B968:
- bl sub_813BBAC
- bl sub_813BB74
- bl sub_813BBC8
- movs r1, 0xA0
- lsls r1, 19
- ldr r0, _0813B98C @ =gUnknown_8464128
- ldrh r0, [r0, 0x1E]
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r1, _0813B990 @ =gUnknown_203F178
- movs r0, 0x2
- b _0813BB22
- .align 2, 0
-_0813B98C: .4byte gUnknown_8464128
-_0813B990: .4byte gUnknown_203F178
-_0813B994:
- ldr r1, _0813B9C4 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 7
- movs r0, 0
- movs r3, 0
- bl RequestDma3Fill
- ldr r0, _0813B9C8 @ =gUnknown_8464128
- movs r1, 0xA0
- lsls r1, 19
- movs r2, 0x20
- movs r3, 0
- bl RequestDma3Copy
- ldr r0, _0813B9CC @ =gUnknown_8464008
- ldr r1, _0813B9D0 @ =gUnknown_201FEE0
- movs r2, 0x90
- lsls r2, 1
- movs r3, 0
- bl RequestDma3Copy
- ldr r1, _0813B9D4 @ =gUnknown_203F178
- movs r0, 0x3
- b _0813BB22
- .align 2, 0
-_0813B9C4: .4byte 0x0600c000
-_0813B9C8: .4byte gUnknown_8464128
-_0813B9CC: .4byte gUnknown_8464008
-_0813B9D0: .4byte gUnknown_201FEE0
-_0813B9D4: .4byte gUnknown_203F178
-_0813B9D8:
- bl sub_813BCF4
- bl sub_813C5D4
- bl sub_813C5FC
- ldr r0, _0813BA08 @ =gUnknown_841CB49
- bl sub_813C454
- movs r0, 0x1
- bl sub_813BD14
- bl sub_812B40C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813BA14
- ldr r0, _0813BA0C @ =gUnknown_203F190
- ldr r1, _0813BA10 @ =gUnknown_203F1AC
- bl sub_812BC54
- b _0813BA1C
- .align 2, 0
-_0813BA08: .4byte gUnknown_841CB49
-_0813BA0C: .4byte gUnknown_203F190
-_0813BA10: .4byte gUnknown_203F1AC
-_0813BA14:
- ldr r0, _0813BA34 @ =gUnknown_203F190
- ldr r1, _0813BA38 @ =gUnknown_203F1AC
- bl sub_812BCA8
-_0813BA1C:
- movs r0, 0x1
- bl sub_813BE78
- movs r0, 0x1
- bl sub_813BF50
- bl sub_813BC5C
- ldr r1, _0813BA3C @ =gUnknown_203F178
- movs r0, 0x4
- b _0813BB22
- .align 2, 0
-_0813BA34: .4byte gUnknown_203F190
-_0813BA38: .4byte gUnknown_203F1AC
-_0813BA3C: .4byte gUnknown_203F178
-_0813BA40:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- ldr r1, _0813BA70 @ =0x00001f0c
- movs r0, 0x8
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0
- bl SetGpuReg
- ldr r1, _0813BA74 @ =gUnknown_203F178
- movs r0, 0x5
- b _0813BB22
- .align 2, 0
-_0813BA70: .4byte 0x00001f0c
-_0813BA74: .4byte gUnknown_203F178
-_0813BA78:
- ldr r0, _0813BA94 @ =gUnknown_203F190
- ldr r1, _0813BA98 @ =gUnknown_203F1AC
- bl sub_812BB9C
- lsls r0, 24
- cmp r0, 0
- bne _0813BB24
- movs r0, 0xFB
- bl PlaySE
- ldr r1, _0813BA9C @ =gUnknown_203F178
- movs r0, 0x6
- b _0813BB22
- .align 2, 0
-_0813BA94: .4byte gUnknown_203F190
-_0813BA98: .4byte gUnknown_203F1AC
-_0813BA9C: .4byte gUnknown_203F178
-_0813BAA0:
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- bl sub_813BC2C
- movs r1, 0
- ldr r5, _0813BAD0 @ =0x000001ff
- movs r4, 0xA0
- lsls r4, 19
- ldr r0, _0813BAD4 @ =gUnknown_8464128
- ldrh r2, [r0, 0x1E]
- ldr r3, _0813BAD8 @ =0x05000200
-_0813BABA:
- adds r0, r1, r4
- strh r2, [r0]
- adds r0, r1, r3
- strh r2, [r0]
- adds r1, 0x2
- cmp r1, r5
- ble _0813BABA
- ldr r1, _0813BADC @ =gUnknown_203F178
- movs r0, 0x7
- b _0813BB22
- .align 2, 0
-_0813BAD0: .4byte 0x000001ff
-_0813BAD4: .4byte gUnknown_8464128
-_0813BAD8: .4byte 0x05000200
-_0813BADC: .4byte gUnknown_203F178
-_0813BAE0:
- ldr r0, _0813BB04 @ =gUnknown_203F174
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813BAF4
- ldr r0, _0813BB08 @ =gMPlayInfo_BGM
- ldr r1, _0813BB0C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0813BAF4:
- bl sub_813BC48
- bl sub_813BBF4
- ldr r1, _0813BB10 @ =gUnknown_203F178
- movs r0, 0x8
- b _0813BB22
- .align 2, 0
-_0813BB04: .4byte gUnknown_203F174
-_0813BB08: .4byte gMPlayInfo_BGM
-_0813BB0C: .4byte 0x0000ffff
-_0813BB10: .4byte gUnknown_203F178
-_0813BB14:
- bl sub_813BBDC
- ldr r1, _0813BB30 @ =gUnknown_203F177
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0813BB34 @ =gUnknown_203F178
- movs r0, 0
-_0813BB22:
- strb r0, [r1, 0x15]
-_0813BB24:
- ldr r0, _0813BB34 @ =gUnknown_203F178
- ldrb r0, [r0, 0x15]
-_0813BB28:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0813BB30: .4byte gUnknown_203F177
-_0813BB34: .4byte gUnknown_203F178
- thumb_func_end sub_813B870
-
- thumb_func_start sub_813BB38
-sub_813BB38: @ 813BB38
- ldr r2, _0813BB60 @ =gUnknown_203F178
- ldr r1, _0813BB64 @ =gMain
- ldr r0, [r1, 0xC]
- str r0, [r2]
- ldr r0, [r1, 0x10]
- str r0, [r2, 0x4]
- movs r0, 0
- str r0, [r1, 0xC]
- str r0, [r1, 0x10]
- ldr r1, _0813BB68 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0813BB6C @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0813BB70 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bx lr
- .align 2, 0
-_0813BB60: .4byte gUnknown_203F178
-_0813BB64: .4byte gMain
-_0813BB68: .4byte 0x040000b0
-_0813BB6C: .4byte 0x0000c5ff
-_0813BB70: .4byte 0x00007fff
- thumb_func_end sub_813BB38
-
- thumb_func_start sub_813BB74
-sub_813BB74: @ 813BB74
- push {r4,lr}
- movs r0, 0
- bl GetGpuReg
- ldr r4, _0813BBA8 @ =gUnknown_203F178
- strh r0, [r4, 0x8]
- movs r0, 0x8
- bl GetGpuReg
- strh r0, [r4, 0xA]
- movs r0, 0x10
- bl GetGpuReg
- strh r0, [r4, 0xC]
- movs r0, 0x12
- bl GetGpuReg
- strh r0, [r4, 0xE]
- movs r0, 0x50
- bl GetGpuReg
- strh r0, [r4, 0x10]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BBA8: .4byte gUnknown_203F178
- thumb_func_end sub_813BB74
-
- thumb_func_start sub_813BBAC
-sub_813BBAC: @ 813BBAC
- push {lr}
- ldr r0, _0813BBC0 @ =0x0600c000
- ldr r1, _0813BBC4 @ =gUnknown_203B174
- movs r2, 0x80
- lsls r2, 7
- movs r3, 0
- bl RequestDma3Copy
- pop {r0}
- bx r0
- .align 2, 0
-_0813BBC0: .4byte 0x0600c000
-_0813BBC4: .4byte gUnknown_203B174
- thumb_func_end sub_813BBAC
-
- thumb_func_start sub_813BBC8
-sub_813BBC8: @ 813BBC8
- push {lr}
- ldr r0, _0813BBD8 @ =gUnknown_203F18A
- adds r1, r0, 0x1
- adds r2, r0, 0x2
- bl SaveTextColors
- pop {r0}
- bx r0
- .align 2, 0
-_0813BBD8: .4byte gUnknown_203F18A
- thumb_func_end sub_813BBC8
-
- thumb_func_start sub_813BBDC
-sub_813BBDC: @ 813BBDC
- ldr r2, _0813BBEC @ =gMain
- ldr r1, _0813BBF0 @ =gUnknown_203F178
- ldr r0, [r1]
- str r0, [r2, 0xC]
- ldr r0, [r1, 0x4]
- str r0, [r2, 0x10]
- bx lr
- .align 2, 0
-_0813BBEC: .4byte gMain
-_0813BBF0: .4byte gUnknown_203F178
- thumb_func_end sub_813BBDC
-
- thumb_func_start sub_813BBF4
-sub_813BBF4: @ 813BBF4
- push {r4,lr}
- ldr r4, _0813BC28 @ =gUnknown_203F178
- ldrh r1, [r4, 0x10]
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0xC]
- movs r0, 0x10
- bl SetGpuReg
- ldrh r1, [r4, 0xE]
- movs r0, 0x12
- bl SetGpuReg
- ldrh r1, [r4, 0xA]
- movs r0, 0x8
- bl SetGpuReg
- ldrh r1, [r4, 0x8]
- movs r0, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BC28: .4byte gUnknown_203F178
- thumb_func_end sub_813BBF4
-
- thumb_func_start sub_813BC2C
-sub_813BC2C: @ 813BC2C
- push {lr}
- ldr r0, _0813BC40 @ =gUnknown_203B174
- ldr r1, _0813BC44 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 7
- movs r3, 0
- bl RequestDma3Copy
- pop {r0}
- bx r0
- .align 2, 0
-_0813BC40: .4byte gUnknown_203B174
-_0813BC44: .4byte 0x0600c000
- thumb_func_end sub_813BC2C
-
- thumb_func_start sub_813BC48
-sub_813BC48: @ 813BC48
- push {lr}
- ldr r0, _0813BC58 @ =gUnknown_203F18A
- adds r1, r0, 0x1
- adds r2, r0, 0x2
- bl RestoreTextColors
- pop {r0}
- bx r0
- .align 2, 0
-_0813BC58: .4byte gUnknown_203F18A
- thumb_func_end sub_813BC48
-
- thumb_func_start sub_813BC5C
-sub_813BC5C: @ 813BC5C
- push {lr}
- ldr r0, _0813BC70 @ =gDecompressionBuffer
- ldr r1, _0813BC74 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 7
- movs r3, 0
- bl RequestDma3Copy
- pop {r0}
- bx r0
- .align 2, 0
-_0813BC70: .4byte gDecompressionBuffer
-_0813BC74: .4byte 0x0600c000
- thumb_func_end sub_813BC5C
-
- thumb_func_start sub_813BC78
-sub_813BC78: @ 813BC78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r7, r5, 16
- lsrs r0, r2, 24
- adds r2, r0, r4
- cmp r0, r2
- bge _0813BCDE
- mov r12, r2
- ldr r1, _0813BCF0 @ =gUnknown_201F800
- mov r10, r1
-_0813BCAE:
- mov r4, r9
- mov r2, r8
- adds r1, r4, r2
- adds r3, r0, 0x1
- cmp r4, r1
- bge _0813BCD6
- lsls r2, r0, 6
- mov r5, r10
-_0813BCBE:
- lsls r0, r4, 1
- adds r0, r2, r0
- adds r0, r5
- strh r6, [r0]
- adds r0, r6, r7
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- blt _0813BCBE
-_0813BCD6:
- lsls r0, r3, 16
- lsrs r0, 16
- cmp r0, r12
- blt _0813BCAE
-_0813BCDE:
- bl sub_813BC5C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BCF0: .4byte gUnknown_201F800
- thumb_func_end sub_813BC78
-
- thumb_func_start sub_813BCF4
-sub_813BCF4: @ 813BCF4
- push {lr}
- sub sp, 0x8
- ldr r0, _0813BD10 @ =0x000001ff
- movs r1, 0x14
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0x1E
- bl sub_813BC78
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0813BD10: .4byte 0x000001ff
- thumb_func_end sub_813BCF4
-
- thumb_func_start sub_813BD14
-sub_813BD14: @ 813BD14
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0813BD26
- cmp r2, 0x1
- beq _0813BD40
- b _0813BD54
-_0813BD26:
- ldr r0, _0813BD3C @ =0x000001ff
- movs r1, 0x2
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x7
- bl sub_813BC78
- b _0813BD54
- .align 2, 0
-_0813BD3C: .4byte 0x000001ff
-_0813BD40:
- movs r0, 0xF4
- lsls r0, 1
- movs r1, 0x2
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x7
- bl sub_813BC78
-_0813BD54:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813BD14
-
- thumb_func_start sub_813BD5C
-sub_813BD5C: @ 813BD5C
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0813BD6E
- cmp r2, 0x1
- beq _0813BD88
- b _0813BD9C
-_0813BD6E:
- ldr r0, _0813BD84 @ =0x000001ff
- movs r1, 0x2
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0xD
- movs r2, 0
- movs r3, 0x10
- bl sub_813BC78
- b _0813BD9C
- .align 2, 0
-_0813BD84: .4byte 0x000001ff
-_0813BD88:
- movs r0, 0xD0
- lsls r0, 1
- movs r1, 0x2
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0xD
- movs r2, 0
- movs r3, 0x10
- bl sub_813BC78
-_0813BD9C:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813BD5C
-
- thumb_func_start sub_813BDA4
-sub_813BDA4: @ 813BDA4
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0813BDB6
- cmp r2, 0x1
- beq _0813BDD0
- b _0813BDE2
-_0813BDB6:
- ldr r0, _0813BDCC @ =0x000001ff
- movs r1, 0x10
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x1A
- bl sub_813BC78
- b _0813BDE2
- .align 2, 0
-_0813BDCC: .4byte 0x000001ff
-_0813BDD0:
- movs r0, 0x10
- str r0, [sp]
- str r2, [sp, 0x4]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x1A
- bl sub_813BC78
-_0813BDE2:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813BDA4
-
- thumb_func_start sub_813BDE8
-sub_813BDE8: @ 813BDE8
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0813BDFA
- cmp r2, 0x1
- beq _0813BE14
- b _0813BE2A
-_0813BDFA:
- ldr r0, _0813BE10 @ =0x000001ff
- movs r1, 0x10
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x1C
- bl sub_813BC78
- b _0813BE2A
- .align 2, 0
-_0813BE10: .4byte 0x000001ff
-_0813BE14:
- movs r0, 0xFD
- lsls r0, 1
- movs r1, 0x11
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x1C
- bl sub_813BC78
-_0813BE2A:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813BDE8
-
- thumb_func_start sub_813BE30
-sub_813BE30: @ 813BE30
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0813BE42
- cmp r2, 0x1
- beq _0813BE5C
- b _0813BE70
-_0813BE42:
- ldr r0, _0813BE58 @ =0x000001ff
- movs r1, 0x5
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x2
- movs r2, 0xE
- movs r3, 0x1A
- bl sub_813BC78
- b _0813BE70
- .align 2, 0
-_0813BE58: .4byte 0x000001ff
-_0813BE5C:
- movs r0, 0x8F
- lsls r0, 1
- movs r1, 0x5
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x2
- movs r2, 0xE
- movs r3, 0x1A
- bl sub_813BC78
-_0813BE70:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813BE30
-
- thumb_func_start sub_813BE78
-sub_813BE78: @ 813BE78
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0813BE8A
- cmp r6, 0x1
- beq _0813BEB4
- b _0813BED8
-_0813BE8A:
- ldr r5, _0813BEB0 @ =0x000001ff
- movs r4, 0x1
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x1C
- bl sub_813BC78
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x13
- movs r3, 0x1C
- bl sub_813BC78
- b _0813BED8
- .align 2, 0
-_0813BEB0: .4byte 0x000001ff
-_0813BEB4:
- ldr r0, _0813BEE0 @ =0x000001f7
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x1C
- bl sub_813BC78
- movs r0, 0xFC
- lsls r0, 1
- str r6, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x13
- movs r3, 0x1C
- bl sub_813BC78
-_0813BED8:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BEE0: .4byte 0x000001f7
- thumb_func_end sub_813BE78
-
- thumb_func_start sub_813BEE4
-sub_813BEE4: @ 813BEE4
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0813BEF6
- cmp r6, 0x1
- beq _0813BF20
- b _0813BF44
-_0813BEF6:
- ldr r5, _0813BF1C @ =0x000001ff
- movs r4, 0x1
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x1C
- bl sub_813BC78
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x13
- movs r3, 0x1C
- bl sub_813BC78
- b _0813BF44
- .align 2, 0
-_0813BF1C: .4byte 0x000001ff
-_0813BF20:
- ldr r0, _0813BF4C @ =0x000001fb
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x1C
- bl sub_813BC78
- movs r0, 0xFE
- lsls r0, 1
- str r6, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x13
- movs r3, 0x1C
- bl sub_813BC78
-_0813BF44:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BF4C: .4byte 0x000001fb
- thumb_func_end sub_813BEE4
-
- thumb_func_start sub_813BF50
-sub_813BF50: @ 813BF50
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0813BF62
- cmp r6, 0x1
- beq _0813BF8C
- b _0813BFB2
-_0813BF62:
- ldr r5, _0813BF88 @ =0x000001ff
- movs r4, 0x14
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_813BC78
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0x1
- bl sub_813BC78
- b _0813BFB2
- .align 2, 0
-_0813BF88: .4byte 0x000001ff
-_0813BF8C:
- ldr r6, _0813BFBC @ =0x000001f9
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_813BC78
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0x1
- bl sub_813BC78
-_0813BFB2:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BFBC: .4byte 0x000001f9
- thumb_func_end sub_813BF50
-
- thumb_func_start sub_813BFC0
-sub_813BFC0: @ 813BFC0
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0813BFD2
- cmp r2, 0x1
- beq _0813BFE8
- b _0813BFFC
-_0813BFD2:
- ldr r0, _0813BFE4 @ =0x000001ff
- movs r1, 0x1
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r2, 0x5
- movs r3, 0x1C
- bl sub_813BC78
- b _0813BFFC
- .align 2, 0
-_0813BFE4: .4byte 0x000001ff
-_0813BFE8:
- movs r0, 0xFE
- lsls r0, 1
- str r2, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x5
- movs r3, 0x1C
- bl sub_813BC78
-_0813BFFC:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813BFC0
-
- thumb_func_start sub_813C004
-sub_813C004: @ 813C004
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0
- beq _0813C01A
- cmp r6, 0x1
- beq _0813C040
- b _0813C06A
-_0813C01A:
- ldr r5, _0813C03C @ =0x000001ff
- movs r4, 0x1
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0x3
- movs r3, 0x1
- bl sub_813BC78
- str r4, [sp]
- str r6, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0x12
- b _0813C050
- .align 2, 0
-_0813C03C: .4byte 0x000001ff
-_0813C040:
- cmp r2, 0
- bne _0813C058
- movs r0, 0xFF
- lsls r0, 1
- str r6, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x1C
- movs r2, 0x3
-_0813C050:
- movs r3, 0x1
- bl sub_813BC78
- b _0813C06A
-_0813C058:
- ldr r0, _0813C074 @ =0x000001fd
- str r6, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x1C
- movs r2, 0x12
- movs r3, 0x1
- bl sub_813BC78
-_0813C06A:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C074: .4byte 0x000001fd
- thumb_func_end sub_813C004
-
- thumb_func_start sub_813C078
-sub_813C078: @ 813C078
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r1, [sp, 0x28]
- mov r9, r2
- ldr r1, [sp, 0x58]
- ldr r2, [sp, 0x5C]
- ldr r4, [sp, 0x60]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x2C]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x30]
- str r7, [sp, 0x34]
-_0813C0AC:
- mov r0, r9
- ldrb r1, [r0]
- movs r2, 0x1
- add r9, r2
- adds r0, r1, 0
- subs r0, 0xF8
- cmp r0, 0x7
- bls _0813C0BE
- b _0813C358
-_0813C0BE:
- lsls r0, 2
- ldr r1, _0813C0C8 @ =_0813C0CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813C0C8: .4byte _0813C0CC
- .align 2, 0
-_0813C0CC:
- .4byte _0813C2D4
- .4byte _0813C348
- .4byte _0813C1E4
- .4byte _0813C1E4
- .4byte _0813C200
- .4byte _0813C0EC
- .4byte _0813C1E4
- .4byte _0813C39C
-_0813C0EC:
- mov r0, r9
- ldrb r1, [r0]
- movs r2, 0x1
- add r9, r2
- cmp r1, 0x1
- bne _0813C154
- movs r4, 0
- ldr r0, _0813C14C @ =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r1, [r1]
- cmp r1, 0xFF
- beq _0813C0AC
- ldr r5, _0813C150 @ =gGlyphInfo + 0x80
-_0813C106:
- ldr r0, [r0]
- adds r0, r4
- ldrb r1, [r0]
- ldr r0, [sp, 0x28]
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r2, r10
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x2C]
- str r0, [sp, 0xC]
- ldr r2, [sp, 0x30]
- str r2, [sp, 0x10]
- ldr r0, [sp, 0x24]
- add r2, sp, 0x14
- add r3, sp, 0x1C
- bl sub_813C3AC
- ldr r0, [sp, 0x24]
- ldrb r0, [r5]
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bhi _0813C0AC
- ldr r0, _0813C14C @ =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r1, r4
- ldrb r1, [r1]
- cmp r1, 0xFF
- bne _0813C106
- b _0813C0AC
- .align 2, 0
-_0813C14C: .4byte gSaveBlock2Ptr
-_0813C150: .4byte gGlyphInfo + 0x80
-_0813C154:
- cmp r1, 0x2
- bne _0813C0AC
- movs r4, 0
- ldr r5, _0813C160 @ =gGlyphInfo + 0x80
- b _0813C1BC
- .align 2, 0
-_0813C160: .4byte gGlyphInfo + 0x80
-_0813C164:
- ldrb r1, [r1]
- ldr r2, [sp, 0x28]
- str r2, [sp]
- str r7, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- ldr r2, [sp, 0x2C]
- str r2, [sp, 0xC]
- ldr r0, [sp, 0x30]
- str r0, [sp, 0x10]
- ldr r0, [sp, 0x24]
- add r2, sp, 0x14
- add r3, sp, 0x1C
- bl sub_813C3AC
- b _0813C1AC
-_0813C184:
- ldr r0, _0813C1D8 @ =gUnknown_841CB41
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0813C0AC
- adds r1, r0, 0
- ldr r2, [sp, 0x28]
- str r2, [sp]
- str r7, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- ldr r2, [sp, 0x2C]
- str r2, [sp, 0xC]
- ldr r0, [sp, 0x30]
- str r0, [sp, 0x10]
- ldr r0, [sp, 0x24]
- add r2, sp, 0x14
- add r3, sp, 0x1C
- bl sub_813C3AC
-_0813C1AC:
- ldr r1, [sp, 0x24]
- ldrb r0, [r5]
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0813C1BC:
- ldr r0, _0813C1DC @ =0x00000834
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813C184
- ldr r0, _0813C1E0 @ =gUnknown_841CB3C
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0813C164
- b _0813C0AC
- .align 2, 0
-_0813C1D8: .4byte gUnknown_841CB41
-_0813C1DC: .4byte 0x00000834
-_0813C1E0: .4byte gUnknown_841CB3C
-_0813C1E4:
- ldr r7, [sp, 0x34]
- ldr r1, _0813C1FC @ =gGlyphInfo
- adds r1, 0x81
- mov r0, r10
- adds r0, 0x1
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- b _0813C0AC
- .align 2, 0
-_0813C1FC: .4byte gGlyphInfo
-_0813C200:
- mov r2, r9
- ldrb r1, [r2]
- movs r0, 0x1
- add r9, r0
- subs r0, r1, 0x1
- cmp r0, 0x15
- bls _0813C210
- b _0813C0AC
-_0813C210:
- lsls r0, 2
- ldr r1, _0813C21C @ =_0813C220
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813C21C: .4byte _0813C220
- .align 2, 0
-_0813C220:
- .4byte _0813C2C8
- .4byte _0813C2C8
- .4byte _0813C2C8
- .4byte _0813C278
- .4byte _0813C2C8
- .4byte _0813C2C8
- .4byte _0813C0AC
- .4byte _0813C2C8
- .4byte _0813C0AC
- .4byte _0813C0AC
- .4byte _0813C27C
- .4byte _0813C2C8
- .4byte _0813C2C8
- .4byte _0813C2C8
- .4byte _0813C0AC
- .4byte _0813C27C
- .4byte _0813C2CE
- .4byte _0813C2CE
- .4byte _0813C282
- .4byte _0813C2CE
- .4byte _0813C0AC
- .4byte _0813C0AC
-_0813C278:
- movs r1, 0x1
- add r9, r1
-_0813C27C:
- movs r2, 0x1
- add r9, r2
- b _0813C2C8
-_0813C282:
- mov r2, r9
- ldrb r0, [r2]
- ldr r1, [sp, 0x34]
- adds r0, r1
- subs r6, r0, r7
- cmp r6, 0
- ble _0813C2C8
- ldr r2, [sp, 0x28]
- str r2, [sp, 0x1C]
- ldr r1, [sp, 0x2C]
- lsls r0, r1, 3
- add r4, sp, 0x1C
- movs r5, 0
- strh r0, [r4, 0x4]
- ldr r2, [sp, 0x30]
- lsls r0, r2, 3
- strh r0, [r4, 0x6]
- ldr r0, [sp, 0x24]
- movs r1, 0x1
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r6, 16
- lsrs r3, 16
- str r0, [sp]
- str r5, [sp, 0x4]
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r10
- bl FillBitmapRect4Bit
- adds r0, r7, r6
- lsls r0, 24
- lsrs r7, r0, 24
-_0813C2C8:
- movs r0, 0x1
- add r9, r0
- b _0813C0AC
-_0813C2CE:
- movs r1, 0x1
- add r9, r1
- b _0813C0AC
-_0813C2D4:
- mov r2, r9
- ldrb r1, [r2]
- movs r0, 0x1
- add r9, r0
- adds r6, r1, 0
- adds r0, r6, 0
- bl GetKeypadIconTileOffset
- lsls r0, 24
- lsrs r0, 19
- ldr r1, _0813C344 @ =gKeypadIconTiles
- adds r0, r1
- str r0, [sp, 0x14]
- add r1, sp, 0x14
- movs r2, 0
- mov r8, r2
- movs r0, 0x80
- strh r0, [r1, 0x4]
- strh r0, [r1, 0x6]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x1C]
- ldr r1, [sp, 0x2C]
- lsls r0, r1, 3
- add r5, sp, 0x1C
- strh r0, [r5, 0x4]
- ldr r2, [sp, 0x30]
- lsls r0, r2, 3
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl GetKeypadIconWidth
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl GetKeypadIconHeight
- lsls r0, 24
- lsrs r0, 24
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r0, [sp, 0xC]
- mov r2, r8
- str r2, [sp, 0x10]
- add r0, sp, 0x14
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0
- bl BlitBitmapRect4Bit
- adds r0, r6, 0
- bl GetKeypadIconWidth
- b _0813C38E
- .align 2, 0
-_0813C344: .4byte gKeypadIconTiles
-_0813C348:
- mov r0, r9
- ldrb r1, [r0]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- orrs r1, r0
- movs r0, 0x1
- add r9, r0
-_0813C358:
- cmp r1, 0
- bne _0813C36A
- ldr r1, [sp, 0x24]
- cmp r1, 0
- bne _0813C366
- adds r0, r7, 0x5
- b _0813C390
-_0813C366:
- adds r0, r7, 0x4
- b _0813C390
-_0813C36A:
- add r3, sp, 0x1C
- ldr r2, [sp, 0x28]
- str r2, [sp]
- str r7, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- ldr r2, [sp, 0x2C]
- str r2, [sp, 0xC]
- ldr r0, [sp, 0x30]
- str r0, [sp, 0x10]
- ldr r0, [sp, 0x24]
- add r2, sp, 0x14
- bl sub_813C3AC
- ldr r1, [sp, 0x24]
- ldr r0, _0813C398 @ =gGlyphInfo
- adds r0, 0x80
- ldrb r0, [r0]
-_0813C38E:
- adds r0, r7, r0
-_0813C390:
- lsls r0, 24
- lsrs r7, r0, 24
- b _0813C0AC
- .align 2, 0
-_0813C398: .4byte gGlyphInfo
-_0813C39C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813C078
-
- thumb_func_start sub_813C3AC
-sub_813C3AC: @ 813C3AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x38]
- ldr r3, [sp, 0x3C]
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r0, r1, 16
- adds r1, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- cmp r6, 0
- bne _0813C3EE
- movs r1, 0
- bl DecompressGlyphFont0
- b _0813C402
-_0813C3EE:
- cmp r6, 0x5
- bne _0813C3FA
- movs r1, 0
- bl DecompressGlyphFont5
- b _0813C402
-_0813C3FA:
- adds r0, r1, 0
- movs r1, 0
- bl DecompressGlyphFont2
-_0813C402:
- ldr r1, _0813C450 @ =gGlyphInfo
- str r1, [r7]
- movs r2, 0
- movs r0, 0x10
- strh r0, [r7, 0x4]
- strh r0, [r7, 0x6]
- ldr r0, [sp, 0x34]
- mov r3, r8
- str r0, [r3]
- lsls r0, r4, 3
- strh r0, [r3, 0x4]
- lsls r0, r5, 3
- strh r0, [r3, 0x6]
- mov r0, r10
- str r0, [sp]
- mov r3, r9
- str r3, [sp, 0x4]
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- str r0, [sp, 0x8]
- adds r1, 0x81
- ldrb r0, [r1]
- str r0, [sp, 0xC]
- str r2, [sp, 0x10]
- adds r0, r7, 0
- mov r1, r8
- movs r3, 0
- bl BlitBitmapRect4Bit
- 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
-_0813C450: .4byte gGlyphInfo
- thumb_func_end sub_813C3AC
-
- thumb_func_start sub_813C454
-sub_813C454: @ 813C454
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r0, 0x1
- movs r1, 0xF
- movs r2, 0x2
- bl GenerateFontHalfRowLookupTable
- ldr r1, _0813C484 @ =gUnknown_201FD00
- movs r2, 0x2
- str r2, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0x5
- adds r2, r4, 0
- movs r3, 0x6
- bl sub_813C078
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C484: .4byte gUnknown_201FD00
- thumb_func_end sub_813C454
-
- thumb_func_start sub_813C488
-sub_813C488: @ 813C488
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0
- bl GetStringWidth
- movs r4, 0x7C
- subs r4, r0
- movs r0, 0x1
- movs r1, 0xF
- movs r2, 0x2
- bl GenerateFontHalfRowLookupTable
- ldr r1, _0813C4C8 @ =gUnknown_201F400
- lsls r4, 24
- lsrs r4, 24
- movs r2, 0x2
- str r2, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_813C078
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C4C8: .4byte gUnknown_201F400
- thumb_func_end sub_813C488
-
- thumb_func_start sub_813C4CC
-sub_813C4CC: @ 813C4CC
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0xF
- movs r2, 0x2
- bl GenerateFontHalfRowLookupTable
- ldr r1, _0813C508 @ =gDecompressionBuffer
- str r4, [sp]
- movs r0, 0x1A
- str r0, [sp, 0x4]
- movs r0, 0x10
- str r0, [sp, 0x8]
- movs r0, 0x2
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_813C078
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C508: .4byte gDecompressionBuffer
- thumb_func_end sub_813C4CC
-
- thumb_func_start sub_813C50C
-sub_813C50C: @ 813C50C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- mov r8, r0
- mov r9, r1
- add r1, sp, 0xC
- ldr r2, _0813C578 @ =0x0000eeee
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0813C57C @ =gDecompressionBuffer
- ldr r2, _0813C580 @ =0x01001a00
- adds r0, r1, 0
- adds r1, r4, 0
- bl CpuSet
- movs r0, 0x1
- movs r1, 0xE
- movs r2, 0x2
- bl GenerateFontHalfRowLookupTable
- movs r6, 0
- str r6, [sp]
- movs r5, 0x1A
- str r5, [sp, 0x4]
- movs r0, 0x10
- str r0, [sp, 0x8]
- movs r0, 0x2
- adds r1, r4, 0
- mov r2, r8
- movs r3, 0
- bl sub_813C078
- movs r0, 0x9C
- lsls r0, 4
- adds r4, r0
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0xD
- str r0, [sp, 0x8]
- movs r0, 0x2
- adds r1, r4, 0
- mov r2, r9
- movs r3, 0
- bl sub_813C078
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C578: .4byte 0x0000eeee
-_0813C57C: .4byte gDecompressionBuffer
-_0813C580: .4byte 0x01001a00
- thumb_func_end sub_813C50C
-
- thumb_func_start sub_813C584
-sub_813C584: @ 813C584
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- add r1, sp, 0xC
- ldr r2, _0813C5C8 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0813C5CC @ =gUnknown_201E3C0
- ldr r2, _0813C5D0 @ =0x01000820
- adds r0, r1, 0
- adds r1, r4, 0
- bl CpuSet
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x3
- bl GenerateFontHalfRowLookupTable
- movs r0, 0x6
- str r0, [sp]
- movs r0, 0x1A
- str r0, [sp, 0x4]
- movs r0, 0x5
- str r0, [sp, 0x8]
- movs r0, 0x2
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl sub_813C078
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C5C8: .4byte 0x00001111
-_0813C5CC: .4byte gUnknown_201E3C0
-_0813C5D0: .4byte 0x01000820
- thumb_func_end sub_813C584
-
- thumb_func_start sub_813C5D4
-sub_813C5D4: @ 813C5D4
- push {lr}
- sub sp, 0x4
- mov r1, sp
- ldr r2, _0813C5F0 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0813C5F4 @ =gUnknown_201FD00
- ldr r2, _0813C5F8 @ =0x010000e0
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813C5F0: .4byte 0x0000ffff
-_0813C5F4: .4byte gUnknown_201FD00
-_0813C5F8: .4byte 0x010000e0
- thumb_func_end sub_813C5D4
-
- thumb_func_start sub_813C5FC
-sub_813C5FC: @ 813C5FC
- push {lr}
- sub sp, 0x4
- mov r1, sp
- ldr r2, _0813C618 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0813C61C @ =gUnknown_201F400
- ldr r2, _0813C620 @ =0x01000200
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813C618: .4byte 0x0000ffff
-_0813C61C: .4byte gUnknown_201F400
-_0813C620: .4byte 0x01000200
- thumb_func_end sub_813C5FC
-
- thumb_func_start sub_813C624
-sub_813C624: @ 813C624
- push {lr}
- sub sp, 0x4
- mov r1, sp
- ldr r2, _0813C640 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0813C644 @ =gDecompressionBuffer
- ldr r2, _0813C648 @ =0x01001a00
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813C640: .4byte 0x0000ffff
-_0813C644: .4byte gDecompressionBuffer
-_0813C648: .4byte 0x01001a00
- thumb_func_end sub_813C624
-
- thumb_func_start sub_813C64C
-sub_813C64C: @ 813C64C
- push {r4-r7,lr}
- ldr r4, _0813C680 @ =gUnknown_203F190
- adds r3, r4, 0
- ldm r0!, {r5-r7}
- stm r3!, {r5-r7}
- movs r0, 0
- strb r1, [r4, 0xC]
- strb r2, [r4, 0xD]
- strb r0, [r4, 0xE]
- ldrh r0, [r4, 0x4]
- ldrh r1, [r4, 0x6]
- cmp r0, r1
- bcs _0813C668
- strh r0, [r4, 0x6]
-_0813C668:
- movs r0, 0
- bl sub_813BDA4
- bl sub_813C624
- bl sub_813C7CC
- bl sub_813C828
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C680: .4byte gUnknown_203F190
- thumb_func_end sub_813C64C
-
- thumb_func_start sub_813C684
-sub_813C684: @ 813C684
- ldr r1, _0813C68C @ =gUnknown_203F176
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0813C68C: .4byte gUnknown_203F176
- thumb_func_end sub_813C684
-
- thumb_func_start sub_813C690
-sub_813C690: @ 813C690
- push {lr}
- ldr r1, _0813C6A0 @ =gUnknown_203F176
- ldrb r0, [r1]
- cmp r0, 0
- beq _0813C6A4
- subs r0, 0x1
- strb r0, [r1]
- b _0813C752
- .align 2, 0
-_0813C6A0: .4byte gUnknown_203F176
-_0813C6A4:
- ldr r2, _0813C6C8 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813C6D0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0813C6CC @ =gUnknown_203F190
- ldrb r0, [r1, 0xC]
- ldrb r2, [r1, 0xD]
- adds r0, r2
- ldr r1, [r1]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _0813C756
- .align 2, 0
-_0813C6C8: .4byte gMain
-_0813C6CC: .4byte gUnknown_203F190
-_0813C6D0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813C6E4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- negs r0, r0
- b _0813C756
-_0813C6E4:
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0813C6F4
- movs r0, 0x6
- negs r0, r0
- b _0813C756
-_0813C6F4:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813C702
- movs r0, 0x1
- b _0813C718
-_0813C702:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813C70E
- movs r0, 0x1
- b _0813C73A
-_0813C70E:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0813C730
- movs r0, 0x7
-_0813C718:
- movs r1, 0
- bl sub_813C944
- lsls r0, 24
- cmp r0, 0
- bne _0813C72A
- movs r0, 0x5
- bl PlaySE
-_0813C72A:
- movs r0, 0x4
- negs r0, r0
- b _0813C756
-_0813C730:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0813C752
- movs r0, 0x7
-_0813C73A:
- movs r1, 0x1
- bl sub_813C944
- lsls r0, 24
- cmp r0, 0
- bne _0813C74C
- movs r0, 0x5
- bl PlaySE
-_0813C74C:
- movs r0, 0x5
- negs r0, r0
- b _0813C756
-_0813C752:
- movs r0, 0x1
- negs r0, r0
-_0813C756:
- pop {r1}
- bx r1
- thumb_func_end sub_813C690
-
- thumb_func_start sub_813C75C
-sub_813C75C: @ 813C75C
- push {r4-r6,lr}
- ldr r5, _0813C784 @ =gUnknown_203F190
- ldrh r1, [r5, 0x4]
- subs r0, r1, 0x7
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r1, 0x7
- bls _0813C7C4
- ldrb r4, [r5, 0xC]
- ldrb r0, [r5, 0xD]
- adds r4, r0
- movs r0, 0
- movs r1, 0
- bl sub_813C004
- cmp r4, 0
- bne _0813C788
- movs r0, 0x1
- b _0813C7A2
- .align 2, 0
-_0813C784: .4byte gUnknown_203F190
-_0813C788:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _0813C798
- ldrb r0, [r5, 0xD]
- cmp r0, 0
- beq _0813C798
- movs r0, 0x1
- b _0813C7A2
-_0813C798:
- ldr r0, _0813C7AC @ =gUnknown_203F190
- ldrb r0, [r0, 0xC]
- cmp r0, r6
- bne _0813C7B0
- movs r0, 0
-_0813C7A2:
- movs r1, 0x1
- bl sub_813C004
- b _0813C7C4
- .align 2, 0
-_0813C7AC: .4byte gUnknown_203F190
-_0813C7B0:
- cmp r0, 0
- beq _0813C7C4
- movs r0, 0
- movs r1, 0x1
- bl sub_813C004
- movs r0, 0x1
- movs r1, 0x1
- bl sub_813C004
-_0813C7C4:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813C75C
-
- thumb_func_start sub_813C7CC
-sub_813C7CC: @ 813C7CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r3, _0813C824 @ =gUnknown_203F190
- ldrb r5, [r3, 0xC]
- movs r6, 0
- ldrh r0, [r3, 0x6]
- cmp r6, r0
- bge _0813C81A
- adds r4, r3, 0
- movs r7, 0
-_0813C7F2:
- ldrb r1, [r4, 0x8]
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r4, 0x9]
- adds r2, r7
- lsls r2, 24
- lsrs r2, 24
- ldr r3, [r4]
- lsls r0, r5, 3
- adds r0, r3
- ldr r0, [r0]
- bl sub_813C4CC
- adds r5, 0x1
- add r7, r8
- adds r6, 0x1
- ldrh r0, [r4, 0x6]
- cmp r6, r0
- blt _0813C7F2
-_0813C81A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C824: .4byte gUnknown_203F190
- thumb_func_end sub_813C7CC
-
- thumb_func_start sub_813C828
-sub_813C828: @ 813C828
- push {r4,lr}
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0813C858 @ =gUnknown_203F190
- ldrb r1, [r3, 0x8]
- ldrb r2, [r3, 0xD]
- adds r4, r2, 0
- muls r4, r0
- adds r2, r4, 0
- ldrb r3, [r3, 0x9]
- adds r2, r3
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0813C85C @ =gFameCheckerText_ListMenuCursor
- bl sub_813C4CC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C858: .4byte gUnknown_203F190
-_0813C85C: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end sub_813C828
-
- thumb_func_start sub_813C860
-sub_813C860: @ 813C860
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0813C894 @ =gUnknown_203F190
- ldrb r1, [r3, 0x8]
- adds r2, r4, 0
- muls r2, r0
- ldrb r3, [r3, 0x9]
- adds r2, r3
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0813C898 @ =gUnknown_841CB4E
- bl sub_813C4CC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C894: .4byte gUnknown_203F190
-_0813C898: .4byte gUnknown_841CB4E
- thumb_func_end sub_813C860
-
- thumb_func_start sub_813C89C
-sub_813C89C: @ 813C89C
- push {r4,r5,lr}
- lsls r0, 24
- cmp r0, 0
- bne _0813C8EC
- ldr r0, _0813C8B4 @ =gUnknown_203F190
- ldrh r1, [r0, 0x6]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0813C8B8
- movs r4, 0
- b _0813C8CA
- .align 2, 0
-_0813C8B4: .4byte gUnknown_203F190
-_0813C8B8:
- ldrh r0, [r5, 0x6]
- lsrs r2, r0, 1
- movs r1, 0x1
- ands r1, r0
- adds r2, r1
- subs r0, r2
- subs r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_0813C8CA:
- ldrb r1, [r5, 0xC]
- cmp r1, 0
- bne _0813C8DA
- ldrb r0, [r5, 0xD]
- cmp r0, 0
- beq _0813C926
- subs r0, 0x1
- b _0813C93A
-_0813C8DA:
- ldrb r0, [r5, 0xD]
- cmp r0, r4
- bls _0813C8E4
- subs r0, 0x1
- b _0813C93A
-_0813C8E4:
- subs r0, r1, 0x1
- strb r0, [r5, 0xC]
- movs r0, 0x2
- b _0813C93E
-_0813C8EC:
- ldr r0, _0813C8FC @ =gUnknown_203F190
- ldrh r1, [r0, 0x6]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0813C900
- movs r4, 0
- b _0813C90A
- .align 2, 0
-_0813C8FC: .4byte gUnknown_203F190
-_0813C900:
- ldrh r0, [r5, 0x6]
- lsrs r2, r0, 1
- movs r1, 0x1
- ands r0, r1
- adds r4, r2, r0
-_0813C90A:
- adds r1, r5, 0
- ldrb r2, [r1, 0xC]
- ldrh r0, [r1, 0x4]
- ldrh r3, [r1, 0x6]
- subs r0, r3
- cmp r2, r0
- bne _0813C92A
- ldrb r2, [r1, 0xD]
- subs r0, r3, 0x1
- cmp r2, r0
- bge _0813C926
- adds r0, r2, 0x1
- strb r0, [r1, 0xD]
- b _0813C93C
-_0813C926:
- movs r0, 0
- b _0813C93E
-_0813C92A:
- ldrb r0, [r1, 0xD]
- cmp r0, r4
- bcc _0813C938
- adds r0, r2, 0x1
- strb r0, [r1, 0xC]
- movs r0, 0x2
- b _0813C93E
-_0813C938:
- adds r0, 0x1
-_0813C93A:
- strb r0, [r5, 0xD]
-_0813C93C:
- movs r0, 0x1
-_0813C93E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_813C89C
-
- thumb_func_start sub_813C944
-sub_813C944: @ 813C944
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _0813C97C @ =gUnknown_203F190
- ldrb r7, [r0, 0xD]
- movs r5, 0
- cmp r5, r2
- bge _0813C96C
- adds r4, r2, 0
-_0813C95A:
- adds r0, r6, 0
- bl sub_813C89C
- orrs r5, r0
- lsls r0, r5, 24
- lsrs r5, r0, 24
- subs r4, 0x1
- cmp r4, 0
- bne _0813C95A
-_0813C96C:
- cmp r5, 0x1
- beq _0813C980
- cmp r5, 0x1
- ble _0813C978
- cmp r5, 0x3
- ble _0813C990
-_0813C978:
- movs r0, 0x1
- b _0813C9D6
- .align 2, 0
-_0813C97C: .4byte gUnknown_203F190
-_0813C980:
- adds r0, r7, 0
- bl sub_813C860
- bl sub_813C828
- bl sub_813BC5C
- b _0813C9D4
-_0813C990:
- bl sub_812BF88
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813C9B8
- movs r0, 0x2
- bl sub_813C684
- bl sub_813C624
- bl sub_813C7CC
- bl sub_813C828
- bl sub_812BDEC
- bl sub_813C75C
- b _0813C9D0
-_0813C9B8:
- movs r0, 0
- bl sub_813BDA4
- bl sub_813C624
- bl sub_813C7CC
- bl sub_813C828
- movs r0, 0x1
- bl sub_813BDA4
-_0813C9D0:
- bl sub_813BC5C
-_0813C9D4:
- movs r0, 0
-_0813C9D6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_813C944
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
deleted file mode 100644
index f9fb50cf7..000000000
--- a/asm/help_system_812B1E0.s
+++ /dev/null
@@ -1,1761 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_812B1E0
-sub_812B1E0: @ 812B1E0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812B1EC @ =gUnknown_203B0EC
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0812B1EC: .4byte gUnknown_203B0EC
- thumb_func_end sub_812B1E0
-
- thumb_func_start sub_812B1F0
-sub_812B1F0: @ 812B1F0
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0812B21C @ =gUnknown_203B0EC
- ldrh r2, [r0]
- cmp r2, 0x1A
- bgt _0812B216
- cmp r2, 0x17
- blt _0812B216
- cmp r1, 0x9
- beq _0812B218
- cmp r1, 0x5
- beq _0812B218
- cmp r1, 0x6
- beq _0812B218
- cmp r1, 0x7
- beq _0812B218
- cmp r1, 0x8
- beq _0812B218
-_0812B216:
- strh r1, [r0]
-_0812B218:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B21C: .4byte gUnknown_203B0EC
- thumb_func_end sub_812B1F0
-
- thumb_func_start sub_812B220
-sub_812B220: @ 812B220
- ldr r0, _0812B22C @ =gUnknown_203B0EC
- ldr r1, _0812B230 @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0812B22C: .4byte gUnknown_203B0EC
-_0812B230: .4byte gSpecialVar_0x8004
- thumb_func_end sub_812B220
-
- thumb_func_start sub_812B234
-sub_812B234: @ 812B234
- ldr r0, _0812B240 @ =gUnknown_3005EA0
- ldr r1, _0812B244 @ =gUnknown_203B0EC
- ldrh r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0812B240: .4byte gUnknown_3005EA0
-_0812B244: .4byte gUnknown_203B0EC
- thumb_func_end sub_812B234
-
- thumb_func_start sub_812B248
-sub_812B248: @ 812B248
- ldr r0, _0812B254 @ =gUnknown_203B0EC
- ldr r1, _0812B258 @ =gUnknown_3005EA0
- ldrh r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0812B254: .4byte gUnknown_203B0EC
-_0812B258: .4byte gUnknown_3005EA0
- thumb_func_end sub_812B248
-
- thumb_func_start sub_812B25C
-sub_812B25C: @ 812B25C
- push {lr}
- ldr r0, _0812B268 @ =gUnknown_845C594
- bl sub_812B27C
- pop {r1}
- bx r1
- .align 2, 0
-_0812B268: .4byte gUnknown_845C594
- thumb_func_end sub_812B25C
-
- thumb_func_start sub_812B26C
-sub_812B26C: @ 812B26C
- push {lr}
- ldr r0, _0812B278 @ =gUnknown_845C5BC
- bl sub_812B27C
- pop {r1}
- bx r1
- .align 2, 0
-_0812B278: .4byte gUnknown_845C5BC
- thumb_func_end sub_812B26C
-
- thumb_func_start sub_812B27C
-sub_812B27C: @ 812B27C
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _0812B2AC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r0, [r2]
- ldr r1, _0812B2B0 @ =0x0000ffff
- cmp r0, r1
- beq _0812B2BC
- adds r4, r1, 0
- adds r1, r2, 0
-_0812B2A2:
- ldrh r0, [r1]
- cmp r0, r3
- bne _0812B2B4
- movs r0, 0x1
- b _0812B2BE
- .align 2, 0
-_0812B2AC: .4byte gSaveBlock1Ptr
-_0812B2B0: .4byte 0x0000ffff
-_0812B2B4:
- adds r1, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _0812B2A2
-_0812B2BC:
- movs r0, 0
-_0812B2BE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812B27C
-
- thumb_func_start sub_812B2C4
-sub_812B2C4: @ 812B2C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- ldr r0, _0812B2E8 @ =gUnknown_845C5CE
- mov r9, r0
- movs r0, 0x2
- add r0, r9
- mov r8, r0
-_0812B2D8:
- movs r6, 0
- mov r4, r9
- lsls r1, r5, 1
- adds r0, r1, r5
- add r0, r8
- adds r7, r1, 0
- b _0812B33A
- .align 2, 0
-_0812B2E8: .4byte gUnknown_845C5CE
-_0812B2EC:
- adds r3, r1, r5
- adds r0, r3, r4
- ldrb r1, [r0]
- ldr r0, _0812B324 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _0812B32C
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r0, r6
- movs r1, 0x5
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _0812B32C
- cmp r5, 0xF
- bne _0812B320
- ldr r0, _0812B328 @ =0x00000849
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812B32C
-_0812B320:
- movs r0, 0x1
- b _0812B34C
- .align 2, 0
-_0812B324: .4byte gSaveBlock1Ptr
-_0812B328: .4byte 0x00000849
-_0812B32C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0812B358 @ =gUnknown_845C5CE
- adds r1, r7, 0
- adds r0, r1, r5
- add r0, r8
-_0812B33A:
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0812B2EC
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _0812B2D8
- movs r0, 0
-_0812B34C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0812B358: .4byte gUnknown_845C5CE
- thumb_func_end sub_812B2C4
-
- thumb_func_start sub_812B35C
-sub_812B35C: @ 812B35C
- push {lr}
- bl sub_812B4B8
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0812B376
- movs r0, 0x16
- bl sub_812B1F0
- b _0812B406
-_0812B376:
- bl sub_812B2C4
- lsls r0, 24
- cmp r0, 0
- beq _0812B388
- movs r0, 0x15
- bl sub_812B1F0
- b _0812B406
-_0812B388:
- ldr r0, _0812B3B0 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_8_or_9
- lsls r0, 24
- cmp r0, 0
- beq _0812B400
- ldr r0, _0812B3B4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- cmp r1, 0x4
- beq _0812B3A8
- movs r0, 0x82
- lsls r0, 1
- cmp r1, r0
- bne _0812B3B8
-_0812B3A8:
- movs r0, 0xE
- bl sub_812B1F0
- b _0812B406
- .align 2, 0
-_0812B3B0: .4byte gMapHeader
-_0812B3B4: .4byte gSaveBlock1Ptr
-_0812B3B8:
- movs r0, 0xC1
- lsls r0, 2
- cmp r1, r0
- bne _0812B3C8
- movs r0, 0xF
- bl sub_812B1F0
- b _0812B406
-_0812B3C8:
- bl IsCurMapPokeCenter
- cmp r0, 0x1
- bne _0812B3D8
- movs r0, 0x10
- bl sub_812B1F0
- b _0812B406
-_0812B3D8:
- bl sub_812B25C
- cmp r0, 0x1
- bne _0812B3E8
- movs r0, 0x11
- bl sub_812B1F0
- b _0812B406
-_0812B3E8:
- bl sub_812B26C
- cmp r0, 0x1
- bne _0812B3F8
- movs r0, 0x12
- bl sub_812B1F0
- b _0812B406
-_0812B3F8:
- movs r0, 0x13
- bl sub_812B1F0
- b _0812B406
-_0812B400:
- movs r0, 0x14
- bl sub_812B1F0
-_0812B406:
- pop {r0}
- bx r0
- thumb_func_end sub_812B35C
-
- thumb_func_start sub_812B40C
-sub_812B40C: @ 812B40C
- push {lr}
- ldr r0, _0812B434 @ =gUnknown_203B0EE
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0812B42E
- ldr r0, _0812B438 @ =gSaveFileStatus
- ldrh r0, [r0]
- cmp r0, 0
- beq _0812B440
- cmp r0, 0x2
- beq _0812B440
- ldr r0, _0812B43C @ =0x0000083c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0812B440
-_0812B42E:
- movs r0, 0
- b _0812B44E
- .align 2, 0
-_0812B434: .4byte gUnknown_203B0EE
-_0812B438: .4byte gSaveFileStatus
-_0812B43C: .4byte 0x0000083c
-_0812B440:
- ldr r0, _0812B454 @ =0x0000083c
- bl FlagSet
- ldr r1, _0812B458 @ =gUnknown_203B0EE
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
-_0812B44E:
- pop {r1}
- bx r1
- .align 2, 0
-_0812B454: .4byte 0x0000083c
-_0812B458: .4byte gUnknown_203B0EE
- thumb_func_end sub_812B40C
-
- thumb_func_start sub_812B45C
-sub_812B45C: @ 812B45C
- push {lr}
- ldr r0, _0812B46C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0812B470
- movs r0, 0x1
- b _0812B472
- .align 2, 0
-_0812B46C: .4byte gReceivedRemoteLinkPlayers
-_0812B470:
- movs r0, 0
-_0812B472:
- pop {r1}
- bx r1
- thumb_func_end sub_812B45C
-
- thumb_func_start sub_812B478
-sub_812B478: @ 812B478
- ldr r1, _0812B480 @ =gUnknown_3005ECC
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812B480: .4byte gUnknown_3005ECC
- thumb_func_end sub_812B478
-
- thumb_func_start sub_812B484
-sub_812B484: @ 812B484
- push {lr}
- ldr r0, _0812B4A4 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0812B49E
- ldr r1, _0812B4A8 @ =gUnknown_3005ECC
- movs r0, 0x1
- strb r0, [r1]
- bl sub_812B4B8
-_0812B49E:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B4A4: .4byte gUnknown_203ADFA
-_0812B4A8: .4byte gUnknown_3005ECC
- thumb_func_end sub_812B484
-
- thumb_func_start sub_812B4AC
-sub_812B4AC: @ 812B4AC
- ldr r1, _0812B4B4 @ =gUnknown_203F175
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812B4B4: .4byte gUnknown_203F175
- thumb_func_end sub_812B4AC
-
- thumb_func_start sub_812B4B8
-sub_812B4B8: @ 812B4B8
- ldr r1, _0812B4C0 @ =gUnknown_203F175
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812B4C0: .4byte gUnknown_203F175
- thumb_func_end sub_812B4B8
-
- thumb_func_start sub_812B4C4
-sub_812B4C4: @ 812B4C4
- str r1, [r0]
- movs r2, 0x1
- movs r1, 0x1
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strb r2, [r0, 0x8]
- movs r1, 0x4
- strb r1, [r0, 0x9]
- bx lr
- thumb_func_end sub_812B4C4
-
- thumb_func_start sub_812B4D8
-sub_812B4D8: @ 812B4D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_812B4C4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812B520
- ldr r0, _0812B518 @ =gUnknown_841DFAC
- bl sub_812BF74
- ldr r0, _0812B51C @ =gUnknown_3005E9C
- ldrb r2, [r0, 0x2]
- adds r0, r4, 0
- movs r1, 0
- bl sub_813C64C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812BF9C
- movs r0, 0x1
- bl sub_813BDA4
- movs r0, 0x1
- bl sub_813BD5C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B518: .4byte gUnknown_841DFAC
-_0812B51C: .4byte gUnknown_3005E9C
- thumb_func_end sub_812B4D8
-
- thumb_func_start sub_812B520
-sub_812B520: @ 812B520
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- movs r3, 0
- ldr r0, _0812B598 @ =gUnknown_845C4B0
- mov r9, r0
- ldr r1, _0812B59C @ =gUnknown_203B0EC
- mov r8, r1
- ldr r0, _0812B5A0 @ =gUnknown_845C4B6
- mov r12, r0
- ldr r7, _0812B5A4 @ =gUnknown_845B080
-_0812B53E:
- mov r1, r9
- adds r0, r3, r1
- ldrb r2, [r0]
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0812B56C
- lsls r1, r4, 3
- adds r1, r5
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- str r0, [r1]
- str r2, [r1, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0812B56C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _0812B53E
- lsls r0, r4, 3
- adds r0, r5
- subs r0, 0x8
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- movs r0, 0
- strh r4, [r6, 0x4]
- strh r4, [r6, 0x6]
- strb r0, [r6, 0x8]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B598: .4byte gUnknown_845C4B0
-_0812B59C: .4byte gUnknown_203B0EC
-_0812B5A0: .4byte gUnknown_845C4B6
-_0812B5A4: .4byte gUnknown_845B080
- thumb_func_end sub_812B520
-
- thumb_func_start sub_812B5A8
-sub_812B5A8: @ 812B5A8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- bl sub_813BDE8
- movs r0, 0
- bl sub_813BFC0
- movs r0, 0x1
- bl sub_813BE78
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812B4C4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812B614
- ldr r0, _0812B608 @ =gUnknown_841DFC9
- bl sub_812BF74
- ldrb r1, [r4, 0xC]
- ldrb r2, [r4, 0xD]
- adds r0, r4, 0
- bl sub_813C64C
- ldr r1, _0812B60C @ =gUnknown_845B080
- ldr r0, _0812B610 @ =gUnknown_3005E9C
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_813C4CC
- movs r0, 0x1
- bl sub_813BDA4
- movs r0, 0x1
- bl sub_813BD5C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B608: .4byte gUnknown_841DFC9
-_0812B60C: .4byte gUnknown_845B080
-_0812B610: .4byte gUnknown_3005E9C
- thumb_func_end sub_812B5A8
-
- thumb_func_start sub_812B614
-sub_812B614: @ 812B614
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- movs r6, 0
- ldr r3, _0812B664 @ =gUnknown_845B9E0
- ldr r0, _0812B668 @ =gUnknown_203B0EC
- ldrh r1, [r0]
- lsls r0, r1, 2
- ldr r2, _0812B66C @ =gUnknown_3005E9C
- adds r0, r1
- ldrb r2, [r2, 0x1]
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldr r3, [r0]
- movs r7, 0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _0812B6D0
-_0812B640:
- adds r4, r3, r7
- ldrb r0, [r4]
- str r3, [sp]
- bl sub_812B780
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp]
- cmp r0, 0x1
- bne _0812B6C2
- ldr r0, _0812B66C @ =gUnknown_3005E9C
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0812B674
- lsls r1, r6, 3
- adds r1, r5
- ldr r2, _0812B670 @ =gUnknown_845B0B0
- b _0812B6AA
- .align 2, 0
-_0812B664: .4byte gUnknown_845B9E0
-_0812B668: .4byte gUnknown_203B0EC
-_0812B66C: .4byte gUnknown_3005E9C
-_0812B670: .4byte gUnknown_845B0B0
-_0812B674:
- cmp r0, 0x1
- bne _0812B684
- lsls r1, r6, 3
- adds r1, r5
- ldr r2, _0812B680 @ =gUnknown_845B218
- b _0812B6AA
- .align 2, 0
-_0812B680: .4byte gUnknown_845B218
-_0812B684:
- cmp r0, 0x2
- bne _0812B694
- lsls r1, r6, 3
- adds r1, r5
- ldr r2, _0812B690 @ =gUnknown_845B3A0
- b _0812B6AA
- .align 2, 0
-_0812B690: .4byte gUnknown_845B3A0
-_0812B694:
- cmp r0, 0x3
- bne _0812B6A4
- lsls r1, r6, 3
- adds r1, r5
- ldr r2, _0812B6A0 @ =gUnknown_845B500
- b _0812B6AA
- .align 2, 0
-_0812B6A0: .4byte gUnknown_845B500
-_0812B6A4:
- lsls r1, r6, 3
- adds r1, r5
- ldr r2, _0812B744 @ =gUnknown_845B540
-_0812B6AA:
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- lsls r0, r6, 3
- adds r0, r5
- ldrb r1, [r4]
- str r1, [r0, 0x4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0812B6C2:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r3, r7
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0812B640
-_0812B6D0:
- bl sub_812B754
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812B710
- movs r7, 0
- ldr r3, _0812B748 @ =gUnknown_845B9BE
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _0812B710
- ldr r4, _0812B74C @ =gUnknown_845B3A0
-_0812B6E8:
- lsls r1, r6, 3
- adds r1, r5
- adds r2, r3, r7
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldrb r0, [r2]
- str r0, [r1, 0x4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r3, r7
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0812B6E8
-_0812B710:
- lsls r0, r6, 3
- adds r0, r5
- ldr r1, _0812B750 @ =gUnknown_81B2E6F
- str r1, [r0]
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0
- mov r0, r8
- strh r6, [r0, 0x4]
- movs r0, 0x7
- mov r2, r8
- strh r0, [r2, 0x6]
- strb r1, [r2, 0x8]
- movs r0, 0x15
- strb r0, [r2, 0x9]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B744: .4byte gUnknown_845B540
-_0812B748: .4byte gUnknown_845B9BE
-_0812B74C: .4byte gUnknown_845B3A0
-_0812B750: .4byte gUnknown_81B2E6F
- thumb_func_end sub_812B614
-
- thumb_func_start sub_812B754
-sub_812B754: @ 812B754
- push {lr}
- movs r0, 0x96
- lsls r0, 3
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812B778
- ldr r0, _0812B774 @ =gUnknown_3005E9C
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _0812B778
- movs r0, 0x1
- b _0812B77A
- .align 2, 0
-_0812B774: .4byte gUnknown_3005E9C
-_0812B778:
- movs r0, 0
-_0812B77A:
- pop {r1}
- bx r1
- thumb_func_end sub_812B754
-
- thumb_func_start sub_812B780
-sub_812B780: @ 812B780
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- movs r4, 0
- ldr r0, _0812B7A8 @ =gUnknown_3005E9C
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0812B794
- b _0812B8AC
-_0812B794:
- subs r0, r1, 0x1
- cmp r0, 0x2B
- bls _0812B79C
- b _0812BB04
-_0812B79C:
- lsls r0, 2
- ldr r1, _0812B7AC @ =_0812B7B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812B7A8: .4byte gUnknown_3005E9C
-_0812B7AC: .4byte _0812B7B0
- .align 2, 0
-_0812B7B0:
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812B860
- .4byte _0812BB08
- .4byte _0812B868
- .4byte _0812B870
- .4byte _0812BB08
- .4byte _0812B880
- .4byte _0812B868
- .4byte _0812B878
- .4byte _0812B890
- .4byte _0812B880
- .4byte _0812B880
- .4byte _0812B880
- .4byte _0812B868
- .4byte _0812B880
- .4byte _0812B880
- .4byte _0812B868
- .4byte _0812B880
- .4byte _0812B888
- .4byte _0812B868
- .4byte _0812B888
- .4byte _0812B878
- .4byte _0812B890
- .4byte _0812B880
- .4byte _0812B890
- .4byte _0812B896
- .4byte _0812B880
- .4byte _0812B890
- .4byte _0812B880
- .4byte _0812B890
- .4byte _0812B890
- .4byte _0812BB08
- .4byte _0812B868
- .4byte _0812B868
- .4byte _0812B880
- .4byte _0812BB08
- .4byte _0812B89C
- .4byte _0812B896
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812B8A4
-_0812B860:
- ldr r0, _0812B864 @ =0x000002cf
- b _0812BAF2
- .align 2, 0
-_0812B864: .4byte 0x000002cf
-_0812B868:
- ldr r0, _0812B86C @ =0x00000891
- b _0812BAF2
- .align 2, 0
-_0812B86C: .4byte 0x00000891
-_0812B870:
- ldr r0, _0812B874 @ =0x00000895
- b _0812BAF2
- .align 2, 0
-_0812B874: .4byte 0x00000895
-_0812B878:
- ldr r0, _0812B87C @ =0x000008a4
- b _0812BAF2
- .align 2, 0
-_0812B87C: .4byte 0x000008a4
-_0812B880:
- ldr r0, _0812B884 @ =0x00000828
- b _0812BAF2
- .align 2, 0
-_0812B884: .4byte 0x00000828
-_0812B888:
- ldr r0, _0812B88C @ =0x00000829
- b _0812BAF2
- .align 2, 0
-_0812B88C: .4byte 0x00000829
-_0812B890:
- movs r0, 0x82
- lsls r0, 4
- b _0812BAF2
-_0812B896:
- bl sub_812BB10
- b _0812BAF6
-_0812B89C:
- ldr r0, _0812B8A0 @ =0x0000029b
- b _0812BAF2
- .align 2, 0
-_0812B8A0: .4byte 0x0000029b
-_0812B8A4:
- ldr r0, _0812B8A8 @ =0x00000892
- b _0812BAF2
- .align 2, 0
-_0812B8A8: .4byte 0x00000892
-_0812B8AC:
- cmp r0, 0x1
- beq _0812B8B2
- b _0812B9D8
-_0812B8B2:
- subs r0, r1, 0x1
- cmp r0, 0x2F
- bls _0812B8BA
- b _0812BB04
-_0812B8BA:
- lsls r0, 2
- ldr r1, _0812B8C4 @ =_0812B8C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812B8C4: .4byte _0812B8C8
- .align 2, 0
-_0812B8C8:
- .4byte _0812B988
- .4byte _0812B9A0
- .4byte _0812B9A0
- .4byte _0812B9A8
- .4byte _0812B9A0
- .4byte _0812BB08
- .4byte _0812B9A0
- .4byte _0812B9A0
- .4byte _0812B9A0
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812B9A0
- .4byte _0812B990
- .4byte _0812B9BA
- .4byte _0812B9C0
- .4byte _0812B9C0
- .4byte _0812B9C6
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812B988
- .4byte _0812BB08
- .4byte _0812B9A0
- .4byte _0812B9A0
- .4byte _0812B9A8
- .4byte _0812B9A0
- .4byte _0812BB08
- .4byte _0812B988
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812B9A0
- .4byte _0812B9A0
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812B9D0
-_0812B988:
- ldr r0, _0812B98C @ =0x00000829
- b _0812BAF2
- .align 2, 0
-_0812B98C: .4byte 0x00000829
-_0812B990:
- ldr r0, _0812B99C @ =0x00000169
- movs r1, 0x1
- bl sub_8099F40
- b _0812BAF6
- .align 2, 0
-_0812B99C: .4byte 0x00000169
-_0812B9A0:
- ldr r0, _0812B9A4 @ =0x00000828
- b _0812BAF2
- .align 2, 0
-_0812B9A4: .4byte 0x00000828
-_0812B9A8:
- movs r0, 0x1
- bl sub_8088EDC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0812B9B8
- b _0812BB08
-_0812B9B8:
- b _0812BB04
-_0812B9BA:
- movs r0, 0x82
- lsls r0, 4
- b _0812BAF2
-_0812B9C0:
- bl sub_812BB10
- b _0812BAF6
-_0812B9C6:
- ldr r0, _0812B9CC @ =0x00000271
- b _0812BAF2
- .align 2, 0
-_0812B9CC: .4byte 0x00000271
-_0812B9D0:
- ldr r0, _0812B9D4 @ =0x0000082c
- b _0812BAF2
- .align 2, 0
-_0812B9D4: .4byte 0x0000082c
-_0812B9D8:
- cmp r0, 0x2
- beq _0812B9DE
- b _0812BADC
-_0812B9DE:
- bl sub_812B754
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812BA0E
- ldr r0, _0812BA20 @ =gUnknown_845B9BE
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _0812BA0E
- adds r1, r2, 0
-_0812B9F6:
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, r5
- bne _0812BA00
- b _0812BB04
-_0812BA00:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0812B9F6
-_0812BA0E:
- subs r0, r5, 0x1
- cmp r0, 0x26
- bls _0812BA16
- b _0812BB08
-_0812BA16:
- lsls r0, 2
- ldr r1, _0812BA24 @ =_0812BA28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812BA20: .4byte gUnknown_845B9BE
-_0812BA24: .4byte _0812BA28
- .align 2, 0
-_0812BA28:
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAD2
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BB08
- .4byte _0812BAD2
- .4byte _0812BAC4
- .4byte _0812BB08
- .4byte _0812BAD2
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BAC4
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BB08
- .4byte _0812BACC
- .4byte _0812BACC
- .4byte _0812BB08
- .4byte _0812BAD2
-_0812BAC4:
- ldr r0, _0812BAC8 @ =0x00000828
- b _0812BAF2
- .align 2, 0
-_0812BAC8: .4byte 0x00000828
-_0812BACC:
- bl sub_812BB10
- b _0812BAF6
-_0812BAD2:
- ldr r0, _0812BAD8 @ =0x000008a4
- b _0812BAF2
- .align 2, 0
-_0812BAD8: .4byte 0x000008a4
-_0812BADC:
- cmp r0, 0x3
- bne _0812BB00
- cmp r5, 0x5
- beq _0812BAEA
- cmp r5, 0x6
- beq _0812BAF0
- b _0812BB08
-_0812BAEA:
- movs r0, 0x82
- lsls r0, 4
- b _0812BAF2
-_0812BAF0:
- ldr r0, _0812BAFC @ =0x00000821
-_0812BAF2:
- bl FlagGet
-_0812BAF6:
- lsls r0, 24
- lsrs r0, 24
- b _0812BB0A
- .align 2, 0
-_0812BAFC: .4byte 0x00000821
-_0812BB00:
- cmp r0, 0x4
- beq _0812BB08
-_0812BB04:
- movs r0, 0
- b _0812BB0A
-_0812BB08:
- movs r0, 0x1
-_0812BB0A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_812B780
-
- thumb_func_start sub_812BB10
-sub_812BB10: @ 812BB10
- push {lr}
- ldr r0, _0812BB7C @ =0x00000237
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812BB94
- movs r0, 0x8E
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812BB94
- ldr r0, _0812BB80 @ =0x00000239
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812BB94
- ldr r0, _0812BB84 @ =0x0000023a
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812BB94
- ldr r0, _0812BB88 @ =0x0000023b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812BB94
- ldr r0, _0812BB8C @ =0x000002ef
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812BB94
- ldr r0, _0812BB90 @ =0x000001f1
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812BB94
- movs r0, 0
- b _0812BB96
- .align 2, 0
-_0812BB7C: .4byte 0x00000237
-_0812BB80: .4byte 0x00000239
-_0812BB84: .4byte 0x0000023a
-_0812BB88: .4byte 0x0000023b
-_0812BB8C: .4byte 0x000002ef
-_0812BB90: .4byte 0x000001f1
-_0812BB94:
- movs r0, 0x1
-_0812BB96:
- pop {r1}
- bx r1
- thumb_func_end sub_812BB10
-
- thumb_func_start sub_812BB9C
-sub_812BB9C: @ 812BB9C
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldrb r0, [r2, 0xE]
- cmp r0, 0xA
- bhi _0812BC4C
- lsls r0, 2
- ldr r1, _0812BBB4 @ =_0812BBB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812BBB4: .4byte _0812BBB8
- .align 2, 0
-_0812BBB8:
- .4byte _0812BC02
- .4byte _0812BC0C
- .4byte _0812BC16
- .4byte _0812BC20
- .4byte _0812BC2A
- .4byte _0812BC34
- .4byte _0812BC3E
- .4byte _0812BC4C
- .4byte _0812BBE4
- .4byte _0812BBEE
- .4byte _0812BBF8
-_0812BBE4:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BC54
- b _0812BC46
-_0812BBEE:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BC80
- b _0812BC46
-_0812BBF8:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BCA8
- b _0812BC46
-_0812BC02:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BCD0
- b _0812BC46
-_0812BC0C:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BD2C
- b _0812BC46
-_0812BC16:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BD64
- b _0812BC46
-_0812BC20:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BD98
- b _0812BC46
-_0812BC2A:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BE10
- b _0812BC46
-_0812BC34:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BEEC
- b _0812BC46
-_0812BC3E:
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_812BF18
-_0812BC46:
- lsls r0, 24
- lsrs r0, 24
- b _0812BC4E
-_0812BC4C:
- movs r0, 0
-_0812BC4E:
- pop {r1}
- bx r1
- thumb_func_end sub_812BB9C
-
- thumb_func_start sub_812BC54
-sub_812BC54: @ 812BC54
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812BC7C @ =gUnknown_841DFA5
- bl sub_812BF74
- bl sub_812BF5C
- movs r0, 0x1
- bl sub_813BDA4
- movs r0, 0x1
- bl sub_813BD5C
- movs r0, 0x9
- strb r0, [r4, 0xE]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BC7C: .4byte gUnknown_841DFA5
- thumb_func_end sub_812BC54
-
- thumb_func_start sub_812BC80
-sub_812BC80: @ 812BC80
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812BCA4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812BC9A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- strb r0, [r4, 0xE]
-_0812BC9A:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BCA4: .4byte gMain
- thumb_func_end sub_812BC80
-
- thumb_func_start sub_812BCA8
-sub_812BCA8: @ 812BCA8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r0, _0812BCCC @ =gUnknown_3005E9C
- movs r5, 0
- strb r5, [r0, 0x2]
- adds r0, r4, 0
- bl sub_812BF94
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_812B4D8
- strb r5, [r4, 0xE]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BCCC: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BCA8
-
- thumb_func_start sub_812BCD0
-sub_812BCD0: @ 812BCD0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_813C690
- adds r1, r0, 0
- adds r0, r1, 0x6
- cmp r0, 0x5
- bhi _0812BD16
- lsls r0, 2
- ldr r1, _0812BCEC @ =_0812BCF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812BCEC: .4byte _0812BCF0
- .align 2, 0
-_0812BCF0:
- .4byte _0812BD08
- .4byte _0812BD0C
- .4byte _0812BD0C
- .4byte _0812BD1E
- .4byte _0812BD08
- .4byte _0812BD1E
-_0812BD08:
- movs r0, 0
- b _0812BD20
-_0812BD0C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812BF9C
- b _0812BD1E
-_0812BD16:
- ldr r0, _0812BD28 @ =gUnknown_3005E9C
- strb r1, [r0, 0x1]
- movs r0, 0x1
- strb r0, [r4, 0xE]
-_0812BD1E:
- movs r0, 0x1
-_0812BD20:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BD28: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BCD0
-
- thumb_func_start sub_812BD2C
-sub_812BD2C: @ 812BD2C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0812BD60 @ =gUnknown_3005E9C
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4, 0xD]
- strb r0, [r1, 0x2]
- adds r0, r4, 0
- bl sub_812BF94
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812B5A8
- bl sub_813C75C
- movs r0, 0x2
- bl sub_813C684
- movs r0, 0x3
- strb r0, [r4, 0xE]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BD60: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BD2C
-
- thumb_func_start sub_812BD64
-sub_812BD64: @ 812BD64
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0
- movs r1, 0
- bl sub_813C004
- movs r0, 0x1
- movs r1, 0
- bl sub_813C004
- ldr r0, _0812BD94 @ =gUnknown_3005E9C
- movs r4, 0
- strb r4, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_812B4D8
- strb r4, [r5, 0xE]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BD94: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BD64
-
- thumb_func_start sub_812BD98
-sub_812BD98: @ 812BD98
- push {r4,lr}
- adds r4, r0, 0
- bl sub_813C690
- adds r1, r0, 0
- adds r0, r1, 0x6
- cmp r0, 0x5
- bhi _0812BDD8
- lsls r0, 2
- ldr r1, _0812BDB4 @ =_0812BDB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812BDB4: .4byte _0812BDB8
- .align 2, 0
-_0812BDB8:
- .4byte _0812BDD0
- .4byte _0812BDE0
- .4byte _0812BDE0
- .4byte _0812BDE0
- .4byte _0812BDD4
- .4byte _0812BDE0
-_0812BDD0:
- movs r0, 0
- b _0812BDE2
-_0812BDD4:
- movs r0, 0x2
- b _0812BDDE
-_0812BDD8:
- ldr r0, _0812BDE8 @ =gUnknown_3005E9C
- strb r1, [r0, 0x3]
- movs r0, 0x4
-_0812BDDE:
- strb r0, [r4, 0xE]
-_0812BDE0:
- movs r0, 0x1
-_0812BDE2:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BDE8: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BD98
-
- thumb_func_start sub_812BDEC
-sub_812BDEC: @ 812BDEC
- push {lr}
- ldr r1, _0812BE08 @ =gUnknown_845B080
- ldr r0, _0812BE0C @ =gUnknown_3005E9C
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_813C4CC
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE08: .4byte gUnknown_845B080
-_0812BE0C: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BDEC
-
- thumb_func_start sub_812BE10
-sub_812BE10: @ 812BE10
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _0812BE4C @ =gUnknown_3005E9C
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0
- bl sub_813BDA4
- bl sub_813C624
- ldr r0, _0812BE50 @ =gUnknown_841DFBE
- bl sub_812BF74
- movs r0, 0x1
- bl sub_813BDE8
- movs r0, 0x1
- bl sub_813BEE4
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _0812BE5C
- ldr r0, _0812BE54 @ =gUnknown_845B0B0
- ldrb r1, [r4, 0x3]
- lsls r1, 2
- adds r0, r1, r0
- ldr r0, [r0]
- ldr r2, _0812BE58 @ =gUnknown_845B164
- b _0812BEA4
- .align 2, 0
-_0812BE4C: .4byte gUnknown_3005E9C
-_0812BE50: .4byte gUnknown_841DFBE
-_0812BE54: .4byte gUnknown_845B0B0
-_0812BE58: .4byte gUnknown_845B164
-_0812BE5C:
- cmp r0, 0x1
- bne _0812BE78
- ldr r0, _0812BE70 @ =gUnknown_845B218
- ldrb r1, [r4, 0x3]
- lsls r1, 2
- adds r0, r1, r0
- ldr r0, [r0]
- ldr r2, _0812BE74 @ =gUnknown_845B2DC
- b _0812BEA4
- .align 2, 0
-_0812BE70: .4byte gUnknown_845B218
-_0812BE74: .4byte gUnknown_845B2DC
-_0812BE78:
- cmp r0, 0x2
- bne _0812BE94
- ldr r0, _0812BE8C @ =gUnknown_845B3A0
- ldrb r1, [r4, 0x3]
- lsls r1, 2
- adds r0, r1, r0
- ldr r0, [r0]
- ldr r2, _0812BE90 @ =gUnknown_845B450
- b _0812BEA4
- .align 2, 0
-_0812BE8C: .4byte gUnknown_845B3A0
-_0812BE90: .4byte gUnknown_845B450
-_0812BE94:
- cmp r0, 0x3
- bne _0812BEB8
- ldr r0, _0812BEB0 @ =gUnknown_845B500
- ldrb r1, [r4, 0x3]
- lsls r1, 2
- adds r0, r1, r0
- ldr r0, [r0]
- ldr r2, _0812BEB4 @ =gUnknown_845B520
-_0812BEA4:
- adds r1, r2
- ldr r1, [r1]
- bl sub_813C50C
- b _0812BECC
- .align 2, 0
-_0812BEB0: .4byte gUnknown_845B500
-_0812BEB4: .4byte gUnknown_845B520
-_0812BEB8:
- ldr r0, _0812BEE4 @ =gUnknown_845B540
- ldrb r1, [r4, 0x3]
- lsls r1, 2
- adds r0, r1, r0
- ldr r0, [r0]
- ldr r2, _0812BEE8 @ =gUnknown_845B5D0
- adds r1, r2
- ldr r1, [r1]
- bl sub_813C50C
-_0812BECC:
- movs r0, 0x1
- bl sub_813BDA4
- movs r0, 0x1
- bl sub_813BD5C
- movs r0, 0x6
- strb r0, [r5, 0xE]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BEE4: .4byte gUnknown_845B540
-_0812BEE8: .4byte gUnknown_845B5D0
- thumb_func_end sub_812BE10
-
- thumb_func_start sub_812BEEC
-sub_812BEEC: @ 812BEEC
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0812BF14 @ =gUnknown_3005E9C
- movs r0, 0x1
- strb r0, [r2]
- adds r0, r4, 0
- bl sub_812B5A8
- bl sub_813C75C
- movs r0, 0x2
- bl sub_813C684
- movs r0, 0x3
- strb r0, [r4, 0xE]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812BF14: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BEEC
-
- thumb_func_start sub_812BF18
-sub_812BF18: @ 812BF18
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812BF40 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0812BF30
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812BF44
-_0812BF30:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x5
- strb r0, [r4, 0xE]
- movs r0, 0x1
- b _0812BF54
- .align 2, 0
-_0812BF40: .4byte gMain
-_0812BF44:
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0812BF52
- movs r0, 0x1
- b _0812BF54
-_0812BF52:
- movs r0, 0
-_0812BF54:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812BF18
-
- thumb_func_start sub_812BF5C
-sub_812BF5C: @ 812BF5C
- push {lr}
- bl sub_813C624
- ldr r0, _0812BF70 @ =gUnknown_81B2FC9
- movs r1, 0
- movs r2, 0
- bl sub_813C4CC
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF70: .4byte gUnknown_81B2FC9
- thumb_func_end sub_812BF5C
-
- thumb_func_start sub_812BF74
-sub_812BF74: @ 812BF74
- push {r4,lr}
- adds r4, r0, 0
- bl sub_813C5FC
- adds r0, r4, 0
- bl sub_813C488
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812BF74
-
- thumb_func_start sub_812BF88
-sub_812BF88: @ 812BF88
- ldr r0, _0812BF90 @ =gUnknown_3005E9C
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0812BF90: .4byte gUnknown_3005E9C
- thumb_func_end sub_812BF88
-
- thumb_func_start sub_812BF94
-sub_812BF94: @ 812BF94
- movs r1, 0
- strb r1, [r0, 0xC]
- strb r1, [r0, 0xD]
- bx lr
- thumb_func_end sub_812BF94
-
- thumb_func_start sub_812BF9C
-sub_812BF9C: @ 812BF9C
- push {lr}
- ldrb r2, [r0, 0xC]
- ldrb r0, [r0, 0xD]
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r1, [r2, 0x4]
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _0812BFC0
- ldr r0, _0812BFBC @ =gUnknown_845B098
- ldr r0, [r0, 0x14]
- bl sub_813C584
- b _0812BFCC
- .align 2, 0
-_0812BFBC: .4byte gUnknown_845B098
-_0812BFC0:
- ldr r0, _0812BFD8 @ =gUnknown_845B098
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_813C584
-_0812BFCC:
- movs r0, 0x1
- bl sub_813BE30
- pop {r0}
- bx r0
- .align 2, 0
-_0812BFD8: .4byte gUnknown_845B098
- thumb_func_end sub_812BF9C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/hof_pc.s b/asm/hof_pc.s
index b5a437662..80f7fc3f9 100644
--- a/asm/hof_pc.s
+++ b/asm/hof_pc.s
@@ -57,16 +57,16 @@ _080CA59C: .4byte sub_80CA53C
thumb_func_start sub_80CA5A0
sub_80CA5A0: @ 80CA5A0
push {lr}
- ldr r0, _080CA5B4 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080CA5B4 @ =CB2_ReturnToField
bl SetMainCallback2
- ldr r1, _080CA5B8 @ =gUnknown_3005020
+ ldr r1, _080CA5B8 @ =gFieldCallback
ldr r0, _080CA5BC @ =sub_80CA5C0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_080CA5B4: .4byte c2_exit_to_overworld_2_switch
-_080CA5B8: .4byte gUnknown_3005020
+_080CA5B4: .4byte CB2_ReturnToField
+_080CA5B8: .4byte gFieldCallback
_080CA5BC: .4byte sub_80CA5C0
thumb_func_end sub_80CA5A0
diff --git a/asm/ice.s b/asm/ice.s
new file mode 100644
index 000000000..c04715b95
--- /dev/null
+++ b/asm/ice.s
@@ -0,0 +1,3099 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80AF058
+sub_80AF058: @ 80AF058
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080AF0B4 @ =gUnknown_83E5F38
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ ldrh r3, [r4, 0x20]
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080AF09C
+ ldr r3, _080AF0B8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080AF0BC @ =sub_80AF0C8
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x3A]
+ movs r1, 0xA
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+_080AF09C:
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080AF0C0
+ adds r0, r2, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _080AF0C2
+ .align 2, 0
+_080AF0B4: .4byte gUnknown_83E5F38
+_080AF0B8: .4byte gSprites
+_080AF0BC: .4byte sub_80AF0C8
+_080AF0C0:
+ movs r0, 0x1
+_080AF0C2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AF058
+
+ thumb_func_start sub_80AF0C8
+sub_80AF0C8: @ 80AF0C8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF0FC
+ ldr r3, _080AF104 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080AF0FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF104: .4byte gTasks
+ thumb_func_end sub_80AF0C8
+
+ thumb_func_start sub_80AF108
+sub_80AF108: @ 80AF108
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x7
+ ldr r3, _080AF210 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080AF214 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r4, _080AF218 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080AF21C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ str r3, [sp]
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080AF220 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1]
+ ldr r3, [sp]
+ adds r0, r3
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x4]
+ mov r4, r9
+ adds r0, r4, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x6]
+ mov r7, r8
+ adds r0, r7, r0
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8074C80
+ adds r4, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ mov r12, r0
+ ldr r3, [sp]
+ cmp r4, r12
+ bhi _080AF1E2
+ adds r0, r7, 0
+ adds r0, 0x20
+ ldrh r1, [r5, 0x30]
+ ldrh r2, [r5, 0x32]
+ cmp r0, 0xE0
+ bhi _080AF1E2
+ adds r4, r1, 0
+ mov r10, r12
+_080AF1AE:
+ mov r7, r9
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r4
+ lsls r1, 16
+ mov r7, r8
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r0, r1, 16
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 14
+ adds r1, r7
+ lsrs r1, 16
+ cmp r1, r10
+ bhi _080AF1E2
+ mov r1, r8
+ lsls r0, r1, 16
+ adds r0, r7
+ lsrs r0, 16
+ cmp r0, 0xE0
+ bls _080AF1AE
+_080AF1E2:
+ ldrh r0, [r5, 0x30]
+ negs r7, r0
+ strh r7, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ negs r4, r0
+ strh r4, [r5, 0x32]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r0, 16
+ movs r2, 0x98
+ lsls r2, 1
+ mov r12, r2
+ ldr r1, _080AF220 @ =gBattleAnimArgs
+ mov r10, r1
+ cmp r0, r12
+ bhi _080AF24E
+ lsls r1, r6, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r1, r2
+ b _080AF246
+ .align 2, 0
+_080AF210: .4byte 0x000003ff
+_080AF214: .4byte 0xfffffc00
+_080AF218: .4byte gBattleAnimTarget
+_080AF21C: .4byte gBattleAnimAttacker
+_080AF220: .4byte gBattleAnimArgs
+_080AF224:
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r1, r7
+ lsls r1, 16
+ asrs r0, r2, 16
+ adds r0, r4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r3, r1, 16
+ movs r0, 0x80
+ lsls r0, 14
+ adds r1, r0
+ lsrs r1, 16
+ cmp r1, r12
+ bhi _080AF24E
+ lsls r1, r6, 16
+ adds r0, r1, r0
+_080AF246:
+ lsrs r0, 16
+ adds r2, r1, 0
+ cmp r0, 0xE0
+ bls _080AF224
+_080AF24E:
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x22]
+ mov r1, r10
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r3, [r5, 0x30]
+ mov r2, r9
+ strh r2, [r5, 0x32]
+ strh r6, [r5, 0x34]
+ mov r3, r8
+ strh r3, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8074C80
+ mov r7, r10
+ ldrh r0, [r7, 0xA]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r7, 0xC]
+ strh r0, [r5, 0x36]
+ ldr r0, _080AF288 @ =sub_80AF28C
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF288: .4byte sub_80AF28C
+ thumb_func_end sub_80AF108
+
+ thumb_func_start sub_80AF28C
+sub_80AF28C: @ 80AF28C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AF2E4
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ strh r1, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080AF2EA
+_080AF2E4:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AF2EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF28C
+
+ thumb_func_start sub_80AF2F0
+sub_80AF2F0: @ 80AF2F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AF324 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080AF328 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080AF32C @ =sub_8074AE0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF324: .4byte gBattleAnimArgs
+_080AF328: .4byte DestroyAnimSprite
+_080AF32C: .4byte sub_8074AE0
+ thumb_func_end sub_80AF2F0
+
+ thumb_func_start sub_80AF330
+sub_80AF330: @ 80AF330
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080AF364 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r0, _080AF368 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF370
+ ldr r0, _080AF36C @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r4, 0x32]
+ b _080AF37A
+ .align 2, 0
+_080AF364: .4byte gBattleAnimTarget
+_080AF368: .4byte gBattleAnimAttacker
+_080AF36C: .4byte gBattleAnimArgs
+_080AF370:
+ ldr r0, _080AF3A8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+_080AF37A:
+ ldr r0, _080AF3AC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ ldr r1, _080AF3A8 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r2, [r1, 0x6]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080AF3B0 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AF3B4 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF3A8: .4byte gBattleAnimArgs
+_080AF3AC: .4byte gBattleAnimTarget
+_080AF3B0: .4byte DestroyAnimSprite
+_080AF3B4: .4byte sub_8075590
+ thumb_func_end sub_80AF330
+
+ thumb_func_start sub_80AF3B8
+sub_80AF3B8: @ 80AF3B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080AF3D0 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AF3D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ b _080AF40A
+ .align 2, 0
+_080AF3D0: .4byte gBattleAnimArgs
+_080AF3D4:
+ ldr r0, _080AF41C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_8076D9C
+ ldr r0, _080AF420 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF3FA
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080AF3FA:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080AF40A:
+ ldr r1, _080AF424 @ =sub_80AF42C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AF428 @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF41C: .4byte gBattleAnimTarget
+_080AF420: .4byte gBattleAnimAttacker
+_080AF424: .4byte sub_80AF42C
+_080AF428: .4byte sub_8074F50
+ thumb_func_end sub_80AF3B8
+
+ thumb_func_start sub_80AF42C
+sub_80AF42C: @ 80AF42C
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080AF462
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080AF462:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF42C
+
+ thumb_func_start sub_80AF468
+sub_80AF468: @ 80AF468
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r6, _080AF4B0 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080AF4B8
+ ldr r4, _080AF4B4 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ b _080AF4CA
+ .align 2, 0
+_080AF4B0: .4byte gBattleAnimArgs
+_080AF4B4: .4byte gBattleAnimTarget
+_080AF4B8:
+ ldr r0, _080AF4E4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_8076D9C
+_080AF4CA:
+ ldr r0, _080AF4E8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF4F0
+ ldr r0, _080AF4EC @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r5, 0x32]
+ b _080AF4FA
+ .align 2, 0
+_080AF4E4: .4byte gBattleAnimTarget
+_080AF4E8: .4byte gBattleAnimAttacker
+_080AF4EC: .4byte gBattleAnimArgs
+_080AF4F0:
+ ldr r0, _080AF598 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080AF4FA:
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080AF504:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080AF504
+ adds r0, r5, 0
+ bl sub_8075804
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080AF526:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_807578C
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080AF55A
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080AF55A
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080AF526
+_080AF55A:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r6, _080AF59C @ =sub_8075830
+ ldr r1, _080AF5A0 @ =sub_80AF5A4
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080AF57A:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080AF57A
+ str r6, [r5, 0x1C]
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF598: .4byte gBattleAnimArgs
+_080AF59C: .4byte sub_8075830
+_080AF5A0: .4byte sub_80AF5A4
+ thumb_func_end sub_80AF468
+
+ thumb_func_start sub_80AF5A4
+sub_80AF5A4: @ 80AF5A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ ldr r0, _080AF600 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ ldr r1, _080AF604 @ =0x0000ffec
+ cmp r0, 0
+ beq _080AF5D4
+ movs r1, 0x14
+_080AF5D4:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x34]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldr r1, _080AF608 @ =sub_80AF60C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF600: .4byte gBattleAnimAttacker
+_080AF604: .4byte 0x0000ffec
+_080AF608: .4byte sub_80AF60C
+ thumb_func_end sub_80AF5A4
+
+ thumb_func_start sub_80AF60C
+sub_80AF60C: @ 80AF60C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AF660 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ ldr r1, _080AF664 @ =0x0000ffec
+ cmp r0, 0
+ beq _080AF622
+ movs r1, 0x14
+_080AF622:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1F
+ bgt _080AF668
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x36]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _080AF686
+ .align 2, 0
+_080AF660: .4byte gBattleAnimAttacker
+_080AF664: .4byte 0x0000ffec
+_080AF668:
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ ldr r0, _080AF68C @ =sub_80AF690
+ str r0, [r4, 0x1C]
+_080AF686:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF68C: .4byte sub_80AF690
+ thumb_func_end sub_80AF60C
+
+ thumb_func_start sub_80AF690
+sub_80AF690: @ 80AF690
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_807578C
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080AF6CC
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r1, r0, r1
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bgt _080AF6CC
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080AF6D2
+_080AF6CC:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AF6D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF690
+
+ thumb_func_start sub_80AF6D8
+sub_80AF6D8: @ 80AF6D8
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080AF71C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080AF724
+ ldr r4, _080AF720 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080AF736
+ .align 2, 0
+_080AF71C: .4byte gBattleAnimArgs
+_080AF720: .4byte gBattleAnimTarget
+_080AF724:
+ ldr r0, _080AF754 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_8076D9C
+_080AF736:
+ ldr r0, _080AF758 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF760
+ ldr r0, _080AF75C @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x32]
+ ldrh r2, [r0, 0x4]
+ subs r1, r2
+ strh r1, [r5, 0x32]
+ adds r1, r0, 0
+ b _080AF76A
+ .align 2, 0
+_080AF754: .4byte gBattleAnimTarget
+_080AF758: .4byte gBattleAnimAttacker
+_080AF75C: .4byte gBattleAnimArgs
+_080AF760:
+ ldr r1, _080AF814 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080AF76A:
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8075804
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080AF782:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080AF782
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080AF79E:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_807578C
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080AF7D2
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080AF7D2
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080AF79E
+_080AF7D2:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r1, _080AF814 @ =gBattleAnimArgs
+ ldr r6, _080AF818 @ =sub_80AF81C
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080AF7F2:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080AF7F2
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r5, 0x3A]
+ str r6, [r5, 0x1C]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF814: .4byte gBattleAnimArgs
+_080AF818: .4byte sub_80AF81C
+ thumb_func_end sub_80AF6D8
+
+ thumb_func_start sub_80AF81C
+sub_80AF81C: @ 80AF81C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807578C
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AF830
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080AF830:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080AF886
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080AF880
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080AF880
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080AF886
+_080AF880:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AF886:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF81C
+
+ thumb_func_start sub_80AF88C
+sub_80AF88C: @ 80AF88C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AF8F8
+ ldr r5, _080AF8AC @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AF8B0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075114
+ b _080AF8E6
+ .align 2, 0
+_080AF8AC: .4byte gBattleAnimArgs
+_080AF8B0:
+ ldr r0, _080AF8F0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_8076D9C
+ ldr r0, _080AF8F4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF8D6
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080AF8D6:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080AF8E6:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080AF90C
+ .align 2, 0
+_080AF8F0: .4byte gBattleAnimTarget
+_080AF8F4: .4byte gBattleAnimAttacker
+_080AF8F8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF90C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AF90C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF88C
+
+ thumb_func_start sub_80AF914
+sub_80AF914: @ 80AF914
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080AF934 @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080AF984
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080AF938
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075160
+ b _080AF976
+ .align 2, 0
+_080AF934: .4byte gBattleAnimArgs
+_080AF938:
+ ldr r4, _080AF960 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_8076D9C
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF964
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080AF96A
+ .align 2, 0
+_080AF960: .4byte gBattleAnimAttacker
+_080AF964:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080AF96A:
+ strh r0, [r5, 0x20]
+ ldr r0, _080AF97C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080AF976:
+ ldr r0, _080AF980 @ =gBattleAnimAttacker
+ b _080AF9D4
+ .align 2, 0
+_080AF97C: .4byte gBattleAnimArgs
+_080AF980: .4byte gBattleAnimAttacker
+_080AF984:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080AF996
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075114
+ b _080AF9D2
+_080AF996:
+ ldr r4, _080AF9BC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_8076D9C
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF9C0
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080AF9C6
+ .align 2, 0
+_080AF9BC: .4byte gBattleAnimTarget
+_080AF9C0:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080AF9C6:
+ strh r0, [r5, 0x20]
+ ldr r0, _080AF9F0 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080AF9D2:
+ ldr r0, _080AF9F4 @ =gBattleAnimTarget
+_080AF9D4:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080AF9F0 @ =gBattleAnimArgs
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080AF9EC
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AF9F8
+_080AF9EC:
+ movs r0, 0x20
+ b _080AF9FA
+ .align 2, 0
+_080AF9F0: .4byte gBattleAnimArgs
+_080AF9F4: .4byte gBattleAnimTarget
+_080AF9F8:
+ movs r0, 0x40
+_080AF9FA:
+ strh r0, [r5, 0x3A]
+ ldr r0, _080AFA40 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AFA10
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080AFA10:
+ ldr r1, _080AFA44 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r5, 0x38]
+ ldr r1, _080AFA48 @ =sub_80AFA4C
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFA40: .4byte gBattleAnimTarget
+_080AFA44: .4byte gBattleAnimArgs
+_080AFA48: .4byte sub_80AFA4C
+ thumb_func_end sub_80AF914
+
+ thumb_func_start sub_80AFA4C
+sub_80AFA4C: @ 80AFA4C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AFAD6
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080AFAA8
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076884
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080AFACA
+_080AFAA8:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080AFACA:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080AFADC
+_080AFAD6:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AFADC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFA4C
+
+ thumb_func_start sub_80AFAE4
+sub_80AFAE4: @ 80AFAE4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080AFBA0 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AFB26
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080AFB26:
+ ldr r0, _080AFBA4 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080AFBA8 @ =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AFBAC @ =gUnknown_83C3540
+ movs r2, 0x80
+ lsls r2, 4
+ mov r3, sp
+ ldrh r3, [r3, 0xA]
+ bl LoadBgTiles
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
+ bl sub_807543C
+ ldr r0, _080AFBB4 @ =gUnknown_83C2CE0
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AFB88
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080AFB88:
+ ldr r0, _080AFBB8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AFBBC @ =sub_80AFBC0
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFBA0: .4byte 0x00003f42
+_080AFBA4: .4byte gBattle_BG1_X
+_080AFBA8: .4byte gBattle_BG1_Y
+_080AFBAC: .4byte gUnknown_83C3540
+_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
+_080AFBB4: .4byte gUnknown_83C2CE0
+_080AFBB8: .4byte gTasks
+_080AFBBC: .4byte sub_80AFBC0
+ thumb_func_end sub_80AFAE4
+
+ thumb_func_start sub_80AFBC0
+sub_80AFBC0: @ 80AFBC0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AFBF4 @ =gBattle_BG1_X
+ ldr r2, _080AFBF8 @ =0x0000ffff
+ adds r0, r2, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ ldr r1, _080AFBFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080AFBEA
+ b _080AFD36
+_080AFBEA:
+ lsls r0, 2
+ ldr r1, _080AFC00 @ =_080AFC04
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AFBF4: .4byte gBattle_BG1_X
+_080AFBF8: .4byte 0x0000ffff
+_080AFBFC: .4byte gTasks
+_080AFC00: .4byte _080AFC04
+ .align 2, 0
+_080AFC04:
+ .4byte _080AFC18
+ .4byte _080AFC70
+ .4byte _080AFC92
+ .4byte _080AFCD6
+ .4byte _080AFCF8
+_080AFC18:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080AFC32
+ b _080AFD36
+_080AFC32:
+ strh r5, [r4, 0x1C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, _080AFC6C @ =gUnknown_83E64D4
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9
+ bne _080AFD36
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _080AFD36
+ .align 2, 0
+_080AFC6C: .4byte gUnknown_83E64D4
+_080AFC70:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080AFD36
+ movs r0, 0x9
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080AFD36
+_080AFC92:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080AFD36
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080AFD36
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080AFD36
+_080AFCD6:
+ mov r0, sp
+ bl sub_80752A0
+ movs r0, 0x1
+ bl sub_8075358
+ movs r0, 0x2
+ bl sub_8075358
+ ldr r0, _080AFD40 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080AFCF8:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AFD0C
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080AFD0C:
+ ldr r0, _080AFD44 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AFD48 @ =gBattle_BG1_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AFD36:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFD40: .4byte gTasks
+_080AFD44: .4byte gBattle_BG1_X
+_080AFD48: .4byte gBattle_BG1_Y
+ thumb_func_end sub_80AFBC0
+
+ thumb_func_start sub_80AFD4C
+sub_80AFD4C: @ 80AFD4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080AFD78 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080AFD7C @ =sub_8075DF4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFD78: .4byte gBattleAnimAttacker
+_080AFD7C: .4byte sub_8075DF4
+ thumb_func_end sub_80AFD4C
+
+ thumb_func_start sub_80AFD80
+sub_80AFD80: @ 80AFD80
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080AFE40 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AFDC2
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080AFDC2:
+ ldr r0, _080AFE44 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080AFE48 @ =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AFE4C @ =gUnknown_83C3540
+ movs r2, 0x80
+ lsls r2, 4
+ mov r3, sp
+ ldrh r3, [r3, 0xA]
+ bl LoadBgTiles
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
+ bl sub_807543C
+ ldr r0, _080AFE54 @ =gUnknown_83C2CE0
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AFE24
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080AFE24:
+ ldr r1, _080AFE58 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080AFE5C @ =0x0000ffff
+ strh r1, [r0, 0x26]
+ ldr r1, _080AFE60 @ =sub_80AFE64
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFE40: .4byte 0x00003f42
+_080AFE44: .4byte gBattle_BG1_X
+_080AFE48: .4byte gBattle_BG1_Y
+_080AFE4C: .4byte gUnknown_83C3540
+_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
+_080AFE54: .4byte gUnknown_83C2CE0
+_080AFE58: .4byte gTasks
+_080AFE5C: .4byte 0x0000ffff
+_080AFE60: .4byte sub_80AFE64
+ thumb_func_end sub_80AFD80
+
+ thumb_func_start sub_80AFE64
+sub_80AFE64: @ 80AFE64
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080AFE94 @ =gBattle_BG1_X
+ ldr r3, _080AFE98 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r3
+ ldrh r0, [r1, 0x26]
+ ldrh r5, [r2]
+ adds r0, r5
+ strh r0, [r2]
+ movs r2, 0x20
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ bls _080AFE8A
+ b _080AFFBE
+_080AFE8A:
+ lsls r0, 2
+ ldr r1, _080AFE9C @ =_080AFEA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AFE94: .4byte gBattle_BG1_X
+_080AFE98: .4byte gTasks
+_080AFE9C: .4byte _080AFEA0
+ .align 2, 0
+_080AFEA0:
+ .4byte _080AFEB4
+ .4byte _080AFEF8
+ .4byte _080AFF1A
+ .4byte _080AFF5E
+ .4byte _080AFF80
+_080AFEB4:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, _080AFEF4 @ =gUnknown_83E6500
+ movs r5, 0x1A
+ ldrsh r0, [r4, r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x11
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bne _080AFFBE
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ b _080AFFBE
+ .align 2, 0
+_080AFEF4: .4byte gUnknown_83E6500
+_080AFEF8:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080AFFBE
+ movs r0, 0x5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080AFFBE
+_080AFF1A:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080AFFBE
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080AFFBE
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080AFFBE
+_080AFF5E:
+ mov r0, sp
+ bl sub_80752A0
+ movs r0, 0x1
+ bl sub_8075358
+ movs r0, 0x2
+ bl sub_8075358
+ ldr r0, _080AFFC8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080AFF80:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AFF94
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080AFF94:
+ ldr r0, _080AFFCC @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AFFD0 @ =gBattle_BG1_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AFFBE:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFFC8: .4byte gTasks
+_080AFFCC: .4byte gBattle_BG1_X
+_080AFFD0: .4byte gBattle_BG1_Y
+ thumb_func_end sub_80AFE64
+
+ thumb_func_start sub_80AFFD4
+sub_80AFFD4: @ 80AFFD4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r6, _080B00BC @ =gBattleAnimArgs
+ ldrh r0, [r6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080B00C0 @ =gBattleAnimAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r4, r0, 0
+ ldr r7, _080B00C4 @ =gBattleAnimTarget
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _080B0008
+ movs r0, 0x80
+ lsls r0, 8
+ strh r0, [r5, 0x3C]
+_080B0008:
+ ldr r3, _080B00C8 @ =gUnknown_2023BD6
+ ldrb r0, [r7]
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080B0068
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+ ldrh r0, [r6, 0x6]
+ negs r0, r0
+ strh r0, [r6, 0x6]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0064
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080B0064
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ ldr r2, _080B00CC @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080B0064:
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+_080B0068:
+ ldr r4, _080B00C0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r6, _080B00BC @ =gBattleAnimArgs
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080B00D0
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080B00C4 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ b _080B00F8
+ .align 2, 0
+_080B00BC: .4byte gBattleAnimArgs
+_080B00C0: .4byte gBattleAnimAttacker
+_080B00C4: .4byte gBattleAnimTarget
+_080B00C8: .4byte gUnknown_2023BD6
+_080B00CC: .4byte gSprites
+_080B00D0:
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080B0140 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x1
+_080B00F8:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x8]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldrb r0, [r4]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 16
+ ldrh r1, [r5, 0x3C]
+ orrs r0, r1
+ strh r0, [r5, 0x3C]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B012C
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+ adds r1, r5, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ strb r0, [r1]
+_080B012C:
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080B0144 @ =sub_80B0148
+ str r0, [r5, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0140: .4byte gBattleAnimTarget
+_080B0144: .4byte sub_80B0148
+ thumb_func_end sub_80AFFD4
+
+ thumb_func_start sub_80B0148
+sub_80B0148: @ 80B0148
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ movs r5, 0xFF
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x1
+ beq _080B0230
+ cmp r1, 0x1
+ bgt _080B0162
+ cmp r1, 0
+ beq _080B016A
+ b _080B0380
+_080B0162:
+ cmp r1, 0x2
+ bne _080B0168
+ b _080B0344
+_080B0168:
+ b _080B0380
+_080B016A:
+ adds r0, r4, 0
+ bl sub_80755E0
+ ldr r1, _080B0194 @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 4
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B0198
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x8
+ b _080B019C
+ .align 2, 0
+_080B0194: .4byte gSineTable
+_080B0198:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+_080B019C:
+ ands r0, r5
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080B01AA
+ b _080B0380
+_080B01AA:
+ movs r5, 0x50
+ strh r5, [r4, 0x2E]
+ ldr r6, _080B01F8 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x1D
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0200
+ ldr r1, _080B01FC @ =gUnknown_2023BD6
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0200
+ movs r0, 0xCC
+ strh r0, [r4, 0x38]
+ b _080B0202
+ .align 2, 0
+_080B01F8: .4byte gBattleAnimTarget
+_080B01FC: .4byte gUnknown_2023BD6
+_080B0200:
+ strh r5, [r4, 0x38]
+_080B0202:
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080B022C @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 3
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _080B0380
+ .align 2, 0
+_080B022C: .4byte gSineTable
+_080B0230:
+ adds r0, r4, 0
+ bl sub_80755E0
+ ldr r1, _080B028C @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r0, 3
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ negs r0, r0
+ asrs r0, 8
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B02AE
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r1, 0
+ cmp r0, 0x7F
+ bhi _080B0290
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ b _080B0298
+ .align 2, 0
+_080B028C: .4byte gSineTable
+_080B0290:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ adds r1, 0x1
+_080B0298:
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r3, 0x4
+ b _080B02CE
+_080B02AE:
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080B02C2
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ b _080B02C8
+_080B02C2:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x8C
+_080B02C8:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x4
+_080B02CE:
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bgt _080B0380
+ movs r5, 0
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x4
+ strh r0, [r4, 0x36]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0328
+ ldr r1, _080B0320 @ =gUnknown_2023BD6
+ ldr r0, _080B0324 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0328
+ movs r0, 0x80
+ lsls r0, 1
+ b _080B032A
+ .align 2, 0
+_080B0320: .4byte gUnknown_2023BD6
+_080B0324: .4byte gBattleAnimTarget
+_080B0328:
+ ldr r0, _080B0340 @ =0x0000fff0
+_080B032A:
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl sub_8075678
+ b _080B0380
+ .align 2, 0
+_080B0340: .4byte 0x0000fff0
+_080B0344:
+ adds r0, r4, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0380
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0372
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080B0372:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080B0388 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080B0380:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0388: .4byte gUnknown_2037EE2
+ thumb_func_end sub_80B0148
+
+ thumb_func_start sub_80B038C
+sub_80B038C: @ 80B038C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B03A0 @ =gTasks
+ adds r1, r0
+ ldr r0, _080B03A4 @ =sub_80B03A8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080B03A0: .4byte gTasks
+_080B03A4: .4byte sub_80B03A8
+ thumb_func_end sub_80B038C
+
+ thumb_func_start sub_80B03A8
+sub_80B03A8: @ 80B03A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B03CC @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080B03EC
+ cmp r5, 0x1
+ bgt _080B03D0
+ cmp r5, 0
+ beq _080B03D6
+ b _080B0450
+ .align 2, 0
+_080B03CC: .4byte gTasks
+_080B03D0:
+ cmp r5, 0x2
+ beq _080B0442
+ b _080B0450
+_080B03D6:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B0450
+ strh r5, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0xC]
+ b _080B0428
+_080B03EC:
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080B043C
+ ldrb r0, [r4, 0xE]
+ ldrb r1, [r4, 0xC]
+ movs r3, 0x1
+ bl sub_80B0458
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B040C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_080B040C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080B0438
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080B0430
+_080B0428:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B0450
+_080B0430:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B0450
+_080B0438:
+ strh r5, [r4, 0x12]
+ b _080B0450
+_080B043C:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ b _080B0450
+_080B0442:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B0450
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B0450:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B03A8
+
+ thumb_func_start sub_80B0458
+sub_80B0458: @ 80B0458
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, _080B04D0 @ =gUnknown_83E652C
+ lsrs r0, 22
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ asrs r0, 28
+ mov r8, r0
+ cmp r0, 0x2
+ beq _080B0544
+ ldrh r0, [r4, 0x2]
+ lsls r0, 20
+ lsrs r0, 24
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0544
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r8
+ cmp r1, 0
+ beq _080B04D4
+ cmp r1, 0x1
+ beq _080B050A
+ b _080B0556
+ .align 2, 0
+_080B04D0: .4byte gUnknown_83E652C
+_080B04D4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r0
+ b _080B053E
+_080B050A:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+_080B053E:
+ lsls r1, 16
+ lsrs r6, r1, 16
+ b _080B0556
+_080B0544:
+ ldrh r0, [r4]
+ lsls r0, 22
+ asrs r0, 6
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ lsls r0, 12
+ asrs r0, 22
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080B0556:
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, 0x8
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ ldr r0, _080B05B0 @ =gUnknown_83E65A4
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ negs r2, r2
+ movs r3, 0x12
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080B05B8
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080B05B4 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ strh r7, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ mov r1, r9
+ strh r1, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x3A]
+ mov r1, r10
+ strh r1, [r4, 0x3C]
+ movs r0, 0x1
+ b _080B05BA
+ .align 2, 0
+_080B05B0: .4byte gUnknown_83E65A4
+_080B05B4: .4byte gSprites
+_080B05B8:
+ movs r0, 0
+_080B05BA:
+ 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_80B0458
+
+ thumb_func_start sub_80B05CC
+sub_80B05CC: @ 80B05CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r2, r1, 0
+ adds r2, 0x8
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _080B05F6
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080B06A6
+_080B05F6:
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080B0678
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B0678
+ ldr r0, _080B066C @ =gUnknown_83E63E0
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ movs r3, 0x36
+ ldrsh r2, [r4, r3]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ cmp r0, 0x40
+ beq _080B065A
+ ldr r2, _080B0670 @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080B0674 @ =sub_80B06B0
+ str r1, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0, 0x3C]
+_080B065A:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080B06A6
+ .align 2, 0
+_080B066C: .4byte gUnknown_83E63E0
+_080B0670: .4byte gSprites
+_080B0674: .4byte sub_80B06B0
+_080B0678:
+ ldr r3, _080B06AC @ =gTasks
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080B06A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B06AC: .4byte gTasks
+ thumb_func_end sub_80B05CC
+
+ thumb_func_start sub_80B06B0
+sub_80B06B0: @ 80B06B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080B06F0
+ ldr r3, _080B06F8 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080B06F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B06F8: .4byte gTasks
+ thumb_func_end sub_80B06B0
+
+ thumb_func_start unc_080B06FC
+unc_080B06FC: @ 80B06FC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080B077C @ =gAnimDisableStructPtr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080B071A
+ movs r1, 0x4
+_080B071A:
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r6, _080B0780 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080B0784 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0742
+ ldrh r0, [r6, 0x4]
+ negs r0, r0
+ strh r0, [r6, 0x4]
+_080B0742:
+ ldr r4, _080B0788 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_8075068
+ ldr r0, _080B078C @ =sub_80B0790
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B077C: .4byte gAnimDisableStructPtr
+_080B0780: .4byte gBattleAnimArgs
+_080B0784: .4byte gBattleAnimAttacker
+_080B0788: .4byte gBattleAnimTarget
+_080B078C: .4byte sub_80B0790
+ thumb_func_end unc_080B06FC
+
+ thumb_func_start sub_80B0790
+sub_80B0790: @ 80B0790
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B07B2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080B07B8 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _080B07BC @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+_080B07B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B07B8: .4byte sub_8074F6C
+_080B07BC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B0790
+
+ thumb_func_start sub_80B07C0
+sub_80B07C0: @ 80B07C0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080B0814 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080B0818 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080B081C @ =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080B0806
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080B0806:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080B0820 @ =sub_80B0824
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0814: .4byte 0x000003ff
+_080B0818: .4byte 0xfffffc00
+_080B081C: .4byte 0x000001ff
+_080B0820: .4byte sub_80B0824
+ thumb_func_end sub_80B07C0
+
+ thumb_func_start sub_80B0824
+sub_80B0824: @ 80B0824
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080B0848
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080B084C
+_080B0848:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080B084C:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080B086A
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080B086A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0824
+
+ thumb_func_start sub_80B0870
+sub_80B0870: @ 80B0870
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B0898 @ =gBattleAnimArgs
+ ldrb r3, [r1]
+ lsls r3, 1
+ adds r3, r1
+ ldr r1, _080B089C @ =gAnimDisableStructPtr
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x11]
+ lsrs r2, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r2, r1
+ subs r2, 0x1
+ strh r2, [r3]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0898: .4byte gBattleAnimArgs
+_080B089C: .4byte gAnimDisableStructPtr
+ thumb_func_end sub_80B0870
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/intro.s b/asm/intro.s
index af5104da3..909fee72e 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -166,7 +166,7 @@ _080EC65E:
movs r0, 0
movs r2, 0
bl load_copyright_graphics
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
@@ -898,7 +898,7 @@ _080ECCF6:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl sub_812E944
+ bl StartBlendTask
b _080ECD36
.align 2, 0
_080ECD14: .4byte 0x00003f44
@@ -907,7 +907,7 @@ _080ECD18:
bl ShowBg
b _080ECD36
_080ECD20:
- bl sub_812E9E4
+ bl IsBlendTaskActive
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -980,7 +980,7 @@ _080ECD9C:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl sub_812E944
+ bl StartBlendTask
strh r4, [r6, 0x8]
strh r5, [r6, 0xA]
strh r4, [r6, 0x12]
@@ -992,7 +992,7 @@ _080ECDC4:
str r0, [r6, 0x14]
b _080ECE70
_080ECDCC:
- bl sub_812E9E4
+ bl IsBlendTaskActive
lsls r0, 24
cmp r0, 0
bne _080ECE96
@@ -1051,10 +1051,10 @@ _080ECE26:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl sub_812E944
+ bl StartBlendTask
b _080ECE70
_080ECE52:
- bl sub_812E9E4
+ bl IsBlendTaskActive
lsls r0, 24
cmp r0, 0
bne _080ECE96
@@ -2742,14 +2742,14 @@ _080EDC0C:
bl DisableInterrupts
movs r0, 0
bl SetHBlankCallback
- ldr r0, _080EDC3C @ =sub_8078914
+ ldr r0, _080EDC3C @ =CB2_InitTitleScreen
bl SetMainCallback2
_080EDC34:
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080EDC3C: .4byte sub_8078914
+_080EDC3C: .4byte CB2_InitTitleScreen
thumb_func_end sub_80EDBE8
thumb_func_start sub_80EDC40
@@ -3369,7 +3369,7 @@ _080EE114:
_080EE11C:
movs r4, 0x6
ldrsh r3, [r5, r4]
- ldr r4, _080EE15C @ =gUnknown_825E074
+ ldr r4, _080EE15C @ =gSineTable
adds r0, r3, 0
adds r0, 0x40
lsls r0, 1
@@ -3400,7 +3400,7 @@ _080EE156:
pop {r0}
bx r0
.align 2, 0
-_080EE15C: .4byte gUnknown_825E074
+_080EE15C: .4byte gSineTable
thumb_func_end sub_80EE024
thumb_func_start sub_80EE160
@@ -3587,7 +3587,7 @@ sub_80EE29C: @ 80EE29C
lsls r1, 16
asrs r1, 20
strh r1, [r5, 0x22]
- ldr r1, _080EE340 @ =gUnknown_825E074
+ ldr r1, _080EE340 @ =gSineTable
lsls r0, 16
asrs r0, 20
adds r0, 0x40
@@ -3646,7 +3646,7 @@ _080EE336:
pop {r0}
bx r0
.align 2, 0
-_080EE340: .4byte gUnknown_825E074
+_080EE340: .4byte gSineTable
_080EE344: .4byte gUnknown_203AB16
_080EE348: .4byte 0x41c64e6d
_080EE34C: .4byte 0x00006073
@@ -4208,7 +4208,7 @@ _080EE740:
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x24]
- ldr r1, _080EE7B0 @ =gUnknown_825E074
+ ldr r1, _080EE7B0 @ =gSineTable
movs r3, 0x34
ldrsh r0, [r4, r3]
lsls r0, 1
@@ -4253,7 +4253,7 @@ _080EE78C:
strh r0, [r4, 0x3C]
b _080EE818
.align 2, 0
-_080EE7B0: .4byte gUnknown_825E074
+_080EE7B0: .4byte gSineTable
_080EE7B4: .4byte gUnknown_203AB04
_080EE7B8: .4byte gUnknown_203AB08
_080EE7BC: .4byte gUnknown_203AB06
@@ -4585,7 +4585,7 @@ _080EEA08:
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x24]
- ldr r1, _080EEA48 @ =gUnknown_825E074
+ ldr r1, _080EEA48 @ =gSineTable
lsls r0, 16
asrs r0, 20
lsls r0, 1
@@ -4599,7 +4599,7 @@ _080EEA08:
strh r0, [r4, 0x26]
b _080EEA88
.align 2, 0
-_080EEA48: .4byte gUnknown_825E074
+_080EEA48: .4byte gSineTable
_080EEA4C:
ldrh r0, [r4, 0x32]
lsrs r0, 4
@@ -4775,7 +4775,7 @@ _080EEB84:
asrs r0, 20
negs r1, r0
strh r1, [r4, 0x24]
- ldr r1, _080EEBD4 @ =gUnknown_825E074
+ ldr r1, _080EEBD4 @ =gSineTable
lsls r0, 1
adds r0, r1
movs r3, 0
@@ -4810,7 +4810,7 @@ _080EEBCE:
pop {r0}
bx r0
.align 2, 0
-_080EEBD4: .4byte gUnknown_825E074
+_080EEBD4: .4byte gSineTable
_080EEBD8: .4byte gUnknown_203AB04
_080EEBDC: .4byte gUnknown_203AB08
_080EEBE0: .4byte SpriteCallbackDummy
diff --git a/asm/item.s b/asm/item.s
deleted file mode 100644
index aa64e54fa..000000000
--- a/asm/item.s
+++ /dev/null
@@ -1,1853 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetBagItemQuantity
-GetBagItemQuantity: @ 8099DA0
- adds r1, r0, 0
- ldr r0, _08099DB8 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r2, 0xF2
- lsls r2, 4
- adds r0, r2
- ldr r0, [r0]
- ldrh r1, [r1]
- eors r0, r1
- lsls r0, 16
- lsrs r0, 16
- bx lr
- .align 2, 0
-_08099DB8: .4byte gSaveBlock2Ptr
- thumb_func_end GetBagItemQuantity
-
- thumb_func_start sub_8099DBC
-sub_8099DBC: @ 8099DBC
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08099DD4 @ =gSaveBlock2Ptr
- ldr r2, [r2]
- movs r3, 0xF2
- lsls r3, 4
- adds r2, r3
- ldr r2, [r2]
- eors r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08099DD4: .4byte gSaveBlock2Ptr
- thumb_func_end sub_8099DBC
-
- thumb_func_start GetBagItemId
-GetBagItemId: @ 8099DD8
- ldrh r0, [r0]
- bx lr
- thumb_func_end GetBagItemId
-
- thumb_func_start sub_8099DDC
-sub_8099DDC: @ 8099DDC
- strh r1, [r0]
- bx lr
- thumb_func_end sub_8099DDC
-
- thumb_func_start ApplyNewEncryptionKeyToBagItems
-ApplyNewEncryptionKeyToBagItems: @ 8099DE0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r8, r0
- movs r1, 0
- ldr r0, _08099E34 @ =gUnknown_203988C
- mov r9, r0
-_08099DF2:
- movs r6, 0
- lsls r5, r1, 3
- mov r2, r9
- adds r0, r5, r2
- adds r7, r1, 0x1
- ldrb r0, [r0, 0x4]
- cmp r6, r0
- bcs _08099E20
- ldr r2, _08099E34 @ =gUnknown_203988C
-_08099E04:
- adds r4, r5, r2
- lsls r1, r6, 2
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0x2
- mov r1, r8
- str r2, [sp]
- bl ApplyNewEncryptionKeyToHword
- adds r6, 0x1
- ldr r2, [sp]
- ldrb r4, [r4, 0x4]
- cmp r6, r4
- bcc _08099E04
-_08099E20:
- adds r1, r7, 0
- cmp r1, 0x4
- bls _08099DF2
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099E34: .4byte gUnknown_203988C
- thumb_func_end ApplyNewEncryptionKeyToBagItems
-
- thumb_func_start ApplyNewEncryptionKeyToBagItems_
-ApplyNewEncryptionKeyToBagItems_: @ 8099E38
- push {lr}
- bl ApplyNewEncryptionKeyToBagItems
- pop {r0}
- bx r0
- thumb_func_end ApplyNewEncryptionKeyToBagItems_
-
- thumb_func_start sub_8099E44
-sub_8099E44: @ 8099E44
- ldr r1, _08099E84 @ =gUnknown_203988C
- ldr r0, _08099E88 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r3, 0xC4
- lsls r3, 2
- adds r0, r2, r3
- str r0, [r1]
- movs r0, 0x2A
- strb r0, [r1, 0x4]
- adds r3, 0xA8
- adds r0, r2, r3
- str r0, [r1, 0x8]
- movs r0, 0x1E
- strb r0, [r1, 0xC]
- adds r3, 0x78
- adds r0, r2, r3
- str r0, [r1, 0x10]
- movs r0, 0xD
- strb r0, [r1, 0x14]
- adds r3, 0x34
- adds r0, r2, r3
- str r0, [r1, 0x18]
- movs r0, 0x3A
- strb r0, [r1, 0x1C]
- ldr r0, _08099E8C @ =0x0000054c
- adds r2, r0
- str r2, [r1, 0x20]
- adds r1, 0x24
- movs r0, 0x2B
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08099E84: .4byte gUnknown_203988C
-_08099E88: .4byte gSaveBlock1Ptr
-_08099E8C: .4byte 0x0000054c
- thumb_func_end sub_8099E44
-
- thumb_func_start sub_8099E90
-sub_8099E90: @ 8099E90
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08099EB8
- movs r0, 0x2B
- bl sub_809C8A0
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08099EB4 @ =gUnknown_84162BD
- adds r0, r4, 0
- bl StringAppend
- b _08099EC4
- .align 2, 0
-_08099EB4: .4byte gUnknown_84162BD
-_08099EB8:
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
-_08099EC4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8099E90
-
- thumb_func_start sub_8099ECC
-sub_8099ECC: @ 8099ECC
- push {lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _08099EF0 @ =gUnknown_203988C
- lsrs r0, 21
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08099EFE
- ldr r3, [r0]
-_08099EE0:
- lsls r0, r2, 2
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _08099EF4
- lsls r0, r2, 24
- asrs r0, 24
- b _08099F02
- .align 2, 0
-_08099EF0: .4byte gUnknown_203988C
-_08099EF4:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- bcc _08099EE0
-_08099EFE:
- movs r0, 0x1
- negs r0, r0
-_08099F02:
- pop {r1}
- bx r1
- thumb_func_end sub_8099ECC
-
- thumb_func_start sub_8099F08
-sub_8099F08: @ 8099F08
- push {lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _08099F2C @ =gUnknown_203988C
- lsrs r0, 21
- subs r0, 0x8
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08099F3A
- ldr r3, [r0]
-_08099F1E:
- lsls r0, r2, 2
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _08099F30
- movs r0, 0x1
- b _08099F3C
- .align 2, 0
-_08099F2C: .4byte gUnknown_203988C
-_08099F30:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _08099F1E
-_08099F3A:
- movs r0, 0
-_08099F3C:
- pop {r1}
- bx r1
- thumb_func_end sub_8099F08
-
- thumb_func_start sub_8099F40
-sub_8099F40: @ 8099F40
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- bne _08099F5C
- b _08099FA4
-_08099F58:
- movs r0, 0x1
- b _08099FA6
-_08099F5C:
- adds r0, r4, 0
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- movs r2, 0
- ldr r1, _08099F94 @ =gUnknown_203988C
- lsrs r0, 21
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08099FA4
- adds r3, r0, 0
-_08099F76:
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r4
- bne _08099F98
- adds r0, r1, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bcs _08099F58
- b _08099FA4
- .align 2, 0
-_08099F94: .4byte gUnknown_203988C
-_08099F98:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x4]
- cmp r2, r0
- bcc _08099F76
-_08099FA4:
- movs r0, 0
-_08099FA6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8099F40
-
- thumb_func_start sub_8099FAC
-sub_8099FAC: @ 8099FAC
- push {r4,lr}
- ldr r0, _08099FC0 @ =0x0000016d
- movs r1, 0x1
- bl sub_8099F40
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08099FD4
- b _08099FF0
- .align 2, 0
-_08099FC0: .4byte 0x0000016d
-_08099FC4:
- ldr r1, _08099FD0 @ =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
- b _08099FF6
- .align 2, 0
-_08099FD0: .4byte gSpecialVar_Result
-_08099FD4:
- movs r4, 0x85
-_08099FD6:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8099F40
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08099FC4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xAF
- bls _08099FD6
-_08099FF0:
- ldr r0, _08099FFC @ =gSpecialVar_Result
- strh r1, [r0]
- movs r0, 0
-_08099FF6:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08099FFC: .4byte gSpecialVar_Result
- thumb_func_end sub_8099FAC
-
- thumb_func_start sub_809A000
-sub_809A000: @ 809A000
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- beq _0809A050
- adds r0, r4, 0
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0
- ldr r1, _0809A054 @ =gUnknown_203988C
- lsls r0, r5, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _0809A068
- adds r3, r0, 0
-_0809A032:
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r4
- bne _0809A05C
- adds r0, r1, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- lsrs r0, 16
- adds r0, r6
- ldr r1, _0809A058 @ =0x000003e7
- cmp r0, r1
- ble _0809A07A
-_0809A050:
- movs r0, 0
- b _0809A07C
- .align 2, 0
-_0809A054: .4byte gUnknown_203988C
-_0809A058: .4byte 0x000003e7
-_0809A05C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x4]
- cmp r2, r0
- bcc _0809A032
-_0809A068:
- adds r0, r5, 0
- bl sub_8099ECC
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809A050
-_0809A07A:
- movs r0, 0x1
-_0809A07C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809A000
-
- thumb_func_start sub_809A084
-sub_809A084: @ 809A084
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r6, 0
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- bne _0809A0A2
- b _0809A1CA
-_0809A0A2:
- adds r0, r6, 0
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0
- ldr r1, _0809A0E0 @ =gUnknown_203988C
- lsls r0, r7, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _0809A0F4
- adds r5, r0, 0
-_0809A0BE:
- ldr r0, [r5]
- lsls r4, r2, 2
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, r6
- bne _0809A0E8
- adds r0, r1, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- lsrs r0, 16
- mov r2, r8
- adds r1, r0, r2
- ldr r0, _0809A0E4 @ =0x000003e7
- cmp r1, r0
- ble _0809A1B8
- b _0809A1CA
- .align 2, 0
-_0809A0E0: .4byte gUnknown_203988C
-_0809A0E4: .4byte 0x000003e7
-_0809A0E8:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5, 0x4]
- cmp r2, r0
- bcc _0809A0BE
-_0809A0F4:
- cmp r7, 0x3
- bne _0809A132
- movs r4, 0xB6
- lsls r4, 1
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8099F40
- lsls r0, 24
- cmp r0, 0
- bne _0809A132
- movs r0, 0x1
- bl sub_8099ECC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809A1CA
- ldr r2, _0809A1AC @ =gUnknown_203988C
- ldr r0, [r2, 0x8]
- lsls r1, 2
- adds r0, r1, r0
- strh r4, [r0]
- ldr r0, [r2, 0x8]
- adds r0, r1
- adds r0, 0x2
- movs r1, 0x1
- bl sub_8099DBC
-_0809A132:
- cmp r7, 0x4
- bne _0809A174
- ldr r4, _0809A1B0 @ =0x0000016d
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8099F40
- lsls r0, 24
- cmp r0, 0
- bne _0809A174
- movs r0, 0x1
- bl sub_8099ECC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809A1CA
- ldr r2, _0809A1AC @ =gUnknown_203988C
- ldr r0, [r2, 0x8]
- lsls r1, 2
- adds r0, r1, r0
- strh r4, [r0]
- ldr r0, [r2, 0x8]
- adds r0, r1
- adds r0, 0x2
- movs r1, 0x1
- bl sub_8099DBC
- ldr r0, _0809A1B4 @ =0x00000847
- bl FlagSet
-_0809A174:
- ldr r0, _0809A1B0 @ =0x0000016d
- cmp r6, r0
- bne _0809A180
- ldr r0, _0809A1B4 @ =0x00000847
- bl FlagSet
-_0809A180:
- adds r0, r7, 0
- bl sub_8099ECC
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0809A1CA
- ldr r0, _0809A1AC @ =gUnknown_203988C
- lsls r1, r7, 3
- adds r1, r0
- ldr r0, [r1]
- lsls r2, 2
- adds r0, r2, r0
- strh r6, [r0]
- ldr r0, [r1]
- adds r0, r2
- adds r0, 0x2
- mov r1, r8
- b _0809A1C2
- .align 2, 0
-_0809A1AC: .4byte gUnknown_203988C
-_0809A1B0: .4byte 0x0000016d
-_0809A1B4: .4byte 0x00000847
-_0809A1B8:
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [r5]
- adds r0, r4
- adds r0, 0x2
-_0809A1C2:
- bl sub_8099DBC
- movs r0, 0x1
- b _0809A1CC
-_0809A1CA:
- movs r0, 0
-_0809A1CC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A084
-
- thumb_func_start sub_809A1D8
-sub_809A1D8: @ 809A1D8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- beq _0809A258
- cmp r4, 0
- beq _0809A258
- adds r0, r4, 0
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- movs r2, 0
- ldr r1, _0809A248 @ =gUnknown_203988C
- lsrs r0, 21
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _0809A258
- adds r6, r0, 0
-_0809A20C:
- ldr r0, [r6]
- lsls r5, r2, 2
- adds r1, r5, r0
- ldrh r0, [r1]
- cmp r0, r4
- bne _0809A24C
- adds r0, r1, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bcc _0809A258
- subs r0, r7
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r6]
- adds r0, r5
- adds r0, 0x2
- adds r1, r4, 0
- bl sub_8099DBC
- cmp r4, 0
- bne _0809A242
- ldr r0, [r6]
- adds r0, r5, r0
- strh r4, [r0]
-_0809A242:
- movs r0, 0x1
- b _0809A25A
- .align 2, 0
-_0809A248: .4byte gUnknown_203988C
-_0809A24C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r6, 0x4]
- cmp r2, r0
- bcc _0809A20C
-_0809A258:
- movs r0, 0
-_0809A25A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A1D8
-
- thumb_func_start GetPocketByItemId
-GetPocketByItemId: @ 809A260
- 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: @ 809A274
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- movs r4, 0
- lsrs r1, 24
- cmp r4, r1
- bcs _0809A29E
- adds r5, r1, 0
- movs r7, 0
-_0809A286:
- lsls r0, r4, 2
- adds r0, r6
- strh r7, [r0]
- adds r0, 0x2
- movs r1, 0
- bl sub_8099DBC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcc _0809A286
-_0809A29E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ClearItemSlots
-
- thumb_func_start sub_809A2A4
-sub_809A2A4: @ 809A2A4
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0xA6
- lsls r5, 2
-_0809A2AC:
- ldr r0, _0809A2D8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- lsls r3, r4, 2
- adds r1, r0, r3
- adds r1, r5
- movs r2, 0
- strh r2, [r1]
- adds r3, r5
- adds r0, r3
- adds r0, 0x2
- movs r1, 0
- bl sub_8099DDC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _0809A2AC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A2D8: .4byte gSaveBlock1Ptr
- thumb_func_end sub_809A2A4
-
- thumb_func_start sub_809A2DC
-sub_809A2DC: @ 809A2DC
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809A300 @ =gUnknown_203988C
-_0809A2E2:
- lsls r1, r4, 3
- adds r1, r5
- ldr r0, [r1]
- ldrb r1, [r1, 0x4]
- bl ClearItemSlots
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _0809A2E2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A300: .4byte gUnknown_203988C
- thumb_func_end sub_809A2DC
-
- thumb_func_start sub_809A304
-sub_809A304: @ 809A304
- push {lr}
- movs r1, 0
- ldr r0, _0809A324 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r3, 0xA6
- lsls r3, 2
-_0809A310:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809A328
- adds r0, r1, 0
- b _0809A338
- .align 2, 0
-_0809A324: .4byte gSaveBlock1Ptr
-_0809A328:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x1D
- ble _0809A310
- movs r0, 0x1
- negs r0, r0
-_0809A338:
- pop {r1}
- bx r1
- thumb_func_end sub_809A304
-
- thumb_func_start sub_809A33C
-sub_809A33C: @ 809A33C
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r0, _0809A370 @ =gSaveBlock1Ptr
- ldr r3, [r0]
- movs r4, 0xA6
- lsls r4, 2
-_0809A34A:
- lsls r0, r1, 2
- adds r0, r3, r0
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809A35C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_0809A35C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bls _0809A34A
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A370: .4byte gSaveBlock1Ptr
- thumb_func_end sub_809A33C
-
- thumb_func_start sub_809A374
-sub_809A374: @ 809A374
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
-_0809A380:
- ldr r0, _0809A3AC @ =gSaveBlock1Ptr
- ldr r2, [r0]
- lsls r1, r4, 2
- adds r0, r2, r1
- movs r3, 0xA6
- lsls r3, 2
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r6
- bne _0809A3B4
- adds r0, r1, r2
- ldr r1, _0809A3B0 @ =0x0000029a
- adds r0, r1
- bl GetBagItemId
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _0809A3B4
- movs r0, 0x1
- b _0809A3C0
- .align 2, 0
-_0809A3AC: .4byte gSaveBlock1Ptr
-_0809A3B0: .4byte 0x0000029a
-_0809A3B4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1D
- bls _0809A380
- movs r0, 0
-_0809A3C0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809A374
-
- thumb_func_start sub_809A3C8
-sub_809A3C8: @ 809A3C8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- movs r3, 0
- ldr r6, _0809A404 @ =gSaveBlock1Ptr
-_0809A3D6:
- ldr r2, [r6]
- lsls r1, r3, 2
- adds r0, r2, r1
- movs r7, 0xA6
- lsls r7, 2
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r4
- bne _0809A40C
- adds r0, r7, 0
- adds r4, r1, r0
- adds r0, r2, r4
- adds r0, 0x2
- bl GetBagItemId
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, r5
- ldr r0, _0809A408 @ =0x000003e7
- cmp r1, r0
- ble _0809A444
- b _0809A456
- .align 2, 0
-_0809A404: .4byte gSaveBlock1Ptr
-_0809A408: .4byte 0x000003e7
-_0809A40C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1D
- bls _0809A3D6
- bl sub_809A304
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0809A456
- ldr r0, _0809A440 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- lsls r2, 2
- adds r1, r0, r2
- movs r3, 0xA6
- lsls r3, 2
- adds r1, r3
- strh r4, [r1]
- adds r2, r3
- adds r0, r2
- adds r0, 0x2
- adds r1, r5, 0
- b _0809A44E
- .align 2, 0
-_0809A440: .4byte gSaveBlock1Ptr
-_0809A444:
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [r6]
- adds r0, r4
- adds r0, 0x2
-_0809A44E:
- bl sub_8099DDC
- movs r0, 0x1
- b _0809A458
-_0809A456:
- movs r0, 0
-_0809A458:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A3C8
-
- thumb_func_start sub_809A460
-sub_809A460: @ 809A460
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- cmp r2, 0
- beq _0809A4D8
- movs r4, 0
- ldr r0, _0809A4E4 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r3, 0xA6
- lsls r3, 2
- adds r1, r3
- ldrh r1, [r1]
- adds r7, r0, 0
- cmp r1, r2
- beq _0809A49E
- adds r5, r7, 0
-_0809A48A:
- adds r4, 0x1
- cmp r4, 0x1D
- bhi _0809A49E
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, r1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0809A48A
-_0809A49E:
- cmp r4, 0x1E
- beq _0809A4D8
- lsls r6, r4, 2
- movs r0, 0xA6
- lsls r0, 2
- adds r4, r6, r0
- ldr r0, [r7]
- adds r0, r4
- adds r0, 0x2
- bl GetBagItemId
- mov r1, r8
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r7]
- adds r0, r4
- adds r0, 0x2
- adds r1, r5, 0
- bl sub_8099DDC
- cmp r5, 0
- bne _0809A4D8
- ldr r0, [r7]
- adds r0, r6
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- strh r5, [r0]
-_0809A4D8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A4E4: .4byte gSaveBlock1Ptr
- thumb_func_end sub_809A460
-
- thumb_func_start sub_809A4E8
-sub_809A4E8: @ 809A4E8
- push {r4-r7,lr}
- movs r2, 0
-_0809A4EC:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r4, r0, 16
- adds r6, r1, 0
- cmp r4, 0x1D
- bhi _0809A52E
- ldr r0, _0809A53C @ =gSaveBlock1Ptr
- mov r12, r0
- lsls r5, r2, 2
- movs r7, 0xA6
- lsls r7, 2
-_0809A502:
- mov r0, r12
- ldr r1, [r0]
- adds r0, r1, r5
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809A524
- movs r0, 0xA6
- lsls r0, 2
- adds r1, r0
- adds r2, r1, r5
- ldr r3, [r2]
- lsls r0, r4, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- str r3, [r1]
-_0809A524:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _0809A502
-_0809A52E:
- lsls r0, r6, 16
- lsrs r2, r0, 16
- cmp r2, 0x1C
- bls _0809A4EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A53C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_809A4E8
-
- thumb_func_start sub_809A540
-sub_809A540: @ 809A540
- push {lr}
- ldr r0, _0809A55C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, _0809A560 @ =0x00000296
- adds r1, r0, r2
- ldrh r2, [r1]
- ldr r3, _0809A564 @ =0x00000103
- cmp r2, r3
- beq _0809A568
- movs r0, 0x88
- lsls r0, 1
- cmp r2, r0
- beq _0809A570
- b _0809A572
- .align 2, 0
-_0809A55C: .4byte gSaveBlock1Ptr
-_0809A560: .4byte 0x00000296
-_0809A564: .4byte 0x00000103
-_0809A568:
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r1]
- b _0809A572
-_0809A570:
- strh r3, [r1]
-_0809A572:
- pop {r0}
- bx r0
- thumb_func_end sub_809A540
-
- thumb_func_start sub_809A578
-sub_809A578: @ 809A578
- ldr r3, [r0]
- ldr r2, [r1]
- str r2, [r0]
- str r3, [r1]
- bx lr
- thumb_func_end sub_809A578
-
- thumb_func_start sub_809A584
-sub_809A584: @ 809A584
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- subs r0, r1, 0x1
- cmp r2, r0
- bge _0809A5D8
- adds r6, r1, 0
- mov r9, r0
-_0809A59E:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r4, r0, 16
- adds r7, r1, 0
- cmp r4, r6
- bcs _0809A5D0
- lsls r0, r2, 2
- mov r1, r8
- adds r5, r1, r0
-_0809A5B0:
- adds r0, r5, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- cmp r0, 0
- bne _0809A5C6
- lsls r1, r4, 2
- add r1, r8
- adds r0, r5, 0
- bl sub_809A578
-_0809A5C6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r6
- bcc _0809A5B0
-_0809A5D0:
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, r9
- blt _0809A59E
-_0809A5D8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809A584
-
- thumb_func_start sub_809A5E4
-sub_809A5E4: @ 809A5E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- movs r4, 0
- bl sub_809A720
- movs r3, 0
- ldrb r0, [r5, 0x4]
- cmp r3, r0
- bcs _0809A676
- movs r6, 0xA9
- lsls r6, 1
-_0809A604:
- ldr r0, [r5]
- lsls r1, r3, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _0809A622
- adds r0, r2, 0x2
- str r3, [sp]
- bl GetBagItemQuantity
- lsls r0, 16
- ldr r3, [sp]
- cmp r0, 0
- beq _0809A70A
-_0809A622:
- ldr r0, [r5]
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, r6
- bls _0809A66A
- adds r0, r1, 0x2
- str r3, [sp]
- bl GetBagItemQuantity
- lsls r0, 16
- ldr r3, [sp]
- cmp r0, 0
- beq _0809A66A
- adds r0, r3, 0x1
- b _0809A642
-_0809A640:
- adds r0, r4, 0x1
-_0809A642:
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r1, [r5, 0x4]
- cmp r4, r1
- bcs _0809A676
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0809A640
- adds r0, r1, 0x2
- str r3, [sp]
- bl GetBagItemQuantity
- lsls r0, 16
- ldr r3, [sp]
- cmp r0, 0
- bne _0809A640
- b _0809A676
-_0809A66A:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrb r2, [r5, 0x4]
- cmp r3, r2
- bcc _0809A604
-_0809A676:
- movs r6, 0
- lsls r7, r3, 2
- subs r4, r3
- mov r10, r4
- lsls r3, 1
- mov r9, r3
- ldrb r0, [r5, 0x4]
- cmp r6, r0
- bcs _0809A6A6
-_0809A688:
- lsls r4, r6, 2
- ldr r0, [r5]
- adds r0, r4
- adds r0, 0x2
- bl GetBagItemQuantity
- ldr r1, [r5]
- adds r4, r1
- strh r0, [r4, 0x2]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r1, [r5, 0x4]
- cmp r6, r1
- bcc _0809A688
-_0809A6A6:
- ldrb r0, [r5, 0x4]
- lsls r0, 2
- bl AllocZeroed
- mov r8, r0
- ldr r0, [r5]
- adds r0, r7
- mov r1, r10
- lsls r2, r1, 1
- ldr r4, _0809A71C @ =0x001fffff
- ands r2, r4
- mov r1, r8
- bl CpuSet
- ldr r0, [r5]
- mov r2, r10
- lsls r1, r2, 2
- add r1, r8
- mov r2, r9
- ands r2, r4
- mov r9, r2
- bl CpuSet
- ldr r1, [r5]
- ldrb r2, [r5, 0x4]
- lsls r2, 1
- ands r2, r4
- mov r0, r8
- bl CpuSet
- movs r6, 0
- ldrb r0, [r5, 0x4]
- cmp r6, r0
- bcs _0809A704
-_0809A6EA:
- lsls r0, r6, 2
- ldr r1, [r5]
- adds r1, r0
- adds r0, r1, 0x2
- ldrh r1, [r1, 0x2]
- bl sub_8099DBC
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r1, [r5, 0x4]
- cmp r6, r1
- bcc _0809A6EA
-_0809A704:
- mov r0, r8
- bl Free
-_0809A70A:
- 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
-_0809A71C: .4byte 0x001fffff
- thumb_func_end sub_809A5E4
-
- thumb_func_start sub_809A720
-sub_809A720: @ 809A720
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- movs r3, 0
- b _0809A786
-_0809A72C:
- adds r1, r3, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, r2
- bcs _0809A780
- lsls r7, r3, 2
-_0809A73A:
- ldr r0, [r6]
- adds r0, r7
- adds r0, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- lsls r4, r5, 2
- cmp r0, 0
- beq _0809A76A
- ldr r0, [r6]
- adds r0, r4
- adds r0, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- cmp r0, 0
- beq _0809A774
- ldr r0, [r6]
- adds r1, r7, r0
- adds r0, r4, r0
- ldrh r1, [r1]
- ldrh r0, [r0]
- cmp r1, r0
- bls _0809A774
-_0809A76A:
- ldr r1, [r6]
- adds r0, r1, r7
- adds r1, r4
- bl sub_809A578
-_0809A774:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r6, 0x4]
- cmp r5, r0
- bcc _0809A73A
-_0809A780:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
-_0809A786:
- ldrb r2, [r6, 0x4]
- cmp r3, r2
- bcc _0809A72C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809A720
-
- thumb_func_start sub_809A798
-sub_809A798: @ 809A798
- lsls r0, 24
- lsls r1, 16
- ldr r2, _0809A7B0 @ =gUnknown_203988C
- lsrs r0, 21
- subs r0, 0x8
- adds r0, r2
- ldr r0, [r0]
- lsrs r1, 14
- adds r1, r0
- ldrh r0, [r1]
- bx lr
- .align 2, 0
-_0809A7B0: .4byte gUnknown_203988C
- thumb_func_end sub_809A798
-
- thumb_func_start sub_809A7B4
-sub_809A7B4: @ 809A7B4
- push {lr}
- lsls r0, 24
- lsls r1, 16
- ldr r2, _0809A7D8 @ =gUnknown_203988C
- lsrs r0, 21
- subs r0, 0x8
- adds r0, r2
- lsrs r1, 14
- ldr r0, [r0]
- adds r0, r1
- adds r0, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0809A7D8: .4byte gUnknown_203988C
- thumb_func_end sub_809A7B4
-
- thumb_func_start sub_809A7DC
-sub_809A7DC: @ 809A7DC
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 21
- ldr r1, _0809A7F4 @ =gUnknown_2039884
- adds r3, r0, r1
- movs r2, 0
- b _0809A816
- .align 2, 0
-_0809A7F4: .4byte gUnknown_2039884
-_0809A7F8:
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r4
- bne _0809A810
- adds r0, r1, 0x2
- bl GetBagItemQuantity
- lsls r0, 16
- lsrs r0, 16
- b _0809A81E
-_0809A810:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_0809A816:
- ldrb r0, [r3, 0x4]
- cmp r2, r0
- bcc _0809A7F8
- movs r0, 0
-_0809A81E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809A7DC
-
- thumb_func_start sub_809A824
-sub_809A824: @ 809A824
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _0809A894 @ =0xfea30000
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0xD
- bls _0809A85A
- movs r0, 0xB7
- lsls r0, 1
- cmp r5, r0
- beq _0809A85A
- adds r0, 0x2
- cmp r5, r0
- beq _0809A85A
- adds r0, 0x1
- cmp r5, r0
- beq _0809A85A
- adds r0, 0x3
- cmp r5, r0
- beq _0809A85A
- adds r0, 0x1
- cmp r5, r0
- beq _0809A85A
- adds r0, 0x1
- cmp r5, r0
- bne _0809A88C
-_0809A85A:
- ldr r0, _0809A898 @ =0x00000169
- cmp r5, r0
- bne _0809A86E
- ldr r0, _0809A89C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0x81
- lsls r0, 2
- cmp r1, r0
- bne _0809A88C
-_0809A86E:
- movs r0, 0x4
- bl Alloc
- adds r4, r0, 0
- strh r5, [r4]
- ldr r0, _0809A8A0 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- strb r0, [r4, 0x2]
- movs r0, 0x28
- adds r1, r4, 0
- bl sub_8113550
- adds r0, r4, 0
- bl Free
-_0809A88C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A894: .4byte 0xfea30000
-_0809A898: .4byte 0x00000169
-_0809A89C: .4byte gSaveBlock1Ptr
-_0809A8A0: .4byte gMapHeader
- thumb_func_end sub_809A824
-
- thumb_func_start SanitizeItemId
-SanitizeItemId: @ 809A8A4
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xBB
- lsls r0, 1
- cmp r1, r0
- bhi _0809A8B6
- adds r0, r1, 0
- b _0809A8B8
-_0809A8B6:
- movs r0, 0
-_0809A8B8:
- pop {r1}
- bx r1
- thumb_func_end SanitizeItemId
-
- thumb_func_start ItemId_GetItem
-ItemId_GetItem: @ 809A8BC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- ldr r1, _0809A8D8 @ =gUnknown_83DB028
- adds r0, r1
- pop {r1}
- bx r1
- .align 2, 0
-_0809A8D8: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetItem
-
- thumb_func_start itemid_get_number
-itemid_get_number: @ 809A8DC
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A8FC @ =gUnknown_83DB028
- 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
-_0809A8FC: .4byte gUnknown_83DB028
- thumb_func_end itemid_get_number
-
- thumb_func_start itemid_get_market_price
-itemid_get_market_price: @ 809A900
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A920 @ =gUnknown_83DB028
- 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
-_0809A920: .4byte gUnknown_83DB028
- thumb_func_end itemid_get_market_price
-
- thumb_func_start ItemId_GetHoldEffect
-ItemId_GetHoldEffect: @ 809A924
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A944 @ =gUnknown_83DB028
- 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
-_0809A944: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetHoldEffect
-
- thumb_func_start ItemId_GetHoldEffectParam
-ItemId_GetHoldEffectParam: @ 809A948
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A968 @ =gUnknown_83DB028
- 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
-_0809A968: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetHoldEffectParam
-
- thumb_func_start ItemId_GetDescription
-ItemId_GetDescription: @ 809A96C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A98C @ =gUnknown_83DB028
- 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
-_0809A98C: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetDescription
-
- thumb_func_start itemid_is_unique
-itemid_is_unique: @ 809A990
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A9B0 @ =gUnknown_83DB028
- 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
-_0809A9B0: .4byte gUnknown_83DB028
- thumb_func_end itemid_is_unique
-
- thumb_func_start itemid_get_x19
-itemid_get_x19: @ 809A9B4
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A9D4 @ =gUnknown_83DB028
- 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
-_0809A9D4: .4byte gUnknown_83DB028
- thumb_func_end itemid_get_x19
-
- thumb_func_start ItemId_GetPocket
-ItemId_GetPocket: @ 809A9D8
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809A9F8 @ =gUnknown_83DB028
- 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
-_0809A9F8: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetPocket
-
- thumb_func_start ItemId_GetType
-ItemId_GetType: @ 809A9FC
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809AA1C @ =gUnknown_83DB028
- 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
-_0809AA1C: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetType
-
- thumb_func_start ItemId_GetFieldFunc
-ItemId_GetFieldFunc: @ 809AA20
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809AA40 @ =gUnknown_83DB028
- 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
-_0809AA40: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetFieldFunc
-
- thumb_func_start ItemId_GetBattleUsage
-ItemId_GetBattleUsage: @ 809AA44
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809AA64 @ =gUnknown_83DB028
- 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
-_0809AA64: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetBattleUsage
-
- thumb_func_start ItemId_GetBattleFunc
-ItemId_GetBattleFunc: @ 809AA68
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809AA88 @ =gUnknown_83DB028
- 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
-_0809AA88: .4byte gUnknown_83DB028
- thumb_func_end ItemId_GetBattleFunc
-
- thumb_func_start ItemId_GetSecondaryId
-ItemId_GetSecondaryId: @ 809AA8C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0809AAAC @ =gUnknown_83DB028
- 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
-_0809AAAC: .4byte gUnknown_83DB028
- 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 58b74acf3..bdefc393f 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -138,8 +138,8 @@ _08107EB0: .4byte gUnknown_203AD10
_08107EB4: .4byte gUnknown_203ACFC
thumb_func_end sub_8107DB4
- thumb_func_start UseFameCheckerFromMenu
-UseFameCheckerFromMenu: @ 8107EB8
+ thumb_func_start ReturnToBagFromKeyItem
+ReturnToBagFromKeyItem: @ 8107EB8
push {lr}
ldr r2, _08107EC8 @ =sub_80568A8
movs r0, 0
@@ -149,7 +149,7 @@ UseFameCheckerFromMenu: @ 8107EB8
bx r0
.align 2, 0
_08107EC8: .4byte sub_80568A8
- thumb_func_end UseFameCheckerFromMenu
+ thumb_func_end ReturnToBagFromKeyItem
thumb_func_start sub_8107ECC
sub_8107ECC: @ 8107ECC
@@ -200,7 +200,7 @@ _08107F12:
lsrs r0, 24
cmp r0, 0x1
beq _08107F36
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -253,11 +253,11 @@ _08107F60:
.4byte _081080D8
.4byte _081080DE
_08107FB0:
- bl sub_80BF768
+ bl VblankHblankHandlerSetZero
bl clear_scheduled_bg_copies_to_vram
b _08108104
_08107FBA:
- bl remove_some_task
+ bl ScanlineEffect_Stop
b _08108104
_08107FC0:
bl FreeAllSpritePalettes
@@ -275,10 +275,10 @@ _08107FD8:
bl ResetSpriteData
b _08108104
_08107FDE:
- bl sub_80984D8
+ bl ResetItemMenuIconState
b _08108104
_08107FE4:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
beq _08107FF0
@@ -350,7 +350,7 @@ _0810806E:
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, _081080B0 @ =gUnknown_3005E70
+ ldr r0, _081080B0 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r1, r4, 0
@@ -375,7 +375,7 @@ _0810806E:
b _08108104
.align 2, 0
_081080AC: .4byte gUnknown_203ACFC
-_081080B0: .4byte gUnknown_3005E70
+_081080B0: .4byte gMultiuseListMenuTemplate
_081080B4: .4byte gTasks
_081080B8:
ldr r0, _081080C4 @ =gUnknown_203ACFC
@@ -400,13 +400,13 @@ _081080DE:
cmp r0, 0x3
bne _081080F4
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _081080FA
.align 2, 0
_081080F0: .4byte gUnknown_203ACFC
_081080F4:
movs r0, 0x9
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_081080FA:
ldr r2, _08108114 @ =gPaletteFade
ldrb r1, [r2, 0x8]
@@ -520,7 +520,7 @@ _081081CC: .4byte gUnknown_203AD1C
thumb_func_start sub_81081D0
sub_81081D0: @ 81081D0
push {r4,r5,lr}
- bl sub_80BF7C8
+ bl InitBgReg
ldr r5, _08108230 @ =gUnknown_203AD14
movs r4, 0x80
lsls r4, 4
@@ -687,7 +687,7 @@ _08108340:
.align 2, 0
_08108348: .4byte gUnknown_83D41F4
_0810834C:
- ldr r0, _08108360 @ =gUnknown_83D4240
+ ldr r0, _08108360 @ =gBagSwapSpriteSheet
_0810834E:
bl LoadCompressedObjectPic
_08108352:
@@ -698,10 +698,10 @@ _08108352:
strb r0, [r1, 0x10]
b _0810837C
.align 2, 0
-_08108360: .4byte gUnknown_83D4240
+_08108360: .4byte gBagSwapSpriteSheet
_08108364: .4byte gUnknown_203AD10
_08108368:
- ldr r0, _08108378 @ =gUnknown_83D4248
+ ldr r0, _08108378 @ =gBagSwapSpritePalette
bl LoadCompressedObjectPalette
ldr r1, [r4]
movs r0, 0
@@ -709,7 +709,7 @@ _08108368:
movs r0, 0x1
b _0810837E
.align 2, 0
-_08108378: .4byte gUnknown_83D4248
+_08108378: .4byte gBagSwapSpritePalette
_0810837C:
movs r0, 0
_0810837E:
@@ -817,7 +817,7 @@ sub_810842C: @ 810842C
lsls r0, 24
lsrs r7, r0, 24
lsls r1, r7, 3
- ldr r0, _0810853C @ =gUnknown_203988C
+ ldr r0, _0810853C @ =gBagPockets
adds r1, r0
mov r8, r1
movs r6, 0
@@ -881,7 +881,7 @@ _0810848C:
adds r0, r4
str r0, [r1]
str r6, [r1, 0x4]
- ldr r3, _08108554 @ =gUnknown_3005E70
+ ldr r3, _08108554 @ =gMultiuseListMenuTemplate
str r2, [r3]
ldr r0, _08108540 @ =gUnknown_203AD10
ldr r2, [r0]
@@ -946,13 +946,13 @@ _0810848C:
pop {r0}
bx r0
.align 2, 0
-_0810853C: .4byte gUnknown_203988C
+_0810853C: .4byte gBagPockets
_08108540: .4byte gUnknown_203AD10
_08108544: .4byte gUnknown_203AD1C
_08108548: .4byte gUnknown_203AD18
_0810854C: .4byte gUnknown_8452F60
_08108550: .4byte gFameCheckerText_Cancel
-_08108554: .4byte gUnknown_3005E70
+_08108554: .4byte gMultiuseListMenuTemplate
_08108558: .4byte sub_81085A4
_0810855C: .4byte sub_8108654
thumb_func_end sub_810842C
@@ -981,7 +981,7 @@ _08108584:
bl StringCopy
_0810858C:
adds r0, r5, 0
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringAppend
@@ -1014,7 +1014,7 @@ _081085BA:
lsrs r1, 30
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
ldr r2, [r4]
ldr r0, _08108608 @ =gUnknown_203ACFC
ldrh r1, [r0, 0x6]
@@ -1029,14 +1029,14 @@ _081085BA:
lsrs r0, 24
lsls r1, r5, 16
lsrs r1, 16
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
ldrb r1, [r1, 0x5]
lsls r1, 26
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
b _08108618
.align 2, 0
_08108604: .4byte gUnknown_203AD10
@@ -1046,7 +1046,7 @@ _0810860C:
ldrb r1, [r2, 0x5]
lsls r1, 26
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
_08108618:
ldr r4, _08108650 @ =gUnknown_203AD10
ldr r3, [r4]
@@ -1129,7 +1129,7 @@ _08108690:
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r7, r0, 16
ldrb r0, [r5, 0x6]
@@ -1137,7 +1137,7 @@ _08108690:
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
ldrh r0, [r5, 0x6]
@@ -1155,7 +1155,7 @@ _08108690:
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _08108724 @ =gStringVar4
- ldr r1, _08108728 @ =gUnknown_84162B9
+ ldr r1, _08108728 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r6, [sp]
@@ -1176,7 +1176,7 @@ _08108718: .4byte gUnknown_203AD10
_0810871C: .4byte gUnknown_203ACFC
_08108720: .4byte gStringVar1
_08108724: .4byte gStringVar4
-_08108728: .4byte gUnknown_84162B9
+_08108728: .4byte gText_TimesStrVar1
_0810872C:
ldr r0, _08108760 @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -1317,7 +1317,7 @@ sub_8108818: @ 8108818
lsrs r0, 24
lsls r1, r2, 16
lsrs r1, 16
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetDescription
@@ -1383,7 +1383,7 @@ sub_8108888: @ 8108888
movs r1, 0xA0
movs r2, 0x8
movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r4]
strb r0, [r1, 0x8]
add sp, 0x10
@@ -1439,7 +1439,7 @@ sub_8108908: @ 8108908
movs r1, 0x98
movs r2, 0x48
movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r4]
strb r0, [r1, 0x8]
add sp, 0x10
@@ -1469,7 +1469,7 @@ sub_8108940: @ 8108940
movs r1, 0xD4
movs r2, 0x78
movs r3, 0x98
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r4]
strb r0, [r1, 0x8]
add sp, 0x10
@@ -1739,8 +1739,8 @@ _08108B48: .4byte gUnknown_203AD18
_08108B4C: .4byte gUnknown_203AD1C
thumb_func_end sub_8108B04
- thumb_func_start sub_8108B50
-sub_8108B50: @ 8108B50
+ thumb_func_start ItemMenu_StartFadeToExitCallback
+ItemMenu_StartFadeToExitCallback: @ 8108B50
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -1768,7 +1768,7 @@ sub_8108B50: @ 8108B50
.align 2, 0
_08108B84: .4byte gTasks
_08108B88: .4byte sub_8108B8C
- thumb_func_end sub_8108B50
+ thumb_func_end ItemMenu_StartFadeToExitCallback
thumb_func_start sub_8108B8C
sub_8108B8C: @ 8108B8C
@@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C
adds r3, r4, 0
adds r3, 0x8
adds r2, r3
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _08108BF0 @ =gUnknown_203AD10
ldr r0, [r0]
ldr r0, [r0]
@@ -1999,8 +1999,8 @@ _08108D5A:
bx r0
thumb_func_end sub_8108CFC
- thumb_func_start sub_8108D60
-sub_8108D60: @ 8108D60
+ thumb_func_start ItemMenu_MoveItemSlotToNewPositionInArray
+ItemMenu_MoveItemSlotToNewPositionInArray: @ 8108D60
push {r4-r6,lr}
adds r4, r0, 0
adds r3, r2, 0
@@ -2057,7 +2057,7 @@ _08108DC0:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_8108D60
+ thumb_func_end ItemMenu_MoveItemSlotToNewPositionInArray
thumb_func_start sub_8108DC8
sub_8108DC8: @ 8108DC8
@@ -2065,11 +2065,11 @@ sub_8108DC8: @ 8108DC8
lsls r0, 24
lsrs r5, r0, 24
lsls r1, r5, 3
- ldr r0, _08108E3C @ =gUnknown_203988C
+ ldr r0, _08108E3C @ =gBagPockets
adds r4, r1, r0
ldr r0, [r4]
ldrb r1, [r4, 0x4]
- bl sub_809A584
+ bl BagPocketCompaction
ldr r3, _08108E40 @ =gUnknown_203AD10
ldr r0, [r3]
adds r0, 0xA
@@ -2120,7 +2120,7 @@ _08108E1C:
strb r1, [r0]
b _08108E4C
.align 2, 0
-_08108E3C: .4byte gUnknown_203988C
+_08108E3C: .4byte gBagPockets
_08108E40: .4byte gUnknown_203AD10
_08108E44:
adds r0, r1, 0
@@ -2150,8 +2150,8 @@ _08108E58:
bx r0
thumb_func_end sub_8108E54
- thumb_func_start sub_8108E70
-sub_8108E70: @ 8108E70
+ thumb_func_start DisplayItemMessageInBag
+DisplayItemMessageInBag: @ 8108E70
push {r4-r6,lr}
mov r6, r9
mov r5, r8
@@ -2177,7 +2177,7 @@ sub_8108E70: @ 8108E70
strh r0, [r4, 0x14]
movs r1, 0x11
bl FillWindowPixelBuffer
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x14]
@@ -2202,17 +2202,17 @@ sub_8108E70: @ 8108E70
bx r0
.align 2, 0
_08108EDC: .4byte gTasks+0x8
- thumb_func_end sub_8108E70
+ thumb_func_end DisplayItemMessageInBag
- thumb_func_start sub_8108EE0
-sub_8108EE0: @ 8108EE0
+ thumb_func_start ItemMenu_SetExitCallback
+ItemMenu_SetExitCallback: @ 8108EE0
ldr r1, _08108EE8 @ =gUnknown_203AD10
ldr r1, [r1]
str r0, [r1]
bx lr
.align 2, 0
_08108EE8: .4byte gUnknown_203AD10
- thumb_func_end sub_8108EE0
+ thumb_func_end ItemMenu_SetExitCallback
thumb_func_start sub_8108EEC
sub_8108EEC: @ 8108EEC
@@ -2313,7 +2313,7 @@ _08108FA0:
adds r4, 0x2
mov r1, sp
adds r2, r4, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
mov r0, sp
ldrh r1, [r0]
ldrh r0, [r4]
@@ -2353,7 +2353,7 @@ _08108FE4:
adds r3, r5, 0
adds r3, 0x8
adds r2, r3
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
movs r0, 0x2
negs r0, r0
cmp r4, r0
@@ -2376,12 +2376,12 @@ _08109018:
adds r0, r6
lsls r0, 3
adds r0, r1
- ldr r1, _08109040 @ =sub_8108B50
+ ldr r1, _08109040 @ =ItemMenu_StartFadeToExitCallback
b _081090C4
.align 2, 0
_08109038: .4byte gSpecialVar_ItemId
_0810903C: .4byte gTasks
-_08109040: .4byte sub_8108B50
+_08109040: .4byte ItemMenu_StartFadeToExitCallback
_08109044:
movs r0, 0x5
bl PlaySE
@@ -2402,13 +2402,13 @@ _08109044:
adds r0, r6
lsls r0, 3
adds r0, r1
- ldr r1, _08109080 @ =sub_8108B50
+ ldr r1, _08109080 @ =ItemMenu_StartFadeToExitCallback
b _081090C4
.align 2, 0
_08109074: .4byte gUnknown_203AD10
_08109078: .4byte gSpecialVar_ItemId
_0810907C: .4byte gTasks
-_08109080: .4byte sub_8108B50
+_08109080: .4byte ItemMenu_StartFadeToExitCallback
_08109084:
bl sub_8108978
ldrb r0, [r7]
@@ -2422,14 +2422,14 @@ _08109084:
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
strh r0, [r7, 0x4]
ldrb r0, [r5, 0x6]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _081090D0 @ =gSpecialVar_ItemId
strh r0, [r1]
ldr r1, _081090D4 @ =gTasks
@@ -2514,7 +2514,7 @@ sub_8109140: @ 8109140
movs r1, 0
movs r2, 0xE
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x8
@@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0
adds r1, r2, r1
adds r3, 0x8
adds r2, r3
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, _08109290 @ =gUnknown_203AD10
@@ -2627,7 +2627,7 @@ sub_81091D0: @ 81091D0
lsrs r1, 30
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
bl sub_8108978
_08109242:
movs r0, 0x12
@@ -2677,7 +2677,7 @@ sub_8109298: @ 8109298
lsls r0, 3
ldr r1, _081092DC @ =gTasks+0x8
adds r5, r0, r1
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _08109314
@@ -2773,7 +2773,7 @@ _08109358:
bl sub_81087EC
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _081093B4 @ =gUnknown_3005E70
+ ldr r0, _081093B4 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r1, r4, 0
@@ -2803,7 +2803,7 @@ _081093AA:
bx r0
.align 2, 0
_081093B0: .4byte gUnknown_203ACFC
-_081093B4: .4byte gUnknown_3005E70
+_081093B4: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_8109298
thumb_func_start sub_81093B8
@@ -2830,7 +2830,7 @@ sub_81093B8: @ 81093B8
mov r2, sp
adds r2, 0x16
add r1, sp, 0x14
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
mov r2, r8
ldrb r0, [r2]
movs r1, 0x10
@@ -2850,15 +2850,15 @@ sub_81093B8: @ 81093B8
lsrs r0, 24
mov r2, r8
ldrh r1, [r2, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
ldr r4, _081094A4 @ =gStringVar4
- ldr r1, _081094A8 @ =gUnknown_841633F
+ ldr r1, _081094A8 @ =gOtherText_WhereShouldTheStrVar1BePlaced
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
@@ -2910,7 +2910,7 @@ _08109498: .4byte gUnknown_203AD10
_0810949C: .4byte gStringVar1
_081094A0: .4byte gUnknown_203ACFC
_081094A4: .4byte gStringVar4
-_081094A8: .4byte gUnknown_841633F
+_081094A8: .4byte gOtherText_WhereShouldTheStrVar1BePlaced
_081094AC: .4byte sub_81094B0
thumb_func_end sub_81093B8
@@ -2942,7 +2942,7 @@ sub_81094B0: @ 81094B0
adds r1, r2, r1
adds r3, 0x8
adds r2, r3
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
ldrb r0, [r4]
bl ListMenuGetYCoordForPrintingArrowCursor
adds r1, r0, 0
@@ -2967,7 +2967,7 @@ sub_81094B0: @ 81094B0
adds r4, 0x2
mov r1, sp
adds r2, r4, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
mov r0, sp
ldrh r1, [r0]
ldrh r0, [r4]
@@ -3001,7 +3001,7 @@ _08109558:
adds r4, 0x2
mov r1, sp
adds r2, r4, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
mov r0, sp
ldrh r1, [r0]
ldrh r0, [r4]
@@ -3063,7 +3063,7 @@ _081095DA:
.align 2, 0
_081095E4: .4byte gTasks+0x8
_081095E8:
- ldr r1, _0810966C @ =gUnknown_203988C
+ ldr r1, _0810966C @ =gBagPockets
ldr r4, _08109670 @ =gUnknown_203ACFC
ldrh r0, [r4, 0x6]
lsls r0, 3
@@ -3071,7 +3071,7 @@ _081095E8:
ldr r0, [r0]
adds r1, r2, 0
adds r2, r5, 0
- bl sub_8108D60
+ bl ItemMenu_MoveItemSlotToNewPositionInArray
ldrb r0, [r6]
ldrh r2, [r4, 0x6]
lsls r2, 1
@@ -3082,7 +3082,7 @@ _081095E8:
adds r7, r4, 0
adds r7, 0x8
adds r2, r7
- bl sub_810713C
+ bl DestroyListMenu
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r5
@@ -3096,7 +3096,7 @@ _081095E8:
_08109628:
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _08109674 @ =gUnknown_3005E70
+ ldr r0, _08109674 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
mov r3, r8
@@ -3125,9 +3125,9 @@ _0810965C:
pop {r0}
bx r0
.align 2, 0
-_0810966C: .4byte gUnknown_203988C
+_0810966C: .4byte gBagPockets
_08109670: .4byte gUnknown_203ACFC
-_08109674: .4byte gUnknown_3005E70
+_08109674: .4byte gMultiuseListMenuTemplate
_08109678: .4byte sub_8108F0C
thumb_func_end sub_81095AC
@@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C
adds r7, r5, 0
adds r7, 0x8
adds r2, r7
- bl sub_810713C
+ bl DestroyListMenu
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r4
@@ -3174,7 +3174,7 @@ sub_810967C: @ 810967C
_081096CA:
ldrb r0, [r5, 0x6]
bl sub_810842C
- ldr r0, _08109714 @ =gUnknown_3005E70
+ ldr r0, _08109714 @ =gMultiuseListMenuTemplate
ldrh r2, [r5, 0x6]
lsls r2, 1
mov r3, r9
@@ -3204,7 +3204,7 @@ _081096CA:
.align 2, 0
_0810970C: .4byte gTasks+0x8
_08109710: .4byte gUnknown_203ACFC
-_08109714: .4byte gUnknown_3005E70
+_08109714: .4byte gMultiuseListMenuTemplate
_08109718: .4byte sub_8108F0C
thumb_func_end sub_810967C
@@ -3232,12 +3232,12 @@ sub_810971C: @ 810971C
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, _081097D8 @ =gStringVar1
mov r10, r1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _081097DC @ =gStringVar4
mov r9, r0
adds r1, r6, 0
@@ -3267,7 +3267,7 @@ sub_810971C: @ 810971C
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _081097E0 @ =gUnknown_84162B9
+ ldr r1, _081097E0 @ =gText_TimesStrVar1
mov r0, r9
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3295,7 +3295,7 @@ sub_810971C: @ 810971C
_081097D4: .4byte gUnknown_203ACFC
_081097D8: .4byte gStringVar1
_081097DC: .4byte gStringVar4
-_081097E0: .4byte gUnknown_84162B9
+_081097E0: .4byte gText_TimesStrVar1
thumb_func_end sub_810971C
thumb_func_start sub_81097E4
@@ -3324,7 +3324,7 @@ sub_81097E4: @ 81097E4
adds r3, r5, 0
bl ConvertIntToDecimalStringN
ldr r4, _0810984C @ =gStringVar4
- ldr r1, _08109850 @ =gUnknown_84162B9
+ ldr r1, _08109850 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3347,7 +3347,7 @@ sub_81097E4: @ 81097E4
.align 2, 0
_08109848: .4byte gStringVar1
_0810984C: .4byte gStringVar4
-_08109850: .4byte gUnknown_84162B9
+_08109850: .4byte gText_TimesStrVar1
thumb_func_end sub_81097E4
thumb_func_start sub_8109854
@@ -3464,7 +3464,7 @@ _08109930: .4byte gUnknown_203AD24
_08109934: .4byte gUnknown_8452F30
_08109938: .4byte gUnknown_203AD28
_0810993C:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3715,7 +3715,7 @@ _08109AD4:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x6
movs r1, 0
bl sub_810B9DC
@@ -3725,9 +3725,9 @@ _08109AD4:
ldr r0, _08109BA8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _08109BAC @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _08109BB0 @ =gStringVar4
- ldr r1, _08109BB4 @ =gUnknown_84162FF
+ ldr r1, _08109BB4 @ =gOtherText_StrVar1
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0x2
@@ -3754,7 +3754,7 @@ _08109BA4: .4byte gUnknown_8452EB8
_08109BA8: .4byte gSpecialVar_ItemId
_08109BAC: .4byte gStringVar1
_08109BB0: .4byte gStringVar4
-_08109BB4: .4byte gUnknown_84162FF
+_08109BB4: .4byte gOtherText_StrVar1
thumb_func_end sub_8109890
thumb_func_start sub_8109BB8
@@ -4121,11 +4121,11 @@ sub_8109EA8: @ 8109EA8
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, _08109F30 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _08109F34 @ =gStringVar2
movs r2, 0x10
ldrsh r1, [r6, r2]
@@ -4200,7 +4200,7 @@ _08109F6E:
ldr r0, _08109FF4 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldrh r1, [r7, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x6
bl sub_810BA3C
ldrb r0, [r7]
@@ -4213,14 +4213,14 @@ _08109F6E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
bl sub_81089F4
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _08109FFC @ =gUnknown_3005E70
+ ldr r0, _08109FFC @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -4251,7 +4251,7 @@ _08109FEC: .4byte gTasks+0x8
_08109FF0: .4byte gMain
_08109FF4: .4byte gSpecialVar_ItemId
_08109FF8: .4byte gUnknown_203ACFC
-_08109FFC: .4byte gUnknown_3005E70
+_08109FFC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_8109F44
thumb_func_start sub_810A000
@@ -4273,7 +4273,7 @@ sub_810A000: @ 810A000
lsls r0, 24
lsrs r0, 24
ldrh r1, [r7, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _0810A048 @ =gSaveBlock1Ptr
@@ -4304,10 +4304,10 @@ _0810A052:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810A0A4 @ =gUnknown_3005E70
+ ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -4330,7 +4330,7 @@ _0810A052:
bx r0
.align 2, 0
_0810A0A0: .4byte gUnknown_203ACFC
-_0810A0A4: .4byte gUnknown_3005E70
+_0810A0A4: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810A000
thumb_func_start sub_810A0A8
@@ -4353,7 +4353,7 @@ sub_810A0A8: @ 810A0A8
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r5, r0, 16
movs r0, 0xA
@@ -4376,7 +4376,7 @@ sub_810A0A8: @ 810A0A8
ldr r3, _0810A11C @ =sub_810A1D0
adds r0, r4, 0
movs r1, 0x2
- bl sub_8108E70
+ bl DisplayItemMessageInBag
b _0810A166
.align 2, 0
_0810A110: .4byte gTasks+0x8
@@ -4404,13 +4404,13 @@ _0810A13E:
mov r0, r8
subs r0, 0x8
adds r0, r6, r0
- ldr r1, _0810A15C @ =sub_8108B50
+ ldr r1, _0810A15C @ =ItemMenu_StartFadeToExitCallback
str r1, [r0]
b _0810A166
.align 2, 0
_0810A154: .4byte gUnknown_203AD10
_0810A158: .4byte sub_8126EDC
-_0810A15C: .4byte sub_8108B50
+_0810A15C: .4byte ItemMenu_StartFadeToExitCallback
_0810A160:
adds r0, r7, 0
bl sub_810A18C
@@ -4427,14 +4427,14 @@ sub_810A170: @ 810A170
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _0810A184 @ =gUnknown_841632A
+ ldr r2, _0810A184 @ =gText_ThereIsNoPokemon
ldr r3, _0810A188 @ =sub_810A1D0
movs r1, 0x2
- bl sub_8108E70
+ bl DisplayItemMessageInBag
pop {r0}
bx r0
.align 2, 0
-_0810A184: .4byte gUnknown_841632A
+_0810A184: .4byte gText_ThereIsNoPokemon
_0810A188: .4byte sub_810A1D0
thumb_func_end sub_810A170
@@ -4447,16 +4447,16 @@ sub_810A18C: @ 810A18C
ldr r0, _0810A1BC @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0810A1C0 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r5, _0810A1C4 @ =gStringVar4
- ldr r1, _0810A1C8 @ =gUnknown_841635E
+ ldr r1, _0810A1C8 @ =gText_ItemCantBeHeld
adds r0, r5, 0
bl StringExpandPlaceholders
ldr r3, _0810A1CC @ =sub_810A1D0
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
- bl sub_8108E70
+ bl DisplayItemMessageInBag
pop {r4,r5}
pop {r0}
bx r0
@@ -4464,7 +4464,7 @@ sub_810A18C: @ 810A18C
_0810A1BC: .4byte gSpecialVar_ItemId
_0810A1C0: .4byte gStringVar1
_0810A1C4: .4byte gStringVar4
-_0810A1C8: .4byte gUnknown_841635E
+_0810A1C8: .4byte gText_ItemCantBeHeld
_0810A1CC: .4byte sub_810A1D0
thumb_func_end sub_810A18C
@@ -4519,14 +4519,14 @@ sub_810A1F8: @ 810A1F8
adds r3, r4
mov r9, r3
add r2, r9
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
bl sub_81089F4
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810A284 @ =gUnknown_3005E70
+ ldr r0, _0810A284 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r6, r2, r6
@@ -4553,7 +4553,7 @@ sub_810A1F8: @ 810A1F8
.align 2, 0
_0810A27C: .4byte gTasks+0x8
_0810A280: .4byte gUnknown_203ACFC
-_0810A284: .4byte gUnknown_3005E70
+_0810A284: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810A1F8
thumb_func_start sub_810A288
@@ -4573,7 +4573,7 @@ sub_810A288: @ 810A288
adds r6, 0x2
mov r1, sp
adds r2, r6, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
mov r0, sp
ldrh r0, [r0]
ldrh r1, [r6]
@@ -4684,7 +4684,7 @@ sub_810A370: @ 810A370
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
@@ -4697,7 +4697,7 @@ sub_810A370: @ 810A370
ldr r3, _0810A3C8 @ =sub_810A1D0
adds r0, r5, 0
movs r1, 0x2
- bl sub_8108E70
+ bl DisplayItemMessageInBag
b _0810A426
.align 2, 0
_0810A3BC: .4byte gTasks+0x8
@@ -4719,9 +4719,9 @@ _0810A3DC:
bne _0810A3F8
ldr r0, _0810A3F4 @ =sub_810A448
_0810A3E4:
- bl sub_8108EE0
+ bl ItemMenu_SetExitCallback
adds r0, r5, 0
- bl sub_8108B50
+ bl ItemMenu_StartFadeToExitCallback
b _0810A426
.align 2, 0
_0810A3F0: .4byte 0x0000016d
@@ -4740,11 +4740,11 @@ _0810A3F8:
mov r0, r9
subs r0, 0x8
adds r0, r7, r0
- ldr r1, _0810A41C @ =sub_8108B50
+ ldr r1, _0810A41C @ =ItemMenu_StartFadeToExitCallback
str r1, [r0]
b _0810A426
.align 2, 0
-_0810A41C: .4byte sub_8108B50
+_0810A41C: .4byte ItemMenu_StartFadeToExitCallback
_0810A420:
adds r0, r5, 0
bl sub_810A18C
@@ -4763,7 +4763,7 @@ sub_810A434: @ 810A434
ldr r1, _0810A444 @ =sub_810A45C
movs r0, 0x1
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -4776,7 +4776,7 @@ sub_810A448: @ 810A448
ldr r1, _0810A458 @ =sub_810A45C
movs r0, 0x1
movs r2, 0
- bl sub_813CD50
+ bl InitBerryPouch
pop {r0}
bx r0
.align 2, 0
@@ -4812,7 +4812,7 @@ sub_810A468: @ 810A468
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
@@ -4826,7 +4826,7 @@ sub_810A468: @ 810A468
ldr r3, _0810A4C0 @ =sub_810A1D0
adds r0, r5, 0
movs r1, 0x2
- bl sub_8108E70
+ bl DisplayItemMessageInBag
b _0810A51E
.align 2, 0
_0810A4B4: .4byte gTasks+0x8
@@ -4835,7 +4835,7 @@ _0810A4BC: .4byte gUnknown_841630F
_0810A4C0: .4byte sub_810A1D0
_0810A4C4:
movs r0, 0xB6
- lsls r0, 1
+ lsls r0, 1 @ ITEM_TM_CASE
cmp r4, r0
bne _0810A4D4
ldr r0, _0810A4D0 @ =sub_810A52C
@@ -4843,14 +4843,14 @@ _0810A4C4:
.align 2, 0
_0810A4D0: .4byte sub_810A52C
_0810A4D4:
- ldr r0, _0810A4E8 @ =0x0000016d
+ ldr r0, _0810A4E8 @ =0x0000016d @ ITEM_BERRY_POUCH
cmp r4, r0
bne _0810A4F0
ldr r0, _0810A4EC @ =sub_810A540
_0810A4DC:
- bl sub_8108EE0
+ bl ItemMenu_SetExitCallback
adds r0, r5, 0
- bl sub_8108B50
+ bl ItemMenu_StartFadeToExitCallback
b _0810A51E
.align 2, 0
_0810A4E8: .4byte 0x0000016d
@@ -4869,11 +4869,11 @@ _0810A4F0:
mov r0, r9
subs r0, 0x8
adds r0, r7, r0
- ldr r1, _0810A514 @ =sub_8108B50
+ ldr r1, _0810A514 @ =ItemMenu_StartFadeToExitCallback
str r1, [r0]
b _0810A51E
.align 2, 0
-_0810A514: .4byte sub_8108B50
+_0810A514: .4byte ItemMenu_StartFadeToExitCallback
_0810A518:
adds r0, r5, 0
bl sub_810A18C
@@ -4892,7 +4892,7 @@ sub_810A52C: @ 810A52C
ldr r1, _0810A53C @ =sub_810A554
movs r0, 0x3
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -4905,7 +4905,7 @@ sub_810A540: @ 810A540
ldr r1, _0810A550 @ =sub_810A554
movs r0, 0x3
movs r2, 0
- bl sub_813CD50
+ bl InitBerryPouch
pop {r0}
bx r0
.align 2, 0
@@ -4954,9 +4954,9 @@ _0810A598:
bne _0810A5B4
ldr r0, _0810A5B0 @ =sub_810A668
_0810A5A0:
- bl sub_8108EE0
+ bl ItemMenu_SetExitCallback
adds r0, r5, 0
- bl sub_8108B50
+ bl ItemMenu_StartFadeToExitCallback
b _0810A63E
.align 2, 0
_0810A5AC: .4byte 0x0000016d
@@ -4969,9 +4969,9 @@ _0810A5B4:
bne _0810A5F8
ldrh r0, [r6]
ldr r1, _0810A5E8 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0810A5EC @ =gStringVar4
- ldr r1, _0810A5F0 @ =gUnknown_84168F1
+ ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -4981,12 +4981,12 @@ _0810A5B4:
ldr r3, _0810A5F4 @ =sub_810A1F8
adds r0, r5, 0
adds r2, r4, 0
- bl sub_8108E70
+ bl DisplayItemMessageInBag
b _0810A63E
.align 2, 0
_0810A5E8: .4byte gStringVar1
_0810A5EC: .4byte gStringVar4
-_0810A5F0: .4byte gUnknown_84168F1
+_0810A5F0: .4byte gText_OhNoICantBuyThat
_0810A5F4: .4byte sub_810A1F8
_0810A5F8:
movs r0, 0x1
@@ -5007,9 +5007,9 @@ _0810A610:
_0810A618:
ldrh r0, [r6]
ldr r1, _0810A644 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _0810A648 @ =gStringVar4
- ldr r1, _0810A64C @ =gUnknown_8416911
+ ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -5019,7 +5019,7 @@ _0810A618:
ldr r3, _0810A650 @ =sub_810A770
adds r0, r7, 0
adds r2, r4, 0
- bl sub_8108E70
+ bl DisplayItemMessageInBag
_0810A63E:
pop {r4-r7}
pop {r0}
@@ -5027,7 +5027,7 @@ _0810A63E:
.align 2, 0
_0810A644: .4byte gStringVar1
_0810A648: .4byte gStringVar4
-_0810A64C: .4byte gUnknown_8416911
+_0810A64C: .4byte gText_HowManyWouldYouLikeToSell
_0810A650: .4byte sub_810A770
thumb_func_end sub_810A568
@@ -5037,7 +5037,7 @@ sub_810A654: @ 810A654
ldr r1, _0810A664 @ =sub_810A67C
movs r0, 0x2
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -5050,7 +5050,7 @@ sub_810A668: @ 810A668
ldr r1, _0810A678 @ =sub_810A67C
movs r0, 0x2
movs r2, 0
- bl sub_813CD50
+ bl InitBerryPouch
pop {r0}
bx r0
.align 2, 0
@@ -5060,14 +5060,14 @@ _0810A678: .4byte sub_810A67C
thumb_func_start sub_810A67C
sub_810A67C: @ 810A67C
push {lr}
- ldr r2, _0810A68C @ =c2_exit_to_overworld_2_switch
+ ldr r2, _0810A68C @ =CB2_ReturnToField
movs r0, 0x2
movs r1, 0x3
bl sub_8107DB4
pop {r0}
bx r0
.align 2, 0
-_0810A68C: .4byte c2_exit_to_overworld_2_switch
+_0810A68C: .4byte CB2_ReturnToField
thumb_func_end sub_810A67C
thumb_func_start sub_810A690
@@ -5088,7 +5088,7 @@ sub_810A690: @ 810A690
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5102,7 +5102,7 @@ sub_810A690: @ 810A690
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0810A700 @ =gStringVar4
- ldr r1, _0810A704 @ =gUnknown_8416936
+ ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -5112,7 +5112,7 @@ sub_810A690: @ 810A690
ldr r3, _0810A708 @ =sub_810A70C
adds r0, r5, 0
adds r2, r4, 0
- bl sub_8108E70
+ bl DisplayItemMessageInBag
pop {r4-r6}
pop {r0}
bx r0
@@ -5121,7 +5121,7 @@ _0810A6F4: .4byte gTasks+0x8
_0810A6F8: .4byte gStringVar3
_0810A6FC: .4byte gUnknown_203ACFC
_0810A700: .4byte gStringVar4
-_0810A704: .4byte gUnknown_8416936
+_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
_0810A708: .4byte sub_810A70C
thumb_func_end sub_810A690
@@ -5202,7 +5202,7 @@ sub_810A770: @ 810A770
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r6, _0810A824 @ =gStringVar4
- ldr r1, _0810A828 @ =gUnknown_84162B9
+ ldr r1, _0810A828 @ =gText_TimesStrVar1
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -5226,7 +5226,7 @@ sub_810A770: @ 810A770
lsrs r0, 24
mov r3, r9
ldrh r1, [r3, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5256,7 +5256,7 @@ sub_810A770: @ 810A770
_0810A81C: .4byte gTasks+0x8
_0810A820: .4byte gStringVar1
_0810A824: .4byte gStringVar4
-_0810A828: .4byte gUnknown_84162B9
+_0810A828: .4byte gText_TimesStrVar1
_0810A82C: .4byte gUnknown_203ACFC
_0810A830: .4byte sub_810A85C
thumb_func_end sub_810A770
@@ -5311,7 +5311,7 @@ sub_810A85C: @ 810A85C
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5397,7 +5397,7 @@ sub_810A940: @ 810A940
ldr r0, _0810A9B8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0810A9BC @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r6, _0810A9C0 @ =gStringVar3
ldr r0, _0810A9C4 @ =gUnknown_203ACFC
ldrb r0, [r0, 0x6]
@@ -5405,7 +5405,7 @@ sub_810A940: @ 810A940
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5419,14 +5419,14 @@ sub_810A940: @ 810A940
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0810A9C8 @ =gStringVar4
- ldr r1, _0810A9CC @ =gUnknown_8416959
+ ldr r1, _0810A9CC @ =gText_TurnedOverItemsWorthYen
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r3, _0810A9D0 @ =sub_810A9D4
adds r0, r5, 0
movs r1, 0x2
adds r2, r4, 0
- bl sub_8108E70
+ bl DisplayItemMessageInBag
pop {r4-r6}
pop {r0}
bx r0
@@ -5437,7 +5437,7 @@ _0810A9BC: .4byte gStringVar1
_0810A9C0: .4byte gStringVar3
_0810A9C4: .4byte gUnknown_203ACFC
_0810A9C8: .4byte gStringVar4
-_0810A9CC: .4byte gUnknown_8416959
+_0810A9CC: .4byte gText_TurnedOverItemsWorthYen
_0810A9D0: .4byte sub_810A9D4
thumb_func_end sub_810A940
@@ -5464,7 +5464,7 @@ sub_810A9D4: @ 810A9D4
ldrh r0, [r5]
mov r2, r8
ldrh r1, [r2, 0x10]
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r3, _0810AAE0 @ =gSaveBlock1Ptr
ldr r4, [r3]
movs r7, 0xA4
@@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4
adds r3, r4
mov r9, r3
add r2, r9
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -5512,7 +5512,7 @@ sub_810A9D4: @ 810A9D4
strb r0, [r2, 0x5]
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810AAEC @ =gUnknown_3005E70
+ ldr r0, _0810AAEC @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -5563,7 +5563,7 @@ _0810AADC: .4byte gSpecialVar_ItemId
_0810AAE0: .4byte gSaveBlock1Ptr
_0810AAE4: .4byte gUnknown_203ACFC
_0810AAE8: .4byte gUnknown_203AD10
-_0810AAEC: .4byte gUnknown_3005E70
+_0810AAEC: .4byte gMultiuseListMenuTemplate
_0810AAF0: .4byte sub_810AAF4
thumb_func_end sub_810A9D4
@@ -5744,7 +5744,7 @@ sub_810AC40: @ 810AC40
ldr r5, _0810ACD0 @ =gSpecialVar_ItemId
ldrh r0, [r5]
ldrh r1, [r7, 0x10]
- bl sub_809A3C8
+ bl AddPCItem
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
@@ -5753,10 +5753,10 @@ sub_810AC40: @ 810AC40
ldr r3, _0810ACD4 @ =0x0000ffff
movs r0, 0x1C
movs r1, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldrh r0, [r5]
ldr r1, _0810ACD8 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _0810ACDC @ =gStringVar2
movs r2, 0x10
ldrsh r1, [r7, r2]
@@ -5803,7 +5803,7 @@ _0810ACEC:
ldr r3, _0810AD0C @ =sub_810A1D0
adds r0, r4, 0
movs r1, 0x2
- bl sub_8108E70
+ bl DisplayItemMessageInBag
_0810ACF8:
add sp, 0x14
pop {r3,r4}
@@ -5839,7 +5839,7 @@ _0810AD1E:
cmp r0, 0
beq _0810AD98
movs r1, 0x1
- bl sub_8099F40
+ bl CheckBagHasItem
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
@@ -6120,10 +6120,10 @@ sub_810AF74: @ 810AF74
bl sub_810ADD8
movs r0, 0xD
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x4
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldr r2, _0810AF98 @ =sub_8030AEC
movs r0, 0x6
movs r1, 0
@@ -6212,7 +6212,7 @@ _0810B01C:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6317,36 +6317,36 @@ sub_810B108: @ 810B108
bl sub_810ADD8
movs r0, 0xD
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xE
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xB7
lsls r0, 1
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0xB6
lsls r0, 1
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x4
movs r1, 0x5
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x3
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
movs r0, 0x8
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
cmp r4, 0x7
beq _0810B160
cmp r4, 0x8
beq _0810B16C
- ldr r2, _0810B15C @ =sub_815ABFC
+ ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV
adds r0, r4, 0
b _0810B170
.align 2, 0
-_0810B15C: .4byte sub_815ABFC
+_0810B15C: .4byte CB2_ReturnToTeachyTV
_0810B160:
ldr r2, _0810B168 @ =sub_8030AEC
movs r0, 0x7
@@ -6383,10 +6383,10 @@ sub_810B180: @ 810B180
_0810B198: .4byte gMain
_0810B19C:
bl sub_810AECC
- bl sub_815AC20
+ bl SetTeachyTvControllerModeToResume
ldr r0, _0810B1C4 @ =gUnknown_203AD10
ldr r1, [r0]
- ldr r0, _0810B1C8 @ =sub_815ABFC
+ ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV
str r0, [r1]
ldr r1, _0810B1CC @ =gTasks
lsls r0, r4, 2
@@ -6402,7 +6402,7 @@ _0810B1BC:
bx r1
.align 2, 0
_0810B1C4: .4byte gUnknown_203AD10
-_0810B1C8: .4byte sub_815ABFC
+_0810B1C8: .4byte CB2_ReturnToTeachyTV
_0810B1CC: .4byte gTasks
_0810B1D0: .4byte sub_810B070
thumb_func_end sub_810B180
@@ -6537,10 +6537,10 @@ _0810B29E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810B328 @ =gUnknown_3005E70
+ ldr r0, _0810B328 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -6565,7 +6565,7 @@ _0810B318: .4byte gSaveBlock1Ptr
_0810B31C: .4byte gSpecialVar_ItemId
_0810B320: .4byte 0x00000296
_0810B324: .4byte gUnknown_203ACFC
-_0810B328: .4byte gUnknown_3005E70
+_0810B328: .4byte gMultiuseListMenuTemplate
_0810B32C:
ldr r1, _0810B340 @ =gMain
movs r0, 0
@@ -6583,7 +6583,7 @@ _0810B344:
ldrb r0, [r7]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r6, 0
@@ -6738,7 +6738,7 @@ _0810B468:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6854,13 +6854,13 @@ _0810B564:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
ldr r1, _0810B5B0 @ =gUnknown_3005E98
ldr r0, _0810B5B4 @ =ItemUseCB_Medicine
str r0, [r1]
ldr r0, _0810B5B8 @ =sub_81279A4
- bl sub_8108EE0
+ bl ItemMenu_SetExitCallback
mov r0, r9
subs r0, 0x8
add r0, r8
@@ -6989,11 +6989,11 @@ _0810B68C:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
ldr r0, _0810B6D4 @ =gUnknown_203AD10
ldr r1, [r0]
- ldr r0, _0810B6D8 @ =sub_8132E64
+ ldr r0, _0810B6D8 @ =PokeDude_InitTMCase
str r0, [r1]
mov r0, r9
subs r0, 0x8
@@ -7003,7 +7003,7 @@ _0810B68C:
b _0810B6E6
.align 2, 0
_0810B6D4: .4byte gUnknown_203AD10
-_0810B6D8: .4byte sub_8132E64
+_0810B6D8: .4byte PokeDude_InitTMCase
_0810B6DC: .4byte sub_810B070
_0810B6E0:
ldrh r0, [r6, 0x10]
diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s
deleted file mode 100644
index 118591dc2..000000000
--- a/asm/item_menu_icons.s
+++ /dev/null
@@ -1,680 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80984D8
-sub_80984D8: @ 80984D8
- push {r4,lr}
- movs r2, 0
- ldr r4, _080984F8 @ =gUnknown_2039878
- movs r3, 0xFF
-_080984E0:
- adds r0, r2, r4
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xB
- bls _080984E0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080984F8: .4byte gUnknown_2039878
- thumb_func_end sub_80984D8
-
- thumb_func_start sub_80984FC
-sub_80984FC: @ 80984FC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08098520 @ =gUnknown_83D41FC
- movs r1, 0x28
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- ldr r1, _08098524 @ =gUnknown_2039878
- strb r0, [r1]
- adds r0, r4, 0
- bl sub_8098528
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08098520: .4byte gUnknown_83D41FC
-_08098524: .4byte gUnknown_2039878
- thumb_func_end sub_80984FC
-
- thumb_func_start sub_8098528
-sub_8098528: @ 8098528
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08098550 @ =gUnknown_2039878
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r2, _08098554 @ =gSprites
- adds r0, r2
- ldr r2, _08098558 @ =0x0000fffb
- strh r2, [r0, 0x26]
- ldr r2, _0809855C @ =sub_8098560
- str r2, [r0, 0x1C]
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .align 2, 0
-_08098550: .4byte gUnknown_2039878
-_08098554: .4byte gSprites
-_08098558: .4byte 0x0000fffb
-_0809855C: .4byte sub_8098560
- thumb_func_end sub_8098528
-
- thumb_func_start sub_8098560
-sub_8098560: @ 8098560
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x26]
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08098574
- adds r0, r2, 0x1
- strh r0, [r1, 0x26]
- b _08098578
-_08098574:
- ldr r0, _0809857C @ =SpriteCallbackDummy
- str r0, [r1, 0x1C]
-_08098578:
- pop {r0}
- bx r0
- .align 2, 0
-_0809857C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098560
-
- thumb_func_start sub_8098580
-sub_8098580: @ 8098580
- push {r4,lr}
- ldr r0, _080985B0 @ =gUnknown_2039878
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080985B4 @ =gSprites
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080985AA
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080985B8 @ =sub_80985BC
- str r0, [r4, 0x1C]
-_080985AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080985B0: .4byte gUnknown_2039878
-_080985B4: .4byte gSprites
-_080985B8: .4byte sub_80985BC
- thumb_func_end sub_8098580
-
- thumb_func_start sub_80985BC
-sub_80985BC: @ 80985BC
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080985D8
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _080985E0 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080985D8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080985E0: .4byte SpriteCallbackDummy
- thumb_func_end sub_80985BC
-
- thumb_func_start sub_80985E4
-sub_80985E4: @ 80985E4
- push {r4-r7,lr}
- ldr r7, _08098620 @ =gUnknown_2039879
- movs r5, 0
- ldr r6, _08098624 @ =gSprites
-_080985EC:
- lsls r1, r5, 20
- movs r0, 0xC0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- ldr r0, _08098628 @ =gUnknown_83D4250
- movs r2, 0x7
- movs r3, 0
- bl CreateSprite
- adds r1, r7, r5
- strb r0, [r1]
- adds r4, r1, 0
- cmp r5, 0
- beq _0809863C
- cmp r5, 0x8
- bne _0809862C
- ldrb r1, [r7, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- bl StartSpriteAnim
- b _0809863C
- .align 2, 0
-_08098620: .4byte gUnknown_2039879
-_08098624: .4byte gSprites
-_08098628: .4byte gUnknown_83D4250
-_0809862C:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
-_0809863C:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x8
- bls _080985EC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80985E4
-
- thumb_func_start sub_8098660
-sub_8098660: @ 8098660
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _080986A0 @ =gUnknown_2039879
- movs r3, 0
- ldr r6, _080986A4 @ =gSprites
- movs r1, 0x1
- ands r0, r1
- lsls r4, r0, 2
- movs r5, 0x5
- negs r5, r5
-_08098676:
- adds r0, r7, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r4
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _08098676
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080986A0: .4byte gUnknown_2039879
-_080986A4: .4byte gSprites
- thumb_func_end sub_8098660
-
- thumb_func_start sub_80986A8
-sub_80986A8: @ 80986A8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r7, _080986E4 @ =gUnknown_2039879
- movs r3, 0
- ldr r4, _080986E8 @ =gSprites
- adds r5, r1, 0x7
-_080986BA:
- adds r2, r7, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r6, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x22]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _080986BA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080986E4: .4byte gUnknown_2039879
-_080986E8: .4byte gSprites
- thumb_func_end sub_80986A8
-
- thumb_func_start sub_80986EC
-sub_80986EC: @ 80986EC
- push {r4,r5,lr}
- ldr r5, _08098714 @ =gUnknown_2039884
- movs r0, 0x90
- lsls r0, 1
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _08098722
- ldr r4, _08098718 @ =gUnknown_2039888
- movs r0, 0x80
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- cmp r0, 0
- beq _0809871C
- movs r0, 0x1
- b _08098724
- .align 2, 0
-_08098714: .4byte gUnknown_2039884
-_08098718: .4byte gUnknown_2039888
-_0809871C:
- ldr r0, [r5]
- bl Free
-_08098722:
- movs r0, 0
-_08098724:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80986EC
-
- thumb_func_start CopyItemIconPicTo4x4Buffer
-CopyItemIconPicTo4x4Buffer: @ 809872C
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
-_08098734:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 5
- adds r0, r6, r0
- lsls r1, r4, 7
- adds r1, r5, r1
- movs r2, 0x30
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08098734
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end CopyItemIconPicTo4x4Buffer
-
- thumb_func_start AddItemIconObject
-AddItemIconObject: @ 8098758
- push {r4-r7,lr}
- sub sp, 0x28
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- bl sub_80986EC
- lsls r0, 24
- cmp r0, 0
- beq _08098810
- adds r0, r7, 0
- movs r1, 0
- bl sub_8098974
- ldr r2, _080987FC @ =gUnknown_2039884
- ldr r1, [r2]
- bl LZDecompressWram
- ldr r1, _080987FC @ =gUnknown_2039884
- ldr r0, [r1]
- ldr r2, _08098800 @ =gUnknown_2039888
- ldr r1, [r2]
- bl CopyItemIconPicTo4x4Buffer
- ldr r1, _08098800 @ =gUnknown_2039888
- ldr r0, [r1]
- str r0, [sp, 0x18]
- ldr r4, _08098804 @ =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r4
- movs r2, 0x80
- lsls r2, 2
- orrs r1, r2
- lsls r3, r6, 16
- ldr r2, _08098808 @ =0x0000ffff
- ands r1, r2
- orrs r1, r3
- str r1, [r0, 0x4]
- bl LoadSpriteSheet
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_8098974
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r5
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
- ldr r0, _0809880C @ =gUnknown_83D427C
- mov r1, sp
- movs r2, 0xC
- bl CpuSet
- mov r0, sp
- strh r6, [r0]
- strh r5, [r0, 0x2]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080987FC @ =gUnknown_2039884
- ldr r0, [r2]
- bl Free
- ldr r1, _08098800 @ =gUnknown_2039888
- ldr r0, [r1]
- bl Free
- adds r0, r4, 0
- b _08098812
- .align 2, 0
-_080987FC: .4byte gUnknown_2039884
-_08098800: .4byte gUnknown_2039888
-_08098804: .4byte 0xffff0000
-_08098808: .4byte 0x0000ffff
-_0809880C: .4byte gUnknown_83D427C
-_08098810:
- movs r0, 0x40
-_08098812:
- add sp, 0x28
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddItemIconObject
-
- thumb_func_start AddItemIconObjectWithCustomObjectTemplate
-AddItemIconObjectWithCustomObjectTemplate: @ 809881C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 16
- lsrs r7, r3, 16
- bl sub_80986EC
- lsls r0, 24
- cmp r0, 0
- beq _080988D8
- adds r0, r7, 0
- movs r1, 0
- bl sub_8098974
- ldr r2, _080988C8 @ =gUnknown_2039884
- ldr r1, [r2]
- bl LZDecompressWram
- ldr r1, _080988C8 @ =gUnknown_2039884
- ldr r0, [r1]
- ldr r2, _080988CC @ =gUnknown_2039888
- ldr r1, [r2]
- bl CopyItemIconPicTo4x4Buffer
- ldr r1, _080988CC @ =gUnknown_2039888
- ldr r0, [r1]
- str r0, [sp, 0x18]
- ldr r4, _080988D0 @ =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r4
- movs r2, 0x80
- lsls r2, 2
- orrs r1, r2
- lsls r3, r6, 16
- ldr r2, _080988D4 @ =0x0000ffff
- ands r1, r2
- orrs r1, r3
- str r1, [r0, 0x4]
- bl LoadSpriteSheet
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_8098974
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r5
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
- mov r0, r8
- mov r1, sp
- movs r2, 0xC
- bl CpuSet
- mov r0, sp
- strh r6, [r0]
- strh r5, [r0, 0x2]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080988C8 @ =gUnknown_2039884
- ldr r0, [r2]
- bl Free
- ldr r1, _080988CC @ =gUnknown_2039888
- ldr r0, [r1]
- bl Free
- adds r0, r4, 0
- b _080988DA
- .align 2, 0
-_080988C8: .4byte gUnknown_2039884
-_080988CC: .4byte gUnknown_2039888
-_080988D0: .4byte 0xffff0000
-_080988D4: .4byte 0x0000ffff
-_080988D8:
- movs r0, 0x40
-_080988DA:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddItemIconObjectWithCustomObjectTemplate
-
- thumb_func_start sub_80988E8
-sub_80988E8: @ 80988E8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08098938 @ =gUnknown_2039882
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0xFF
- bne _08098932
- adds r4, r1, 0
- adds r4, 0x66
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl AddItemIconObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08098932
- strb r2, [r5]
- ldr r1, _0809893C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x18
- strh r1, [r0, 0x24]
- movs r1, 0x8C
- strh r1, [r0, 0x26]
-_08098932:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098938: .4byte gUnknown_2039882
-_0809893C: .4byte gSprites
- thumb_func_end sub_80988E8
-
- thumb_func_start sub_8098940
-sub_8098940: @ 8098940
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809896C @ =gUnknown_2039882
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _08098964
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08098970 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0xFF
- strb r0, [r4]
-_08098964:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809896C: .4byte gUnknown_2039882
-_08098970: .4byte gSprites
- thumb_func_end sub_8098940
-
- thumb_func_start sub_8098974
-sub_8098974: @ 8098974
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08098998 @ =0x00000177
- cmp r3, r0
- bls _08098986
- movs r3, 0
-_08098986:
- ldr r2, _0809899C @ =gUnknown_83D4294
- lsls r0, r1, 2
- lsls r1, r3, 3
- adds r0, r1
- adds r0, r2
- ldr r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08098998: .4byte 0x00000177
-_0809899C: .4byte gUnknown_83D4294
- thumb_func_end sub_8098974
-
- thumb_func_start sub_80989A0
-sub_80989A0: @ 80989A0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080989F0 @ =gUnknown_2039882
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0xFF
- bne _080989EA
- adds r4, r1, 0
- adds r4, 0x66
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl AddItemIconObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080989EA
- strb r2, [r5]
- ldr r1, _080989F4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x18
- strh r1, [r0, 0x24]
- movs r1, 0x93
- strh r1, [r0, 0x26]
-_080989EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080989F0: .4byte gUnknown_2039882
-_080989F4: .4byte gSprites
- thumb_func_end sub_80989A0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_pc.s b/asm/item_pc.s
deleted file mode 100644
index b222b9ca2..000000000
--- a/asm/item_pc.s
+++ /dev/null
@@ -1,2909 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810D3F4
-sub_810D3F4: @ 810D3F4
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r5, 0x1
- bhi _0810D410
- ldr r6, _0810D418 @ =gUnknown_203ADBC
- movs r0, 0x14
- bl Alloc
- str r0, [r6]
- cmp r0, 0
- bne _0810D41C
-_0810D410:
- adds r0, r4, 0
- bl SetMainCallback2
- b _0810D462
- .align 2, 0
-_0810D418: .4byte gUnknown_203ADBC
-_0810D41C:
- cmp r5, 0x1
- beq _0810D42A
- ldr r0, _0810D468 @ =gUnknown_203ADCC
- str r4, [r0]
- movs r1, 0
- strh r1, [r0, 0x6]
- strh r1, [r0, 0x4]
-_0810D42A:
- ldr r1, [r6]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, [r6]
- movs r2, 0
- strb r2, [r0, 0x5]
- ldr r1, [r6]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldr r0, [r6]
- str r2, [r0]
- ldr r5, _0810D46C @ =sub_810D4A0
- adds r4, r6, 0
- movs r3, 0
-_0810D448:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0xC
- adds r0, r1
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0810D448
- adds r0, r5, 0
- bl SetMainCallback2
-_0810D462:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D468: .4byte gUnknown_203ADCC
-_0810D46C: .4byte sub_810D4A0
- thumb_func_end sub_810D3F4
-
- thumb_func_start sub_810D470
-sub_810D470: @ 810D470
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810D470
-
- thumb_func_start sub_810D48C
-sub_810D48C: @ 810D48C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_810D48C
-
- thumb_func_start sub_810D4A0
-sub_810D4A0: @ 810D4A0
- push {lr}
-_0810D4A2:
- bl sub_810D4C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D4BA
- bl sub_80BF708
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810D4A2
-_0810D4BA:
- pop {r0}
- bx r0
- thumb_func_end sub_810D4A0
-
- thumb_func_start sub_810D4C0
-sub_810D4C0: @ 810D4C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0810D4E0 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x14
- bls _0810D4D4
- b _0810D688
-_0810D4D4:
- lsls r0, 2
- ldr r1, _0810D4E4 @ =_0810D4E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810D4E0: .4byte gMain
-_0810D4E4: .4byte _0810D4E8
- .align 2, 0
-_0810D4E8:
- .4byte _0810D53C
- .4byte _0810D546
- .4byte _0810D54C
- .4byte _0810D552
- .4byte _0810D558
- .4byte _0810D55E
- .4byte _0810D564
- .4byte _0810D56A
- .4byte _0810D584
- .4byte _0810D594
- .4byte _0810D59A
- .4byte _0810D5A8
- .4byte _0810D5BA
- .4byte _0810D5C0
- .4byte _0810D5C6
- .4byte _0810D5CC
- .4byte _0810D608
- .4byte _0810D60E
- .4byte _0810D616
- .4byte _0810D630
- .4byte _0810D668
-_0810D53C:
- bl sub_80BF768
- bl clear_scheduled_bg_copies_to_vram
- b _0810D674
-_0810D546:
- bl remove_some_task
- b _0810D674
-_0810D54C:
- bl FreeAllSpritePalettes
- b _0810D674
-_0810D552:
- bl ResetPaletteFade
- b _0810D674
-_0810D558:
- bl ResetSpriteData
- b _0810D674
-_0810D55E:
- bl sub_80984D8
- b _0810D674
-_0810D564:
- bl ResetTasks
- b _0810D674
-_0810D56A:
- bl sub_810D71C
- lsls r0, 24
- cmp r0, 0
- beq _0810D5B2
- ldr r0, _0810D580 @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0xC]
- b _0810D674
- .align 2, 0
-_0810D580: .4byte gUnknown_203ADBC
-_0810D584:
- bl sub_810D78C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D592
- b _0810D6A0
-_0810D592:
- b _0810D674
-_0810D594:
- bl sub_810E8F0
- b _0810D674
-_0810D59A:
- bl sub_810DDA4
- bl sub_810DBF0
- bl sub_810DE08
- b _0810D674
-_0810D5A8:
- bl sub_810D83C
- lsls r0, 24
- cmp r0, 0
- bne _0810D674
-_0810D5B2:
- bl sub_810D6AC
- movs r0, 0x1
- b _0810D6A2
-_0810D5BA:
- bl sub_810D878
- b _0810D674
-_0810D5C0:
- bl sub_810DB34
- b _0810D674
-_0810D5C6:
- bl sub_80985E4
- b _0810D674
-_0810D5CC:
- ldr r0, _0810D5F8 @ =sub_810DEA0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810D5FC @ =gUnknown_3005E70
- ldr r2, _0810D600 @ =gUnknown_203ADCC
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- ldr r2, _0810D604 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- b _0810D674
- .align 2, 0
-_0810D5F8: .4byte sub_810DEA0
-_0810D5FC: .4byte gUnknown_3005E70
-_0810D600: .4byte gUnknown_203ADCC
-_0810D604: .4byte gTasks
-_0810D608:
- bl sub_810DB5C
- b _0810D674
-_0810D60E:
- movs r0, 0x1D
- bl sub_812B1F0
- b _0810D674
-_0810D616:
- ldr r0, _0810D62C @ =gUnknown_203ADCC
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0810D674
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _0810D674
- .align 2, 0
-_0810D62C: .4byte gUnknown_203ADCC
-_0810D630:
- ldr r0, _0810D64C @ =gUnknown_203ADCC
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0810D650
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0810D674
- .align 2, 0
-_0810D64C: .4byte gUnknown_203ADCC
-_0810D650:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80A0A48
- movs r0, 0x1
- bl sub_810DE94
- movs r0, 0x2
- bl PlaySE
- b _0810D674
-_0810D668:
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D6A0
-_0810D674:
- ldr r1, _0810D684 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810D6A0
- .align 2, 0
-_0810D684: .4byte gMain
-_0810D688:
- ldr r0, _0810D698 @ =sub_810D48C
- bl SetVBlankCallback
- ldr r0, _0810D69C @ =sub_810D470
- bl SetMainCallback2
- movs r0, 0x1
- b _0810D6A2
- .align 2, 0
-_0810D698: .4byte sub_810D48C
-_0810D69C: .4byte sub_810D470
-_0810D6A0:
- movs r0, 0
-_0810D6A2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D4C0
-
- thumb_func_start sub_810D6AC
-sub_810D6AC: @ 810D6AC
- push {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 r0, _0810D6DC @ =sub_810D6E8
- movs r1, 0
- bl CreateTask
- ldr r0, _0810D6E0 @ =sub_810D48C
- bl SetVBlankCallback
- ldr r0, _0810D6E4 @ =sub_810D470
- bl SetMainCallback2
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6DC: .4byte sub_810D6E8
-_0810D6E0: .4byte sub_810D48C
-_0810D6E4: .4byte sub_810D470
- thumb_func_end sub_810D6AC
-
- thumb_func_start sub_810D6E8
-sub_810D6E8: @ 810D6E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810D714 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810D70C
- ldr r0, _0810D718 @ =gUnknown_203ADCC
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_810DC40
- adds r0, r4, 0
- bl DestroyTask
-_0810D70C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D714: .4byte gPaletteFade
-_0810D718: .4byte gUnknown_203ADCC
- thumb_func_end sub_810D6E8
-
- thumb_func_start sub_810D71C
-sub_810D71C: @ 810D71C
- push {r4,r5,lr}
- bl sub_80BF7C8
- ldr r5, _0810D77C @ =gUnknown_203ADC0
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _0810D784
- movs r1, 0
- adds r2, r4, 0
- bl memset
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0810D780 @ =gUnknown_8453F6C
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- ldr r1, [r5]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x1
- b _0810D786
- .align 2, 0
-_0810D77C: .4byte gUnknown_203ADC0
-_0810D780: .4byte gUnknown_8453F6C
-_0810D784:
- movs r0, 0
-_0810D786:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810D71C
-
- thumb_func_start sub_810D78C
-sub_810D78C: @ 810D78C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0810D7A8 @ =gUnknown_203ADBC
- ldr r0, [r5]
- movs r1, 0xC
- ldrsh r4, [r0, r1]
- cmp r4, 0x1
- beq _0810D7D0
- cmp r4, 0x1
- bgt _0810D7AC
- cmp r4, 0
- beq _0810D7B6
- b _0810D814
- .align 2, 0
-_0810D7A8: .4byte gUnknown_203ADBC
-_0810D7AC:
- cmp r4, 0x2
- beq _0810D7F0
- cmp r4, 0x3
- beq _0810D800
- b _0810D814
-_0810D7B6:
- bl reset_temp_tile_data_buffers
- ldr r1, _0810D7CC @ =gUnknown_8E85090
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _0810D806
- .align 2, 0
-_0810D7CC: .4byte gUnknown_8E85090
-_0810D7D0:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810D830
- ldr r0, _0810D7E8 @ =gUnknown_8E85458
- ldr r1, _0810D7EC @ =gUnknown_203ADC0
- ldr r1, [r1]
- bl LZDecompressWram
- b _0810D806
- .align 2, 0
-_0810D7E8: .4byte gUnknown_8E85458
-_0810D7EC: .4byte gUnknown_203ADC0
-_0810D7F0:
- ldr r0, _0810D7FC @ =gUnknown_8E85408
- movs r1, 0
- movs r2, 0x60
- bl LoadCompressedPalette
- b _0810D806
- .align 2, 0
-_0810D7FC: .4byte gUnknown_8E85408
-_0810D800:
- ldr r0, _0810D810 @ =gUnknown_83D4240
- bl LoadCompressedObjectPic
-_0810D806:
- ldr r1, [r5]
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- b _0810D830
- .align 2, 0
-_0810D810: .4byte gUnknown_83D4240
-_0810D814:
- ldr r0, _0810D828 @ =gUnknown_83D4248
- bl LoadCompressedObjectPalette
- ldr r0, _0810D82C @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0xC]
- movs r0, 0x1
- b _0810D832
- .align 2, 0
-_0810D828: .4byte gUnknown_83D4248
-_0810D82C: .4byte gUnknown_203ADBC
-_0810D830:
- movs r0, 0
-_0810D832:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810D78C
-
- thumb_func_start sub_810D83C
-sub_810D83C: @ 810D83C
- push {r4,lr}
- ldr r4, _0810D860 @ =gUnknown_203ADC4
- movs r0, 0xF8
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _0810D868
- ldr r4, _0810D864 @ =gUnknown_203ADC8
- movs r0, 0xD9
- lsls r0, 1
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- beq _0810D868
- movs r0, 0x1
- b _0810D872
- .align 2, 0
-_0810D860: .4byte gUnknown_203ADC4
-_0810D864: .4byte gUnknown_203ADC8
-_0810D868:
- bl sub_810DC40
- bl sub_810D6AC
- movs r0, 0
-_0810D872:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D83C
-
- thumb_func_start sub_810D878
-sub_810D878: @ 810D878
- push {r4,r5,lr}
- movs r4, 0
- b _0810D8A4
-_0810D87E:
- ldr r0, _0810D938 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, r1
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl ItemId_GetItem
- ldr r1, _0810D93C @ =gUnknown_203ADC4
- ldr r2, [r1]
- lsls r1, r4, 3
- adds r1, r2
- str r0, [r1]
- str r4, [r1, 0x4]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_0810D8A4:
- ldr r0, _0810D940 @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r4, r0
- bcc _0810D87E
- ldr r0, _0810D93C @ =gUnknown_203ADC4
- ldr r3, [r0]
- lsls r0, r4, 3
- adds r0, r3
- ldr r1, _0810D944 @ =gFameCheckerText_Cancel
- str r1, [r0]
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- ldr r2, _0810D948 @ =gUnknown_3005E70
- str r3, [r2]
- ldr r0, _0810D940 @ =gUnknown_203ADBC
- ldr r3, [r0]
- ldrb r0, [r3, 0x7]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0xC]
- strb r1, [r2, 0x10]
- strb r1, [r2, 0x11]
- movs r0, 0x9
- strb r0, [r2, 0x12]
- movs r1, 0x1
- movs r0, 0x1
- strb r0, [r2, 0x13]
- ldrb r0, [r2, 0x16]
- movs r4, 0x8
- negs r4, r4
- ands r4, r0
- orrs r4, r1
- movs r0, 0x39
- negs r0, r0
- ands r4, r0
- movs r0, 0x10
- orrs r4, r0
- strb r4, [r2, 0x16]
- ldrb r1, [r2, 0x14]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r5, 0x2
- orrs r0, r5
- strb r0, [r2, 0x14]
- ldrb r1, [r3, 0x6]
- strh r1, [r2, 0xE]
- ldrb r1, [r2, 0x17]
- movs r3, 0x40
- negs r3, r3
- ands r3, r1
- orrs r3, r5
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x14]
- movs r0, 0x30
- strb r0, [r2, 0x15]
- ldr r0, _0810D94C @ =sub_810D954
- str r0, [r2, 0x4]
- ldr r0, _0810D950 @ =sub_810DA20
- str r0, [r2, 0x8]
- movs r0, 0x3F
- ands r4, r0
- strb r4, [r2, 0x16]
- ands r3, r0
- strb r3, [r2, 0x17]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D938: .4byte gSaveBlock1Ptr
-_0810D93C: .4byte gUnknown_203ADC4
-_0810D940: .4byte gUnknown_203ADBC
-_0810D944: .4byte gFameCheckerText_Cancel
-_0810D948: .4byte gUnknown_3005E70
-_0810D94C: .4byte sub_810D954
-_0810D950: .4byte sub_810DA20
- thumb_func_end sub_810D878
-
- thumb_func_start sub_810D954
-sub_810D954: @ 810D954
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _0810D968
- movs r0, 0x5
- bl PlaySE
-_0810D968:
- ldr r5, _0810D9BC @ =gUnknown_203ADBC
- ldr r1, [r5]
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFF
- bne _0810DA0A
- ldrb r1, [r1, 0x5]
- movs r0, 0x1
- eors r0, r1
- bl sub_8098940
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810D9CE
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_810DD68
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- ldrb r1, [r0, 0x5]
- adds r0, r4, 0
- bl sub_80988E8
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0810D9C4
- adds r0, r4, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _0810D9C0 @ =gMoveNames
- adds r5, r1, r0
- b _0810D9DA
- .align 2, 0
-_0810D9BC: .4byte gUnknown_203ADBC
-_0810D9C0: .4byte gMoveNames
-_0810D9C4:
- adds r0, r4, 0
- bl ItemId_GetDescription
- adds r5, r0, 0
- b _0810D9DA
-_0810D9CE:
- ldr r0, _0810DA14 @ =0x00000177
- ldr r1, [r5]
- ldrb r1, [r1, 0x5]
- bl sub_80988E8
- ldr r5, _0810DA18 @ =gUnknown_84178BE
-_0810D9DA:
- ldr r0, _0810DA1C @ =gUnknown_203ADBC
- ldr r2, [r0]
- ldrb r0, [r2, 0x5]
- movs r1, 0x1
- eors r0, r1
- movs r4, 0
- strb r0, [r2, 0x5]
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0x3
- str r1, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r5, 0
- movs r3, 0
- bl sub_810EA34
-_0810DA0A:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DA14: .4byte 0x00000177
-_0810DA18: .4byte gUnknown_84178BE
-_0810DA1C: .4byte gUnknown_203ADBC
- thumb_func_end sub_810D954
-
- thumb_func_start sub_810DA20
-sub_810DA20: @ 810DA20
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r0, _0810DA4C @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldrb r1, [r0, 0x4]
- cmp r1, 0xFF
- beq _0810DA58
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r1, r0
- bne _0810DA50
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_810DAD4
- b _0810DA58
- .align 2, 0
-_0810DA4C: .4byte gUnknown_203ADBC
-_0810DA50:
- adds r0, r5, 0
- movs r1, 0xFF
- bl sub_810DAD4
-_0810DA58:
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810DA9E
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_810DD80
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _0810DAA8 @ =gStringVar1
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _0810DAAC @ =gStringVar4
- ldr r1, _0810DAB0 @ =gUnknown_84162B9
- adds r0, r4, 0
- bl StringExpandPlaceholders
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x6E
- bl sub_810EA34
-_0810DA9E:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DAA8: .4byte gStringVar1
-_0810DAAC: .4byte gStringVar4
-_0810DAB0: .4byte gUnknown_84162B9
- thumb_func_end sub_810DA20
-
- thumb_func_start sub_810DAB4
-sub_810DAB4: @ 810DAB4
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_810DAD4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DAB4
-
- thumb_func_start sub_810DAD4
-sub_810DAD4: @ 810DAD4
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- bne _0810DB10
- movs r0, 0x2
- movs r1, 0
- bl GetFontAttribute
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl FillWindowPixelRect
- b _0810DB26
-_0810DB10:
- ldr r2, _0810DB30 @ =gFameCheckerText_ListMenuCursor
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r3, 0
- bl sub_810EA34
-_0810DB26:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DB30: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end sub_810DAD4
-
- thumb_func_start sub_810DB34
-sub_810DB34: @ 810DB34
- push {lr}
- sub sp, 0x14
- ldr r2, _0810DB58 @ =gUnknown_84178A7
- movs r1, 0x1
- str r1, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x2
- movs r1, 0
- movs r3, 0
- bl sub_810EA34
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_0810DB58: .4byte gUnknown_84178A7
- thumb_func_end sub_810DB34
-
- thumb_func_start sub_810DB5C
-sub_810DB5C: @ 810DB5C
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0810DB90 @ =gUnknown_203ADBC
- ldr r1, [r4]
- ldrb r0, [r1, 0x7]
- ldrb r1, [r1, 0x6]
- subs r0, r1
- adds r0, 0x1
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, _0810DB94 @ =gUnknown_203ADD0
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x80
- movs r2, 0x8
- movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DB90: .4byte gUnknown_203ADBC
-_0810DB94: .4byte gUnknown_203ADD0
- thumb_func_end sub_810DB5C
-
- thumb_func_start sub_810DB98
-sub_810DB98: @ 810DB98
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0810DBCC @ =gUnknown_203ADBC
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r1, 0xA
- str r1, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xD4
- movs r2, 0x78
- movs r3, 0x98
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DBCC: .4byte gUnknown_203ADBC
- thumb_func_end sub_810DB98
-
- thumb_func_start sub_810DBD0
-sub_810DBD0: @ 810DBD0
- push {r4,lr}
- ldr r4, _0810DBEC @ =gUnknown_203ADBC
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _0810DBE6
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
-_0810DBE6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DBEC: .4byte gUnknown_203ADBC
- thumb_func_end sub_810DBD0
-
- thumb_func_start sub_810DBF0
-sub_810DBF0: @ 810DBF0
- push {r4,r5,lr}
- ldr r0, _0810DC30 @ =gUnknown_203ADCC
- ldrh r1, [r0, 0x4]
- adds r4, r0, 0
- ldr r5, _0810DC34 @ =gUnknown_203ADBC
- cmp r1, 0
- beq _0810DC14
- ldrh r0, [r4, 0x4]
- ldr r1, [r5]
- ldrb r3, [r1, 0x6]
- adds r0, r3
- ldrb r2, [r1, 0x7]
- adds r1, r2, 0x1
- cmp r0, r1
- ble _0810DC14
- subs r0, r3, 0x1
- subs r0, r2, r0
- strh r0, [r4, 0x4]
-_0810DC14:
- adds r3, r4, 0
- ldrh r0, [r3, 0x4]
- ldrh r1, [r3, 0x6]
- adds r0, r1
- ldr r1, [r5]
- ldrb r1, [r1, 0x7]
- adds r2, r1, 0x1
- cmp r0, r2
- blt _0810DC3A
- cmp r2, 0x1
- bgt _0810DC38
- movs r0, 0
- strh r0, [r3, 0x6]
- b _0810DC3A
- .align 2, 0
-_0810DC30: .4byte gUnknown_203ADCC
-_0810DC34: .4byte gUnknown_203ADBC
-_0810DC38:
- strh r1, [r4, 0x6]
-_0810DC3A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810DBF0
-
- thumb_func_start sub_810DC40
-sub_810DC40: @ 810DC40
- push {lr}
- ldr r0, _0810DC7C @ =gUnknown_203ADBC
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC4E
- bl Free
-_0810DC4E:
- ldr r0, _0810DC80 @ =gUnknown_203ADC0
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC5A
- bl Free
-_0810DC5A:
- ldr r0, _0810DC84 @ =gUnknown_203ADC4
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC66
- bl Free
-_0810DC66:
- ldr r0, _0810DC88 @ =gUnknown_203ADC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DC72
- bl Free
-_0810DC72:
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .align 2, 0
-_0810DC7C: .4byte gUnknown_203ADBC
-_0810DC80: .4byte gUnknown_203ADC0
-_0810DC84: .4byte gUnknown_203ADC4
-_0810DC88: .4byte gUnknown_203ADC8
- thumb_func_end sub_810DC40
-
- thumb_func_start sub_810DC8C
-sub_810DC8C: @ 810DC8C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810DCB0 @ =gUnknown_203ADCC
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0810DCB4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0810DCC4
- .align 2, 0
-_0810DCB0: .4byte gUnknown_203ADCC
-_0810DCB4:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_80A0A70
- movs r0, 0x3
- bl PlaySE
-_0810DCC4:
- ldr r0, _0810DCDC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810DCE0 @ =sub_810DCE4
- str r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DCDC: .4byte gTasks
-_0810DCE0: .4byte sub_810DCE4
- thumb_func_end sub_810DC8C
-
- thumb_func_start sub_810DCE4
-sub_810DCE4: @ 810DCE4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810DD28 @ =gTasks+0x8
- adds r4, r0, r1
- ldr r0, _0810DD2C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810DD4E
- bl sub_80A0AAC
- lsls r0, 24
- cmp r0, 0
- bne _0810DD4E
- ldrb r0, [r4]
- ldr r4, _0810DD30 @ =gUnknown_203ADD0
- adds r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- ldr r0, _0810DD34 @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _0810DD38
- bl SetMainCallback2
- b _0810DD40
- .align 2, 0
-_0810DD28: .4byte gTasks+0x8
-_0810DD2C: .4byte gPaletteFade
-_0810DD30: .4byte gUnknown_203ADD0
-_0810DD34: .4byte gUnknown_203ADBC
-_0810DD38:
- subs r0, r4, 0x4
- ldr r0, [r0]
- bl SetMainCallback2
-_0810DD40:
- bl sub_810DBD0
- bl sub_810DC40
- adds r0, r5, 0
- bl DestroyTask
-_0810DD4E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810DCE4
-
- thumb_func_start sub_810DD54
-sub_810DD54: @ 810DD54
- ldr r1, _0810DD64 @ =gUnknown_203ADCC
- ldrb r0, [r1, 0x6]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_0810DD64: .4byte gUnknown_203ADCC
- thumb_func_end sub_810DD54
-
- thumb_func_start sub_810DD68
-sub_810DD68: @ 810DD68
- lsls r0, 16
- ldr r1, _0810DD7C @ =gSaveBlock1Ptr
- ldr r1, [r1]
- lsrs r0, 14
- adds r1, r0
- movs r0, 0xA6
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- bx lr
- .align 2, 0
-_0810DD7C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810DD68
-
- thumb_func_start sub_810DD80
-sub_810DD80: @ 810DD80
- push {lr}
- lsls r0, 16
- ldr r1, _0810DD9C @ =gSaveBlock1Ptr
- lsrs r0, 14
- ldr r1, [r1]
- adds r0, r1
- ldr r1, _0810DDA0 @ =0x0000029a
- adds r0, r1
- bl GetBagItemId
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810DD9C: .4byte gSaveBlock1Ptr
-_0810DDA0: .4byte 0x0000029a
- thumb_func_end sub_810DD80
-
- thumb_func_start sub_810DDA4
-sub_810DDA4: @ 810DDA4
- push {r4,r5,lr}
- bl sub_809A4E8
- ldr r4, _0810DE00 @ =gUnknown_203ADBC
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x7]
- movs r2, 0
- ldr r3, _0810DE04 @ =gSaveBlock1Ptr
- ldr r0, [r3]
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0810DDEA
- adds r5, r4, 0
- adds r4, r3, 0
- adds r3, r1, 0
-_0810DDCA:
- ldr r0, [r5]
- ldrb r1, [r0, 0x7]
- adds r1, 0x1
- strb r1, [r0, 0x7]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bhi _0810DDEA
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810DDCA
-_0810DDEA:
- ldr r0, _0810DE00 @ =gUnknown_203ADBC
- ldr r1, [r0]
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- cmp r0, 0x6
- ble _0810DDF8
- movs r0, 0x6
-_0810DDF8:
- strb r0, [r1, 0x6]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DE00: .4byte gUnknown_203ADBC
-_0810DE04: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810DDA4
-
- thumb_func_start sub_810DE08
-sub_810DE08: @ 810DE08
- push {r4-r6,lr}
- ldr r0, _0810DE64 @ =gUnknown_203ADCC
- ldrh r1, [r0, 0x6]
- adds r6, r0, 0
- cmp r1, 0x3
- bls _0810DE5C
- movs r4, 0
- ldrh r0, [r6, 0x6]
- subs r0, 0x3
- cmp r4, r0
- bgt _0810DE5C
- ldrh r1, [r6, 0x4]
- ldr r5, _0810DE68 @ =gUnknown_203ADBC
- ldr r2, [r5]
- ldrb r0, [r2, 0x6]
- adds r1, r0
- ldrb r0, [r2, 0x7]
- adds r0, 0x1
- cmp r1, r0
- beq _0810DE5C
- adds r3, r6, 0
-_0810DE32:
- ldrh r0, [r3, 0x6]
- subs r0, 0x1
- strh r0, [r3, 0x6]
- ldrh r0, [r3, 0x4]
- adds r0, 0x1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r3, 0x6]
- subs r0, 0x3
- cmp r4, r0
- bgt _0810DE5C
- ldrh r1, [r6, 0x4]
- ldr r2, [r5]
- ldrb r0, [r2, 0x6]
- adds r1, r0
- ldrb r0, [r2, 0x7]
- adds r0, 0x1
- cmp r1, r0
- bne _0810DE32
-_0810DE5C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DE64: .4byte gUnknown_203ADCC
-_0810DE68: .4byte gUnknown_203ADBC
- thumb_func_end sub_810DE08
-
- thumb_func_start sub_810DE6C
-sub_810DE6C: @ 810DE6C
- push {lr}
- sub sp, 0x8
- movs r1, 0x6
- str r1, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x1E
- bl sub_80F6B08
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_810DE6C
-
- thumb_func_start sub_810DE94
-sub_810DE94: @ 810DE94
- ldr r1, _0810DE9C @ =gUnknown_203ADCC
- strb r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_0810DE9C: .4byte gUnknown_203ADCC
- thumb_func_end sub_810DE94
-
- thumb_func_start sub_810DEA0
-sub_810DEA0: @ 810DEA0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810DF10 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _0810DF14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810DF9E
- bl sub_80A0A98
- lsls r0, 24
- cmp r0, 0
- bne _0810DF9E
- ldr r0, _0810DF18 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810DF20
- ldrb r0, [r6]
- mov r4, sp
- adds r4, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl get_coro_args_x18_x1A
- mov r0, sp
- ldrh r1, [r0]
- ldrh r0, [r4]
- adds r1, r0
- ldr r0, _0810DF1C @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r1, r0
- beq _0810DF20
- movs r0, 0x5
- bl PlaySE
- mov r0, sp
- ldrh r1, [r4]
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_810DFE0
- b _0810DF9E
- .align 2, 0
-_0810DF10: .4byte gTasks+0x8
-_0810DF14: .4byte gPaletteFade
-_0810DF18: .4byte gMain
-_0810DF1C: .4byte gUnknown_203ADBC
-_0810DF20:
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r4, r0, 0
- ldrb r0, [r6]
- ldr r1, _0810DF44 @ =gUnknown_203ADD0
- adds r2, r1, 0x2
- bl get_coro_args_x18_x1A
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810DF48
- adds r0, 0x1
- cmp r4, r0
- bne _0810DF6C
- b _0810DF9E
- .align 2, 0
-_0810DF44: .4byte gUnknown_203ADD0
-_0810DF48:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_810DE94
- ldr r0, _0810DF64 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810DF68 @ =sub_810DC8C
- str r0, [r1]
- b _0810DF9E
- .align 2, 0
-_0810DF64: .4byte gTasks
-_0810DF68: .4byte sub_810DC8C
-_0810DF6C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810DE6C
- bl sub_810DBD0
- strh r4, [r6, 0x2]
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_810DD80
- strh r0, [r6, 0x4]
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_810DAB4
- ldr r1, _0810DFA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810DFAC @ =sub_810E274
- str r1, [r0]
-_0810DF9E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DFA8: .4byte gTasks
-_0810DFAC: .4byte sub_810E274
- thumb_func_end sub_810DEA0
-
- thumb_func_start sub_810DFB0
-sub_810DFB0: @ 810DFB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_810DE6C
- bl sub_810DB5C
- ldr r1, _0810DFD8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810DFDC @ =sub_810DEA0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DFD8: .4byte gTasks
-_0810DFDC: .4byte sub_810DEA0
- thumb_func_end sub_810DFB0
-
- thumb_func_start sub_810DFE0
-sub_810DFE0: @ 810DFE0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- ldr r0, _0810E09C @ =gTasks+0x8
- mov r8, r0
- adds r6, r5, r0
- ldrb r0, [r6]
- movs r1, 0x10
- movs r2, 0x1
- bl sub_8107BD0
- strh r4, [r6, 0x2]
- ldr r0, _0810E0A0 @ =gUnknown_203ADBC
- ldr r0, [r0]
- movs r1, 0
- mov r9, r1
- strb r4, [r0, 0x4]
- ldr r4, _0810E0A4 @ =gStringVar1
- ldrh r0, [r6, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _0810E0A8 @ =gStringVar4
- ldr r1, _0810E0AC @ =gUnknown_841633F
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0x3
- str r1, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_810EA34
- movs r4, 0x20
- negs r4, r4
- ldrb r0, [r6]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80986A8
- movs r0, 0
- bl sub_8098660
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_810DAB4
- movs r1, 0x8
- negs r1, r1
- add r8, r1
- add r5, r8
- ldr r0, _0810E0B0 @ =sub_810E0B4
- str r0, [r5]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E09C: .4byte gTasks+0x8
-_0810E0A0: .4byte gUnknown_203ADBC
-_0810E0A4: .4byte gStringVar1
-_0810E0A8: .4byte gStringVar4
-_0810E0AC: .4byte gUnknown_841633F
-_0810E0B0: .4byte sub_810E0B4
- thumb_func_end sub_810DFE0
-
- thumb_func_start sub_810E0B4
-sub_810E0B4: @ 810E0B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- ldr r0, _0810E11C @ =gTasks+0x8
- adds r4, r0
- ldrb r0, [r4]
- bl ListMenuHandleInput
- ldrb r0, [r4]
- ldr r7, _0810E120 @ =gUnknown_203ADD0
- adds r2, r7, 0x2
- adds r1, r7, 0
- bl get_coro_args_x18_x1A
- movs r5, 0x20
- negs r5, r5
- ldrb r0, [r4]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80986A8
- ldr r0, _0810E124 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- beq _0810E12C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E128 @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- subs r0, r7, 0x4
- ldrh r1, [r0, 0x4]
- ldrh r0, [r0, 0x6]
- adds r1, r0
- adds r0, r6, 0
- bl sub_810E160
- b _0810E150
- .align 2, 0
-_0810E11C: .4byte gTasks+0x8
-_0810E120: .4byte gUnknown_203ADD0
-_0810E124: .4byte gMain
-_0810E128: .4byte gUnknown_203ADBC
-_0810E12C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E150
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E15C @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- subs r0, r7, 0x4
- ldrh r1, [r0, 0x4]
- ldrh r0, [r0, 0x6]
- adds r1, r0
- mov r0, r8
- bl sub_810E200
-_0810E150:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E15C: .4byte gUnknown_203ADBC
- thumb_func_end sub_810E0B4
-
- thumb_func_start sub_810E160
-sub_810E160: @ 810E160
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r7, r0, 3
- ldr r0, _0810E190 @ =gTasks+0x8
- mov r8, r0
- adds r6, r7, r0
- movs r0, 0x2
- ldrsh r1, [r6, r0]
- cmp r1, r4
- beq _0810E186
- subs r0, r4, 0x1
- cmp r1, r0
- bne _0810E194
-_0810E186:
- adds r0, r2, 0
- adds r1, r4, 0
- bl sub_810E200
- b _0810E1E6
- .align 2, 0
-_0810E190: .4byte gTasks+0x8
-_0810E194:
- ldr r0, _0810E1F0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r2
- adds r2, r4, 0
- bl sub_8108D60
- ldrb r0, [r6]
- ldr r5, _0810E1F4 @ =gUnknown_203ADD0
- adds r2, r5, 0x2
- adds r1, r5, 0
- bl sub_810713C
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, r4
- bcs _0810E1C0
- subs r1, r5, 0x4
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_0810E1C0:
- bl sub_810D878
- ldr r0, _0810E1F8 @ =gUnknown_3005E70
- subs r2, r5, 0x4
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810E1FC @ =sub_810DEA0
- str r1, [r0]
-_0810E1E6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E1F0: .4byte gSaveBlock1Ptr
-_0810E1F4: .4byte gUnknown_203ADD0
-_0810E1F8: .4byte gUnknown_3005E70
-_0810E1FC: .4byte sub_810DEA0
- thumb_func_end sub_810E160
-
- thumb_func_start sub_810E200
-sub_810E200: @ 810E200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r7, r1, 3
- ldr r0, _0810E264 @ =gTasks+0x8
- mov r8, r0
- adds r6, r7, r0
- ldrb r0, [r6]
- ldr r5, _0810E268 @ =gUnknown_203ADD0
- adds r2, r5, 0x2
- adds r1, r5, 0
- bl sub_810713C
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, r4
- bcs _0810E234
- subs r1, r5, 0x4
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_0810E234:
- bl sub_810D878
- ldr r0, _0810E26C @ =gUnknown_3005E70
- subs r2, r5, 0x4
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810E270 @ =sub_810DEA0
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E264: .4byte gTasks+0x8
-_0810E268: .4byte gUnknown_203ADD0
-_0810E26C: .4byte gUnknown_3005E70
-_0810E270: .4byte sub_810DEA0
- thumb_func_end sub_810E200
-
- thumb_func_start sub_810E274
-sub_810E274: @ 810E274
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0810E340 @ =gTasks+0x8
- mov r9, r0
- adds r6, r4, r0
- movs r0, 0x4
- bl sub_810EA9C
- movs r0, 0
- bl sub_810EAB4
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r5, 0x3
- str r5, [sp, 0x4]
- ldr r0, _0810E344 @ =gUnknown_8453F74
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x2
- bl PrintTextArray
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl sub_810F7D8
- ldrh r0, [r6, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E348 @ =gStringVar1
- bl sub_8099E90
- ldr r6, _0810E34C @ =gStringVar4
- ldr r1, _0810E350 @ =gUnknown_84162FF
- adds r0, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r0, [sp, 0x10]
- mov r0, r8
- movs r1, 0x2
- adds r2, r6, 0
- movs r3, 0
- bl sub_810EA34
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x8
- negs r0, r0
- add r9, r0
- add r4, r9
- ldr r0, _0810E354 @ =sub_810E358
- str r0, [r4]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E340: .4byte gTasks+0x8
-_0810E344: .4byte gUnknown_8453F74
-_0810E348: .4byte gStringVar1
-_0810E34C: .4byte gStringVar4
-_0810E350: .4byte gUnknown_84162FF
-_0810E354: .4byte sub_810E358
- thumb_func_end sub_810E274
-
- thumb_func_start sub_810E358
-sub_810E358: @ 810E358
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810E39A
- adds r0, 0x1
- cmp r4, r0
- bne _0810E384
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_810E8A0
- b _0810E39A
-_0810E384:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E3A0 @ =gUnknown_8453F74
- lsls r1, r4, 3
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r6, 0
- bl _call_via_r1
-_0810E39A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E3A0: .4byte gUnknown_8453F74
- thumb_func_end sub_810E358
-
- thumb_func_start sub_810E3A4
-sub_810E3A4: @ 810E3A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0810E3F0 @ =gTasks+0x8
- adds r4, r6, r7
- movs r0, 0x4
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl sub_810EAF0
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x2]
- bl sub_810DD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0810E3F4
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_810E418
- b _0810E40E
- .align 2, 0
-_0810E3F0: .4byte gTasks+0x8
-_0810E3F4:
- movs r0, 0
- bl PutWindowTilemap
- ldrh r0, [r4, 0x2]
- bl sub_810E5E0
- bl sub_810DB98
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810E414 @ =sub_810E6D8
- str r1, [r0]
-_0810E40E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E414: .4byte sub_810E6D8
- thumb_func_end sub_810E3A4
-
- thumb_func_start sub_810E418
-sub_810E418: @ 810E418
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0810E49C @ =gTasks+0x8
- adds r5, r6, r7
- ldrh r0, [r5, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r1, [r5, 0x10]
- adds r0, r4, 0
- bl sub_809A084
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810E4B8
- ldr r3, _0810E4A0 @ =0x0000ffff
- movs r0, 0x1D
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A2294
- ldr r1, _0810E4A4 @ =gStringVar1
- adds r0, r4, 0
- bl sub_8099E90
- ldr r0, _0810E4A8 @ =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _0810E4AC @ =gStringVar4
- ldr r1, _0810E4B0 @ =gUnknown_84177C5
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x2
- bl sub_810EAB4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810E4B4 @ =sub_810E4F4
- b _0810E4E0
- .align 2, 0
-_0810E49C: .4byte gTasks+0x8
-_0810E4A0: .4byte 0x0000ffff
-_0810E4A4: .4byte gStringVar1
-_0810E4A8: .4byte gStringVar2
-_0810E4AC: .4byte gStringVar4
-_0810E4B0: .4byte gUnknown_84177C5
-_0810E4B4: .4byte sub_810E4F4
-_0810E4B8:
- movs r0, 0x2
- bl sub_810EAB4
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _0810E4EC @ =gUnknown_841778A
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0810E4F0 @ =sub_810E548
-_0810E4E0:
- str r1, [r0]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E4EC: .4byte gUnknown_841778A
-_0810E4F0: .4byte sub_810E548
- thumb_func_end sub_810E418
-
- thumb_func_start sub_810E4F4
-sub_810E4F4: @ 810E4F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0810E540 @ =gTasks+0x8
- adds r5, r0, r1
- ldr r0, _0810E544 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810E51A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E53A
-_0810E51A:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r5, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r5, 0x10]
- bl sub_809A460
- bl sub_809A4E8
- adds r0, r4, 0
- bl sub_810E578
-_0810E53A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E540: .4byte gTasks+0x8
-_0810E544: .4byte gMain
- thumb_func_end sub_810E4F4
-
- thumb_func_start sub_810E548
-sub_810E548: @ 810E548
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810E574 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810E562
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E56E
-_0810E562:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810E578
-_0810E56E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E574: .4byte gMain
- thumb_func_end sub_810E548
-
- thumb_func_start sub_810E578
-sub_810E578: @ 810E578
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _0810E5D4 @ =gTasks+0x8
- adds r5, r0
- movs r0, 0x2
- bl sub_810EAF0
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r5]
- ldr r4, _0810E5D8 @ =gUnknown_203ADD0
- adds r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- bl sub_810DDA4
- bl sub_810DBF0
- bl sub_810D878
- ldr r0, _0810E5DC @ =gUnknown_3005E70
- subs r4, 0x4
- ldrh r1, [r4, 0x4]
- ldrh r2, [r4, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl sub_810DFB0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E5D4: .4byte gTasks+0x8
-_0810E5D8: .4byte gUnknown_203ADD0
-_0810E5DC: .4byte gUnknown_3005E70
- thumb_func_end sub_810E578
-
- thumb_func_start sub_810E5E0
-sub_810E5E0: @ 810E5E0
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- ldr r6, _0810E660 @ =gStringVar1
- adds r1, r6, 0
- bl sub_8099E90
- ldr r5, _0810E664 @ =gStringVar4
- ldr r1, _0810E668 @ =gUnknown_84177AC
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- bl sub_810EAB4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r2, r5, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- adds r0, r6, 0
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r1, _0810E66C @ =gUnknown_84162B9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_810EA9C
- movs r0, 0xA
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x3
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x8
- bl sub_810EA34
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E660: .4byte gStringVar1
-_0810E664: .4byte gStringVar4
-_0810E668: .4byte gUnknown_84177AC
-_0810E66C: .4byte gUnknown_84162B9
- thumb_func_end sub_810E5E0
-
- thumb_func_start sub_810E670
-sub_810E670: @ 810E670
- push {r4,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0x11
- movs r2, 0xA
- movs r3, 0xA
- bl FillWindowPixelRect
- ldr r0, _0810E6CC @ =gStringVar1
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _0810E6D0 @ =gStringVar4
- ldr r1, _0810E6D4 @ =gUnknown_84162B9
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r0, 0x3
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x8
- bl sub_810EA34
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E6CC: .4byte gStringVar1
-_0810E6D0: .4byte gStringVar4
-_0810E6D4: .4byte gUnknown_84162B9
- thumb_func_end sub_810E670
-
- thumb_func_start sub_810E6D8
-sub_810E6D8: @ 810E6D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810E708 @ =gTasks+0x8
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x10
- ldrh r1, [r4, 0x4]
- bl sub_80BF848
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810E70C
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- bl sub_810E670
- b _0810E796
- .align 2, 0
-_0810E708: .4byte gTasks+0x8
-_0810E70C:
- ldr r0, _0810E74C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810E750
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810EAF0
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_810DBD0
- adds r0, r5, 0
- bl sub_810E418
- b _0810E796
- .align 2, 0
-_0810E74C: .4byte gMain
-_0810E750:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E796
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x1
- bl sub_810EAF0
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_810DBD0
- adds r0, r6, 0
- bl sub_810DFB0
-_0810E796:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E6D8
-
- thumb_func_start sub_810E79C
-sub_810E79C: @ 810E79C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _0810E7DC
- movs r0, 0x4
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl sub_810EAF0
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- ldr r1, _0810E7D4 @ =gUnknown_841632A
- ldr r2, _0810E7D8 @ =sub_810E848
- adds r0, r4, 0
- bl sub_810EB30
- b _0810E7EA
- .align 2, 0
-_0810E7D4: .4byte gUnknown_841632A
-_0810E7D8: .4byte sub_810E848
-_0810E7DC:
- ldr r0, _0810E7F0 @ =gUnknown_203ADBC
- ldr r1, [r0]
- ldr r0, _0810E7F4 @ =sub_810E7F8
- str r0, [r1]
- adds r0, r4, 0
- bl sub_810DC8C
-_0810E7EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E7F0: .4byte gUnknown_203ADBC
-_0810E7F4: .4byte sub_810E7F8
- thumb_func_end sub_810E79C
-
- thumb_func_start sub_810E7F8
-sub_810E7F8: @ 810E7F8
- push {lr}
- sub sp, 0xC
- movs r0, 0x6
- str r0, [sp]
- ldr r0, _0810E82C @ =sub_811FB28
- str r0, [sp, 0x4]
- ldr r0, _0810E830 @ =sub_810E838
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl sub_811EA44
- bl sub_810DD54
- lsls r0, 24
- lsrs r0, 24
- bl sub_810DD68
- ldr r1, _0810E834 @ =gUnknown_203B0A0
- strh r0, [r1, 0xC]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0810E82C: .4byte sub_811FB28
-_0810E830: .4byte sub_810E838
-_0810E834: .4byte gUnknown_203B0A0
- thumb_func_end sub_810E7F8
-
- thumb_func_start sub_810E838
-sub_810E838: @ 810E838
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_810D3F4
- pop {r0}
- bx r0
- thumb_func_end sub_810E838
-
- thumb_func_start sub_810E848
-sub_810E848: @ 810E848
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0810E898 @ =gTasks+0x8
- adds r5, r0, r1
- ldr r0, _0810E89C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810E892
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x5
- movs r1, 0
- bl sub_810F260
- movs r0, 0x5
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r4, 0
- bl sub_810DFB0
-_0810E892:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E898: .4byte gTasks+0x8
-_0810E89C: .4byte gMain
- thumb_func_end sub_810E848
-
- thumb_func_start sub_810E8A0
-sub_810E8A0: @ 810E8A0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _0810E8EC @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x4
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl sub_810EAF0
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810DAB4
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_810DFB0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E8EC: .4byte gTasks+0x8
- thumb_func_end sub_810E8A0
-
- thumb_func_start sub_810E8F0
-sub_810E8F0: @ 810E8F0
- push {r4,lr}
- ldr r0, _0810E974 @ =gUnknown_8453F98
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r1, 0xF0
- lsls r1, 2
- movs r0, 0
- movs r2, 0xE0
- bl sub_815001C
- ldr r1, _0810E978 @ =0x000003a3
- movs r0, 0
- movs r2, 0xC0
- bl sub_814FF2C
- movs r1, 0xEB
- lsls r1, 2
- movs r0, 0
- movs r2, 0xB0
- bl sub_814FEAC
- movs r0, 0x2
- bl stdpal_get
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810E97C @ =gUnknown_841F408
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0
-_0810E938:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810E938
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r4, 0
- ldr r3, _0810E980 @ =gUnknown_203ADD8
- movs r2, 0xFF
-_0810E95C:
- adds r0, r4, r3
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810E95C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E974: .4byte gUnknown_8453F98
-_0810E978: .4byte 0x000003a3
-_0810E97C: .4byte gUnknown_841F408
-_0810E980: .4byte gUnknown_203ADD8
- thumb_func_end sub_810E8F0
-
- thumb_func_start sub_810E984
-sub_810E984: @ 810E984
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- ldr r6, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- mov r8, r4
- ldr r4, [sp, 0x30]
- mov r9, r4
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- mov r4, r8
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- mov r4, r9
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- str r1, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- movs r0, 0x3
- strb r0, [r1, 0x5]
- mov r0, sp
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- strb r2, [r0, 0x8]
- strb r3, [r0, 0x9]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r5, 0xF
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0xD]
- mov r1, sp
- movs r0, 0x30
- strb r0, [r1, 0xD]
- movs r0, 0x3
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- movs r0, 0x3
- movs r1, 0x2
- bl GetFontAttribute
- mov r1, sp
- adds r6, r0
- strb r6, [r1, 0xA]
- movs r0, 0x3
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- add r8, r0
- mov r0, r8
- strb r0, [r1, 0xB]
- mov r0, sp
- mov r1, r9
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E984
-
- thumb_func_start sub_810EA34
-sub_810EA34: @ 810EA34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r3
- ldr r3, [sp, 0x30]
- ldr r4, [sp, 0x34]
- ldr r6, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- mov r8, r5
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- mov r9, r7
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, _0810EA98 @ =gUnknown_8453F8C
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r2, [sp, 0x10]
- mov r2, r9
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EA98: .4byte gUnknown_8453F8C
- thumb_func_end sub_810EA34
-
- thumb_func_start sub_810EA9C
-sub_810EA9C: @ 810EA9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xF0
- lsls r2, 2
- movs r1, 0
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_810EA9C
-
- thumb_func_start sub_810EAB4
-sub_810EAB4: @ 810EAB4
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0810EAE4 @ =gUnknown_203ADD8
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0810EADC
- lsls r0, r1, 3
- ldr r1, _0810EAE8 @ =gUnknown_8453FD0
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _0810EAEC @ =0x000003a3
- movs r1, 0x1
- movs r3, 0xC
- bl SetWindowBorderStyle
-_0810EADC:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810EAE4: .4byte gUnknown_203ADD8
-_0810EAE8: .4byte gUnknown_8453FD0
-_0810EAEC: .4byte 0x000003a3
- thumb_func_end sub_810EAB4
-
- thumb_func_start sub_810EAF0
-sub_810EAF0: @ 810EAF0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810EB1C @ =gUnknown_203ADD8
- adds r4, r0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_810F4D8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EB1C: .4byte gUnknown_203ADD8
- thumb_func_end sub_810EAF0
-
- thumb_func_start sub_810EB20
-sub_810EB20: @ 810EB20
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810EB2C @ =gUnknown_203ADD8
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810EB2C: .4byte gUnknown_203ADD8
- thumb_func_end sub_810EB20
-
- thumb_func_start sub_810EB30
-sub_810EB30: @ 810EB30
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F78A8
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xEB
- lsls r2, 2
- movs r1, 0x2
- str r1, [sp]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0x5
- movs r3, 0xB
- bl DisplayMessageAndContinueTask
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810EB30
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_use.s b/asm/item_use.s
deleted file mode 100644
index 558e175f2..000000000
--- a/asm/item_use.s
+++ /dev/null
@@ -1,2410 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A0FBC
-sub_80A0FBC: @ 80A0FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A0FD8 @ =gSpecialVar_ItemId
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _080A0FE0
- ldr r0, _080A0FDC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x10]
- b _080A0FE6
- .align 2, 0
-_080A0FD8: .4byte gSpecialVar_ItemId
-_080A0FDC: .4byte gTasks
-_080A0FE0:
- ldrh r0, [r1]
- bl ItemId_GetType
-_080A0FE6:
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1010 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080A1018
- ldr r0, _080A1014 @ =gUnknown_83E2954
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_813D934
- adds r0, r5, 0
- bl sub_813D808
- b _080A1032
- .align 2, 0
-_080A1010: .4byte gSpecialVar_ItemId
-_080A1014: .4byte gUnknown_83E2954
-_080A1018:
- ldr r0, _080A1038 @ =gUnknown_83E2954
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_8108EE0
- cmp r4, 0x1
- bne _080A102C
- bl sub_8108CB4
-_080A102C:
- adds r0, r5, 0
- bl sub_8108B50
-_080A1032:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1038: .4byte gUnknown_83E2954
- thumb_func_end sub_80A0FBC
-
- thumb_func_start sub_80A103C
-sub_80A103C: @ 80A103C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A1064 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080A1070
- ldr r1, _080A1068 @ =gUnknown_3005020
- ldr r0, _080A106C @ =sub_80A1084
- str r0, [r1]
- adds r0, r2, 0
- bl sub_80A0FBC
- b _080A107A
- .align 2, 0
-_080A1064: .4byte gTasks
-_080A1068: .4byte gUnknown_3005020
-_080A106C: .4byte sub_80A1084
-_080A1070:
- ldr r0, _080A1080 @ =gUnknown_2039998
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_080A107A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A1080: .4byte gUnknown_2039998
- thumb_func_end sub_80A103C
-
- thumb_func_start sub_80A1084
-sub_80A1084: @ 80A1084
- push {lr}
- bl sub_807DC00
- ldr r0, _080A1098 @ =sub_80A109C
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080A1098: .4byte sub_80A109C
- thumb_func_end sub_80A1084
-
- thumb_func_start sub_80A109C
-sub_80A109C: @ 80A109C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807AA70
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A10B8
- ldr r0, _080A10C0 @ =gUnknown_2039998
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080A10B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A10C0: .4byte gUnknown_2039998
- thumb_func_end sub_80A109C
-
- thumb_func_start sub_80A10C4
-sub_80A10C4: @ 80A10C4
- push {r4-r7,lr}
- adds r4, r1, 0
- adds r1, r3, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r5, _080A10F0 @ =gStringVar4
- adds r0, r5, 0
- bl StringExpandPlaceholders
- cmp r4, 0
- bne _080A10F8
- ldr r3, _080A10F4 @ =sub_810A1F8
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_8108E70
- b _080A1104
- .align 2, 0
-_080A10F0: .4byte gStringVar4
-_080A10F4: .4byte sub_810A1F8
-_080A10F8:
- ldr r3, _080A110C @ =sub_80A112C
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl DisplayItemMessageOnField
-_080A1104:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A110C: .4byte sub_80A112C
- thumb_func_end sub_80A10C4
-
- thumb_func_start sub_80A1110
-sub_80A1110: @ 80A1110
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080A1128 @ =gUnknown_8416425
- movs r2, 0x4
- bl sub_80A10C4
- pop {r0}
- bx r0
- .align 2, 0
-_080A1128: .4byte gUnknown_8416425
- thumb_func_end sub_80A1110
-
- thumb_func_start sub_80A112C
-sub_80A112C: @ 80A112C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- adds r0, r4, 0
- bl DestroyTask
- bl sub_80696C0
- bl ScriptContext2_Disable
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A112C
-
- thumb_func_start sub_80A1150
-sub_80A1150: @ 80A1150
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080A1168
- movs r0, 0x1
- b _080A117E
-_080A1168:
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, _080A1178 @ =sub_80A1750
- cmp r0, r1
- beq _080A117C
- movs r0, 0
- b _080A117E
- .align 2, 0
-_080A1178: .4byte sub_80A1750
-_080A117C:
- movs r0, 0x2
-_080A117E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1150
-
- thumb_func_start sub_80A1184
-sub_80A1184: @ 80A1184
- ldr r1, _080A118C @ =gUnknown_3005024
- ldr r0, _080A1190 @ =sub_80A1194
- str r0, [r1]
- bx lr
- .align 2, 0
-_080A118C: .4byte gUnknown_3005024
-_080A1190: .4byte sub_80A1194
- thumb_func_end sub_80A1184
-
- thumb_func_start sub_80A1194
-sub_80A1194: @ 80A1194
- push {lr}
- bl player_bitmagic
- bl ScriptContext2_Enable
- bl sub_807DC00
- ldr r0, _080A11B8 @ =sub_80A11C0
- movs r1, 0xA
- bl CreateTask
- ldr r1, _080A11BC @ =gUnknown_2031DE0
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080A11B8: .4byte sub_80A11C0
-_080A11BC: .4byte gUnknown_2031DE0
- thumb_func_end sub_80A1194
-
- thumb_func_start sub_80A11C0
-sub_80A11C0: @ 80A11C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807AA70
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A11E0
- bl UnfreezeMapObjects
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_080A11E0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A11C0
-
- thumb_func_start sub_80A11E8
-sub_80A11E8: @ 80A11E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A1204 @ =sub_80A1208
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1204: .4byte sub_80A1208
- thumb_func_end sub_80A11E8
-
- thumb_func_start sub_80A1208
-sub_80A1208: @ 80A1208
- push {lr}
- sub sp, 0x24
- mov r1, sp
- ldr r0, _080A1224 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, _080A1228 @ =UseFameCheckerFromMenu
- mov r0, sp
- movs r2, 0
- bl sub_80BEBEC
- add sp, 0x24
- pop {r0}
- bx r0
- .align 2, 0
-_080A1224: .4byte gSpecialVar_ItemId
-_080A1228: .4byte UseFameCheckerFromMenu
- thumb_func_end sub_80A1208
-
- thumb_func_start sub_80A122C
-sub_80A122C: @ 80A122C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x83
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A129A
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_17
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A129A
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A129A
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_15
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A129A
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_16
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A12BC
-_080A129A:
- ldr r1, _080A12B4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xE]
- ldr r3, _080A12B8 @ =gUnknown_8416451
- adds r0, r5, 0
- movs r2, 0x2
- bl sub_80A10C4
- b _080A12F6
- .align 2, 0
-_080A12B4: .4byte gTasks
-_080A12B8: .4byte gUnknown_8416451
-_080A12BC:
- bl sub_8055C9C
- cmp r0, 0x1
- bne _080A12E4
- bl sub_80BD540
- lsls r0, 24
- cmp r0, 0
- bne _080A12E4
- ldr r1, _080A12DC @ =gUnknown_2039998
- ldr r0, _080A12E0 @ =sub_80A1304
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80A103C
- b _080A12F6
- .align 2, 0
-_080A12DC: .4byte gUnknown_2039998
-_080A12E0: .4byte sub_80A1304
-_080A12E4:
- ldr r0, _080A1300 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r5, 0
- bl sub_80A1110
-_080A12F6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1300: .4byte gTasks
- thumb_func_end sub_80A122C
-
- thumb_func_start sub_80A1304
-sub_80A1304: @ 80A1304
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080A131C
- movs r0, 0xB
- bl PlaySE
-_080A131C:
- movs r0, 0x6
- bl sub_80BD5C8
- bl sub_80696C0
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1304
-
- thumb_func_start sub_80A1338
-sub_80A1338: @ 80A1338
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80A137C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A1360
- ldr r1, _080A1358 @ =gUnknown_2039998
- ldr r0, _080A135C @ =ItemUseOnFieldCB_Rod
- str r0, [r1]
- adds r0, r4, 0
- bl sub_80A103C
- b _080A1372
- .align 2, 0
-_080A1358: .4byte gUnknown_2039998
-_080A135C: .4byte ItemUseOnFieldCB_Rod
-_080A1360:
- ldr r0, _080A1378 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r4, 0
- bl sub_80A1110
-_080A1372:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1378: .4byte gTasks
- thumb_func_end sub_80A1338
-
- thumb_func_start sub_80A137C
-sub_80A137C: @ 80A137C
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080A1404
- movs r0, 0x10
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080A1404
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080A13D4
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080A1404
-_080A13D0:
- movs r0, 0x1
- b _080A1406
-_080A13D4:
- adds r0, r5, 0
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- beq _080A13F4
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl sub_8058DC4
- lsls r0, 24
- cmp r0, 0
- beq _080A13D0
-_080A13F4:
- lsls r0, r6, 24
- lsrs r0, 24
- bl MetatileBehavior_ReturnFalse_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A13D0
-_080A1404:
- movs r0, 0
-_080A1406:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A137C
-
- thumb_func_start ItemUseOnFieldCB_Rod
-ItemUseOnFieldCB_Rod: @ 80A1410
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A1434 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- bl sub_805D2C0
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1434: .4byte gSpecialVar_ItemId
- thumb_func_end ItemUseOnFieldCB_Rod
-
- thumb_func_start ItemUseOutOfBattle_Itemfinder
-ItemUseOutOfBattle_Itemfinder: @ 80A1438
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x27
- bl IncrementGameStat
- ldr r1, _080A1458 @ =gUnknown_2039998
- ldr r0, _080A145C @ =sub_813EC8C
- str r0, [r1]
- adds r0, r4, 0
- bl sub_80A103C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1458: .4byte gUnknown_2039998
-_080A145C: .4byte sub_813EC8C
- thumb_func_end ItemUseOutOfBattle_Itemfinder
-
- thumb_func_start sub_80A1460
-sub_80A1460: @ 80A1460
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A14B4 @ =gStringVar1
- bl GetCoins
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, _080A14B8 @ =gStringVar4
- ldr r1, _080A14BC @ =gUnknown_8416537
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080A14C0 @ =gSpecialVar_ItemId
- ldrh r2, [r0]
- ldr r3, _080A14C4 @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r1, _080A14C8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A14D0
- ldr r3, _080A14CC @ =sub_810A1F8
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_8108E70
- b _080A14DC
- .align 2, 0
-_080A14B4: .4byte gStringVar1
-_080A14B8: .4byte gStringVar4
-_080A14BC: .4byte gUnknown_8416537
-_080A14C0: .4byte gSpecialVar_ItemId
-_080A14C4: .4byte 0x0000ffff
-_080A14C8: .4byte gTasks
-_080A14CC: .4byte sub_810A1F8
-_080A14D0:
- ldr r3, _080A14E4 @ =sub_80A112C
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl DisplayItemMessageOnField
-_080A14DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A14E4: .4byte sub_80A112C
- thumb_func_end sub_80A1460
-
- thumb_func_start sub_80A14E8
-sub_80A14E8: @ 80A14E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A1538 @ =gStringVar1
- bl sub_815EFA0
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r4, _080A153C @ =gStringVar4
- ldr r1, _080A1540 @ =gUnknown_8416644
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080A1544 @ =gSpecialVar_ItemId
- ldrh r2, [r0]
- ldr r3, _080A1548 @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r1, _080A154C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A1554
- ldr r3, _080A1550 @ =sub_810A1F8
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_8108E70
- b _080A1560
- .align 2, 0
-_080A1538: .4byte gStringVar1
-_080A153C: .4byte gStringVar4
-_080A1540: .4byte gUnknown_8416644
-_080A1544: .4byte gSpecialVar_ItemId
-_080A1548: .4byte 0x0000ffff
-_080A154C: .4byte gTasks
-_080A1550: .4byte sub_810A1F8
-_080A1554:
- ldr r3, _080A1568 @ =sub_80A112C
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl DisplayItemMessageOnField
-_080A1560:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1568: .4byte sub_80A112C
- thumb_func_end sub_80A14E8
-
- thumb_func_start sub_80A156C
-sub_80A156C: @ 80A156C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- movs r4, 0
- b _080A1598
-_080A1578:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080A15D0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x11
- adds r2, r4, 0
- movs r3, 0
- bl ExecuteTableBasedItemEffect
- lsls r0, 24
- cmp r0, 0
- bne _080A1592
- movs r6, 0x1
-_080A1592:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080A1598:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _080A1578
- cmp r6, 0
- beq _080A1600
- ldr r0, _080A15D4 @ =gSpecialVar_ItemId
- ldrh r2, [r0]
- ldr r3, _080A15D8 @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r1, _080A15DC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A15E8
- ldr r2, _080A15E0 @ =gUnknown_8416690
- ldr r3, _080A15E4 @ =sub_80A1648
- b _080A1616
- .align 2, 0
-_080A15D0: .4byte gPlayerParty
-_080A15D4: .4byte gSpecialVar_ItemId
-_080A15D8: .4byte 0x0000ffff
-_080A15DC: .4byte gTasks
-_080A15E0: .4byte gUnknown_8416690
-_080A15E4: .4byte sub_80A1648
-_080A15E8:
- ldr r2, _080A15F8 @ =gUnknown_8416690
- ldr r3, _080A15FC @ =sub_80A1648
- adds r0, r5, 0
- movs r1, 0x2
- bl DisplayItemMessageOnField
- b _080A1638
- .align 2, 0
-_080A15F8: .4byte gUnknown_8416690
-_080A15FC: .4byte sub_80A1648
-_080A1600:
- ldr r0, _080A1620 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A162C
- ldr r2, _080A1624 @ =gUnknown_841665C
- ldr r3, _080A1628 @ =sub_810A1F8
-_080A1616:
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8108E70
- b _080A1638
- .align 2, 0
-_080A1620: .4byte gTasks
-_080A1624: .4byte gUnknown_841665C
-_080A1628: .4byte sub_810A1F8
-_080A162C:
- ldr r2, _080A1640 @ =gUnknown_841665C
- ldr r3, _080A1644 @ =sub_80A112C
- adds r0, r5, 0
- movs r1, 0x2
- bl DisplayItemMessageOnField
-_080A1638:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1640: .4byte gUnknown_841665C
-_080A1644: .4byte sub_80A112C
- thumb_func_end sub_80A156C
-
- thumb_func_start sub_80A1648
-sub_80A1648: @ 80A1648
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xB
- bl PlayFanfareByFanfareNum
- ldr r1, _080A166C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A1670 @ =sub_80A1674
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A166C: .4byte gTasks
-_080A1670: .4byte sub_80A1674
- thumb_func_end sub_80A1648
-
- thumb_func_start sub_80A1674
-sub_80A1674: @ 80A1674
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _080A16C0
- ldr r0, _080A16A8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A16B4
- ldr r2, _080A16AC @ =gUnknown_84166A7
- ldr r3, _080A16B0 @ =sub_810A1F8
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8108E70
- b _080A16C0
- .align 2, 0
-_080A16A8: .4byte gTasks
-_080A16AC: .4byte gUnknown_84166A7
-_080A16B0: .4byte sub_810A1F8
-_080A16B4:
- ldr r2, _080A16C8 @ =gUnknown_84166A7
- ldr r3, _080A16CC @ =sub_80A112C
- adds r0, r5, 0
- movs r1, 0x2
- bl DisplayItemMessageOnField
-_080A16C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A16C8: .4byte gUnknown_84166A7
-_080A16CC: .4byte sub_80A112C
- thumb_func_end sub_80A1674
-
- thumb_func_start sub_80A16D0
-sub_80A16D0: @ 80A16D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A0FBC
- pop {r0}
- bx r0
- thumb_func_end sub_80A16D0
-
- thumb_func_start sub_80A16E0
-sub_80A16E0: @ 80A16E0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A16F4 @ =gUnknown_3005E98
- ldr r1, _080A16F8 @ =sub_81252D0
- str r1, [r2]
- bl sub_80A16D0
- pop {r0}
- bx r0
- .align 2, 0
-_080A16F4: .4byte gUnknown_3005E98
-_080A16F8: .4byte sub_81252D0
- thumb_func_end sub_80A16E0
-
- thumb_func_start sub_80A16FC
-sub_80A16FC: @ 80A16FC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A1710 @ =gUnknown_3005E98
- ldr r1, _080A1714 @ =sub_81256F8
- str r1, [r2]
- bl sub_80A16D0
- pop {r0}
- bx r0
- .align 2, 0
-_080A1710: .4byte gUnknown_3005E98
-_080A1714: .4byte sub_81256F8
- thumb_func_end sub_80A16FC
-
- thumb_func_start sub_80A1718
-sub_80A1718: @ 80A1718
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A172C @ =gUnknown_3005E98
- ldr r1, _080A1730 @ =dp05_pp_up
- str r1, [r2]
- bl sub_80A16D0
- pop {r0}
- bx r0
- .align 2, 0
-_080A172C: .4byte gUnknown_3005E98
-_080A1730: .4byte dp05_pp_up
- thumb_func_end sub_80A1718
-
- thumb_func_start sub_80A1734
-sub_80A1734: @ 80A1734
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A1748 @ =gUnknown_3005E98
- ldr r1, _080A174C @ =dp05_rare_candy
- str r1, [r2]
- bl sub_80A16D0
- pop {r0}
- bx r0
- .align 2, 0
-_080A1748: .4byte gUnknown_3005E98
-_080A174C: .4byte dp05_rare_candy
- thumb_func_end sub_80A1734
-
- thumb_func_start sub_80A1750
-sub_80A1750: @ 80A1750
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A1764 @ =gUnknown_3005E98
- ldr r1, _080A1768 @ =sub_8126B60
- str r1, [r2]
- bl sub_80A16D0
- pop {r0}
- bx r0
- .align 2, 0
-_080A1764: .4byte gUnknown_3005E98
-_080A1768: .4byte sub_8126B60
- thumb_func_end sub_80A1750
-
- thumb_func_start sub_80A176C
-sub_80A176C: @ 80A176C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A1780 @ =gUnknown_3005E98
- ldr r1, _080A1784 @ =sub_8126894
- str r1, [r2]
- bl sub_80A0FBC
- pop {r0}
- bx r0
- .align 2, 0
-_080A1780: .4byte gUnknown_3005E98
-_080A1784: .4byte sub_8126894
- thumb_func_end sub_80A176C
-
- thumb_func_start sub_80A1788
-sub_80A1788: @ 80A1788
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A17B0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A17B8
- ldr r0, _080A17B4 @ =sub_80A17D4
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
- b _080A17C8
- .align 2, 0
-_080A17B0: .4byte gTasks
-_080A17B4: .4byte sub_80A17D4
-_080A17B8:
- bl sub_80CCB68
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080A17D0 @ =sub_80A17E8
- str r0, [r5]
-_080A17C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A17D0: .4byte sub_80A17E8
- thumb_func_end sub_80A1788
-
- thumb_func_start sub_80A17D4
-sub_80A17D4: @ 80A17D4
- push {lr}
- ldr r1, _080A17E4 @ =UseFameCheckerFromMenu
- movs r0, 0
- movs r2, 0
- bl sub_81317F8
- pop {r0}
- bx r0
- .align 2, 0
-_080A17E4: .4byte UseFameCheckerFromMenu
- thumb_func_end sub_80A17D4
-
- thumb_func_start sub_80A17E8
-sub_80A17E8: @ 80A17E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1818 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A1812
- bl sub_80563F0
- bl sub_80A1184
- ldr r1, _080A181C @ =c2_exit_to_overworld_2_switch
- movs r0, 0
- movs r2, 0x1
- bl sub_81317F8
- adds r0, r4, 0
- bl DestroyTask
-_080A1812:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1818: .4byte gPaletteFade
-_080A181C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A17E8
-
- thumb_func_start sub_80A1820
-sub_80A1820: @ 80A1820
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A1848 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A1850
- ldr r0, _080A184C @ =sub_80A186C
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
- b _080A1860
- .align 2, 0
-_080A1848: .4byte gTasks
-_080A184C: .4byte sub_80A186C
-_080A1850:
- bl sub_80CCB68
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080A1868 @ =sub_80A1880
- str r0, [r5]
-_080A1860:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1868: .4byte sub_80A1880
- thumb_func_end sub_80A1820
-
- thumb_func_start sub_80A186C
-sub_80A186C: @ 80A186C
- push {lr}
- ldr r1, _080A187C @ =UseFameCheckerFromMenu
- movs r0, 0
- movs r2, 0
- bl sub_813CD50
- pop {r0}
- bx r0
- .align 2, 0
-_080A187C: .4byte UseFameCheckerFromMenu
- thumb_func_end sub_80A186C
-
- thumb_func_start sub_80A1880
-sub_80A1880: @ 80A1880
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A18B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A18AA
- bl sub_80563F0
- bl sub_80A1184
- ldr r1, _080A18B4 @ =c2_exit_to_overworld_2_switch
- movs r0, 0
- movs r2, 0x1
- bl sub_813CD50
- adds r0, r4, 0
- bl DestroyTask
-_080A18AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A18B0: .4byte gPaletteFade
-_080A18B4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A1880
-
- thumb_func_start sub_80A18B8
-sub_80A18B8: @ 80A18B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A18D4 @ =sub_80A18D8
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A18D4: .4byte sub_80A18D8
- thumb_func_end sub_80A18B8
-
- thumb_func_start sub_80A18D8
-sub_80A18D8: @ 80A18D8
- push {lr}
- ldr r1, _080A18E8 @ =sub_8107ECC
- movs r0, 0x4
- movs r2, 0
- bl sub_813CD50
- pop {r0}
- bx r0
- .align 2, 0
-_080A18E8: .4byte sub_8107ECC
- thumb_func_end sub_80A18D8
-
- thumb_func_start sub_80A18EC
-sub_80A18EC: @ 80A18EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1920 @ =gSpecialVar_ItemId
- ldrh r2, [r0]
- ldr r3, _080A1924 @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r1, _080A1928 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A1930
- ldr r0, _080A192C @ =sub_80A194C
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
- b _080A1940
- .align 2, 0
-_080A1920: .4byte gSpecialVar_ItemId
-_080A1924: .4byte 0x0000ffff
-_080A1928: .4byte gTasks
-_080A192C: .4byte sub_80A194C
-_080A1930:
- bl sub_80CCB68
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080A1948 @ =sub_80A1960
- str r0, [r5]
-_080A1940:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1948: .4byte sub_80A1960
- thumb_func_end sub_80A18EC
-
- thumb_func_start sub_80A194C
-sub_80A194C: @ 80A194C
- push {lr}
- ldr r1, _080A195C @ =UseFameCheckerFromMenu
- movs r0, 0
- bl sub_815ABC4
- pop {r0}
- bx r0
- .align 2, 0
-_080A195C: .4byte UseFameCheckerFromMenu
- thumb_func_end sub_80A194C
-
- thumb_func_start sub_80A1960
-sub_80A1960: @ 80A1960
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1990 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A1988
- bl sub_80563F0
- bl sub_80A1184
- ldr r1, _080A1994 @ =c2_exit_to_overworld_2_switch
- movs r0, 0
- bl sub_815ABC4
- adds r0, r4, 0
- bl DestroyTask
-_080A1988:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1990: .4byte gPaletteFade
-_080A1994: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A1960
-
- thumb_func_start sub_80A1998
-sub_80A1998: @ 80A1998
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A19C0 @ =0x00004020
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080A19CC
- movs r0, 0x29
- bl PlaySE
- ldr r0, _080A19C4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A19C8 @ =sub_80A19E8
- str r0, [r1]
- b _080A19D8
- .align 2, 0
-_080A19C0: .4byte 0x00004020
-_080A19C4: .4byte gTasks
-_080A19C8: .4byte sub_80A19E8
-_080A19CC:
- ldr r2, _080A19E0 @ =gUnknown_841659E
- ldr r3, _080A19E4 @ =sub_810A1F8
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8108E70
-_080A19D8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A19E0: .4byte gUnknown_841659E
-_080A19E4: .4byte sub_810A1F8
- thumb_func_end sub_80A1998
-
- thumb_func_start sub_80A19E8
-sub_80A19E8: @ 80A19E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _080A1A2A
- ldr r4, _080A1A30 @ =gSpecialVar_ItemId
- ldrh r2, [r4]
- ldr r3, _080A1A34 @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r5, _080A1A38 @ =0x00004020
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl VarSet
- bl sub_80A1A44
- ldr r2, _080A1A3C @ =gStringVar4
- ldr r3, _080A1A40 @ =sub_810A1F8
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8108E70
-_080A1A2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1A30: .4byte gSpecialVar_ItemId
-_080A1A34: .4byte 0x0000ffff
-_080A1A38: .4byte 0x00004020
-_080A1A3C: .4byte gStringVar4
-_080A1A40: .4byte sub_810A1F8
- thumb_func_end sub_80A19E8
-
- thumb_func_start sub_80A1A44
-sub_80A1A44: @ 80A1A44
- push {r4,lr}
- ldr r4, _080A1A84 @ =gSpecialVar_ItemId
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_809A1D8
- ldrh r0, [r4]
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- bl sub_8108DC8
- ldrh r0, [r4]
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- bl sub_81089F4
- ldrh r0, [r4]
- ldr r1, _080A1A88 @ =gStringVar2
- bl sub_8099E90
- ldr r0, _080A1A8C @ =gStringVar4
- ldr r1, _080A1A90 @ =gUnknown_841658C
- bl StringExpandPlaceholders
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1A84: .4byte gSpecialVar_ItemId
-_080A1A88: .4byte gStringVar2
-_080A1A8C: .4byte gStringVar4
-_080A1A90: .4byte gUnknown_841658C
- thumb_func_end sub_80A1A44
-
- thumb_func_start sub_80A1A94
-sub_80A1A94: @ 80A1A94
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r5, _080A1AD4 @ =gSpecialVar_ItemId
- ldrh r2, [r5]
- ldr r3, _080A1AD8 @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldrh r0, [r5]
- cmp r0, 0x2B
- bne _080A1AF4
- ldr r0, _080A1ADC @ =0x00000803
- bl FlagSet
- ldr r0, _080A1AE0 @ =0x00000804
- bl FlagClear
- ldrh r0, [r5]
- ldr r1, _080A1AE4 @ =gStringVar2
- bl sub_8099E90
- ldr r0, _080A1AE8 @ =gStringVar4
- ldr r1, _080A1AEC @ =gUnknown_84165D2
- bl StringExpandPlaceholders
- ldr r1, _080A1AF0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- b _080A1B1A
- .align 2, 0
-_080A1AD4: .4byte gSpecialVar_ItemId
-_080A1AD8: .4byte 0x0000ffff
-_080A1ADC: .4byte 0x00000803
-_080A1AE0: .4byte 0x00000804
-_080A1AE4: .4byte gStringVar2
-_080A1AE8: .4byte gStringVar4
-_080A1AEC: .4byte gUnknown_84165D2
-_080A1AF0: .4byte gTasks
-_080A1AF4:
- cmp r0, 0x2A
- bne _080A1B26
- ldr r0, _080A1B2C @ =0x00000804
- bl FlagSet
- ldr r0, _080A1B30 @ =0x00000803
- bl FlagClear
- ldrh r0, [r5]
- ldr r1, _080A1B34 @ =gStringVar2
- bl sub_8099E90
- ldr r0, _080A1B38 @ =gStringVar4
- ldr r1, _080A1B3C @ =gUnknown_8416600
- bl StringExpandPlaceholders
- ldr r1, _080A1B40 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
-_080A1B1A:
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A1B44 @ =sub_80A1B48
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x18]
-_080A1B26:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1B2C: .4byte 0x00000804
-_080A1B30: .4byte 0x00000803
-_080A1B34: .4byte gStringVar2
-_080A1B38: .4byte gStringVar4
-_080A1B3C: .4byte gUnknown_8416600
-_080A1B40: .4byte gTasks
-_080A1B44: .4byte sub_80A1B48
- thumb_func_end sub_80A1A94
-
- thumb_func_start sub_80A1B48
-sub_80A1B48: @ 80A1B48
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1B80 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080A1B78
- movs r0, 0x6E
- bl PlaySE
- ldr r2, _080A1B84 @ =gStringVar4
- ldr r3, _080A1B88 @ =sub_810A1F8
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8108E70
-_080A1B78:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1B80: .4byte gTasks
-_080A1B84: .4byte gStringVar4
-_080A1B88: .4byte sub_810A1F8
- thumb_func_end sub_80A1B48
-
- thumb_func_start sub_80A1B8C
-sub_80A1B8C: @ 80A1B8C
- push {lr}
- ldr r0, _080A1BA0 @ =gMapHeader
- ldrb r1, [r0, 0x19]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A1BA4
- movs r0, 0
- b _080A1BA6
- .align 2, 0
-_080A1BA0: .4byte gMapHeader
-_080A1BA4:
- movs r0, 0x1
-_080A1BA6:
- pop {r1}
- bx r1
- thumb_func_end sub_80A1B8C
-
- thumb_func_start ItemUseOutOfBattle_EscapeRope
-ItemUseOutOfBattle_EscapeRope: @ 80A1BAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80A1B8C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A1BEC
- ldr r0, _080A1BDC @ =gSpecialVar_ItemId
- ldrh r2, [r0]
- ldr r0, _080A1BE0 @ =gMapHeader
- ldrb r3, [r0, 0x14]
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r1, _080A1BE4 @ =gUnknown_2039998
- ldr r0, _080A1BE8 @ =sub_80A1C08
- str r0, [r1]
- adds r0, r4, 0
- bl sub_80A103C
- b _080A1BFE
- .align 2, 0
-_080A1BDC: .4byte gSpecialVar_ItemId
-_080A1BE0: .4byte gMapHeader
-_080A1BE4: .4byte gUnknown_2039998
-_080A1BE8: .4byte sub_80A1C08
-_080A1BEC:
- ldr r0, _080A1C04 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r4, 0
- bl sub_80A1110
-_080A1BFE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C04: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EscapeRope
-
- thumb_func_start sub_80A1C08
-sub_80A1C08: @ 80A1C08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8054D70
- bl sub_80A1A44
- ldr r1, _080A1C38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r2, _080A1C3C @ =gStringVar4
- ldr r3, _080A1C40 @ =sub_80A1C44
- adds r0, r4, 0
- movs r1, 0x2
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C38: .4byte gTasks
-_080A1C3C: .4byte gStringVar4
-_080A1C40: .4byte sub_80A1C44
- thumb_func_end sub_80A1C08
-
- thumb_func_start sub_80A1C44
-sub_80A1C44: @ 80A1C44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80559E4
- bl sub_8085620
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1C44
-
- thumb_func_start sub_80A1C60
-sub_80A1C60: @ 80A1C60
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A1C88 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A1C90
- ldr r0, _080A1C8C @ =sub_80A1CAC
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
- b _080A1CA0
- .align 2, 0
-_080A1C88: .4byte gTasks
-_080A1C8C: .4byte sub_80A1CAC
-_080A1C90:
- bl sub_80CCB68
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080A1CA8 @ =sub_80A1CC0
- str r0, [r5]
-_080A1CA0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1CA8: .4byte sub_80A1CC0
- thumb_func_end sub_80A1C60
-
- thumb_func_start sub_80A1CAC
-sub_80A1CAC: @ 80A1CAC
- push {lr}
- ldr r1, _080A1CBC @ =UseFameCheckerFromMenu
- movs r0, 0
- bl sub_80BFF50
- pop {r0}
- bx r0
- .align 2, 0
-_080A1CBC: .4byte UseFameCheckerFromMenu
- thumb_func_end sub_80A1CAC
-
- thumb_func_start sub_80A1CC0
-sub_80A1CC0: @ 80A1CC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1CF0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A1CE8
- bl sub_80563F0
- bl sub_80A1184
- ldr r1, _080A1CF4 @ =c2_exit_to_overworld_2_switch
- movs r0, 0
- bl sub_80BFF50
- adds r0, r4, 0
- bl DestroyTask
-_080A1CE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1CF0: .4byte gPaletteFade
-_080A1CF4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A1CC0
-
- thumb_func_start sub_80A1CF8
-sub_80A1CF8: @ 80A1CF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1D2C @ =gSpecialVar_ItemId
- ldrh r2, [r0]
- ldr r3, _080A1D30 @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r1, _080A1D34 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A1D3C
- ldr r0, _080A1D38 @ =sub_80A1D58
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
- b _080A1D4C
- .align 2, 0
-_080A1D2C: .4byte gSpecialVar_ItemId
-_080A1D30: .4byte 0x0000ffff
-_080A1D34: .4byte gTasks
-_080A1D38: .4byte sub_80A1D58
-_080A1D3C:
- bl sub_80CCB68
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080A1D54 @ =sub_80A1D68
- str r0, [r5]
-_080A1D4C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D54: .4byte sub_80A1D68
- thumb_func_end sub_80A1CF8
-
- thumb_func_start sub_80A1D58
-sub_80A1D58: @ 80A1D58
- push {lr}
- ldr r0, _080A1D64 @ =UseFameCheckerFromMenu
- bl UseFameChecker
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D64: .4byte UseFameCheckerFromMenu
- thumb_func_end sub_80A1D58
-
- thumb_func_start sub_80A1D68
-sub_80A1D68: @ 80A1D68
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1D94 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A1D8E
- bl sub_80563F0
- bl sub_80A1184
- ldr r0, _080A1D98 @ =c2_exit_to_overworld_2_switch
- bl UseFameChecker
- adds r0, r4, 0
- bl DestroyTask
-_080A1D8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D94: .4byte gPaletteFade
-_080A1D98: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A1D68
-
- thumb_func_start sub_80A1D9C
-sub_80A1D9C: @ 80A1D9C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A1DE8 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x3
- beq _080A1DB2
- cmp r0, 0x1
- beq _080A1DB2
- cmp r0, 0x2
- bne _080A1DD2
-_080A1DB2:
- ldr r0, _080A1DEC @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- bne _080A1DF4
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0
- beq _080A1DD2
- cmp r0, 0x61
- beq _080A1DD2
- cmp r0, 0x6D
- beq _080A1DD2
- cmp r0, 0x79
- bne _080A1DF4
-_080A1DD2:
- ldr r0, _080A1DF0 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r2, 0
- bl sub_80A1110
- b _080A1E00
- .align 2, 0
-_080A1DE8: .4byte gMapHeader
-_080A1DEC: .4byte gSaveBlock1Ptr
-_080A1DF0: .4byte gTasks
-_080A1DF4:
- ldr r1, _080A1E04 @ =gUnknown_2039998
- ldr r0, _080A1E08 @ =Task_VsSeeker_0
- str r0, [r1]
- adds r0, r2, 0
- bl sub_80A103C
-_080A1E00:
- pop {r0}
- bx r0
- .align 2, 0
-_080A1E04: .4byte gUnknown_2039998
-_080A1E08: .4byte Task_VsSeeker_0
- thumb_func_end sub_80A1D9C
-
- thumb_func_start sub_80A1E0C
-sub_80A1E0C: @ 80A1E0C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A112C
- pop {r0}
- bx r0
- thumb_func_end sub_80A1E0C
-
- thumb_func_start sub_80A1E1C
-sub_80A1E1C: @ 80A1E1C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsPlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- bne _080A1E48
- ldr r0, _080A1E44 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_809A1D8
- bl sub_8108CB4
- adds r0, r4, 0
- bl sub_8108B50
- b _080A1E54
- .align 2, 0
-_080A1E44: .4byte gSpecialVar_ItemId
-_080A1E48:
- ldr r2, _080A1E5C @ =gUnknown_8416631
- ldr r3, _080A1E60 @ =sub_810A1F8
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8108E70
-_080A1E54:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1E5C: .4byte gUnknown_8416631
-_080A1E60: .4byte sub_810A1F8
- thumb_func_end sub_80A1E1C
-
- thumb_func_start sub_80A1E64
-sub_80A1E64: @ 80A1E64
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8108CB4
- adds r0, r4, 0
- bl sub_8108B50
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1E64
-
- thumb_func_start sub_80A1E7C
-sub_80A1E7C: @ 80A1E7C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A1EBC @ =gBattlerPartyIndexes
- ldr r0, _080A1EC0 @ =gBattlerInMenuId
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _080A1EC4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080A1EC8 @ =gSpecialVar_ItemId
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- bl ExecuteTableBasedItemEffect
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080A1ED4
- ldr r2, _080A1ECC @ =gUnknown_84169DC
- ldr r3, _080A1ED0 @ =sub_810A1F8
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8108E70
- b _080A1EE4
- .align 2, 0
-_080A1EBC: .4byte gBattlerPartyIndexes
-_080A1EC0: .4byte gBattlerInMenuId
-_080A1EC4: .4byte gPlayerParty
-_080A1EC8: .4byte gSpecialVar_ItemId
-_080A1ECC: .4byte gUnknown_84169DC
-_080A1ED0: .4byte sub_810A1F8
-_080A1ED4:
- ldr r0, _080A1EEC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x18]
- ldr r0, _080A1EF0 @ =sub_80A1EF4
- str r0, [r1]
-_080A1EE4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1EEC: .4byte gTasks
-_080A1EF0: .4byte sub_80A1EF4
- thumb_func_end sub_80A1E7C
-
- thumb_func_start sub_80A1EF4
-sub_80A1EF4: @ 80A1EF4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- ldr r0, _080A1F3C @ =gTasks+0x8
- adds r1, r0
- ldrh r0, [r1, 0x10]
- adds r0, 0x1
- strh r0, [r1, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080A1F36
- ldr r0, _080A1F40 @ =gSpecialVar_ItemId
- ldrh r4, [r0]
- movs r0, 0x1
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809A1D8
- adds r0, r4, 0
- bl sub_8042DA4
- adds r2, r0, 0
- ldr r3, _080A1F44 @ =sub_80A1F48
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8108E70
-_080A1F36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F3C: .4byte gTasks+0x8
-_080A1F40: .4byte gSpecialVar_ItemId
-_080A1F44: .4byte sub_80A1F48
- thumb_func_end sub_80A1EF4
-
- thumb_func_start sub_80A1F48
-sub_80A1F48: @ 80A1F48
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1F74 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A1F62
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A1F6C
-_080A1F62:
- bl sub_8108CB4
- adds r0, r4, 0
- bl sub_8108B50
-_080A1F6C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F74: .4byte gMain
- thumb_func_end sub_80A1F48
-
- thumb_func_start sub_80A1F78
-sub_80A1F78: @ 80A1F78
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A1F9C @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080A1FA4
- ldr r0, _080A1FA0 @ =sub_81279E0
- bl sub_813D934
- adds r0, r4, 0
- bl sub_813D808
- b _080A1FB0
- .align 2, 0
-_080A1F9C: .4byte gSpecialVar_ItemId
-_080A1FA0: .4byte sub_81279E0
-_080A1FA4:
- ldr r0, _080A1FB8 @ =sub_81279E0
- bl sub_8108EE0
- adds r0, r4, 0
- bl sub_8108B50
-_080A1FB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1FB8: .4byte sub_81279E0
- thumb_func_end sub_80A1F78
-
- thumb_func_start sub_80A1FBC
-sub_80A1FBC: @ 80A1FBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A1FD0 @ =gUnknown_3005E98
- ldr r1, _080A1FD4 @ =ItemUseCB_Medicine
- str r1, [r2]
- bl sub_80A1F78
- pop {r0}
- bx r0
- .align 2, 0
-_080A1FD0: .4byte gUnknown_3005E98
-_080A1FD4: .4byte ItemUseCB_Medicine
- thumb_func_end sub_80A1FBC
-
- thumb_func_start sub_80A1FD8
-sub_80A1FD8: @ 80A1FD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A1FEC @ =gUnknown_3005E98
- ldr r1, _080A1FF0 @ =sub_8126894
- str r1, [r2]
- bl sub_80A1F78
- pop {r0}
- bx r0
- .align 2, 0
-_080A1FEC: .4byte gUnknown_3005E98
-_080A1FF0: .4byte sub_8126894
- thumb_func_end sub_80A1FD8
-
- thumb_func_start sub_80A1FF4
-sub_80A1FF4: @ 80A1FF4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A2008 @ =gUnknown_3005E98
- ldr r1, _080A200C @ =sub_81256F8
- str r1, [r2]
- bl sub_80A1F78
- pop {r0}
- bx r0
- .align 2, 0
-_080A2008: .4byte gUnknown_3005E98
-_080A200C: .4byte sub_81256F8
- thumb_func_end sub_80A1FF4
-
- thumb_func_start sub_80A2010
-sub_80A2010: @ 80A2010
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A2044 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080A2058
- bl sub_80A1A44
- ldr r0, _080A2048 @ =gSpecialVar_ItemId
- ldrh r2, [r0]
- ldr r3, _080A204C @ =0x0000ffff
- movs r0, 0x4
- movs r1, 0
- bl sub_80A2294
- ldr r2, _080A2050 @ =gStringVar4
- ldr r3, _080A2054 @ =sub_8108B50
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8108E70
- b _080A2060
- .align 2, 0
-_080A2044: .4byte gBattleTypeFlags
-_080A2048: .4byte gSpecialVar_ItemId
-_080A204C: .4byte 0x0000ffff
-_080A2050: .4byte gStringVar4
-_080A2054: .4byte sub_8108B50
-_080A2058:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1110
-_080A2060:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2010
-
- thumb_func_start ItemUseOutOfBattle_EnigmaBerry
-ItemUseOutOfBattle_EnigmaBerry: @ 80A2068
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A208C @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x14
- bls _080A2082
- b _080A2174
-_080A2082:
- lsls r0, 2
- ldr r1, _080A2090 @ =_080A2094
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A208C: .4byte gSpecialVar_ItemId
-_080A2090: .4byte _080A2094
- .align 2, 0
-_080A2094:
- .4byte _080A2120
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A2174
- .4byte _080A2174
- .4byte _080A2104
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A20E8
- .4byte _080A2174
- .4byte _080A213C
- .4byte _080A213C
- .4byte _080A2158
-_080A20E8:
- ldr r0, _080A2100 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl sub_80A16E0
- b _080A2188
- .align 2, 0
-_080A2100: .4byte gTasks
-_080A2104:
- ldr r0, _080A211C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl sub_80A176C
- b _080A2188
- .align 2, 0
-_080A211C: .4byte gTasks
-_080A2120:
- ldr r0, _080A2138 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl sub_80A1734
- b _080A2188
- .align 2, 0
-_080A2138: .4byte gTasks
-_080A213C:
- ldr r0, _080A2154 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl sub_80A1718
- b _080A2188
- .align 2, 0
-_080A2154: .4byte gTasks
-_080A2158:
- ldr r0, _080A2170 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl sub_80A16FC
- b _080A2188
- .align 2, 0
-_080A2170: .4byte gTasks
-_080A2174:
- ldr r0, _080A2190 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x4
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl sub_80A2238
-_080A2188:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2190: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EnigmaBerry
-
- thumb_func_start ItemUseInBattle_EnigmaBerry
-ItemUseInBattle_EnigmaBerry: @ 80A2194
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A21B4 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _080A222C
- lsls r0, 2
- ldr r1, _080A21B8 @ =_080A21BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A21B4: .4byte gSpecialVar_ItemId
-_080A21B8: .4byte _080A21BC
- .align 2, 0
-_080A21BC:
- .4byte _080A2214
- .4byte _080A222C
- .4byte _080A221C
- .4byte _080A221C
- .4byte _080A221C
- .4byte _080A221C
- .4byte _080A221C
- .4byte _080A221C
- .4byte _080A221C
- .4byte _080A221C
- .4byte _080A222C
- .4byte _080A221C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A222C
- .4byte _080A2224
-_080A2214:
- adds r0, r4, 0
- bl sub_80A1E7C
- b _080A2232
-_080A221C:
- adds r0, r4, 0
- bl sub_80A1FBC
- b _080A2232
-_080A2224:
- adds r0, r4, 0
- bl sub_80A1FF4
- b _080A2232
-_080A222C:
- adds r0, r4, 0
- bl sub_80A2238
-_080A2232:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemUseInBattle_EnigmaBerry
-
- thumb_func_start sub_80A2238
-sub_80A2238: @ 80A2238
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080A2268 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080A2278
- ldr r4, _080A226C @ =gStringVar4
- ldr r1, _080A2270 @ =gUnknown_8416425
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, _080A2274 @ =sub_813E2B8
- adds r0, r5, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl sub_813EB20
- b _080A228A
- .align 2, 0
-_080A2268: .4byte gSpecialVar_ItemId
-_080A226C: .4byte gStringVar4
-_080A2270: .4byte gUnknown_8416425
-_080A2274: .4byte sub_813E2B8
-_080A2278:
- ldr r0, _080A2290 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r5, 0
- bl sub_80A1110
-_080A228A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2290: .4byte gTasks
- thumb_func_end sub_80A2238
-
- thumb_func_start sub_80A2294
-sub_80A2294: @ 80A2294
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- adds r4, r2, 0
- adds r5, r3, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0x8
- bl Alloc
- adds r6, r0, 0
- strh r4, [r6]
- strh r5, [r6, 0x6]
- cmp r7, 0
- beq _080A22C8
- adds r0, r7, 0
- movs r1, 0x41
- bl GetMonData
- b _080A22CA
-_080A22C8:
- ldr r0, _080A22E4 @ =0x0000ffff
-_080A22CA:
- strh r0, [r6, 0x4]
- mov r0, r8
- adds r1, r6, 0
- bl sub_8113550
- adds r0, r6, 0
- bl Free
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A22E4: .4byte 0x0000ffff
- thumb_func_end sub_80A2294
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/itemfinder.s b/asm/itemfinder.s
index bf3e78ebc..e510252ab 100644
--- a/asm/itemfinder.s
+++ b/asm/itemfinder.s
@@ -81,7 +81,7 @@ sub_813ED18: @ 813ED18
lsrs r4, 24
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
bl sub_80696C0
bl ScriptContext2_Disable
adds r0, r4, 0
@@ -970,7 +970,7 @@ sub_813F380: @ 813F380
bl sub_813F3FC
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
bl sub_80696C0
bl ScriptContext2_Disable
adds r0, r4, 0
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 5068e6d16..4a37c7eae 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -50,8 +50,8 @@ sub_80E4660: @ 80E4660
bne _080E4684
ldr r0, _080E4690 @ =sub_80E478C
bl SetMainCallback2
- ldr r1, _080E4694 @ =gUnknown_3005020
- ldr r0, _080E4698 @ =sub_807DD24
+ ldr r1, _080E4694 @ =gFieldCallback
+ ldr r0, _080E4698 @ =FieldCallback_ReturnToEventScript2
str r0, [r1]
adds r0, r4, 0
bl DestroyTask
@@ -62,8 +62,8 @@ _080E4684:
.align 2, 0
_080E468C: .4byte gPaletteFade
_080E4690: .4byte sub_80E478C
-_080E4694: .4byte gUnknown_3005020
-_080E4698: .4byte sub_807DD24
+_080E4694: .4byte gFieldCallback
+_080E4698: .4byte FieldCallback_ReturnToEventScript2
thumb_func_end sub_80E4660
thumb_func_start sub_80E469C
@@ -119,7 +119,7 @@ _080E46C6:
movs r0, 0
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0xD0
movs r1, 0x1
bl sub_8107D38
@@ -133,7 +133,7 @@ _080E46C6:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _080E4788 @ =gUnknown_8E97EC4
movs r0, 0x1
movs r2, 0
@@ -296,7 +296,7 @@ sub_80E48C0: @ 80E48C0
ldr r4, _080E48F0 @ =gStringVar4
adds r0, r4, 0
bl StringExpandPlaceholders
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r0, [sp]
@@ -454,7 +454,7 @@ _080E4A3E:
movs r1, 0x3
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r0, _080E4A64 @ =gUnknown_203AAB4
ldr r1, [r0]
ldrb r0, [r1]
@@ -540,7 +540,7 @@ _080E4AF4:
movs r1, 0x3
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r0, _080E4B1C @ =gUnknown_203AAB4
ldr r1, [r0]
ldrb r0, [r1]
@@ -601,7 +601,7 @@ _080E4B70:
movs r1, 0x3
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r0, _080E4B94 @ =gUnknown_203AAB4
ldr r1, [r0]
movs r0, 0x12
@@ -665,7 +665,7 @@ _080E4BF4:
movs r1, 0x3
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r0, _080E4C18 @ =gUnknown_203AAB4
ldr r1, [r0]
movs r0, 0x1A
@@ -736,7 +736,7 @@ _080E4C7E:
adds r1, r2, r3
ldr r6, _080E4CD4 @ =0x00000a6a
adds r2, r6
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
bl FreeAllWindowBuffers
ldr r0, _080E4CD8 @ =gPlayerParty
ldr r5, [r7]
@@ -810,13 +810,13 @@ _080E4D26:
ldr r0, _080E4D40 @ =gUnknown_203AAB4
ldr r0, [r0]
bl Free
- ldr r0, _080E4D44 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080E4D44 @ =CB2_ReturnToField
bl SetMainCallback2
b _080E4EDA
.align 2, 0
_080E4D3C: .4byte gPaletteFade
_080E4D40: .4byte gUnknown_203AAB4
-_080E4D44: .4byte c2_exit_to_overworld_2_switch
+_080E4D44: .4byte CB2_ReturnToField
_080E4D48:
movs r0, 0x1
negs r0, r0
@@ -1016,7 +1016,7 @@ _080E4EF4:
lsrs r0, 24
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r4, 0x1
cmp r4, 0x7
ble _080E4EF4
@@ -1373,7 +1373,7 @@ _080E51AA:
adds r2, r3
movs r0, 0xFE
str r0, [r2]
- ldr r2, _080E51FC @ =gUnknown_3005E70
+ ldr r2, _080E51FC @ =gMultiuseListMenuTemplate
adds r1, r2, 0
ldr r0, _080E5200 @ =gUnknown_83FFA94
ldm r0!, {r3,r5,r6}
@@ -1397,7 +1397,7 @@ _080E51EC: .4byte gPlayerParty
_080E51F0: .4byte gMoveNames
_080E51F4: .4byte gStringVar1
_080E51F8: .4byte gFameCheckerText_Cancel
-_080E51FC: .4byte gUnknown_3005E70
+_080E51FC: .4byte gMultiuseListMenuTemplate
_080E5200: .4byte gUnknown_83FFA94
thumb_func_end sub_80E50CC
@@ -1523,7 +1523,7 @@ _080E52FA:
thumb_func_start sub_80E5300
sub_80E5300: @ 80E5300
push {r4,lr}
- ldr r0, _080E5330 @ =gUnknown_3005E70
+ ldr r0, _080E5330 @ =gMultiuseListMenuTemplate
ldr r4, _080E5334 @ =gUnknown_203AAB4
ldr r2, [r4]
ldr r3, _080E5338 @ =0x00000a68
@@ -1544,7 +1544,7 @@ sub_80E5300: @ 80E5300
pop {r0}
bx r0
.align 2, 0
-_080E5330: .4byte gUnknown_3005E70
+_080E5330: .4byte gMultiuseListMenuTemplate
_080E5334: .4byte gUnknown_203AAB4
_080E5338: .4byte 0x00000a68
_080E533C: .4byte 0x00000263
@@ -1568,11 +1568,11 @@ sub_80E5340: @ 80E5340
movs r0, 0x2
movs r2, 0x1
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bhi _080E5388
- ldr r1, _080E5384 @ =gUnknown_8416213
+ ldr r1, _080E5384 @ =gText_ThreeHyphens
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
@@ -1583,7 +1583,7 @@ sub_80E5340: @ 80E5340
b _080E53A6
.align 2, 0
_080E5380: .4byte gBattleMoves
-_080E5384: .4byte gUnknown_8416213
+_080E5384: .4byte gText_ThreeHyphens
_080E5388:
ldrb r1, [r4, 0x1]
add r0, sp, 0x8
@@ -1608,7 +1608,7 @@ _080E53A6:
adds r4, r1, 0
cmp r2, 0
bne _080E53D4
- ldr r1, _080E53D0 @ =gUnknown_8416213
+ ldr r1, _080E53D0 @ =gText_ThreeHyphens
str r2, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
@@ -1619,7 +1619,7 @@ _080E53A6:
b _080E53F4
.align 2, 0
_080E53CC: .4byte gBattleMoves
-_080E53D0: .4byte gUnknown_8416213
+_080E53D0: .4byte gText_ThreeHyphens
_080E53D4:
ldrb r1, [r0, 0x3]
add r0, sp, 0x8
@@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444
movs r1, 0x13
movs r2, 0x1
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0x1
movs r1, 0x14
movs r2, 0
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0x1
movs r1, 0x15
movs r2, 0
movs r3, 0x13
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
movs r1, 0x16
movs r2, 0x1
movs r3, 0x13
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
movs r1, 0x17
movs r2, 0x1
movs r3, 0x22
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
@@ -1814,7 +1814,7 @@ _080E5570: .4byte 0x00000a67
thumb_func_start sub_80E5574
sub_80E5574: @ 80E5574
push {r4,lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@@ -1936,7 +1936,7 @@ _080E563E:
movs r1, 0x3
adds r2, r7, 0
adds r3, r6, 0
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0x14
pop {r3-r5}
mov r8, r3
diff --git a/asm/link.s b/asm/link.s
index a0ba7f9cb..28dc18656 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -29,7 +29,7 @@ _08009498:
cmp r0, r1
beq _080094C4
bl sub_800B210
- bl sub_80098B8
+ bl CloseLink
bl RestoreSerialTimer3IntrHandlers
movs r0, 0
b _080094CE
@@ -507,8 +507,8 @@ _080098B0: .4byte gUnknown_3003F30
_080098B4: .4byte gUnknown_3003F2C
thumb_func_end sub_8009804
- thumb_func_start sub_80098B8
-sub_80098B8: @ 80098B8
+ thumb_func_start CloseLink
+CloseLink: @ 80098B8
push {r4,lr}
ldr r0, _080098DC @ =gReceivedRemoteLinkPlayers
movs r4, 0
@@ -529,7 +529,7 @@ _080098CC:
_080098DC: .4byte gReceivedRemoteLinkPlayers
_080098E0: .4byte gWirelessCommType
_080098E4: .4byte gLinkOpen
- thumb_func_end sub_80098B8
+ thumb_func_end CloseLink
thumb_func_start TestBlockTransfer
TestBlockTransfer: @ 80098E8
@@ -870,7 +870,7 @@ _08009B7E:
movs r0, 0
strh r0, [r3]
lsls r4, r6, 4
- ldr r5, _08009BCC @ =gUnknown_3003ED0
+ ldr r5, _08009BCC @ =gRecvCmds
adds r2, r4, r5
ldrh r0, [r2]
mov r12, r1
@@ -906,7 +906,7 @@ _08009BC4:
b _08009E3E
.align 2, 0
_08009BC8: .4byte gUnknown_3003E60
-_08009BCC: .4byte gUnknown_3003ED0
+_08009BCC: .4byte gRecvCmds
_08009BD0: .4byte 0x00005fff
_08009BD4: .4byte 0x00004444
_08009BD8: .4byte 0x00002222
@@ -1006,12 +1006,12 @@ _08009C94:
adds r1, r0
movs r2, 0
strh r2, [r1]
- ldr r0, _08009CBC @ =gUnknown_3003ED0
+ ldr r0, _08009CBC @ =gRecvCmds
adds r0, 0x2
adds r0, r4, r0
ldrh r0, [r0]
strh r0, [r1, 0x2]
- ldr r0, _08009CBC @ =gUnknown_3003ED0
+ ldr r0, _08009CBC @ =gRecvCmds
adds r0, 0x4
adds r0, r4, r0
ldrh r0, [r0]
@@ -1019,7 +1019,7 @@ _08009C94:
b _08009E3E
.align 2, 0
_08009CB8: .4byte gUnknown_3000E18
-_08009CBC: .4byte gUnknown_3003ED0
+_08009CBC: .4byte gRecvCmds
_08009CC0:
mov r3, r12
adds r0, r3, r6
@@ -1037,7 +1037,7 @@ _08009CC0:
mov r8, r0
movs r2, 0
adds r5, r3, 0
- ldr r7, _08009D0C @ =gUnknown_3003ED0
+ ldr r7, _08009D0C @ =gRecvCmds
adds r3, r4, 0
_08009CE4:
ldrh r1, [r5]
@@ -1059,13 +1059,13 @@ _08009CE4:
.align 2, 0
_08009D04: .4byte gUnknown_3000E18
_08009D08: .4byte gDecompressionBuffer
-_08009D0C: .4byte gUnknown_3003ED0
+_08009D0C: .4byte gRecvCmds
_08009D10:
movs r2, 0
ldr r1, _08009DC4 @ =gBlockRecvBuffer
mov r9, r1
adds r7, r3, 0
- ldr r3, _08009DC8 @ =gUnknown_3003ED0
+ ldr r3, _08009DC8 @ =gRecvCmds
mov r8, r3
lsls r5, r6, 8
adds r3, r4, 0
@@ -1153,7 +1153,7 @@ _08009DBC:
b _08009E3E
.align 2, 0
_08009DC4: .4byte gBlockRecvBuffer
-_08009DC8: .4byte gUnknown_3003ED0
+_08009DC8: .4byte gRecvCmds
_08009DCC: .4byte gUnknown_3003EB8
_08009DD0: .4byte gLinkPlayers
_08009DD4: .4byte gUnknown_82345C0
@@ -1187,7 +1187,7 @@ _08009E08:
b _08009E3E
_08009E0E:
ldr r3, _08009E2C @ =gUnknown_8234598
- ldr r0, _08009E30 @ =gUnknown_3003ED0
+ ldr r0, _08009E30 @ =gRecvCmds
adds r0, 0x2
adds r0, r4, r0
ldrh r2, [r0]
@@ -1202,9 +1202,9 @@ _08009E0E:
b _08009E3E
.align 2, 0
_08009E2C: .4byte gUnknown_8234598
-_08009E30: .4byte gUnknown_3003ED0
+_08009E30: .4byte gRecvCmds
_08009E34:
- ldr r0, _08009E5C @ =gUnknown_3003ED0
+ ldr r0, _08009E5C @ =gRecvCmds
adds r0, 0x2
adds r0, r4, r0
ldrh r0, [r0]
@@ -1226,7 +1226,7 @@ _08009E4A:
pop {r0}
bx r0
.align 2, 0
-_08009E5C: .4byte gUnknown_3003ED0
+_08009E5C: .4byte gRecvCmds
thumb_func_end sub_8009B70
thumb_func_start sub_8009E60
@@ -1596,7 +1596,7 @@ _0800A100:
bne _0800A112
ldr r0, _0800A11C @ =gUnknown_3003EAC
strb r4, [r0]
- bl sub_80098B8
+ bl CloseLink
_0800A112:
movs r6, 0
ldr r4, _0800A120 @ =gLinkPlayers
@@ -2122,7 +2122,7 @@ sub_800A4BC: @ 800A4BC
ldrb r0, [r0]
cmp r0, 0x1
bne _0800A4D4
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
lsrs r0, 24
b _0800A4E2
@@ -2833,7 +2833,7 @@ _0800A9E6:
ldr r1, _0800AA1C @ =gUnknown_3003EAC
movs r0, 0x1
strb r0, [r1]
- bl sub_80098B8
+ bl CloseLink
ldr r0, _0800AA20 @ =c2_800ACD4
bl SetMainCallback2
_0800A9F6:
@@ -3045,7 +3045,7 @@ _0800AB5C:
ldr r0, _0800AB90 @ =gLinkVSyncDisabled
movs r4, 0x1
strb r4, [r0]
- bl sub_80098B8
+ bl CloseLink
ldr r1, _0800AB94 @ =gUnknown_3003F80
movs r0, 0
str r0, [r1]
@@ -3198,7 +3198,7 @@ _0800AC8E:
ldr r1, _0800ACB8 @ =gUnknown_3003EAC
movs r0, 0x1
strb r0, [r1]
- bl sub_80098B8
+ bl CloseLink
_0800AC98:
pop {r0}
bx r0
@@ -3252,7 +3252,7 @@ c2_800ACD4: @ 800ACD4
movs r2, 0x2
bl FillPalette
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
ldr r1, _0800ADF0 @ =gWirelessCommType
ldrb r0, [r1]
cmp r0, 0
@@ -3308,7 +3308,7 @@ _0800AD30:
lsls r1, 8
movs r0, 0
bl ClearGpuRegBits
- ldr r0, _0800AE08 @ =gUnknown_841F408
+ ldr r0, _0800AE08 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -3343,7 +3343,7 @@ _0800ADF8: .4byte sub_800978C
_0800ADFC: .4byte gUnknown_82345E8
_0800AE00: .4byte gUnknown_2022860
_0800AE04: .4byte gUnknown_82345F0
-_0800AE08: .4byte gUnknown_841F408
+_0800AE08: .4byte gTMCaseMainWindowPalette
_0800AE0C: .4byte gSoftResetDisabled
_0800AE10: .4byte sub_80094D4
_0800AE14: .4byte gMain
@@ -3360,7 +3360,7 @@ sub_800AE1C: @ 800AE1C
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _0800AEBC @ =gWirelessLinkDisplayBin
movs r0, 0x1
movs r2, 0
@@ -3387,7 +3387,7 @@ sub_800AE1C: @ 800AE1C
movs r1, 0x3
movs r2, 0x2
movs r3, 0x5
- bl box_print
+ bl AddTextPrinterParameterized3
str r4, [sp]
str r5, [sp, 0x4]
ldr r0, _0800AECC @ =gUnknown_841DF05
@@ -3396,7 +3396,7 @@ sub_800AE1C: @ 800AE1C
movs r1, 0x3
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
bl PutWindowTilemap
movs r0, 0x2
@@ -3444,7 +3444,7 @@ sub_800AED0: @ 800AED0
movs r1, 0x3
movs r2, 0x2
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x2
@@ -3522,7 +3522,7 @@ _0800AF7A:
movs r1, 0x3
movs r2, 0x2
movs r3, 0x14
- bl box_print
+ bl AddTextPrinterParameterized3
b _0800AFC4
.align 2, 0
_0800AF9C: .4byte gWirelessCommType
@@ -3541,7 +3541,7 @@ _0800AFA8:
movs r1, 0x3
movs r2, 0x2
movs r3, 0x14
- bl box_print
+ bl AddTextPrinterParameterized3
_0800AFC4:
ldr r0, _0800B004 @ =gMain
movs r2, 0x87
@@ -3779,7 +3779,7 @@ HandleLinkConnection: @ 800B178
bne _0800B1C8
ldr r0, _0800B1B4 @ =gUnknown_3003F84
ldr r1, _0800B1B8 @ =gUnknown_3003F50
- ldr r2, _0800B1BC @ =gUnknown_3003ED0
+ ldr r2, _0800B1BC @ =gRecvCmds
bl LinkMain1
ldr r4, _0800B1C0 @ =gUnknown_3003F20
str r0, [r4]
@@ -3801,7 +3801,7 @@ _0800B1AA:
_0800B1B0: .4byte gWirelessCommType
_0800B1B4: .4byte gUnknown_3003F84
_0800B1B8: .4byte gUnknown_3003F50
-_0800B1BC: .4byte gUnknown_3003ED0
+_0800B1BC: .4byte gRecvCmds
_0800B1C0: .4byte gUnknown_3003F20
_0800B1C4: .4byte gMain + 0x2C
_0800B1C8:
@@ -4686,7 +4686,7 @@ _0800B85C:
_0800B860:
adds r0, r2, 0
strh r0, [r1]
- ldr r2, _0800B8BC @ =gUnknown_3003FB4
+ ldr r2, _0800B8BC @ =gSioMlt_Recv
ldr r3, _0800B8C0 @ =0x04000120
ldr r0, [r3]
ldr r1, [r3, 0x4]
@@ -4731,7 +4731,7 @@ _0800B8A0:
.align 2, 0
_0800B8B4: .4byte 0x0400012a
_0800B8B8: .4byte 0x0000b9a0
-_0800B8BC: .4byte gUnknown_3003FB4
+_0800B8BC: .4byte gSioMlt_Recv
_0800B8C0: .4byte 0x04000120
_0800B8C4: .4byte gUnknown_3000E6B
_0800B8C8: .4byte 0x00008fff
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index 08f81f729..a1d543dd6 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -3259,7 +3259,7 @@ sub_80FEC54: @ 80FEC54
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _080FEC70
_080FEC62:
@@ -4359,7 +4359,7 @@ _080FF4A2:
thumb_func_start sub_80FF4A8
sub_80FF4A8: @ 80FF4A8
push {lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -4400,7 +4400,7 @@ _080FF4EA:
thumb_func_start sub_80FF4F0
sub_80FF4F0: @ 80FF4F0
push {r4,lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -4446,7 +4446,7 @@ _080FF53E:
thumb_func_start sub_80FF544
sub_80FF544: @ 80FF544
push {lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -6079,7 +6079,7 @@ _08100038:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _08100068 @ =gUnknown_8E99E74
movs r0, 0x3
movs r2, 0
@@ -6106,7 +6106,7 @@ _0810006C:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
movs r0, 0x1
bl CopyBgTilemapBufferToVram
b _08100104
@@ -7823,7 +7823,7 @@ _08100E0A:
str r0, [sp, 0x8]
mov r0, r12
adds r2, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x10
pop {r3,r4}
mov r8, r3
@@ -7851,11 +7851,11 @@ sub_8100E34: @ 8100E34
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl sub_8100E7C
movs r0, 0x1
@@ -7964,7 +7964,7 @@ sub_8100F18: @ 8100F18
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index d36eeca20..feb7c886f 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -77,7 +77,7 @@ _080F863E:
bl CpuSet
mov r0, r8
strh r5, [r0]
- ldr r1, _080F86B4 @ =gUnknown_3003ED0
+ ldr r1, _080F86B4 @ =gRecvCmds
ldr r2, _080F86B8 @ =0x01000028
bl CpuSet
mov r0, r9
@@ -99,7 +99,7 @@ _080F86A4: .4byte gUnknown_30054BC
_080F86A8: .4byte 0x00000634
_080F86AC: .4byte gUnknown_3003F50
_080F86B0: .4byte 0x01000008
-_080F86B4: .4byte gUnknown_3003ED0
+_080F86B4: .4byte gRecvCmds
_080F86B8: .4byte 0x01000028
_080F86BC: .4byte gLinkPlayers
_080F86C0: .4byte 0x01000046
@@ -1228,7 +1228,7 @@ sub_80F8FD4: @ 80F8FD4
push {r4-r7,lr}
sub sp, 0x4
movs r2, 0
- ldr r7, _080F9028 @ =gUnknown_3003ED0
+ ldr r7, _080F9028 @ =gRecvCmds
ldr r0, _080F902C @ =gUnknown_3005450
adds r6, r7, 0
ldr r1, _080F9030 @ =0x0000093f
@@ -1268,7 +1268,7 @@ _080F8FF4:
pop {r0}
bx r0
.align 2, 0
-_080F9028: .4byte gUnknown_3003ED0
+_080F9028: .4byte gRecvCmds
_080F902C: .4byte gUnknown_3005450
_080F9030: .4byte 0x0000093f
_080F9034: .4byte 0x01000028
@@ -1278,7 +1278,7 @@ _080F9034: .4byte 0x01000028
sub_80F9038: @ 80F9038
push {lr}
ldr r3, _080F9064 @ =gUnknown_3003F50
- ldr r2, _080F9068 @ =gUnknown_3003ED0
+ ldr r2, _080F9068 @ =gRecvCmds
movs r1, 0x6
_080F9040:
ldrh r0, [r3]
@@ -1301,7 +1301,7 @@ _080F9056:
bx r0
.align 2, 0
_080F9064: .4byte gUnknown_3003F50
-_080F9068: .4byte gUnknown_3003ED0
+_080F9068: .4byte gRecvCmds
thumb_func_end sub_80F9038
thumb_func_start sub_80F906C
@@ -1375,7 +1375,7 @@ _080F90E8:
_080F90EC: .4byte gUnknown_3007460
_080F90F0:
movs r3, 0
- ldr r4, _080F9118 @ =gUnknown_3003ED0
+ ldr r4, _080F9118 @ =gRecvCmds
_080F90F4:
movs r2, 0
lsls r0, r3, 4
@@ -1397,7 +1397,7 @@ _080F9110:
pop {r1}
bx r1
.align 2, 0
-_080F9118: .4byte gUnknown_3003ED0
+_080F9118: .4byte gRecvCmds
thumb_func_end sub_80F90DC
thumb_func_start sub_80F911C
@@ -1664,7 +1664,7 @@ _080F9304:
str r2, [sp, 0x4]
adds r5, 0x1
str r5, [sp]
- ldr r1, _080F9450 @ =gUnknown_3003ED0
+ ldr r1, _080F9450 @ =gRecvCmds
mov r9, r1
adds r5, r3, 0
adds r7, r4, 0
@@ -1791,7 +1791,7 @@ _080F93FA:
_080F9444: .4byte gUnknown_3005450
_080F9448: .4byte 0x000009a6
_080F944C: .4byte gUnknown_3005DE6
-_080F9450: .4byte gUnknown_3003ED0
+_080F9450: .4byte gRecvCmds
_080F9454: .4byte 0x0000099d
_080F9458: .4byte 0x00000991
_080F945C: .4byte gUnknown_203AC08
@@ -1904,7 +1904,7 @@ sub_80F9514: @ 80F9514
mov r1, sp
bl sub_80FC6E8
movs r1, 0
- ldr r0, _080F963C @ =gUnknown_3003ED0
+ ldr r0, _080F963C @ =gRecvCmds
mov r12, r0
_080F952A:
movs r4, 0
@@ -2038,7 +2038,7 @@ _080F9628:
bx r1
.align 2, 0
_080F9638: .4byte gUnknown_3005574
-_080F963C: .4byte gUnknown_3003ED0
+_080F963C: .4byte gRecvCmds
_080F9640: .4byte gUnknown_3005E10
_080F9644: .4byte gUnknown_3005450
_080F9648: .4byte 0x0000099c
@@ -2348,7 +2348,7 @@ sub_80F9868: @ 80F9868
_080F9876:
mov r1, r8
lsls r5, r1, 4
- ldr r2, _080F98B4 @ =gUnknown_3003ED0
+ ldr r2, _080F98B4 @ =gRecvCmds
adds r0, r5, r2
ldrh r7, [r0]
movs r3, 0xFF
@@ -2379,7 +2379,7 @@ _080F98A2:
_080F98B0:
b _080F9BF4
.align 2, 0
-_080F98B4: .4byte gUnknown_3003ED0
+_080F98B4: .4byte gRecvCmds
_080F98B8:
movs r0, 0xEE
lsls r0, 7
@@ -2562,7 +2562,7 @@ _080F99FE:
adds r2, r4, 0x1
lsls r0, r2, 1
adds r0, r3
- ldr r4, _080F9A90 @ =gUnknown_3003ED0
+ ldr r4, _080F9A90 @ =gRecvCmds
adds r0, r4
ldrh r0, [r0]
strh r0, [r1]
@@ -2623,7 +2623,7 @@ _080F9A80:
.align 2, 0
_080F9A88: .4byte gUnknown_3005450
_080F9A8C: .4byte gBlockRecvBuffer
-_080F9A90: .4byte gUnknown_3003ED0
+_080F9A90: .4byte gRecvCmds
_080F9A94: .4byte gUnknown_843EBD4
_080F9A98: .4byte gReceivedRemoteLinkPlayers
_080F9A9C:
@@ -2703,7 +2703,7 @@ _080F9B00:
adds r0, r7, r2
strb r1, [r0]
_080F9B38:
- ldr r0, _080F9B64 @ =gUnknown_3003ED0
+ ldr r0, _080F9B64 @ =gRecvCmds
adds r0, 0x6
adds r0, r5, r0
ldrh r0, [r0]
@@ -2718,7 +2718,7 @@ _080F9B54: .4byte gUnknown_3003ED2
_080F9B58: .4byte gUnknown_3007460
_080F9B5C: .4byte gUnknown_3003ED4
_080F9B60: .4byte 0x0000099c
-_080F9B64: .4byte gUnknown_3003ED0
+_080F9B64: .4byte gRecvCmds
_080F9B68:
movs r0, 0xEE
lsls r0, 8
@@ -2732,7 +2732,7 @@ _080F9B68:
adds r0, r5, r4
ldrh r0, [r0]
strh r0, [r1, 0x4]
- ldr r0, _080F9B9C @ =gUnknown_3003ED0
+ ldr r0, _080F9B9C @ =gRecvCmds
adds r0, 0x6
adds r0, r5, r0
ldrh r0, [r0]
@@ -2742,7 +2742,7 @@ _080F9B68:
_080F9B90: .4byte gUnknown_3003F50
_080F9B94: .4byte gUnknown_3003ED2
_080F9B98: .4byte gUnknown_3003ED4
-_080F9B9C: .4byte gUnknown_3003ED0
+_080F9B9C: .4byte gRecvCmds
_080F9BA0:
ldr r4, _080F9BD0 @ =gUnknown_3005450
ldrb r0, [r4, 0xC]
@@ -3267,7 +3267,7 @@ _080F9F74: .4byte gUnknown_3003F50
_080F9F78: .4byte gUnknown_3005450
_080F9F7C:
bl GetMultiplayerId
- ldr r1, _080F9FA0 @ =gUnknown_3003ED0
+ ldr r1, _080F9FA0 @ =gRecvCmds
lsls r0, 24
lsrs r0, 20
adds r0, r1
@@ -3285,7 +3285,7 @@ _080F9F98:
pop {r0}
bx r0
.align 2, 0
-_080F9FA0: .4byte gUnknown_3003ED0
+_080F9FA0: .4byte gRecvCmds
_080F9FA4: .4byte sub_80F9FA8
thumb_func_end rfufunc_80F9F44
@@ -3378,7 +3378,7 @@ rfufunc_80FA020: @ 80FA020
strh r0, [r3]
movs r4, 0
mov r9, r5
- ldr r0, _080FA0D4 @ =gUnknown_3003ED0
+ ldr r0, _080FA0D4 @ =gRecvCmds
mov r12, r0
lsls r5, r6, 4
adds r7, r2, 0
@@ -3441,7 +3441,7 @@ _080FA05C:
_080FA0C8: .4byte gUnknown_3005450
_080FA0CC: .4byte gUnknown_3003F50
_080FA0D0: .4byte 0xffff8900
-_080FA0D4: .4byte gUnknown_3003ED0
+_080FA0D4: .4byte gRecvCmds
_080FA0D8: .4byte gUnknown_843EBD4
_080FA0DC: .4byte gUnknown_203AC08
_080FA0E0:
@@ -4012,8 +4012,8 @@ sub_80FA4EC: @ 80FA4EC
_080FA4F4: .4byte gUnknown_3005450
thumb_func_end sub_80FA4EC
- thumb_func_start sub_80FA4F8
-sub_80FA4F8: @ 80FA4F8
+ thumb_func_start IsNoOneConnected
+IsNoOneConnected: @ 80FA4F8
push {lr}
movs r1, 0
ldr r0, _080FA50C @ =gUnknown_3005450
@@ -4027,7 +4027,7 @@ _080FA506:
bx r1
.align 2, 0
_080FA50C: .4byte gUnknown_3005450
- thumb_func_end sub_80FA4F8
+ thumb_func_end IsNoOneConnected
thumb_func_start sub_80FA510
sub_80FA510: @ 80FA510
@@ -5152,7 +5152,7 @@ sub_80FAD98: @ 80FAD98
bne _080FAE30
ldr r6, _080FAE18 @ =gMain
ldr r1, [r6, 0x4]
- ldr r0, _080FAE1C @ =sub_814208C
+ ldr r0, _080FAE1C @ =c2_mystery_gift_e_reader_run
cmp r1, r0
bne _080FADC0
ldr r1, _080FAE20 @ =gWirelessCommType
@@ -5193,13 +5193,13 @@ _080FADF8:
ldrb r0, [r7]
movs r0, 0x2
strb r0, [r7]
- bl sub_80098B8
+ bl CloseLink
b _080FAE62
.align 2, 0
_080FAE10: .4byte gUnknown_3005450
_080FAE14: .4byte gUnknown_3005E10
_080FAE18: .4byte gMain
-_080FAE1C: .4byte sub_814208C
+_080FAE1C: .4byte c2_mystery_gift_e_reader_run
_080FAE20: .4byte gWirelessCommType
_080FAE24: .4byte c2_800ACD4
_080FAE28: .4byte 0x0000069e
@@ -6835,7 +6835,7 @@ sub_80FBA44: @ 80FBA44
sub sp, 0x4
movs r0, 0
str r0, [sp]
- ldr r1, _080FBA5C @ =gUnknown_3003ED0
+ ldr r1, _080FBA5C @ =gRecvCmds
ldr r2, _080FBA60 @ =0x05000014
mov r0, sp
bl CpuSet
@@ -6843,7 +6843,7 @@ sub_80FBA44: @ 80FBA44
pop {r0}
bx r0
.align 2, 0
-_080FBA5C: .4byte gUnknown_3003ED0
+_080FBA5C: .4byte gRecvCmds
_080FBA60: .4byte 0x05000014
thumb_func_end sub_80FBA44
@@ -9466,8 +9466,8 @@ _080FCE3C: .4byte 0x00001234
_080FCE40: .4byte gUnknown_843F274
thumb_func_end sub_80FCD74
- thumb_func_start sub_80FCE44
-sub_80FCE44: @ 80FCE44
+ thumb_func_start DestroyWirelessStatusIndicatorSprite
+DestroyWirelessStatusIndicatorSprite: @ 80FCE44
push {r4,lr}
ldr r4, _080FCE90 @ =gSprites
ldr r3, _080FCE94 @ =gUnknown_203ACE4
@@ -9512,7 +9512,7 @@ _080FCE98: .4byte 0x00001234
_080FCE9C: .4byte gMain
_080FCEA0: .4byte gDummyOamData
_080FCEA4: .4byte 0x070003e8
- thumb_func_end sub_80FCE44
+ thumb_func_end DestroyWirelessStatusIndicatorSprite
thumb_func_start sub_80FCEA8
sub_80FCEA8: @ 80FCEA8
@@ -9830,7 +9830,7 @@ _080FD072:
lsrs r0, 24
cmp r0, 0x1
bne _080FD106
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
_080FD106:
pop {r3}
mov r8, r3
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index c5947ebc0..50121e847 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -401,8 +401,8 @@ _08115B5C:
bl CopyWindowToVram
ldrb r0, [r5, 0xF]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _08115C58 @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _08115C58 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08115C5C @ =gUnknown_8456D34
ldm r1!, {r3,r6,r7}
@@ -417,7 +417,7 @@ _08115B5C:
strb r0, [r5, 0x12]
ldrb r0, [r5, 0x11]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldrb r0, [r5, 0x11]
bl PutWindowTilemap
ldrb r0, [r5, 0x11]
@@ -434,7 +434,7 @@ _08115C48: .4byte gUnknown_8456CD0
_08115C4C: .4byte gUnknown_8456CFC
_08115C50: .4byte gUnknown_8456D04
_08115C54: .4byte gUnknown_845747C
-_08115C58: .4byte gUnknown_3005E70
+_08115C58: .4byte gMultiuseListMenuTemplate
_08115C5C: .4byte gUnknown_8456D34
_08115C60:
ldr r0, _08115C98 @ =gStringVar1
@@ -1071,7 +1071,7 @@ _0811615C:
.align 2, 0
_08116164: .4byte gUnknown_8457610
_08116168:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
bl sub_80F8DC0
adds r0, r5, 0
bl sub_81161E4
@@ -1135,16 +1135,16 @@ sub_81161E4: @ 81161E4
bl ClearWindowTilemap
ldrb r0, [r4, 0x11]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x10]
bl ClearWindowTilemap
ldrb r0, [r4, 0xF]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r4, 0x11]
@@ -1919,8 +1919,8 @@ _08116838:
bl CopyWindowToVram
ldrb r0, [r6, 0xB]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _081168FC @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _081168FC @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08116900 @ =gUnknown_8456DDC
ldm r1!, {r3,r5,r7}
@@ -1935,7 +1935,7 @@ _08116838:
strb r0, [r6, 0xE]
ldrb r0, [r6, 0xD]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldrb r0, [r6, 0xD]
bl PutWindowTilemap
ldrb r0, [r6, 0xD]
@@ -1955,7 +1955,7 @@ _081168EC: .4byte gUnknown_8456CD0
_081168F0: .4byte gUnknown_8456D4C
_081168F4: .4byte gUnknown_8456D54
_081168F8: .4byte gUnknown_8458FC8
-_081168FC: .4byte gUnknown_3005E70
+_081168FC: .4byte gMultiuseListMenuTemplate
_08116900: .4byte gUnknown_8456DDC
_08116904:
bl sub_8116FE4
@@ -2318,16 +2318,16 @@ _08116C10:
bl ClearWindowTilemap
ldrb r0, [r6, 0xD]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r6, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r6, 0xC]
bl ClearWindowTilemap
ldrb r0, [r6, 0xB]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r6, 0xD]
@@ -2347,7 +2347,7 @@ _08116C10:
strb r0, [r6, 0x8]
b _08116D06
_08116C68:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r5, r6, 0
adds r5, 0x9
ldr r4, _08116C90 @ =gUnknown_8457754
@@ -2368,14 +2368,14 @@ _08116C68:
_08116C90: .4byte gUnknown_8457754
_08116C94: .4byte gSpecialVar_Result
_08116C98:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _08116CA4 @ =gSpecialVar_Result
movs r1, 0x5
b _08116CDC
.align 2, 0
_08116CA4: .4byte gSpecialVar_Result
_08116CA8:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r5, r6, 0
adds r5, 0x9
ldr r4, _08116CC4 @ =gUnknown_8457754
@@ -3088,7 +3088,7 @@ _08117210:
movs r0, 0x6
strb r0, [r1, 0x1]
ldr r1, _08117274 @ =gMain
- ldr r0, _08117278 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _08117278 @ =CB2_ReturnToField
str r0, [r1, 0x8]
ldr r0, _0811727C @ =sub_8050138
bl SetMainCallback2
@@ -3107,7 +3107,7 @@ _08117268: .4byte gUnknown_2031CCC
_0811726C: .4byte gBlockRecvBuffer
_08117270: .4byte gUnknown_2031DA4
_08117274: .4byte gMain
-_08117278: .4byte c2_exit_to_overworld_2_switch
+_08117278: .4byte CB2_ReturnToField
_0811727C: .4byte sub_8050138
thumb_func_end sub_8117130
@@ -3251,7 +3251,7 @@ _08117384:
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r1, _081173BC @ =c2_exit_to_overworld_2_switch
+ ldr r1, _081173BC @ =CB2_ReturnToField
bl sub_808B700
_081173A2:
bl RunTasks
@@ -3263,7 +3263,7 @@ _081173A2:
bx r0
.align 2, 0
_081173B8: .4byte sub_8117280
-_081173BC: .4byte c2_exit_to_overworld_2_switch
+_081173BC: .4byte CB2_ReturnToField
thumb_func_end sub_8117354
thumb_func_start sub_81173C0
@@ -3366,7 +3366,7 @@ sub_8117440: @ 8117440
str r5, [sp, 0x4]
movs r0, 0
mov r3, r8
- bl saved_warp2_set_2
+ bl SetDynamicWarpWithCoords
bl warp_in
add sp, 0x8
pop {r3}
@@ -3645,7 +3645,7 @@ _08117640:
.4byte _081178E0
.4byte _08117784
_08117784:
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r1, _08117798 @ =gMain
ldr r0, _0811779C @ =sub_811C1C8
str r0, [r1, 0x8]
@@ -3656,7 +3656,7 @@ _08117784:
_08117798: .4byte gMain
_0811779C: .4byte sub_811C1C8
_081177A0:
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _081177C4 @ =gBlockSendBuffer
movs r1, 0x1
bl sub_8117594
@@ -3672,7 +3672,7 @@ _081177A0:
.align 2, 0
_081177C4: .4byte gBlockSendBuffer
_081177C8:
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
bl sp000_heal_pokemon
bl SavePlayerParty
bl LoadPlayerBag
@@ -3688,7 +3688,7 @@ _081177C8:
.align 2, 0
_081177EC: .4byte gBlockSendBuffer
_081177F0:
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
bl sp000_heal_pokemon
bl SavePlayerParty
bl LoadPlayerBag
@@ -3706,7 +3706,7 @@ _08117818:
ldr r0, _0811783C @ =gBlockSendBuffer
movs r1, 0x1
bl sub_8117594
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
movs r0, 0x3
str r0, [sp]
movs r0, 0
@@ -3911,8 +3911,8 @@ _081179C4: .4byte sub_81175BC
_081179C8: .4byte gTasks
thumb_func_end sub_81179A4
- thumb_func_start sub_81179CC
-sub_81179CC: @ 81179CC
+ thumb_func_start MEvent_CreateTask_Leader
+MEvent_CreateTask_Leader: @ 81179CC
push {r4,lr}
adds r4, r0, 0
ldr r0, _081179FC @ =sub_8117A0C
@@ -3941,7 +3941,7 @@ _081179FC: .4byte sub_8117A0C
_08117A00: .4byte gUnknown_203B05C
_08117A04: .4byte gTasks+0x8
_08117A08: .4byte gSpecialVar_Result
- thumb_func_end sub_81179CC
+ thumb_func_end MEvent_CreateTask_Leader
thumb_func_start sub_8117A0C
sub_8117A0C: @ 8117A0C
@@ -4056,7 +4056,7 @@ _08117AB8:
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
- bl sub_81435D4
+ bl GetMysteryGiftBaseBlock
lsls r0, 16
ldr r2, _08117B70 @ =0x0000ffff
ldr r1, [sp, 0x4]
@@ -4067,8 +4067,8 @@ _08117AB8:
bl AddWindow
strb r0, [r5, 0xF]
ldrb r0, [r5, 0xF]
- bl sub_814240C
- ldr r0, _08117B74 @ =gUnknown_3005E70
+ bl MG_DrawTextBorder
+ ldr r0, _08117B74 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08117B78 @ =gUnknown_8456D34
ldm r1!, {r3,r4,r6}
@@ -4089,7 +4089,7 @@ _08117AB8:
.align 2, 0
_08117B6C: .4byte gUnknown_8456CFC
_08117B70: .4byte 0x0000ffff
-_08117B74: .4byte gUnknown_3005E70
+_08117B74: .4byte gMultiuseListMenuTemplate
_08117B78: .4byte gUnknown_8456D34
_08117B7C:
ldr r0, _08117B9C @ =gStringVar1
@@ -4113,7 +4113,7 @@ _08117BA4: .4byte gUnknown_203B058
_08117BA8: .4byte gStringVar4
_08117BAC:
ldr r0, _08117BB8 @ =gStringVar4
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0x4
strb r0, [r5, 0xC]
b _08117ECA
@@ -4134,7 +4134,7 @@ _08117BBC:
_08117BD4:
movs r0, 0xD
strb r0, [r5, 0xC]
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
b _08117ECA
.align 2, 0
_08117BE0: .4byte gMain
@@ -4142,7 +4142,7 @@ _08117BE4:
adds r0, r5, 0
adds r0, 0xD
ldr r1, _08117C08 @ =gUnknown_84577F8
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
bne _08117BF4
b _08117ECA
@@ -4169,7 +4169,7 @@ _08117C12:
adds r1, 0x14
ldr r3, _08117C38 @ =gStringVar4
movs r2, 0
- bl sub_81427A0
+ bl mevent_message_print_and_prompt_yes_no
lsls r0, 24
asrs r4, r0, 24
cmp r4, 0
@@ -4346,7 +4346,7 @@ _08117D88:
b _08117ECA
_08117D94:
ldr r0, _08117DA0 @ =gStringVar4
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0xA
strb r0, [r5, 0xC]
b _08117ECA
@@ -4393,12 +4393,12 @@ _08117DE8:
strb r0, [r5, 0xC]
b _08117ECA
_08117DEE:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
bl sub_80F8DC0
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4416,7 +4416,7 @@ _08117E26:
adds r0, r5, 0
adds r0, 0xD
ldr r1, _08117E44 @ =gUnknown_84571B8
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08117ECA
adds r0, r4, 0
@@ -4457,7 +4457,7 @@ _08117E80:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4490,8 +4490,8 @@ _08117ECA:
bx r0
thumb_func_end sub_8117A0C
- thumb_func_start sub_8117ED4
-sub_8117ED4: @ 8117ED4
+ thumb_func_start MEvent_CreateTask_CardOrNewsWithFriend
+MEvent_CreateTask_CardOrNewsWithFriend: @ 8117ED4
push {r4,lr}
adds r4, r0, 0
ldr r0, _08117F0C @ =sub_8117F20
@@ -4524,7 +4524,7 @@ _08117F10: .4byte gUnknown_203B05C
_08117F14: .4byte gTasks+0x8
_08117F18: .4byte gUnknown_3002028
_08117F1C: .4byte gSpecialVar_Result
- thumb_func_end sub_8117ED4
+ thumb_func_end MEvent_CreateTask_CardOrNewsWithFriend
thumb_func_start sub_8117F20
sub_8117F20: @ 8117F20
@@ -4585,7 +4585,7 @@ _08117F7C:
b _08118288
_08117FB0:
ldr r0, _08117FBC @ =gUnknown_8458FE4
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0x2
strb r0, [r5, 0x8]
b _08118288
@@ -4609,7 +4609,7 @@ _08117FC0:
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
- bl sub_81435D4
+ bl GetMysteryGiftBaseBlock
lsls r0, 16
ldr r2, _08118060 @ =0x0000ffff
ldr r1, [sp, 0x4]
@@ -4623,8 +4623,8 @@ _08117FC0:
bl AddWindow
strb r0, [r5, 0xD]
ldrb r0, [r5, 0xB]
- bl sub_814240C
- ldr r0, _08118068 @ =gUnknown_3005E70
+ bl MG_DrawTextBorder
+ ldr r0, _08118068 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _0811806C @ =gUnknown_8456DDC
ldm r1!, {r3,r6,r7}
@@ -4638,7 +4638,7 @@ _08117FC0:
bl ListMenuInit
strb r0, [r5, 0xE]
ldrb r0, [r5, 0xD]
- bl sub_814240C
+ bl MG_DrawTextBorder
ldrb r0, [r5, 0xD]
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -4659,7 +4659,7 @@ _08117FC0:
_0811805C: .4byte gUnknown_8456D4C
_08118060: .4byte 0x0000ffff
_08118064: .4byte gUnknown_8456D54
-_08118068: .4byte gUnknown_3005E70
+_08118068: .4byte gMultiuseListMenuTemplate
_0811806C: .4byte gUnknown_8456DDC
_08118070:
bl sub_8116FE4
@@ -4766,7 +4766,7 @@ _08118146:
_0811814C: .4byte gMain
_08118150:
ldr r0, _08118184 @ =gUnknown_8459238
- bl sub_8142504
+ bl AddTextPrinterToWindow1
ldr r4, _08118188 @ =gStringVar1
ldrb r0, [r5, 0xF]
lsls r0, 5
@@ -4831,7 +4831,7 @@ _081181D0:
b _08118288
_081181D6:
ldr r0, _081181E8 @ =gUnknown_84576AC
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0
movs r1, 0
bl sub_80FB9E4
@@ -4842,7 +4842,7 @@ _081181EC:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xD]
@@ -4868,17 +4868,17 @@ _08118222:
adds r0, r4
ldr r1, [r0]
adds r0, r5, 0
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08118288
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
b _08118252
.align 2, 0
_08118244: .4byte gUnknown_8457838
_08118248:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _08118264 @ =gUnknown_84571B8
- bl sub_8142504
+ bl AddTextPrinterToWindow1
_08118252:
adds r0, r6, 0
bl DestroyTask
@@ -4910,8 +4910,8 @@ _08118288:
bx r0
thumb_func_end sub_8117F20
- thumb_func_start sub_8118290
-sub_8118290: @ 8118290
+ thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless
+MEvent_CreateTask_CardOrNewsOverWireless: @ 8118290
push {r4,lr}
adds r4, r0, 0
ldr r0, _081182C8 @ =sub_81182DC
@@ -4944,7 +4944,7 @@ _081182CC: .4byte gUnknown_203B05C
_081182D0: .4byte gTasks+0x8
_081182D4: .4byte gUnknown_3002028
_081182D8: .4byte gSpecialVar_Result
- thumb_func_end sub_8118290
+ thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless
thumb_func_start sub_81182DC
sub_81182DC: @ 81182DC
@@ -5004,7 +5004,7 @@ _08118340:
b _08118604
_0811836E:
ldr r0, _0811837C @ =gUnknown_84591DC
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0x2
strb r0, [r5, 0x8]
b _08118604
@@ -5030,7 +5030,7 @@ _08118380:
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
- bl sub_81435D4
+ bl GetMysteryGiftBaseBlock
lsls r0, 16
ldr r2, _081183FC @ =0x0000ffff
ldr r1, [sp, 0x4]
@@ -5041,8 +5041,8 @@ _08118380:
bl AddWindow
strb r0, [r5, 0xB]
ldrb r0, [r5, 0xB]
- bl sub_814240C
- ldr r0, _08118400 @ =gUnknown_3005E70
+ bl MG_DrawTextBorder
+ ldr r0, _08118400 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08118404 @ =gUnknown_8456DDC
ldm r1!, {r3,r4,r6}
@@ -5066,7 +5066,7 @@ _081183EC:
.align 2, 0
_081183F8: .4byte gUnknown_8456D4C
_081183FC: .4byte 0x0000ffff
-_08118400: .4byte gUnknown_3005E70
+_08118400: .4byte gMultiuseListMenuTemplate
_08118404: .4byte gUnknown_8456DDC
_08118408:
bl sub_8116FE4
@@ -5163,7 +5163,7 @@ _081184BC:
_081184C4: .4byte gMain
_081184C8:
ldr r0, _081184FC @ =gUnknown_845928C
- bl sub_8142504
+ bl AddTextPrinterToWindow1
ldr r4, _08118500 @ =gStringVar1
ldrb r0, [r5, 0xF]
lsls r0, 5
@@ -5228,7 +5228,7 @@ _08118548:
b _08118604
_0811854E:
ldr r0, _08118560 @ =gUnknown_845777C
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0
movs r1, 0
bl sub_80FB9E4
@@ -5242,7 +5242,7 @@ _08118564:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xB]
@@ -5281,10 +5281,10 @@ _081185B4:
adds r1, r2
ldr r1, [r1]
_081185C2:
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08118604
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r0, r4, 0
bl DestroyTask
bl sub_80F8DC0
@@ -5404,7 +5404,7 @@ _081186AC: .4byte gStringVar4
thumb_func_start sub_81186B0
sub_81186B0: @ 81186B0
push {lr}
- ldr r3, _081186C4 @ =gUnknown_201FF00
+ ldr r3, _081186C4 @ =gDecompressionBuffer + 0x3F00
ldr r1, [r0]
movs r2, 0x80
lsls r2, 1
@@ -5413,21 +5413,21 @@ sub_81186B0: @ 81186B0
pop {r0}
bx r0
.align 2, 0
-_081186C4: .4byte gUnknown_201FF00
+_081186C4: .4byte gDecompressionBuffer + 0x3F00
thumb_func_end sub_81186B0
thumb_func_start sub_81186C8
sub_81186C8: @ 81186C8
push {lr}
ldr r0, [r0]
- ldr r1, _081186DC @ =gUnknown_201FF00
+ ldr r1, _081186DC @ =gDecompressionBuffer + 0x3F00
movs r2, 0x80
lsls r2, 1
bl memcpy
pop {r0}
bx r0
.align 2, 0
-_081186DC: .4byte gUnknown_201FF00
+_081186DC: .4byte gDecompressionBuffer + 0x3F00
thumb_func_end sub_81186C8
thumb_func_start sub_81186E0
@@ -7001,19 +7001,19 @@ _08119512:
ldr r1, _0811952C @ =gUnknown_203B06C
movs r0, 0x1
strh r0, [r1]
- ldr r1, _08119530 @ =gUnknown_3005020
+ ldr r1, _08119530 @ =gFieldCallback
ldr r0, _08119534 @ =sub_807DCE4
str r0, [r1]
- ldr r1, _08119538 @ =c2_exit_to_overworld_2_switch
+ ldr r1, _08119538 @ =CB2_ReturnToField
movs r0, 0x8
bl sub_81277F4
b _081198DC
.align 2, 0
_08119528: .4byte gPaletteFade
_0811952C: .4byte gUnknown_203B06C
-_08119530: .4byte gUnknown_3005020
+_08119530: .4byte gFieldCallback
_08119534: .4byte sub_807DCE4
-_08119538: .4byte c2_exit_to_overworld_2_switch
+_08119538: .4byte CB2_ReturnToField
_0811953C:
adds r0, r6, 0
adds r0, 0x16
@@ -7354,10 +7354,10 @@ _081197CA:
lsls r0, 22
lsrs r0, 22
strh r0, [r2]
- ldr r1, _08119834 @ =gUnknown_3005020
+ ldr r1, _08119834 @ =gFieldCallback
ldr r0, _08119838 @ =sub_807DCE4
str r0, [r1]
- ldr r1, _0811983C @ =c2_exit_to_overworld_2_switch
+ ldr r1, _0811983C @ =CB2_ReturnToField
movs r0, 0x9
bl sub_81277F4
adds r0, r6, 0
@@ -7371,9 +7371,9 @@ _08119824: .4byte gUnknown_203B06C
_08119828: .4byte gUnknown_203B064
_0811982C: .4byte gUnknown_203B06A
_08119830: .4byte gUnknown_203B068
-_08119834: .4byte gUnknown_3005020
+_08119834: .4byte gFieldCallback
_08119838: .4byte sub_807DCE4
-_0811983C: .4byte c2_exit_to_overworld_2_switch
+_0811983C: .4byte CB2_ReturnToField
_08119840:
ldr r1, _08119890 @ =gUnknown_203B058
movs r0, 0x44
@@ -7477,7 +7477,7 @@ _08119900: .4byte gSpecialVar_Result
sub_8119904: @ 8119904
push {r4,r5,lr}
adds r2, r0, 0
- ldr r3, _08119940 @ =gUnknown_3003ED0
+ ldr r3, _08119940 @ =gRecvCmds
ldrh r5, [r3, 0x12]
adds r4, r5, 0
cmp r4, 0
@@ -7506,7 +7506,7 @@ _08119938:
pop {r0}
bx r0
.align 2, 0
-_08119940: .4byte gUnknown_3003ED0
+_08119940: .4byte gRecvCmds
thumb_func_end sub_8119904
thumb_func_start sub_8119944
@@ -8485,7 +8485,7 @@ sub_811A0B4: @ 811A0B4
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _0811A0DC @ =gStringVar4
adds r1, r4, 0
bl StringExpandPlaceholders
@@ -8531,7 +8531,7 @@ _0811A10A:
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _0811A12C @ =gStringVar4
adds r1, r5, 0
bl StringExpandPlaceholders
@@ -8593,7 +8593,7 @@ _0811A174:
negs r0, r0
b _0811A1A4
_0811A186:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
movs r2, 0x80
@@ -8624,7 +8624,7 @@ sub_811A1AC: @ 811A1AC
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
adds r0, r4, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
@@ -8659,7 +8659,7 @@ sub_811A1FC: @ 811A1FC
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
adds r0, r4, 0
bl RemoveWindow
pop {r4}
@@ -8688,8 +8688,8 @@ _0811A234:
strb r0, [r5]
ldrb r0, [r5]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _0811A270 @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _0811A270 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x1C]
ldm r1!, {r3,r4,r6}
@@ -8711,7 +8711,7 @@ _0811A234:
strb r0, [r7]
b _0811A2DA
.align 2, 0
-_0811A270: .4byte gUnknown_3005E70
+_0811A270: .4byte gMultiuseListMenuTemplate
_0811A274:
mov r3, r9
ldrb r0, [r3]
@@ -8726,10 +8726,10 @@ _0811A274:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
movs r0, 0
@@ -8747,10 +8747,10 @@ _0811A2B0:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
strb r4, [r7]
@@ -8794,8 +8794,8 @@ _0811A308:
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _0811A354 @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _0811A354 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x20]
ldm r1!, {r3,r6,r7}
@@ -8818,7 +8818,7 @@ _0811A308:
b _0811A3E6
.align 2, 0
_0811A350: .4byte gUnknown_8456F1C
-_0811A354: .4byte gUnknown_3005E70
+_0811A354: .4byte gMultiuseListMenuTemplate
_0811A358:
ldrb r0, [r5]
bl ListMenuHandleInput
@@ -8842,10 +8842,10 @@ _0811A37E:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
ldrb r0, [r7]
@@ -8867,10 +8867,10 @@ _0811A3AC:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
ldrb r0, [r7]
@@ -9999,7 +9999,7 @@ _0811AC3C:
adds r0, r6, 0
movs r2, 0x44
adds r3, r5, 0
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0xB
mov r2, r8
muls r2, r0
@@ -10578,7 +10578,7 @@ _0811B0A0: .4byte gUnknown_8457E0C
sub_811B0A4: @ 811B0A4
push {lr}
adds r2, r0, 0
- ldr r0, _0811B0C4 @ =gUnknown_3003ED0
+ ldr r0, _0811B0C4 @ =gRecvCmds
ldrh r1, [r0, 0x2]
cmp r1, 0
beq _0811B0C8
@@ -10593,7 +10593,7 @@ _0811B0B8:
movs r0, 0x1
b _0811B0CA
.align 2, 0
-_0811B0C4: .4byte gUnknown_3003ED0
+_0811B0C4: .4byte gRecvCmds
_0811B0C8:
movs r0, 0
_0811B0CA:
@@ -11969,7 +11969,7 @@ _0811BADA:
str r0, [sp, 0x4]
movs r0, 0x19
adds r1, r4, 0
- bl sub_805E9F8
+ bl sprite_new
ldr r1, [sp, 0x8]
adds r5, r1, r5
strb r0, [r5]
@@ -12766,7 +12766,7 @@ sub_811C0E0: @ 811C0E0
movs r1, 0x3
adds r2, r6, 0
ldr r3, [sp, 0x14]
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0x18
pop {r3-r5}
mov r8, r3
@@ -12797,7 +12797,7 @@ _0811C168:
movs r0, 0
movs r1, 0x1
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
str r5, [sp]
movs r0, 0
adds r1, r6, 0
@@ -12966,7 +12966,7 @@ _0811C300:
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
bl sub_80F77B8
ldr r0, _0811C35C @ =sub_811C1B4
bl SetVBlankCallback
@@ -13151,13 +13151,13 @@ _0811C4C0:
bl sub_811C150
cmp r0, 0
beq _0811C516
- ldr r0, _0811C4E0 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _0811C4E0 @ =CB2_ReturnToField
bl SetMainCallback2
b _0811C516
.align 2, 0
_0811C4D8: .4byte gUnknown_203B08C
_0811C4DC: .4byte gUnknown_841E58D
-_0811C4E0: .4byte c2_exit_to_overworld_2_switch
+_0811C4E0: .4byte CB2_ReturnToField
_0811C4E4:
ldr r0, _0811C4FC @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
@@ -13181,7 +13181,7 @@ _0811C500:
bl sub_811C150
cmp r0, 0
beq _0811C516
- ldr r0, _0811C53C @ =c2_exit_to_overworld_2_switch
+ ldr r0, _0811C53C @ =CB2_ReturnToField
bl SetMainCallback2
_0811C516:
bl RunTasks
@@ -13197,7 +13197,7 @@ _0811C52A:
.align 2, 0
_0811C534: .4byte gUnknown_203B08C
_0811C538: .4byte gUnknown_841E572
-_0811C53C: .4byte c2_exit_to_overworld_2_switch
+_0811C53C: .4byte CB2_ReturnToField
thumb_func_end sub_811C1C8
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/link_rfu_4.s b/asm/link_rfu_4.s
deleted file mode 100644
index dd9c498a4..000000000
--- a/asm/link_rfu_4.s
+++ /dev/null
@@ -1,2316 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_814240C
-sub_814240C: @ 814240C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- movs r2, 0xF
- bl sub_8150048
- pop {r0}
- bx r0
- thumb_func_end sub_814240C
-
- thumb_func_start sub_8142420
-sub_8142420: @ 8142420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r8, r0
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x3
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r4, 0x1
- movs r1, 0x11
- mov r10, r1
-_0814244E:
- movs r7, 0
- mov r0, r8
- adds r0, 0x2
- movs r1, 0x1
- add r1, r8
- mov r9, r1
- lsls r5, r0, 24
- movs r6, 0
-_0814245E:
- mov r1, r8
- ands r1, r4
- adds r0, r7, 0
- ands r0, r4
- cmp r1, r0
- beq _08142480
- lsrs r2, r6, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- lsrs r3, r5, 24
- bl FillBgTilemapBufferRect
- b _08142494
-_08142480:
- lsrs r2, r6, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x2
- lsrs r3, r5, 24
- bl FillBgTilemapBufferRect
-_08142494:
- movs r0, 0x80
- lsls r0, 17
- adds r6, r0
- adds r7, 0x1
- cmp r7, 0x1F
- ble _0814245E
- mov r8, r9
- mov r1, r8
- cmp r1, 0x11
- ble _0814244E
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8142420
-
- thumb_func_start sub_81424B8
-sub_81424B8: @ 81424B8
- push {lr}
- sub sp, 0xC
- cmp r0, 0
- beq _081424C6
- cmp r0, 0x1
- beq _081424DE
- b _081424F6
-_081424C6:
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- b _081424F6
-_081424DE:
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x1E
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect
-_081424F6:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_81424B8
-
- thumb_func_start sub_8142504
-sub_8142504: @ 8142504
- push {r4,lr}
- sub sp, 0x14
- adds r1, r0, 0
- ldr r4, _08142558 @ =gStringVar4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r1, 0
- str r1, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- ldr r0, _0814255C @ =gUnknown_8466EF0
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl AddTextPrinterParametrized2
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0xF
- bl sub_8150048
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142558: .4byte gStringVar4
-_0814255C: .4byte gUnknown_8466EF0
- thumb_func_end sub_8142504
-
- thumb_func_start sub_8142560
-sub_8142560: @ 8142560
- push {lr}
- movs r0, 0x1
- bl rbox_fill_rectangle
- movs r0, 0x1
- bl ClearWindowTilemap
- movs r0, 0x1
- movs r1, 0x1
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8142560
-
- thumb_func_start mevent_0814257C
-mevent_0814257C: @ 814257C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r0, r1, 0
- ldrb r2, [r4]
- cmp r2, 0x1
- beq _081425A4
- cmp r2, 0x1
- bgt _08142594
- cmp r2, 0
- beq _0814259E
- b _08142604
-_08142594:
- cmp r2, 0x2
- beq _081425D8
- cmp r2, 0xFF
- beq _08142600
- b _08142604
-_0814259E:
- bl sub_8142504
- b _081425C8
-_081425A4:
- movs r0, 0
- str r0, [sp]
- ldr r0, _081425D0 @ =gUnknown_203F3B0
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- ldr r0, _081425D4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08142604
-_081425C8:
- ldrb r0, [r4]
- adds r0, 0x1
- b _08142602
- .align 2, 0
-_081425D0: .4byte gUnknown_203F3B0
-_081425D4: .4byte gMain
-_081425D8:
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _081425FC @ =gUnknown_203F3B0
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- movs r0, 0
- strb r0, [r4]
- bl sub_8142560
- movs r0, 0x1
- b _08142606
- .align 2, 0
-_081425FC: .4byte gUnknown_203F3B0
-_08142600:
- movs r0, 0x2
-_08142602:
- strb r0, [r4]
-_08142604:
- movs r0, 0
-_08142606:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mevent_0814257C
-
- thumb_func_start sub_8142610
-sub_8142610: @ 8142610
- push {lr}
- sub sp, 0xC
- movs r0, 0
- str r0, [sp]
- ldr r0, _08142634 @ =gUnknown_203F3B0
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_08142634: .4byte gUnknown_203F3B0
- thumb_func_end sub_8142610
-
- thumb_func_start sub_8142638
-sub_8142638: @ 8142638
- push {lr}
- sub sp, 0xC
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _0814265C @ =gUnknown_203F3B0
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0814265C: .4byte gUnknown_203F3B0
- thumb_func_end sub_8142638
-
- thumb_func_start sub_8142660
-sub_8142660: @ 8142660
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08142670
- cmp r0, 0x1
- beq _0814268C
- b _08142698
-_08142670:
- bl sub_8142610
- ldr r0, _08142688 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08142698
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08142698
- .align 2, 0
-_08142688: .4byte gMain
-_0814268C:
- bl sub_8142638
- movs r0, 0
- strb r0, [r4]
- movs r0, 0x1
- b _0814269A
-_08142698:
- movs r0, 0
-_0814269A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8142660
-
- thumb_func_start sub_81426A0
-sub_81426A0: @ 81426A0
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- bne _081426B0
- adds r0, r1, 0
- bl sub_8142504
-_081426B0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x78
- bhi _081426C2
- movs r0, 0
- b _081426CC
-_081426C2:
- movs r0, 0
- strb r0, [r4]
- bl sub_8142560
- movs r0, 0x1
-_081426CC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81426A0
-
- thumb_func_start sub_81426D4
-sub_81426D4: @ 81426D4
- push {r4-r7,lr}
- sub sp, 0x24
- lsls r2, 24
- add r1, sp, 0x4
- ldr r0, _081426F8 @ =gUnknown_8466E00
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, _081426FC @ =gUnknown_8466DA8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x1C]
- str r1, [sp, 0x20]
- cmp r2, 0
- bne _08142704
- ldr r0, _08142700 @ =gUnknown_8466DD0
- b _08142706
- .align 2, 0
-_081426F8: .4byte gUnknown_8466E00
-_081426FC: .4byte gUnknown_8466DA8
-_08142700: .4byte gUnknown_8466DD0
-_08142704:
- ldr r0, _08142794 @ =gUnknown_8466DE8
-_08142706:
- str r0, [sp, 0x4]
- movs r6, 0
- movs r4, 0
- add r0, sp, 0x4
- add r7, sp, 0x1C
- ldrh r0, [r0, 0xC]
- cmp r6, r0
- bcs _0814273A
- add r5, sp, 0x4
-_08142718:
- ldr r1, [sp, 0x4]
- lsls r0, r4, 3
- adds r0, r1
- ldr r1, [r0]
- ldrb r2, [r5, 0x16]
- lsls r2, 29
- lsrs r2, 29
- movs r0, 0x2
- bl GetStringWidth
- cmp r0, r6
- bls _08142732
- adds r6, r0, 0
-_08142732:
- adds r4, 0x1
- ldrh r0, [r5, 0xC]
- cmp r4, r0
- bcc _08142718
-_0814273A:
- adds r2, r6, 0
- adds r2, 0x9
- lsrs r2, 3
- adds r2, 0x2
- movs r0, 0x2
- negs r0, r0
- ands r2, r0
- lsls r3, r2, 24
- ldr r0, _08142798 @ =0x00ffffff
- ldr r1, [sp, 0x1C]
- ands r1, r0
- orrs r1, r3
- movs r0, 0x1E
- subs r0, r2
- lsls r0, 23
- lsrs r0, 16
- ldr r2, _0814279C @ =0xffff00ff
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x1C]
- movs r0, 0xE0
- str r0, [sp]
- adds r0, r7, 0
- add r1, sp, 0x4
- movs r2, 0x1
- movs r3, 0xA
- bl DoMysteryGiftListMenu
- adds r4, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0814278A
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x2
- movs r1, 0x1
- bl CopyWindowToVram
-_0814278A:
- adds r0, r4, 0
- add sp, 0x24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08142794: .4byte gUnknown_8466DE8
-_08142798: .4byte 0x00ffffff
-_0814279C: .4byte 0xffff00ff
- thumb_func_end sub_81426D4
-
- thumb_func_start sub_81427A0
-sub_81427A0: @ 81427A0
- push {r4-r6,lr}
- sub sp, 0x1C
- adds r5, r0, 0
- adds r4, r1, 0
- adds r1, r3, 0
- lsls r2, 24
- lsrs r6, r2, 24
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08142834
- cmp r0, 0x1
- bgt _081427BE
- cmp r0, 0
- beq _081427CA
- b _081428E6
-_081427BE:
- cmp r0, 0x2
- beq _0814288C
- cmp r0, 0xFF
- bne _081427C8
- b _081428C2
-_081427C8:
- b _081428E6
-_081427CA:
- ldr r0, _081427D8 @ =gStringVar4
- bl StringExpandPlaceholders
- cmp r6, 0
- bne _081427E0
- ldr r0, _081427DC @ =gUnknown_8466D90
- b _081427E2
- .align 2, 0
-_081427D8: .4byte gStringVar4
-_081427DC: .4byte gUnknown_8466D90
-_081427E0:
- ldr r0, _08142828 @ =gUnknown_8466D98
-_081427E2:
- bl AddWindow
- strh r0, [r4]
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldrb r0, [r4]
- movs r2, 0
- str r2, [sp]
- movs r1, 0x2
- str r1, [sp, 0x4]
- ldr r1, _0814282C @ =gUnknown_8466EF0
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r1, _08142830 @ =gStringVar4
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r3, 0x2
- bl AddTextPrinterParametrized2
- ldrb r0, [r4]
- movs r1, 0x1
- movs r2, 0xF
- bl sub_8150048
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- ldrb r0, [r4]
- bl PutWindowTilemap
- b _0814287E
- .align 2, 0
-_08142828: .4byte gUnknown_8466D98
-_0814282C: .4byte gUnknown_8466EF0
-_08142830: .4byte gStringVar4
-_08142834:
- ldr r0, _08142850 @ =gUnknown_8466DB0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- cmp r6, 0
- bne _08142858
- ldr r0, _08142854 @ =0xff00ffff
- ldr r1, [sp, 0x14]
- ands r1, r0
- movs r0, 0x90
- lsls r0, 12
- b _08142862
- .align 2, 0
-_08142850: .4byte gUnknown_8466DB0
-_08142854: .4byte 0xff00ffff
-_08142858:
- ldr r0, _08142888 @ =0xff00ffff
- ldr r1, [sp, 0x14]
- ands r1, r0
- movs r0, 0xF0
- lsls r0, 12
-_08142862:
- orrs r1, r0
- str r1, [sp, 0x14]
- movs r0, 0xA
- str r0, [sp]
- movs r0, 0xE
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- add r0, sp, 0x14
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl sub_810FF60
-_0814287E:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _081428E6
- .align 2, 0
-_08142888: .4byte 0xff00ffff
-_0814288C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r6, r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _081428E6
- movs r0, 0
- strb r0, [r5]
- ldrb r0, [r4]
- bl rbox_fill_rectangle
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r4]
- bl RemoveWindow
- adds r0, r6, 0
- b _081428EA
-_081428C2:
- movs r0, 0
- strb r0, [r5]
- ldrb r0, [r4]
- bl rbox_fill_rectangle
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0x1
- negs r0, r0
- b _081428EA
-_081428E6:
- movs r0, 0x2
- negs r0, r0
-_081428EA:
- add sp, 0x1C
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81427A0
-
- thumb_func_start sub_81428F4
-sub_81428F4: @ 81428F4
- push {r4-r6,lr}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08142994
- cmp r0, 0x1
- bgt _0814290C
- cmp r0, 0
- beq _08142914
- b _08142A38
-_0814290C:
- cmp r0, 0xFF
- bne _08142912
- b _08142A14
-_08142912:
- b _08142A38
-_08142914:
- cmp r2, 0
- bne _0814292C
- ldr r0, _08142924 @ =gStringVar4
- ldr r1, _08142928 @ =gUnknown_841EA86
- bl StringExpandPlaceholders
- b _08142934
- .align 2, 0
-_08142924: .4byte gStringVar4
-_08142928: .4byte gUnknown_841EA86
-_0814292C:
- ldr r0, _08142984 @ =gStringVar4
- ldr r1, _08142988 @ =gUnknown_841EAB7
- bl StringExpandPlaceholders
-_08142934:
- ldr r0, _0814298C @ =gUnknown_8466DA0
- bl AddWindow
- strh r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldrb r0, [r5]
- movs r2, 0
- str r2, [sp]
- movs r1, 0x2
- str r1, [sp, 0x4]
- ldr r1, _08142990 @ =gUnknown_8466EF0
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r1, _08142984 @ =gStringVar4
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r3, 0x2
- bl AddTextPrinterParametrized2
- ldrb r0, [r5]
- movs r1, 0x1
- movs r2, 0xF
- bl sub_8150048
- ldrb r0, [r5]
- movs r1, 0x2
- bl CopyWindowToVram
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _08142A38
- .align 2, 0
-_08142984: .4byte gStringVar4
-_08142988: .4byte gUnknown_841EAB7
-_0814298C: .4byte gUnknown_8466DA0
-_08142990: .4byte gUnknown_8466EF0
-_08142994:
- cmp r3, 0
- beq _081429BC
- cmp r2, 0
- bne _081429AC
- ldr r0, _081429A4 @ =gUnknown_8466DC0
- ldr r1, _081429A8 @ =gUnknown_8466E90
- b _081429D4
- .align 2, 0
-_081429A4: .4byte gUnknown_8466DC0
-_081429A8: .4byte gUnknown_8466E90
-_081429AC:
- ldr r0, _081429B4 @ =gUnknown_8466DC8
- ldr r1, _081429B8 @ =gUnknown_8466EC0
- b _081429D4
- .align 2, 0
-_081429B4: .4byte gUnknown_8466DC8
-_081429B8: .4byte gUnknown_8466EC0
-_081429BC:
- cmp r2, 0
- bne _081429D0
- ldr r0, _081429C8 @ =gUnknown_8466DB8
- ldr r1, _081429CC @ =gUnknown_8466E78
- b _081429D4
- .align 2, 0
-_081429C8: .4byte gUnknown_8466DB8
-_081429CC: .4byte gUnknown_8466E78
-_081429D0:
- ldr r0, _08142A0C @ =gUnknown_8466DC0
- ldr r1, _08142A10 @ =gUnknown_8466EA8
-_081429D4:
- movs r2, 0xE0
- str r2, [sp]
- movs r2, 0x1
- movs r3, 0xA
- bl DoMysteryGiftListMenu
- adds r4, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08142A38
- movs r0, 0
- strb r0, [r6]
- ldrb r0, [r5]
- bl rbox_fill_rectangle
- ldrb r0, [r5]
- bl ClearWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r5]
- bl RemoveWindow
- adds r0, r4, 0
- b _08142A3C
- .align 2, 0
-_08142A0C: .4byte gUnknown_8466DC0
-_08142A10: .4byte gUnknown_8466EA8
-_08142A14:
- movs r0, 0
- strb r0, [r6]
- ldrb r0, [r5]
- bl rbox_fill_rectangle
- ldrb r0, [r5]
- bl ClearWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r5]
- bl RemoveWindow
- movs r0, 0x2
- negs r0, r0
- b _08142A3C
-_08142A38:
- movs r0, 0x1
- negs r0, r0
-_08142A3C:
- add sp, 0x14
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81428F4
-
- thumb_func_start sub_8142A44
-sub_8142A44: @ 8142A44
- push {lr}
- cmp r0, 0
- beq _08142A50
- bl sub_8143E1C
- b _08142A54
-_08142A50:
- bl sub_8143FC8
-_08142A54:
- pop {r1}
- bx r1
- thumb_func_end sub_8142A44
-
- thumb_func_start sub_8142A58
-sub_8142A58: @ 8142A58
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0
- beq _08142A68
- cmp r0, 0x1
- beq _08142A90
- b _08142AAC
-_08142A68:
- cmp r1, 0
- bne _08142A80
- bl sav1_get_mevent_buffer_1
- adds r4, r0, 0
- bl sav1_get_mevent_buffer_2
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_8145654
- b _08142A88
-_08142A80:
- bl sub_8143D58
- bl sub_8146288
-_08142A88:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08142AAC
-_08142A90:
- cmp r1, 0
- bne _08142A9E
- bl sub_814571C
-_08142A98:
- cmp r0, 0
- bne _08142AA4
- b _08142AAC
-_08142A9E:
- bl sub_8146318
- b _08142A98
-_08142AA4:
- movs r0, 0
- strb r0, [r5]
- movs r0, 0x1
- b _08142AAE
-_08142AAC:
- movs r0, 0
-_08142AAE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8142A58
-
- thumb_func_start sub_8142AB4
-sub_8142AB4: @ 8142AB4
- push {lr}
- cmp r0, 0
- bne _08142AC0
- bl sub_8143F38
- b _08142AC4
-_08142AC0:
- bl sub_8143DBC
-_08142AC4:
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8142AB4
-
- thumb_func_start sub_8142ACC
-sub_8142ACC: @ 8142ACC
- push {lr}
- cmp r0, 0
- bne _08142AE2
- adds r0, r1, 0
- bl sub_814593C
- cmp r0, 0
- beq _08142AEC
- bl sub_81456F0
- b _08142AF4
-_08142AE2:
- adds r0, r1, 0
- bl sub_8146604
- cmp r0, 0
- bne _08142AF0
-_08142AEC:
- movs r0, 0
- b _08142AF6
-_08142AF0:
- bl sub_81462EC
-_08142AF4:
- movs r0, 0x1
-_08142AF6:
- pop {r1}
- bx r1
- thumb_func_end sub_8142ACC
-
- thumb_func_start sub_8142AFC
-sub_8142AFC: @ 8142AFC
- push {lr}
- cmp r2, 0
- beq _08142B0C
- ldr r3, _08142B08 @ =gUnknown_841ECD3
- b _08142B0E
- .align 2, 0
-_08142B08: .4byte gUnknown_841ECD3
-_08142B0C:
- ldr r3, _08142B1C @ =gUnknown_841EC99
-_08142B0E:
- movs r2, 0x1
- bl sub_81427A0
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08142B1C: .4byte gUnknown_841EC99
- thumb_func_end sub_8142AFC
-
- thumb_func_start mevent_message_was_thrown_away
-mevent_message_was_thrown_away: @ 8142B20
- push {lr}
- cmp r1, 0
- beq _08142B30
- ldr r1, _08142B2C @ =gUnknown_841ED9C
- b _08142B32
- .align 2, 0
-_08142B2C: .4byte gUnknown_841ED9C
-_08142B30:
- ldr r1, _08142B3C @ =gUnknown_841ED7B
-_08142B32:
- bl mevent_0814257C
- pop {r1}
- bx r1
- .align 2, 0
-_08142B3C: .4byte gUnknown_841ED7B
- thumb_func_end mevent_message_was_thrown_away
-
- thumb_func_start mevent_save_game
-mevent_save_game: @ 8142B40
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x4
- bhi _08142BB0
- lsls r0, 2
- ldr r1, _08142B54 @ =_08142B58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142B54: .4byte _08142B58
- .align 2, 0
-_08142B58:
- .4byte _08142B6C
- .4byte _08142B78
- .4byte _08142B80
- .4byte _08142B8C
- .4byte _08142BA4
-_08142B6C:
- ldr r0, _08142B74 @ =gUnknown_841ED2F
- bl sub_8142504
- b _08142B98
- .align 2, 0
-_08142B74: .4byte gUnknown_841ED2F
-_08142B78:
- movs r0, 0
- bl TrySavingData
- b _08142B98
-_08142B80:
- ldr r0, _08142B88 @ =gUnknown_841ED50
- bl sub_8142504
- b _08142B98
- .align 2, 0
-_08142B88: .4byte gUnknown_841ED50
-_08142B8C:
- ldr r0, _08142BA0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08142BB0
-_08142B98:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08142BB0
- .align 2, 0
-_08142BA0: .4byte gMain
-_08142BA4:
- movs r0, 0
- strb r0, [r4]
- bl sub_8142560
- movs r0, 0x1
- b _08142BB2
-_08142BB0:
- movs r0, 0
-_08142BB2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mevent_save_game
-
- thumb_func_start mevent_message
-mevent_message: @ 8142BB8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r2, 0
- str r2, [r4]
- cmp r3, 0xE
- bls _08142BCE
- b _08142CE0
-_08142BCE:
- lsls r0, r3, 2
- ldr r1, _08142BD8 @ =_08142BDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142BD8: .4byte _08142BDC
- .align 2, 0
-_08142BDC:
- .4byte _08142C18
- .4byte _08142C24
- .4byte _08142C30
- .4byte _08142C48
- .4byte _08142C60
- .4byte _08142C6C
- .4byte _08142C78
- .4byte _08142C84
- .4byte _08142C90
- .4byte _08142C9C
- .4byte _08142CA8
- .4byte _08142CC0
- .4byte _08142CCC
- .4byte _08142CD8
- .4byte _08142CDC
-_08142C18:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C20 @ =gUnknown_841EA6F
- b _08142CE0
- .align 2, 0
-_08142C20: .4byte gUnknown_841EA6F
-_08142C24:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C2C @ =gUnknown_841E9D3
- b _08142CE0
- .align 2, 0
-_08142C2C: .4byte gUnknown_841E9D3
-_08142C30:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142C40 @ =gUnknown_841E866
- cmp r5, 0
- bne _08142CE0
- ldr r2, _08142C44 @ =gUnknown_841E8BD
- b _08142CE0
- .align 2, 0
-_08142C40: .4byte gUnknown_841E866
-_08142C44: .4byte gUnknown_841E8BD
-_08142C48:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142C58 @ =gUnknown_841E88F
- cmp r5, 0
- bne _08142CE0
- ldr r2, _08142C5C @ =gUnknown_841E8E2
- b _08142CE0
- .align 2, 0
-_08142C58: .4byte gUnknown_841E88F
-_08142C5C: .4byte gUnknown_841E8E2
-_08142C60:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142C68 @ =gUnknown_841E90C
- b _08142CE0
- .align 2, 0
-_08142C68: .4byte gUnknown_841E90C
-_08142C6C:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C74 @ =gUnknown_841E946
- b _08142CE0
- .align 2, 0
-_08142C74: .4byte gUnknown_841E946
-_08142C78:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C80 @ =gUnknown_841E98F
- b _08142CE0
- .align 2, 0
-_08142C80: .4byte gUnknown_841E98F
-_08142C84:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C8C @ =gUnknown_841E968
- b _08142CE0
- .align 2, 0
-_08142C8C: .4byte gUnknown_841E968
-_08142C90:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C98 @ =gUnknown_841E9AB
- b _08142CE0
- .align 2, 0
-_08142C98: .4byte gUnknown_841E9AB
-_08142C9C:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142CA4 @ =gUnknown_841E7D1
- b _08142CE0
- .align 2, 0
-_08142CA4: .4byte gUnknown_841E7D1
-_08142CA8:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142CB8 @ =gUnknown_841EA3F
- cmp r6, 0
- bne _08142CE0
- ldr r2, _08142CBC @ =gUnknown_841EA0D
- b _08142CE0
- .align 2, 0
-_08142CB8: .4byte gUnknown_841EA3F
-_08142CBC: .4byte gUnknown_841EA0D
-_08142CC0:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142CC8 @ =gUnknown_841E7BC
- b _08142CE0
- .align 2, 0
-_08142CC8: .4byte gUnknown_841E7BC
-_08142CCC:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142CD4 @ =gUnknown_841E92B
- b _08142CE0
- .align 2, 0
-_08142CD4: .4byte gUnknown_841E92B
-_08142CD8:
- movs r0, 0x1
- b _08142CDE
-_08142CDC:
- movs r0, 0
-_08142CDE:
- str r0, [r4]
-_08142CE0:
- adds r0, r2, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end mevent_message
-
- thumb_func_start mevent_08142CE8
-mevent_08142CE8: @ 8142CE8
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- ldrb r4, [r6]
- cmp r4, 0x1
- beq _08142D1A
- cmp r4, 0x1
- bgt _08142D00
- cmp r4, 0
- beq _08142D06
- b _08142D46
-_08142D00:
- cmp r4, 0x2
- beq _08142D30
- b _08142D46
-_08142D06:
- cmp r0, 0
- beq _08142D0E
- bl sub_8142504
-_08142D0E:
- movs r0, 0x81
- lsls r0, 1
- bl PlayFanfare
- strh r4, [r5]
- b _08142D28
-_08142D1A:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF0
- bls _08142D46
-_08142D28:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _08142D46
-_08142D30:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08142D46
- movs r0, 0
- strb r0, [r6]
- bl sub_8142560
- movs r0, 0x1
- b _08142D48
-_08142D46:
- movs r0, 0
-_08142D48:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end mevent_08142CE8
-
- thumb_func_start mevent_message_stamp_card_etc_send_status
-mevent_message_stamp_card_etc_send_status: @ 8142D50
- push {r4,lr}
- adds r3, r0, 0
- ldr r1, _08142D6C @ =gUnknown_841E7BC
- movs r0, 0
- str r0, [r3]
- adds r4, r1, 0
- cmp r2, 0xE
- bhi _08142E12
- lsls r0, r2, 2
- ldr r1, _08142D70 @ =_08142D74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142D6C: .4byte gUnknown_841E7BC
-_08142D70: .4byte _08142D74
- .align 2, 0
-_08142D74:
- .4byte _08142DB0
- .4byte _08142DB8
- .4byte _08142DC0
- .4byte _08142DC8
- .4byte _08142DD4
- .4byte _08142DDC
- .4byte _08142DE4
- .4byte _08142DEC
- .4byte _08142DF4
- .4byte _08142DFC
- .4byte _08142E10
- .4byte _08142E04
- .4byte _08142E08
- .4byte _08142E08
- .4byte _08142E10
-_08142DB0:
- ldr r1, _08142DB4 @ =gUnknown_841EA6F
- b _08142E12
- .align 2, 0
-_08142DB4: .4byte gUnknown_841EA6F
-_08142DB8:
- ldr r1, _08142DBC @ =gUnknown_841E9D3
- b _08142E12
- .align 2, 0
-_08142DBC: .4byte gUnknown_841E9D3
-_08142DC0:
- ldr r1, _08142DC4 @ =gUnknown_841EB20
- b _08142DCA
- .align 2, 0
-_08142DC4: .4byte gUnknown_841EB20
-_08142DC8:
- ldr r1, _08142DD0 @ =gUnknown_841EB46
-_08142DCA:
- movs r0, 0x1
- str r0, [r3]
- b _08142E12
- .align 2, 0
-_08142DD0: .4byte gUnknown_841EB46
-_08142DD4:
- ldr r1, _08142DD8 @ =gUnknown_841EB71
- b _08142E12
- .align 2, 0
-_08142DD8: .4byte gUnknown_841EB71
-_08142DDC:
- ldr r1, _08142DE0 @ =gUnknown_841EBAA
- b _08142E12
- .align 2, 0
-_08142DE0: .4byte gUnknown_841EBAA
-_08142DE4:
- ldr r1, _08142DE8 @ =gUnknown_841EC12
- b _08142E12
- .align 2, 0
-_08142DE8: .4byte gUnknown_841EC12
-_08142DEC:
- ldr r1, _08142DF0 @ =gUnknown_841EBDE
- b _08142E12
- .align 2, 0
-_08142DF0: .4byte gUnknown_841EBDE
-_08142DF4:
- ldr r1, _08142DF8 @ =gUnknown_841E9AB
- b _08142E12
- .align 2, 0
-_08142DF8: .4byte gUnknown_841E9AB
-_08142DFC:
- ldr r1, _08142E00 @ =gUnknown_841EC40
- b _08142E12
- .align 2, 0
-_08142E00: .4byte gUnknown_841EC40
-_08142E04:
- adds r1, r4, 0
- b _08142E12
-_08142E08:
- ldr r1, _08142E0C @ =gUnknown_841EB8E
- b _08142E12
- .align 2, 0
-_08142E0C: .4byte gUnknown_841EB8E
-_08142E10:
- ldr r1, _08142E1C @ =gUnknown_841EC6A
-_08142E12:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08142E1C: .4byte gUnknown_841EC6A
- thumb_func_end mevent_message_stamp_card_etc_send_status
-
- thumb_func_start sub_8142E20
-sub_8142E20: @ 8142E20
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl mevent_message_stamp_card_etc_send_status
- adds r1, r0, 0
- ldr r0, [sp]
- cmp r0, 0
- bne _08142E46
- adds r0, r4, 0
- bl mevent_0814257C
- b _08142E4E
-_08142E46:
- adds r0, r4, 0
- adds r2, r5, 0
- bl mevent_08142CE8
-_08142E4E:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8142E20
-
- thumb_func_start task_add_00_mystery_gift
-task_add_00_mystery_gift: @ 8142E58
- push {r4,lr}
- ldr r0, _08142E98 @ =sub_8142EA0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08142E9C @ =gTasks+0x8
- adds r4, r0
- movs r0, 0
- strb r0, [r4, 0x8]
- strb r0, [r4, 0x9]
- strb r0, [r4, 0xA]
- strb r0, [r4, 0xB]
- strb r0, [r4, 0xC]
- strb r0, [r4, 0xD]
- movs r1, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- strb r1, [r4, 0xE]
- movs r0, 0x40
- bl AllocZeroed
- str r0, [r4, 0x10]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142E98: .4byte sub_8142EA0
-_08142E9C: .4byte gTasks+0x8
- thumb_func_end task_add_00_mystery_gift
-
- thumb_func_start sub_8142EA0
-sub_8142EA0: @ 8142EA0
- 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, _08142EC4 @ =gTasks+0x8
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- cmp r0, 0x25
- bls _08142EBA
- b _081435C6
-_08142EBA:
- lsls r0, 2
- ldr r1, _08142EC8 @ =_08142ECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142EC4: .4byte gTasks+0x8
-_08142EC8: .4byte _08142ECC
- .align 2, 0
-_08142ECC:
- .4byte _08142F64
- .4byte _08142F6A
- .4byte _08142FAC
- .4byte _08142FE4
- .4byte _08143008
- .4byte _08143058
- .4byte _081430B8
- .4byte _081430EC
- .4byte _081430FC
- .4byte _08143174
- .4byte _08143198
- .4byte _081431B0
- .4byte _081431E0
- .4byte _0814321C
- .4byte _08143232
- .4byte _08143264
- .4byte _0814358C
- .4byte _081432C2
- .4byte _081432CC
- .4byte _081435C6
- .4byte _081432DE
- .4byte _0814332C
- .4byte _081433A2
- .4byte _081433D2
- .4byte _08143408
- .4byte _08143422
- .4byte _08143436
- .4byte _08143442
- .4byte _08143456
- .4byte _0814346A
- .4byte _0814349C
- .4byte _081434D0
- .4byte _08143514
- .4byte _08143528
- .4byte _08143544
- .4byte _08143558
- .4byte _0814358C
- .4byte _081435AC
-_08142F64:
- movs r0, 0x1
- strb r0, [r5, 0x8]
- b _081435C6
-_08142F6A:
- adds r0, r5, 0
- adds r0, 0x9
- adds r1, r5, 0
- movs r2, 0
- bl sub_81426D4
- adds r1, r0, 0
- cmp r1, 0x1
- beq _08142F94
- cmp r1, 0x1
- bcc _08142F8A
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08142FA6
- b _081435C6
-_08142F8A:
- movs r0, 0
- strb r0, [r5, 0xC]
- bl sub_8143FC8
- b _08142F9A
-_08142F94:
- strb r1, [r5, 0xC]
- bl sub_8143E1C
-_08142F9A:
- cmp r0, 0x1
- bne _08142FA0
- b _081434C4
-_08142FA0:
- movs r0, 0x2
- strb r0, [r5, 0x8]
- b _081435C6
-_08142FA6:
- movs r0, 0x25
- strb r0, [r5, 0x8]
- b _081435C6
-_08142FAC:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08142FC0
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _08142FBC @ =gUnknown_841E6A1
- b _08142FC6
- .align 2, 0
-_08142FBC: .4byte gUnknown_841E6A1
-_08142FC0:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _08142FE0 @ =gUnknown_841E6DC
-_08142FC6:
- bl mevent_0814257C
- cmp r0, 0
- bne _08142FD0
- b _081435C6
-_08142FD0:
- movs r0, 0x3
- strb r0, [r5, 0x8]
- movs r0, 0
- movs r1, 0x1
- bl sub_8142344
- b _081435C6
- .align 2, 0
-_08142FE0: .4byte gUnknown_841E6DC
-_08142FE4:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08142FF8
- ldr r0, _08142FF4 @ =gUnknown_841E717
- bl sub_8142504
- b _08142FFE
- .align 2, 0
-_08142FF4: .4byte gUnknown_841E717
-_08142FF8:
- ldr r0, _08143004 @ =gUnknown_841E741
- bl sub_8142504
-_08142FFE:
- movs r0, 0x4
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143004: .4byte gUnknown_841E741
-_08143008:
- adds r0, r5, 0
- adds r0, 0x9
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_81426D4
- adds r4, r0, 0
- cmp r4, 0x1
- beq _08143036
- cmp r4, 0x1
- bcc _08143028
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _08143042
- b _081435C6
-_08143028:
- bl sub_8142560
- movs r1, 0
- movs r0, 0x5
- strb r0, [r5, 0x8]
- strb r1, [r5, 0xD]
- b _081435C6
-_08143036:
- bl sub_8142560
- movs r0, 0x5
- strb r0, [r5, 0x8]
- strb r4, [r5, 0xD]
- b _081435C6
-_08143042:
- bl sub_8142560
- ldrb r0, [r5, 0xC]
- bl sub_8142A44
- cmp r0, 0
- beq _08143052
- b _081434C4
-_08143052:
- strb r0, [r5, 0x8]
- movs r0, 0
- b _0814359E
-_08143058:
- ldr r0, _08143074 @ =gStringVar1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _08143078 @ =gStringVar2
- strb r1, [r0]
- ldr r0, _0814307C @ =gStringVar3
- strb r1, [r0]
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- beq _08143080
- cmp r0, 0x1
- beq _0814309A
- b _081430B2
- .align 2, 0
-_08143074: .4byte gStringVar1
-_08143078: .4byte gStringVar2
-_0814307C: .4byte gStringVar3
-_08143080:
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _0814308E
- movs r0, 0x15
- bl sub_8117ED4
- b _081430B2
-_0814308E:
- cmp r0, 0
- bne _081430B2
- movs r0, 0x15
- bl sub_8118290
- b _081430B2
-_0814309A:
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _081430A8
- movs r0, 0x16
- bl sub_8117ED4
- b _081430B2
-_081430A8:
- cmp r0, 0
- bne _081430B2
- movs r0, 0x16
- bl sub_8118290
-_081430B2:
- movs r0, 0x6
- strb r0, [r5, 0x8]
- b _081435C6
-_081430B8:
- ldr r0, _081430D0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _081430D4
- movs r0, 0x1
- bl sub_81424B8
- movs r0, 0x7
- strb r0, [r5, 0x8]
- bl mevent_srv_ish_do_init
- b _081435C6
- .align 2, 0
-_081430D0: .4byte gReceivedRemoteLinkPlayers
-_081430D4:
- ldr r0, _081430E8 @ =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x5
- beq _081430DE
- b _081435C6
-_081430DE:
- movs r0, 0x1
- bl sub_81424B8
- b _08143464
- .align 2, 0
-_081430E8: .4byte gSpecialVar_Result
-_081430EC:
- ldr r0, _081430F8 @ =gUnknown_841E794
- bl sub_8142504
- movs r0, 0x8
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081430F8: .4byte gUnknown_841E794
-_081430FC:
- adds r0, r5, 0
- bl mevent_srv_ish_do_exec
- subs r0, 0x2
- cmp r0, 0x4
- bls _0814310A
- b _081435C6
-_0814310A:
- lsls r0, 2
- ldr r1, _08143114 @ =_08143118
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08143114: .4byte _08143118
- .align 2, 0
-_08143118:
- .4byte _08143156
- .4byte _08143150
- .4byte _0814315C
- .4byte _0814313A
- .4byte _0814312C
-_0814312C:
- bl task_add_05_task_del_08FA224_when_no_RfuFunc
- ldrh r0, [r5]
- strb r0, [r5, 0xE]
- movs r0, 0xD
- strb r0, [r5, 0x8]
- b _081435C6
-_0814313A:
- ldr r4, [r5, 0x10]
- bl mevent_srv_ish_get_buffer
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x40
- bl memcpy
- bl mevent_srv_ish_inc_flag
- b _081435C6
-_08143150:
- movs r0, 0xA
- strb r0, [r5, 0x8]
- b _081435C6
-_08143156:
- movs r0, 0x9
- strb r0, [r5, 0x8]
- b _081435C6
-_0814315C:
- movs r0, 0xB
- strb r0, [r5, 0x8]
- ldr r0, _0814316C @ =gStringVar1
- ldr r1, _08143170 @ =gLinkPlayers + 8
- bl StringCopy
- b _081435C6
- .align 2, 0
-_0814316C: .4byte gStringVar1
-_08143170: .4byte gLinkPlayers + 8
-_08143174:
- adds r4, r5, 0
- adds r4, 0x9
- bl mevent_srv_ish_get_buffer
- adds r3, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl sub_81427A0
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _0814320C
- cmp r1, 0x1
- bcs _081431FA
- movs r0, 0
- b _0814320E
-_08143198:
- adds r4, r5, 0
- adds r4, 0x9
- bl mevent_srv_ish_get_buffer
- adds r1, r0, 0
- adds r0, r4, 0
- bl mevent_0814257C
- cmp r0, 0
- bne _081431AE
- b _081435C6
-_081431AE:
- b _08143212
-_081431B0:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r3, _081431D8 @ =gUnknown_841E7F2
- adds r1, r5, 0
- movs r2, 0
- bl sub_81427A0
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _0814320C
- cmp r1, 0x1
- bcs _081431FA
- bl sub_8144144
- cmp r0, 0x1
- bne _081431DC
- movs r0, 0xC
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081431D8: .4byte gUnknown_841E7F2
-_081431DC:
- movs r0, 0
- b _0814320E
-_081431E0:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r3, _08143204 @ =gUnknown_841E823
- adds r1, r5, 0
- movs r2, 0
- bl sub_81427A0
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _0814320C
- cmp r1, 0x1
- bcc _08143208
-_081431FA:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814320C
- b _081435C6
- .align 2, 0
-_08143204: .4byte gUnknown_841E823
-_08143208:
- movs r0, 0
- b _0814320E
-_0814320C:
- movs r0, 0x1
-_0814320E:
- bl mevent_srv_ish_set_param
-_08143212:
- bl mevent_srv_ish_inc_flag
- movs r0, 0x7
- strb r0, [r5, 0x8]
- b _081435C6
-_0814321C:
- bl sub_80FA4F8
- lsls r0, 24
- cmp r0, 0
- bne _08143228
- b _081435C6
-_08143228:
- bl sub_80FCE44
- movs r0, 0xE
- strb r0, [r5, 0x8]
- b _081435C6
-_08143232:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _08143258 @ =gUnknown_841E7A3
- bl sub_81426A0
- cmp r0, 0
- bne _08143242
- b _081435C6
-_08143242:
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _08143250
- ldr r0, _0814325C @ =gStringVar1
- ldr r1, _08143260 @ =gLinkPlayers + 8
- bl StringCopy
-_08143250:
- movs r0, 0xF
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143258: .4byte gUnknown_841E7A3
-_0814325C: .4byte gStringVar1
-_08143260: .4byte gLinkPlayers + 8
-_08143264:
- ldrb r1, [r5, 0xC]
- ldrb r2, [r5, 0xD]
- ldrb r3, [r5, 0xE]
- mov r0, sp
- bl mevent_message
- adds r1, r0, 0
- cmp r1, 0
- bne _08143278
- ldr r1, [r5, 0x10]
-_08143278:
- ldr r0, [sp]
- cmp r0, 0
- beq _0814328A
- adds r0, r5, 0
- adds r0, 0x9
- adds r2, r5, 0
- bl mevent_08142CE8
- b _08143292
-_0814328A:
- adds r0, r5, 0
- adds r0, 0x9
- bl mevent_0814257C
-_08143292:
- adds r1, r0, 0
- cmp r1, 0
- bne _0814329A
- b _081435C6
-_0814329A:
- ldrb r0, [r5, 0xE]
- cmp r0, 0x3
- bne _081432B4
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _081432AE
- movs r0, 0x1
- bl sub_8146C30
- b _081432B4
-_081432AE:
- movs r0, 0x2
- bl sub_8146C30
-_081432B4:
- ldr r0, [sp]
- cmp r0, 0
- beq _081432BC
- b _0814357C
-_081432BC:
- strb r0, [r5, 0x8]
- movs r0, 0
- b _0814359E
-_081432C2:
- adds r0, r5, 0
- adds r0, 0x9
- bl mevent_save_game
- b _08143596
-_081432CC:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r1, [r5, 0xC]
- bl sub_8142A58
- cmp r0, 0
- bne _081432DC
- b _081435C6
-_081432DC:
- b _0814339C
-_081432DE:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08143308
- ldr r2, _08143304 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081432F4
- movs r0, 0x15
- strb r0, [r5, 0x8]
-_081432F4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08143300
- b _081435C6
-_08143300:
- b _08143326
- .align 2, 0
-_08143304: .4byte gMain
-_08143308:
- ldr r0, _0814331C @ =gMain
- ldrh r0, [r0, 0x2E]
- bl sub_8146884
- cmp r0, 0
- beq _08143320
- cmp r0, 0x1
- beq _08143326
- b _081435C6
- .align 2, 0
-_0814331C: .4byte gMain
-_08143320:
- bl sub_81467EC
- b _08143402
-_08143326:
- movs r0, 0x1B
- strb r0, [r5, 0x8]
- b _081435C6
-_0814332C:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08143346
- bl sub_8144054
- cmp r0, 0
- beq _0814335A
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- movs r3, 0
- b _08143364
-_08143346:
- bl sub_8143E78
- cmp r0, 0
- beq _0814335A
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- movs r3, 0
- b _08143364
-_0814335A:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- movs r3, 0x1
-_08143364:
- bl sub_81428F4
- adds r1, r0, 0
- cmp r1, 0x1
- beq _08143386
- cmp r1, 0x1
- bcc _08143380
- cmp r1, 0x2
- beq _0814338C
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08143392
- b _081435C6
-_08143380:
- movs r0, 0x1C
- strb r0, [r5, 0x8]
- b _081435C6
-_08143386:
- movs r0, 0x1D
- strb r0, [r5, 0x8]
- b _081435C6
-_0814338C:
- movs r0, 0x16
- strb r0, [r5, 0x8]
- b _081435C6
-_08143392:
- ldrb r0, [r5, 0xC]
- cmp r0, 0x1
- bne _0814339C
- bl sub_8146834
-_0814339C:
- movs r0, 0x14
- strb r0, [r5, 0x8]
- b _081435C6
-_081433A2:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- bl sub_8142AFC
- adds r1, r0, 0
- cmp r1, 0
- beq _081433BE
- cmp r1, 0
- ble _081433EC
- cmp r1, 0x1
- beq _08143402
- b _081435C6
-_081433BE:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _081433FC
- bl sub_8144144
- cmp r0, 0x1
- bne _081433FC
- movs r0, 0x17
- strb r0, [r5, 0x8]
- b _081435C6
-_081433D2:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r3, _081433F8 @ =gUnknown_841ECF9
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_81427A0
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _08143402
- cmp r1, 0x1
- bcc _081433FC
-_081433EC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08143402
- b _081435C6
- .align 2, 0
-_081433F8: .4byte gUnknown_841ECF9
-_081433FC:
- movs r0, 0x18
- strb r0, [r5, 0x8]
- b _081435C6
-_08143402:
- movs r0, 0x15
- strb r0, [r5, 0x8]
- b _081435C6
-_08143408:
- ldrb r0, [r5, 0xC]
- movs r1, 0x1
- bl sub_8142ACC
- cmp r0, 0
- bne _08143416
- b _081435C6
-_08143416:
- ldrb r0, [r5, 0xC]
- bl sub_8142AB4
- movs r0, 0x19
- strb r0, [r5, 0x8]
- b _081435C6
-_08143422:
- adds r0, r5, 0
- adds r0, 0x9
- bl mevent_save_game
- cmp r0, 0
- bne _08143430
- b _081435C6
-_08143430:
- movs r0, 0x1A
- strb r0, [r5, 0x8]
- b _081435C6
-_08143436:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r1, [r5, 0xC]
- bl mevent_message_was_thrown_away
- b _08143596
-_08143442:
- ldrb r0, [r5, 0xC]
- movs r1, 0
- bl sub_8142ACC
- cmp r0, 0
- bne _08143450
- b _081435C6
-_08143450:
- movs r0, 0
- strb r0, [r5, 0x8]
- b _081435C6
-_08143456:
- ldrb r0, [r5, 0xC]
- movs r1, 0x1
- bl sub_8142ACC
- cmp r0, 0
- bne _08143464
- b _081435C6
-_08143464:
- movs r0, 0x3
- strb r0, [r5, 0x8]
- b _081435C6
-_0814346A:
- ldrb r0, [r5, 0xC]
- movs r1, 0x1
- bl sub_8142ACC
- cmp r0, 0
- bne _08143478
- b _081435C6
-_08143478:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- beq _08143484
- cmp r0, 0x1
- beq _0814348C
- b _08143492
-_08143484:
- movs r0, 0x15
- bl sub_81179CC
- b _08143492
-_0814348C:
- movs r0, 0x16
- bl sub_81179CC
-_08143492:
- movs r0, 0x1
- strb r0, [r5, 0xD]
- movs r0, 0x1E
- strb r0, [r5, 0x8]
- b _081435C6
-_0814349C:
- ldr r0, _081434B0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _081434B4
- movs r0, 0x1
- bl sub_81424B8
- movs r0, 0x1F
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081434B0: .4byte gReceivedRemoteLinkPlayers
-_081434B4:
- ldr r0, _081434CC @ =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x5
- beq _081434BE
- b _081435C6
-_081434BE:
- movs r0, 0x1
- bl sub_81424B8
-_081434C4:
- movs r0, 0x12
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081434CC: .4byte gSpecialVar_Result
-_081434D0:
- ldr r0, _081434F0 @ =gStringVar1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _081434F4 @ =gStringVar2
- strb r1, [r0]
- ldr r0, _081434F8 @ =gStringVar3
- strb r1, [r0]
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08143500
- ldr r0, _081434FC @ =gUnknown_841EAE7
- bl sub_8142504
- bl mevent_srv_common_do_init_2
- b _0814350A
- .align 2, 0
-_081434F0: .4byte gStringVar1
-_081434F4: .4byte gStringVar2
-_081434F8: .4byte gStringVar3
-_081434FC: .4byte gUnknown_841EAE7
-_08143500:
- ldr r0, _08143510 @ =gUnknown_841EB01
- bl sub_8142504
- bl mevent_srv_common_do_init_1
-_0814350A:
- movs r0, 0x20
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143510: .4byte gUnknown_841EB01
-_08143514:
- adds r0, r5, 0
- bl mevent_srv_init_do_exec
- cmp r0, 0x3
- bne _081435C6
- ldrh r0, [r5]
- strb r0, [r5, 0xE]
- movs r0, 0x21
- strb r0, [r5, 0x8]
- b _081435C6
-_08143528:
- bl task_add_05_task_del_08FA224_when_no_RfuFunc
- ldr r0, _0814353C @ =gStringVar1
- ldr r1, _08143540 @ =gLinkPlayers + 0x24
- bl StringCopy
- movs r0, 0x22
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_0814353C: .4byte gStringVar1
-_08143540: .4byte gLinkPlayers + 0x24
-_08143544:
- bl sub_80FA4F8
- lsls r0, 24
- cmp r0, 0
- beq _081435C6
- bl sub_80FCE44
- movs r0, 0x23
- strb r0, [r5, 0x8]
- b _081435C6
-_08143558:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xD]
- ldrb r3, [r5, 0xE]
- adds r1, r5, 0
- bl sub_8142E20
- cmp r0, 0
- beq _081435C6
- ldr r0, [r5, 0xC]
- ldr r1, _08143584 @ =0x00ffff00
- ands r0, r1
- ldr r1, _08143588 @ =0x00030100
- cmp r0, r1
- bne _0814359A
- movs r0, 0x3
- bl sub_8146C30
-_0814357C:
- movs r0, 0x11
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143584: .4byte 0x00ffff00
-_08143588: .4byte 0x00030100
-_0814358C:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _081435A8 @ =gUnknown_841E7BC
- bl mevent_0814257C
-_08143596:
- cmp r0, 0
- beq _081435C6
-_0814359A:
- movs r0, 0
- strb r0, [r5, 0x8]
-_0814359E:
- movs r1, 0
- bl sub_8142344
- b _081435C6
- .align 2, 0
-_081435A8: .4byte gUnknown_841E7BC
-_081435AC:
- bl sub_80098B8
- bl sub_812B484
- ldr r0, [r5, 0x10]
- bl Free
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _081435D0 @ =sub_81422FC
- bl SetMainCallback2
-_081435C6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081435D0: .4byte sub_81422FC
- thumb_func_end sub_8142EA0
-
- thumb_func_start sub_81435D4
-sub_81435D4: @ 81435D4
- ldr r0, _081435D8 @ =0x0000019b
- bx lr
- .align 2, 0
-_081435D8: .4byte 0x0000019b
- thumb_func_end sub_81435D4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/list_menu.s b/asm/list_menu.s
index 3475b0914..e6e316fb7 100644
--- a/asm/list_menu.s
+++ b/asm/list_menu.s
@@ -52,7 +52,7 @@ _08106F06:
lsls r2, r1, 24
lsrs r2, 24
adds r1, r7, 0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
_08106F24:
ldrb r0, [r5, 0x5]
mov r3, r8
@@ -60,9 +60,9 @@ _08106F24:
lsls r2, 24
lsrs r2, 24
ldr r1, [sp, 0x4]
- bl sub_8150048
+ bl DrawTextBorderOuter
_08106F34:
- ldr r0, _08106F64 @ =gUnknown_3005E70
+ ldr r0, _08106F64 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp]
ldm r1!, {r3-r5}
@@ -84,7 +84,7 @@ _08106F34:
b _08106FE4
.align 2, 0
_08106F60: .4byte gUnknown_203ACF4
-_08106F64: .4byte gUnknown_3005E70
+_08106F64: .4byte gMultiuseListMenuTemplate
_08106F68:
ldrb r0, [r5, 0x6]
bl ListMenuHandleInput
@@ -126,7 +126,7 @@ _08106FA8:
bgt _08106FBA
ldrb r0, [r5, 0x5]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
_08106FBA:
ldr r0, _08106FC8 @ =gUnknown_203ACF4
ldrb r0, [r0, 0x5]
@@ -139,7 +139,7 @@ _08106FCC:
ldrb r0, [r5, 0x6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5, 0x5]
bl RemoveWindow
movs r0, 0
@@ -340,8 +340,8 @@ _08107136:
bx r1
thumb_func_end ListMenuHandleInput
- thumb_func_start sub_810713C
-sub_810713C: @ 810713C
+ thumb_func_start DestroyListMenu
+DestroyListMenu: @ 810713C
push {r4,lr}
adds r3, r1, 0
lsls r0, 24
@@ -377,7 +377,7 @@ _08107170:
bx r0
.align 2, 0
_0810717C: .4byte gTasks+0x8
- thumb_func_end sub_810713C
+ thumb_func_end DestroyListMenu
thumb_func_start sub_8107180
sub_8107180: @ 8107180
@@ -563,8 +563,8 @@ _081072CA:
_081072D0: .4byte gTasks+0x8
thumb_func_end sub_81072AC
- thumb_func_start get_coro_args_x18_x1A
-get_coro_args_x18_x1A: @ 81072D4
+ thumb_func_start ListMenuGetScrollAndRow
+ListMenuGetScrollAndRow: @ 81072D4
push {lr}
adds r3, r1, 0
lsls r0, 24
@@ -588,7 +588,7 @@ _081072F6:
bx r0
.align 2, 0
_081072FC: .4byte gTasks+0x8
- thumb_func_end get_coro_args_x18_x1A
+ thumb_func_end ListMenuGetScrollAndRow
thumb_func_start ListMenuGetYCoordForPrintingArrowCursor
ListMenuGetYCoordForPrintingArrowCursor: @ 8107300
@@ -782,7 +782,7 @@ ListMenuPrint: @ 8107428
str r6, [sp, 0x10]
adds r2, r7, 0
mov r3, r12
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldrb r1, [r5, 0x3]
movs r0, 0x7F
ands r0, r1
@@ -820,7 +820,7 @@ _08107494:
str r6, [sp, 0x10]
adds r2, r7, 0
mov r3, r12
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
_081074D2:
add sp, 0x18
pop {r4-r7}
@@ -1635,8 +1635,8 @@ sub_8107A9C: @ 8107A9C
_08107AE8: .4byte gUnknown_3005E60
thumb_func_end sub_8107A9C
- thumb_func_start sub_8107AEC
-sub_8107AEC: @ 8107AEC
+ thumb_func_start ListMenuDefaultCursorMoveFunc
+ListMenuDefaultCursorMoveFunc: @ 8107AEC
push {lr}
lsls r1, 24
cmp r1, 0
@@ -1646,7 +1646,7 @@ sub_8107AEC: @ 8107AEC
_08107AFA:
pop {r0}
bx r0
- thumb_func_end sub_8107AEC
+ thumb_func_end ListMenuDefaultCursorMoveFunc
thumb_func_start sub_8107B00
sub_8107B00: @ 8107B00
@@ -1976,8 +1976,8 @@ _08107D56:
_08107D64: .4byte gUnknown_8E95DBC
thumb_func_end sub_8107D38
- thumb_func_start sub_8107D68
-sub_8107D68: @ 8107D68
+ thumb_func_start blit_move_info_icon
+blit_move_info_icon: @ 8107D68
push {r4,r5,lr}
sub sp, 0x18
lsls r0, 24
@@ -2014,6 +2014,6 @@ sub_8107D68: @ 8107D68
.align 2, 0
_08107DAC: .4byte gUnknown_8452C94
_08107DB0: .4byte gUnknown_8E95DDC
- thumb_func_end sub_8107D68
+ thumb_func_end blit_move_info_icon
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/m4a_1.s b/asm/m4a_1.s
index e78c3e69b..db8476382 100644
--- a/asm/m4a_1.s
+++ b/asm/m4a_1.s
@@ -4,8 +4,6 @@
.syntax unified
- .lcomm gUnknown_030007B8, 0x770
-
.text
thumb_func_start umul3232H32
@@ -1909,3 +1907,28 @@ _081DDD90:
thumb_func_end ply_mod
.align 2, 0 @ Don't pad with nop.
+
+ .bss
+gUnknown_030007B8:
+ .space 0x40
+ .size gUnknown_030007B8, .-gUnknown_030007B8
+
+ .global gMPlayTrack_BGM
+gMPlayTrack_BGM:
+ .space 0x320
+ .size gMPlayTrack_BGM, .-gMPlayTrack_BGM
+
+ .global gMPlayTrack_SE1
+gMPlayTrack_SE1:
+ .space 0xF0
+ .size gMPlayTrack_SE1, .-gMPlayTrack_SE1
+
+ .global gMPlayTrack_SE2
+gMPlayTrack_SE2:
+ .space 0x2D0
+ .size gMPlayTrack_SE2, .-gMPlayTrack_SE2
+
+ .global gMPlayTrack_SE3
+gMPlayTrack_SE3:
+ .space 0x50
+ .size gMPlayTrack_SE3, .-gMPlayTrack_SE3
diff --git a/asm/m4a_3.s b/asm/m4a_3.s
deleted file mode 100644
index a842ae925..000000000
--- a/asm/m4a_3.s
+++ /dev/null
@@ -1,574 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/gba_constants.inc"
- .include "constants/m4a_constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CgbSound
-CgbSound: @ 81DEA70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, =SOUND_INFO_PTR
- ldr r0, [r0]
- str r0, [sp, 0x4]
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _081DEA94
- subs r0, 0x1
- ldr r1, [sp, 0x4]
- strb r0, [r1, 0xA]
- b _081DEA9A
- .pool
-_081DEA94:
- movs r0, 0xE
- ldr r2, [sp, 0x4]
- strb r0, [r2, 0xA]
-_081DEA9A:
- movs r6, 0x1
- ldr r0, [sp, 0x4]
- ldr r4, [r0, 0x1C]
-_081DEAA0:
- ldrb r1, [r4]
- movs r0, 0xC7
- ands r0, r1
- adds r2, r6, 0x1
- mov r10, r2
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- bne _081DEAB6
- b _081DEEA0
-_081DEAB6:
- cmp r6, 0x2
- beq _081DEAE8
- cmp r6, 0x2
- bgt _081DEAC4
- cmp r6, 0x1
- beq _081DEACA
- b _081DEB20
-_081DEAC4:
- cmp r6, 0x3
- beq _081DEB00
- b _081DEB20
-_081DEACA:
- ldr r0, =REG_NR10
- str r0, [sp, 0x8]
- ldr r7, =REG_NR11
- ldr r2, =REG_NR12
- str r2, [sp, 0xC]
- adds r0, 0x4
- str r0, [sp, 0x10]
- adds r2, 0x2
- b _081DEB30
- .pool
-_081DEAE8:
- ldr r0, =REG_NR10 + 1
- str r0, [sp, 0x8]
- ldr r7, =REG_NR21
- ldr r2, =REG_NR22
- b _081DEB28
- .pool
-_081DEB00:
- ldr r0, =REG_NR30
- str r0, [sp, 0x8]
- ldr r7, =REG_NR31
- ldr r2, =REG_NR32
- str r2, [sp, 0xC]
- adds r0, 0x4
- str r0, [sp, 0x10]
- adds r2, 0x2
- b _081DEB30
- .pool
-_081DEB20:
- ldr r0, =REG_NR30 + 1
- str r0, [sp, 0x8]
- ldr r7, =REG_NR41
- ldr r2, =REG_NR42
-_081DEB28:
- str r2, [sp, 0xC]
- adds r0, 0xB
- str r0, [sp, 0x10]
- adds r2, 0x4
-_081DEB30:
- str r2, [sp, 0x14]
- ldr r0, [sp, 0x4]
- ldrb r0, [r0, 0xA]
- str r0, [sp]
- ldr r2, [sp, 0xC]
- ldrb r0, [r2]
- mov r8, r0
- adds r2, r1, 0
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _081DEC26
- movs r3, 0x40
- adds r0, r3, 0
- ands r0, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x1
- mov r10, r0
- movs r1, 0x40
- adds r1, r4
- mov r9, r1
- cmp r5, 0
- bne _081DEC4A
- movs r0, 0x3
- strb r0, [r4]
- strb r0, [r4, 0x1D]
- adds r0, r4, 0
- str r3, [sp, 0x18]
- bl CgbModVol
- ldr r3, [sp, 0x18]
- cmp r6, 0x2
- beq _081DEB98
- cmp r6, 0x2
- bgt _081DEB8C
- cmp r6, 0x1
- beq _081DEB92
- b _081DEBEC
- .pool
-_081DEB8C:
- cmp r6, 0x3
- beq _081DEBA4
- b _081DEBEC
-_081DEB92:
- ldrb r0, [r4, 0x1F]
- ldr r2, [sp, 0x8]
- strb r0, [r2]
-_081DEB98:
- ldr r0, [r4, 0x24]
- lsls r0, 6
- ldrb r1, [r4, 0x1E]
- adds r0, r1, r0
- strb r0, [r7]
- b _081DEBF8
-_081DEBA4:
- ldr r1, [r4, 0x24]
- ldr r0, [r4, 0x28]
- cmp r1, r0
- beq _081DEBCC
- ldr r2, [sp, 0x8]
- strb r3, [r2]
- ldr r1, =REG_WAVE_RAM
- ldr r2, [r4, 0x24]
- ldr r0, [r2]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x4]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x8]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0xC]
- str r0, [r1]
- str r2, [r4, 0x28]
-_081DEBCC:
- ldr r0, [sp, 0x8]
- strb r5, [r0]
- ldrb r0, [r4, 0x1E]
- strb r0, [r7]
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _081DEBE4
- movs r0, 0xC0
- b _081DEC06
- .pool
-_081DEBE4:
- movs r1, 0x80
- negs r1, r1
- strb r1, [r4, 0x1A]
- b _081DEC08
-_081DEBEC:
- ldrb r0, [r4, 0x1E]
- strb r0, [r7]
- ldr r0, [r4, 0x24]
- lsls r0, 3
- ldr r2, [sp, 0x10]
- strb r0, [r2]
-_081DEBF8:
- ldrb r0, [r4, 0x4]
- adds r0, 0x8
- mov r8, r0
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _081DEC06
- movs r0, 0x40
-_081DEC06:
- strb r0, [r4, 0x1A]
-_081DEC08:
- ldrb r1, [r4, 0x4]
- movs r2, 0
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- adds r1, r6, 0x1
- mov r10, r1
- movs r1, 0x40
- adds r1, r4
- mov r9, r1
- cmp r0, 0
- bne _081DEC22
- b _081DED5E
-_081DEC22:
- strb r2, [r4, 0x9]
- b _081DED8C
-_081DEC26:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _081DEC58
- ldrb r0, [r4, 0xD]
- subs r0, 0x1
- strb r0, [r4, 0xD]
- movs r2, 0xFF
- ands r0, r2
- lsls r0, 24
- adds r1, r6, 0x1
- mov r10, r1
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- ble _081DEC4A
- b _081DED9E
-_081DEC4A:
- lsls r0, r6, 24
- lsrs r0, 24
- bl CgbOscOff
- movs r0, 0
- strb r0, [r4]
- b _081DEE9C
-_081DEC58:
- movs r0, 0x40
- ands r0, r1
- adds r2, r6, 0x1
- mov r10, r2
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- beq _081DEC98
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081DEC98
- movs r0, 0xFC
- ands r0, r1
- movs r2, 0
- strb r0, [r4]
- ldrb r1, [r4, 0x7]
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- beq _081DECCA
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _081DED8C
- ldrb r2, [r4, 0x7]
- mov r8, r2
- b _081DED8C
-_081DEC98:
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _081DED8C
- cmp r6, 0x3
- bne _081DECAA
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
-_081DECAA:
- adds r0, r4, 0
- bl CgbModVol
- movs r0, 0x3
- ldrb r2, [r4]
- ands r0, r2
- cmp r0, 0
- bne _081DECFE
- ldrb r0, [r4, 0x9]
- subs r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- lsls r0, 24
- cmp r0, 0
- bgt _081DECFA
-_081DECCA:
- ldrb r2, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- adds r0, r2, 0
- muls r0, r1
- adds r0, 0xFF
- asrs r0, 8
- movs r1, 0
- strb r0, [r4, 0x9]
- lsls r0, 24
- cmp r0, 0
- beq _081DEC4A
- movs r0, 0x4
- ldrb r2, [r4]
- orrs r0, r2
- strb r0, [r4]
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _081DED9E
- movs r2, 0x8
- mov r8, r2
- b _081DED9E
-_081DECFA:
- ldrb r0, [r4, 0x7]
- b _081DED8A
-_081DECFE:
- cmp r0, 0x1
- bne _081DED0A
-_081DED02:
- ldrb r0, [r4, 0x19]
- strb r0, [r4, 0x9]
- movs r0, 0x7
- b _081DED8A
-_081DED0A:
- cmp r0, 0x2
- bne _081DED4E
- ldrb r0, [r4, 0x9]
- subs r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- lsls r0, 24
- ldrb r2, [r4, 0x19]
- lsls r1, r2, 24
- cmp r0, r1
- bgt _081DED4A
-_081DED22:
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _081DED32
- movs r0, 0xFC
- ldrb r1, [r4]
- ands r0, r1
- strb r0, [r4]
- b _081DECCA
-_081DED32:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- ldrb r2, [r4, 0x1D]
- orrs r0, r2
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _081DED02
- movs r0, 0x8
- mov r8, r0
- b _081DED02
-_081DED4A:
- ldrb r0, [r4, 0x5]
- b _081DED8A
-_081DED4E:
- ldrb r0, [r4, 0x9]
- adds r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- ldrb r2, [r4, 0xA]
- cmp r0, r2
- bcc _081DED88
-_081DED5E:
- ldrb r0, [r4]
- subs r0, 0x1
- movs r2, 0
- strb r0, [r4]
- ldrb r1, [r4, 0x5]
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- beq _081DED22
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- ldrb r0, [r4, 0xA]
- strb r0, [r4, 0x9]
- cmp r6, 0x3
- beq _081DED8C
- ldrb r2, [r4, 0x5]
- mov r8, r2
- b _081DED8C
-_081DED88:
- ldrb r0, [r4, 0x4]
-_081DED8A:
- strb r0, [r4, 0xB]
-_081DED8C:
- ldrb r0, [r4, 0xB]
- subs r0, 0x1
- strb r0, [r4, 0xB]
- ldr r0, [sp]
- cmp r0, 0
- bne _081DED9E
- subs r0, 0x1
- str r0, [sp]
- b _081DEC98
-_081DED9E:
- movs r0, 0x2
- ldrb r1, [r4, 0x1D]
- ands r0, r1
- cmp r0, 0
- beq _081DEE16
- cmp r6, 0x3
- bgt _081DEDDE
- movs r0, 0x8
- ldrb r2, [r4, 0x1]
- ands r0, r2
- cmp r0, 0
- beq _081DEDDE
- ldr r0, =REG_SOUNDBIAS + 1
- ldrb r0, [r0]
- cmp r0, 0x3F
- bgt _081DEDD0
- ldr r0, [r4, 0x20]
- adds r0, 0x2
- ldr r1, =0x000007fc
- b _081DEDDA
- .pool
-_081DEDD0:
- cmp r0, 0x7F
- bgt _081DEDDE
- ldr r0, [r4, 0x20]
- adds r0, 0x1
- ldr r1, =0x000007fe
-_081DEDDA:
- ands r0, r1
- str r0, [r4, 0x20]
-_081DEDDE:
- cmp r6, 0x4
- beq _081DEDF0
- ldr r0, [r4, 0x20]
- ldr r1, [sp, 0x10]
- strb r0, [r1]
- b _081DEDFE
- .pool
-_081DEDF0:
- ldr r2, [sp, 0x10]
- ldrb r0, [r2]
- movs r1, 0x8
- ands r1, r0
- ldr r0, [r4, 0x20]
- orrs r0, r1
- strb r0, [r2]
-_081DEDFE:
- movs r0, 0xC0
- ldrb r1, [r4, 0x1A]
- ands r0, r1
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r0, r1, r0
- strb r0, [r4, 0x1A]
- movs r2, 0xFF
- ands r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
-_081DEE16:
- movs r0, 0x1
- ldrb r2, [r4, 0x1D]
- ands r0, r2
- cmp r0, 0
- beq _081DEE9C
- ldr r1, =REG_NR51
- ldrb r0, [r1]
- ldrb r2, [r4, 0x1C]
- bics r0, r2
- ldrb r2, [r4, 0x1B]
- orrs r0, r2
- strb r0, [r1]
- cmp r6, 0x3
- bne _081DEE68
- ldr r0, =gCgb3Vol
- ldrb r1, [r4, 0x9]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, [sp, 0xC]
- strb r0, [r2]
- movs r1, 0x80
- adds r0, r1, 0
- ldrb r2, [r4, 0x1A]
- ands r0, r2
- cmp r0, 0
- beq _081DEE9C
- ldr r0, [sp, 0x8]
- strb r1, [r0]
- ldrb r0, [r4, 0x1A]
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- movs r0, 0x7F
- ldrb r2, [r4, 0x1A]
- ands r0, r2
- strb r0, [r4, 0x1A]
- b _081DEE9C
- .pool
-_081DEE68:
- movs r0, 0xF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrb r2, [r4, 0x9]
- lsls r0, r2, 4
- add r0, r8
- ldr r1, [sp, 0xC]
- strb r0, [r1]
- movs r2, 0x80
- ldrb r0, [r4, 0x1A]
- orrs r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- cmp r6, 0x1
- bne _081DEE9C
- ldr r0, [sp, 0x8]
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _081DEE9C
- ldrb r0, [r4, 0x1A]
- orrs r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
-_081DEE9C:
- movs r0, 0
- strb r0, [r4, 0x1D]
-_081DEEA0:
- mov r6, r10
- mov r4, r9
- cmp r6, 0x4
- bgt _081DEEAA
- b _081DEAA0
-_081DEEAA:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CgbSound
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/macros.inc b/asm/macros.inc
index 6d8657892..e6813d319 100644
--- a/asm/macros.inc
+++ b/asm/macros.inc
@@ -4,6 +4,7 @@
.include "asm/macros/pokemon_data.inc"
.include "asm/macros/ec.inc"
.include "asm/macros/map.inc"
+ .include "asm/macros/m4a.inc"
.macro region_map_location x, y, width, height, name
.byte \x
@@ -147,3 +148,8 @@
.2byte MAP_\map_name
.space 2
.endm
+
+ .macro window_template bg, top, left, height, width, palno, baseBlock
+ .byte \bg, \top, \left, \height, \width, \palno
+ .2byte \baseBlock
+ .endm
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 960b300b7..7ce50a5e1 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -295,8 +295,6 @@
@ In FireRed, this command is a nop.
.macro initclock hour minute
.byte 0x2c
- .byte \hour
- .byte \minute
.endm
@ In FireRed, this command is a nop.
@@ -304,7 +302,7 @@
.byte 0x2d
.endm
- @ Resets the values of variables 0x8000, 0x8001, and 0x8002. Related to RTC in RSE?
+ @ Resets the values of variables 0x8000, 0x8001, and 0x8002.
.macro gettime
.byte 0x2e
.endm
@@ -492,7 +490,7 @@
.endm
@ Adds a quantity amount of item index to the player's PC. Both arguments can be variables.
- .macro addpcitem index, quantity
+ .macro givepcitem index, quantity
.byte 0x49
.2byte \index
.2byte \quantity
@@ -506,27 +504,27 @@
.endm
@ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro adddecor a
+ .macro adddecor decoration
.byte 0x4b
- .2byte \a
+ .2byte \decoration
.endm
@ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro removedecor a
+ .macro removedecor decoration
.byte 0x4c
- .2byte \a
+ .2byte \decoration
.endm
@ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro hasdecor a
+ .macro hasdecor decoration
.byte 0x4d
- .2byte \a
+ .2byte \decoration
.endm
@ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro checkdecor a
+ .macro checkdecor decoration
.byte 0x4e
- .2byte \a
+ .2byte \decoration
.endm
@ Applies the movement data at movements to the specified (index) Person event. Also closes any standard message boxes that are still open.
@@ -584,36 +582,35 @@
.endif
.endm
- .macro setobjectxy word1, word2, word3
- .byte 0x57
- .2byte \word1
- .2byte \word2
- .2byte \word3
+ @ Sets the specified (index) Object's position on the current map.
+ .macro setobjectxy index, x, y
+ .byte 0x57
+ .2byte \index
+ .2byte \x
+ .2byte \y
.endm
- .macro showobject word, byte1, byte2
- .byte 0x58
- .2byte \word
- .byte \byte1
- .byte \byte2
+ .macro showobject index, map
+ .byte 0x58
+ .2byte \index
+ map \map
.endm
- .macro hideobject word, byte1, byte2
- .byte 0x59
- .2byte \word
- .byte \byte1
- .byte \byte2
+ .macro hideobject index, map
+ .byte 0x59
+ .2byte \index
+ map \map
.endm
- @ If the script was called by a Person event, then that Person will turn to face toward the tile that the player is stepping off of.
+ @ If the script was called by an Object, then that Object will turn to face toward the metatile that the player is standing on.
.macro faceplayer
- .byte 0x5a
+ .byte 0x5a
.endm
- .macro turnobject word, byte
- .byte 0x5b
- .2byte \word
- .byte \byte
+ .macro turnobject index, direction
+ .byte 0x5b
+ .2byte \index
+ .byte \direction
.endm
@ If the Trainer flag for Trainer index is not set, this command does absolutely nothing.
@@ -656,6 +653,9 @@
.4byte \pointer2 @ text
.4byte \pointer3 @ text
.4byte \pointer4 @ event script
+ .elseif \type == 9
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
.endif
.endm
@@ -691,16 +691,16 @@
.2byte \trainer
.endm
- .macro setobjectxyperm word1, word2, word3
+ .macro setobjectxyperm index, x, y
.byte 0x63
- .2byte \word1
- .2byte \word2
- .2byte \word3
+ .2byte \index
+ .2byte \x
+ .2byte \y
.endm
- .macro moveobjectoffscreen word
+ .macro moveobjectoffscreen index
.byte 0x64
- .2byte \word
+ .2byte \index
.endm
.macro setobjectmovementtype word, byte
@@ -725,73 +725,69 @@
.byte 0x68
.endm
- @ Ceases movement for all OWs on-screen.
+ @ Ceases movement for all Objects on-screen.
.macro lockall
.byte 0x69
.endm
- @ If the script was called by a Person event, then that Person's movement will cease.
+ @ If the script was called by an Object, then that Object's movement will cease.
.macro lock
.byte 0x6a
.endm
- @ Resumes normal movement for all OWs on-screen, and closes any standard message boxes that are still open.
+ @ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open.
.macro releaseall
.byte 0x6b
.endm
- @ If the script was called by a Person event, then that Person's movement will resume. This command also closes any standard message boxes that are still open.
+ @ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open.
.macro release
.byte 0x6c
.endm
@ Blocks script execution until the player presses any key.
- .macro waitbutton
+ .macro waitbuttonpress
.byte 0x6d
.endm
@ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES".
- .macro yesnobox X, Y
+ .macro yesnobox x, y
.byte 0x6e
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
- .macro multichoice X, Y, list, B
+ @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
+ .macro multichoice x, y, list, b
.byte 0x6f
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.byte \list
- .byte \B
+ .byte \b
.endm
- @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
- .macro multichoicedefault X, Y, list, default, B
+ @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
+ .macro multichoicedefault x, y, list, default, b
.byte 0x70
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.byte \list
.byte \default
- .byte \B
+ .byte \b
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box.
- .macro multichoicegrid X, Y, list, per_row, B
+ .macro multichoicegrid x, y, list, per_row, B
.byte 0x71
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.byte \list
.byte \per_row
.byte \B
.endm
- .macro drawbox byte1, byte2, byte3, byte4
+ .macro drawbox
.byte 0x72
- .byte \byte1
- .byte \byte2
- .byte \byte3
- .byte \byte4
.endm
.macro erasebox byte1, byte2, byte3, byte4
@@ -802,28 +798,24 @@
.byte \byte4
.endm
- .macro drawboxtext byte1, byte2, byte3, byte4
+ .macro drawboxtext
.byte 0x74
- .byte \byte1
- .byte \byte2
- .byte \byte3
- .byte \byte4
.endm
- @ Displays a box containing the front sprite for the specified (species) Pokmon species.
- .macro drawpokepic species, X, Y
+ @ Displays a box containing the front sprite for the specified (species) Pokemon species.
+ .macro drawmonpic species, x, y
.byte 0x75
.2byte \species
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Hides all boxes displayed with showpokepic.
- .macro erasepokepic
+ @ Hides all boxes displayed with drawmonpic.
+ .macro erasemonpic
.byte 0x76
.endm
- @ In FireRed, this command is a nop. (The argument is discarded.)
+ @ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.)
.macro drawcontestwinner a
.byte 0x77
.byte \a
@@ -835,8 +827,9 @@
.4byte \text
.endm
+ @ RENAMED!
@ Gives the player one of the specified (species) Pokmon at level level holding item. The unknown arguments should all be zeroes.
- .macro givepoke species, level, item, unknown1, unknown2, unknown3
+ .macro givemon species, level, item, unknown1, unknown2, unknown3
.byte 0x79
.2byte \species
.byte \level
@@ -846,39 +839,42 @@
.byte \unknown3
.endm
- .macro giveegg word
+ .macro giveegg species
.byte 0x7a
- .2byte \word
+ .2byte \species
.endm
- .macro setpokemove byte1, byte2, word
+ @ RENAMED!
+ .macro setmonmove byte1, byte2, word
.byte 0x7b
.byte \byte1
.byte \byte2
.2byte \word
.endm
- @ Checks if at least one Pokmon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the Pokmon that knows the move. If not, LASTRESULT is set to 0x0006.
- .macro checkpokemove index
+ @ Checks if at least one Pokémon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokémon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokémon's species.
+ .macro checkpartymove index
.byte 0x7c
.2byte \index
.endm
- @ Writes the name of the Pokmon at index species to the specified buffer.
+ @ Writes the name of the Pokemon at index species to the specified buffer.
.macro getspeciesname out, species
.byte 0x7d
.byte \out
.2byte \species
.endm
- @ Writes the name of the first Pokmon in the player's party to the specified buffer.
- .macro getfirstpartypokename out
+ @ RENAMED!
+ @ Writes the name of the species of the first Pokémon in the player's party to the specified buffer.
+ .macro getfirstpartymonname out
.byte 0x7e
.byte \out
.endm
- @ Writes the name of the Pokmon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer.
- .macro getpartypokename out, slot
+ @ RENAMED!
+ @ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer.
+ .macro getpartymonname out, slot
.byte 0x7f
.byte \out
.2byte \slot
@@ -891,18 +887,18 @@
.2byte \item
.endm
- @ In FireRed, this command is a nop. (The first argument is discarded immediately. The second argument is read, but not used for anything.)
- .macro getdecorname a, b
+ @ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop.
+ .macro getdecorname out, decoration
.byte 0x81
- .byte \a
- .2byte \b
+ .byte \out
+ .2byte \decoration
.endm
- @ Writes the name of the attack at index attack to the specified buffer.
- .macro getmovename out, attack
+ @ Writes the name of the move at index move to the specified buffer.
+ .macro getmovename out, move
.byte 0x82
.byte \out
- .2byte \attack
+ .2byte \move
.endm
@ Converts the value of input to a decimal string, and writes that string to the specified buffer.
@@ -912,7 +908,7 @@
.2byte \input
.endm
- @ Writes the standard string identified by index to the specified buffer. Specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption (I've observed destruction of the stored player name and crashes when entering/exiting certain menu screens).
+ @ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, so specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption.
.macro getstdstring out, index
.byte 0x84
.byte \out
@@ -944,15 +940,15 @@
.4byte \products
.endm
+ @ Starts up the slot machine minigame.
.macro playslotmachine word
.byte 0x89
.2byte \word
.endm
@ In FireRed, this command is a nop.
- .macro plantberrytree byte1, byte2, byte3
+ .macro plantberrytree
.byte 0x8a
- .byte \byte1, \byte2, \byte3
.endm
@ In FireRed, this command sets the byte at 0x03000EA8 to 0x01. I do not know what that means.
@@ -1003,30 +999,29 @@
.endm
@ Spawns a secondary box showing how much money the player has.
- .macro showmoneybox X, Y
+ .macro showmoneybox x, y, check
.byte 0x93
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
+ .byte \check
.endm
@ Hides the secondary box spawned by showmoney.
- .macro hidemoneybox X, Y
+ .macro hidemoneybox
.byte 0x94
- .byte \X
- .byte \Y
.endm
- @ Updates the secondary box spawned by showmoney. (What does it do with its arguments?)
- .macro updatemoneybox X, Y
+ @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments.
+ .macro updatemoneybox x, y, check
.byte 0x95
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
+ .byte \check
.endm
@ In FireRed, this command is a nop.
- .macro getpricereduction word
+ .macro getpricereduction
.byte 0x96
- .2byte \word
.endm
@ Fades the screen to black or back, using the specified effect. Effect 0x00 fades in, and effect 0x01 fades out. I don't know if other effects exist.
@@ -1035,18 +1030,19 @@
.byte \effect
.endm
- .macro fadescreendelay byte1, byte2
+ @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist.
+ .macro fadescreenspeed effect, speed
.byte 0x98
- .byte \byte1
- .byte \byte2
+ .byte \effect
+ .byte \speed
.endm
- .macro setdarklevel word
+ .macro setflashradius word
.byte 0x99
.2byte \word
.endm
- .macro animdarklevel byte
+ .macro animateflash byte
.byte 0x9a
.byte \byte
.endm
@@ -1062,11 +1058,11 @@
.2byte \animation
.endm
- @ Tells the game which party Pokmon to use for the next field move animation.
- .macro setfieldeffect animation, slot
+ @ Sets up the field effect argument argument with the value value.
+ .macro setfieldeffectarg argument, param
.byte 0x9d
- .byte \animation
- .2byte \slot
+ .byte \argument
+ .2byte \param
.endm
@ Blocks script execution until all playing field move animations complete.
@@ -1075,8 +1071,8 @@
.2byte \animation
.endm
- @ Sets which healing place the player will return to if all of the Pokmon in their party faint. A list of available healing places can be found on PokeCommunity.
- .macro sethealplace flightspot
+ @ Sets which healing place the player will return to if all of the Pokemon in their party faint.
+ .macro setrespawn flightspot
.byte 0x9f
.2byte \flightspot
.endm
@@ -1086,19 +1082,19 @@
.byte 0xa0
.endm
- @ Plays the specified (species) Pokmon's cry. You can use waitcry to block script execution until the sound finishes.
- .macro playpokecry species, effect
+ @ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes.
+ .macro playmoncry species, effect
.byte 0xa1
.2byte \species
.2byte \effect
.endm
- @ Changes the tile at (X, Y) on the current map.
- .macro setmaptile X, Y, tile_number, tile_attrib
+ @ Changes the metatile at (x, y) on the current map.
+ .macro setmetatile x, y, metatile_number, tile_attrib
.byte 0xa2
- .2byte \X
- .2byte \Y
- .2byte \tile_number
+ .2byte \x
+ .2byte \y
+ .2byte \metatile_number
.2byte \tile_attrib
.endm
@@ -1119,98 +1115,96 @@
.endm
@ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors).
- .macro tileeffect subroutine
+ .macro setstepcallback subroutine
.byte 0xa6
.byte \subroutine
.endm
- .macro setmaplayoutindex word
+ .macro setmaplayoutindex index
.byte 0xa7
- .2byte \word
+ .2byte \index
.endm
- .macro setobjectpriority word, byte1, byte2, byte3
+ .macro setobjectpriority index, map, priority
.byte 0xa8
- .2byte \word
- .byte \byte1
- .byte \byte2
- .byte \byte3
+ .2byte \index
+ map \map
+ .byte \priority
.endm
- .macro resetobjectpriority word, byte1, byte2
+ .macro resetobjectpriority index, map
.byte 0xa9
- .2byte \word
- .byte \byte1
- .byte \byte2
+ .2byte \index
+ map \map
.endm
- .macro createvobject byte1, byte2, word1, word2, byte3, byte4
+ .macro createvobject sprite, byte2, x, y, elevation, direction
.byte 0xaa
- .byte \byte1
+ .byte \sprite
.byte \byte2
- .2byte \word1
- .2byte \word2
- .byte \byte3
- .byte \byte4
+ .2byte \x
+ .2byte \y
+ .byte \elevation
+ .byte \direction
.endm
- .macro turnvobject byte1, byte2
+ .macro turnvobject index, direction
.byte 0xab
- .byte \byte1
- .byte \byte2
+ .byte \index
+ .byte \direction
.endm
- @ Queues the opening of the door tile at (X, Y) with an animation.
- .macro opendoor X, Y
+ @ Opens the door metatile at (X, Y) with an animation.
+ .macro opendoor x, y
.byte 0xac
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ Queues the closing of the door tile at (X, Y) with an animation.
- .macro closedoor X, Y
+ @ Closes the door metatile at (X, Y) with an animation.
+ .macro closedoor x, y
.byte 0xad
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ Executes the state changes queued with setdooropened, setdoorclosed, setdooropened2, and setdoorclosed2.
+ @ Waits for the door animation started with opendoor or closedoor to finish.
.macro waitdooranim
.byte 0xae
.endm
- @ Queues the opening of the door tile at (X, Y) without an animation.
- .macro setdooropen X, Y
+ @ Sets the door tile at (x, y) to be open without an animation.
+ .macro setdooropen x, y
.byte 0xaf
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ Queues the closing of the door tile at (X, Y) without an animation.
- .macro setdoorclosed X, Y
+ @ Sets the door tile at (x, y) to be closed without an animation.
+ .macro setdoorclosed2 x, y
.byte 0xb0
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ In FireRed, this command is a nop.
+ @ In Emerald, this command consumes its parameters and does nothing. In FireRed, this command is a nop.
.macro addelevmenuitem
.byte 0xb1
.endm
- @ In FireRed, this command is a nop.
+ @ In FireRed and Emerald, this command is a nop.
.macro showelevmenu
.byte 0xb2
.endm
- .macro checkcoins word
+ .macro checkcoins out
.byte 0xb3
- .2byte \word
+ .2byte \out
.endm
- .macro givecoins word
+ .macro givecoins count
.byte 0xb4
- .2byte \word
+ .2byte \count
.endm
.macro takecoins word
@@ -1226,7 +1220,7 @@
.2byte \item
.endm
- @ Starts a wild battle against the Pokmon generated by setwildbattle. Blocks script execution until the battle finishes.
+ @ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes.
.macro dowildbattle
.byte 0xb7
.endm
@@ -1264,55 +1258,55 @@
.4byte \pointer
.endm
- .macro vloadword pointer
+ .macro vloadptr pointer
.byte 0xbe
.4byte \pointer
.endm
- .macro vgetstring byte, pointer
+ .macro vbufferstring byte, pointer
.byte 0xbf
.byte \byte
.4byte \pointer
.endm
@ Spawns a secondary box showing how many Coins the player has.
- .macro showcoinsbox X, Y
+ .macro showcoinsbox x, y
.byte 0xc0
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Hides the secondary box spawned by showcoins. It doesn't appear to use its arguments, but they are still required.
- .macro hidecoinsbox X, Y
+ @ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them.
+ .macro hidecoinsbox x, y
.byte 0xc1
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Updates the secondary box spawned by showcoins. (What does it do with its arguments?)
- .macro updatecoinsbox X, Y
+ @ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them.
+ .macro updatecoinsbox x, y
.byte 0xc2
- .byte \X
- .byte \Y
+ .byte \x
+ .byte \y
.endm
- @ Increases the value of the specified hidden variable by 1. The hidden variable's value will not be allowed to exceed 0x00FFFFFF.
- .macro incrementgamestat a
+ @ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF.
+ .macro incrementgamestat stat
.byte 0xc3
- .byte \a
+ .byte \stat
.endm
- @ Clone of warp... Except that it doesn't appear to have any effect when used in some of FireRed's default level scripts. (If it did, Berry Forest would be impossible to enter...)
- .macro setescapewarp map, warp, X, Y
+ @ Sets the destination that using an Escape Rope or Dig will take the player to.
+ .macro setescapewarp map, warp, x, y
.byte 0xc4
map \map
.byte \warp
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
@ Blocks script execution until cry finishes.
- .macro waitpokecry
+ .macro waitmoncry
.byte 0xc5
.endm
@@ -1357,128 +1351,52 @@
.4byte \value
.endm
- @ Makes the Pokmon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle.
- .macro setobedience slot
+ @ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle.
+ .macro setmonobedient slot
.byte 0xcd
.2byte \slot
.endm
- @ Checks if the Pokmon in the specified slot of the player's party is obedient. If the Pokmon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokmon is obedient (or if the specified slot is empty or invalid), 0x0000 is written.
- .macro checkobedience slot
+ @ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokemon is obedient (or if the specified slot is empty or invalid), 0x0000 is written.
+ .macro checkmonobedience slot
.byte 0xce
.2byte \slot
.endm
- @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020370A4.
+ @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020375C0.
.macro execram
.byte 0xcf
.endm
@ Sets worldmapflag to 1. This allows the player to Fly to the corresponding map, if that map has a flightspot.
- .macro setworldflag worldmapflag
+ .macro setworldmapflag worldmapflag
.byte 0xd0
.2byte \worldmapflag
.endm
@ Clone of warpteleport? It is apparently only used in FR/LG, and only with specials.[source]
- .macro warpteleport2 map, warp, X, Y
+ .macro warpteleport2 map, warp, x, y
.byte 0xd1
map \map
.byte \warp
- .2byte \X
- .2byte \Y
+ .2byte \x
+ .2byte \y
.endm
- @ Changes the location where the player caught the Pokmon in the specified slot of their party. A list of valid catch locations can be found on PokeCommunity.
- .macro setcatchlocale slot, location
+ @ Changes the location where the player caught the Pokemon in the specified slot of their party.
+ .macro setmonmetlocation slot, location
.byte 0xd2
.2byte \slot
.byte \location
.endm
- .macro event_d3 unknown
+ .macro getbraillestringwidth pointer
.byte 0xd3
- .2byte \unknown
- .endm
-
- .macro event_d4
- .byte 0xd4
- .endm
-
- @ In FireRed, this command is a nop.
- .macro event_d5 var
- .byte 0xd5
- .2byte \var
- .endm
-
- .macro event_d6
- .byte 0xd6
- .endm
-
- .macro warp7 map, byte, word1, word2
- .byte 0xd7
- map \map
- .byte \byte
- .2byte \word1
- .2byte \word2
- .endm
-
- .macro event_d8
- .byte 0xd8
- .endm
-
- .macro event_d9
- .byte 0xd9
- .endm
-
- .macro hidebox2
- .byte 0xda
- .endm
-
- .macro message3 pointer
- .byte 0xdb
.4byte \pointer
.endm
- .macro fadescreen3 byte
- .byte 0xdc
- .byte \byte
- .endm
-
- .macro buffertrainerclass byte, word
- .byte 0xdd
- .byte \byte
- .2byte \word
- .endm
-
- .macro buffertrainername byte, word
- .byte 0xde
- .byte \byte
- .2byte \word
- .endm
-
- .macro pokenavcall pointer
- .byte 0xdf
- .4byte \pointer
- .endm
-
- .macro warp8 map, byte, word1, word2
- .byte 0xe0
- map \map
- .byte \byte
- .2byte \word1
- .2byte \word2
- .endm
-
- .macro buffercontesttype byte, word
- .byte 0xe1
- .byte \byte
- .2byte \word
- .endm
-
- @ Writes the name of the specified (item) item to the specified buffer. If the specified item is a Berry (0x85 - 0xAE) or Poke Ball (0x4) and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). If the specified item is the Enigma Berry, I have no idea what this command does (but testing showed no pluralization). If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead.
- .macro storeitems out, item, quantity
- .byte 0xe2
+ .macro bufferitemnameplural out, item, quantity
+ .byte 0xd4
.byte \out
.2byte \item
.2byte \quantity
@@ -1517,7 +1435,10 @@
callstd \function
.endm
- .macro givedecoration decoration
- setorcopyvar 0x8000, \decoration
- callstd 7
+ .macro giveitemfanfaremsg msg, item, amount=1, fanfare=MUS_FANFA1
+ loadword 0, \msg
+ setorcopyvar 0x8000, \item
+ setorcopyvar 0x8001, \amount
+ setorcopyvar 0x8002, \fanfare
+ callstd 9
.endm
diff --git a/asm/macros/map.inc b/asm/macros/map.inc
index 9c68e8414..075993fd3 100644
--- a/asm/macros/map.inc
+++ b/asm/macros/map.inc
@@ -14,13 +14,15 @@
.4byte \address
.endm
- .macro object_event byte1, word1, byte2, byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10, byte11, byte12, byte13, byte14, script, word2, byte15, byte16
- .byte \byte1
- .2byte \word1
- .byte \byte2, \byte3, \byte4, \byte5, \byte6, \byte7, \byte8, \byte9, \byte10, \byte11, \byte12, \byte13, \byte14
+ .macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req
+ .byte \index
+ .2byte \gfx
+ .byte 0
+ .2byte \x, \y
+ .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0
+ .2byte \trainer_type, \sight_radius_tree_etc
.4byte \script
- .2byte \word2
- .byte \byte15, \byte16
+ .2byte \event_flag, 0
inc _num_npcs
.endm
@@ -53,6 +55,10 @@
inc _num_signs
.endm
+ .macro bg_hidden_item_event x, y, height, item, flag, unknown
+ bg_event \x, \y, \height, 7, 0, \item, \flag, \unknown
+ .endm
+
.macro map_events npcs, warps, traps, signs
.byte _num_npcs, _num_warps, _num_traps, _num_signs
.4byte \npcs, \warps, \traps, \signs
diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc
index 909b24916..f077a8f5a 100644
--- a/asm/macros/movement.inc
+++ b/asm/macros/movement.inc
@@ -5,7 +5,7 @@
.endm
.endm
- enum_start
+ enum_start 0
create_movement step_00
create_movement step_01
create_movement step_02
@@ -108,6 +108,8 @@
create_movement step_63
create_movement step_64
create_movement step_65
+ create_movement step_66
+ create_movement step_67
enum_start 0x91
create_movement step_91
diff --git a/asm/mail.s b/asm/mail.s
index 1ecaf17cc..77f8864ed 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -200,7 +200,7 @@ _080BED40:
_080BED8C:
movs r0, 0
bl SetVBlankCallback
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r0, 0
movs r1, 0
bl SetGpuReg
@@ -209,13 +209,13 @@ _080BED8C:
cmp r0, 0
bne _080BEDB4
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080BF0F4
.align 2, 0
_080BEDB0: .4byte gUnknown_203AAC4
_080BEDB4:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080BF0F4
_080BEDBC:
add r1, sp, 0x8
@@ -623,7 +623,7 @@ _080BF112:
.align 2, 0
_080BF128: .4byte sub_80BF368
_080BF12C:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -811,7 +811,7 @@ _080BF260:
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
mov r1, r8
ldr r0, [r1]
adds r0, 0xF8
@@ -856,7 +856,7 @@ _080BF2CE:
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0xE9
@@ -875,7 +875,7 @@ _080BF2CE:
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s
index d2cc06070..aecca0735 100644
--- a/asm/mailbox_pc.s
+++ b/asm/mailbox_pc.s
@@ -81,7 +81,7 @@ sub_810EBE0: @ 810EBE0
adds r4, r0
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
@@ -154,7 +154,7 @@ _0810EC62:
movs r1, 0x2
movs r2, 0x8
adds r3, r5, 0
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
_0810EC82:
add sp, 0x34
pop {r4,r5}
@@ -176,7 +176,7 @@ sub_810EC98: @ 810EC98
ldr r7, _0810ED50 @ =gUnknown_203ADE0
ldr r0, _0810ED54 @ =gFameCheckerText_Cancel
mov r12, r0
- ldr r5, _0810ED58 @ =gUnknown_3005E70
+ ldr r5, _0810ED58 @ =gMultiuseListMenuTemplate
ldr r1, _0810ED5C @ =gUnknown_203ADDC
mov r8, r1
ldrb r0, [r6, 0x5]
@@ -263,7 +263,7 @@ _0810ECCE:
.align 2, 0
_0810ED50: .4byte gUnknown_203ADE0
_0810ED54: .4byte gFameCheckerText_Cancel
-_0810ED58: .4byte gUnknown_3005E70
+_0810ED58: .4byte gMultiuseListMenuTemplate
_0810ED5C: .4byte gUnknown_203ADDC
_0810ED60: .4byte gUnknown_8454003
_0810ED64: .4byte sub_810ED6C
@@ -303,7 +303,7 @@ sub_810ED80: @ 810ED80
movs r1, 0xC2
movs r2, 0xC
movs r3, 0x94
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
strb r0, [r4, 0xA]
add sp, 0x10
pop {r4}
diff --git a/asm/main_menu.s b/asm/main_menu.s
index ae0a4c69b..f88fea21a 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -113,7 +113,7 @@ sub_800C318: @ 800C318
ldr r0, _0800C4B0 @ =0x810001ff
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
@@ -639,7 +639,7 @@ _0800C828:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, _0800C86C @ =gUnknown_8234618
bl sub_800D0B4
movs r0, 0
@@ -670,7 +670,7 @@ _0800C870:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
ldr r0, _0800C8E8 @ =gUnknown_8415A6E
@@ -679,7 +679,7 @@ _0800C870:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
bl sub_800CE58
ldr r4, _0800C8EC @ =gUnknown_8234620
adds r0, r4, 0
@@ -725,7 +725,7 @@ _0800C8F0:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
ldr r0, _0800C9B8 @ =gUnknown_8415A6E
@@ -734,7 +734,7 @@ _0800C8F0:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x1
strh r0, [r6, 0x1C]
str r5, [sp]
@@ -745,7 +745,7 @@ _0800C8F0:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
bl sub_800CE58
ldr r4, _0800C9C0 @ =gUnknown_8234620
adds r0, r4, 0
@@ -983,7 +983,7 @@ _0800CB2E:
bl FreeAllWindowBuffers
adds r0, r6, 0
bl DestroyTask
- bl sub_812EB2C
+ bl StartNewGameScene
b _0800CB84
.align 2, 0
_0800CB44: .4byte gUnknown_2031DE0
@@ -1005,7 +1005,7 @@ _0800CB64: .4byte gPlttBufferUnfaded
_0800CB68: .4byte gPlttBufferFaded
_0800CB6C: .4byte gUnknown_2031DE0
_0800CB70:
- ldr r0, _0800CB8C @ =sub_81422AC
+ ldr r0, _0800CB8C @ =c2_mystery_gift
bl SetMainCallback2
bl sub_812B478
bl FreeAllWindowBuffers
@@ -1017,7 +1017,7 @@ _0800CB84:
pop {r0}
bx r0
.align 2, 0
-_0800CB8C: .4byte sub_81422AC
+_0800CB8C: .4byte c2_mystery_gift
thumb_func_end sub_800CA94
thumb_func_start sub_800CB90
@@ -1141,7 +1141,7 @@ sub_800CC68: @ 800CC68
ands r0, r1
cmp r0, 0
bne _0800CC86
- ldr r0, _0800CC90 @ =sub_8078914
+ ldr r0, _0800CC90 @ =CB2_InitTitleScreen
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -1151,7 +1151,7 @@ _0800CC86:
bx r0
.align 2, 0
_0800CC8C: .4byte gPaletteFade
-_0800CC90: .4byte sub_8078914
+_0800CC90: .4byte CB2_InitTitleScreen
thumb_func_end sub_800CC68
thumb_func_start sub_800CC94
@@ -1355,7 +1355,7 @@ sub_800CDF8: @ 800CDF8
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x4
bl PutWindowTilemap
movs r0, 0x4
@@ -1404,7 +1404,7 @@ sub_800CE70: @ 800CE70
movs r1, 0x2
movs r2, 0x2
movs r3, 0x12
- bl box_print
+ bl AddTextPrinterParameterized3
add r1, sp, 0xC
movs r2, 0
ldr r0, _0800CED0 @ =gSaveBlock2Ptr
@@ -1430,7 +1430,7 @@ _0800CE96:
movs r1, 0x2
movs r2, 0x3E
movs r3, 0x12
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x14
pop {r0}
bx r0
@@ -1455,7 +1455,7 @@ sub_800CED4: @ 800CED4
movs r1, 0x2
movs r2, 0x2
movs r3, 0x22
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, _0800CF38 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrh r1, [r0, 0xE]
@@ -1479,7 +1479,7 @@ sub_800CED4: @ 800CED4
movs r1, 0x2
movs r2, 0x3E
movs r3, 0x22
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x2C
pop {r4-r6}
pop {r0}
@@ -1525,7 +1525,7 @@ _0800CF6A:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x32
- bl box_print
+ bl AddTextPrinterParameterized3
add r0, sp, 0xC
adds r1, r6, 0
movs r2, 0
@@ -1541,7 +1541,7 @@ _0800CF6A:
movs r1, 0x2
movs r2, 0x3E
movs r3, 0x32
- bl box_print
+ bl AddTextPrinterParameterized3
_0800CFAE:
add sp, 0x2C
pop {r4-r6}
@@ -1586,7 +1586,7 @@ _0800CFE2:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x42
- bl box_print
+ bl AddTextPrinterParameterized3
add r0, sp, 0xC
adds r1, r6, 0
movs r2, 0x2
@@ -1602,7 +1602,7 @@ _0800CFE2:
movs r1, 0x2
movs r2, 0x3E
movs r3, 0x42
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x2C
pop {r4-r6}
pop {r0}
@@ -1656,7 +1656,7 @@ sub_800D094: @ 800D094
ldr r1, _0800D0AC @ =0x000001b1
movs r0, 0
movs r2, 0x20
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _0800D0B0 @ =gUnknown_8234638
bl sub_800D1E8
pop {r0}
diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s
index b7e20c4bf..8df50601a 100644
--- a/asm/map_name_popup.s
+++ b/asm/map_name_popup.s
@@ -360,7 +360,7 @@ _080983C6:
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r5, 0
diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s
deleted file mode 100644
index 1b406a74d..000000000
--- a/asm/map_obj_lock.s
+++ /dev/null
@@ -1,302 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start walkrun_is_standing_still
-walkrun_is_standing_still: @ 8069554
- push {lr}
- ldr r0, _08069564 @ =gPlayerAvatar
- ldrb r0, [r0, 0x3]
- cmp r0, 0x1
- beq _08069568
- movs r0, 0x1
- b _0806956A
- .align 2, 0
-_08069564: .4byte gPlayerAvatar
-_08069568:
- movs r0, 0
-_0806956A:
- pop {r1}
- bx r1
- thumb_func_end walkrun_is_standing_still
-
- thumb_func_start sub_8069570
-sub_8069570: @ 8069570
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl walkrun_is_standing_still
- lsls r0, 24
- cmp r0, 0
- beq _0806958A
- bl sub_805C270
- adds r0, r4, 0
- bl DestroyTask
-_0806958A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8069570
-
- thumb_func_start sub_8069590
-sub_8069590: @ 8069590
- push {lr}
- ldr r0, _080695A8 @ =sub_8069570
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080695AC
- bl sub_805C780
- movs r0, 0x1
- b _080695AE
- .align 2, 0
-_080695A8: .4byte sub_8069570
-_080695AC:
- movs r0, 0
-_080695AE:
- pop {r1}
- bx r1
- thumb_func_end sub_8069590
-
- thumb_func_start ScriptFreezeMapObjects
-ScriptFreezeMapObjects: @ 80695B4
- push {lr}
- bl player_bitmagic
- ldr r0, _080695C8 @ =sub_8069570
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080695C8: .4byte sub_8069570
- thumb_func_end ScriptFreezeMapObjects
-
- thumb_func_start sub_80695CC
-sub_80695CC: @ 80695CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0806963C @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080695F6
- bl walkrun_is_standing_still
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _080695F6
- bl sub_805C270
- strh r4, [r5, 0x8]
-_080695F6:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0806961E
- ldr r2, _08069640 @ =gMapObjects
- ldr r0, _08069644 @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0806961E
- adds r0, r1, 0
- bl FreezeMapObject
- movs r0, 0x1
- strh r0, [r5, 0xA]
-_0806961E:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08069634
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08069634
- adds r0, r6, 0
- bl DestroyTask
-_08069634:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806963C: .4byte gTasks
-_08069640: .4byte gMapObjects
-_08069644: .4byte gUnknown_3005074
- thumb_func_end sub_80695CC
-
- thumb_func_start sub_8069648
-sub_8069648: @ 8069648
- push {lr}
- ldr r0, _08069660 @ =sub_80695CC
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08069664
- bl sub_805C780
- movs r0, 0x1
- b _08069666
- .align 2, 0
-_08069660: .4byte sub_80695CC
-_08069664:
- movs r0, 0
-_08069666:
- pop {r1}
- bx r1
- thumb_func_end sub_8069648
-
- thumb_func_start LockSelectedMapObject
-LockSelectedMapObject: @ 806966C
- push {r4,r5,lr}
- ldr r4, _080696B0 @ =gUnknown_3005074
- ldrb r0, [r4]
- bl FreezeMapObjectsExceptOne
- ldr r0, _080696B4 @ =sub_80695CC
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080696B8 @ =gMapObjects
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _080696AA
- adds r0, r1, 0
- bl FreezeMapObject
- ldr r0, _080696BC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0xA]
-_080696AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080696B0: .4byte gUnknown_3005074
-_080696B4: .4byte sub_80695CC
-_080696B8: .4byte gMapObjects
-_080696BC: .4byte gTasks
- thumb_func_end LockSelectedMapObject
-
- thumb_func_start sub_80696C0
-sub_80696C0: @ 80696C0
- push {lr}
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080696EC @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80974D8
- bl UnfreezeMapObjects
- pop {r0}
- bx r0
- .align 2, 0
-_080696EC: .4byte gMapObjects
- thumb_func_end sub_80696C0
-
- thumb_func_start sub_80696F0
-sub_80696F0: @ 80696F0
- push {r4,lr}
- ldr r4, _08069738 @ =gMapObjects
- ldr r0, _0806973C @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _0806970E
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
-_0806970E:
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80974D8
- bl UnfreezeMapObjects
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08069738: .4byte gMapObjects
-_0806973C: .4byte gUnknown_3005074
- thumb_func_end sub_80696F0
-
- thumb_func_start sub_8069740
-sub_8069740: @ 8069740
- push {lr}
- ldr r0, _0806975C @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08069760 @ =gMapObjects
- adds r0, r1
- ldr r1, _08069764 @ =gSpecialVar_Facing
- ldrb r1, [r1]
- bl FieldObjectFaceOppositeDirection
- pop {r0}
- bx r0
- .align 2, 0
-_0806975C: .4byte gUnknown_3005074
-_08069760: .4byte gMapObjects
-_08069764: .4byte gSpecialVar_Facing
- thumb_func_end sub_8069740
-
- thumb_func_start sub_8069768
-sub_8069768: @ 8069768
- push {lr}
- ldr r0, _08069780 @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08069784 @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimActive
- pop {r0}
- bx r0
- .align 2, 0
-_08069780: .4byte gUnknown_3005074
-_08069784: .4byte gMapObjects
- thumb_func_end sub_8069768
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/map_preview_screen.s b/asm/map_preview_screen.s
index c8f063d5a..be9f5e3c5 100644
--- a/asm/map_preview_screen.s
+++ b/asm/map_preview_screen.s
@@ -345,7 +345,7 @@ sub_80F8318: @ 80F8318
adds r0, r6, 0
movs r1, 0x2
movs r3, 0x2
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
mov r0, r8
add sp, 0x14
pop {r3,r4}
diff --git a/asm/menu.s b/asm/menu.s
index e593eef1c..2229f41d8 100644
--- a/asm/menu.s
+++ b/asm/menu.s
@@ -556,8 +556,8 @@ _0810F258: .4byte 0x00000803
_0810F25C: .4byte 0x00000804
thumb_func_end sub_810EE5C
- thumb_func_start sub_810F260
-sub_810F260: @ 810F260
+ thumb_func_start ClearMenuWindow_BorderThickness2
+ClearMenuWindow_BorderThickness2: @ 810F260
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -583,7 +583,7 @@ _0810F28E:
bx r0
.align 2, 0
_0810F294: .4byte sub_810F298
- thumb_func_end sub_810F260
+ thumb_func_end ClearMenuWindow_BorderThickness2
thumb_func_start sub_810F298
sub_810F298: @ 810F298
@@ -866,8 +866,8 @@ _0810F4D0: .4byte gUnknown_203ADF0
_0810F4D4: .4byte gUnknown_203ADF2
thumb_func_end DrawWindowBorder
- thumb_func_start sub_810F4D8
-sub_810F4D8: @ 810F4D8
+ thumb_func_start ClearMenuWindow
+ClearMenuWindow: @ 810F4D8
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -893,7 +893,7 @@ _0810F506:
bx r0
.align 2, 0
_0810F50C: .4byte sub_810F510
- thumb_func_end sub_810F4D8
+ thumb_func_end ClearMenuWindow
thumb_func_start sub_810F510
sub_810F510: @ 810F510
@@ -933,8 +933,8 @@ sub_810F510: @ 810F510
bx r0
thumb_func_end sub_810F510
- thumb_func_start sub_810F558
-sub_810F558: @ 810F558
+ thumb_func_start CreateWindow_SnapRight_StdPal
+CreateWindow_SnapRight_StdPal: @ 810F558
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1005,10 +1005,10 @@ _0810F5C4:
bx r1
.align 2, 0
_0810F5E4: .4byte gUnknown_203ADF4
- thumb_func_end sub_810F558
+ thumb_func_end CreateWindow_SnapRight_StdPal
- thumb_func_start sub_810F5E8
-sub_810F5E8: @ 810F5E8
+ thumb_func_start PrintTextOnRightSnappedWindow
+PrintTextOnRightSnappedWindow: @ 810F5E8
push {r4-r6,lr}
sub sp, 0xC
adds r5, r0, 0
@@ -1041,7 +1041,7 @@ sub_810F5E8: @ 810F5E8
adds r0, r1, 0
movs r1, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
cmp r6, 0
beq _0810F63E
ldrb r0, [r4]
@@ -1055,10 +1055,10 @@ _0810F63E:
.align 2, 0
_0810F648: .4byte gUnknown_203ADF4
_0810F64C: .4byte gUnknown_8456618
- thumb_func_end sub_810F5E8
+ thumb_func_end PrintTextOnRightSnappedWindow
- thumb_func_start sub_810F650
-sub_810F650: @ 810F650
+ thumb_func_start Menu_PrintHelpSystemUIHeader
+Menu_PrintHelpSystemUIHeader: @ 810F650
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1118,7 +1118,7 @@ _0810F684:
adds r0, r1, 0
movs r1, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_0810F6CE:
ldrb r0, [r6]
movs r1, 0
@@ -1132,7 +1132,7 @@ _0810F6CE:
movs r1, 0x1
movs r2, 0x4
movs r3, 0x1
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
cmp r7, 0
beq _0810F6F6
ldrb r0, [r6]
@@ -1145,7 +1145,7 @@ _0810F6F6:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_810F650
+ thumb_func_end Menu_PrintHelpSystemUIHeader
thumb_func_start sub_810F704
sub_810F704: @ 810F704
@@ -1264,8 +1264,8 @@ _0810F7BE:
_0810F7D4: .4byte gUnknown_203ADE4
thumb_func_end sub_810F774
- thumb_func_start sub_810F7D8
-sub_810F7D8: @ 810F7D8
+ thumb_func_start ProgramAndPlaceMenuCursorOnWindow
+ProgramAndPlaceMenuCursorOnWindow: @ 810F7D8
push {r4-r6,lr}
sub sp, 0x10
ldr r4, [sp, 0x20]
@@ -1297,7 +1297,7 @@ sub_810F7D8: @ 810F7D8
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_810F7D8
+ thumb_func_end ProgramAndPlaceMenuCursorOnWindow
thumb_func_start sub_810F818
sub_810F818: @ 810F818
@@ -1336,7 +1336,7 @@ sub_810F818: @ 810F818
adds r1, r6, 0
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
lsls r0, 24
lsrs r0, 24
add sp, 0x14
@@ -1883,7 +1883,7 @@ _0810FC30:
adds r0, r7, 0
ldr r1, [sp, 0x14]
ldr r3, [sp, 0x18]
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -2272,8 +2272,8 @@ sub_810FF04: @ 810FF04
bx r1
thumb_func_end sub_810FF04
- thumb_func_start sub_810FF60
-sub_810FF60: @ 810FF60
+ thumb_func_start CreateYesNoMenu
+CreateYesNoMenu: @ 810FF60
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2410,7 +2410,7 @@ sub_810FF60: @ 810FF60
adds r1, r6, 0
mov r2, r8
mov r3, r9
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
add sp, 0x1C
pop {r3-r5}
mov r8, r3
@@ -2422,7 +2422,7 @@ sub_810FF60: @ 810FF60
.align 2, 0
_0811009C: .4byte gUnknown_203ADF3
_081100A0: .4byte gUnknown_841623D
- thumb_func_end sub_810FF60
+ thumb_func_end CreateYesNoMenu
thumb_func_start sub_81100A4
sub_81100A4: @ 81100A4
@@ -2439,14 +2439,14 @@ sub_81100A4: @ 81100A4
movs r2, 0
str r2, [sp, 0x8]
movs r3, 0
- bl sub_810FF60
+ bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
thumb_func_end sub_81100A4
- thumb_func_start ProcessMenuInputNoWrap_
-ProcessMenuInputNoWrap_: @ 81100C8
+ thumb_func_start Menu_ProcessInputNoWrapClearOnChoose
+Menu_ProcessInputNoWrapClearOnChoose: @ 81100C8
push {r4,lr}
bl ProcessMenuInputNoWrapAround
lsls r0, 24
@@ -2461,7 +2461,7 @@ _081100DE:
pop {r4}
pop {r1}
bx r1
- thumb_func_end ProcessMenuInputNoWrap_
+ thumb_func_end Menu_ProcessInputNoWrapClearOnChoose
thumb_func_start sub_81100E8
sub_81100E8: @ 81100E8
@@ -2469,7 +2469,7 @@ sub_81100E8: @ 81100E8
ldr r4, _08110100 @ =gUnknown_203ADF3
ldrb r0, [r4]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
diff --git a/asm/menu2.s b/asm/menu2.s
deleted file mode 100644
index c196f77b4..000000000
--- a/asm/menu2.s
+++ /dev/null
@@ -1,563 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start box_print
-box_print: @ 812E51C
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r1, 0
- ldr r6, [sp, 0x20]
- ldr r5, [sp, 0x24]
- ldr r1, [sp, 0x28]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- str r1, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r4, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- adds r0, r4, 0
- movs r1, 0x2
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xB]
- mov r3, sp
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- mov r2, sp
- ldrb r0, [r6, 0x1]
- lsls r0, 4
- movs r4, 0xF
- strb r0, [r2, 0xC]
- ldrb r2, [r6]
- adds r0, r4, 0
- ands r0, r2
- ldrb r2, [r3, 0xD]
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- mov r2, sp
- ldrb r0, [r6, 0x2]
- lsls r0, 4
- ands r1, r4
- orrs r1, r0
- strb r1, [r2, 0xD]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end box_print
-
- thumb_func_start AddTextPrinterParametrized2
-AddTextPrinterParametrized2: @ 812E5A4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- adds r5, r1, 0
- ldr r1, [sp, 0x28]
- mov r8, r1
- ldr r1, [sp, 0x2C]
- mov r9, r1
- ldr r6, [sp, 0x30]
- ldr r1, [sp, 0x34]
- ldr r4, [sp, 0x38]
- str r4, [sp]
- mov r4, sp
- strb r0, [r4, 0x4]
- mov r0, sp
- strb r5, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- mov r2, sp
- ldrb r0, [r0, 0x6]
- strb r0, [r2, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x7]
- strb r0, [r2, 0x9]
- mov r0, sp
- mov r2, r8
- strb r2, [r0, 0xA]
- mov r2, r9
- strb r2, [r0, 0xB]
- ldrb r3, [r4, 0xC]
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r4, 0xC]
- mov r3, sp
- ldrb r0, [r6, 0x1]
- lsls r0, 4
- movs r5, 0xF
- strb r0, [r3, 0xC]
- ldrb r3, [r6]
- adds r0, r5, 0
- ands r0, r3
- ldrb r3, [r4, 0xD]
- ands r2, r3
- orrs r2, r0
- strb r2, [r4, 0xD]
- mov r3, sp
- ldrb r0, [r6, 0x2]
- lsls r0, 4
- ands r2, r5
- orrs r2, r0
- strb r2, [r3, 0xD]
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end AddTextPrinterParametrized2
-
- thumb_func_start sub_812E62C
-sub_812E62C: @ 812E62C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r1, 0
- ldr r4, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- mov r8, r1
- ldr r7, [sp, 0x34]
- ldr r5, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- str r2, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r6, [r0, 0x5]
- strb r3, [r0, 0x6]
- strb r4, [r0, 0x7]
- strb r3, [r0, 0x8]
- strb r4, [r0, 0x9]
- strb r5, [r0, 0xA]
- mov r1, r9
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r5, 0x10
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0xC]
- adds r0, r6, 0
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r4, 0xF
- adds r1, r4, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r6, 0
- movs r1, 0x6
- bl GetFontAttribute
- mov r2, sp
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r2, 0xD]
- ands r5, r0
- orrs r5, r1
- strb r5, [r2, 0xD]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetFontAttribute
- mov r2, sp
- lsls r0, 4
- ldrb r1, [r2, 0xD]
- ands r4, r1
- orrs r4, r0
- strb r4, [r2, 0xD]
- mov r0, sp
- mov r1, r8
- adds r2, r7, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E62C
-
- thumb_func_start sub_812E6DC
-sub_812E6DC: @ 812E6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- movs r4, 0
- ldr r0, _0812E734 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r0, [r2]
- ldr r7, _0812E738 @ =gStringVar4
- cmp r0, 0xFF
- beq _0812E70A
-_0812E700:
- adds r4, 0x1
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0812E700
-_0812E70A:
- adds r0, r7, 0
- bl StringExpandPlaceholders
- cmp r4, 0x5
- beq _0812E73C
- lsls r3, r5, 24
- lsrs r3, 24
- lsls r0, r6, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r8
- movs r1, 0x2
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- b _0812E75C
- .align 2, 0
-_0812E734: .4byte gSaveBlock2Ptr
-_0812E738: .4byte gStringVar4
-_0812E73C:
- lsls r3, r5, 24
- lsrs r3, 24
- lsls r0, r6, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- mov r0, r8
- movs r1, 0x2
- adds r2, r7, 0
- bl sub_812E62C
-_0812E75C:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E6DC
-
- thumb_func_start sub_812E768
-sub_812E768: @ 812E768
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp, 0x48]
- ldr r4, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r5, [sp, 0x54]
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x4]
- ldr r2, [sp, 0xC]
- subs r0, r2
- ldr r2, [sp, 0x8]
- adds r2, r1, r2
- str r2, [sp, 0x10]
- cmp r0, r1
- bge _0812E7B4
- ldr r1, [sp, 0x8]
- adds r0, r1
- str r0, [sp, 0x10]
-_0812E7B4:
- ldr r2, [sp, 0x4]
- ldrh r1, [r2, 0x6]
- subs r0, r1, r4
- cmp r0, r5
- bge _0812E7C6
- adds r0, r3, r1
- subs r0, r4
- str r0, [sp, 0x14]
- b _0812E7CA
-_0812E7C6:
- adds r5, r3, r5
- str r5, [sp, 0x14]
-_0812E7CA:
- ldr r0, [sp]
- ldrh r1, [r0, 0x4]
- movs r2, 0x7
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x18]
- ldr r0, [sp, 0x4]
- ldrh r1, [r0, 0x4]
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x1C]
- mov r12, r3
- mov r8, r4
- ldr r1, [sp, 0x14]
- cmp r12, r1
- blt _0812E7F4
- b _0812E932
-_0812E7F4:
- ldr r5, [sp, 0x8]
- ldr r6, [sp, 0xC]
- mov r2, r12
- adds r2, 0x1
- str r2, [sp, 0x20]
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x24]
- ldr r1, [sp, 0x10]
- cmp r5, r1
- blt _0812E80C
- b _0812E922
-_0812E80C:
- movs r7, 0x1
- movs r2, 0xF0
- mov r10, r2
- movs r0, 0xF
- mov r9, r0
-_0812E816:
- asrs r0, r5, 1
- movs r1, 0x3
- ands r0, r1
- ldr r2, [sp]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r5, 3
- lsls r0, 5
- adds r1, r0
- mov r2, r12
- asrs r0, r2, 3
- ldr r2, [sp, 0x18]
- muls r0, r2
- lsls r0, 5
- adds r1, r0
- mov r2, r12
- lsls r0, r2, 29
- lsrs r0, 27
- adds r3, r1, r0
- asrs r0, r6, 1
- movs r1, 0x3
- ands r0, r1
- ldr r2, [sp, 0x4]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r6, 3
- lsls r0, 5
- adds r1, r0
- mov r2, r8
- asrs r0, r2, 3
- ldr r2, [sp, 0x1C]
- muls r0, r2
- lsls r0, 5
- adds r1, r0
- mov r2, r8
- lsls r0, r2, 29
- lsrs r0, 27
- adds r4, r1, r0
- adds r0, r4, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8C2
- subs r4, 0x1
- adds r0, r6, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E89A
- ldrh r0, [r4]
- ldr r2, _0812E88C @ =0x00000fff
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E890
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsls r0, 8
- b _0812E912
- .align 2, 0
-_0812E88C: .4byte 0x00000fff
-_0812E890:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 12
- b _0812E912
-_0812E89A:
- ldrh r0, [r4]
- ldr r2, _0812E8B4 @ =0x0000f0ff
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8B8
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsls r0, 4
- b _0812E912
- .align 2, 0
-_0812E8B4: .4byte 0x0000f0ff
-_0812E8B8:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 8
- b _0812E912
-_0812E8C2:
- adds r0, r6, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8EE
- ldrh r0, [r4]
- ldr r2, _0812E8E0 @ =0x0000ff0f
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8E4
- ldrb r1, [r3]
- mov r0, r10
- b _0812E910
- .align 2, 0
-_0812E8E0: .4byte 0x0000ff0f
-_0812E8E4:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 4
- b _0812E912
-_0812E8EE:
- ldrh r0, [r4]
- ldr r2, _0812E908 @ =0x0000fff0
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E90C
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsrs r0, 4
- b _0812E912
- .align 2, 0
-_0812E908: .4byte 0x0000fff0
-_0812E90C:
- ldrb r1, [r3]
- mov r0, r9
-_0812E910:
- ands r0, r1
-_0812E912:
- orrs r2, r0
- strh r2, [r4]
- adds r5, 0x1
- adds r6, 0x1
- ldr r0, [sp, 0x10]
- cmp r5, r0
- bge _0812E922
- b _0812E816
-_0812E922:
- ldr r1, [sp, 0x20]
- mov r12, r1
- ldr r2, [sp, 0x24]
- mov r8, r2
- ldr r0, [sp, 0x14]
- cmp r12, r0
- bge _0812E932
- b _0812E7F4
-_0812E932:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E768
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 3a0f709da..e68c428cd 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -57,7 +57,7 @@ _080BF4B8:
adds r1, r7, 0
adds r2, r4, 0
adds r3, r5, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
ldr r1, _080BF50C @ =gUnknown_20399CC
ldr r0, [sp, 0x34]
str r0, [r1]
@@ -129,7 +129,7 @@ sub_80BF560: @ 80BF560
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -182,8 +182,8 @@ _080BF5C8: .4byte gTasks
_080BF5CC: .4byte gUnknown_20399C8
thumb_func_end sub_80BF560
- thumb_func_start sub_80BF5D0
-sub_80BF5D0: @ 80BF5D0
+ thumb_func_start CreateYesNoMenuWithCallbacks
+CreateYesNoMenuWithCallbacks: @ 80BF5D0
push {r4-r7,lr}
sub sp, 0xC
adds r6, r0, 0
@@ -210,7 +210,7 @@ sub_80BF5D0: @ 80BF5D0
str r5, [sp, 0x4]
movs r4, 0
str r4, [sp, 0x8]
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r0, _080BF624 @ =gUnknown_20399C8
str r7, [r0]
ldr r1, _080BF628 @ =gTasks
@@ -228,7 +228,7 @@ sub_80BF5D0: @ 80BF5D0
_080BF624: .4byte gUnknown_20399C8
_080BF628: .4byte gTasks
_080BF62C: .4byte sub_80BF560
- thumb_func_end sub_80BF5D0
+ thumb_func_end CreateYesNoMenuWithCallbacks
thumb_func_start GetLRKeysState
GetLRKeysState: @ 80BF630
@@ -334,7 +334,7 @@ itemid_80BF6D8_mail_related: @ 80BF6D8
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
beq _080BF6EE
bl InUnionRoom
@@ -357,10 +357,10 @@ _080BF702:
bx r1
thumb_func_end itemid_80BF6D8_mail_related
- thumb_func_start sub_80BF708
-sub_80BF708: @ 80BF708
+ thumb_func_start MenuHelpers_LinkSomething
+MenuHelpers_LinkSomething: @ 80BF708
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
beq _080BF71A
ldr r0, _080BF720 @ =gReceivedRemoteLinkPlayers
@@ -377,12 +377,12 @@ _080BF724:
_080BF726:
pop {r1}
bx r1
- thumb_func_end sub_80BF708
+ thumb_func_end MenuHelpers_LinkSomething
thumb_func_start sub_80BF72C
sub_80BF72C: @ 80BF72C
push {lr}
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
beq _080BF742
@@ -418,8 +418,8 @@ _080BF764:
bx r1
thumb_func_end sub_80BF748
- thumb_func_start sub_80BF768
-sub_80BF768: @ 80BF768
+ thumb_func_start VblankHblankHandlerSetZero
+VblankHblankHandlerSetZero: @ 80BF768
push {lr}
movs r0, 0
bl SetVBlankCallback
@@ -427,13 +427,13 @@ sub_80BF768: @ 80BF768
bl SetHBlankCallback
pop {r0}
bx r0
- thumb_func_end sub_80BF768
+ thumb_func_end VblankHblankHandlerSetZero
thumb_func_start sub_80BF77C
sub_80BF77C: @ 80BF77C
push {r4,lr}
sub sp, 0xC
- bl sub_80BF7C8
+ bl InitBgReg
mov r1, sp
movs r0, 0
strh r0, [r1]
@@ -465,8 +465,8 @@ _080BF7C0: .4byte 0x05000100
_080BF7C4: .4byte 0x01000200
thumb_func_end sub_80BF77C
- thumb_func_start sub_80BF7C8
-sub_80BF7C8: @ 80BF7C8
+ thumb_func_start InitBgReg
+InitBgReg: @ 80BF7C8
push {lr}
movs r0, 0
movs r1, 0
@@ -517,7 +517,7 @@ sub_80BF7C8: @ 80BF7C8
bl ChangeBgY
pop {r0}
bx r0
- thumb_func_end sub_80BF7C8
+ thumb_func_end InitBgReg
thumb_func_start sub_80BF848
sub_80BF848: @ 80BF848
diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s
index 0dad7d3c1..28e783731 100644
--- a/asm/menu_indicators.s
+++ b/asm/menu_indicators.s
@@ -38,7 +38,7 @@ _0813392A:
_0813393A:
movs r0, 0x34
ldrsh r3, [r4, r0]
- ldr r1, _0813395C @ =gUnknown_825E074
+ ldr r1, _0813395C @ =gSineTable
ldrh r2, [r4, 0x38]
lsls r0, r2, 24
lsrs r0, 23
@@ -54,11 +54,11 @@ _08133954:
strh r0, [r4, 0x24]
b _0813397E
.align 2, 0
-_0813395C: .4byte gUnknown_825E074
+_0813395C: .4byte gSineTable
_08133960:
movs r0, 0x34
ldrsh r3, [r4, r0]
- ldr r1, _0813398C @ =gUnknown_825E074
+ ldr r1, _0813398C @ =gSineTable
ldrh r2, [r4, 0x38]
lsls r0, r2, 24
lsrs r0, 23
@@ -81,7 +81,7 @@ _08133984:
pop {r0}
bx r0
.align 2, 0
-_0813398C: .4byte gUnknown_825E074
+_0813398C: .4byte gSineTable
thumb_func_end sub_8133904
thumb_func_start AddScrollIndicatorArrowObject
@@ -294,8 +294,8 @@ _08133B38: .4byte 0x0000ffff
_08133B3C: .4byte gSprites
thumb_func_end AddScrollIndicatorArrowPair
- thumb_func_start AddScrollIndicatorArrowPairParametrized
-AddScrollIndicatorArrowPairParametrized: @ 8133B40
+ thumb_func_start AddScrollIndicatorArrowPairParameterized
+AddScrollIndicatorArrowPairParameterized: @ 8133B40
push {r4,lr}
adds r4, r1, 0
subs r0, 0x2
@@ -345,7 +345,7 @@ _08133B76:
bx r1
.align 2, 0
_08133BA0: .4byte gUnknown_203B130
- thumb_func_end AddScrollIndicatorArrowPairParametrized
+ thumb_func_end AddScrollIndicatorArrowPairParameterized
thumb_func_start sub_8133BA4
sub_8133BA4: @ 8133BA4
@@ -959,7 +959,7 @@ _0813403C: .4byte gSprites
ObjectCB_RedArrowCursor: @ 8134040
push {lr}
adds r2, r0, 0
- ldr r1, _08134068 @ =gUnknown_825E074
+ ldr r1, _08134068 @ =gSineTable
ldrh r3, [r2, 0x2E]
lsls r0, r3, 24
lsrs r0, 23
@@ -978,7 +978,7 @@ _08134058:
pop {r0}
bx r0
.align 2, 0
-_08134068: .4byte gUnknown_825E074
+_08134068: .4byte gSineTable
thumb_func_end ObjectCB_RedArrowCursor
thumb_func_start nullsub_95
diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s
deleted file mode 100644
index 790c3c0b2..000000000
--- a/asm/mystery_gift_menu.s
+++ /dev/null
@@ -1,410 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8142078
-sub_8142078: @ 8142078
- push {lr}
- bl ProcessSpriteCopyRequests
- bl LoadOam
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8142078
-
- thumb_func_start sub_814208C
-sub_814208C: @ 814208C
- push {lr}
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_814208C
-
- thumb_func_start sub_81420A4
-sub_81420A4: @ 81420A4
- push {r4-r7,lr}
- sub sp, 0xC
- adds r7, r0, 0
- ldr r0, _081420C4 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r6, r0, r1
- ldrb r5, [r6]
- cmp r5, 0x1
- bne _081420BA
- b _081421EC
-_081420BA:
- cmp r5, 0x1
- bgt _081420C8
- cmp r5, 0
- beq _081420D6
- b _081422A0
- .align 2, 0
-_081420C4: .4byte gMain
-_081420C8:
- cmp r5, 0x2
- bne _081420CE
- b _08142254
-_081420CE:
- cmp r5, 0x3
- bne _081420D4
- b _08142274
-_081420D4:
- b _081422A0
-_081420D6:
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- bl remove_some_task
- movs r0, 0x1
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _081421E0 @ =gUnknown_8466D60
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xE0
- bl sub_814FE40
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xF0
- bl sub_814FDA0
- ldr r1, _081421E4 @ =gUnknown_8466D30
- movs r2, 0x80
- lsls r2, 1
- str r5, [sp]
- movs r0, 0x3
- movs r3, 0
- bl sub_80F696C
- ldr r0, _081421E8 @ =gUnknown_8466D70
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r1, 0xC0
- lsls r1, 7
- movs r0, 0
- bl ClearGpuRegBits
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- b _0814226C
- .align 2, 0
-_081421E0: .4byte gUnknown_8466D60
-_081421E4: .4byte gUnknown_8466D30
-_081421E8: .4byte gUnknown_8466D70
-_081421EC:
- ldr r0, _08142250 @ =gUnknown_8466D10
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x2
- bl stdpal_get
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0x20
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0x11
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- bl sub_8142420
- lsls r0, r7, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8142344
- b _0814226C
- .align 2, 0
-_08142250: .4byte gUnknown_8466D10
-_08142254:
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_0814226C:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _081422A0
-_08142274:
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- ldr r0, _08142298 @ =0x00000149
- bl PlayBGM
- ldr r0, _0814229C @ =sub_8142078
- bl SetVBlankCallback
- movs r0, 0xC5
- bl EnableInterrupts
- movs r0, 0x1
- b _081422A2
- .align 2, 0
-_08142298: .4byte 0x00000149
-_0814229C: .4byte sub_8142078
-_081422A0:
- movs r0, 0
-_081422A2:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81420A4
-
- thumb_func_start sub_81422AC
-sub_81422AC: @ 81422AC
- push {lr}
- movs r0, 0
- bl sub_81420A4
- cmp r0, 0
- beq _081422C8
- ldr r0, _081422CC @ =sub_814208C
- bl SetMainCallback2
- ldr r1, _081422D0 @ =gUnknown_203F3B8
- movs r0, 0
- strb r0, [r1]
- bl task_add_00_mystery_gift
-_081422C8:
- pop {r0}
- bx r0
- .align 2, 0
-_081422CC: .4byte sub_814208C
-_081422D0: .4byte gUnknown_203F3B8
- thumb_func_end sub_81422AC
-
- thumb_func_start sub_81422D4
-sub_81422D4: @ 81422D4
- push {lr}
- movs r0, 0x1
- bl sub_81420A4
- cmp r0, 0
- beq _081422F0
- ldr r0, _081422F4 @ =sub_814208C
- bl SetMainCallback2
- ldr r1, _081422F8 @ =gUnknown_203F3B8
- movs r0, 0x1
- strb r0, [r1]
- bl sub_81438A0
-_081422F0:
- pop {r0}
- bx r0
- .align 2, 0
-_081422F4: .4byte sub_814208C
-_081422F8: .4byte gUnknown_203F3B8
- thumb_func_end sub_81422D4
-
- thumb_func_start sub_81422FC
-sub_81422FC: @ 81422FC
- push {lr}
- ldr r1, _0814233C @ =gUnknown_203F3B8
- movs r0, 0
- strb r0, [r1]
- bl FreeAllWindowBuffers
- movs r0, 0
- bl GetBgTilemapBuffer
- bl Free
- movs r0, 0x1
- bl GetBgTilemapBuffer
- bl Free
- movs r0, 0x2
- bl GetBgTilemapBuffer
- bl Free
- movs r0, 0x3
- bl GetBgTilemapBuffer
- bl Free
- ldr r0, _08142340 @ =sub_8078914
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0814233C: .4byte gUnknown_203F3B8
-_08142340: .4byte sub_8078914
- thumb_func_end sub_81422FC
-
- thumb_func_start sub_8142344
-sub_8142344: @ 8142344
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- cmp r5, 0
- bne _081423B4
- ldr r6, _081423A4 @ =gUnknown_841EDCA
- cmp r4, 0x1
- bne _08142362
- ldr r6, _081423A8 @ =gUnknown_8415F51
-_08142362:
- str r5, [sp]
- str r5, [sp, 0x4]
- ldr r4, _081423AC @ =gUnknown_8466EE8
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- ldr r0, _081423B0 @ =gUnknown_841EDBD
- str r0, [sp, 0x10]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0x2
- bl AddTextPrinterParametrized2
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0
- bl GetStringWidth
- movs r2, 0xDE
- subs r2, r0
- lsls r2, 24
- lsrs r2, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r0, 0
- movs r1, 0
- movs r3, 0x2
- bl AddTextPrinterParametrized2
- b _081423E8
- .align 2, 0
-_081423A4: .4byte gUnknown_841EDCA
-_081423A8: .4byte gUnknown_8415F51
-_081423AC: .4byte gUnknown_8466EE8
-_081423B0: .4byte gUnknown_841EDBD
-_081423B4:
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldr r5, _08142400 @ =gUnknown_8466EE8
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r0, _08142404 @ =gUnknown_841DE50
- str r0, [sp, 0x10]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0x2
- bl AddTextPrinterParametrized2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r0, _08142408 @ =gUnknown_841DE51
- str r0, [sp, 0x10]
- movs r0, 0
- movs r1, 0
- movs r2, 0x78
- movs r3, 0x2
- bl AddTextPrinterParametrized2
-_081423E8:
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl PutWindowTilemap
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142400: .4byte gUnknown_8466EE8
-_08142404: .4byte gUnknown_841DE50
-_08142408: .4byte gUnknown_841DE51
- thumb_func_end sub_8142344
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index b3c9d1f73..ef692b052 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -401,8 +401,8 @@ _0809DBD6:
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
_0809DCA4:
lsls r0, r4, 3
ldr r1, _0809DD50 @ =gUnknown_83E22A0
@@ -493,7 +493,7 @@ sub_809DD60: @ 809DD60
bl SetMainCallback2
bl sub_812B234
movs r0, 0x3
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
@@ -959,13 +959,13 @@ _0809E156:
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _0809E1D0 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -980,7 +980,7 @@ _0809E156:
movs r0, 0
movs r1, 0x2
adds r2, r4, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -2789,7 +2789,7 @@ sub_809EF54: @ 809EF54
str r2, [sp]
movs r2, 0x38
movs r3, 0x25
- bl AddPseudoFieldObject
+ bl AddPseudoEventObject
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3657,7 +3657,7 @@ _0809F5EE:
movs r1, 0x2
movs r2, 0x68
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_0809F614:
add sp, 0x10
pop {r4,r5}
@@ -4196,7 +4196,7 @@ _0809FA12:
adds r0, r6, 0
movs r1, 0x1
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -4317,7 +4317,7 @@ sub_809FAE4: @ 809FAE4
str r1, [sp, 0x8]
movs r1, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
diff --git a/asm/new_game.s b/asm/new_game.s
index cec2b2c9a..234fefcd7 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -183,7 +183,7 @@ sub_8054A28: @ 8054A28
bl ZeroPlayerPartyMons
bl ZeroEnemyPartyMons
bl sub_81089BC
- bl sub_81320AC
+ bl ResetTMCaseCursorPos
bl sub_813D6E4
bl sub_811089C
bl Random
@@ -257,12 +257,12 @@ sub_8054A60: @ 8054A60
strb r5, [r0]
bl ZeroPlayerPartyMons
bl sub_808C7E0
- bl sub_8141C54
+ bl ClearRoamerData
ldr r0, [r6]
ldr r1, _08054B68 @ =0x00000296
adds r0, r1
strh r5, [r0]
- bl sub_809A2DC
+ bl ClearItemSlotsInAllBagPockets
bl sub_80EB658
bl sub_809C794
bl sub_80BDD34
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index b3844a165..9efda4372 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -272,8 +272,8 @@ _080F695E:
bx r1
thumb_func_end sub_80F68F0
- thumb_func_start sub_80F696C
-sub_80F696C: @ 80F696C
+ thumb_func_start DecompressAndLoadBgGfxUsingHeap
+DecompressAndLoadBgGfxUsingHeap: @ 80F696C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -333,7 +333,7 @@ _080F69D2:
.align 2, 0
_080F69E0: .4byte task_free_buf_after_copying_tile_data_to_vram
_080F69E4: .4byte gTasks
- thumb_func_end sub_80F696C
+ thumb_func_end DecompressAndLoadBgGfxUsingHeap
thumb_func_start sub_80F69E8
sub_80F69E8: @ 80F69E8
@@ -486,8 +486,8 @@ _080F6AFC:
bx r1
thumb_func_end sub_80F6AD0
- thumb_func_start sub_80F6B08
-sub_80F6B08: @ 80F6B08
+ thumb_func_start SetBgRectPal
+SetBgRectPal: @ 80F6B08
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -561,7 +561,7 @@ _080F6B80:
bx r0
.align 2, 0
_080F6B90: .4byte 0x00000fff
- thumb_func_end sub_80F6B08
+ thumb_func_end SetBgRectPal
thumb_func_start sub_80F6B94
sub_80F6B94: @ 80F6B94
@@ -672,8 +672,8 @@ sub_80F6C14: @ 80F6C14
bx r0
thumb_func_end sub_80F6C14
- thumb_func_start sub_80F6C6C
-sub_80F6C6C: @ 80F6C6C
+ thumb_func_start InitStandardTextBoxWindows
+InitStandardTextBoxWindows: @ 80F6C6C
push {lr}
ldr r0, _080F6C84 @ =gUnknown_841F42C
bl InitWindows
@@ -686,7 +686,7 @@ sub_80F6C6C: @ 80F6C6C
.align 2, 0
_080F6C84: .4byte gUnknown_841F42C
_080F6C88: .4byte gUnknown_203ABE0
- thumb_func_end sub_80F6C6C
+ thumb_func_end InitStandardTextBoxWindows
thumb_func_start sub_80F6C8C
sub_80F6C8C: @ 80F6C8C
@@ -696,8 +696,8 @@ sub_80F6C8C: @ 80F6C8C
bx r0
thumb_func_end sub_80F6C8C
- thumb_func_start sub_80F6C98
-sub_80F6C98: @ 80F6C98
+ thumb_func_start ResetBg0
+ResetBg0: @ 80F6C98
push {lr}
movs r0, 0
movs r1, 0
@@ -711,7 +711,7 @@ sub_80F6C98: @ 80F6C98
bl sub_80F6E9C
pop {r0}
bx r0
- thumb_func_end sub_80F6C98
+ thumb_func_end ResetBg0
thumb_func_start sub_80F6CBC
sub_80F6CBC: @ 80F6CBC
@@ -725,8 +725,8 @@ sub_80F6CBC: @ 80F6CBC
bx r1
thumb_func_end sub_80F6CBC
- thumb_func_start AddTextPrinterParametrized
-AddTextPrinterParametrized: @ 80F6CD0
+ thumb_func_start AddTextPrinterParameterized2
+AddTextPrinterParameterized2: @ 80F6CD0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -796,7 +796,7 @@ AddTextPrinterParametrized: @ 80F6CD0
bx r1
.align 2, 0
_080F6D58: .4byte gTextFlags
- thumb_func_end AddTextPrinterParametrized
+ thumb_func_end AddTextPrinterParameterized2
thumb_func_start sub_80F6D5C
sub_80F6D5C: @ 80F6D5C
@@ -819,7 +819,7 @@ sub_80F6D5C: @ 80F6D5C
lsrs r0, 24
cmp r0, 0
bne _080F6DB0
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -832,7 +832,7 @@ sub_80F6D5C: @ 80F6D5C
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
b _080F6DFC
.align 2, 0
_080F6DA8: .4byte gTextFlags
@@ -840,7 +840,7 @@ _080F6DAC: .4byte gStringVar4
_080F6DB0:
cmp r0, 0x1
bne _080F6DDC
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -853,12 +853,12 @@ _080F6DB0:
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x5
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
b _080F6DFC
.align 2, 0
_080F6DD8: .4byte gStringVar4
_080F6DDC:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -871,7 +871,7 @@ _080F6DDC:
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
_080F6DFC:
add sp, 0x10
pop {r4,r5}
@@ -896,7 +896,7 @@ sub_80F6E08: @ 80F6E08
ands r1, r2
orrs r1, r0
strb r1, [r3]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -910,7 +910,7 @@ sub_80F6E08: @ 80F6E08
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r4}
pop {r0}
@@ -948,7 +948,7 @@ sub_80F6E54: @ 80F6E54
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r4,r5}
pop {r0}
@@ -984,19 +984,19 @@ _080F6EC4:
lsls r1, 2
movs r0, 0
movs r2, 0xF0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
_080F6ED4:
movs r1, 0x85
lsls r1, 2
movs r0, 0
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
pop {r0}
bx r0
thumb_func_end sub_80F6E9C
- thumb_func_start sub_80F6EE4
-sub_80F6EE4: @ 80F6EE4
+ thumb_func_start DrawDialogueFrame
+DrawDialogueFrame: @ 80F6EE4
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1022,10 +1022,10 @@ _080F6F12:
bx r0
.align 2, 0
_080F6F18: .4byte sub_80F7124
- thumb_func_end sub_80F6EE4
+ thumb_func_end DrawDialogueFrame
- thumb_func_start sub_80F6F1C
-sub_80F6F1C: @ 80F6F1C
+ thumb_func_start DrawStdWindowFrame
+DrawStdWindowFrame: @ 80F6F1C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1051,10 +1051,10 @@ _080F6F4A:
bx r0
.align 2, 0
_080F6F50: .4byte sub_80F6FD4
- thumb_func_end sub_80F6F1C
+ thumb_func_end DrawStdWindowFrame
- thumb_func_start sub_80F6F54
-sub_80F6F54: @ 80F6F54
+ thumb_func_start ClearDialogWindowAndFrame
+ClearDialogWindowAndFrame: @ 80F6F54
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1087,10 +1087,10 @@ _080F6F8E:
.align 2, 0
_080F6F94: .4byte sub_80F76CC
_080F6F98: .4byte gUnknown_203ADFA
- thumb_func_end sub_80F6F54
+ thumb_func_end ClearDialogWindowAndFrame
- thumb_func_start sub_80F6F9C
-sub_80F6F9C: @ 80F6F9C
+ thumb_func_start ClearStdWindowAndFrame
+ClearStdWindowAndFrame: @ 80F6F9C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1116,7 +1116,7 @@ _080F6FCA:
bx r0
.align 2, 0
_080F6FD0: .4byte sub_80F7684
- thumb_func_end sub_80F6F9C
+ thumb_func_end ClearStdWindowAndFrame
thumb_func_start sub_80F6FD4
sub_80F6FD4: @ 80F6FD4
@@ -2033,7 +2033,7 @@ _080F7798:
lsls r1, 2
adds r0, r4, 0
movs r2, 0xF0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
_080F77A4:
movs r2, 0x80
lsls r2, 2
@@ -2049,37 +2049,37 @@ _080F77A4:
thumb_func_start sub_80F77B8
sub_80F77B8: @ 80F77B8
push {lr}
- ldr r0, _080F77C8 @ =gUnknown_841F408
+ ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_080F77C8: .4byte gUnknown_841F408
+_080F77C8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77B8
- thumb_func_start sub_80F77CC
-sub_80F77CC: @ 80F77CC
+ thumb_func_start Menu_LoadStdPalAt
+Menu_LoadStdPalAt: @ 80F77CC
push {lr}
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
- ldr r0, _080F77E0 @ =gUnknown_841F408
+ ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_080F77E0: .4byte gUnknown_841F408
- thumb_func_end sub_80F77CC
+_080F77E0: .4byte gTMCaseMainWindowPalette
+ thumb_func_end Menu_LoadStdPalAt
thumb_func_start sub_80F77E4
sub_80F77E4: @ 80F77E4
- ldr r0, _080F77E8 @ =gUnknown_841F408
+ ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette
bx lr
.align 2, 0
-_080F77E8: .4byte gUnknown_841F408
+_080F77E8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77E4
thumb_func_start sub_80F77EC
@@ -2091,14 +2091,14 @@ sub_80F77EC: @ 80F77EC
bls _080F77F8
movs r1, 0
_080F77F8:
- ldr r0, _080F7804 @ =gUnknown_841F408
+ ldr r0, _080F7804 @ =gTMCaseMainWindowPalette
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
-_080F7804: .4byte gUnknown_841F408
+_080F7804: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77EC
thumb_func_start DisplayItemMessageOnField
@@ -2116,7 +2116,7 @@ DisplayItemMessageOnField: @ 80F7808
lsls r4, 24
lsrs r4, 24
bl sub_80F6E9C
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
@@ -2156,7 +2156,7 @@ sub_80F7858: @ 80F7858
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
@@ -2179,7 +2179,7 @@ sub_80F7880: @ 80F7880
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
@@ -2187,8 +2187,8 @@ sub_80F7880: @ 80F7880
_080F78A4: .4byte gUnknown_841F43C
thumb_func_end sub_80F7880
- thumb_func_start sub_80F78A8
-sub_80F78A8: @ 80F78A8
+ thumb_func_start GetTextSpeedSetting
+GetTextSpeedSetting: @ 80F78A8
push {lr}
ldr r3, _080F78D8 @ =gSaveBlock2Ptr
ldr r2, [r3]
@@ -2216,7 +2216,7 @@ _080F78C4:
.align 2, 0
_080F78D8: .4byte gSaveBlock2Ptr
_080F78DC: .4byte gUnknown_841F428
- thumb_func_end sub_80F78A8
+ thumb_func_end GetTextSpeedSetting
thumb_func_start sub_80F78E0
sub_80F78E0: @ 80F78E0
@@ -2347,7 +2347,7 @@ sub_80F79A4: @ 80F79A4
lsls r1, 2
movs r0, 0
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
pop {r0}
bx r0
thumb_func_end sub_80F79A4
diff --git a/asm/normal.s b/asm/normal.s
new file mode 100644
index 000000000..165fa150f
--- /dev/null
+++ b/asm/normal.s
@@ -0,0 +1,1978 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B9904
+sub_80B9904: @ 80B9904
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B993C @ =gBattleAnimArgs
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080B9940 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080B9944
+ ldrh r0, [r5, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ b _080B9952
+ .align 2, 0
+_080B993C: .4byte gBattleAnimArgs
+_080B9940: .4byte gBattleAnimAttacker
+_080B9944:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080B9952:
+ ldr r0, _080B9968 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x8]
+ strh r0, [r4, 0x34]
+ ldr r1, _080B996C @ =sub_80B9970
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9968: .4byte gBattleAnimArgs
+_080B996C: .4byte sub_80B9970
+ thumb_func_end sub_80B9904
+
+ thumb_func_start sub_80B9970
+sub_80B9970: @ 80B9970
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1E
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x7F
+ bhi _080B99A2
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080B99AA
+_080B99A2:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+_080B99AA:
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080B99CE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B99CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9970
+
+ thumb_func_start sub_80B99D4
+sub_80B99D4: @ 80B99D4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _080B9A0C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80B9A14
+ movs r1, 0x2
+ ldrsb r1, [r4, r1]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginNormalPaletteFade
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B9A10 @ =sub_80B9A5C
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9A0C: .4byte gBattleAnimArgs
+_080B9A10: .4byte sub_80B9A5C
+ thumb_func_end sub_80B99D4
+
+ thumb_func_start sub_80B9A14
+sub_80B9A14: @ 80B9A14
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x1
+ mov r8, r0
+ mov r1, r8
+ ands r1, r4
+ mov r8, r1
+ lsls r0, 16
+ asrs r1, r0, 17
+ ands r1, r4
+ asrs r2, r0, 18
+ ands r2, r4
+ asrs r3, r0, 19
+ ands r3, r4
+ asrs r6, r0, 20
+ ands r6, r4
+ asrs r5, r0, 21
+ ands r5, r4
+ asrs r0, 22
+ ands r0, r4
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ bl sub_8075BE8
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9A14
+
+ thumb_func_start sub_80B9A5C
+sub_80B9A5C: @ 80B9A5C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080B9A78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B9A72
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080B9A72:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9A78: .4byte gPaletteFade
+ thumb_func_end sub_80B9A5C
+
+ thumb_func_start sub_80B9A7C
+sub_80B9A7C: @ 80B9A7C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B9AC8 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4]
+ strh r0, [r5, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ bl sub_80B9A14
+ ldrb r1, [r4, 0x8]
+ ldrh r2, [r4, 0x6]
+ bl BlendPalettes
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B9ACC @ =sub_80B9AD0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9AC8: .4byte gBattleAnimArgs
+_080B9ACC: .4byte sub_80B9AD0
+ thumb_func_end sub_80B9A7C
+
+ thumb_func_start sub_80B9AD0
+sub_80B9AD0: @ 80B9AD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080B9AE4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080B9B54
+_080B9AE4:
+ ldr r0, _080B9B00 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B9B54
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B9B08
+ ldr r0, _080B9B04 @ =sub_80B9B5C
+ str r0, [r4, 0x1C]
+ b _080B9B54
+ .align 2, 0
+_080B9B00: .4byte gPaletteFade
+_080B9B04: .4byte sub_80B9B5C
+_080B9B08:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ bl sub_80B9A14
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B9B2E
+ ldrh r1, [r4, 0x36]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x34]
+ adds r0, r3, 0
+ bl BlendPalettes
+ b _080B9B3C
+_080B9B2E:
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x38]
+ adds r0, r3, 0
+ bl BlendPalettes
+_080B9B3C:
+ ldrh r0, [r4, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x1
+ strh r0, [r4, 0x32]
+_080B9B54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9AD0
+
+ thumb_func_start sub_80B9B5C
+sub_80B9B5C: @ 80B9B5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080B9B88 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B9B82
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ bl sub_80B9A14
+ movs r1, 0
+ movs r2, 0
+ bl BlendPalettes
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B9B82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9B88: .4byte gPaletteFade
+ thumb_func_end sub_80B9B5C
+
+ thumb_func_start sub_80B9B8C
+sub_80B9B8C: @ 80B9B8C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080B9BD0 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r2, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x30]
+ movs r0, 0x8
+ strh r0, [r4, 0x32]
+ movs r0, 0x28
+ strh r0, [r4, 0x34]
+ movs r0, 0x70
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ ldr r1, _080B9BD4 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080B9BD8 @ =sub_8074AE0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9BD0: .4byte gBattleAnimArgs
+_080B9BD4: .4byte move_anim_8074EE0
+_080B9BD8: .4byte sub_8074AE0
+ thumb_func_end sub_80B9B8C
+
+ thumb_func_start sub_80B9BDC
+sub_80B9BDC: @ 80B9BDC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B9C20 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080B9C24 @ =gBattleAnimArgs
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80B9C2C
+ ldr r0, _080B9C28 @ =sub_80B9C7C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9C20: .4byte gTasks
+_080B9C24: .4byte gBattleAnimArgs
+_080B9C28: .4byte sub_80B9C7C
+ thumb_func_end sub_80B9BDC
+
+ thumb_func_start sub_80B9C2C
+sub_80B9C2C: @ 80B9C2C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080B9C78 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ bl sub_80B9A14
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r2, [r4, 0x12]
+ str r2, [sp]
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9C78: .4byte gTasks
+ thumb_func_end sub_80B9C2C
+
+ thumb_func_start sub_80B9C7C
+sub_80B9C7C: @ 80B9C7C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080B9CB4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B9CDE
+ ldr r1, _080B9CB8 @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080B9CD8
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080B9CBC
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080B9CC0
+ .align 2, 0
+_080B9CB4: .4byte gPaletteFade
+_080B9CB8: .4byte gTasks
+_080B9CBC:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080B9CC0:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080B9CD0
+ movs r2, 0
+_080B9CD0:
+ adds r0, r4, 0
+ bl sub_80B9C2C
+ b _080B9CDE
+_080B9CD8:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080B9CDE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9C7C
+
+ thumb_func_start sub_80B9CE4
+sub_80B9CE4: @ 80B9CE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r3, _080B9D88 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ ldr r2, _080B9D8C @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0x10]
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0, 0x12]
+ strh r5, [r0, 0x18]
+ movs r4, 0
+ ldr r0, _080B9D90 @ =gBattlersCount
+ ldrb r1, [r0]
+ mov r9, r3
+ mov r8, r2
+ cmp r5, r1
+ bge _080B9D4C
+ ldr r0, _080B9D94 @ =gBattleAnimAttacker
+ ldrb r3, [r0]
+ ldr r7, _080B9D98 @ =gBattleAnimTarget
+ movs r0, 0x1
+ mov r12, r0
+ adds r2, r1, 0
+_080B9D32:
+ cmp r4, r3
+ beq _080B9D46
+ ldrb r1, [r7]
+ cmp r4, r1
+ beq _080B9D46
+ adds r1, r4, 0
+ adds r1, 0x10
+ mov r0, r12
+ lsls r0, r1
+ orrs r5, r0
+_080B9D46:
+ adds r4, 0x1
+ cmp r4, r2
+ blt _080B9D32
+_080B9D4C:
+ mov r2, r8
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080B9D5A
+ movs r0, 0xE
+ orrs r5, r0
+_080B9D5A:
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ add r4, r9
+ lsrs r0, r5, 16
+ strh r0, [r4, 0x1A]
+ movs r0, 0xFF
+ ands r5, r0
+ strh r5, [r4, 0x1C]
+ ldrb r2, [r4, 0x10]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_80B9DA0
+ ldr r0, _080B9D9C @ =sub_80B9DF0
+ str r0, [r4]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9D88: .4byte gTasks
+_080B9D8C: .4byte gBattleAnimArgs
+_080B9D90: .4byte gBattlersCount
+_080B9D94: .4byte gBattleAnimAttacker
+_080B9D98: .4byte gBattleAnimTarget
+_080B9D9C: .4byte sub_80B9DF0
+ thumb_func_end sub_80B9CE4
+
+ thumb_func_start sub_80B9DA0
+sub_80B9DA0: @ 80B9DA0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, _080B9DEC @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 16
+ ldrh r1, [r4, 0x1C]
+ orrs r0, r1
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r2, [r4, 0x12]
+ str r2, [sp]
+ adds r2, r5, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9DEC: .4byte gTasks
+ thumb_func_end sub_80B9DA0
+
+ thumb_func_start sub_80B9DF0
+sub_80B9DF0: @ 80B9DF0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080B9E28 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B9E52
+ ldr r1, _080B9E2C @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080B9E4C
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080B9E30
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080B9E34
+ .align 2, 0
+_080B9E28: .4byte gPaletteFade
+_080B9E2C: .4byte gTasks
+_080B9E30:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080B9E34:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080B9E44
+ movs r2, 0
+_080B9E44:
+ adds r0, r4, 0
+ bl sub_80B9DA0
+ b _080B9E52
+_080B9E4C:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080B9E52:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9DF0
+
+ thumb_func_start sub_80B9E58
+sub_80B9E58: @ 80B9E58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B9E9C @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080B9EA0 @ =gBattleAnimArgs
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80B9EA8
+ ldr r0, _080B9EA4 @ =sub_80B9F04
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9E9C: .4byte gTasks
+_080B9EA0: .4byte gBattleAnimArgs
+_080B9EA4: .4byte sub_80B9F04
+ thumb_func_end sub_80B9E58
+
+ thumb_func_start sub_80B9EA8
+sub_80B9EA8: @ 80B9EA8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080B9F00 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r0, [r4, 0x8]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9F00: .4byte gTasks
+ thumb_func_end sub_80B9EA8
+
+ thumb_func_start sub_80B9F04
+sub_80B9F04: @ 80B9F04
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080B9F3C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B9F66
+ ldr r1, _080B9F40 @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080B9F60
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080B9F44
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080B9F48
+ .align 2, 0
+_080B9F3C: .4byte gPaletteFade
+_080B9F40: .4byte gTasks
+_080B9F44:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080B9F48:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080B9F58
+ movs r2, 0
+_080B9F58:
+ adds r0, r4, 0
+ bl sub_80B9EA8
+ b _080B9F66
+_080B9F60:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080B9F66:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9F04
+
+ thumb_func_start sub_80B9F6C
+sub_80B9F6C: @ 80B9F6C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B9FCC @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r5, _080B9FD0 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r5]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldrb r3, [r5, 0x8]
+ ldrh r0, [r5, 0x6]
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080B9FD4 @ =sub_80B9FD8
+ str r0, [r4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9FCC: .4byte gTasks
+_080B9FD0: .4byte gBattleAnimArgs
+_080B9FD4: .4byte sub_80B9FD8
+ thumb_func_end sub_80B9F6C
+
+ thumb_func_start sub_80B9FD8
+sub_80B9FD8: @ 80B9FD8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B9FFC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080BA000
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ b _080BA084
+ .align 2, 0
+_080B9FFC: .4byte gTasks
+_080BA000:
+ ldr r0, _080BA01C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA084
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080BA024
+ ldr r0, _080BA020 @ =sub_80BA090
+ str r0, [r4]
+ b _080BA084
+ .align 2, 0
+_080BA01C: .4byte gPaletteFade
+_080BA020: .4byte sub_80BA090
+_080BA024:
+ ldrh r0, [r4, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA052
+ ldrb r3, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ b _080BA062
+_080BA052:
+ ldrb r3, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+_080BA062:
+ ldr r0, _080BA08C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ eors r0, r2
+ strh r0, [r1, 0xA]
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+_080BA084:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA08C: .4byte gTasks
+ thumb_func_end sub_80B9FD8
+
+ thumb_func_start sub_80BA090
+sub_80BA090: @ 80BA090
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BA0E0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080BA0D6
+ ldr r1, _080BA0E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ str r5, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080BA0D6:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0E0: .4byte gPaletteFade
+_080BA0E4: .4byte gTasks
+ thumb_func_end sub_80BA090
+
+ thumb_func_start sub_80BA0E8
+sub_80BA0E8: @ 80BA0E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080BA160 @ =gBattleAnimAttacker
+ ldrb r6, [r0]
+ ldr r0, _080BA164 @ =gBattleAnimTarget
+ ldrb r7, [r0]
+ ldr r4, _080BA168 @ =gBattleAnimArgs
+ ldrh r1, [r4]
+ movs r5, 0x80
+ lsls r5, 1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA122
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r2, r0, 0
+_080BA122:
+ ldrh r1, [r4, 0x2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA134
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r6
+ orrs r2, r0
+_080BA134:
+ ldrh r1, [r4, 0x4]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA146
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r7
+ orrs r2, r0
+_080BA146:
+ adds r0, r2, 0
+ bl InvertPlttBuffer
+ mov r0, r8
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA160: .4byte gBattleAnimAttacker
+_080BA164: .4byte gBattleAnimTarget
+_080BA168: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BA0E8
+
+ thumb_func_start sub_80BA16C
+sub_80BA16C: @ 80BA16C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r1, _080BA260 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BA1AE
+ ldr r1, _080BA264 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x16]
+_080BA1AE:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080BA268 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r0, _080BA26C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ mov r10, r0
+ ldrh r1, [r4, 0xC]
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA1D0
+ ldr r5, _080BA270 @ =0x0000ffff
+_080BA1D0:
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA200
+ ldr r2, _080BA274 @ =gSprites
+ ldr r0, _080BA278 @ =gUnknown_3004FF0
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ lsls r1, r0
+ lsls r1, 16
+ orrs r5, r1
+_080BA200:
+ ldrh r1, [r4, 0xE]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA214
+ adds r0, r6, 0
+ mov r2, r9
+ lsls r0, r2
+ lsls r0, 16
+ orrs r5, r0
+_080BA214:
+ ldrh r1, [r4, 0x10]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA228
+ adds r0, r6, 0
+ mov r1, r10
+ lsls r0, r1
+ lsls r0, 16
+ orrs r5, r0
+_080BA228:
+ movs r1, 0x12
+ ldrsb r1, [r4, r1]
+ movs r2, 0x14
+ ldrsb r2, [r4, r2]
+ movs r3, 0x16
+ ldrsb r3, [r4, r3]
+ adds r0, r5, 0
+ bl TintPlttBuffer
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080BA252
+ adds r0, r5, 0
+ bl UnfadePlttBuffer
+ mov r0, r8
+ bl DestroyAnimVisualTask
+_080BA252:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA260: .4byte gTasks
+_080BA264: .4byte gBattleAnimArgs
+_080BA268: .4byte gBattleAnimAttacker
+_080BA26C: .4byte gBattleAnimTarget
+_080BA270: .4byte 0x0000ffff
+_080BA274: .4byte gSprites
+_080BA278: .4byte gUnknown_3004FF0
+ thumb_func_end sub_80BA16C
+
+ thumb_func_start sub_80BA27C
+sub_80BA27C: @ 80BA27C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080BA2B0 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080BA2C4
+ cmp r0, 0x1
+ bgt _080BA2B4
+ cmp r0, 0
+ beq _080BA2BA
+ b _080BA2DC
+ .align 2, 0
+_080BA2B0: .4byte gBattleAnimArgs
+_080BA2B4:
+ cmp r0, 0x2
+ beq _080BA2CC
+ b _080BA2DC
+_080BA2BA:
+ ldr r1, _080BA2C0 @ =gBattle_BG3_X
+ b _080BA2CE
+ .align 2, 0
+_080BA2C0: .4byte gBattle_BG3_X
+_080BA2C4:
+ ldr r1, _080BA2C8 @ =gBattle_BG3_Y
+ b _080BA2CE
+ .align 2, 0
+_080BA2C8: .4byte gBattle_BG3_Y
+_080BA2CC:
+ ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX
+_080BA2CE:
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ b _080BA2E4
+ .align 2, 0
+_080BA2D8: .4byte gSpriteCoordOffsetX
+_080BA2DC:
+ ldr r1, _080BA314 @ =gSpriteCoordOffsetY
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+_080BA2E4:
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrh r0, [r1]
+ strh r0, [r4, 0x36]
+ ldr r0, _080BA318 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BA308
+ bl sub_80BA3CC
+_080BA308:
+ ldr r0, _080BA31C @ =sub_80BA320
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA314: .4byte gSpriteCoordOffsetY
+_080BA318: .4byte gBattleAnimArgs
+_080BA31C: .4byte sub_80BA320
+ thumb_func_end sub_80BA27C
+
+ thumb_func_start sub_80BA320
+sub_80BA320: @ 80BA320
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080BA362
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x34]
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080BA342
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080BA3BA
+_080BA342:
+ ldrh r0, [r3, 0x32]
+ strh r0, [r3, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrh r0, [r3, 0x2E]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ b _080BA3BA
+_080BA362:
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrh r0, [r3, 0x36]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BA3B4
+ movs r4, 0
+ ldr r5, _080BA3C0 @ =gBattlersCount
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcs _080BA3B4
+ ldr r2, _080BA3C4 @ =gSprites
+ mov r12, r2
+ ldr r6, _080BA3C8 @ =gBattlerSpriteIds
+ movs r7, 0x3
+ negs r7, r7
+_080BA392:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcc _080BA392
+_080BA3B4:
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080BA3BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA3C0: .4byte gBattlersCount
+_080BA3C4: .4byte gSprites
+_080BA3C8: .4byte gBattlerSpriteIds
+ thumb_func_end sub_80BA320
+
+ thumb_func_start sub_80BA3CC
+sub_80BA3CC: @ 80BA3CC
+ push {r4-r6,lr}
+ ldr r6, _080BA440 @ =gSprites
+ ldr r4, _080BA444 @ =gBattlerSpriteIds
+ ldr r5, _080BA448 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x3
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r3, _080BA44C @ =gBattleAnimTarget
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ ldr r0, _080BA450 @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _080BA454
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ b _080BA470
+ .align 2, 0
+_080BA440: .4byte gSprites
+_080BA444: .4byte gBattlerSpriteIds
+_080BA448: .4byte gBattleAnimAttacker
+_080BA44C: .4byte gBattleAnimTarget
+_080BA450: .4byte gBattleAnimArgs
+_080BA454:
+ cmp r0, 0
+ bne _080BA45C
+ ldrb r0, [r5]
+ b _080BA45E
+_080BA45C:
+ ldrb r0, [r3]
+_080BA45E:
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+_080BA470:
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA3CC
+
+ thumb_func_start sub_80BA47C
+sub_80BA47C: @ 80BA47C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BA4BC @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ ldr r3, _080BA4C0 @ =gBattleAnimArgs
+ ldrh r1, [r3]
+ strh r1, [r2, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x18]
+ ldr r4, _080BA4C4 @ =gBattle_BG3_X
+ ldrh r1, [r3]
+ strh r1, [r4]
+ ldr r4, _080BA4C8 @ =gBattle_BG3_Y
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4]
+ ldr r1, _080BA4CC @ =sub_80BA4D0
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA4BC: .4byte gTasks
+_080BA4C0: .4byte gBattleAnimArgs
+_080BA4C4: .4byte gBattle_BG3_X
+_080BA4C8: .4byte gBattle_BG3_Y
+_080BA4CC: .4byte sub_80BA4D0
+ thumb_func_end sub_80BA47C
+
+ thumb_func_start sub_80BA4D0
+sub_80BA4D0: @ 80BA4D0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BA500 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ mov r12, r1
+ cmp r0, 0
+ bne _080BA556
+ ldr r0, _080BA504 @ =gBattle_BG3_X
+ ldrh r2, [r0]
+ movs r7, 0x8
+ ldrsh r1, [r3, r7]
+ adds r6, r0, 0
+ cmp r2, r1
+ bne _080BA508
+ ldrh r0, [r3, 0x8]
+ negs r0, r0
+ b _080BA50A
+ .align 2, 0
+_080BA500: .4byte gTasks
+_080BA504: .4byte gBattle_BG3_X
+_080BA508:
+ ldrh r0, [r3, 0x8]
+_080BA50A:
+ strh r0, [r6]
+ ldr r2, _080BA528 @ =gBattle_BG3_Y
+ ldrh r3, [r2]
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r7, r12
+ adds r4, r0, r7
+ movs r7, 0xA
+ ldrsh r0, [r4, r7]
+ cmn r3, r0
+ bne _080BA52C
+ movs r0, 0
+ b _080BA530
+ .align 2, 0
+_080BA528: .4byte gBattle_BG3_Y
+_080BA52C:
+ ldrh r0, [r4, 0xA]
+ negs r0, r0
+_080BA530:
+ strh r0, [r2]
+ adds r0, r1, r5
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x18]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r0, 0xC]
+ subs r1, 0x1
+ strh r1, [r0, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0
+ bne _080BA55A
+ strh r1, [r6]
+ strh r1, [r2]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _080BA55A
+_080BA556:
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+_080BA55A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA4D0
+
+ thumb_func_start sub_80BA560
+sub_80BA560: @ 80BA560
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080BA580 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BA584
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ b _080BA58C
+ .align 2, 0
+_080BA580: .4byte gBattleAnimArgs
+_080BA584:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075114
+_080BA58C:
+ ldr r0, _080BA5A0 @ =sub_8074F50
+ str r0, [r5, 0x1C]
+ ldr r1, _080BA5A4 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA5A0: .4byte sub_8074F50
+_080BA5A4: .4byte DestroyAnimSprite
+ thumb_func_end sub_80BA560
+
+ thumb_func_start sub_80BA5A8
+sub_80BA5A8: @ 80BA5A8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080BA5C8 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BA5CC
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ b _080BA5D4
+ .align 2, 0
+_080BA5C8: .4byte gBattleAnimArgs
+_080BA5CC:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075114
+_080BA5D4:
+ ldr r0, _080BA5EC @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080BA5F0 @ =sub_8074F50
+ str r0, [r5, 0x1C]
+ ldr r1, _080BA5F4 @ =sub_80B1D3C
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA5EC: .4byte gBattleAnimArgs
+_080BA5F0: .4byte sub_8074F50
+_080BA5F4: .4byte sub_80B1D3C
+ thumb_func_end sub_80BA5A8
+
+ thumb_func_start sub_80BA5F8
+sub_80BA5F8: @ 80BA5F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080BA628 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA61C
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BA61C
+ ldr r1, _080BA62C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080BA61C:
+ adds r0, r4, 0
+ bl sub_80BA560
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA628: .4byte gBattleAnimAttacker
+_080BA62C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BA5F8
+
+ thumb_func_start sub_80BA630
+sub_80BA630: @ 80BA630
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080BA668 @ =gBattleAnimArgs
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080BA64C
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ strh r1, [r5, 0x2]
+_080BA64C:
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080BA66C
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075160
+ b _080BA674
+ .align 2, 0
+_080BA668: .4byte gBattleAnimArgs
+_080BA66C:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075114
+_080BA674:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x30
+ bl __umodsi3
+ ldr r1, _080BA6B8 @ =0x0000ffe8
+ adds r0, r1
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ ldr r1, _080BA6BC @ =0x0000fff4
+ adds r0, r1
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r1, _080BA6C0 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080BA6C4 @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6B8: .4byte 0x0000ffe8
+_080BA6BC: .4byte 0x0000fff4
+_080BA6C0: .4byte move_anim_8074EE0
+_080BA6C4: .4byte sub_8074F50
+ thumb_func_end sub_80BA630
+
+ thumb_func_start sub_80BA6C8
+sub_80BA6C8: @ 80BA6C8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080BA728 @ =gBattleAnimArgs
+ ldrb r0, [r5]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ ldr r2, _080BA72C @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x26]
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080BA730 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080BA734 @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA728: .4byte gBattleAnimArgs
+_080BA72C: .4byte gSprites
+_080BA730: .4byte move_anim_8074EE0
+_080BA734: .4byte sub_8074F50
+ thumb_func_end sub_80BA6C8
+
+ thumb_func_start sub_80BA738
+sub_80BA738: @ 80BA738
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080BA750 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BA754
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075160
+ b _080BA75C
+ .align 2, 0
+_080BA750: .4byte gBattleAnimArgs
+_080BA754:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+_080BA75C:
+ ldr r0, _080BA774 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080BA778 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080BA77C @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA774: .4byte gBattleAnimArgs
+_080BA778: .4byte DestroyAnimSprite
+_080BA77C: .4byte sub_8074C44
+ thumb_func_end sub_80BA738
+
+ thumb_func_start sub_80BA780
+sub_80BA780: @ 80BA780
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080BA7A0 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BA7A4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ b _080BA7AC
+ .align 2, 0
+_080BA7A0: .4byte gBattleAnimArgs
+_080BA7A4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075114
+_080BA7AC:
+ ldr r0, _080BA7B8 @ =sub_80BA7BC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA7B8: .4byte sub_80BA7BC
+ thumb_func_end sub_80BA780
+
+ thumb_func_start sub_80BA7BC
+sub_80BA7BC: @ 80BA7BC
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080BA7F2
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080BA7F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA7BC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/oak_speech.s b/asm/oak_speech.s
deleted file mode 100644
index 5f2326487..000000000
--- a/asm/oak_speech.s
+++ /dev/null
@@ -1,5728 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_812E944
-sub_812E944: @ 812E944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- adds r0, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r1, [sp, 0x20]
- mov r8, r1
- ldr r1, [sp, 0x24]
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0812E9DC @ =sub_812E9F8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812E9E0 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- mov r1, r10
- lsls r0, r1, 8
- strh r0, [r4, 0x8]
- lsls r2, r7, 8
- mov r9, r2
- strh r2, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r6, [r4, 0xE]
- subs r5, r1
- lsls r5, 8
- adds r0, r5, 0
- mov r1, r8
- bl __divsi3
- strh r0, [r4, 0x10]
- subs r6, r7
- lsls r6, 8
- adds r0, r6, 0
- mov r1, r8
- bl __divsi3
- strh r0, [r4, 0x12]
- mov r0, r8
- strh r0, [r4, 0x18]
- mov r1, r9
- mov r2, r10
- orrs r1, r2
- mov r9, r1
- movs r0, 0x52
- bl SetGpuReg
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E9DC: .4byte sub_812E9F8
-_0812E9E0: .4byte gTasks
- thumb_func_end sub_812E944
-
- thumb_func_start sub_812E9E4
-sub_812E9E4: @ 812E9E4
- push {lr}
- ldr r0, _0812E9F4 @ =sub_812E9F8
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0812E9F4: .4byte sub_812E9F8
- thumb_func_end sub_812E9E4
-
- thumb_func_start sub_812E9F8
-sub_812E9F8: @ 812E9F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812EA28 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812EA6E
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812EA2C
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- movs r0, 0x1
- b _0812EA4C
- .align 2, 0
-_0812EA28: .4byte gTasks+0x8
-_0812EA2C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _0812EA3E
- ldrh r0, [r4, 0xA]
- ldrh r2, [r4, 0x2]
- adds r0, r2
- b _0812EA48
-_0812EA3E:
- ldrh r0, [r4, 0x4]
- lsls r0, 8
- strh r0, [r4]
- ldrh r0, [r4, 0x6]
- lsls r0, 8
-_0812EA48:
- strh r0, [r4, 0x2]
- movs r0, 0
-_0812EA4C:
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x2]
- ldr r1, _0812EA74 @ =0xffffff00
- ands r1, r0
- ldrh r0, [r4]
- lsrs r0, 8
- orrs r1, r0
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812EA6E
- adds r0, r5, 0
- bl DestroyTask
-_0812EA6E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EA74: .4byte 0xffffff00
- thumb_func_end sub_812E9F8
-
- thumb_func_start sub_812EA78
-sub_812EA78: @ 812EA78
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r2, 24
- lsrs r5, r2, 24
- cmp r4, 0xC9
- bne _0812EAB8
- adds r0, r1, 0
- bl sub_8082AB8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1A
- beq _0812EAA4
- cmp r0, 0x1A
- bgt _0812EA9E
- cmp r0, 0
- beq _0812EAB8
- b _0812EAB4
-_0812EA9E:
- cmp r0, 0x1B
- beq _0812EAAA
- b _0812EAB4
-_0812EAA4:
- movs r4, 0xCE
- lsls r4, 1
- b _0812EABC
-_0812EAAA:
- ldr r4, _0812EAB0 @ =0x0000019d
- b _0812EABC
- .align 2, 0
-_0812EAB0: .4byte 0x0000019d
-_0812EAB4:
- adds r4, r0, 0
- adds r4, 0xFB
-_0812EAB8:
- cmp r4, 0
- beq _0812EAD6
-_0812EABC:
- cmp r5, 0x4
- bhi _0812EAD6
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _0812EAE0 @ =gUnknown_845FD54
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r5, r0
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _0812EAD8
-_0812EAD6:
- movs r0, 0x20
-_0812EAD8:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812EAE0: .4byte gUnknown_845FD54
- thumb_func_end sub_812EA78
-
- thumb_func_start sub_812EAE4
-sub_812EAE4: @ 812EAE4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- lsrs r2, 24
- bl sub_812EA78
- subs r0, 0x20
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_812EAE4
-
- thumb_func_start sub_812EAFC
-sub_812EAFC: @ 812EAFC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_812EAFC
-
- thumb_func_start sub_812EB10
-sub_812EB10: @ 812EB10
- push {lr}
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_812EB10
-
- thumb_func_start sub_812EB2C
-sub_812EB2C: @ 812EB2C
- push {lr}
- ldr r0, _0812EB48 @ =gPlttBufferUnfaded
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812EB4C @ =gPlttBufferFaded
- strh r1, [r0]
- ldr r0, _0812EB50 @ =sub_812EB58
- bl CreateTask
- ldr r0, _0812EB54 @ =sub_812EB10
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0812EB48: .4byte gPlttBufferUnfaded
-_0812EB4C: .4byte gPlttBufferFaded
-_0812EB50: .4byte sub_812EB58
-_0812EB54: .4byte sub_812EB10
- thumb_func_end sub_812EB2C
-
- thumb_func_start sub_812EB58
-sub_812EB58: @ 812EB58
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0812EB7C @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _0812EB70
- b _0812EE94
-_0812EB70:
- lsls r0, 2
- ldr r1, _0812EB80 @ =_0812EB84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812EB7C: .4byte gMain
-_0812EB80: .4byte _0812EB84
- .align 2, 0
-_0812EB84:
- .4byte _0812EBB0
- .4byte _0812EC28
- .4byte _0812EC44
- .4byte _0812EC8E
- .4byte _0812ED00
- .4byte _0812ED3C
- .4byte _0812ED6C
- .4byte _0812ED9A
- .4byte _0812EE94
- .4byte _0812EE94
- .4byte _0812EE30
-_0812EBB0:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- add r1, sp, 0x8
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0812EC14 @ =0x040000d4
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0812EC18 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0xC]
- add r0, sp, 0xC
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0812EC1C @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x8
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _0812EC20 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _0812EC24 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl remove_some_task
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl reset_temp_tile_data_buffers
- movs r0, 0x2
- bl sub_812B1F0
- b _0812EE94
- .align 2, 0
-_0812EC14: .4byte 0x040000d4
-_0812EC18: .4byte 0x8100c000
-_0812EC1C: .4byte 0x85000100
-_0812EC20: .4byte 0x05000002
-_0812EC24: .4byte 0x810001ff
-_0812EC28:
- ldr r4, _0812EC3C @ =gUnknown_203B108
- ldr r0, _0812EC40 @ =0x00002420
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0x1
- movs r1, 0x1
- bl sub_8044AF0
- b _0812EE94
- .align 2, 0
-_0812EC3C: .4byte gUnknown_203B108
-_0812EC40: .4byte 0x00002420
-_0812EC44:
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x42
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- b _0812EE94
-_0812EC8E:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0812ECF0 @ =gUnknown_8462E58
- movs r0, 0x1
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, _0812ECF4 @ =gUnknown_203B108
- ldr r1, [r4]
- movs r0, 0xE1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0xC1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r0, _0812ECF8 @ =gSpriteCoordOffsetX
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812ECFC @ =gSpriteCoordOffsetY
- strh r1, [r0]
- b _0812EE94
- .align 2, 0
-_0812ECF0: .4byte gUnknown_8462E58
-_0812ECF4: .4byte gUnknown_203B108
-_0812ECF8: .4byte gSpriteCoordOffsetX
-_0812ECFC: .4byte gSpriteCoordOffsetY
-_0812ED00:
- ldr r2, _0812ED34 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl sub_80F6C6C
- bl sub_80F6C98
- movs r0, 0xD0
- bl sub_80F77CC
- ldr r0, _0812ED38 @ =gUnknown_8460568
- movs r1, 0
- movs r2, 0x80
- bl LoadPalette
- movs r0, 0x2
- bl stdpal_get
- adds r0, 0x1E
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- b _0812EE94
- .align 2, 0
-_0812ED34: .4byte gPaletteFade
-_0812ED38: .4byte gUnknown_8460568
-_0812ED3C:
- bl sub_80F78A8
- ldr r1, _0812ED60 @ =gUnknown_203B108
- ldr r1, [r1]
- movs r3, 0
- strb r0, [r1, 0x1F]
- ldr r2, _0812ED64 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0812ED68 @ =gUnknown_84605E8
- str r3, [sp]
- movs r0, 0x1
- movs r2, 0
- bl decompress_and_copy_tile_data_to_vram
- b _0812EE94
- .align 2, 0
-_0812ED60: .4byte gUnknown_203B108
-_0812ED64: .4byte gTextFlags
-_0812ED68: .4byte gUnknown_84605E8
-_0812ED6C:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- beq _0812ED78
- b _0812EEA2
-_0812ED78:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _0812EE94
-_0812ED9A:
- movs r0, 0xE2
- lsls r0, 1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1E
- movs r2, 0
- movs r3, 0xD
- bl sub_810F558
- ldr r1, _0812EE1C @ =0x0000d00f
- movs r4, 0x1E
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- ldr r1, _0812EE20 @ =0x0000d002
- str r4, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- ldr r1, _0812EE24 @ =0x0000d00e
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect_Palette0
- bl sub_812EEB0
- ldr r2, _0812EE28 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0
- str r0, [sp]
- movs r1, 0xE6
- movs r2, 0x95
- movs r3, 0
- bl sub_8006300
- ldr r2, _0812EE2C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x12]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _0812EE94
- .align 2, 0
-_0812EE1C: .4byte 0x0000d00f
-_0812EE20: .4byte 0x0000d002
-_0812EE24: .4byte 0x0000d00e
-_0812EE28: .4byte gPaletteFade
-_0812EE2C: .4byte gTasks
-_0812EE30:
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r0, _0812EE80 @ =sub_812EAFC
- bl SetVBlankCallback
- ldr r0, _0812EE84 @ =0x00000143
- bl PlayBGM
- ldr r1, _0812EE88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812EE8C @ =sub_812F0B0
- str r1, [r0]
- ldr r0, _0812EE90 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- strb r4, [r0]
- b _0812EEA2
- .align 2, 0
-_0812EE80: .4byte sub_812EAFC
-_0812EE84: .4byte 0x00000143
-_0812EE88: .4byte gTasks
-_0812EE8C: .4byte sub_812F0B0
-_0812EE90: .4byte gMain
-_0812EE94:
- ldr r1, _0812EEAC @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0812EEA2:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EEAC: .4byte gMain
- thumb_func_end sub_812EB58
-
- thumb_func_start sub_812EEB0
-sub_812EEB0: @ 812EEB0
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _0812EF38 @ =gUnknown_8415D2C
- ldr r1, _0812EF3C @ =gUnknown_8415D48
- movs r5, 0x1
- str r5, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_810F650
- ldr r1, _0812EF40 @ =gUnknown_8462EB4
- ldr r4, _0812EF44 @ =gUnknown_203B108
- ldr r0, [r4]
- ldrh r0, [r0, 0x12]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl AddWindow
- ldr r1, [r4]
- movs r6, 0
- strh r0, [r1, 0x14]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- str r5, [sp]
- str r5, [sp, 0x4]
- ldr r1, _0812EF48 @ =gUnknown_8462EE8
- str r1, [sp, 0x8]
- str r6, [sp, 0xC]
- ldr r1, _0812EF4C @ =gUnknown_81C582D
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0
- bl AddTextPrinterParametrized2
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- movs r1, 0x3
- bl CopyWindowToVram
- movs r1, 0xC0
- lsls r1, 6
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0x1
- movs r3, 0x3
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EF38: .4byte gUnknown_8415D2C
-_0812EF3C: .4byte gUnknown_8415D48
-_0812EF40: .4byte gUnknown_8462EB4
-_0812EF44: .4byte gUnknown_203B108
-_0812EF48: .4byte gUnknown_8462EE8
-_0812EF4C: .4byte gUnknown_81C582D
- thumb_func_end sub_812EEB0
-
- thumb_func_start sub_812EF50
-sub_812EF50: @ 812EF50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- ldr r4, _0812EF80 @ =gUnknown_203B108
- ldr r0, [r4]
- ldrh r1, [r0, 0x12]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r1, 0
- bne _0812EF84
- bl sub_812EEB0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- b _0812F06A
- .align 2, 0
-_0812EF80: .4byte gUnknown_203B108
-_0812EF84:
- ldr r0, _0812F038 @ =gUnknown_8415D50
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- lsls r1, r7, 1
- mov r9, r1
- mov r3, r8
- lsls r3, 2
- mov r10, r3
- adds r5, r4, 0
-_0812EF9A:
- ldr r1, _0812F03C @ =gUnknown_8462EB4
- ldr r0, [r5]
- ldrh r0, [r0, 0x12]
- lsls r0, 2
- adds r0, r1
- lsls r1, r6, 3
- ldr r0, [r0]
- adds r0, r1
- bl AddWindow
- ldr r1, [r5]
- lsls r4, r6, 1
- adds r1, 0x14
- adds r1, r4
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x1
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _0812F040 @ =gUnknown_8462EE8
- str r1, [sp, 0x8]
- movs r1, 0
- str r1, [sp, 0xC]
- ldr r2, _0812F044 @ =gUnknown_8463074
- mov r3, r9
- adds r1, r3, r7
- adds r1, r6, r1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x6
- movs r3, 0
- bl AddTextPrinterParametrized2
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x3
- bl CopyWindowToVram
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _0812EF9A
- ldr r0, _0812F048 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- cmp r0, 0x1
- bne _0812F050
- ldr r1, _0812F04C @ =gUnknown_8460D94
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0x1
- movs r3, 0x3
- bl CopyToBgTilemapBufferRect
- b _0812F064
- .align 2, 0
-_0812F038: .4byte gUnknown_8415D50
-_0812F03C: .4byte gUnknown_8462EB4
-_0812F040: .4byte gUnknown_8462EE8
-_0812F044: .4byte gUnknown_8463074
-_0812F048: .4byte gUnknown_203B108
-_0812F04C: .4byte gUnknown_8460D94
-_0812F050:
- ldr r1, _0812F0A0 @ =gUnknown_8460E34
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0x1
- movs r3, 0x3
- bl CopyToBgTilemapBufferRect
-_0812F064:
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
-_0812F06A:
- movs r0, 0x2
- bl stdpal_get
- ldrh r2, [r0, 0x1E]
- ldr r0, _0812F0A4 @ =0xffffdfff
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0812F0A8 @ =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812F0AC @ =sub_812F0B0
- str r1, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F0A0: .4byte gUnknown_8460E34
-_0812F0A4: .4byte 0xffffdfff
-_0812F0A8: .4byte gTasks
-_0812F0AC: .4byte sub_812F0B0
- thumb_func_end sub_812EF50
-
- thumb_func_start sub_812F0B0
-sub_812F0B0: @ 812F0B0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0812F10C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F162
- ldr r0, _0812F110 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0812F162
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0812F120
- ldr r1, _0812F114 @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x26]
- ldr r0, _0812F118 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- adds r4, r2, 0
- cmp r0, 0x1
- bhi _0812F150
- movs r0, 0x2
- bl stdpal_get
- ldrh r2, [r0, 0x1E]
- ldr r0, _0812F11C @ =0xffffdfff
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0812F150
- .align 2, 0
-_0812F10C: .4byte gPaletteFade
-_0812F110: .4byte gMain
-_0812F114: .4byte gTasks
-_0812F118: .4byte gUnknown_203B108
-_0812F11C: .4byte 0xffffdfff
-_0812F120:
- ldr r0, _0812F16C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- cmp r0, 0
- beq _0812F162
- ldr r1, _0812F170 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812F174 @ =0x0000ffff
- strh r1, [r0, 0x26]
- movs r0, 0x2
- bl stdpal_get
- ldrh r2, [r0, 0x1E]
- ldr r0, _0812F178 @ =0xffffdfff
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0812F150:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0812F170 @ =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812F17C @ =sub_812F180
- str r0, [r1]
-_0812F162:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F16C: .4byte gUnknown_203B108
-_0812F170: .4byte gTasks
-_0812F174: .4byte 0x0000ffff
-_0812F178: .4byte 0xffffdfff
-_0812F17C: .4byte sub_812F180
- thumb_func_end sub_812F0B0
-
- thumb_func_start sub_812F180
-sub_812F180: @ 812F180
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _0812F1B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F260
- ldr r1, _0812F1B4 @ =gUnknown_203B108
- ldr r0, [r1]
- ldrh r0, [r0, 0x12]
- adds r5, r1, 0
- cmp r0, 0
- bne _0812F1B8
- movs r1, 0x1
- mov r8, r1
- b _0812F1C4
- .align 2, 0
-_0812F1B0: .4byte gPaletteFade
-_0812F1B4: .4byte gUnknown_203B108
-_0812F1B8:
- cmp r0, 0
- blt _0812F1C4
- cmp r0, 0x2
- bgt _0812F1C4
- movs r2, 0x3
- mov r8, r2
-_0812F1C4:
- ldr r2, [r5]
- ldr r1, _0812F244 @ =gTasks
- lsls r3, r7, 2
- adds r0, r3, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- ldrh r1, [r2, 0x12]
- adds r0, r1
- movs r1, 0
- strh r0, [r2, 0x12]
- lsls r0, 16
- lsrs r0, 16
- mov r9, r3
- cmp r0, 0x2
- bhi _0812F24C
- movs r6, 0
- cmp r1, r8
- bcs _0812F234
-_0812F1EA:
- ldr r0, [r5]
- lsls r4, r6, 1
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl ClearWindowTilemap
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl RemoveWindow
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- movs r1, 0
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r8
- bcc _0812F1EA
-_0812F234:
- ldr r0, _0812F244 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812F248 @ =sub_812EF50
- str r0, [r1]
- b _0812F260
- .align 2, 0
-_0812F244: .4byte gTasks
-_0812F248: .4byte sub_812EF50
-_0812F24C:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0812F270 @ =sub_812F274
- str r0, [r4]
-_0812F260:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F270: .4byte sub_812F274
- thumb_func_end sub_812F180
-
- thumb_func_start sub_812F274
-sub_812F274: @ 812F274
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- ldr r0, _0812F32C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F320
- ldr r5, _0812F330 @ =gUnknown_203B108
-_0812F292:
- ldr r0, [r5]
- lsls r4, r6, 1
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl ClearWindowTilemap
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl RemoveWindow
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- movs r7, 0
- strh r7, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _0812F292
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, _0812F334 @ =gTasks
- mov r1, r8
- lsls r4, r1, 2
- add r4, r8
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x12]
- bl sub_8006398
- ldr r0, _0812F330 @ =gUnknown_203B108
- ldr r0, [r0]
- strh r7, [r0, 0x14]
- adds r0, 0x14
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x20
- strh r0, [r4, 0xE]
- ldr r0, _0812F338 @ =sub_812F33C
- str r0, [r4]
-_0812F320:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F32C: .4byte gPaletteFade
-_0812F330: .4byte gUnknown_203B108
-_0812F334: .4byte gTasks
-_0812F338: .4byte sub_812F33C
- thumb_func_end sub_812F274
-
- thumb_func_start sub_812F33C
-sub_812F33C: @ 812F33C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- mov r8, r0
- ldr r0, _0812F370 @ =gTasks+0x8
- mov r9, r0
- mov r5, r8
- add r5, r9
- movs r0, 0
- str r0, [sp, 0x14]
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r6, [r5, r1]
- cmp r6, 0
- beq _0812F374
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _0812F476
- .align 2, 0
-_0812F370: .4byte gTasks+0x8
-_0812F374:
- movs r0, 0xA2
- lsls r0, 1
- bl PlayBGM
- bl sub_810F71C
- ldr r0, _0812F484 @ =gUnknown_8415D48
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- ldr r0, _0812F488 @ =gUnknown_8460BA8
- add r1, sp, 0x14
- bl malloc_and_decompress
- adds r1, r0, 0
- ldr r4, _0812F48C @ =gUnknown_203B108
- ldr r0, [r4]
- str r1, [r0, 0x8]
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x13
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0x2
- bl CopyToBgTilemapBufferRect
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- bl Free
- ldr r0, [r4]
- str r6, [r0, 0x8]
- ldr r0, _0812F490 @ =gUnknown_8462EC0
- bl AddWindow
- strh r0, [r5, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrb r0, [r5, 0x1C]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r5, 0x1C]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, [r4]
- movs r1, 0
- strh r6, [r0, 0x12]
- ldr r0, _0812F494 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x10
- strh r0, [r5, 0x1E]
- ldrb r0, [r5, 0x1C]
- movs r1, 0x1
- str r1, [sp]
- str r6, [sp, 0x4]
- ldr r1, _0812F498 @ =gUnknown_8462EEC
- str r1, [sp, 0x8]
- str r6, [sp, 0xC]
- ldr r1, _0812F49C @ =gUnknown_8462EF0
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x5
- bl AddTextPrinterParametrized2
- str r6, [sp]
- movs r0, 0
- movs r1, 0xE2
- movs r2, 0x91
- movs r3, 0
- bl sub_8006300
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldr r4, _0812F4A0 @ =gSprites
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- ands r3, r1
- strb r3, [r0, 0x5]
- adds r0, r7, 0
- movs r1, 0
- bl sub_8130FD4
- movs r0, 0x1
- negs r0, r0
- str r6, [sp]
- movs r1, 0x2
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _0812F4A4 @ =sub_812F4A8
- str r1, [r0]
-_0812F476:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F484: .4byte gUnknown_8415D48
-_0812F488: .4byte gUnknown_8460BA8
-_0812F48C: .4byte gUnknown_203B108
-_0812F490: .4byte gUnknown_8462EC0
-_0812F494: .4byte gMain
-_0812F498: .4byte gUnknown_8462EEC
-_0812F49C: .4byte gUnknown_8462EF0
-_0812F4A0: .4byte gSprites
-_0812F4A4: .4byte sub_812F4A8
- thumb_func_end sub_812F33C
-
- thumb_func_start sub_812F4A8
-sub_812F4A8: @ 812F4A8
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r6, r0, 3
- ldr r7, _0812F4D8 @ =gTasks+0x8
- adds r5, r6, r7
- ldr r0, _0812F4DC @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r3, r0, r1
- ldrb r1, [r3]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0812F4CC
- b _0812F6C0
-_0812F4CC:
- lsls r0, r1, 2
- ldr r1, _0812F4E0 @ =_0812F4E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812F4D8: .4byte gTasks+0x8
-_0812F4DC: .4byte gMain
-_0812F4E0: .4byte _0812F4E4
- .align 2, 0
-_0812F4E4:
- .4byte _0812F4F8
- .4byte _0812F538
- .4byte _0812F5B4
- .4byte _0812F644
- .4byte _0812F688
-_0812F4F8:
- ldr r0, _0812F534 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0812F506
- b _0812F71C
-_0812F506:
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- movs r1, 0x85
- lsls r1, 5
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x1F
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- b _0812F676
- .align 2, 0
-_0812F534: .4byte gPaletteFade
-_0812F538:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812F544
- b _0812F71C
-_0812F544:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F55C
- ldr r0, _0812F558 @ =gUnknown_203B108
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- b _0812F56A
- .align 2, 0
-_0812F558: .4byte gUnknown_203B108
-_0812F55C:
- ldr r0, _0812F58C @ =gUnknown_203B108
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- cmp r0, 0
- bne _0812F568
- b _0812F71C
-_0812F568:
- subs r0, 0x1
-_0812F56A:
- strh r0, [r1, 0x12]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0812F58C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- cmp r0, 0x3
- bne _0812F594
- ldr r0, _0812F590 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _0812F71C
- .align 2, 0
-_0812F58C: .4byte gUnknown_203B108
-_0812F590: .4byte gMain
-_0812F594:
- ldr r1, _0812F5B0 @ =0x00000241
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r5, 0x1E]
- movs r1, 0x10
- subs r1, r0
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- b _0812F6A2
- .align 2, 0
-_0812F5B0: .4byte 0x00000241
-_0812F5B4:
- ldrh r1, [r5, 0x1E]
- subs r1, 0x2
- strh r1, [r5, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- ble _0812F5D6
- b _0812F71C
-_0812F5D6:
- ldrb r0, [r5, 0x1C]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r5, 0x1C]
- movs r1, 0x1
- str r1, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r1, _0812F620 @ =gUnknown_8462EEC
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r2, _0812F624 @ =gUnknown_8462EF0
- ldr r4, _0812F628 @ =gUnknown_203B108
- ldr r1, [r4]
- ldrh r1, [r1, 0x12]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x5
- bl AddTextPrinterParametrized2
- ldr r0, [r4]
- ldrh r0, [r0, 0x12]
- cmp r0, 0
- bne _0812F630
- bl sub_810F71C
- ldr r0, _0812F62C @ =gUnknown_8415D48
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- b _0812F6A2
- .align 2, 0
-_0812F620: .4byte gUnknown_8462EEC
-_0812F624: .4byte gUnknown_8462EF0
-_0812F628: .4byte gUnknown_203B108
-_0812F62C: .4byte gUnknown_8415D48
-_0812F630:
- bl sub_810F71C
- ldr r0, _0812F640 @ =gUnknown_8415D50
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- b _0812F6A2
- .align 2, 0
-_0812F640: .4byte gUnknown_8415D50
-_0812F644:
- ldrh r1, [r5, 0x1E]
- adds r1, 0x2
- strh r1, [r5, 0x1E]
- movs r4, 0x10
- subs r0, r4, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- ble _0812F71C
- strh r4, [r5, 0x1E]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
-_0812F676:
- ldr r0, _0812F684 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0812F71C
- .align 2, 0
-_0812F684: .4byte gMain
-_0812F688:
- ldr r1, _0812F6B4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x12]
- bl sub_8006398
- ldr r0, _0812F6B8 @ =0x00000145
- bl PlayBGM
- movs r0, 0x18
- strh r0, [r5, 0x1E]
-_0812F6A2:
- ldr r1, _0812F6BC @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0812F71C
- .align 2, 0
-_0812F6B4: .4byte gTasks
-_0812F6B8: .4byte 0x00000145
-_0812F6BC: .4byte gMain
-_0812F6C0:
- ldrh r0, [r5, 0x1E]
- movs r1, 0x1E
- ldrsh r4, [r5, r1]
- cmp r4, 0
- beq _0812F6D0
- subs r0, 0x1
- strh r0, [r5, 0x1E]
- b _0812F71C
-_0812F6D0:
- strb r4, [r3]
- ldr r0, _0812F724 @ =gUnknown_203B108
- ldr r0, [r0]
- strh r4, [r0, 0x12]
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0812F728 @ =sub_812F72C
- str r1, [r0]
-_0812F71C:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F724: .4byte gUnknown_203B108
-_0812F728: .4byte sub_812F72C
- thumb_func_end sub_812F4A8
-
- thumb_func_start sub_812F72C
-sub_812F72C: @ 812F72C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
- ldr r0, _0812F7B4 @ =gTasks+0x8
- mov r8, r0
- adds r4, r7, r0
- ldr r0, _0812F7B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0812F7A6
- bl sub_810F740
- ldrb r0, [r4, 0x1C]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r4, 0x1C]
- bl ClearWindowTilemap
- ldrb r0, [r4, 0x1C]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4, 0x1C]
- bl RemoveWindow
- strh r6, [r4, 0x1C]
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- adds r0, r5, 0
- movs r1, 0
- bl sub_8131168
- movs r0, 0x50
- strh r0, [r4, 0x6]
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0812F7BC @ =sub_812F7C0
- str r1, [r0]
-_0812F7A6:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F7B4: .4byte gTasks+0x8
-_0812F7B8: .4byte gPaletteFade
-_0812F7BC: .4byte sub_812F7C0
- thumb_func_end sub_812F72C
-
- thumb_func_start sub_812F7C0
-sub_812F7C0: @ 812F7C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r7, r0, 3
- ldr r0, _0812F7EC @ =gTasks+0x8
- mov r8, r0
- adds r5, r7, r0
- movs r0, 0
- str r0, [sp, 0x4]
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r6, [r5, r1]
- cmp r6, 0
- beq _0812F7F0
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _0812F862
- .align 2, 0
-_0812F7EC: .4byte gTasks+0x8
-_0812F7F0:
- ldr r0, _0812F870 @ =gUnknown_8460CA4
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r1, r0, 0
- ldr r0, _0812F874 @ =gUnknown_203B108
- ldr r0, [r0]
- str r1, [r0]
- ldr r2, [sp, 0x4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- ldr r1, _0812F878 @ =gUnknown_8460CE8
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- adds r0, r4, 0
- bl sub_8130F2C
- movs r0, 0x3
- movs r1, 0
- bl sub_81311F4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8130FD4
- movs r0, 0x92
- lsls r0, 1
- bl PlayBGM
- movs r0, 0x1
- negs r0, r0
- str r6, [sp]
- movs r1, 0x5
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x50
- strh r0, [r5, 0x6]
- movs r0, 0x2
- bl ShowBg
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0812F87C @ =sub_812F880
- str r1, [r0]
-_0812F862:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F870: .4byte gUnknown_8460CA4
-_0812F874: .4byte gUnknown_203B108
-_0812F878: .4byte gUnknown_8460CE8
-_0812F87C: .4byte sub_812F880
- thumb_func_end sub_812F7C0
-
- thumb_func_start sub_812F880
-sub_812F880: @ 812F880
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0812F8B0 @ =gTasks+0x8
- adds r2, r0, r1
- ldr r0, _0812F8B4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F92E
- ldrh r0, [r2, 0x6]
- movs r1, 0x6
- ldrsh r4, [r2, r1]
- cmp r4, 0
- beq _0812F8B8
- subs r0, 0x1
- strh r0, [r2, 0x6]
- b _0812F92E
- .align 2, 0
-_0812F8B0: .4byte gTasks+0x8
-_0812F8B4: .4byte gPaletteFade
-_0812F8B8:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812F8F0 @ =gUnknown_81C5C78
- ldr r5, _0812F8F4 @ =gStringVar4
- cmp r2, r5
- beq _0812F8FC
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812F8F8 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812F918
- .align 2, 0
-_0812F8F0: .4byte gUnknown_81C5C78
-_0812F8F4: .4byte gStringVar4
-_0812F8F8: .4byte gUnknown_203B108
-_0812F8FC:
- ldr r0, _0812F938 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812F918:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812F93C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812F940 @ =sub_812F944
- str r0, [r1]
-_0812F92E:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F938: .4byte gUnknown_203B108
-_0812F93C: .4byte gTasks
-_0812F940: .4byte sub_812F944
- thumb_func_end sub_812F880
-
- thumb_func_start sub_812F944
-sub_812F944: @ 812F944
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0812F9D6
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812F994 @ =gUnknown_81C5D06
- ldr r5, _0812F998 @ =gStringVar4
- cmp r2, r5
- beq _0812F9A0
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812F99C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812F9BC
- .align 2, 0
-_0812F994: .4byte gUnknown_81C5D06
-_0812F998: .4byte gStringVar4
-_0812F99C: .4byte gUnknown_203B108
-_0812F9A0:
- ldr r0, _0812F9E0 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812F9BC:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, _0812F9E4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- strh r1, [r0, 0xE]
- ldr r1, _0812F9E8 @ =sub_812F9EC
- str r1, [r0]
-_0812F9D6:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F9E0: .4byte gUnknown_203B108
-_0812F9E4: .4byte gTasks
-_0812F9E8: .4byte sub_812F9EC
- thumb_func_end sub_812F944
-
- thumb_func_start sub_812F9EC
-sub_812F9EC: @ 812F9EC
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0812FA68 @ =gTasks+0x8
- adds r4, r6, r7
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0812FA5E
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812FA1A
- subs r0, r1, 0x1
- strh r0, [r4, 0x6]
-_0812FA1A:
- adds r4, r7, 0
- subs r4, 0x8
- adds r4, r6, r4
- ldrb r0, [r4, 0x10]
- ldr r1, _0812FA6C @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r3, 0x3E
- adds r3, r2
- mov r12, r3
- ldrb r3, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r5, [r2, 0x2E]
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x20
- str r2, [sp, 0x8]
- ldr r2, _0812FA70 @ =0xffff1fff
- str r2, [sp, 0xC]
- movs r2, 0x64
- movs r3, 0x42
- bl CreatePokeballSpriteToReleaseMon
- ldr r0, _0812FA74 @ =sub_812FA78
- str r0, [r4]
- strh r5, [r4, 0xE]
-_0812FA5E:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FA68: .4byte gTasks+0x8
-_0812FA6C: .4byte gSprites
-_0812FA70: .4byte 0xffff1fff
-_0812FA74: .4byte sub_812FA78
- thumb_func_end sub_812F9EC
-
- thumb_func_start sub_812FA78
-sub_812FA78: @ 812FA78
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- beq _0812FAA0
- ldr r0, _0812FAFC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0x5F
- ble _0812FAA0
- ldr r0, _0812FB00 @ =sub_812FB4C
- str r0, [r1]
-_0812FAA0:
- ldr r1, _0812FAFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r3, [r2, 0xE]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- ldr r0, _0812FB04 @ =0x00003fff
- cmp r1, r0
- bgt _0812FB40
- adds r0, r3, 0x1
- movs r5, 0
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _0812FB40
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FB08 @ =gUnknown_81C5D12
- ldr r4, _0812FB0C @ =gStringVar4
- cmp r2, r4
- beq _0812FB14
- adds r0, r4, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FB10 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- b _0812FB30
- .align 2, 0
-_0812FAFC: .4byte gTasks
-_0812FB00: .4byte sub_812FB4C
-_0812FB04: .4byte 0x00003fff
-_0812FB08: .4byte gUnknown_81C5D12
-_0812FB0C: .4byte gStringVar4
-_0812FB10: .4byte gUnknown_203B108
-_0812FB14:
- ldr r0, _0812FB48 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FB30:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1D
- movs r1, 0
- bl PlayCry1
-_0812FB40:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FB48: .4byte gUnknown_203B108
- thumb_func_end sub_812FA78
-
- thumb_func_start sub_812FB4C
-sub_812FB4C: @ 812FB4C
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0812FBDA
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FB9C @ =gUnknown_81C5D4B
- ldr r5, _0812FBA0 @ =gStringVar4
- cmp r2, r5
- beq _0812FBA8
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FBA4 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812FBC4
- .align 2, 0
-_0812FB9C: .4byte gUnknown_81C5D4B
-_0812FBA0: .4byte gStringVar4
-_0812FBA4: .4byte gUnknown_203B108
-_0812FBA8:
- ldr r0, _0812FBE4 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FBC4:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FBE8 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FBEC @ =sub_812FBF0
- str r0, [r1]
-_0812FBDA:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FBE4: .4byte gUnknown_203B108
-_0812FBE8: .4byte gTasks
-_0812FBEC: .4byte sub_812FBF0
- thumb_func_end sub_812FB4C
-
- thumb_func_start sub_812FBF0
-sub_812FBF0: @ 812FBF0
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0812FC4E
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- ldr r0, _0812FC58 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldr r2, _0812FC5C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x20
- str r2, [sp, 0x8]
- ldr r2, _0812FC60 @ =0xffff1f3f
- str r2, [sp, 0xC]
- movs r2, 0x64
- movs r3, 0x42
- bl sub_804BB98
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r0, 0x30
- strh r0, [r4, 0xE]
- movs r0, 0x40
- strh r0, [r4, 0x8]
- ldr r0, _0812FC64 @ =sub_812FC68
- str r0, [r4]
-_0812FC4E:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FC58: .4byte gTasks
-_0812FC5C: .4byte gSprites
-_0812FC60: .4byte 0xffff1f3f
-_0812FC64: .4byte sub_812FC68
- thumb_func_end sub_812FBF0
-
- thumb_func_start sub_812FC68
-sub_812FC68: @ 812FC68
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0812FCA4 @ =gTasks+0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0812FCAC
- cmp r0, 0x17
- bgt _0812FC9A
- ldr r2, _0812FCA8 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_0812FC9A:
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
- b _0812FD62
- .align 2, 0
-_0812FCA4: .4byte gTasks+0x8
-_0812FCA8: .4byte gSprites
-_0812FCAC:
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r0, 0x30
- bne _0812FCD6
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0812FCE8 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_0812FCD6:
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r4, [r5, r1]
- cmp r4, 0
- beq _0812FCEC
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _0812FD62
- .align 2, 0
-_0812FCE8: .4byte gSprites
-_0812FCEC:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FD24 @ =gUnknown_81C5DBD
- ldr r5, _0812FD28 @ =gStringVar4
- cmp r2, r5
- beq _0812FD30
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FD2C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812FD4C
- .align 2, 0
-_0812FD24: .4byte gUnknown_81C5DBD
-_0812FD28: .4byte gStringVar4
-_0812FD2C: .4byte gUnknown_203B108
-_0812FD30:
- ldr r0, _0812FD6C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FD4C:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FD70 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FD74 @ =sub_812FD78
- str r0, [r1]
-_0812FD62:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FD6C: .4byte gUnknown_203B108
-_0812FD70: .4byte gTasks
-_0812FD74: .4byte sub_812FD78
- thumb_func_end sub_812FC68
-
- thumb_func_start sub_812FD78
-sub_812FD78: @ 812FD78
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r5, r0, 3
- ldr r7, _0812FDB8 @ =gTasks+0x8
- adds r6, r5, r7
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _0812FDB2
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_813144C
- movs r0, 0x30
- strh r0, [r6, 0x6]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _0812FDBC @ =sub_812FDC0
- str r1, [r0]
-_0812FDB2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FDB8: .4byte gTasks+0x8
-_0812FDBC: .4byte sub_812FDC0
- thumb_func_end sub_812FD78
-
- thumb_func_start sub_812FDC0
-sub_812FDC0: @ 812FDC0
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0812FDEC @ =gTasks+0x8
- adds r1, r0, r1
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0812FE72
- ldrh r0, [r1, 0x6]
- movs r2, 0x6
- ldrsh r4, [r1, r2]
- cmp r4, 0
- beq _0812FDF0
- subs r0, 0x1
- strh r0, [r1, 0x6]
- b _0812FE72
- .align 2, 0
-_0812FDEC: .4byte gTasks+0x8
-_0812FDF0:
- movs r2, 0x3C
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1, 0x2]
- bl sub_8131310
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FE34 @ =gUnknown_81C59D5
- ldr r5, _0812FE38 @ =gStringVar4
- cmp r2, r5
- beq _0812FE40
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FE3C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812FE5C
- .align 2, 0
-_0812FE34: .4byte gUnknown_81C59D5
-_0812FE38: .4byte gStringVar4
-_0812FE3C: .4byte gUnknown_203B108
-_0812FE40:
- ldr r0, _0812FE7C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FE5C:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FE80 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FE84 @ =sub_812FE88
- str r0, [r1]
-_0812FE72:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FE7C: .4byte gUnknown_203B108
-_0812FE80: .4byte gTasks
-_0812FE84: .4byte sub_812FE88
- thumb_func_end sub_812FDC0
-
- thumb_func_start sub_812FE88
-sub_812FE88: @ 812FE88
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0
- bne _0812FF7E
- ldr r0, _0812FF8C @ =gUnknown_8462EC8
- bl AddWindow
- ldr r1, _0812FF90 @ =gTasks
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r1
- strh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrh r4, [r5, 0x22]
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F796C
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0xE
- bl SetWindowBorderStyle
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0812FF94 @ =gUnknown_203B108
- ldr r0, [r4]
- movs r1, 0x1
- mov r9, r1
- mov r1, r9
- strb r1, [r0, 0x1C]
- ldr r0, [r4]
- movs r6, 0x2
- strb r6, [r0, 0x1D]
- ldr r0, [r4]
- movs r1, 0x3
- mov r8, r1
- mov r1, r8
- strb r1, [r0, 0x1E]
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x1C
- str r1, [sp]
- str r7, [sp, 0x4]
- ldr r1, _0812FF98 @ =gUnknown_8415D93
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x1
- bl box_print
- ldr r0, [r4]
- mov r1, r9
- strb r1, [r0, 0x1C]
- ldr r0, [r4]
- strb r6, [r0, 0x1D]
- ldr r0, [r4]
- mov r1, r8
- strb r1, [r0, 0x1E]
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x1C
- str r1, [sp]
- str r7, [sp, 0x4]
- ldr r1, _0812FF9C @ =gUnknown_8415D97
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x11
- bl box_print
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x22]
- lsls r1, 24
- lsrs r1, 24
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x1
- bl sub_810F7D8
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FFA0 @ =sub_812FFA4
- str r0, [r5]
-_0812FF7E:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FF8C: .4byte gUnknown_8462EC8
-_0812FF90: .4byte gTasks
-_0812FF94: .4byte gUnknown_203B108
-_0812FF98: .4byte gUnknown_8415D93
-_0812FF9C: .4byte gUnknown_8415D97
-_0812FFA0: .4byte sub_812FFA4
- thumb_func_end sub_812FE88
-
- thumb_func_start sub_812FFA4
-sub_812FFA4: @ 812FFA4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0812FFC8
- cmp r1, 0
- bgt _0812FFC4
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- blt _0812FFCE
- b _0812FFDC
-_0812FFC4:
- cmp r1, 0x1
- bne _0812FFCE
-_0812FFC8:
- ldr r0, _0812FFE4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- strb r1, [r0, 0x8]
-_0812FFCE:
- ldr r0, _0812FFE8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FFEC @ =sub_812FFF0
- str r0, [r1]
-_0812FFDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FFE4: .4byte gSaveBlock2Ptr
-_0812FFE8: .4byte gTasks
-_0812FFEC: .4byte sub_812FFF0
- thumb_func_end sub_812FFA4
-
- thumb_func_start sub_812FFF0
-sub_812FFF0: @ 812FFF0
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- ldr r6, _08130048 @ =gTasks+0x8
- adds r4, r5, r6
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_810F4D8
- ldrb r0, [r4, 0x1A]
- bl RemoveWindow
- movs r0, 0
- strh r0, [r4, 0x1A]
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- subs r6, 0x8
- adds r5, r6
- ldr r0, _0813004C @ =sub_8130050
- str r0, [r5]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130048: .4byte gTasks+0x8
-_0813004C: .4byte sub_8130050
- thumb_func_end sub_812FFF0
-
- thumb_func_start sub_8130050
-sub_8130050: @ 8130050
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813006C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08130070
- movs r0, 0
- movs r1, 0
- bl sub_81311F4
- b _08130078
- .align 2, 0
-_0813006C: .4byte gSaveBlock2Ptr
-_08130070:
- movs r0, 0x1
- movs r1, 0
- bl sub_81311F4
-_08130078:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81315CC
- ldr r1, _08130098 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0xE]
- ldr r1, _0813009C @ =sub_81300A0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130098: .4byte gTasks
-_0813009C: .4byte sub_81300A0
- thumb_func_end sub_8130050
-
- thumb_func_start sub_81300A0
-sub_81300A0: @ 81300A0
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _081300CC @ =gTasks+0x8
- adds r1, r0, r1
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0813014A
- ldrh r0, [r1, 0x6]
- movs r2, 0x6
- ldrsh r4, [r1, r2]
- cmp r4, 0
- beq _081300D0
- subs r0, 0x1
- strh r0, [r1, 0x6]
- b _0813014A
- .align 2, 0
-_081300CC: .4byte gTasks+0x8
-_081300D0:
- strh r4, [r1, 0x2]
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0813010C @ =gUnknown_81C5DEA
- ldr r5, _08130110 @ =gStringVar4
- cmp r2, r5
- beq _08130118
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _08130114 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _08130134
- .align 2, 0
-_0813010C: .4byte gUnknown_81C5DEA
-_08130110: .4byte gStringVar4
-_08130114: .4byte gUnknown_203B108
-_08130118:
- ldr r0, _08130154 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_08130134:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _08130158 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813015C @ =sub_8130160
- str r0, [r1]
-_0813014A:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130154: .4byte gUnknown_203B108
-_08130158: .4byte gTasks
-_0813015C: .4byte sub_8130160
- thumb_func_end sub_81300A0
-
- thumb_func_start sub_8130160
-sub_8130160: @ 8130160
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0813019A
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081301A4 @ =gUnknown_203B108
- ldr r0, [r0]
- strh r4, [r0, 0x10]
- ldr r1, _081301A8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _081301AC @ =sub_81303B4
- str r1, [r0]
-_0813019A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081301A4: .4byte gUnknown_203B108
-_081301A8: .4byte gTasks
-_081301AC: .4byte sub_81303B4
- thumb_func_end sub_8130160
-
- thumb_func_start sub_81301B0
-sub_81301B0: @ 81301B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _081301F8 @ =gTasks+0x8
- adds r4, r6, r7
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _08130218
- ldrh r2, [r4, 0x2]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- negs r1, r1
- cmp r0, r1
- ble _08130200
- subs r0, r2, 0x2
- strh r0, [r4, 0x2]
- ldr r1, _081301FC @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0x2
- movs r2, 0x2
- bl ChangeBgX
- b _08130218
- .align 2, 0
-_081301F8: .4byte gTasks+0x8
-_081301FC: .4byte gSpriteCoordOffsetX
-_08130200:
- strh r1, [r4, 0x2]
- ldr r0, _08130220 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- adds r0, r5, 0
- bl sub_8131660
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _08130224 @ =sub_8130324
- str r1, [r0]
-_08130218:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130220: .4byte gUnknown_203B108
-_08130224: .4byte sub_8130324
- thumb_func_end sub_81301B0
-
- thumb_func_start sub_8130228
-sub_8130228: @ 8130228
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _08130278 @ =gUnknown_203B108
- ldr r0, [r4]
- ldrb r1, [r0, 0x10]
- adds r0, r6, 0
- bl sub_8131660
- ldr r0, [r4]
- ldrh r4, [r0, 0x10]
- cmp r4, 0
- bne _081302A6
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0813027C @ =gUnknown_81C5DEA
- ldr r5, _08130280 @ =gStringVar4
- cmp r2, r5
- beq _08130284
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- movs r3, 0
- bl AddTextPrinterParametrized
- b _0813029C
- .align 2, 0
-_08130278: .4byte gUnknown_203B108
-_0813027C: .4byte gUnknown_81C5DEA
-_08130280: .4byte gStringVar4
-_08130284:
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- movs r3, 0
- bl AddTextPrinterParametrized
-_0813029C:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- b _08130306
-_081302A6:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _081302DC @ =gUnknown_81C5E91
- ldr r4, _081302E0 @ =gStringVar4
- cmp r2, r4
- beq _081302E4
- adds r0, r4, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParametrized
- b _081302FE
- .align 2, 0
-_081302DC: .4byte gUnknown_81C5E91
-_081302E0: .4byte gStringVar4
-_081302E4:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- movs r3, 0
- bl AddTextPrinterParametrized
-_081302FE:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08130306:
- ldr r0, _0813031C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08130320 @ =sub_8130324
- str r0, [r1]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813031C: .4byte gTasks
-_08130320: .4byte sub_8130324
- thumb_func_end sub_8130228
-
- thumb_func_start sub_8130324
-sub_8130324: @ 8130324
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0813037C @ =gTasks+0x8
- adds r5, r6, r7
- bl ProcessMenuInput
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- beq _08130388
- cmp r4, 0
- ble _081303A8
- cmp r4, 0x4
- bgt _081303A8
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5, 0x1A]
- movs r1, 0x1
- bl sub_810F4D8
- ldrb r0, [r5, 0x1A]
- bl RemoveWindow
- ldr r0, _08130380 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- subs r1, r4, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl sub_8131754
- movs r0, 0x1
- strh r0, [r5, 0x1E]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _08130384 @ =sub_8130464
- b _081303A6
- .align 2, 0
-_0813037C: .4byte gTasks+0x8
-_08130380: .4byte gUnknown_203B108
-_08130384: .4byte sub_8130464
-_08130388:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _081303B0 @ =sub_81303B4
-_081303A6:
- str r1, [r0]
-_081303A8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081303B0: .4byte sub_81303B4
- thumb_func_end sub_8130324
-
- thumb_func_start sub_81303B4
-sub_81303B4: @ 81303B4
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _081303F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0813044C
- ldr r4, _081303FC @ =gUnknown_203B108
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- movs r1, 0
- bl sub_8131754
- ldr r0, [r4]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _08130408
- ldr r0, _08130400 @ =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r2, [r1, 0x8]
- str r5, [sp]
- ldr r0, _08130404 @ =sub_8130C64
- str r0, [sp, 0x4]
- movs r0, 0
- movs r3, 0
- bl DoNamingScreen
- b _08130440
- .align 2, 0
-_081303F8: .4byte gPaletteFade
-_081303FC: .4byte gUnknown_203B108
-_08130400: .4byte gSaveBlock2Ptr
-_08130404: .4byte sub_8130C64
-_08130408:
- ldr r0, _08130454 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_810F4D8
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- ldr r0, _08130458 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, _0813045C @ =0x00003a4c
- adds r1, r0
- str r5, [sp]
- ldr r0, _08130460 @ =sub_8130C64
- str r0, [sp, 0x4]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08130440:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8131168
- bl FreeAllWindowBuffers
-_0813044C:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130454: .4byte gTasks
-_08130458: .4byte gSaveBlock1Ptr
-_0813045C: .4byte 0x00003a4c
-_08130460: .4byte sub_8130C64
- thumb_func_end sub_81303B4
-
- thumb_func_start sub_8130464
-sub_8130464: @ 8130464
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _081304A0 @ =gTasks+0x8
- adds r5, r6, r7
- ldr r0, _081304A4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08130544
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08130500
- ldr r0, _081304A8 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _081304B4
- ldr r0, _081304AC @ =gStringVar4
- ldr r1, _081304B0 @ =gUnknown_81C5E13
- bl StringExpandPlaceholders
- b _081304BC
- .align 2, 0
-_081304A0: .4byte gTasks+0x8
-_081304A4: .4byte gPaletteFade
-_081304A8: .4byte gUnknown_203B108
-_081304AC: .4byte gStringVar4
-_081304B0: .4byte gUnknown_81C5E13
-_081304B4:
- ldr r0, _081304F4 @ =gStringVar4
- ldr r1, _081304F8 @ =gUnknown_81C5EB5
- bl StringExpandPlaceholders
-_081304BC:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _081304F4 @ =gStringVar4
- ldr r0, _081304FC @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r4, 0
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- strh r4, [r5, 0x1E]
- movs r0, 0x19
- strh r0, [r5, 0x6]
- b _08130544
- .align 2, 0
-_081304F4: .4byte gStringVar4
-_081304F8: .4byte gUnknown_81C5EB5
-_081304FC: .4byte gUnknown_203B108
-_08130500:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _08130544
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r4, [r5, r1]
- cmp r4, 0
- beq _0813051C
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _08130544
-_0813051C:
- bl sub_80F796C
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0813054C @ =gUnknown_8462ED0
- str r0, [sp]
- movs r0, 0xE
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl sub_810FF60
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _08130550 @ =sub_8130554
- str r1, [r0]
-_08130544:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813054C: .4byte gUnknown_8462ED0
-_08130550: .4byte sub_8130554
- thumb_func_end sub_8130464
-
- thumb_func_start sub_8130554
-sub_8130554: @ 8130554
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r5, r0, 24
- cmp r5, 0
- beq _0813057C
- cmp r5, 0
- bgt _08130576
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _08130604
- b _0813063E
-_08130576:
- cmp r5, 0x1
- beq _08130604
- b _0813063E
-_0813057C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _081305B0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r6, r0, r1
- movs r0, 0x28
- strh r0, [r6, 0xE]
- ldr r7, _081305B4 @ =gUnknown_203B108
- ldr r0, [r7]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _081305BC
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_813144C
- ldr r0, _081305B8 @ =sub_8130650
- str r0, [r6]
- b _0813063E
- .align 2, 0
-_081305B0: .4byte gTasks
-_081305B4: .4byte gUnknown_203B108
-_081305B8: .4byte sub_8130650
-_081305BC:
- ldr r4, _081305F8 @ =gStringVar4
- ldr r1, _081305FC @ =gUnknown_81C5EC5
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r0, [r7]
- ldrb r3, [r0, 0x1F]
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _08130600 @ =sub_8130694
- str r0, [r6]
- b _0813063E
- .align 2, 0
-_081305F8: .4byte gStringVar4
-_081305FC: .4byte gUnknown_81C5EC5
-_08130600: .4byte sub_8130694
-_08130604:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08130624 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _08130630
- ldr r0, _08130628 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813062C @ =sub_8130160
- b _0813063C
- .align 2, 0
-_08130624: .4byte gUnknown_203B108
-_08130628: .4byte gTasks
-_0813062C: .4byte sub_8130160
-_08130630:
- ldr r0, _08130648 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813064C @ =sub_8130228
-_0813063C:
- str r0, [r1]
-_0813063E:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130648: .4byte gTasks
-_0813064C: .4byte sub_8130228
- thumb_func_end sub_8130554
-
- thumb_func_start sub_8130650
-sub_8130650: @ 8130650
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r6, _0813067C @ =gTasks+0x8
- adds r4, r5, r6
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813068A
- bl sub_8131310
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130680
- subs r0, r1, 0x1
- strh r0, [r4, 0x6]
- b _0813068A
- .align 2, 0
-_0813067C: .4byte gTasks+0x8
-_08130680:
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _08130690 @ =sub_81306D4
- str r1, [r0]
-_0813068A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130690: .4byte sub_81306D4
- thumb_func_end sub_8130650
-
- thumb_func_start sub_8130694
-sub_8130694: @ 8130694
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _081306C4
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_813144C
- ldr r0, _081306CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _081306D0 @ =sub_81307D0
- str r0, [r1]
-_081306C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081306CC: .4byte gTasks
-_081306D0: .4byte sub_81307D0
- thumb_func_end sub_8130694
-
- thumb_func_start sub_81306D4
-sub_81306D4: @ 81306D4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- ldr r0, _08130710 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r1, 0
- strh r1, [r4, 0xA]
- ldr r0, _08130714 @ =gSpriteCoordOffsetX
- strh r1, [r0]
- movs r0, 0x2
- bl sub_81311F4
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_81315CC
- ldr r0, _08130718 @ =sub_813071C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130710: .4byte gTasks
-_08130714: .4byte gSpriteCoordOffsetX
-_08130718: .4byte sub_813071C
- thumb_func_end sub_81306D4
-
- thumb_func_start sub_813071C
-sub_813071C: @ 813071C
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08130770 @ =gTasks+0x8
- adds r0, r1
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081307BC
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _08130774 @ =gUnknown_81C5E2E
- ldr r4, _08130778 @ =gStringVar4
- cmp r2, r4
- beq _08130780
- adds r0, r4, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0813077C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- b _0813079E
- .align 2, 0
-_08130770: .4byte gTasks+0x8
-_08130774: .4byte gUnknown_81C5E2E
-_08130778: .4byte gStringVar4
-_0813077C: .4byte gUnknown_203B108
-_08130780:
- ldr r0, _081307C4 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0813079E:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _081307C4 @ =gUnknown_203B108
- ldr r1, [r0]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- ldr r1, _081307C8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _081307CC @ =sub_81301B0
- str r1, [r0]
-_081307BC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081307C4: .4byte gUnknown_203B108
-_081307C8: .4byte gTasks
-_081307CC: .4byte sub_81301B0
- thumb_func_end sub_813071C
-
- thumb_func_start sub_81307D0
-sub_81307D0: @ 81307D0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081307FC @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08130846
- bl sub_8131310
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130800
- subs r0, r1, 0x1
- strh r0, [r4, 0x6]
- b _08130846
- .align 2, 0
-_081307FC: .4byte gTasks+0x8
-_08130800:
- ldr r0, _08130814 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08130818
- movs r0, 0
- movs r1, 0
- bl sub_81311F4
- b _08130820
- .align 2, 0
-_08130814: .4byte gSaveBlock2Ptr
-_08130818:
- movs r0, 0x1
- movs r1, 0
- bl sub_81311F4
-_08130820:
- ldr r0, _0813084C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r1, 0
- strh r1, [r4, 0xA]
- ldr r0, _08130850 @ =gSpriteCoordOffsetX
- strh r1, [r0]
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgX
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_81315CC
- ldr r0, _08130854 @ =sub_8130858
- str r0, [r4]
-_08130846:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813084C: .4byte gTasks
-_08130850: .4byte gSpriteCoordOffsetX
-_08130854: .4byte sub_8130858
- thumb_func_end sub_81307D0
-
- thumb_func_start sub_8130858
-sub_8130858: @ 8130858
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081308BC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081308B4
- ldr r4, _081308C0 @ =gStringVar4
- ldr r1, _081308C4 @ =gUnknown_81C5EF4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r0, _081308C8 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1E
- strh r0, [r5, 0xE]
- ldr r0, _081308CC @ =sub_81308D0
- str r0, [r5]
-_081308B4:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081308BC: .4byte gTasks
-_081308C0: .4byte gStringVar4
-_081308C4: .4byte gUnknown_81C5EF4
-_081308C8: .4byte gUnknown_203B108
-_081308CC: .4byte sub_81308D0
- thumb_func_end sub_8130858
-
- thumb_func_start sub_81308D0
-sub_81308D0: @ 81308D0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _0813090A
- ldr r0, _081308FC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r4, r1, r0
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130900
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0813090A
- .align 2, 0
-_081308FC: .4byte gTasks
-_08130900:
- movs r0, 0x4
- bl FadeOutBGM
- ldr r0, _08130910 @ =sub_8130914
- str r0, [r4]
-_0813090A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130910: .4byte sub_8130914
- thumb_func_end sub_81308D0
-
- thumb_func_start sub_8130914
-sub_8130914: @ 8130914
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813093C @ =gUnknown_203B108
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0x12]
- adds r0, r4, 0
- bl sub_8130A38
- adds r0, r4, 0
- bl sub_8130ADC
- adds r0, r4, 0
- bl sub_8130940
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813093C: .4byte gUnknown_203B108
- thumb_func_end sub_8130914
-
- thumb_func_start sub_8130940
-sub_8130940: @ 8130940
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _08130978 @ =gTasks+0x8
- adds r5, r4, r6
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x1
- bl SetBgAttribute
- movs r1, 0
- strh r1, [r5]
- strh r1, [r5, 0x2]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r5, 0x4]
- strh r1, [r5, 0x1E]
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0813097C @ =sub_8130980
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130978: .4byte gTasks+0x8
-_0813097C: .4byte sub_8130980
- thumb_func_end sub_8130940
-
- thumb_func_start sub_8130980
-sub_8130980: @ 8130980
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r7, r1, 3
- ldr r0, _08130A2C @ =gTasks+0x8
- mov r8, r0
- adds r5, r7, r0
- ldr r0, _08130A30 @ =gUnknown_203B108
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- ldrh r4, [r1, 0x12]
- adds r0, r4, 0
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- bne _08130A1E
- cmp r4, 0x28
- bne _081309BE
- movs r0, 0x27
- bl PlaySE
-_081309BE:
- ldrh r0, [r5, 0x4]
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r5, 0x4]
- subs r0, 0x8
- lsls r0, 16
- asrs r0, 16
- bl sub_80D8B90
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r5, 0x4]
- subs r0, 0x10
- lsls r0, 16
- asrs r0, 16
- bl sub_80D8B90
- movs r1, 0xF0
- lsls r1, 7
- movs r2, 0xA8
- lsls r2, 7
- movs r3, 0x54
- str r3, [sp]
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r0, 16
- asrs r0, 16
- str r0, [sp, 0x8]
- str r6, [sp, 0xC]
- movs r0, 0x2
- movs r3, 0x78
- bl SetBgAffine
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x60
- bgt _08130A1E
- movs r0, 0x1
- strh r0, [r5, 0x1E]
- movs r0, 0x24
- strh r0, [r5]
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _08130A34 @ =sub_8130BA8
- str r1, [r0]
-_08130A1E:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130A2C: .4byte gTasks+0x8
-_08130A30: .4byte gUnknown_203B108
-_08130A34: .4byte sub_8130BA8
- thumb_func_end sub_8130980
-
- thumb_func_start sub_8130A38
-sub_8130A38: @ 8130A38
- push {lr}
- sub sp, 0x4
- ldr r0, _08130A74 @ =sub_8130A80
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130A78 @ =gTasks+0x8
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- strh r0, [r1, 0x2]
- strh r0, [r1, 0x4]
- strh r0, [r1, 0x1E]
- ldr r0, _08130A7C @ =0xffff0fcf
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08130A74: .4byte sub_8130A80
-_08130A78: .4byte gTasks+0x8
-_08130A7C: .4byte 0xffff0fcf
- thumb_func_end sub_8130A38
-
- thumb_func_start sub_8130A80
-sub_8130A80: @ 8130A80
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08130AB8 @ =gTasks+0x8
- adds r2, r0, r1
- ldr r0, _08130ABC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08130AD4
- ldrh r0, [r2, 0x2]
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- cmp r1, 0
- beq _08130AC0
- adds r0, r4, 0
- bl DestroyTask
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8131168
- b _08130AD4
- .align 2, 0
-_08130AB8: .4byte gTasks+0x8
-_08130ABC: .4byte gPaletteFade
-_08130AC0:
- adds r0, 0x1
- strh r0, [r2, 0x2]
- movs r0, 0xF0
- lsls r0, 8
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08130AD4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8130A80
-
- thumb_func_start sub_8130ADC
-sub_8130ADC: @ 8130ADC
- push {lr}
- ldr r0, _08130B08 @ =sub_8130B10
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130B0C @ =gTasks+0x8
- adds r1, r0
- movs r2, 0x8
- strh r2, [r1]
- movs r0, 0
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- strh r0, [r1, 0x1C]
- strh r0, [r1, 0x1E]
- pop {r0}
- bx r0
- .align 2, 0
-_08130B08: .4byte sub_8130B10
-_08130B0C: .4byte gTasks+0x8
- thumb_func_end sub_8130ADC
-
- thumb_func_start sub_8130B10
-sub_8130B10: @ 8130B10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08130B30 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130B34
- subs r0, r1, 0x1
- strh r0, [r4]
- b _08130B96
- .align 2, 0
-_08130B30: .4byte gTasks+0x8
-_08130B34:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _08130B4A
- ldrh r1, [r4, 0x4]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130B4A
- subs r0, r1, 0x1
- strh r0, [r4, 0x4]
-_08130B4A:
- ldrb r2, [r4, 0x1C]
- ldr r7, _08130B9C @ =0x00007fff
- movs r0, 0x40
- movs r1, 0x20
- adds r3, r7, 0
- bl BlendPalette
- ldrh r1, [r4, 0x1C]
- adds r1, 0x1
- strh r1, [r4, 0x1C]
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- strh r0, [r4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xE
- ble _08130B96
- movs r2, 0
- ldr r6, _08130BA0 @ =gPlttBufferFaded
- adds r3, r7, 0
- ldr r4, _08130BA4 @ =gPlttBufferUnfaded
-_08130B78:
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 1
- adds r1, r0, r6
- strh r3, [r1]
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _08130B78
- adds r0, r5, 0
- bl DestroyTask
-_08130B96:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130B9C: .4byte 0x00007fff
-_08130BA0: .4byte gPlttBufferFaded
-_08130BA4: .4byte gPlttBufferUnfaded
- thumb_func_end sub_8130B10
-
- thumb_func_start sub_8130BA8
-sub_8130BA8: @ 8130BA8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08130BCC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08130BD0
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _08130BE2
- .align 2, 0
-_08130BCC: .4byte gTasks
-_08130BD0:
- str r1, [sp]
- movs r0, 0x30
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08130BEC @ =sub_8130BF0
- str r0, [r4]
-_08130BE2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130BEC: .4byte sub_8130BF0
- thumb_func_end sub_8130BA8
-
- thumb_func_start sub_8130BF0
-sub_8130BF0: @ 8130BF0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08130C14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08130C10
- ldr r0, _08130C18 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _08130C1C @ =sub_8130C20
- str r0, [r1]
-_08130C10:
- pop {r0}
- bx r0
- .align 2, 0
-_08130C14: .4byte gPaletteFade
-_08130C18: .4byte gTasks
-_08130C1C: .4byte sub_8130C20
- thumb_func_end sub_8130BF0
-
- thumb_func_start sub_8130C20
-sub_8130C20: @ 8130C20
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl FreeAllWindowBuffers
- bl sub_8044D80
- ldr r5, _08130C58 @ =gUnknown_203B108
- ldr r0, [r5]
- bl Free
- movs r0, 0
- str r0, [r5]
- ldr r2, _08130C5C @ =gTextFlags
- ldrb r1, [r2]
- subs r0, 0x2
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08130C60 @ =CB2_NewGame
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130C58: .4byte gUnknown_203B108
-_08130C5C: .4byte gTextFlags
-_08130C60: .4byte CB2_NewGame
- thumb_func_end sub_8130C20
-
- thumb_func_start sub_8130C64
-sub_8130C64: @ 8130C64
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r0, _08130C84 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08130C78
- b _08130F10
-_08130C78:
- lsls r0, 2
- ldr r1, _08130C88 @ =_08130C8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130C84: .4byte gMain
-_08130C88: .4byte _08130C8C
- .align 2, 0
-_08130C8C:
- .4byte _08130CAC
- .4byte _08130D18
- .4byte _08130D78
- .4byte _08130DB2
- .4byte _08130DD0
- .4byte _08130DE8
- .4byte _08130E38
- .4byte _08130EB8
-_08130CAC:
- movs r0, 0
- bl SetVBlankCallback
- add r1, sp, 0x8
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08130D04 @ =0x040000d4
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08130D08 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0xC]
- add r0, sp, 0xC
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08130D0C @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x8
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _08130D10 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _08130D14 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl remove_some_task
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl reset_temp_tile_data_buffers
- b _08130F10
- .align 2, 0
-_08130D04: .4byte 0x040000d4
-_08130D08: .4byte 0x8100c000
-_08130D0C: .4byte 0x85000100
-_08130D10: .4byte 0x05000002
-_08130D14: .4byte 0x810001ff
-_08130D18:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08130D70 @ =gUnknown_8462E58
- movs r0, 0x1
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, _08130D74 @ =gUnknown_203B108
- ldr r1, [r4]
- movs r0, 0xE1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0xC1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- b _08130F10
- .align 2, 0
-_08130D70: .4byte gUnknown_8462E58
-_08130D74: .4byte gUnknown_203B108
-_08130D78:
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- b _08130F10
-_08130DB2:
- bl FreeAllWindowBuffers
- bl sub_80F6C6C
- bl sub_80F6C98
- ldr r0, _08130DCC @ =gUnknown_8460568
- movs r1, 0
- movs r2, 0xE0
- bl LoadPalette
- b _08130F10
- .align 2, 0
-_08130DCC: .4byte gUnknown_8460568
-_08130DD0:
- ldr r1, _08130DE4 @ =gUnknown_8460CA4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _08130F10
- .align 2, 0
-_08130DE4: .4byte gUnknown_8460CA4
-_08130DE8:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- beq _08130DF4
- b _08130F1E
-_08130DF4:
- movs r5, 0x1E
- str r5, [sp]
- movs r4, 0x14
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- ldr r1, _08130E34 @ =gUnknown_8460CE8
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- b _08130F10
- .align 2, 0
-_08130E34: .4byte gUnknown_8460CE8
-_08130E38:
- ldr r0, _08130E5C @ =sub_8130464
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08130E60 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _08130E72
- ldr r0, _08130E64 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08130E68
- movs r0, 0
- b _08130E6A
- .align 2, 0
-_08130E5C: .4byte sub_8130464
-_08130E60: .4byte gUnknown_203B108
-_08130E64: .4byte gSaveBlock2Ptr
-_08130E68:
- movs r0, 0x1
-_08130E6A:
- movs r1, 0
- bl sub_81311F4
- b _08130E7A
-_08130E72:
- movs r0, 0x2
- movs r1, 0
- bl sub_81311F4
-_08130E7A:
- ldr r0, _08130EA8 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldr r0, _08130EAC @ =0x0000ffc4
- strh r0, [r4, 0xA]
- ldr r1, _08130EB0 @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- adds r0, 0x3C
- strh r0, [r1]
- ldr r1, _08130EB4 @ =0xffffc400
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgX
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8130FD4
- movs r0, 0x1
- strh r0, [r4, 0x26]
- b _08130F10
- .align 2, 0
-_08130EA8: .4byte gTasks
-_08130EAC: .4byte 0x0000ffc4
-_08130EB0: .4byte gSpriteCoordOffsetX
-_08130EB4: .4byte 0xffffc400
-_08130EB8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x1
- bl EnableInterrupts
- ldr r0, _08130F04 @ =sub_812EAFC
- bl SetVBlankCallback
- ldr r2, _08130F08 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08130F0C @ =sub_812EB10
- bl SetMainCallback2
- b _08130F1E
- .align 2, 0
-_08130F04: .4byte sub_812EAFC
-_08130F08: .4byte gTextFlags
-_08130F0C: .4byte sub_812EB10
-_08130F10:
- ldr r1, _08130F28 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08130F1E:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130F28: .4byte gMain
- thumb_func_end sub_8130C64
-
- thumb_func_start sub_8130F2C
-sub_8130F2C: @ 8130F2C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08130FA0 @ =gUnknown_8235194
- movs r0, 0
- bl sub_8044E00
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1D
- bl DecompressPicFromTable
- ldr r0, _08130FA4 @ =gUnknown_82373F4
- bl sub_800F078
- movs r0, 0x1D
- movs r1, 0
- bl sub_803F7D4
- ldr r0, _08130FA8 @ =gMultiuseSpriteTemplate
- movs r1, 0x60
- movs r2, 0x60
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08130FAC @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r1, r2, r1
- ldr r3, _08130FB0 @ =SpriteCallbackDummy
- str r3, [r1]
- adds r2, r4
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- orrs r1, r3
- strb r1, [r2]
- ldr r2, _08130FB4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130FA0: .4byte gUnknown_8235194
-_08130FA4: .4byte gUnknown_82373F4
-_08130FA8: .4byte gMultiuseSpriteTemplate
-_08130FAC: .4byte gSprites
-_08130FB0: .4byte SpriteCallbackDummy
-_08130FB4: .4byte gTasks
- thumb_func_end sub_8130F2C
-
- thumb_func_start sub_8130FB8
-sub_8130FB8: @ 8130FB8
- ldr r3, _08130FD0 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x2B
- ldrb r1, [r1]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_08130FD0: .4byte gSprites
- thumb_func_end sub_8130FB8
-
- thumb_func_start sub_8130FD4
-sub_8130FD4: @ 8130FD4
- 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
- lsls r1, 24
- lsrs r1, 24
- movs r4, 0
- cmp r1, 0
- beq _08130FF4
- cmp r1, 0x1
- beq _081310C8
- b _08131146
-_08130FF4:
- ldr r4, _081310B0 @ =gUnknown_8462EFC
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r0, r4, 0
- adds r0, 0x8
- bl LoadCompressedObjectPic
- adds r4, 0x10
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r0, _081310B4 @ =gUnknown_8462F1C
- bl LoadSpritePalette
- ldr r0, _081310B8 @ =gUnknown_846302C
- mov r8, r0
- movs r1, 0x10
- movs r2, 0x11
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _081310BC @ =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, _081310C0 @ =gTasks
- mov r1, r9
- lsls r4, r1, 2
- add r4, r9
- lsls r4, 3
- adds r4, r0
- strh r7, [r4, 0x16]
- mov r0, r8
- adds r0, 0x18
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r2, r1, r6
- ldrb r3, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r3
- strb r0, [r2, 0x5]
- ldrh r0, [r4, 0x16]
- strh r0, [r2, 0x2E]
- movs r2, 0x1C
- adds r2, r6
- mov r10, r2
- add r1, r10
- ldr r3, _081310C4 @ =sub_8130FB8
- mov r9, r3
- str r3, [r1]
- strh r7, [r4, 0x18]
- movs r0, 0x30
- add r8, r0
- mov r0, r8
- movs r1, 0x18
- movs r2, 0xD
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, r6
- ldrb r1, [r6, 0x5]
- ands r5, r1
- strb r5, [r6, 0x5]
- ldrh r1, [r4, 0x16]
- strh r1, [r6, 0x2E]
- add r0, r10
- mov r1, r9
- str r1, [r0]
- strh r7, [r4, 0x1A]
- b _08131146
- .align 2, 0
-_081310B0: .4byte gUnknown_8462EFC
-_081310B4: .4byte gUnknown_8462F1C
-_081310B8: .4byte gUnknown_846302C
-_081310BC: .4byte gSprites
-_081310C0: .4byte gTasks
-_081310C4: .4byte sub_8130FB8
-_081310C8:
- ldr r0, _08131154 @ =gUnknown_8462F14
- bl LoadCompressedObjectPic
- ldr r0, _08131158 @ =gUnknown_8462F24
- bl LoadSpritePalette
- mov r2, r9
- lsls r5, r2, 2
- ldr r3, _0813115C @ =gTasks+0x8
- mov r8, r3
- ldr r6, _08131160 @ =gSprites
-_081310DE:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _08131164 @ =gUnknown_8462F50
- adds r0, r1
- lsls r1, r4, 21
- movs r2, 0xB0
- lsls r2, 15
- adds r1, r2
- asrs r1, 16
- movs r2, 0x70
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r2, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r2, 0x5]
- adds r3, r2, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0x7
- lsls r1, 1
- mov r2, r9
- adds r0, r5, r2
- lsls r0, 3
- adds r1, r0
- add r1, r8
- strh r7, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081310DE
-_08131146:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131154: .4byte gUnknown_8462F14
-_08131158: .4byte gUnknown_8462F24
-_0813115C: .4byte gTasks+0x8
-_08131160: .4byte gSprites
-_08131164: .4byte gUnknown_8462F50
- thumb_func_end sub_8130FD4
-
- thumb_func_start sub_8131168
-sub_8131168: @ 8131168
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r4, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r7, _081311AC @ =gTasks+0x8
-_0813117C:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r5
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081311B0 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0813117C
- cmp r6, 0
- beq _081311B4
- cmp r6, 0x1
- beq _081311DC
- b _081311EC
- .align 2, 0
-_081311AC: .4byte gTasks+0x8
-_081311B0: .4byte gSprites
-_081311B4:
- ldr r0, _081311D0 @ =0x00001003
- bl FreeSpriteTilesByTag
- ldr r0, _081311D4 @ =0x00001002
- bl FreeSpriteTilesByTag
- ldr r4, _081311D8 @ =0x00001001
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- b _081311EC
- .align 2, 0
-_081311D0: .4byte 0x00001003
-_081311D4: .4byte 0x00001002
-_081311D8: .4byte 0x00001001
-_081311DC:
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_081311EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8131168
-
- thumb_func_start sub_81311F4
-sub_81311F4: @ 81311F4
- push {r4-r6,lr}
- sub sp, 0x24
- lsls r0, 16
- lsrs r0, 16
- adds r2, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- cmp r0, 0x1
- beq _08131230
- cmp r0, 0x1
- bgt _08131210
- cmp r0, 0
- beq _0813121A
- b _081312F6
-_08131210:
- cmp r2, 0x2
- beq _08131248
- cmp r2, 0x3
- beq _0813126C
- b _081312F6
-_0813121A:
- ldr r0, _08131228 @ =gUnknown_84615FC
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _0813122C @ =gUnknown_846163C
- b _08131254
- .align 2, 0
-_08131228: .4byte gUnknown_84615FC
-_0813122C: .4byte gUnknown_846163C
-_08131230:
- ldr r0, _08131240 @ =gUnknown_8460ED4
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08131244 @ =gUnknown_8460F14
- b _08131254
- .align 2, 0
-_08131240: .4byte gUnknown_8460ED4
-_08131244: .4byte gUnknown_8460F14
-_08131248:
- ldr r0, _08131260 @ =gUnknown_84623AC
- movs r1, 0x60
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08131264 @ =gUnknown_84623EC
-_08131254:
- ldr r2, _08131268 @ =0x06000600
- adds r1, r4, r2
- bl LZ77UnCompVram
- b _08131280
- .align 2, 0
-_08131260: .4byte gUnknown_84623AC
-_08131264: .4byte gUnknown_84623EC
-_08131268: .4byte 0x06000600
-_0813126C:
- ldr r0, _08131300 @ =gUnknown_8461CD4
- movs r1, 0x60
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08131304 @ =gUnknown_8461D14
- ldr r2, _08131308 @ =0x06000600
- adds r1, r4, r2
- bl LZ77UnCompVram
-_08131280:
- movs r0, 0x60
- bl AllocZeroed
- ldr r2, _0813130C @ =gUnknown_203B108
- ldr r1, [r2]
- str r0, [r1, 0x4]
- movs r1, 0
- lsrs r6, r4, 6
-_08131290:
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r0, r1
- strb r1, [r0]
- adds r1, 0x1
- cmp r1, 0x5F
- bls _08131290
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r5, 0x10
- str r5, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r4, _0813130C @ =gUnknown_203B108
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- movs r3, 0x8
- str r3, [sp]
- movs r2, 0xC
- str r2, [sp, 0x4]
- movs r0, 0xB
- str r0, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- str r3, [sp, 0x10]
- str r2, [sp, 0x14]
- str r5, [sp, 0x18]
- adds r0, r6, 0
- adds r0, 0x18
- str r0, [sp, 0x1C]
- movs r5, 0
- str r5, [sp, 0x20]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyRectToBgTilemapBufferRect
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- bl Free
- ldr r0, [r4]
- str r5, [r0, 0x4]
-_081312F6:
- add sp, 0x24
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131300: .4byte gUnknown_8461CD4
-_08131304: .4byte gUnknown_8461D14
-_08131308: .4byte 0x06000600
-_0813130C: .4byte gUnknown_203B108
- thumb_func_end sub_81311F4
-
- thumb_func_start sub_8131310
-sub_8131310: @ 8131310
- push {lr}
- sub sp, 0xC
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0x10
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_8131310
-
- thumb_func_start sub_8131338
-sub_8131338: @ 8131338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r1, _081313A8 @ =gTasks
- lsls r0, r6, 2
- mov r9, r0
- adds r0, r6
- lsls r5, r0, 3
- adds r2, r5, r1
- ldrh r3, [r2, 0xA]
- movs r7, 0xA
- ldrsh r0, [r2, r7]
- mov r8, r1
- cmp r0, 0
- bne _081313B0
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r8
- movs r0, 0x1
- strh r0, [r1, 0xC]
- adds r0, r6, 0
- bl DestroyTask
- ldr r6, _081313AC @ =gSprites
- adds r2, r5, 0
- mov r5, r8
- adds r5, 0x8
- movs r3, 0x4
-_08131380:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r2
- adds r0, r5
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08131380
- b _0813143A
- .align 2, 0
-_081313A8: .4byte gTasks
-_081313AC: .4byte gSprites
-_081313B0:
- ldrh r1, [r2, 0x10]
- movs r7, 0x10
- ldrsh r0, [r2, r7]
- cmp r0, 0
- beq _081313C0
- subs r0, r1, 0x1
- strh r0, [r2, 0x10]
- b _0813143A
-_081313C0:
- ldrh r0, [r2, 0xE]
- strh r0, [r2, 0x10]
- subs r1, r3, 0x1
- strh r1, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- lsls r1, 16
- asrs r1, 16
- mov r12, r9
- cmp r1, 0x8
- bne _0813141E
- adds r7, r5, 0
- movs r0, 0x8
- add r0, r8
- mov r10, r0
- movs r5, 0x1
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
-_081313E8:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r7
- add r0, r10
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08131448 @ =gSprites
- adds r2, r0
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r1, r3, 29
- lsrs r1, 31
- eors r1, r5
- ands r1, r5
- lsls r1, 2
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081313E8
-_0813141E:
- mov r1, r12
- adds r0, r1, r6
- lsls r0, 3
- add r0, r8
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- lsls r1, 8
- ldrh r0, [r0, 0xA]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_0813143A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131448: .4byte gSprites
- thumb_func_end sub_8131338
-
- thumb_func_start sub_813144C
-sub_813144C: @ 813144C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- movs r7, 0
- ldr r1, _081314D0 @ =0x00001244
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r0, _081314D4 @ =gTasks
- mov r8, r0
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r0, r5, r0
- strh r7, [r0, 0xC]
- ldr r0, _081314D8 @ =sub_8131338
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- mov r1, r8
- adds r0, r2, r1
- strh r4, [r0, 0x8]
- movs r1, 0x10
- strh r1, [r0, 0xA]
- strh r7, [r0, 0xC]
- strh r6, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r3, r8
- adds r3, 0x8
-_081314AC:
- adds r0, r7, 0x7
- lsls r0, 1
- adds r1, r0, r2
- adds r1, r3
- adds r0, r5
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _081314AC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081314D0: .4byte 0x00001244
-_081314D4: .4byte gTasks
-_081314D8: .4byte sub_8131338
- thumb_func_end sub_813144C
-
- thumb_func_start sub_81314DC
-sub_81314DC: @ 81314DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r1, _08131528 @ =gTasks
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- mov r9, r0
- adds r2, r0, r1
- ldrh r3, [r2, 0xA]
- movs r7, 0xA
- ldrsh r0, [r2, r7]
- mov r12, r1
- cmp r0, 0x10
- bne _08131530
- ldr r0, _0813152C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081315BA
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r12
- movs r0, 0x1
- strh r0, [r1, 0xC]
- adds r0, r6, 0
- bl DestroyTask
- b _081315BA
- .align 2, 0
-_08131528: .4byte gTasks
-_0813152C: .4byte gPaletteFade
-_08131530:
- ldrh r1, [r2, 0x10]
- movs r7, 0x10
- ldrsh r0, [r2, r7]
- cmp r0, 0
- beq _08131540
- subs r0, r1, 0x1
- strh r0, [r2, 0x10]
- b _081315BA
-_08131540:
- ldrh r0, [r2, 0xE]
- strh r0, [r2, 0x10]
- adds r1, r3, 0x2
- strh r1, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- subs r0, 0x2
- strh r0, [r2, 0xC]
- lsls r1, 16
- asrs r1, 16
- mov r8, r5
- cmp r1, 0x8
- bne _0813159E
- mov r7, r9
- movs r0, 0x8
- add r0, r12
- mov r10, r0
- movs r5, 0x1
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
-_08131568:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r7
- add r0, r10
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081315C8 @ =gSprites
- adds r2, r0
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r1, r3, 29
- lsrs r1, 31
- eors r1, r5
- ands r1, r5
- lsls r1, 2
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08131568
-_0813159E:
- mov r1, r8
- adds r0, r1, r6
- lsls r0, 3
- add r0, r12
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- lsls r1, 8
- ldrh r0, [r0, 0xA]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_081315BA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081315C8: .4byte gSprites
- thumb_func_end sub_81314DC
-
- thumb_func_start sub_81315CC
-sub_81315CC: @ 81315CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- movs r7, 0
- ldr r1, _08131654 @ =0x00001244
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r0, _08131658 @ =gTasks
- mov r8, r0
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r0, r5, r0
- strh r7, [r0, 0xC]
- ldr r0, _0813165C @ =sub_81314DC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- mov r1, r8
- adds r0, r2, r1
- strh r4, [r0, 0x8]
- strh r7, [r0, 0xA]
- movs r1, 0x10
- strh r1, [r0, 0xC]
- strh r6, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r3, r8
- adds r3, 0x8
-_0813162E:
- adds r0, r7, 0x7
- lsls r0, 1
- adds r1, r0, r2
- adds r1, r3
- adds r0, r5
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _0813162E
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131654: .4byte 0x00001244
-_08131658: .4byte gTasks
-_0813165C: .4byte sub_81314DC
- thumb_func_end sub_81315CC
-
- thumb_func_start sub_8131660
-sub_8131660: @ 8131660
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, _081316DC @ =gTasks+0x8
- adds r7, r4, r5
- ldr r0, _081316E0 @ =gUnknown_8462ED8
- bl AddWindow
- strh r0, [r7, 0x1A]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrb r6, [r7, 0x1A]
- bl sub_80F796C
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- movs r1, 0x1
- movs r3, 0xE
- bl SetWindowBorderStyle
- adds r5, r4
- ldrb r0, [r5, 0x1A]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldrb r0, [r7, 0x1A]
- ldr r2, _081316E4 @ =gUnknown_81C574F
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x8
- bl AddTextPrinterParameterized
- mov r0, r8
- cmp r0, 0
- bne _081316F4
- ldr r0, _081316E8 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- ldr r6, _081316EC @ =gUnknown_84630D8
- cmp r0, 0
- bne _081316F6
- ldr r6, _081316F0 @ =gUnknown_846308C
- b _081316F6
- .align 2, 0
-_081316DC: .4byte gTasks+0x8
-_081316E0: .4byte gUnknown_8462ED8
-_081316E4: .4byte gUnknown_81C574F
-_081316E8: .4byte gSaveBlock2Ptr
-_081316EC: .4byte gUnknown_84630D8
-_081316F0: .4byte gUnknown_846308C
-_081316F4:
- ldr r6, _08131750 @ =gUnknown_8463124
-_081316F6:
- movs r4, 0
- movs r5, 0
-_081316FA:
- ldrb r0, [r7, 0x1A]
- lsls r1, r4, 2
- adds r1, r6
- ldr r2, [r1]
- adds r4, 0x1
- lsls r1, r4, 4
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x8
- bl AddTextPrinterParameterized
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0x3
- bls _081316FA
- ldrb r0, [r7, 0x1A]
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0x5
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x1
- bl sub_810F7D8
- ldrb r0, [r7, 0x1A]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131750: .4byte gUnknown_8463124
- thumb_func_end sub_8131660
-
- thumb_func_start sub_8131754
-sub_8131754: @ 8131754
- push {r4,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r0, 0
- bne _081317A0
- ldr r0, _08131770 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08131778
- ldr r4, _08131774 @ =gUnknown_846308C
- b _0813177A
- .align 2, 0
-_08131770: .4byte gSaveBlock2Ptr
-_08131774: .4byte gUnknown_846308C
-_08131778:
- ldr r4, _08131798 @ =gUnknown_84630D8
-_0813177A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x13
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 14
- adds r0, r4
- ldr r3, [r0]
- ldr r0, _0813179C @ =gSaveBlock2Ptr
- ldr r4, [r0]
- b _081317B0
- .align 2, 0
-_08131798: .4byte gUnknown_84630D8
-_0813179C: .4byte gSaveBlock2Ptr
-_081317A0:
- ldr r1, _081317EC @ =gUnknown_8463124
- lsls r0, r2, 2
- adds r0, r1
- ldr r3, [r0]
- ldr r0, _081317F0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _081317F4 @ =0x00003a4c
- adds r4, r0, r1
-_081317B0:
- movs r2, 0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _081317D2
-_081317B8:
- adds r1, r4, r2
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bhi _081317D2
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081317B8
-_081317D2:
- cmp r2, 0x7
- bhi _081317E6
- movs r1, 0xFF
-_081317D8:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081317D8
-_081317E6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081317EC: .4byte gUnknown_8463124
-_081317F0: .4byte gSaveBlock1Ptr
-_081317F4: .4byte 0x00003a4c
- thumb_func_end sub_8131754
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/option_menu.s b/asm/option_menu.s
index 7ee737053..bf626caba 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -93,7 +93,7 @@ _080883FA:
cmp r3, 0x5
bls _080883E6
movs r0, 0xD
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0808842C @ =sub_8088454
bl SetMainCallback2
pop {r4-r6}
@@ -409,7 +409,7 @@ sub_8088680: @ 8088680
movs r1, 0
adds r2, r4, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x2
@@ -431,7 +431,7 @@ sub_80886D4: @ 80886D4
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_80886D4
@@ -906,7 +906,7 @@ _08088A72:
movs r1, 0x2
mov r2, r8
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
b _08088ADE
.align 2, 0
_08088A94: .4byte gUnknown_83CC354
@@ -940,7 +940,7 @@ _08088A9C:
movs r1, 0x2
mov r2, r8
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
_08088ADE:
movs r0, 0x1
bl PutWindowTilemap
@@ -967,7 +967,7 @@ sub_8088B00: @ 8088B00
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r1, _08088BBC @ =gUnknown_3005020
+ ldr r1, _08088BBC @ =gFieldCallback
ldr r0, _08088BC0 @ =sub_807DF64
str r0, [r1]
ldr r0, _08088BC4 @ =gMain
@@ -1050,7 +1050,7 @@ sub_8088B00: @ 8088B00
pop {r0}
bx r0
.align 2, 0
-_08088BBC: .4byte gUnknown_3005020
+_08088BBC: .4byte gFieldCallback
_08088BC0: .4byte sub_807DF64
_08088BC4: .4byte gMain
_08088BC8: .4byte gSaveBlock2Ptr
diff --git a/asm/overworld.s b/asm/overworld.s
index 2b3ca139d..ee0e8aa6d 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -72,7 +72,7 @@ sub_8054C48: @ 8054C48
bl sub_8054C04
adds r4, r0, 0
ldr r5, _08054C6C @ =gStringVar1
- bl sub_80CBF04
+ bl CountDigits
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -118,7 +118,7 @@ _08054C9C: .4byte gUnknown_826D29E
thumb_func_start sub_8054CA0
sub_8054CA0: @ 8054CA0
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -154,10 +154,10 @@ _08054D00: .4byte 0x00000808
_08054D04: .4byte 0x0000404d
thumb_func_end sub_8054CA0
- thumb_func_start sub_8054D08
-sub_8054D08: @ 8054D08
+ thumb_func_start Overworld_ResetStateAfterTeleport
+Overworld_ResetStateAfterTeleport: @ 8054D08
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -191,12 +191,12 @@ _08054D60: .4byte 0x00000805
_08054D64: .4byte 0x00000806
_08054D68: .4byte 0x00000808
_08054D6C: .4byte 0x0000404d
- thumb_func_end sub_8054D08
+ thumb_func_end Overworld_ResetStateAfterTeleport
thumb_func_start sub_8054D70
sub_8054D70: @ 8054D70
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -235,7 +235,7 @@ _08054DD4: .4byte 0x0000404d
thumb_func_start sub_8054DD8
sub_8054DD8: @ 8054DD8
push {lr}
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
@@ -722,7 +722,7 @@ get_mapdata_header: @ 8055170
.align 2, 0
_08055180: .4byte gSaveBlock1Ptr
_08055184:
- ldr r0, _08055194 @ =gUnknown_834EB8C
+ ldr r0, _08055194 @ =gMapLayouts
subs r1, 0x1
lsls r1, 2
adds r1, r0
@@ -731,7 +731,7 @@ _0805518E:
pop {r1}
bx r1
.align 2, 0
-_08055194: .4byte gUnknown_834EB8C
+_08055194: .4byte gMapLayouts
thumb_func_end get_mapdata_header
thumb_func_start warp_shift
@@ -825,7 +825,7 @@ _08055232:
get_mapheader_by_bank_and_number: @ 8055238
lsls r0, 16
lsls r1, 16
- ldr r2, _0805524C @ =gUnknown_83526A8
+ ldr r2, _0805524C @ =gMapGroups
lsrs r0, 14
adds r0, r2
ldr r0, [r0]
@@ -834,7 +834,7 @@ get_mapheader_by_bank_and_number: @ 8055238
ldr r0, [r1]
bx lr
.align 2, 0
-_0805524C: .4byte gUnknown_83526A8
+_0805524C: .4byte gMapGroups
thumb_func_end get_mapheader_by_bank_and_number
thumb_func_start warp1_get_mapheader
@@ -1084,8 +1084,8 @@ saved_warp2_set: @ 80553E8
_08055418: .4byte gSaveBlock1Ptr
thumb_func_end saved_warp2_set
- thumb_func_start saved_warp2_set_2
-saved_warp2_set_2: @ 805541C
+ thumb_func_start SetDynamicWarpWithCoords
+SetDynamicWarpWithCoords: @ 805541C
push {r4,r5,lr}
sub sp, 0x8
ldr r4, [sp, 0x14]
@@ -1112,7 +1112,7 @@ saved_warp2_set_2: @ 805541C
bx r0
.align 2, 0
_08055450: .4byte gSaveBlock1Ptr
- thumb_func_end saved_warp2_set_2
+ thumb_func_end SetDynamicWarpWithCoords
thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1
copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454
@@ -1178,15 +1178,15 @@ _080554B8: .4byte gSaveBlock1Ptr
sub_80554BC: @ 80554BC
push {lr}
ldr r0, _080554C8 @ =gUnknown_2031DBC
- bl sub_80BFCD0
+ bl SetBlackoutRespawnWarpAndHealerNpc
pop {r0}
bx r0
.align 2, 0
_080554C8: .4byte gUnknown_2031DBC
thumb_func_end sub_80554BC
- thumb_func_start sub_80554CC
-sub_80554CC: @ 80554CC
+ thumb_func_start SetLastHealLocationWarp
+SetLastHealLocationWarp: @ 80554CC
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
@@ -1218,7 +1218,7 @@ _08055500:
bx r0
.align 2, 0
_08055508: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80554CC
+ thumb_func_end SetLastHealLocationWarp
thumb_func_start sub_805550C
sub_805550C: @ 805550C
@@ -1281,7 +1281,7 @@ sub_805550C: @ 805550C
lsls r4, 24
asrs r4, 24
str r4, [sp]
- bl sub_80555A0
+ bl SetEscapeWarp
_08055590:
add sp, 0x4
pop {r4-r7}
@@ -1292,8 +1292,8 @@ _08055598: .4byte gUnknown_2031DBC
_0805559C: .4byte gSaveBlock1Ptr
thumb_func_end sub_805550C
- thumb_func_start sub_80555A0
-sub_80555A0: @ 80555A0
+ thumb_func_start SetEscapeWarp
+SetEscapeWarp: @ 80555A0
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -1325,7 +1325,7 @@ sub_80555A0: @ 80555A0
bx r0
.align 2, 0
_080555DC: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80555A0
+ thumb_func_end SetEscapeWarp
thumb_func_start sub_80555E0
sub_80555E0: @ 80555E0
@@ -1342,8 +1342,8 @@ _080555F0: .4byte gUnknown_2031DBC
_080555F4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80555E0
- thumb_func_start sub_80555F8
-sub_80555F8: @ 80555F8
+ thumb_func_start SetFixedDiveWarp
+SetFixedDiveWarp: @ 80555F8
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -1373,7 +1373,7 @@ sub_80555F8: @ 80555F8
bx r0
.align 2, 0
_08055630: .4byte gUnknown_2031DC4
- thumb_func_end sub_80555F8
+ thumb_func_end SetFixedDiveWarp
thumb_func_start warp1_set_to_warp2
warp1_set_to_warp2: @ 8055634
@@ -1389,8 +1389,8 @@ _08055644: .4byte gUnknown_2031DBC
_08055648: .4byte gUnknown_2031DC4
thumb_func_end warp1_set_to_warp2
- thumb_func_start sub_805564C
-sub_805564C: @ 805564C
+ thumb_func_start SetFixedHoleWarp
+SetFixedHoleWarp: @ 805564C
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -1420,10 +1420,10 @@ sub_805564C: @ 805564C
bx r0
.align 2, 0
_08055684: .4byte gUnknown_2031DCC
- thumb_func_end sub_805564C
+ thumb_func_end SetFixedHoleWarp
- thumb_func_start sub_8055688
-sub_8055688: @ 8055688
+ thumb_func_start SetWarpDestinationToFixedHoleWarp
+SetWarpDestinationToFixedHoleWarp: @ 8055688
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 16
@@ -1464,7 +1464,7 @@ _080556D6:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_8055688
+ thumb_func_end SetWarpDestinationToFixedHoleWarp
thumb_func_start warp1_set_to_sav1w
warp1_set_to_sav1w: @ 80556E0
@@ -1712,7 +1712,7 @@ sub_8055864: @ 8055864
adds r0, r5, 0
adds r1, r4, 0
bl sub_810C578
- bl sub_807B140
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl sav1_reset_battle_music_maybe
@@ -1723,7 +1723,7 @@ sub_8055864: @ 8055864
ldr r0, [r4]
bl copy_map_tileset2_to_vram_2
ldr r0, [r4]
- bl sub_8059AA0
+ bl apply_map_tileset2_palette
movs r4, 0x7
_080558D4:
lsls r0, r4, 24
@@ -1784,7 +1784,7 @@ sub_8055920: @ 8055920
lsls r1, 16
lsrs r1, 16
bl sub_810C578
- bl sub_807B140
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
cmp r4, 0
beq _08055974
@@ -1817,7 +1817,7 @@ sub_80559A8: @ 80559A8
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
bl TrySetMapSaveWarpStatus
- bl sub_807B140
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl sub_8110920
@@ -1830,8 +1830,8 @@ sub_80559A8: @ 80559A8
_080559E0: .4byte gMapHeader
thumb_func_end sub_80559A8
- thumb_func_start sub_80559E4
-sub_80559E4: @ 80559E4
+ thumb_func_start ResetInitialPlayerAvatarState
+ResetInitialPlayerAvatarState: @ 80559E4
ldr r0, _080559F4 @ =gUnknown_2031DD4
movs r2, 0
movs r1, 0x1
@@ -1841,7 +1841,7 @@ sub_80559E4: @ 80559E4
bx lr
.align 2, 0
_080559F4: .4byte gUnknown_2031DD4
- thumb_func_end sub_80559E4
+ thumb_func_end ResetInitialPlayerAvatarState
thumb_func_start sub_80559F8
sub_80559F8: @ 80559F8
@@ -2295,8 +2295,8 @@ sav1_get_flash_used_on_map: @ 8055D30
_08055D3C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_flash_used_on_map
- thumb_func_start sub_8055D40
-sub_8055D40: @ 8055D40
+ thumb_func_start SetCurrentMapLayout
+SetCurrentMapLayout: @ 8055D40
push {lr}
ldr r1, _08055D54 @ =gSaveBlock1Ptr
ldr r1, [r1]
@@ -2309,7 +2309,7 @@ sub_8055D40: @ 8055D40
.align 2, 0
_08055D54: .4byte gSaveBlock1Ptr
_08055D58: .4byte gMapHeader
- thumb_func_end sub_8055D40
+ thumb_func_end SetCurrentMapLayout
thumb_func_start sub_8055D5C
sub_8055D5C: @ 8055D5C
@@ -2411,7 +2411,7 @@ _08055DDC:
bgt _08055E24
ldr r0, _08055E1C @ =gMPlayInfo_BGM
ldr r1, [r0]
- ldr r0, _08055E20 @ =gUnknown_86E6B0C
+ ldr r0, _08055E20 @ =gSong_86E6B0C
cmp r1, r0
bne _08055E24
movs r0, 0x4
@@ -2421,7 +2421,7 @@ _08055DDC:
_08055E14: .4byte gSaveBlock1Ptr
_08055E18: .4byte 0x00004f01
_08055E1C: .4byte gMPlayInfo_BGM
-_08055E20: .4byte gUnknown_86E6B0C
+_08055E20: .4byte gSong_86E6B0C
_08055E24:
bl sub_8055D8C
lsls r0, 16
@@ -2441,7 +2441,7 @@ _08055E40:
lsls r0, 24
cmp r0, 0
beq _08055E5A
- ldr r5, _08055E74 @ =0x00000131
+ ldr r5, _08055E74 @ =0x00000131 @ BGM_FRLG_SURF
adds r0, r5, 0
bl sub_8056124
cmp r0, 0
@@ -2464,15 +2464,15 @@ _08055E6C:
_08055E74: .4byte 0x00000131
thumb_func_end sub_8055DC4
- thumb_func_start sub_8055E78
-sub_8055E78: @ 8055E78
+ thumb_func_start Overworld_SetSavedMusic
+Overworld_SetSavedMusic: @ 8055E78
ldr r1, _08055E80 @ =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x2C]
bx lr
.align 2, 0
_08055E80: .4byte gSaveBlock1Ptr
- thumb_func_end sub_8055E78
+ thumb_func_end Overworld_SetSavedMusic
thumb_func_start sav1_reset_battle_music_maybe
sav1_reset_battle_music_maybe: @ 8055E84
@@ -2511,7 +2511,7 @@ _08055EA8:
bl GetCurrentMapMusic
lsls r0, 16
lsrs r6, r0, 16
- ldr r5, _08055F08 @ =0x00000131
+ ldr r5, _08055F08 @ =0x00000131 @ BGM_FRLG_SURF
cmp r6, r5
beq _08055F14
movs r0, 0x8
@@ -2573,8 +2573,8 @@ _08055F42:
bx r0
thumb_func_end Overworld_ChangeMusicToDefault
- thumb_func_start sub_8055F48
-sub_8055F48: @ 8055F48
+ thumb_func_start Overworld_ChangeMusicTo
+Overworld_ChangeMusicTo: @ 8055F48
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -2590,7 +2590,7 @@ _08055F62:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8055F48
+ thumb_func_end Overworld_ChangeMusicTo
thumb_func_start GetMapMusicFadeoutSpeed
GetMapMusicFadeoutSpeed: @ 8055F68
@@ -2958,8 +2958,8 @@ _080561F8:
bx r1
thumb_func_end is_light_level_1_2_3_5_or_6
- thumb_func_start is_light_level_1_2_3_or_6
-is_light_level_1_2_3_or_6: @ 80561FC
+ thumb_func_start Overworld_MapTypeAllowsTeleportAndFly
+Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -2979,7 +2979,7 @@ _08056216:
_08056218:
pop {r1}
bx r1
- thumb_func_end is_light_level_1_2_3_or_6
+ thumb_func_end Overworld_MapTypeAllowsTeleportAndFly
thumb_func_start is_light_level_8_or_9
is_light_level_8_or_9: @ 805621C
@@ -3022,8 +3022,8 @@ sav1_saved_warp2_map_get_name: @ 8056238
_0805625C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_saved_warp2_map_get_name
- thumb_func_start sav1_map_get_name
-sav1_map_get_name: @ 8056260
+ thumb_func_start GetCurrentRegionMapSectionId
+GetCurrentRegionMapSectionId: @ 8056260
push {lr}
ldr r0, _08056284 @ =gSaveBlock1Ptr
ldr r1, [r0]
@@ -3042,7 +3042,7 @@ sav1_map_get_name: @ 8056260
bx r1
.align 2, 0
_08056284: .4byte gSaveBlock1Ptr
- thumb_func_end sav1_map_get_name
+ thumb_func_end GetCurrentRegionMapSectionId
thumb_func_start sav1_map_get_battletype
sav1_map_get_battletype: @ 8056288
@@ -3117,8 +3117,8 @@ sub_80562B0: @ 80562B0
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
@@ -3181,8 +3181,8 @@ sub_8056354: @ 8056354
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
@@ -3196,8 +3196,8 @@ _080563E8: .4byte gUnknown_3005014
_080563EC: .4byte gUnknown_300501C
thumb_func_end sub_8056354
- thumb_func_start sub_80563F0
-sub_80563F0: @ 80563F0
+ thumb_func_start CleanupOverworldWindowsAndTilemaps
+CleanupOverworldWindowsAndTilemaps: @ 80563F0
push {lr}
bl sub_80F6C8C
ldr r0, _08056414 @ =gUnknown_300501C
@@ -3215,7 +3215,7 @@ sub_80563F0: @ 80563F0
_08056414: .4byte gUnknown_300501C
_08056418: .4byte gUnknown_3005014
_0805641C: .4byte gUnknown_3005018
- thumb_func_end sub_80563F0
+ thumb_func_end CleanupOverworldWindowsAndTilemaps
thumb_func_start sub_8056420
sub_8056420: @ 8056420
@@ -3225,8 +3225,8 @@ sub_8056420: @ 8056420
bx r0
thumb_func_end sub_8056420
- thumb_func_start sub_805642C
-sub_805642C: @ 805642C
+ thumb_func_start is_c1_link_related_active
+is_c1_link_related_active: @ 805642C
push {lr}
ldr r0, _0805643C @ =gMain
ldr r1, [r0]
@@ -3243,7 +3243,7 @@ _08056444:
_08056446:
pop {r1}
bx r1
- thumb_func_end sub_805642C
+ thumb_func_end is_c1_link_related_active
thumb_func_start sub_805644C
sub_805644C: @ 805644C
@@ -3442,7 +3442,7 @@ _080565E8: .4byte gMain
thumb_func_start map_post_load_hook_exec
map_post_load_hook_exec: @ 80565EC
push {r4,lr}
- ldr r4, _08056604 @ =gUnknown_3005024
+ ldr r4, _08056604 @ =gFieldCallback2
ldr r0, [r4]
cmp r0, 0
beq _08056618
@@ -3453,28 +3453,28 @@ map_post_load_hook_exec: @ 80565EC
movs r0, 0
b _08056638
.align 2, 0
-_08056604: .4byte gUnknown_3005024
+_08056604: .4byte gFieldCallback2
_08056608:
movs r1, 0
str r1, [r4]
- ldr r0, _08056614 @ =gUnknown_3005020
+ ldr r0, _08056614 @ =gFieldCallback
str r1, [r0]
b _08056636
.align 2, 0
-_08056614: .4byte gUnknown_3005020
+_08056614: .4byte gFieldCallback
_08056618:
- ldr r0, _08056628 @ =gUnknown_3005020
+ ldr r0, _08056628 @ =gFieldCallback
ldr r0, [r0]
cmp r0, 0
beq _0805662C
bl _call_via_r0
b _08056630
.align 2, 0
-_08056628: .4byte gUnknown_3005020
+_08056628: .4byte gFieldCallback
_0805662C:
bl sub_807DF64
_08056630:
- ldr r1, _08056640 @ =gUnknown_3005020
+ ldr r1, _08056640 @ =gFieldCallback
movs r0, 0
str r0, [r1]
_08056636:
@@ -3484,7 +3484,7 @@ _08056638:
pop {r1}
bx r1
.align 2, 0
-_08056640: .4byte gUnknown_3005020
+_08056640: .4byte gFieldCallback
thumb_func_end map_post_load_hook_exec
thumb_func_start CB2_NewGame
@@ -3494,14 +3494,14 @@ CB2_NewGame: @ 8056644
bl StopMapMusic
bl sub_8056420
bl sub_8054A60
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
bl PlayTimeCounter_Start
bl ScriptContext1_Init
bl ScriptContext2_Disable
- ldr r1, _0805668C @ =gUnknown_3005020
+ ldr r1, _0805668C @ =gFieldCallback
ldr r0, _08056690 @ =sub_807DF7C
str r0, [r1]
- ldr r1, _08056694 @ =gUnknown_3005024
+ ldr r1, _08056694 @ =gFieldCallback2
movs r0, 0
str r0, [r1]
ldr r0, _08056698 @ =gMain + 0x438
@@ -3514,9 +3514,9 @@ CB2_NewGame: @ 8056644
pop {r0}
bx r0
.align 2, 0
-_0805668C: .4byte gUnknown_3005020
+_0805668C: .4byte gFieldCallback
_08056690: .4byte sub_807DF7C
-_08056694: .4byte gUnknown_3005024
+_08056694: .4byte gFieldCallback2
_08056698: .4byte gMain + 0x438
_0805669C: .4byte sub_8056534
_080566A0: .4byte sub_80565B4
@@ -3545,7 +3545,7 @@ c2_whiteout: @ 80566A4
bl sub_80559F8
bl ScriptContext1_Init
bl ScriptContext2_Disable
- ldr r1, _0805670C @ =gUnknown_3005020
+ ldr r1, _0805670C @ =gFieldCallback
ldr r0, _08056710 @ =sub_807F5F0
str r0, [r1]
mov r1, sp
@@ -3565,7 +3565,7 @@ _08056702:
bx r0
.align 2, 0
_08056708: .4byte gMain
-_0805670C: .4byte gUnknown_3005020
+_0805670C: .4byte gFieldCallback
_08056710: .4byte sub_807F5F0
_08056714: .4byte sub_8056534
_08056718: .4byte sub_80565B4
@@ -3624,7 +3624,7 @@ _08056784: .4byte sub_80565B4
sub_8056788: @ 8056788
push {lr}
bl sub_80569BC
- ldr r0, _080567A0 @ =gUnknown_3005020
+ ldr r0, _080567A0 @ =gFieldCallback
ldr r1, _080567A4 @ =sub_807DE58
str r1, [r0]
ldr r0, _080567A8 @ =c2_80567AC
@@ -3632,7 +3632,7 @@ sub_8056788: @ 8056788
pop {r0}
bx r0
.align 2, 0
-_080567A0: .4byte gUnknown_3005020
+_080567A0: .4byte gFieldCallback
_080567A4: .4byte sub_807DE58
_080567A8: .4byte c2_80567AC
thumb_func_end sub_8056788
@@ -3659,10 +3659,10 @@ _080567D4: .4byte c1_link_related
_080567D8: .4byte sub_80565B4
thumb_func_end c2_80567AC
- thumb_func_start c2_exit_to_overworld_2_switch
-c2_exit_to_overworld_2_switch: @ 80567DC
+ thumb_func_start CB2_ReturnToField
+CB2_ReturnToField: @ 80567DC
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _080567F4
ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link
@@ -3679,7 +3679,7 @@ _080567FE:
bx r0
.align 2, 0
_08056804: .4byte c2_exit_to_overworld_2_local
- thumb_func_end c2_exit_to_overworld_2_switch
+ thumb_func_end CB2_ReturnToField
thumb_func_start c2_exit_to_overworld_2_local
c2_exit_to_overworld_2_local: @ 8056808
@@ -3731,26 +3731,26 @@ c2_8056854: @ 8056854
ldrb r0, [r0]
cmp r0, 0
beq _08056888
- ldr r1, _08056880 @ =gUnknown_3005020
+ ldr r1, _08056880 @ =gFieldCallback
ldr r0, _08056884 @ =sub_807DE58
b _0805688C
.align 2, 0
_08056878: .4byte c1_link_related
_0805687C: .4byte gWirelessCommType
-_08056880: .4byte gUnknown_3005020
+_08056880: .4byte gFieldCallback
_08056884: .4byte sub_807DE58
_08056888:
- ldr r1, _080568A0 @ =gUnknown_3005020
+ ldr r1, _080568A0 @ =gFieldCallback
ldr r0, _080568A4 @ =sub_807DDD0
_0805688C:
str r0, [r1]
bl ScriptContext1_Init
bl ScriptContext2_Disable
- bl c2_exit_to_overworld_2_switch
+ bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
-_080568A0: .4byte gUnknown_3005020
+_080568A0: .4byte gFieldCallback
_080568A4: .4byte sub_807DDD0
thumb_func_end c2_8056854
@@ -3758,14 +3758,14 @@ _080568A4: .4byte sub_807DDD0
sub_80568A8: @ 80568A8
push {lr}
bl sub_80569BC
- ldr r1, _080568BC @ =gUnknown_3005024
+ ldr r1, _080568BC @ =gFieldCallback2
ldr r0, _080568C0 @ =sub_807E3BC
str r0, [r1]
- bl c2_exit_to_overworld_2_switch
+ bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
-_080568BC: .4byte gUnknown_3005024
+_080568BC: .4byte gFieldCallback2
_080568C0: .4byte sub_807E3BC
thumb_func_end sub_80568A8
@@ -3773,14 +3773,14 @@ _080568C0: .4byte sub_807E3BC
sub_80568C4: @ 80568C4
push {lr}
bl sub_80569BC
- ldr r1, _080568D8 @ =gUnknown_3005020
+ ldr r1, _080568D8 @ =gFieldCallback
ldr r0, _080568DC @ =sub_807DD44
str r0, [r1]
- bl c2_exit_to_overworld_2_switch
+ bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
-_080568D8: .4byte gUnknown_3005020
+_080568D8: .4byte gFieldCallback
_080568DC: .4byte sub_807DD44
thumb_func_end sub_80568C4
@@ -3788,29 +3788,29 @@ _080568DC: .4byte sub_807DD44
c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0
push {lr}
bl sub_80569BC
- ldr r1, _080568F4 @ =gUnknown_3005020
- ldr r0, _080568F8 @ =sub_807DD24
+ ldr r1, _080568F4 @ =gFieldCallback
+ ldr r0, _080568F8 @ =FieldCallback_ReturnToEventScript2
str r0, [r1]
- bl c2_exit_to_overworld_2_switch
+ bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
-_080568F4: .4byte gUnknown_3005020
-_080568F8: .4byte sub_807DD24
+_080568F4: .4byte gFieldCallback
+_080568F8: .4byte FieldCallback_ReturnToEventScript2
thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_start sub_80568FC
sub_80568FC: @ 80568FC
push {lr}
bl sub_80569BC
- ldr r1, _08056910 @ =gUnknown_3005020
+ ldr r1, _08056910 @ =gFieldCallback
ldr r0, _08056914 @ =sub_807DF7C
str r0, [r1]
- bl c2_exit_to_overworld_2_switch
+ bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
-_08056910: .4byte gUnknown_3005020
+_08056910: .4byte gFieldCallback
_08056914: .4byte sub_807DF7C
thumb_func_end sub_80568FC
@@ -3847,7 +3847,7 @@ sub_8056938: @ 8056938
bl PlayTimeCounter_Start
bl ScriptContext1_Init
bl ScriptContext2_Disable
- ldr r1, _08056990 @ =gUnknown_3005024
+ ldr r1, _08056990 @ =gFieldCallback2
movs r0, 0
str r0, [r1]
ldr r1, _08056994 @ =gUnknown_2031DE0
@@ -3863,21 +3863,21 @@ sub_8056938: @ 8056938
bl SetMainCallback2
b _080569AC
.align 2, 0
-_08056990: .4byte gUnknown_3005024
+_08056990: .4byte gFieldCallback2
_08056994: .4byte gUnknown_2031DE0
_08056998: .4byte sub_805671C
_0805699C:
- ldr r0, _080569B0 @ =gUnknown_3005020
+ ldr r0, _080569B0 @ =gFieldCallback
ldr r1, _080569B4 @ =sub_8056918
str r1, [r0]
ldr r0, _080569B8 @ =sub_8056534
bl sub_80565E0
- bl c2_exit_to_overworld_2_switch
+ bl CB2_ReturnToField
_080569AC:
pop {r0}
bx r0
.align 2, 0
-_080569B0: .4byte gUnknown_3005020
+_080569B0: .4byte gFieldCallback
_080569B4: .4byte sub_8056918
_080569B8: .4byte sub_8056534
thumb_func_end sub_8056938
@@ -3890,7 +3890,7 @@ sub_80569BC: @ 80569BC
lsrs r0, 24
cmp r0, 0x1
bne _080569CE
- bl sub_80098B8
+ bl CloseLink
_080569CE:
ldr r0, _080569E4 @ =gWirelessCommType
ldrb r0, [r0]
@@ -3933,7 +3933,7 @@ VBlankCB_Field: @ 8056A14
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
bl FieldUpdateBgTilemapScroll
bl TransferPlttBuffer
bl TransferTilesetAnimsBuffer
@@ -3954,7 +3954,7 @@ sub_8056A34: @ 8056A34
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
_08056A52:
pop {r0}
bx r0
@@ -4024,14 +4024,14 @@ _08056AEE:
_08056AF4:
ldr r0, _08056B00 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08056B62
.align 2, 0
_08056B00: .4byte gMapHeader
_08056B04:
ldr r0, _08056B10 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08056B62
.align 2, 0
_08056B10: .4byte gMapHeader
@@ -4166,14 +4166,14 @@ _08056C2A:
_08056C30:
ldr r0, _08056C3C @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08056CCA
.align 2, 0
_08056C3C: .4byte gMapHeader
_08056C40:
ldr r0, _08056C4C @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08056CCA
.align 2, 0
_08056C4C: .4byte gMapHeader
@@ -4355,14 +4355,14 @@ _08056DCA:
_08056DD0:
ldr r0, _08056DDC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08056E3E
.align 2, 0
_08056DDC: .4byte gMapHeader
_08056DE0:
ldr r0, _08056DEC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08056E3E
.align 2, 0
_08056DEC: .4byte gMapHeader
@@ -4451,7 +4451,7 @@ sub_8056E80: @ 8056E80
movs r0, 0
movs r1, 0
bl SetGpuReg
- bl remove_some_task
+ bl ScanlineEffect_Stop
ldr r2, _08056EF8 @ =0x05000002
mov r1, sp
movs r0, 0
@@ -4630,8 +4630,8 @@ sub_8057024: @ 8057024
bl ResetTasks
bl ResetSpriteData
bl ResetPaletteFade
- bl dp12_8087EA4
- bl dp13_810BB8C
+ bl ScanlineEffect_Clear
+ bl ResetAllPicSprites
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
cmp r4, 0
@@ -4690,7 +4690,7 @@ mli4_mapscripts_and_other: @ 805709C
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
- bl sav1_camera_get_focus_coords
+ bl GetCameraFocusCoords
bl sub_8055A6C
adds r5, r0, 0
mov r0, sp
@@ -4705,7 +4705,7 @@ mli4_mapscripts_and_other: @ 805709C
bl InitPlayerAvatar
ldrb r0, [r5]
bl SetPlayerAvatarTransitionFlags
- bl sub_80559E4
+ bl ResetInitialPlayerAvatarState
movs r0, 0
movs r1, 0
bl sub_805EC30
@@ -4792,7 +4792,7 @@ sub_8057178: @ 8057178
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
- bl sav1_camera_get_focus_coords
+ bl GetCameraFocusCoords
mov r2, sp
ldr r0, _080571A4 @ =gUnknown_300502C
ldrb r1, [r0]
@@ -4801,7 +4801,7 @@ sub_8057178: @ 8057178
lsls r0, 16
lsrs r0, 16
ldrh r1, [r4]
- bl sub_80597EC
+ bl SetCameraFocusCoords
add sp, 0x4
pop {r4}
pop {r0}
@@ -4820,7 +4820,7 @@ sub_80571A8: @ 80571A8
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
- bl sav1_camera_get_focus_coords
+ bl GetCameraFocusCoords
mov r3, sp
mov r2, sp
ldr r0, _08057224 @ =gUnknown_300502C
@@ -5066,14 +5066,14 @@ _080573C2:
_080573C8:
ldr r0, _080573D4 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _08057412
.align 2, 0
_080573D4: .4byte gMapHeader
_080573D8:
ldr r0, _080573E4 @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _08057412
.align 2, 0
_080573E4: .4byte gMapHeader
@@ -5150,7 +5150,7 @@ _0805748C: .4byte sub_805671C
_08057490:
ldr r0, _080574A0 @ =sub_8056534
bl sub_80565E0
- bl c2_exit_to_overworld_2_switch
+ bl CB2_ReturnToField
_0805749A:
pop {r0}
bx r0
@@ -5314,7 +5314,7 @@ _08057560:
bl ScriptContext2_Disable
movs r0, 0
bl sub_80565E0
- ldr r1, _08057614 @ =gUnknown_3005024
+ ldr r1, _08057614 @ =gFieldCallback2
ldr r0, _08057618 @ =sub_80574EC
str r0, [r1]
ldr r0, _0805761C @ =gMain
@@ -5334,7 +5334,7 @@ _08057604: .4byte 0x0000ffff
_08057608: .4byte gUnknown_2031DBC
_0805760C: .4byte gUnknown_2031DE8
_08057610: .4byte gPaletteFade
-_08057614: .4byte gUnknown_3005024
+_08057614: .4byte gFieldCallback2
_08057618: .4byte sub_80574EC
_0805761C: .4byte gMain
_08057620:
@@ -5395,8 +5395,8 @@ _08057690:
bl sub_8055920
b _0805772A
_0805769C:
- bl dp12_8087EA4
- bl dp13_810BB8C
+ bl ScanlineEffect_Clear
+ bl ResetAllPicSprites
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
bl FieldEffectActiveListClear
@@ -5415,14 +5415,14 @@ _080576CC:
_080576D2:
ldr r0, _080576DC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A54
+ bl copy_map_tileset1_to_vram
b _0805772A
.align 2, 0
_080576DC: .4byte gMapHeader
_080576E0:
ldr r0, _080576EC @ =gMapHeader
ldr r0, [r0]
- bl sub_8059A68
+ bl copy_map_tileset2_to_vram
b _0805772A
.align 2, 0
_080576EC: .4byte gMapHeader
@@ -5619,7 +5619,7 @@ sub_8057854: @ 8057854
ands r0, r1
cmp r0, 0
bne _08057876
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _08057880 @ =sub_805671C
bl SetMainCallback2
adds r0, r4, 0
@@ -6144,7 +6144,7 @@ _08057C72:
bl sub_805833C
cmp r0, 0x1
bls _08057CA8
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _08057CA8
bl sub_800A00C
@@ -6748,7 +6748,7 @@ _08058074:
ldr r1, [r4, 0x8]
str r0, [sp]
str r1, [sp, 0x4]
- ldr r3, _080580E4 @ =gUnknown_826D2D8
+ ldr r3, _080580E4 @ =gDirectionToVectors
ldrb r0, [r4, 0x3]
lsls r0, 3
adds r0, r3
@@ -6801,7 +6801,7 @@ _080580E0:
ldr r0, _080580F8 @ =gUnknown_81BB9A3
b _08058122
.align 2, 0
-_080580E4: .4byte gUnknown_826D2D8
+_080580E4: .4byte gDirectionToVectors
_080580E8: .4byte 0xffff0000
_080580EC: .4byte 0x0000ffff
_080580F0: .4byte 0xffffff00
@@ -6976,7 +6976,7 @@ _08058240: .4byte gUnknown_81BB9F0
thumb_func_start sub_8058244
sub_8058244: @ 8058244
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _08058252
movs r0, 0
@@ -7009,7 +7009,7 @@ sub_8058274: @ 8058274
bl sub_800B248
cmp r0, 0x1
bls _080582D8
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _080582D8
bl sub_800A00C
@@ -7062,7 +7062,7 @@ sub_80582E0: @ 80582E0
bl sub_805833C
cmp r0, 0x1
bls _08058304
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _08058304
bl sub_800A00C
@@ -7829,7 +7829,7 @@ _08058854:
bls _08058810
asrs r0, r3, 16
asrs r1, r5, 16
- bl sub_8058DC4
+ bl MapGridIsImpassableAt
lsls r0, 24
lsrs r0, 24
_0805886A:
@@ -7888,7 +7888,7 @@ _080588C6:
movs r2, 0
str r2, [sp]
movs r3, 0
- bl AddPseudoFieldObject
+ bl AddPseudoEventObject
strb r0, [r4, 0x4]
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
diff --git a/asm/party_menu.s b/asm/party_menu.s
index c4980f984..2c3623442 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_811EA44
-sub_811EA44: @ 811EA44
+ thumb_func_start PartyMenuInit
+PartyMenuInit: @ 811EA44
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -181,7 +181,7 @@ _0811EB90: .4byte gUnknown_203B09C
_0811EB94: .4byte gPlayerParty
_0811EB98: .4byte gTextFlags
_0811EB9C: .4byte sub_811EBD0
- thumb_func_end sub_811EA44
+ thumb_func_end PartyMenuInit
thumb_func_start sub_811EBA0
sub_811EBA0: @ 811EBA0
@@ -219,7 +219,7 @@ _0811EBD2:
lsrs r0, 24
cmp r0, 0x1
beq _0811EBF6
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -276,12 +276,12 @@ _0811EC24:
.4byte _0811EDD0
.4byte _0811EDDE
_0811EC80:
- bl sub_80BF768
+ bl VblankHblankHandlerSetZero
bl sub_80BF77C
bl clear_scheduled_bg_copies_to_vram
b _0811EDFC
_0811EC8E:
- bl remove_some_task
+ bl ScanlineEffect_Stop
b _0811EDFC
_0811EC94:
bl ResetPaletteFade
@@ -299,7 +299,7 @@ _0811ECAE:
bl FreeAllSpritePalettes
b _0811EDFC
_0811ECB4:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
beq _0811ECC0
@@ -420,7 +420,7 @@ _0811ED96:
_0811EDA8: .4byte gUnknown_203B09C
_0811EDAC:
movs r0, 0x5
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0811EDFC
_0811EDB4:
ldr r4, _0811EDCC @ =gUnknown_203B09C
@@ -565,7 +565,7 @@ _0811EEC8: .4byte gUnknown_203B0B8
thumb_func_start sub_811EECC
sub_811EECC: @ 811EECC
push {r4,r5,lr}
- bl sub_80BF7C8
+ bl InitBgReg
ldr r5, _0811EF34 @ =gUnknown_203B0BC
movs r4, 0x80
lsls r4, 4
@@ -1274,7 +1274,7 @@ _0811F47C:
cmp r0, 0x3
bne _0811F492
adds r0, r4, 0
- bl sub_80A1150
+ bl GetItemCompatibilityRule
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1799,7 +1799,7 @@ _0811F884:
movs r1, 0x17
movs r2, 0x10
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
b _0811F8B0
_0811F89E:
movs r0, 0x2
@@ -1809,7 +1809,7 @@ _0811F89E:
movs r1, 0x17
movs r2, 0x10
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
_0811F8B0:
ldr r0, _0811F8BC @ =gUnknown_203B09C
ldr r0, [r0]
@@ -1857,7 +1857,7 @@ _0811F8F2:
movs r2, 0x12
_0811F904:
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
b _0811F91E
_0811F90C:
movs r0, 0x2
@@ -1867,7 +1867,7 @@ _0811F90C:
movs r1, 0x17
movs r2, 0x12
movs r3, 0x7
- bl sub_80F6B08
+ bl SetBgRectPal
_0811F91E:
ldr r0, _0811F940 @ =gUnknown_203B09C
ldr r0, [r0]
@@ -2494,7 +2494,7 @@ _0811FDD6:
.align 2, 0
_0811FDF0: .4byte gUnknown_203B0A0
_0811FDF4:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0811FE04
@@ -2585,7 +2585,7 @@ sub_811FEA4: @ 811FEA4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3234,7 +3234,7 @@ sub_8120328: @ 8120328
bne _0812035E
movs r0, 0x6
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x6
bl ClearWindowTilemap
_0812035E:
@@ -3302,10 +3302,10 @@ sub_81203B8: @ 81203B8
beq _08120410
movs r0, 0x6
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x6
bl ClearWindowTilemap
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3366,7 +3366,7 @@ _0812043C:
_08120448:
adds r1, r5, 0
adds r2, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
b _08120468
.align 2, 0
_08120454: .4byte gUnknown_203B0A0
@@ -3376,14 +3376,14 @@ _0812045C:
movs r0, 0x6
adds r1, r5, 0
adds r2, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
_08120468:
ldr r1, _0812049C @ =gStringVar1
adds r0, r5, 0
bl GetMonNickname
ldr r1, _081204A0 @ =gStringVar2
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _081204A4 @ =gStringVar4
ldr r1, _081204A8 @ =gUnknown_8416C2A
adds r0, r4, 0
@@ -3418,13 +3418,13 @@ sub_81204AC: @ 81204AC
movs r0, 0x8
adds r1, r6, 0
adds r2, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _081204FC @ =gStringVar1
adds r0, r6, 0
bl GetMonNickname
ldr r1, _08120500 @ =gStringVar2
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _08120504 @ =gStringVar4
ldr r1, _08120508 @ =gUnknown_8416CAC
adds r0, r4, 0
@@ -3458,7 +3458,7 @@ sub_812050C: @ 812050C
bl GetMonNickname
ldr r1, _0812054C @ =gStringVar2
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _08120550 @ =gStringVar4
ldr r1, _08120554 @ =gUnknown_8416C49
adds r0, r4, 0
@@ -3502,10 +3502,10 @@ sub_8120558: @ 8120558
bl sub_8124B60
ldr r1, _081205B8 @ =gStringVar1
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r1, _081205BC @ =gStringVar2
adds r0, r5, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r4, _081205C0 @ =gStringVar4
ldr r1, _081205C4 @ =gUnknown_8416CEA
adds r0, r4, 0
@@ -3582,7 +3582,7 @@ sub_8120610: @ 8120610
b _0812064E
_0812062C:
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
beq _0812064C
@@ -3627,7 +3627,7 @@ _08120678:
_0812067E:
ldr r0, _08120698 @ =0x0000016d
_08120680:
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
_08120686:
ldr r0, _0812069C @ =gStringVar1
@@ -4198,7 +4198,7 @@ sub_8120AC4: @ 8120AC4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -4298,7 +4298,7 @@ _08120B86:
lsls r0, 16
lsrs r1, r0, 16
adds r0, r5, 0
- bl pokemon_has_move
+ bl MonKnowsMove
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4709,11 +4709,11 @@ sub_8120E58: @ 8120E58
movs r0, 0
movs r1, 0x4F
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x58
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _08120E94 @ =gUnknown_203B0A0
ldrb r0, [r0, 0xB]
cmp r0, 0x3
@@ -4878,13 +4878,13 @@ sub_8120FB0: @ 8120FB0
push {lr}
bl FreeRestoreBattleData
bl LoadPlayerParty
- bl sub_815AC20
- ldr r0, _08120FC8 @ =sub_815ABFC
+ bl SetTeachyTvControllerModeToResume
+ ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_08120FC8: .4byte sub_815ABFC
+_08120FC8: .4byte CB2_ReturnToTeachyTV
thumb_func_end sub_8120FB0
thumb_func_start sub_8120FCC
@@ -5016,11 +5016,11 @@ _081210AC:
movs r0, 0
movs r1, 0x4F
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x58
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x2
bl stdpal_get
movs r1, 0xC0
@@ -5084,7 +5084,7 @@ _0812110E:
adds r0, r4, 0
movs r1, 0
movs r3, 0x1
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r4, 0
@@ -5141,7 +5141,7 @@ _08121194:
movs r1, 0
adds r2, r5, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
b _08121224
.align 2, 0
_081211E0: .4byte gUnknown_845A108
@@ -5149,7 +5149,7 @@ _081211E4: .4byte gUnknown_203B0A0
_081211E8: .4byte gFameCheckerText_Cancel
_081211EC: .4byte gUnknown_8459FFC
_081211F0:
- ldr r4, _08121240 @ =gUnknown_84161C8
+ ldr r4, _08121240 @ =gOtherText_Exit
movs r0, 0
adds r1, r4, 0
movs r2, 0
@@ -5172,7 +5172,7 @@ _081211F0:
movs r1, 0
adds r2, r5, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_08121224:
adds r0, r6, 0
bl PutWindowTilemap
@@ -5187,7 +5187,7 @@ _08121238:
pop {r0}
bx r0
.align 2, 0
-_08121240: .4byte gUnknown_84161C8
+_08121240: .4byte gOtherText_Exit
_08121244: .4byte gUnknown_8459FFC
thumb_func_end sub_81210F8
@@ -5778,7 +5778,7 @@ sub_8121704: @ 8121704
str r1, [sp, 0x8]
movs r1, 0
adds r2, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -5909,7 +5909,7 @@ sub_8121808: @ 8121808
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0812184C @ =gStringVar1
- ldr r1, _08121850 @ =gUnknown_8416223
+ ldr r1, _08121850 @ =gText_Lv
adds r0, r4, 0
bl StringCopy
adds r0, r4, 0
@@ -5927,7 +5927,7 @@ sub_8121808: @ 8121808
.align 2, 0
_08121848: .4byte gStringVar2
_0812184C: .4byte gStringVar1
-_08121850: .4byte gUnknown_8416223
+_08121850: .4byte gText_Lv
thumb_func_end sub_8121808
thumb_func_start sub_8121854
@@ -6486,7 +6486,7 @@ _08121CAA:
ldr r1, [r1]
str r1, [sp, 0x8]
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_08121CD0:
add sp, 0xC
pop {r3}
@@ -6507,7 +6507,7 @@ sub_8121CE4: @ 8121CE4
cmp r0, 0xFF
beq _08121D04
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0xFF
@@ -6831,7 +6831,7 @@ _08121F3C:
str r1, [sp, 0x10]
movs r1, 0x2
mov r2, r9
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -6888,7 +6888,7 @@ sub_8121FC0: @ 8121FC0
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -6903,7 +6903,7 @@ sub_8121FC0: @ 8121FC0
movs r0, 0x6
movs r1, 0x2
adds r2, r4, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r4}
pop {r0}
@@ -6926,7 +6926,7 @@ sub_812200C: @ 812200C
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
@@ -6990,7 +6990,7 @@ sub_8122084: @ 8122084
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -7005,7 +7005,7 @@ sub_8122084: @ 8122084
adds r0, r4, 0
movs r1, 0x4
adds r2, r5, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r4,r5}
pop {r0}
@@ -7026,7 +7026,7 @@ sub_81220D4: @ 81220D4
adds r0, r4, 0
movs r1, 0x4F
movs r2, 0xE0
- bl sub_814FEAC
+ bl TextWindow_SetBubbleFrame_841F1C8
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x4F
@@ -7054,7 +7054,7 @@ sub_8122110: @ 8122110
bl ClearWindowTilemap
adds r0, r4, 0
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
adds r0, r4, 0
bl RemoveWindow
movs r0, 0x2
@@ -7121,7 +7121,7 @@ _0812217A:
movs r1, 0x2
movs r2, 0x3
movs r3, 0x6
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldrb r0, [r4, 0xE]
bl PutWindowTilemap
movs r0, 0x2
@@ -8717,7 +8717,7 @@ sub_8122DBC: @ 8122DBC
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -9928,7 +9928,7 @@ _081237AE:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
b _08123814
.align 2, 0
_081237BC: .4byte gUnknown_203B0D8
@@ -9943,7 +9943,7 @@ _081237CC:
beq _081237F8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0x9
ldrsb r0, [r5, r0]
mov r1, r8
@@ -9967,7 +9967,7 @@ _081237F8:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_08123814:
add sp, 0xC
pop {r3}
@@ -10016,7 +10016,7 @@ sub_8123824: @ 8123824
bl sub_81205C8
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r1, _0812389C @ =gTasks
lsls r0, r7, 2
adds r0, r7
@@ -10113,7 +10113,7 @@ sub_8123930: @ 8123930
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -10133,17 +10133,17 @@ _08123956:
ldr r5, _08123998 @ =gSpecialVar_ItemId
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r6, _0812399C @ =gUnknown_203B0D8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081239AC
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldrh r0, [r6]
bl sub_8120658
ldr r0, _081239A0 @ =gStringVar4
@@ -10330,10 +10330,10 @@ sub_8123ACC: @ 8123ACC
bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
mov r0, r8
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
ldrb r0, [r6, 0x8]
lsls r0, 28
lsrs r0, 28
@@ -10345,7 +10345,7 @@ sub_8123ACC: @ 8123ACC
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
b _08123B68
.align 2, 0
_08123B38: .4byte gUnknown_203B0A0
@@ -10366,7 +10366,7 @@ _08123B4C:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_08123B68:
add sp, 0xC
pop {r3}
@@ -10675,7 +10675,7 @@ sub_8123DCC: @ 8123DCC
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -10752,7 +10752,7 @@ sub_8123E8C: @ 8123E8C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -10871,7 +10871,7 @@ sub_8123F80: @ 8123F80
push {r7}
lsls r0, 24
lsrs r5, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -10903,7 +10903,7 @@ _08123FAA:
lsrs r4, r0, 16
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -11627,7 +11627,7 @@ _081245D6:
ldr r0, [r5]
adds r0, 0xD
bl sub_8121CE4
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -11790,7 +11790,7 @@ _08124754: .4byte gUnknown_203B0A0
_08124758: .4byte sub_80C4EF8
_0812475C:
ldr r1, _08124780 @ =gUnknown_203B0A0
- ldr r0, _08124784 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _08124784 @ =CB2_ReturnToField
str r0, [r1]
bl GetCursorSelectionMonId
lsls r0, 24
@@ -11807,7 +11807,7 @@ _08124778:
b _081247B4
.align 2, 0
_08124780: .4byte gUnknown_203B0A0
-_08124784: .4byte c2_exit_to_overworld_2_switch
+_08124784: .4byte CB2_ReturnToField
_08124788: .4byte gPlayerParty
_0812478C:
cmp r4, 0
@@ -11897,7 +11897,7 @@ sub_8124828: @ 8124828
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -11915,7 +11915,7 @@ _08124848:
b _081248A2
_0812484E:
ldr r1, _0812487C @ =gUnknown_203B0A0
- ldr r0, _08124880 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _08124880 @ =CB2_ReturnToField
str r0, [r1]
bl GetCursorSelectionMonId
lsls r0, 24
@@ -11936,17 +11936,17 @@ _0812484E:
b _081248A2
.align 2, 0
_0812487C: .4byte gUnknown_203B0A0
-_08124880: .4byte c2_exit_to_overworld_2_switch
+_08124880: .4byte CB2_ReturnToField
_08124884: .4byte gPlayerParty
_08124888: .4byte gUnknown_203B09C
_0812488C:
movs r0, 0x5
bl PlaySE
_08124892:
- ldr r0, _081248A8 @ =gUnknown_3005024
+ ldr r0, _081248A8 @ =gFieldCallback2
movs r1, 0
str r1, [r0]
- ldr r0, _081248AC @ =gUnknown_203B0C4
+ ldr r0, _081248AC @ =gPostMenuFieldCallback
str r1, [r0]
adds r0, r4, 0
bl sub_81203B8
@@ -11955,12 +11955,12 @@ _081248A2:
pop {r0}
bx r0
.align 2, 0
-_081248A8: .4byte gUnknown_3005024
-_081248AC: .4byte gUnknown_203B0C4
+_081248A8: .4byte gFieldCallback2
+_081248AC: .4byte gPostMenuFieldCallback
thumb_func_end sub_8124828
- thumb_func_start hm_add_c3_launch_phase_2
-hm_add_c3_launch_phase_2: @ 81248B0
+ thumb_func_start FieldCallback_PrepareFadeInFromMenu
+FieldCallback_PrepareFadeInFromMenu: @ 81248B0
push {lr}
bl sub_807DC00
ldr r0, _081248C4 @ =task_launch_hm_phase_2
@@ -11971,7 +11971,7 @@ hm_add_c3_launch_phase_2: @ 81248B0
bx r1
.align 2, 0
_081248C4: .4byte task_launch_hm_phase_2
- thumb_func_end hm_add_c3_launch_phase_2
+ thumb_func_end FieldCallback_PrepareFadeInFromMenu
thumb_func_start task_launch_hm_phase_2
task_launch_hm_phase_2: @ 81248C8
@@ -11988,7 +11988,7 @@ task_launch_hm_phase_2: @ 81248C8
lsls r0, 16
lsrs r0, 16
str r0, [r1]
- ldr r0, _08124900 @ =gUnknown_203B0C4
+ ldr r0, _08124900 @ =gPostMenuFieldCallback
ldr r0, [r0]
bl _call_via_r0
adds r0, r4, 0
@@ -11999,7 +11999,7 @@ _081248F4:
bx r0
.align 2, 0
_081248FC: .4byte gFieldEffectArguments
-_08124900: .4byte gUnknown_203B0C4
+_08124900: .4byte gPostMenuFieldCallback
thumb_func_end task_launch_hm_phase_2
thumb_func_start brm_get_selected_species
@@ -12118,18 +12118,18 @@ sub_8124998: @ 8124998
lsrs r0, 24
cmp r0, 0x1
bne _08124A00
- ldr r1, _081249F0 @ =gUnknown_3005024
- ldr r0, _081249F4 @ =hm_add_c3_launch_phase_2
+ ldr r1, _081249F0 @ =gFieldCallback2
+ ldr r0, _081249F4 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _081249F8 @ =gUnknown_203B0C4
+ ldr r1, _081249F8 @ =gPostMenuFieldCallback
ldr r0, _081249FC @ =hm_surf_run_dp02scr
str r0, [r1]
movs r0, 0x1
b _08124A02
.align 2, 0
-_081249F0: .4byte gUnknown_3005024
-_081249F4: .4byte hm_add_c3_launch_phase_2
-_081249F8: .4byte gUnknown_203B0C4
+_081249F0: .4byte gFieldCallback2
+_081249F4: .4byte FieldCallback_PrepareFadeInFromMenu
+_081249F8: .4byte gPostMenuFieldCallback
_081249FC: .4byte hm_surf_run_dp02scr
_08124A00:
movs r0, 0
@@ -12207,7 +12207,7 @@ sub_8124A8C: @ 8124A8C
push {lr}
ldr r0, _08124AA4 @ =gMapHeader
ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
+ bl Overworld_MapTypeAllowsTeleportAndFly
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12237,7 +12237,7 @@ sub_8124AB0: @ 8124AB0
movs r1, 0
movs r2, 0
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -12289,18 +12289,18 @@ hm_prepare_waterfall: @ 8124AF8
lsrs r0, 24
cmp r0, 0x1
bne _08124B54
- ldr r1, _08124B44 @ =gUnknown_3005024
- ldr r0, _08124B48 @ =hm_add_c3_launch_phase_2
+ ldr r1, _08124B44 @ =gFieldCallback2
+ ldr r0, _08124B48 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _08124B4C @ =gUnknown_203B0C4
+ ldr r1, _08124B4C @ =gPostMenuFieldCallback
ldr r0, _08124B50 @ =hm2_waterfall
str r0, [r1]
movs r0, 0x1
b _08124B56
.align 2, 0
-_08124B44: .4byte gUnknown_3005024
-_08124B48: .4byte hm_add_c3_launch_phase_2
-_08124B4C: .4byte gUnknown_203B0C4
+_08124B44: .4byte gFieldCallback2
+_08124B48: .4byte FieldCallback_PrepareFadeInFromMenu
+_08124B4C: .4byte gPostMenuFieldCallback
_08124B50: .4byte hm2_waterfall
_08124B54:
movs r0, 0
@@ -12577,7 +12577,7 @@ _08124D6A:
adds r1, r7, 0
movs r2, 0x3
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r3}
mov r8, r3
@@ -12606,7 +12606,7 @@ sub_8124DA0: @ 8124DA0
movs r0, 0x5
movs r1, 0
movs r2, 0xFF
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
thumb_func_end sub_8124DA0
@@ -12617,7 +12617,7 @@ sub_8124DB0: @ 8124DB0
movs r0, 0x6
movs r1, 0
movs r2, 0xFF
- bl sub_813CD50
+ bl InitBerryPouch
pop {r0}
bx r0
thumb_func_end sub_8124DB0
@@ -12644,7 +12644,7 @@ sub_8124DE0: @ 8124DE0
push {r4,lr}
ldr r4, _08124E0C @ =gSpecialVar_ItemId
ldrh r0, [r4]
- bl sub_80A1150
+ bl GetItemCompatibilityRule
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -12735,7 +12735,7 @@ sub_8124E48: @ 8124E48
bhi _08124EB0
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08124EB0:
mov r1, r8
ldr r0, [r1]
@@ -12759,7 +12759,7 @@ _08124EC8:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r2, 0
- bl sub_811EA44
+ bl PartyMenuInit
_08124EE6:
add sp, 0xC
pop {r3}
@@ -12820,7 +12820,7 @@ sub_8124EFC: @ 8124EFC
movs r0, 0x4
adds r1, r5, 0
adds r3, r6, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldrh r1, [r7]
movs r0, 0xA9
lsls r0, 1
@@ -12828,7 +12828,7 @@ sub_8124EFC: @ 8124EFC
bhi _08124F7C
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08124F7C:
mov r1, r8
ldr r0, [r1]
@@ -12852,7 +12852,7 @@ _08124F94:
ldr r1, [r4]
str r1, [sp, 0x8]
movs r1, 0xFF
- bl sub_811EA44
+ bl PartyMenuInit
_08124FB2:
add sp, 0xC
pop {r3}
@@ -13312,7 +13312,7 @@ _08125380:
movs r0, 0x4
adds r1, r5, 0
adds r2, r6, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
adds r0, r7, 0
bl sub_8124DC0
ldr r1, _081253A8 @ =gUnknown_3005E98
@@ -13418,7 +13418,7 @@ _0812544C:
beq _0812547E
adds r0, r6, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
b _0812547E
.align 2, 0
_08125474: .4byte gUnknown_203B0C0
@@ -13684,7 +13684,7 @@ _08125680:
mov r1, r8
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
@@ -13730,8 +13730,8 @@ _081256F2:
bx r0
thumb_func_end sub_81256C0
- thumb_func_start sub_81256F8
-sub_81256F8: @ 81256F8
+ thumb_func_start ItemUseCB_PpRestore
+ItemUseCB_PpRestore: @ 81256F8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -13802,7 +13802,7 @@ _0812577E:
_08125784: .4byte gUnknown_203B0A0
_08125788: .4byte gTasks
_0812578C: .4byte sub_81256C0
- thumb_func_end sub_81256F8
+ thumb_func_end ItemUseCB_PpRestore
thumb_func_start sub_8125790
sub_8125790: @ 8125790
@@ -13958,12 +13958,12 @@ sub_8125898: @ 8125898
ldr r3, _08125940 @ =0x0000ffff
movs r0, 0x4
adds r1, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
movs r0, 0x1
bl PlaySE
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r2, 0xE
ldrsh r1, [r5, r2]
adds r1, 0xD
@@ -14060,12 +14060,12 @@ _081259A0:
movs r0, 0x4
adds r1, r4, 0
adds r2, r5, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
movs r0, 0x1
bl PlaySE
adds r0, r5, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
movs r0, 0
ldrsh r1, [r7, r0]
adds r1, 0xD
@@ -14185,8 +14185,8 @@ _08125ABC:
bx r1
thumb_func_end sub_8125A90
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 8125AC0
+ thumb_func_start MonKnowsMove
+MonKnowsMove: @ 8125AC0
push {r4-r6,lr}
adds r6, r0, 0
lsls r1, 16
@@ -14212,7 +14212,7 @@ _08125AE8:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end pokemon_has_move
+ thumb_func_end MonKnowsMove
thumb_func_start sub_8125AF0
sub_8125AF0: @ 8125AF0
@@ -14315,7 +14315,7 @@ sub_8125B40: @ 8125B40
movs r0, 0x4
adds r1, r4, 0
adds r2, r5, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
adds r0, r6, 0
bl sub_8124DC0
ldr r1, _08125BEC @ =gUnknown_3005E98
@@ -14406,7 +14406,7 @@ sub_8125C48: @ 8125C48
bhi _08125C84
adds r0, r4, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08125C84:
ldr r1, _08125CD8 @ =gStringVar1
adds r0, r5, 0
@@ -14561,7 +14561,7 @@ sub_8125DBC: @ 8125DBC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -14712,7 +14712,7 @@ _08125EE8:
movs r1, 0
movs r2, 0
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_08125F02:
add sp, 0xC
pop {r4,r5}
@@ -14799,7 +14799,7 @@ sub_8125F5C: @ 8125F5C
movs r0, 0x4
adds r1, r6, 0
adds r3, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldr r1, _08125FF0 @ =gStringVar1
adds r0, r6, 0
bl GetMonNickname
@@ -15016,7 +15016,7 @@ sub_8126170: @ 8126170
muls r1, r0
ldr r0, _081261A4 @ =gPlayerParty
adds r4, r1, r0
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r5, r0, 24
cmp r5, 0
@@ -15268,7 +15268,7 @@ sub_8126350: @ 8126350
ldr r3, _08126424 @ =0x0000ffff
movs r0, 0x4
adds r1, r4, 0
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
movs r0, 0
bl PlayFanfareByFanfareNum
ldrb r0, [r6, 0x9]
@@ -15276,7 +15276,7 @@ sub_8126350: @ 8126350
bl sub_8126440
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
ldr r1, _08126428 @ =gStringVar1
adds r0, r4, 0
bl GetMonNickname
@@ -16112,12 +16112,12 @@ _08126A94:
ldrh r2, [r0]
ldr r3, _08126AE0 @ =0x0000ffff
movs r0, 0x4
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
_08126AB4:
ldr r0, _08126ADC @ =gSpecialVar_ItemId
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_08126ABE:
ldr r1, _08126AE4 @ =gTasks
lsls r0, r4, 2
@@ -16266,10 +16266,10 @@ sub_8126BD4: @ 8126BD4
ldrh r2, [r5]
ldr r3, _08126C20 @ =0x0000ffff
movs r0, 0x4
- bl sub_80A2294
+ bl ItemUse_SetQuestLogEvent
ldrh r0, [r5]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
pop {r4,r5}
pop {r0}
bx r0
@@ -16640,7 +16640,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -16684,7 +16684,7 @@ _08126F0A:
movs r1, 0
movs r2, 0x5
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
ldr r1, _08126F38 @ =gUnknown_203B0A0
ldr r0, _08126F3C @ =gSpecialVar_ItemId
ldrh r0, [r0]
@@ -16971,7 +16971,7 @@ sub_812713C: @ 812713C
bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
adds r0, r7, 0
bl sub_81273AC
ldr r0, [r6]
@@ -16995,7 +16995,7 @@ _0812719C:
str r1, [sp, 0x8]
movs r1, 0xFF
movs r3, 0x1
- bl sub_811EA44
+ bl PartyMenuInit
_081271B8:
add sp, 0xC
pop {r4-r7}
@@ -17093,7 +17093,7 @@ sub_8127268: @ 8127268
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -17117,7 +17117,7 @@ _0812728E:
ldr r6, _081272C4 @ =gUnknown_203B0D8
ldrh r0, [r6]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081272CC
@@ -17233,14 +17233,14 @@ sub_8127384: @ 8127384
bne _081273A0
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A460
+ bl RemoveItemFromPC
b _081273A8
.align 2, 0
_0812739C: .4byte gUnknown_203B0A0
_081273A0:
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_081273A8:
pop {r0}
bx r0
@@ -17257,14 +17257,14 @@ sub_81273AC: @ 81273AC
beq _081273C8
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A3C8
+ bl AddPCItem
b _081273D0
.align 2, 0
_081273C4: .4byte gUnknown_203B0A0
_081273C8:
adds r0, r1, 0
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
_081273D0:
lsls r0, 24
lsrs r0, 24
@@ -17286,7 +17286,7 @@ sub_81273D8: @ 81273D8
movs r1, 0
movs r2, 0x7
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -17387,7 +17387,7 @@ sub_81274A8: @ 81274A8
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
ldr r1, _081274F4 @ =gUnknown_203B0A0
lsls r4, 6
ldrb r2, [r1, 0x8]
@@ -17824,7 +17824,7 @@ sub_81277F4: @ 81277F4
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -17850,7 +17850,7 @@ sub_812781C: @ 812781C
movs r1, 0
movs r2, 0xC
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
b _08127870
.align 2, 0
_08127844: .4byte gSpecialVar_0x8005
@@ -17867,7 +17867,7 @@ _08127850:
movs r1, 0
movs r2, 0xC
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
ldr r1, _08127880 @ =gUnknown_203B0A0
ldr r0, _08127884 @ =gSpecialVar_0x8007
ldrh r0, [r0]
@@ -17897,7 +17897,7 @@ sub_8127888: @ 8127888
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -17960,7 +17960,7 @@ sub_81278DC: @ 81278DC
movs r0, 0x1
adds r2, r4, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
movs r0, 0x8
bl sub_80EB2F4
b _08127950
@@ -17982,7 +17982,7 @@ _08127930:
movs r0, 0x1
adds r2, r4, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
_08127950:
bl nullsub_44
bl pokemon_change_order
@@ -18012,7 +18012,7 @@ sub_8127968: @ 8127968
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
bl nullsub_44
bl pokemon_change_order
add sp, 0xC
@@ -18040,7 +18040,7 @@ sub_81279A4: @ 81279A4
movs r0, 0x1
movs r2, 0xE
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
bl nullsub_44
bl pokemon_change_order
add sp, 0xC
@@ -18079,7 +18079,7 @@ sub_81279E0: @ 81279E0
movs r0, 0x1
movs r2, 0x3
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
movs r0, 0x8
bl sub_80EB2F4
b _08127A62
@@ -18110,7 +18110,7 @@ _08127A44:
movs r0, 0x1
movs r2, 0x3
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
_08127A62:
bl nullsub_44
bl pokemon_change_order
@@ -19069,7 +19069,7 @@ sub_8128198: @ 8128198
movs r1, 0x3
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -19301,28 +19301,28 @@ _0812836C: .4byte gUnknown_2022B58
sub_8128370: @ 8128370
push {lr}
sub sp, 0xC
- ldr r1, _08128398 @ =gUnknown_3005024
+ ldr r1, _08128398 @ =gFieldCallback2
ldr r0, _0812839C @ =hm_add_c3_without_phase_2
str r0, [r1]
movs r0, 0xF
str r0, [sp]
ldr r0, _081283A0 @ =sub_811FB28
str r0, [sp, 0x4]
- ldr r0, _081283A4 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _081283A4 @ =CB2_ReturnToField
str r0, [sp, 0x8]
movs r0, 0x6
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
-_08128398: .4byte gUnknown_3005024
+_08128398: .4byte gFieldCallback2
_0812839C: .4byte hm_add_c3_without_phase_2
_081283A0: .4byte sub_811FB28
-_081283A4: .4byte c2_exit_to_overworld_2_switch
+_081283A4: .4byte CB2_ReturnToField
thumb_func_end sub_8128370
thumb_func_start sub_81283A8
@@ -19331,27 +19331,27 @@ sub_81283A8: @ 81283A8
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
- ldr r2, _081283D4 @ =gUnknown_3005024
+ ldr r2, _081283D4 @ =gFieldCallback2
ldr r1, _081283D8 @ =hm_add_c3_without_phase_2
str r1, [r2]
movs r1, 0
str r1, [sp]
ldr r1, _081283DC @ =sub_811FB28
str r1, [sp, 0x4]
- ldr r1, _081283E0 @ =c2_exit_to_overworld_2_switch
+ ldr r1, _081283E0 @ =CB2_ReturnToField
str r1, [sp, 0x8]
movs r1, 0
movs r2, 0xB
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
-_081283D4: .4byte gUnknown_3005024
+_081283D4: .4byte gFieldCallback2
_081283D8: .4byte hm_add_c3_without_phase_2
_081283DC: .4byte sub_811FB28
-_081283E0: .4byte c2_exit_to_overworld_2_switch
+_081283E0: .4byte CB2_ReturnToField
thumb_func_end sub_81283A8
thumb_func_start hm_add_c3_without_phase_2
diff --git a/asm/player_pc.s b/asm/player_pc.s
index c4eab0f30..f9d781513 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -9,7 +9,7 @@
sub_80EB658: @ 80EB658
push {r4-r6,lr}
movs r4, 0
- bl sub_809A2A4
+ bl ClearPCItemSlots
ldr r1, _080EB6A8 @ =gUnknown_8402220
ldrh r0, [r1]
cmp r0, 0
@@ -25,7 +25,7 @@ _080EB672:
ldrh r0, [r0]
adds r1, r6
ldrh r1, [r1]
- bl sub_809A3C8
+ bl AddPCItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -187,7 +187,7 @@ _080EB77E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EB814 @ =gTasks
@@ -237,7 +237,7 @@ sub_80EB81C: @ 80EB81C
bl PlaySE
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -256,7 +256,7 @@ _080EB874: .4byte sub_80EB9B8
_080EB878:
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -361,11 +361,11 @@ _080EB940:
cmp r0, 0
bne _080EB95C
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EB962
_080EB95C:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EB962:
ldr r0, _080EB990 @ =gUnknown_203AAC4
ldrb r0, [r0, 0x5]
@@ -376,7 +376,7 @@ _080EB962:
bne _080EB99C
movs r0, 0
movs r1, 0
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r5, 0
bl sub_80EBEB0
ldr r0, _080EB994 @ =gTasks
@@ -449,14 +449,14 @@ sub_80EB9E8: @ 80EB9E8
cmp r0, 0
bne _080EBA18
movs r0, 0x21
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EBA1E
.align 2, 0
_080EBA10: .4byte gTasks+0x8
_080EBA14: .4byte gUnknown_203AAC4
_080EBA18:
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EBA1E:
ldr r0, _080EBA80 @ =gUnknown_8402258
bl AddWindow
@@ -488,7 +488,7 @@ _080EBA1E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EBA88 @ =gUnknown_84021DC
@@ -513,7 +513,7 @@ sub_80EBA8C: @ 80EBA8C
adds r4, r0, 0
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
movs r0, 0x1
str r0, [sp]
movs r0, 0
@@ -627,12 +627,12 @@ sub_80EBB70: @ 80EBB70
ands r0, r1
cmp r0, 0
bne _080EBB9C
- bl sub_80563F0
- ldr r2, _080EBBA8 @ =c2_exit_to_overworld_2_switch
+ bl CleanupOverworldWindowsAndTilemaps
+ ldr r2, _080EBBA8 @ =CB2_ReturnToField
movs r0, 0x3
movs r1, 0
bl sub_8107DB4
- ldr r1, _080EBBAC @ =gUnknown_3005020
+ ldr r1, _080EBBAC @ =gFieldCallback
ldr r0, _080EBBB0 @ =sub_80EBC0C
str r0, [r1]
adds r0, r4, 0
@@ -643,8 +643,8 @@ _080EBB9C:
bx r0
.align 2, 0
_080EBBA4: .4byte gPaletteFade
-_080EBBA8: .4byte c2_exit_to_overworld_2_switch
-_080EBBAC: .4byte gUnknown_3005020
+_080EBBA8: .4byte CB2_ReturnToField
+_080EBBAC: .4byte gFieldCallback
_080EBBB0: .4byte sub_80EBC0C
thumb_func_end sub_80EBB70
@@ -702,7 +702,7 @@ sub_80EBC0C: @ 80EBC0C
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _080EBC34 @ =sub_80EBBDC
movs r1, 0
bl CreateTask
@@ -727,7 +727,7 @@ sub_80EBC38: @ 80EBC38
lsls r6, r0, 3
ldr r7, _080EBC6C @ =gTasks+0x8
adds r4, r6, r7
- bl sub_809A33C
+ bl CountItemsInPC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x4]
@@ -740,19 +740,19 @@ sub_80EBC38: @ 80EBC38
adds r0, r6, r0
ldr r1, _080EBC70 @ =sub_80EBD18
str r1, [r0]
- ldr r1, _080EBC74 @ =gUnknown_3005020
+ ldr r1, _080EBC74 @ =gFieldCallback
ldr r0, _080EBC78 @ =sub_80EBCAC
str r0, [r1]
b _080EBC9C
.align 2, 0
_080EBC6C: .4byte gTasks+0x8
_080EBC70: .4byte sub_80EBD18
-_080EBC74: .4byte gUnknown_3005020
+_080EBC74: .4byte gFieldCallback
_080EBC78: .4byte sub_80EBCAC
_080EBC7C:
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -777,7 +777,7 @@ sub_80EBCAC: @ 80EBCAC
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _080EBCD4 @ =sub_80EBBDC
movs r1, 0
bl CreateTask
@@ -808,10 +808,10 @@ sub_80EBCD8: @ 80EBCD8
ands r0, r1
cmp r0, 0
bne _080EBD06
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldrb r0, [r5, 0xC]
- ldr r1, _080EBD14 @ =c2_exit_to_overworld_2_switch
- bl sub_810D3F4
+ ldr r1, _080EBD14 @ =CB2_ReturnToField
+ bl ItemPc_Init
adds r0, r4, 0
bl DestroyTask
_080EBD06:
@@ -821,7 +821,7 @@ _080EBD06:
.align 2, 0
_080EBD0C: .4byte gTasks+0x8
_080EBD10: .4byte gPaletteFade
-_080EBD14: .4byte c2_exit_to_overworld_2_switch
+_080EBD14: .4byte CB2_ReturnToField
thumb_func_end sub_80EBCD8
thumb_func_start sub_80EBD18
@@ -837,7 +837,7 @@ sub_80EBD18: @ 80EBD18
ldr r0, _080EBD44 @ =sub_80EBCD8
str r0, [r1]
movs r0, 0
- bl sub_810DE94
+ bl ItemPc_SetInitializedFlag
movs r0, 0x1
movs r1, 0
bl fade_screen
@@ -861,7 +861,7 @@ sub_80EBD48: @ 80EBD48
adds r4, r0
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -1142,7 +1142,7 @@ sub_80EBF40: @ 80EBF40
mov r8, r1
adds r1, r7, 0
mov r2, r8
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
movs r0, 0x2
negs r0, r0
cmp r6, r0
@@ -1174,7 +1174,7 @@ _080EBFB6:
ldrb r0, [r4, 0x16]
adds r1, r7, 0
mov r2, r8
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
mov r1, r8
@@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094
ldrb r0, [r4, 0x16]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
bl sub_810EDB0
@@ -1341,7 +1341,7 @@ sub_80EC0D8: @ 80EC0D8
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EC154 @ =gTasks
@@ -1438,7 +1438,7 @@ sub_80EC1D4: @ 80EC1D4
cmp r0, 0
bne _080EC216
bl sub_810EDB0
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r2, _080EC220 @ =gSaveBlock1Ptr
ldr r1, _080EC224 @ =gUnknown_203AAC4
ldrh r0, [r1]
@@ -1503,13 +1503,13 @@ sub_80EC260: @ 80EC260
cmp r0, 0
bne _080EC278
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EC27E
.align 2, 0
_080EC274: .4byte gUnknown_203AAC4
_080EC278:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EC27E:
bl sub_80F6E9C
ldr r0, _080EC2A8 @ =sub_80EC230
@@ -1543,17 +1543,17 @@ _080EC2B6:
thumb_func_start sub_80EC2C0
sub_80EC2C0: @ 80EC2C0
push {lr}
- ldr r0, _080EC2D4 @ =gUnknown_3005020
+ ldr r0, _080EC2D4 @ =gFieldCallback
ldr r1, _080EC2D8 @ =sub_80EC260
str r1, [r0]
- ldr r0, _080EC2DC @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080EC2DC @ =CB2_ReturnToField
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_080EC2D4: .4byte gUnknown_3005020
+_080EC2D4: .4byte gFieldCallback
_080EC2D8: .4byte sub_80EC260
-_080EC2DC: .4byte c2_exit_to_overworld_2_switch
+_080EC2DC: .4byte CB2_ReturnToField
thumb_func_end sub_80EC2C0
thumb_func_start sub_80EC2E0
@@ -1599,7 +1599,7 @@ sub_80EC324: @ 80EC324
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r0, 24
movs r1, 0x1
@@ -1649,7 +1649,7 @@ sub_80EC364: @ 80EC364
adds r5, r1, r0
ldrh r0, [r5, 0x20]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _080EC3B4
@@ -1753,7 +1753,7 @@ sub_80EC444: @ 80EC444
cmp r0, 0
bne _080EC468
bl sub_810EDB0
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
bl sub_81273D8
adds r0, r4, 0
bl DestroyTask
@@ -1773,13 +1773,13 @@ sub_80EC474: @ 80EC474
cmp r0, 0
bne _080EC48C
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EC492
.align 2, 0
_080EC488: .4byte gUnknown_203AAC4
_080EC48C:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EC492:
ldr r0, _080EC4E8 @ =sub_80EC230
movs r1, 0
@@ -1834,17 +1834,17 @@ _080EC4F6:
thumb_func_start sub_80EC500
sub_80EC500: @ 80EC500
push {lr}
- ldr r0, _080EC514 @ =gUnknown_3005020
+ ldr r0, _080EC514 @ =gFieldCallback
ldr r1, _080EC518 @ =sub_80EC474
str r1, [r0]
- ldr r0, _080EC51C @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080EC51C @ =CB2_ReturnToField
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_080EC514: .4byte gUnknown_3005020
+_080EC514: .4byte gFieldCallback
_080EC518: .4byte sub_80EC474
-_080EC51C: .4byte c2_exit_to_overworld_2_switch
+_080EC51C: .4byte CB2_ReturnToField
thumb_func_end sub_80EC500
thumb_func_start sub_80EC520
@@ -1852,14 +1852,14 @@ sub_80EC520: @ 80EC520
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080EC534 @ =gUnknown_841632A
+ ldr r2, _080EC534 @ =gText_ThereIsNoPokemon
ldr r3, _080EC538 @ =sub_80EC574
movs r1, 0x2
bl DisplayItemMessageOnField
pop {r0}
bx r0
.align 2, 0
-_080EC534: .4byte gUnknown_841632A
+_080EC534: .4byte gText_ThereIsNoPokemon
_080EC538: .4byte sub_80EC574
thumb_func_end sub_80EC520
@@ -1871,7 +1871,7 @@ sub_80EC53C: @ 80EC53C
lsrs r4, 24
movs r0, 0
movs r1, 0
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r4, 0
bl sub_80EBEB0
movs r0, 0
diff --git a/asm/poison.s b/asm/poison.s
new file mode 100644
index 000000000..adaa51dbd
--- /dev/null
+++ b/asm/poison.s
@@ -0,0 +1,326 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B1620
+sub_80B1620: @ 80B1620
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B1674 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B1636
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080B1636:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r4, _080B1678 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080B167C @ =0x0000ffe2
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_8075068
+ ldr r0, _080B1680 @ =sub_80B1684
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1674: .4byte gBattleAnimArgs
+_080B1678: .4byte gBattleAnimTarget
+_080B167C: .4byte 0x0000ffe2
+_080B1680: .4byte sub_80B1684
+ thumb_func_end sub_80B1620
+
+ thumb_func_start sub_80B1684
+sub_80B1684: @ 80B1684
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1698
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B1698:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1684
+
+ thumb_func_start sub_80B16A0
+sub_80B16A0: @ 80B16A0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r5, _080B1714 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080B16B8
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080B16B8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080B1718 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ mov r6, sp
+ adds r6, 0x2
+ movs r1, 0x1
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_8076D9C
+ ldr r0, _080B171C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B16E6
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ strh r0, [r5, 0x8]
+_080B16E6:
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ mov r1, sp
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ ldrh r6, [r6]
+ adds r0, r6
+ strh r0, [r4, 0x36]
+ ldr r0, _080B1720 @ =0x0000ffe2
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_8075068
+ ldr r0, _080B1724 @ =sub_80B1728
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1714: .4byte gBattleAnimArgs
+_080B1718: .4byte gBattleAnimTarget
+_080B171C: .4byte gBattleAnimAttacker
+_080B1720: .4byte 0x0000ffe2
+_080B1724: .4byte sub_80B1728
+ thumb_func_end sub_80B16A0
+
+ thumb_func_start sub_80B1728
+sub_80B1728: @ 80B1728
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B173C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B173C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1728
+
+ thumb_func_start sub_80B1744
+sub_80B1744: @ 80B1744
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B1790 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80754B8
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x38]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ ldr r0, _080B1794 @ =sub_80B1798
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1790: .4byte gBattleAnimArgs
+_080B1794: .4byte sub_80B1798
+ thumb_func_end sub_80B1744
+
+ thumb_func_start sub_80B1798
+sub_80B1798: @ 80B1798
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074D00
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B17BE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B17BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1798
+
+ thumb_func_start sub_80B17C4
+sub_80B17C4: @ 80B17C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080B1824 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_8076D9C
+ ldr r0, _080B1828 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B17F0
+ ldr r1, _080B182C @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080B17F0:
+ ldr r0, _080B182C @ =gBattleAnimArgs
+ ldrh r2, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r2, r1
+ strh r2, [r4, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ ldrh r3, [r0, 0x8]
+ strh r3, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ adds r2, r0
+ strh r2, [r4, 0x32]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ ldr r0, _080B1830 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080B1834 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1824: .4byte gBattleAnimTarget
+_080B1828: .4byte gBattleAnimAttacker
+_080B182C: .4byte gBattleAnimArgs
+_080B1830: .4byte sub_8075590
+_080B1834: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B17C4
+
+ thumb_func_start sub_80B1838
+sub_80B1838: @ 80B1838
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B1850 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080B1854
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ b _080B188A
+ .align 2, 0
+_080B1850: .4byte gBattleAnimArgs
+_080B1854:
+ ldr r0, _080B1894 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_8076D9C
+ ldr r0, _080B1898 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B187A
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080B187A:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080B188A:
+ ldr r0, _080B189C @ =sub_80B18A0
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1894: .4byte gBattleAnimTarget
+_080B1898: .4byte gBattleAnimAttacker
+_080B189C: .4byte sub_80B18A0
+ thumb_func_end sub_80B1838
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokeball.s b/asm/pokeball.s
index 11572c80f..eace88832 100644
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -432,7 +432,7 @@ sub_804AC94: @ 804AC94
strh r7, [r6, 0x38]
ldr r0, _0804ACF4 @ =sub_804AD00
str r0, [r6, 0x1C]
- ldr r5, _0804ACF8 @ =gUnknown_2023D44
+ ldr r5, _0804ACF8 @ =gBattlerSpriteIds
movs r1, 0x3A
ldrsh r0, [r6, r1]
adds r0, r5
@@ -468,7 +468,7 @@ _0804ACEE:
bx r0
.align 2, 0
_0804ACF4: .4byte sub_804AD00
-_0804ACF8: .4byte gUnknown_2023D44
+_0804ACF8: .4byte gBattlerSpriteIds
_0804ACFC: .4byte gSprites
thumb_func_end sub_804AC94
@@ -487,7 +487,7 @@ sub_804AD00: @ 804AD00
bl PlaySE
_0804AD18:
ldr r6, _0804AD64 @ =gSprites
- ldr r5, _0804AD68 @ =gUnknown_2023D44
+ ldr r5, _0804AD68 @ =gBattlerSpriteIds
movs r1, 0x3A
ldrsh r0, [r4, r1]
adds r0, r5
@@ -525,7 +525,7 @@ _0804AD18:
b _0804AD90
.align 2, 0
_0804AD64: .4byte gSprites
-_0804AD68: .4byte gUnknown_2023D44
+_0804AD68: .4byte gBattlerSpriteIds
_0804AD6C: .4byte sub_804AD98
_0804AD70:
ldrh r0, [r1, 0x30]
@@ -1363,7 +1363,7 @@ _0804B3F2:
strh r7, [r1, 0x10]
strh r2, [r1, 0x26]
_0804B420:
- ldr r5, _0804B47C @ =gUnknown_2023D44
+ ldr r5, _0804B47C @ =gBattlerSpriteIds
movs r1, 0x3A
ldrsh r0, [r6, r1]
adds r0, r5
@@ -1405,7 +1405,7 @@ _0804B420:
.align 2, 0
_0804B474: .4byte Task_PlayCryWhenReleasedFromBall
_0804B478: .4byte gTasks
-_0804B47C: .4byte gUnknown_2023D44
+_0804B47C: .4byte gBattlerSpriteIds
_0804B480: .4byte gSprites
thumb_func_end sub_804B268
@@ -1437,7 +1437,7 @@ HandleBallAnimEnd: @ 804B4A4
lsls r0, 24
lsrs r6, r0, 24
ldr r4, _0804B508 @ =gSprites
- ldr r0, _0804B50C @ =gUnknown_2023D44
+ ldr r0, _0804B50C @ =gBattlerSpriteIds
adds r3, r6, r0
ldrb r1, [r3]
lsls r0, r1, 4
@@ -1482,7 +1482,7 @@ _0804B4E6:
b _0804B52C
.align 2, 0
_0804B508: .4byte gSprites
-_0804B50C: .4byte gUnknown_2023D44
+_0804B50C: .4byte gBattlerSpriteIds
_0804B510:
ldr r2, _0804B5B4 @ =0xfffffee0
adds r0, r2, 0
@@ -1509,7 +1509,7 @@ _0804B52C:
cmp r7, 0
beq _0804B5AE
ldr r2, _0804B5B8 @ =gSprites
- ldr r0, _0804B5BC @ =gUnknown_2023D44
+ ldr r0, _0804B5BC @ =gBattlerSpriteIds
adds r0, r6, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -1571,7 +1571,7 @@ _0804B5AE:
.align 2, 0
_0804B5B4: .4byte 0xfffffee0
_0804B5B8: .4byte gSprites
-_0804B5BC: .4byte gUnknown_2023D44
+_0804B5BC: .4byte gBattlerSpriteIds
_0804B5C0: .4byte gUnknown_2024005
_0804B5C4: .4byte gUnknown_2024018
thumb_func_end HandleBallAnimEnd
@@ -1607,7 +1607,7 @@ _0804B600:
cmp r1, r0
bne _0804B666
ldr r5, _0804B670 @ =gSprites
- ldr r4, _0804B674 @ =gUnknown_2023D44
+ ldr r4, _0804B674 @ =gBattlerSpriteIds
movs r1, 0x3A
ldrsh r0, [r6, r1]
adds r0, r4
@@ -1658,7 +1658,7 @@ _0804B666:
.align 2, 0
_0804B66C: .4byte 0x0000013b
_0804B670: .4byte gSprites
-_0804B674: .4byte gUnknown_2023D44
+_0804B674: .4byte gBattlerSpriteIds
_0804B678: .4byte gMain
_0804B67C: .4byte 0x00000439
_0804B680: .4byte gUnknown_2024018
@@ -2276,7 +2276,7 @@ _0804BB22:
ldrsh r0, [r4, r7]
cmp r0, 0x7F
bgt _0804BB64
- ldr r1, _0804BB60 @ =gUnknown_825E074
+ ldr r1, _0804BB60 @ =gSineTable
lsls r0, r2, 24
lsrs r0, 23
adds r0, r1
@@ -2297,7 +2297,7 @@ _0804BB48:
b _0804BB72
.align 2, 0
_0804BB5C: .4byte gSprites
-_0804BB60: .4byte gUnknown_825E074
+_0804BB60: .4byte gSineTable
_0804BB64:
ldrh r0, [r4, 0x38]
strh r0, [r5, 0x20]
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index 3d3ca02ea..80cc1ab5d 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -58,7 +58,7 @@ sub_810250C: @ 810250C
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r0, 0x1
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08102598 @ =gUnknown_8451EBC
@@ -95,7 +95,7 @@ sub_810250C: @ 810250C
movs r0, 0x3
adds r2, r4, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
b _081025AE
.align 2, 0
_08102598: .4byte gUnknown_8451EBC
@@ -106,7 +106,7 @@ _081025A0:
movs r0, 0x3
adds r2, r4, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
_081025AE:
ldr r0, _081026A8 @ =gUnknown_8451ECC
bl InitWindows
@@ -309,7 +309,7 @@ sub_810275C: @ 810275C
ldr r0, _08102794 @ =sub_81024D4
bl SetMainCallback2
movs r0, 0x4
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
@@ -593,7 +593,7 @@ _081029D0:
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
bl sub_806E25C
cmp r0, 0
beq _081029F4
@@ -627,7 +627,7 @@ _08102A14:
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
ldr r0, _08102A4C @ =gMain
ldrh r1, [r0, 0x2E]
movs r3, 0x1
@@ -754,7 +754,7 @@ _08102B24:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
@@ -804,7 +804,7 @@ _08102B94:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -832,7 +832,7 @@ _08102BD8:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -1367,7 +1367,7 @@ _0810307C:
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
bl sub_81039F0
ldr r1, [r4]
adds r1, 0x60
@@ -1385,7 +1385,7 @@ _08103098:
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
ldr r0, _081030F0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r3, 0x1
@@ -1545,7 +1545,7 @@ sub_810317C: @ 810317C
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
- ldr r0, _08103234 @ =gUnknown_8415F51
+ ldr r0, _08103234 @ =gText_PickOKExit
bl sub_8104C2C
movs r0, 0
movs r1, 0x2
@@ -1562,7 +1562,7 @@ _08103224: .4byte gUnknown_845216C
_08103228: .4byte gUnknown_203ACF0
_0810322C: .4byte gUnknown_8452174
_08103230: .4byte gUnknown_8415F3D
-_08103234: .4byte gUnknown_8415F51
+_08103234: .4byte gText_PickOKExit
thumb_func_end sub_810317C
thumb_func_start sub_8103238
@@ -1687,7 +1687,7 @@ _08103344:
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
bl sub_81039F0
ldr r1, [r4]
adds r1, 0x60
@@ -1706,7 +1706,7 @@ _08103362:
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
ldr r0, _081033C4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
@@ -1874,7 +1874,7 @@ sub_810345C: @ 810345C
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
- ldr r0, _08103514 @ =gUnknown_8415F51
+ ldr r0, _08103514 @ =gText_PickOKExit
bl sub_8104C2C
movs r0, 0
movs r1, 0x2
@@ -1891,7 +1891,7 @@ _08103504: .4byte gUnknown_845216C
_08103508: .4byte gUnknown_203ACF0
_0810350C: .4byte gUnknown_8452174
_08103510: .4byte gUnknown_8415F4A
-_08103514: .4byte gUnknown_8415F51
+_08103514: .4byte gText_PickOKExit
thumb_func_end sub_810345C
thumb_func_start sub_8103518
@@ -2467,7 +2467,7 @@ _0810399C:
adds r1, r2, 0
adds r1, 0x36
adds r2, 0x34
- bl sub_810713C
+ bl DestroyListMenu
b _081039E8
.align 2, 0
_081039B4: .4byte gUnknown_203ACF0
@@ -2480,7 +2480,7 @@ _081039B8:
adds r1, r2, 0
adds r1, 0x3A
adds r2, 0x38
- bl sub_810713C
+ bl DestroyListMenu
b _081039E8
.align 2, 0
_081039D0: .4byte gUnknown_203ACF0
@@ -2493,7 +2493,7 @@ _081039D4:
adds r1, r2, 0
adds r1, 0x3E
adds r2, 0x3C
- bl sub_810713C
+ bl DestroyListMenu
_081039E8:
pop {r0}
bx r0
@@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40
movs r1, 0
movs r2, 0x28
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r0, _08103AC4 @ =gBaseStats
lsls r4, r5, 3
subs r4, r5
@@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x78
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08103AB6
@@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x98
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
_08103AB6:
add sp, 0x4
pop {r4-r7}
@@ -4266,7 +4266,7 @@ _08104852:
adds r0, r7, 0
adds r1, r5, 0
adds r2, r6, 0
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0x18
pop {r4-r7}
pop {r0}
@@ -7753,7 +7753,7 @@ _08106478:
lsrs r1, 24
movs r2, 0
movs r3, 0x1
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08106504
@@ -7765,7 +7765,7 @@ _08106478:
lsrs r1, 24
movs r2, 0x20
movs r3, 0x1
- bl sub_8107D68
+ bl blit_move_info_icon
_08106504:
ldr r7, _081066B8 @ =gUnknown_203ACF0
ldr r0, [r7]
@@ -7777,7 +7777,7 @@ _08106504:
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
- bl dp13_810BB8C
+ bl ResetAllPicSprites
ldr r0, _081066BC @ =gUnknown_8452368
movs r1, 0x90
lsls r1, 1
@@ -7802,7 +7802,7 @@ _08106534:
ldr r0, [sp, 0x1C]
movs r1, 0x8
movs r3, 0x1
- bl sub_810C1CC
+ bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r7]
adds r1, 0x58
strb r0, [r1]
@@ -7892,7 +7892,7 @@ _08106534:
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
- bl sub_810C374
+ bl PlayerGenderToFrontTrainerPicId_Debug
lsls r0, 16
lsrs r0, 16
movs r3, 0
@@ -7902,7 +7902,7 @@ _08106534:
movs r1, 0x1
movs r2, 0x50
movs r3, 0x68
- bl sub_810C2A4
+ bl CreateTrainerPicSprite
ldr r1, [r7]
adds r1, 0x59
strb r0, [r1]
@@ -8114,7 +8114,7 @@ _081067CE:
ldrb r0, [r1]
cmp r0, 0xFF
beq _081067F2
- bl sub_810C2E8
+ bl FreeAndDestroyTrainerPicSprite
_081067F2:
ldr r0, [r4]
adds r1, r0, 0
@@ -8122,7 +8122,7 @@ _081067F2:
ldrb r0, [r1]
cmp r0, 0xFF
beq _08106802
- bl sub_810C214
+ bl FreeAndDestroyMonPicSprite
_08106802:
movs r0, 0
pop {r4,r5}
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index 0d4ee1bcb..416c996bb 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -785,8 +785,8 @@ _08044AE8: .4byte gUnknown_825E05C
_08044AEC: .4byte gUnknown_82349BC
thumb_func_end sub_8044A40
- thumb_func_start sub_8044AF0
-sub_8044AF0: @ 8044AF0
+ thumb_func_start SetUpMonSpriteManagerMaybe
+SetUpMonSpriteManagerMaybe: @ 8044AF0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1124,7 +1124,7 @@ _08044D70:
bx r1
.align 2, 0
_08044D7C: .4byte gUnknown_20244F4
- thumb_func_end sub_8044AF0
+ thumb_func_end SetUpMonSpriteManagerMaybe
thumb_func_start sub_8044D80
sub_8044D80: @ 8044D80
diff --git a/asm/unk_8147500.s b/asm/pokemon_jump.s
index 53fc6a8a0..c00c08f20 100644
--- a/asm/unk_8147500.s
+++ b/asm/pokemon_jump.s
@@ -5,118 +5,6 @@
.text
- thumb_func_start sub_8147500
-sub_8147500: @ 8147500
- push {lr}
- ldr r0, _08147518 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- ldr r0, _0814751C @ =gSpecialVar_0x8006
- ldrh r2, [r0]
- cmp r1, 0x8
- beq _08147512
- cmp r2, 0x8
- bne _08147520
-_08147512:
- movs r0, 0x1
- b _0814758E
- .align 2, 0
-_08147518: .4byte gSpecialVar_0x8004
-_0814751C: .4byte gSpecialVar_0x8006
-_08147520:
- cmp r1, 0
- beq _08147528
- cmp r2, 0
- bne _0814752C
-_08147528:
- movs r0, 0x7
- b _0814758E
-_0814752C:
- cmp r1, 0x9
- beq _08147534
- cmp r2, 0x9
- bne _08147538
-_08147534:
- movs r0, 0xA
- b _0814758E
-_08147538:
- cmp r1, 0xA
- beq _08147540
- cmp r2, 0xA
- bne _08147544
-_08147540:
- movs r0, 0xC
- b _0814758E
-_08147544:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0814755C
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0814755C
- movs r0, 0x2
- b _0814758E
-_0814755C:
- subs r0, r1, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08147574
- subs r0, r2, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08147574
- movs r0, 0x3
- b _0814758E
-_08147574:
- subs r0, r1, 0x6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0814758C
- subs r0, r2, 0x6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0814758C
- movs r0, 0x5
- b _0814758E
-_0814758C:
- movs r0, 0x6
-_0814758E:
- pop {r1}
- bx r1
- thumb_func_end sub_8147500
-
- thumb_func_start sub_8147594
-sub_8147594: @ 8147594
- push {lr}
- ldr r0, _081475B0 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldrh r1, [r2, 0x4]
- ldr r0, _081475B4 @ =0x00000503
- cmp r1, r0
- bne _081475B8
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x17
- bgt _081475B8
- movs r0, 0x1
- b _081475BA
- .align 2, 0
-_081475B0: .4byte gSaveBlock1Ptr
-_081475B4: .4byte 0x00000503
-_081475B8:
- movs r0, 0
-_081475BA:
- pop {r1}
- bx r1
- thumb_func_end sub_8147594
-
thumb_func_start sub_81475C0
sub_81475C0: @ 81475C0
push {r4,r5,lr}
@@ -708,7 +596,7 @@ sub_8147A34: @ 8147A34
ldrb r0, [r0]
cmp r0, 0
beq _08147A98
- ldr r1, _08147A90 @ =gUnknown_3003ED0
+ ldr r1, _08147A90 @ =gRecvCmds
ldrh r0, [r1, 0x2]
ldr r5, _08147A94 @ =0x00007fff
cmp r0, r5
@@ -738,7 +626,7 @@ _08147A5C:
.align 2, 0
_08147A88: .4byte gTasks+0x8
_08147A8C: .4byte gReceivedRemoteLinkPlayers
-_08147A90: .4byte gUnknown_3003ED0
+_08147A90: .4byte gRecvCmds
_08147A94: .4byte 0x00007fff
_08147A98:
ldrh r0, [r4, 0x16]
diff --git a/asm/unk_8147AA8.s b/asm/pokemon_jump_2.s
index a7761148d..a8595db7f 100644
--- a/asm/unk_8147AA8.s
+++ b/asm/pokemon_jump_2.s
@@ -2300,14 +2300,14 @@ _08148BFC:
beq _08148C54
ldrh r0, [r1, 0x3E]
ldrh r1, [r2]
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
beq _08148C54
ldr r0, [r4]
ldrh r0, [r0, 0x3E]
movs r1, 0x1
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
bne _08148C4C
@@ -4162,7 +4162,7 @@ _0814998A:
beq _0814999C
adds r0, r5, 0
adds r1, r4, 0
- bl sub_809A000
+ bl CheckBagHasSpace
lsls r0, 24
cmp r0, 0
beq _08149984
@@ -4313,7 +4313,7 @@ sub_8149A90: @ 8149A90
push {r4,lr}
sub sp, 0xC
adds r4, r1, 0
- ldr r3, _08149AC4 @ =gUnknown_3003ED0
+ ldr r3, _08149AC4 @ =gRecvCmds
lsls r2, r0, 4
adds r0, r2, r3
ldrh r1, [r0]
@@ -4337,7 +4337,7 @@ _08149AC0:
movs r0, 0
b _08149AD8
.align 2, 0
-_08149AC4: .4byte gUnknown_3003ED0
+_08149AC4: .4byte gRecvCmds
_08149AC8:
mov r0, sp
ldrh r0, [r0, 0x2]
@@ -4443,7 +4443,7 @@ sub_8149B7C: @ 8149B7C
sub sp, 0xC
adds r5, r0, 0
adds r4, r1, 0
- ldr r2, _08149BE4 @ =gUnknown_3003ED0
+ ldr r2, _08149BE4 @ =gRecvCmds
ldrh r0, [r2]
movs r1, 0xFF
lsls r1, 8
@@ -4491,7 +4491,7 @@ sub_8149B7C: @ 8149B7C
movs r0, 0x1
b _08149BEA
.align 2, 0
-_08149BE4: .4byte gUnknown_3003ED0
+_08149BE4: .4byte gRecvCmds
_08149BE8:
movs r0, 0
_08149BEA:
@@ -4534,7 +4534,7 @@ sub_8149C24: @ 8149C24
adds r4, r0, 0
adds r5, r2, 0
adds r6, r3, 0
- ldr r3, _08149C80 @ =gUnknown_3003ED0
+ ldr r3, _08149C80 @ =gRecvCmds
lsls r2, r1, 4
adds r0, r2, r3
ldrh r1, [r0]
@@ -4575,7 +4575,7 @@ sub_8149C24: @ 8149C24
movs r0, 0x1
b _08149C86
.align 2, 0
-_08149C80: .4byte gUnknown_3003ED0
+_08149C80: .4byte gRecvCmds
_08149C84:
movs r0, 0
_08149C86:
@@ -4590,7 +4590,7 @@ sub_8149C90: @ 8149C90
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
- ldr r3, _08149CDC @ =gUnknown_3003ED0
+ ldr r3, _08149CDC @ =gRecvCmds
lsls r2, r1, 4
adds r0, r2, r3
ldrh r1, [r0]
@@ -4625,7 +4625,7 @@ sub_8149C90: @ 8149C90
movs r0, 0x1
b _08149CE2
.align 2, 0
-_08149CDC: .4byte gUnknown_3003ED0
+_08149CDC: .4byte gRecvCmds
_08149CE0:
movs r0, 0
_08149CE2:
@@ -4875,7 +4875,7 @@ _08149DF0:
movs r0, 0
movs r1, 0xA
movs r2, 0xD0
- bl sub_814FE40
+ bl LoadUserWindowBorderGfx
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0x2
@@ -5179,7 +5179,7 @@ _0814A124:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x17
movs r1, 0x7
movs r2, 0
@@ -5265,7 +5265,7 @@ _0814A1D0:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
_0814A1F4:
@@ -5386,7 +5386,7 @@ _0814A2C0:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
_0814A2E4:
@@ -5468,7 +5468,7 @@ _0814A364:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
_0814A388:
@@ -5613,7 +5613,7 @@ sub_814A468: @ 814A468
ldr r1, [r5]
adds r1, 0x26
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r0, [r5]
adds r0, 0x66
adds r1, r6, 0
@@ -5705,7 +5705,7 @@ sub_814A53C: @ 814A53C
ldr r4, _0814A5AC @ =gUnknown_203F3D8
ldr r1, [r4]
adds r1, 0x26
- bl sub_8099E90
+ bl CopyItemName
bl UnkTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
@@ -5760,7 +5760,7 @@ sub_814A5B4: @ 814A5B4
ldr r4, _0814A624 @ =gUnknown_203F3D8
ldr r1, [r4]
adds r1, 0x26
- bl sub_8099E90
+ bl CopyItemName
bl UnkTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
@@ -5839,7 +5839,7 @@ _0814A652:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r4]
@@ -5961,7 +5961,7 @@ _0814A73C:
thumb_func_start sub_814A744
sub_814A744: @ 814A744
push {lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r0, 24
pop {r1}
@@ -6075,7 +6075,7 @@ sub_814A7D0: @ 814A7D0
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
add sp, 0x14
pop {r4,r5}
pop {r0}
@@ -6116,7 +6116,7 @@ sub_814A84C: @ 814A84C
movs r1, 0
movs r2, 0
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
add r0, sp, 0xC
str r0, [sp]
str r4, [sp, 0x4]
@@ -6126,7 +6126,7 @@ sub_814A84C: @ 814A84C
movs r1, 0
movs r2, 0
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x10
pop {r4}
pop {r0}
@@ -6582,7 +6582,7 @@ sub_814AB98: @ 814AB98
movs r1, 0
adds r2, r4, 0
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, [r6]
adds r0, 0x1C
add r0, r8
@@ -6877,7 +6877,7 @@ _0814AE2A:
beq _0814AEEC
ldrh r2, [r7]
lsls r0, r2, 3
- ldr r1, _0814AED8 @ =gUnknown_82350AC
+ ldr r1, _0814AED8 @ =gMonFrontPicTable
adds r0, r1
ldr r3, [r7, 0x8]
mov r1, r8
@@ -6948,7 +6948,7 @@ _0814AE2A:
strb r1, [r0]
b _0814AEF8
.align 2, 0
-_0814AED8: .4byte gUnknown_82350AC
+_0814AED8: .4byte gMonFrontPicTable
_0814AEDC: .4byte 0xffff0000
_0814AEE0: .4byte 0x000081a8
_0814AEE4: .4byte gSprites
@@ -7393,7 +7393,7 @@ _0814B1EC:
movs r0, 0
strh r0, [r5, 0x30]
_0814B1FE:
- ldr r1, _0814B22C @ =gUnknown_825E074
+ ldr r1, _0814B22C @ =gSineTable
movs r2, 0x30
ldrsh r0, [r5, r2]
lsls r0, 1
@@ -7417,7 +7417,7 @@ _0814B1FE:
strh r1, [r5, 0x2E]
b _0814B234
.align 2, 0
-_0814B22C: .4byte gUnknown_825E074
+_0814B22C: .4byte gSineTable
_0814B230:
ldr r0, _0814B23C @ =SpriteCallbackDummy
str r0, [r5, 0x1C]
@@ -7930,11 +7930,11 @@ sub_814B5C4: @ 814B5C4
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r0, r4, 0
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -7950,7 +7950,7 @@ sub_814B5C4: @ 814B5C4
adds r0, r4, 0
movs r1, 0x2
movs r3, 0
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
movs r7, 0
mov r8, r4
movs r1, 0xFF
@@ -7980,7 +7980,7 @@ _0814B63E:
mov r0, r8
movs r1, 0x2
movs r3, 0
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
ldr r0, [sp, 0x2C]
ldm r0!, {r1}
str r0, [sp, 0x2C]
@@ -8007,7 +8007,7 @@ _0814B63E:
mov r0, r8
movs r1, 0x2
adds r2, r5, 0
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
movs r0, 0xE0
lsls r0, 20
add r9, r0
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index fa72d3c8e..94d451a73 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -558,7 +558,7 @@ _0811C9AA:
adds r0, r4, 0
adds r0, 0x96
ldrh r0, [r0]
- bl sub_80A1150
+ bl GetItemCompatibilityRule
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -1617,7 +1617,7 @@ sub_811D184: @ 811D184
movs r0, 0
movs r1, 0
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1688,7 +1688,7 @@ sub_811D2A8: @ 811D2A8
movs r0, 0
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1703,7 +1703,7 @@ sub_811D2D0: @ 811D2D0
bl ClearWindowTilemap
movs r0, 0
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0
movs r1, 0x1
bl CopyWindowToVram
@@ -1727,7 +1727,7 @@ sub_811D2EC: @ 811D2EC
lsrs r7, r0, 16
movs r0, 0
mov r8, r0
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
mov r9, r0
@@ -1759,7 +1759,7 @@ _0811D330:
_0811D358:
adds r4, 0x14
adds r0, r7, 0
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
@@ -1918,7 +1918,7 @@ _0811D4A2:
movs r0, 0
movs r1, 0x2
adds r2, r4, 0
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
_0811D4C2:
add sp, 0x14
pop {r3,r4}
@@ -2285,7 +2285,7 @@ sub_811D764: @ 811D764
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x2
str r0, [sp]
movs r0, 0x3
@@ -2441,7 +2441,7 @@ _0811D884:
cmp r4, 0
beq _0811D916
lsls r0, r7, 3
- ldr r1, _0811D900 @ =gUnknown_82350AC
+ ldr r1, _0811D900 @ =gMonFrontPicTable
adds r0, r1
adds r1, r6, 0
adds r2, r7, 0
@@ -2474,7 +2474,7 @@ _0811D884:
bl sub_811DB14
b _0811D910
.align 2, 0
-_0811D900: .4byte gUnknown_82350AC
+_0811D900: .4byte gMonFrontPicTable
_0811D904: .4byte gUnknown_8459A30
_0811D908: .4byte gSprites
_0811D90C:
@@ -3400,7 +3400,7 @@ sub_811DFC0: @ 811DFC0
strh r0, [r3, 0x4]
movs r5, 0x4
ldrsh r1, [r3, r5]
- ldr r2, _0811E018 @ =gUnknown_825E074
+ ldr r2, _0811E018 @ =gSineTable
movs r5, 0x2
ldrsh r0, [r3, r5]
adds r0, 0x40
@@ -3424,7 +3424,7 @@ sub_811DFC0: @ 811DFC0
strh r0, [r4, 0x26]
b _0811E036
.align 2, 0
-_0811E018: .4byte gUnknown_825E074
+_0811E018: .4byte gSineTable
_0811E01C:
ldr r2, _0811E03C @ =gTasks
movs r5, 0xE
@@ -3958,7 +3958,7 @@ _0811E3E0:
lsls r0, 16
lsrs r0, 16
adds r0, 0x46
- ldr r3, _0811E4BC @ =gUnknown_825E074
+ ldr r3, _0811E4BC @ =gSineTable
movs r4, 0xA
ldrsh r2, [r5, r4]
adds r1, r2, 0
@@ -4035,7 +4035,7 @@ _0811E4A4:
strh r0, [r5]
b _0811E4DC
.align 2, 0
-_0811E4BC: .4byte gUnknown_825E074
+_0811E4BC: .4byte gSineTable
_0811E4C0: .4byte gUnknown_8459B30
_0811E4C4: .4byte gSprites
_0811E4C8:
@@ -4548,7 +4548,7 @@ _0811E880:
movs r1, 0x2
movs r2, 0
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
lsls r0, r7, 1
mov r4, sp
adds r4, r0
@@ -4571,7 +4571,7 @@ _0811E8BA:
movs r1, 0x2
movs r2, 0x38
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
strb r0, [r6]
movs r0, 0
@@ -4604,7 +4604,7 @@ _0811E8F4:
mov r0, r8
movs r1, 0x2
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r7, 0x1
lsls r0, 16
lsrs r7, r0, 16
@@ -4725,7 +4725,7 @@ _0811E9C0:
movs r1, 0x2
movs r2, 0
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r4, 0x38
lsls r4, 24
lsrs r4, 24
@@ -4739,7 +4739,7 @@ _0811E9C0:
movs r1, 0x2
adds r2, r4, 0
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 37f9e9762..4c851f4cb 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -807,7 +807,7 @@ _0808BF3C:
str r1, [sp, 0x10]
movs r1, 0x1
movs r3, 0x2
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r0, [sp, 0x50]
mov r10, r4
cmp r0, 0x6
@@ -960,7 +960,7 @@ sub_808BFE0: @ 808BFE0
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
lsrs r5, 1
adds r0, r7, 0
ldr r1, [sp, 0x24]
@@ -1412,7 +1412,7 @@ _0808C3CC:
.4byte _0808C680
_0808C3E0:
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldrb r0, [r5, 0xA]
adds r1, r5, 0
adds r1, 0x26
@@ -1420,7 +1420,7 @@ _0808C3E0:
bl sub_80F6E9C
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
movs r0, 0
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -1442,7 +1442,7 @@ _0808C3E0:
movs r0, 0
movs r1, 0x2
movs r3, 0xFF
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1549,7 +1549,7 @@ _0808C4CE:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
b _0808C69C
.align 2, 0
_0808C504: .4byte gMain
@@ -1557,12 +1557,12 @@ _0808C508: .4byte gUnknown_83CDA20
_0808C50C:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrh r0, [r5, 0x26]
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl ScriptContext2_Disable
bl EnableBothScriptContexts
adds r0, r4, 0
@@ -1725,7 +1725,7 @@ _0808C66E:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
strh r4, [r5, 0x8]
b _0808C69C
.align 2, 0
@@ -1737,7 +1737,7 @@ _0808C680:
ands r0, r1
cmp r0, 0
bne _0808C69C
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldrb r0, [r5, 0xC]
bl sub_808CDE4
adds r0, r4, 0
@@ -1833,7 +1833,7 @@ sub_808C72C: @ 808C72C
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -1861,7 +1861,7 @@ sub_808C72C: @ 808C72C
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
mov r0, r10
strh r5, [r0]
add sp, 0xC
@@ -1883,18 +1883,18 @@ sub_808C7B4: @ 808C7B4
bl sub_808FDF0
ldr r1, _0808C7D0 @ =gUnknown_20397A8
strb r0, [r1]
- ldr r1, _0808C7D4 @ =gUnknown_3005020
+ ldr r1, _0808C7D4 @ =gFieldCallback
ldr r0, _0808C7D8 @ =mapldr_0808C6D8
str r0, [r1]
- ldr r0, _0808C7DC @ =c2_exit_to_overworld_2_switch
+ ldr r0, _0808C7DC @ =CB2_ReturnToField
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0808C7D0: .4byte gUnknown_20397A8
-_0808C7D4: .4byte gUnknown_3005020
+_0808C7D4: .4byte gFieldCallback
_0808C7D8: .4byte mapldr_0808C6D8
-_0808C7DC: .4byte c2_exit_to_overworld_2_switch
+_0808C7DC: .4byte CB2_ReturnToField
thumb_func_end sub_808C7B4
thumb_func_start sub_808C7E0
@@ -2716,7 +2716,7 @@ _0808CE18:
ldr r1, [r4]
strb r0, [r1, 0x4]
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl StorageGetCurrentBox
ldr r1, _0808CE58 @ =gUnknown_20397B8
strb r0, [r1]
@@ -2767,7 +2767,7 @@ _0808CE8C:
ldr r1, [r4]
strb r0, [r1, 0x4]
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0808CEC4 @ =c2_Box
bl SetMainCallback2
_0808CEB6:
@@ -3035,7 +3035,7 @@ _0808D0D6:
movs r0, 0x1
movs r1, 0xB
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
b _0808D20C
.align 2, 0
_0808D100: .4byte 0x05000080
@@ -4700,7 +4700,7 @@ _0808DF24:
adds r0, 0x1
strb r0, [r1]
_0808DF3A:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -5151,7 +5151,7 @@ _0808E2E8:
adds r0, r1
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _0808E314
@@ -5479,7 +5479,7 @@ _0808E59C:
.align 2, 0
_0808E5B8: .4byte gUnknown_20397B0
_0808E5BC:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -5504,7 +5504,7 @@ _0808E5E0:
adds r0, r1
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6284,7 +6284,7 @@ _0808EC40:
.align 2, 0
_0808EC50: .4byte gMain
_0808EC54:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -6426,7 +6426,7 @@ _0808ED74:
.align 2, 0
_0808ED84: .4byte gMain
_0808ED88:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -6643,7 +6643,7 @@ _0808EF56:
mov r0, sp
ldrh r0, [r0]
movs r1, 0x1
- bl sub_809A1D8
+ bl RemoveBagItem
_0808EF60:
add sp, 0x4
pop {r0}
@@ -6681,7 +6681,7 @@ sub_808EF8C: @ 808EF8C
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, _0808EFC0 @ =gUnknown_83CE4D0
ldr r1, _0808EFC4 @ =0x0600f800
bl LZ77UnCompVram
@@ -6724,7 +6724,7 @@ sub_808EFE4: @ 808EFE4
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, _0808F038 @ =gUnknown_83CE5FC
ldr r5, _0808F03C @ =gUnknown_20397B0
ldr r1, [r5]
@@ -7229,7 +7229,7 @@ sub_808F3F8: @ 808F3F8
cmp r2, 0
beq _0808F48C
lsls r0, r2, 3
- ldr r1, _0808F470 @ =gUnknown_82350AC
+ ldr r1, _0808F470 @ =gMonFrontPicTable
adds r0, r1
ldr r5, _0808F474 @ =0x000022bc
adds r1, r4, r5
@@ -7270,7 +7270,7 @@ sub_808F3F8: @ 808F3F8
.align 2, 0
_0808F468: .4byte gUnknown_20397B0
_0808F46C: .4byte 0x00002238
-_0808F470: .4byte gUnknown_82350AC
+_0808F470: .4byte gMonFrontPicTable
_0808F474: .4byte 0x000022bc
_0808F478: .4byte 0x00000cd8
_0808F47C: .4byte 0x0000223c
@@ -8165,7 +8165,7 @@ sub_808FB68: @ 808FB68
movs r0, 0x1
movs r1, 0x2
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
@@ -8311,7 +8311,7 @@ _0808FC7C:
movs r0, 0x1
movs r1, 0x2
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
@@ -8345,7 +8345,7 @@ sub_808FCE8: @ 808FCE8
str r1, [sp, 0x8]
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
@@ -8363,7 +8363,7 @@ sub_808FD20: @ 808FD20
push {lr}
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
pop {r0}
@@ -10686,7 +10686,7 @@ _08090EC6:
ldr r0, [r4]
ldr r0, [r0]
mov r8, r0
- ldr r5, _08090FB8 @ =gUnknown_825E074
+ ldr r5, _08090FB8 @ =gSineTable
mov r0, r9
adds r1, r3, r0
ldrb r0, [r1]
@@ -10803,7 +10803,7 @@ _08090FA0:
_08090FAC: .4byte 0x00000c59
_08090FB0: .4byte 0x00000afc
_08090FB4: .4byte 0x00000a68
-_08090FB8: .4byte gUnknown_825E074
+_08090FB8: .4byte gSineTable
_08090FBC: .4byte sub_80911B0
_08090FC0: .4byte SpriteCallbackDummy
thumb_func_end sub_8090E74
@@ -12046,7 +12046,7 @@ _08091938:
str r0, [sp]
movs r0, 0x2
movs r2, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
movs r0, 0x2
bl CopyBgTilemapBufferToVram
add sp, 0x4
@@ -16876,7 +16876,7 @@ _08093EF2:
beq _08093F78
ldr r3, _08093F74 @ =0x00000d61
adds r4, r3
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0
@@ -18961,7 +18961,7 @@ sub_8094E88: @ 8094E88
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, [r5]
@@ -19077,7 +19077,7 @@ sub_8095024: @ 8095024
adds r0, r4
ldrb r0, [r0]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -21364,7 +21364,7 @@ sub_80961A8: @ 80961A8
ldr r1, _080961C0 @ =0x00002224
adds r0, r1
ldrh r0, [r0]
- bl ItemId_GetItem
+ bl ItemId_GetName
pop {r1}
bx r1
.align 2, 0
@@ -22054,7 +22054,7 @@ _080966BA:
movs r1, 0x2
adds r2, r4, 0
movs r3, 0x2
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
add sp, 0x14
pop {r4}
pop {r0}
@@ -22569,7 +22569,7 @@ _08096AA2:
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x22]
- ldr r1, _08096B08 @ =gUnknown_825E074
+ ldr r1, _08096B08 @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 4
@@ -22605,7 +22605,7 @@ _08096B00:
pop {r0}
bx r0
.align 2, 0
-_08096B08: .4byte gUnknown_825E074
+_08096B08: .4byte gSineTable
_08096B0C: .4byte sub_80969BC
thumb_func_end sub_8096A74
@@ -22650,7 +22650,7 @@ _08096B3E:
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x22]
- ldr r1, _08096BA4 @ =gUnknown_825E074
+ ldr r1, _08096BA4 @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 4
@@ -22687,7 +22687,7 @@ _08096B9E:
pop {r0}
bx r0
.align 2, 0
-_08096BA4: .4byte gUnknown_825E074
+_08096BA4: .4byte gSineTable
_08096BA8: .4byte SpriteCallbackDummy
thumb_func_end sub_8096B10
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 8db247b2b..60062910c 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -107,7 +107,7 @@ _081345D0:
beq _08134604
_081345D4:
movs r0, 0x6
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r2, _081345F8 @ =gUnknown_203B140
ldr r0, [r2]
ldr r3, _081345FC @ =0x00003214
@@ -128,7 +128,7 @@ _081345FC: .4byte 0x00003214
_08134600: .4byte 0x00003234
_08134604:
movs r0, 0x6
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, [r4]
ldr r3, _08134628 @ =0x00003214
adds r0, r3
@@ -149,7 +149,7 @@ _0813462C: .4byte 0x0000321c
_08134630: .4byte 0x00003234
_08134634:
movs r0, 0x8
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, [r4]
ldr r3, _08134710 @ =0x00003214
adds r0, r3
@@ -3549,7 +3549,7 @@ _08136264:
ldr r0, [r6]
ldr r4, _08136328 @ =0x00003088
adds r0, r4
- ldr r1, _0813632C @ =gUnknown_8416223
+ ldr r1, _0813632C @ =gText_Lv
bl StringCopy
ldr r0, [r6]
adds r0, r4
@@ -3580,14 +3580,14 @@ _0813631C: .4byte 0x00003290
_08136320: .4byte 0x0000ffff
_08136324: .4byte 0x0000306c
_08136328: .4byte 0x00003088
-_0813632C: .4byte gUnknown_8416223
+_0813632C: .4byte gText_Lv
_08136330: .4byte 0x00003074
_08136334: .4byte gUnknown_84161EF
_08136338:
ldr r1, [r6]
ldr r2, _0813634C @ =0x00003074
adds r1, r2
- bl sub_8099E90
+ bl CopyItemName
_08136342:
add sp, 0x14
pop {r4-r7}
@@ -4180,7 +4180,7 @@ _08136812:
adds r1, r4, r3
ldr r0, [r6]
adds r0, r1
- ldr r5, _081368A4 @ =gUnknown_8416213
+ ldr r5, _081368A4 @ =gText_ThreeHyphens
adds r1, r5, 0
bl StringCopy
ldr r0, _081368A8 @ =0x00003188
@@ -4209,7 +4209,7 @@ _08136894: .4byte gUnknown_841620E
_08136898: .4byte 0x000030b8
_0813689C: .4byte gUnknown_8416210
_081368A0: .4byte 0x0000316c
-_081368A4: .4byte gUnknown_8416213
+_081368A4: .4byte gText_ThreeHyphens
_081368A8: .4byte 0x00003188
_081368AC: .4byte gUnknown_203B144
_081368B0:
@@ -4399,7 +4399,7 @@ _081369D0:
ldr r1, _08136A68 @ =0x0000316c
adds r0, r1
adds r0, r6, r0
- ldr r1, _08136A6C @ =gUnknown_8416213
+ ldr r1, _08136A6C @ =gText_ThreeHyphens
bl StringCopy
b _08136A84
.align 2, 0
@@ -4411,7 +4411,7 @@ _08136A5C: .4byte 0x00003258
_08136A60: .4byte gUnknown_203B144
_08136A64: .4byte gBattleMoves
_08136A68: .4byte 0x0000316c
-_08136A6C: .4byte gUnknown_8416213
+_08136A6C: .4byte gText_ThreeHyphens
_08136A70:
lsls r4, r7, 2
adds r0, r4, r7
@@ -4441,7 +4441,7 @@ _08136A84:
ldr r2, _08136AC0 @ =0x00003188
adds r0, r2
adds r0, r3, r0
- ldr r1, _08136AC4 @ =gUnknown_8416213
+ ldr r1, _08136AC4 @ =gText_ThreeHyphens
bl StringCopy
b _08136ADA
.align 2, 0
@@ -4450,7 +4450,7 @@ _08136AB4: .4byte gBattleMoves
_08136AB8: .4byte gUnknown_203B140
_08136ABC: .4byte 0x00003258
_08136AC0: .4byte 0x00003188
-_08136AC4: .4byte gUnknown_8416213
+_08136AC4: .4byte gText_ThreeHyphens
_08136AC8:
adds r0, r4, r7
ldr r4, _08136AE8 @ =0x00003188
@@ -4567,7 +4567,7 @@ sub_8136BAC: @ 8136BAC
bl ResetSpriteData
bl ResetPaletteFade
bl FreeAllSpritePalettes
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_8136BAC
@@ -4808,7 +4808,7 @@ sub_8136DA4: @ 8136DA4
movs r1, 0x2
movs r2, 0x4
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -4853,7 +4853,7 @@ sub_8136DF0: @ 8136DF0
adds r0, r1, 0
movs r1, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -4904,7 +4904,7 @@ sub_8136E50: @ 8136E50
movs r1, 0x2
movs r2, 0x4
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
_08136E9A:
ldr r2, [r6]
adds r0, r2, r7
@@ -4920,7 +4920,7 @@ _08136E9A:
movs r1, 0x2
movs r2, 0x28
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, [r6]
ldr r3, _08136F04 @ =0x00003290
adds r0, r3
@@ -4941,7 +4941,7 @@ _08136E9A:
movs r1, 0x2
movs r2, 0x69
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
b _08136F28
.align 2, 0
_08136EEC: .4byte gUnknown_203B140
@@ -4965,7 +4965,7 @@ _08136F0C:
movs r1, 0x2
movs r2, 0x69
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
_08136F28:
ldr r0, _08136F44 @ =gUnknown_203B140
ldr r0, [r0]
@@ -5053,7 +5053,7 @@ sub_8136FB0: @ 8136FB0
movs r1, 0x2
movs r2, 0x2F
movs r3, 0x13
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r3, [r6]
movs r1, 0xC8
lsls r1, 6
@@ -5077,7 +5077,7 @@ sub_8136FB0: @ 8136FB0
str r1, [sp, 0x8]
movs r1, 0x2
movs r3, 0x5
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r6]
ldr r2, _08137064 @ =0x00003003
adds r0, r1, r2
@@ -5090,7 +5090,7 @@ sub_8136FB0: @ 8136FB0
movs r1, 0x2
movs r2, 0x2F
movs r3, 0x31
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r6]
ldr r2, _08137064 @ =0x00003003
adds r0, r1, r2
@@ -5103,7 +5103,7 @@ sub_8136FB0: @ 8136FB0
movs r1, 0x2
movs r2, 0x2F
movs r3, 0x40
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r6]
ldr r2, _08137064 @ =0x00003003
adds r0, r1, r2
@@ -5116,7 +5116,7 @@ sub_8136FB0: @ 8136FB0
movs r1, 0x2
movs r2, 0x2F
movs r3, 0x4F
- bl box_print
+ bl AddTextPrinterParameterized3
b _081370CA
.align 2, 0
_08137060: .4byte gUnknown_203B140
@@ -5167,7 +5167,7 @@ _081370A6:
movs r1, 0x2
movs r2, 0x7
movs r3, 0x2D
- bl box_print
+ bl AddTextPrinterParameterized3
_081370CA:
add sp, 0xC
pop {r4-r7}
@@ -5212,7 +5212,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r9
ldr r3, [r2]
adds r0, r3, r4
@@ -5230,7 +5230,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x16
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r9
ldr r3, [r2]
adds r0, r3, r4
@@ -5248,7 +5248,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x23
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r9
ldr r3, [r2]
adds r0, r3, r4
@@ -5266,7 +5266,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x30
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r9
ldr r3, [r2]
adds r0, r3, r4
@@ -5284,7 +5284,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x3D
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r9
ldr r3, [r2]
adds r0, r3, r4
@@ -5302,7 +5302,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x4A
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r9
ldr r3, [r2]
adds r0, r3, r4
@@ -5320,7 +5320,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x57
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r9
ldr r3, [r2]
adds r4, r3, r4
@@ -5338,7 +5338,7 @@ sub_81370EC: @ 81370EC
str r3, [sp, 0x8]
movs r1, 0x2
movs r3, 0x64
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r3,r4}
mov r8, r3
@@ -5406,7 +5406,7 @@ _081372B0:
movs r1, 0x2
movs r2, 0x3
movs r3, 0x75
- bl box_print
+ bl AddTextPrinterParameterized3
_081372CE:
add sp, 0xC
pop {r4}
@@ -5490,7 +5490,7 @@ _0813733E:
movs r1, 0x2
movs r2, 0x3
mov r3, r12
- bl box_print
+ bl AddTextPrinterParameterized3
mov r1, r10
ldr r0, [r1]
ldr r2, _081373A4 @ =0x00003258
@@ -5577,7 +5577,7 @@ _081373EA:
movs r1, 0x2
movs r2, 0x24
mov r3, r8
- bl box_print
+ bl AddTextPrinterParameterized3
mov r0, r10
ldr r3, [r0]
adds r4, r3, r4
@@ -5603,7 +5603,7 @@ _081373EA:
str r3, [sp, 0x8]
movs r1, 0x2
mov r3, r8
- bl box_print
+ bl AddTextPrinterParameterized3
mov r0, r10
ldr r1, [r0]
ldr r2, _081374DC @ =0x00003258
@@ -5623,7 +5623,7 @@ _081373EA:
movs r1, 0x2
movs r2, 0x3A
mov r3, r8
- bl box_print
+ bl AddTextPrinterParameterized3
mov r0, r10
ldr r3, [r0]
ldr r1, _081374C8 @ =0x00003003
@@ -5645,7 +5645,7 @@ _081373EA:
str r3, [sp, 0x8]
movs r1, 0x2
mov r3, r8
- bl box_print
+ bl AddTextPrinterParameterized3
_081374B4:
add sp, 0x10
pop {r3-r5}
@@ -5928,7 +5928,7 @@ _081376E6:
movs r1, 0x2
movs r2, 0
movs r3, 0x3
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0xD4
pop {r4-r7}
pop {r0}
@@ -6052,7 +6052,7 @@ _081377F6:
movs r1, 0x2
movs r2, 0
movs r3, 0x3
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
b _0813792C
.align 2, 0
_08137820: .4byte gUnknown_8419782
@@ -6176,7 +6176,7 @@ _08137906:
movs r1, 0x2
movs r2, 0
movs r3, 0x3
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
_0813792C:
add sp, 0xD4
pop {r4-r6}
@@ -6341,7 +6341,7 @@ _08137A46:
movs r1, 0x2
movs r2, 0
movs r3, 0x3
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
add sp, 0x14
pop {r4-r7}
pop {r0}
@@ -6377,7 +6377,7 @@ sub_8137A90: @ 8137A90
movs r1, 0x2
movs r2, 0x1A
movs r3, 0x7
- bl box_print
+ bl AddTextPrinterParameterized3
mov r1, r8
ldr r0, [r1]
adds r0, r6
@@ -6389,7 +6389,7 @@ sub_8137A90: @ 8137A90
movs r1, 0x2
movs r2, 0x1A
movs r3, 0x14
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r3}
mov r8, r3
@@ -6444,7 +6444,7 @@ _08137B1C:
movs r1, 0x2
movs r2, 0x39
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r3, [r7]
adds r0, r3, r4
ldrb r0, [r0]
@@ -6461,7 +6461,7 @@ _08137B1C:
movs r1, 0x2
movs r2, 0x39
movs r3, 0xF
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r2, [r7]
adds r4, r2, r4
ldrb r0, [r4]
@@ -6486,7 +6486,7 @@ _08137B1C:
movs r1, 0x2
movs r2, 0x7
movs r3, 0x2A
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
_08137B9E:
add sp, 0x14
pop {r3}
@@ -6569,7 +6569,7 @@ sub_8137C18: @ 8137C18
movs r1, 0x2
movs r2, 0x42
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r5]
adds r4, r1, r4
ldrb r0, [r4]
@@ -6582,7 +6582,7 @@ sub_8137C18: @ 8137C18
movs r1, 0x2
movs r2, 0x2
movs r3, 0xF
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r3}
mov r8, r3
@@ -6636,7 +6636,7 @@ _08137CA4:
adds r3, r2
lsrs r3, 16
movs r2, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
_08137CDE:
adds r0, r4, 0x1
lsls r0, 24
@@ -6660,7 +6660,7 @@ _08137CDE:
lsrs r1, 24
movs r2, 0x3
movs r3, 0x75
- bl sub_8107D68
+ bl blit_move_info_icon
_08137D0E:
pop {r4,r5}
pop {r0}
@@ -7608,7 +7608,7 @@ _0813846C:
_08138470:
movs r0, 0x7
_08138472:
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08138476:
pop {r0}
bx r0
@@ -8325,7 +8325,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x2F
movs r3, 0x23
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r1, [r6]
adds r4, r1, r4
ldr r3, _08138AB8 @ =0x00003221
@@ -8342,7 +8342,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x53
movs r3, 0x23
- bl sub_8107D68
+ bl blit_move_info_icon
b _08138B0E
.align 2, 0
_08138AB0: .4byte 0x00003003
@@ -8365,7 +8365,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0
movs r3, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r2, [r6]
adds r4, r2, r4
ldr r1, _08138B1C @ =0x00003221
@@ -8381,7 +8381,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0x24
movs r3, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
_08138B04:
ldr r0, [r6]
adds r0, r5
@@ -8431,7 +8431,7 @@ _08138B48: .4byte 0x00003208
thumb_func_start sub_8138B4C
sub_8138B4C: @ 8138B4C
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _08138B84
bl sub_811FA20
@@ -9875,7 +9875,7 @@ _081396A8:
movs r1, 0x2
movs r2, 0x7
movs r3, 0x2A
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -10258,7 +10258,7 @@ sub_813995C: @ 813995C
adds r1, r4, 0
adds r2, r6, 0
movs r3, 0x1
- bl sub_810C16C
+ bl CreateMonPicSprite
b _08139A40
.align 2, 0
_081399CC: .4byte gUnknown_203B170
@@ -10290,7 +10290,7 @@ _081399E8:
adds r1, r4, 0
adds r2, r6, 0
movs r3, 0x1
- bl sub_810C16C
+ bl CreateMonPicSprite
b _08139A40
.align 2, 0
_08139A1C: .4byte gUnknown_203B16C
@@ -10308,7 +10308,7 @@ _08139A24:
adds r1, r4, 0
adds r2, r6, 0
movs r3, 0x1
- bl sub_810C1CC
+ bl CreateMonPicSprite_HandleDeoxys
_08139A40:
lsls r0, 16
lsrs r5, r0, 16
@@ -10593,7 +10593,7 @@ sub_8139C80: @ 8139C80
ldr r1, _08139CA8 @ =0x00003010
adds r0, r1
ldrb r0, [r0]
- bl sub_810C214
+ bl FreeAndDestroyMonPicSprite
ldr r4, _08139CAC @ =gUnknown_203B170
ldr r0, [r4]
bl Free
@@ -13239,7 +13239,7 @@ _0813B16C:
_0813B190: .4byte 0x000032f4
_0813B194: .4byte 0x00003210
_0813B198:
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _0813B1C4
ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers
@@ -14088,7 +14088,7 @@ _0813B84E:
sub_813B854: @ 813B854
push {lr}
sub sp, 0x4
- ldr r3, _0813B86C @ =c2_exit_to_overworld_2_switch
+ ldr r3, _0813B86C @ =CB2_ReturnToField
movs r0, 0
str r0, [sp]
movs r1, 0
@@ -14098,7 +14098,7 @@ sub_813B854: @ 813B854
pop {r0}
bx r0
.align 2, 0
-_0813B86C: .4byte c2_exit_to_overworld_2_switch
+_0813B86C: .4byte CB2_ReturnToField
thumb_func_end sub_813B854
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/prof_pc.s b/asm/prof_pc.s
deleted file mode 100644
index 9c9dfa79c..000000000
--- a/asm/prof_pc.s
+++ /dev/null
@@ -1,204 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80CA3D8
-sub_80CA3D8: @ 80CA3D8
- push {lr}
- ldr r0, _080CA3F4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _080CA3FC
- movs r0, 0
- bl sub_8088EDC
- ldr r1, _080CA3F8 @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl sub_8088EDC
- b _080CA40C
- .align 2, 0
-_080CA3F4: .4byte gSpecialVar_0x8004
-_080CA3F8: .4byte gSpecialVar_0x8005
-_080CA3FC:
- movs r0, 0
- bl pokedex_count
- ldr r1, _080CA41C @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl pokedex_count
-_080CA40C:
- ldr r1, _080CA420 @ =gSpecialVar_0x8006
- strh r0, [r1]
- bl sub_806E25C
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_080CA41C: .4byte gSpecialVar_0x8005
-_080CA420: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80CA3D8
-
- thumb_func_start sub_80CA424
-sub_80CA424: @ 80CA424
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _080CA440 @ =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- cmp r2, 0x9
- bhi _080CA436
- b _080CA50C
-_080CA436:
- cmp r2, 0x13
- bhi _080CA448
- ldr r0, _080CA444 @ =gUnknown_81A6D6D
- b _080CA51A
- .align 2, 0
-_080CA440: .4byte gSpecialVar_Result
-_080CA444: .4byte gUnknown_81A6D6D
-_080CA448:
- cmp r2, 0x1D
- bhi _080CA454
- ldr r0, _080CA450 @ =gUnknown_81A6DDF
- b _080CA51A
- .align 2, 0
-_080CA450: .4byte gUnknown_81A6DDF
-_080CA454:
- cmp r2, 0x27
- bhi _080CA460
- ldr r0, _080CA45C @ =gUnknown_81A6E36
- b _080CA51A
- .align 2, 0
-_080CA45C: .4byte gUnknown_81A6E36
-_080CA460:
- cmp r2, 0x31
- bhi _080CA46C
- ldr r0, _080CA468 @ =gUnknown_81A6EA4
- b _080CA51A
- .align 2, 0
-_080CA468: .4byte gUnknown_81A6EA4
-_080CA46C:
- cmp r2, 0x3B
- bhi _080CA478
- ldr r0, _080CA474 @ =gUnknown_81A6F0B
- b _080CA51A
- .align 2, 0
-_080CA474: .4byte gUnknown_81A6F0B
-_080CA478:
- cmp r2, 0x45
- bhi _080CA484
- ldr r0, _080CA480 @ =gUnknown_81A6F71
- b _080CA51A
- .align 2, 0
-_080CA480: .4byte gUnknown_81A6F71
-_080CA484:
- cmp r2, 0x4F
- bhi _080CA490
- ldr r0, _080CA48C @ =gUnknown_81A6FAB
- b _080CA51A
- .align 2, 0
-_080CA48C: .4byte gUnknown_81A6FAB
-_080CA490:
- cmp r2, 0x59
- bhi _080CA49C
- ldr r0, _080CA498 @ =gUnknown_81A6FF1
- b _080CA51A
- .align 2, 0
-_080CA498: .4byte gUnknown_81A6FF1
-_080CA49C:
- cmp r2, 0x63
- bhi _080CA4A8
- ldr r0, _080CA4A4 @ =gUnknown_81A7031
- b _080CA51A
- .align 2, 0
-_080CA4A4: .4byte gUnknown_81A7031
-_080CA4A8:
- cmp r2, 0x6D
- bhi _080CA4B4
- ldr r0, _080CA4B0 @ =gUnknown_81A7063
- b _080CA51A
- .align 2, 0
-_080CA4B0: .4byte gUnknown_81A7063
-_080CA4B4:
- cmp r2, 0x77
- bhi _080CA4C0
- ldr r0, _080CA4BC @ =gUnknown_81A70A5
- b _080CA51A
- .align 2, 0
-_080CA4BC: .4byte gUnknown_81A70A5
-_080CA4C0:
- cmp r2, 0x81
- bhi _080CA4CC
- ldr r0, _080CA4C8 @ =gUnknown_81A70D8
- b _080CA51A
- .align 2, 0
-_080CA4C8: .4byte gUnknown_81A70D8
-_080CA4CC:
- cmp r2, 0x8B
- bhi _080CA4D8
- ldr r0, _080CA4D4 @ =gUnknown_81A7108
- b _080CA51A
- .align 2, 0
-_080CA4D4: .4byte gUnknown_81A7108
-_080CA4D8:
- cmp r2, 0x95
- bls _080CA4F6
- cmp r2, 0x96
- bne _080CA508
- movs r0, 0x97
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _080CA500
-_080CA4F6:
- ldr r0, _080CA4FC @ =gUnknown_81A7137
- b _080CA51A
- .align 2, 0
-_080CA4FC: .4byte gUnknown_81A7137
-_080CA500:
- ldr r1, _080CA504 @ =gSpecialVar_Result
- b _080CA514
- .align 2, 0
-_080CA504: .4byte gSpecialVar_Result
-_080CA508:
- cmp r2, 0x97
- beq _080CA514
-_080CA50C:
- ldr r0, _080CA510 @ =gUnknown_81A6D17
- b _080CA51A
- .align 2, 0
-_080CA510: .4byte gUnknown_81A6D17
-_080CA514:
- movs r0, 0x1
- strh r0, [r1]
- ldr r0, _080CA520 @ =gUnknown_81A7175
-_080CA51A:
- pop {r1}
- bx r1
- .align 2, 0
-_080CA520: .4byte gUnknown_81A7175
- thumb_func_end sub_80CA424
-
- thumb_func_start sub_80CA524
-sub_80CA524: @ 80CA524
- push {lr}
- ldr r0, _080CA538 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl sub_80CA424
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_080CA538: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80CA524
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/psychic.s b/asm/psychic.s
new file mode 100644
index 000000000..ef0fc1385
--- /dev/null
+++ b/asm/psychic.s
@@ -0,0 +1,2180 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B2ECC
+sub_80B2ECC: @ 80B2ECC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, _080B2F84 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2EE8
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2EFE
+_080B2EE8:
+ ldrb r1, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r1, r6, 0
+ adds r1, 0x43
+ movs r0, 0xC8
+ strb r0, [r1]
+_080B2EFE:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B2F5A
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2F3C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8072E48
+_080B2F3C:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r7
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2F5A
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8072E48
+_080B2F5A:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B2F90
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2F90
+ ldr r0, _080B2F84 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B2F88
+ movs r0, 0x48
+ strh r0, [r6, 0x20]
+ movs r0, 0x50
+ b _080B2FCA
+ .align 2, 0
+_080B2F84: .4byte gBattleAnimAttacker
+_080B2F88:
+ movs r0, 0xB0
+ strh r0, [r6, 0x20]
+ movs r0, 0x28
+ b _080B2FCA
+_080B2F90:
+ ldr r5, _080B3000 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2FA6
+ ldr r1, _080B3004 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080B2FA6:
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080B3004 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+_080B2FCA:
+ strh r0, [r6, 0x22]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2FDC
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x9
+ strh r0, [r6, 0x22]
+_080B2FDC:
+ ldr r0, _080B3004 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x2E]
+ ldr r1, _080B3008 @ =sub_80B300C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3000: .4byte gBattleAnimAttacker
+_080B3004: .4byte gBattleAnimArgs
+_080B3008: .4byte sub_80B300C
+ thumb_func_end sub_80B2ECC
+
+ thumb_func_start sub_80B300C
+sub_80B300C: @ 80B300C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bne _080B3038
+ ldr r0, _080B3034 @ =sub_80B3044
+ str r0, [r4, 0x1C]
+ b _080B303C
+ .align 2, 0
+_080B3034: .4byte sub_80B3044
+_080B3038:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x34]
+_080B303C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B300C
+
+ thumb_func_start sub_80B3044
+sub_80B3044: @ 80B3044
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080B30A2
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x2E]
+ ldr r1, _080B30A8 @ =gPlttBufferFaded
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ movs r5, 0x8
+ adds r6, r1, 0
+ adds r1, r4, 0x7
+ lsls r0, r4, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ lsls r1, 1
+ adds r1, r6
+_080B307A:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ subs r1, 0x2
+ subs r2, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bgt _080B307A
+ adds r0, r4, 0x1
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080B30A2
+ ldr r0, _080B30AC @ =sub_80B30B0
+ str r0, [r3, 0x1C]
+_080B30A2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B30A8: .4byte gPlttBufferFaded
+_080B30AC: .4byte sub_80B30B0
+ thumb_func_end sub_80B3044
+
+ thumb_func_start sub_80B30B0
+sub_80B30B0: @ 80B30B0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080B3156
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B3146
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3118
+ ldr r2, _080B315C @ =gSprites
+ ldr r0, _080B3160 @ =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080B3118:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r6
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3146
+ ldr r2, _080B315C @ =gSprites
+ ldr r0, _080B3160 @ =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080B3146:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B3164 @ =sub_80B3168
+ str r0, [r5, 0x1C]
+_080B3156:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B315C: .4byte gSprites
+_080B3160: .4byte gBattlerSpriteIds
+_080B3164: .4byte sub_80B3168
+ thumb_func_end sub_80B30B0
+
+ thumb_func_start sub_80B3168
+sub_80B3168: @ 80B3168
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B31C0
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B31A6
+ adds r0, r5, 0
+ bl sub_8073128
+_080B31A6:
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B31C0
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8073128
+_080B31C0:
+ ldr r0, _080B31CC @ =DestroyAnimSprite
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B31CC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B3168
+
+ thumb_func_start sub_80B31D0
+sub_80B31D0: @ 80B31D0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B325C
+ ldr r5, _080B321C @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ movs r6, 0
+ cmp r0, 0
+ bne _080B31EA
+ movs r6, 0x1
+_080B31EA:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B3232
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3232
+ ldr r0, _080B3220 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B3224
+ ldrh r0, [r5]
+ movs r1, 0x48
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ b _080B3254
+ .align 2, 0
+_080B321C: .4byte gBattleAnimArgs
+_080B3220: .4byte gBattleAnimAttacker
+_080B3224:
+ ldrh r0, [r5]
+ adds r0, 0xB0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x28
+ strh r0, [r4, 0x22]
+ b _080B3254
+_080B3232:
+ ldr r0, _080B3248 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B324C
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8075160
+ b _080B3254
+ .align 2, 0
+_080B3248: .4byte gBattleAnimArgs
+_080B324C:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8075114
+_080B3254:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080B3270
+_080B325C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _080B3270
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080B3270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B31D0
+
+ thumb_func_start sub_80B3278
+sub_80B3278: @ 80B3278
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B32C0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B32C8
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xA
+ strh r0, [r5, 0x22]
+ ldr r0, _080B32C4 @ =0x0000ffff
+ b _080B32D6
+ .align 2, 0
+_080B32C0: .4byte gBattleAnimAttacker
+_080B32C4: .4byte 0x0000ffff
+_080B32C8:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0xA
+ strh r0, [r5, 0x22]
+ movs r0, 0x1
+_080B32D6:
+ strh r0, [r5, 0x30]
+ ldr r1, _080B32EC @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080B32F0 @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B32EC: .4byte DestroyAnimSprite
+_080B32F0: .4byte sub_8074F6C
+ thumb_func_end sub_80B3278
+
+ thumb_func_start sub_80B32F4
+sub_80B32F4: @ 80B32F4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r6, _080B3378 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r4, r1, 16
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ negs r1, r1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B333A
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080B333A:
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080B3366
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_080B3366:
+ ldr r1, _080B337C @ =sub_80B3384
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080B3380 @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3378: .4byte gBattleAnimAttacker
+_080B337C: .4byte sub_80B3384
+_080B3380: .4byte sub_8074F6C
+ thumb_func_end sub_80B32F4
+
+ thumb_func_start sub_80B3384
+sub_80B3384: @ 80B3384
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080B33B0 @ =gUnknown_83E6FF0
+ str r0, [r4, 0x10]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ ldr r0, _080B33B4 @ =sub_80B33B8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B33B0: .4byte gUnknown_83E6FF0
+_080B33B4: .4byte sub_80B33B8
+ thumb_func_end sub_80B3384
+
+ thumb_func_start sub_80B33B8
+sub_80B33B8: @ 80B33B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B33CA
+ cmp r0, 0x1
+ beq _080B33F8
+ b _080B3410
+_080B33CA:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B3410
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x12
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080B3410
+_080B33F8:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080B3410
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B3410:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B33B8
+
+ thumb_func_start sub_80B3418
+sub_80B3418: @ 80B3418
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080B3448 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080B344C @ =gUnknown_83E700C
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080B3450 @ =sub_80B3454
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3448: .4byte gTasks
+_080B344C: .4byte gUnknown_83E700C
+_080B3450: .4byte sub_80B3454
+ thumb_func_end sub_80B3418
+
+ thumb_func_start sub_80B3454
+sub_80B3454: @ 80B3454
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080B347C @ =gTasks
+ adds r0, r1
+ bl sub_8076308
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B3474
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080B3474:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B347C: .4byte gTasks
+ thumb_func_end sub_80B3454
+
+ thumb_func_start sub_80B3480
+sub_80B3480: @ 80B3480
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B34CC @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ ldr r0, _080B34D0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0x8
+ cmp r0, 0
+ beq _080B34B4
+ movs r1, 0x4
+_080B34B4:
+ strh r1, [r4, 0xE]
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080B34D4 @ =gUnknown_83E702C
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080B34D8 @ =sub_80B34DC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B34CC: .4byte gTasks
+_080B34D0: .4byte gBattleAnimAttacker
+_080B34D4: .4byte gUnknown_83E702C
+_080B34D8: .4byte sub_80B34DC
+ thumb_func_end sub_80B3480
+
+ thumb_func_start sub_80B34DC
+sub_80B34DC: @ 80B34DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B34FC @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B3500
+ cmp r0, 0x1
+ beq _080B351C
+ b _080B357A
+ .align 2, 0
+_080B34FC: .4byte gTasks
+_080B3500:
+ adds r0, r4, 0
+ bl sub_8076308
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080B357A
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080B357A
+_080B351C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B3544
+ ldr r2, _080B3540 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080B357A
+ .align 2, 0
+_080B3540: .4byte gSprites
+_080B3544:
+ ldr r3, _080B3580 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ ldrb r0, [r4, 0x8]
+ bl sub_8075980
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B357A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3580: .4byte gSprites
+ thumb_func_end sub_80B34DC
+
+ thumb_func_start sub_80B3584
+sub_80B3584: @ 80B3584
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B360C @ =gTasks
+ adds r5, r1, r0
+ movs r1, 0
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ ldr r4, _080B3610 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, r6
+ bcs _080B35EE
+ adds r1, r6, 0
+_080B35EE:
+ strh r1, [r5, 0x20]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r0, _080B3614 @ =sub_80B3618
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B360C: .4byte gTasks
+_080B3610: .4byte gBattleAnimAttacker
+_080B3614: .4byte sub_80B3618
+ thumb_func_end sub_80B3584
+
+ thumb_func_start sub_80B3618
+sub_80B3618: @ 80B3618
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B363C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080B3718
+ cmp r1, 0x1
+ bgt _080B3640
+ cmp r1, 0
+ beq _080B364E
+ b _080B379E
+ .align 2, 0
+_080B363C: .4byte gTasks
+_080B3640:
+ cmp r1, 0x2
+ bne _080B3646
+ b _080B377A
+_080B3646:
+ cmp r1, 0x3
+ bne _080B364C
+ b _080B3788
+_080B364C:
+ b _080B379E
+_080B364E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bgt _080B365E
+ b _080B379E
+_080B365E:
+ strh r1, [r4, 0xA]
+ ldr r0, _080B369C @ =gUnknown_83E7044
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ adds r1, 0x8
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ strh r2, [r0]
+ cmp r2, 0x40
+ beq _080B3702
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B36BC
+ cmp r0, 0x1
+ bgt _080B36A0
+ cmp r0, 0
+ beq _080B36AA
+ b _080B3702
+ .align 2, 0
+_080B369C: .4byte gUnknown_83E7044
+_080B36A0:
+ cmp r0, 0x2
+ beq _080B36D4
+ cmp r0, 0x3
+ beq _080B36EC
+ b _080B3702
+_080B36AA:
+ ldr r0, _080B36B8 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ b _080B36FA
+ .align 2, 0
+_080B36B8: .4byte gSprites
+_080B36BC:
+ ldr r0, _080B36D0 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ b _080B3700
+ .align 2, 0
+_080B36D0: .4byte gSprites
+_080B36D4:
+ ldr r1, _080B36E8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x26]
+ b _080B3702
+ .align 2, 0
+_080B36E8: .4byte gSprites
+_080B36EC:
+ ldr r0, _080B3714 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080B36FA:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080B3700:
+ strh r0, [r1, 0x26]
+_080B3702:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080B379E
+ b _080B377A
+ .align 2, 0
+_080B3714: .4byte gSprites
+_080B3718:
+ ldrh r0, [r4, 0xA]
+ ands r1, r0
+ cmp r1, 0
+ beq _080B3728
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080B372E
+_080B3728:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+_080B372E:
+ ldrh r1, [r4, 0x10]
+ lsls r1, 8
+ ldrh r0, [r4, 0xE]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _080B379E
+ movs r5, 0x8
+ adds r6, r4, 0
+ adds r6, 0x8
+_080B3754:
+ lsls r0, r5, 1
+ adds r1, r6, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x40
+ beq _080B3770
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B3784 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+_080B3770:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xC
+ bls _080B3754
+_080B377A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B379E
+ .align 2, 0
+_080B3784: .4byte gSprites
+_080B3788:
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B379E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3618
+
+ thumb_func_start sub_80B37A4
+sub_80B37A4: @ 80B37A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080B37CE
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080B37CE:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B37E0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B37E0:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B37A4
+
+ thumb_func_start sub_80B37EC
+sub_80B37EC: @ 80B37EC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080B3828 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080B3818
+ ldr r4, _080B382C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080B3818:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080B3830 @ =sub_80B37A4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3828: .4byte gBattleAnimArgs
+_080B382C: .4byte gBattleAnimAttacker
+_080B3830: .4byte sub_80B37A4
+ thumb_func_end sub_80B37EC
+
+ thumb_func_start sub_80B3834
+sub_80B3834: @ 80B3834
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B3890 @ =gTasks
+ adds r5, r1, r0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B38D8
+ ldr r0, _080B3894 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080B38A4
+ ldr r0, _080B3898 @ =0x0000fff6
+ strh r0, [r5, 0x1C]
+ ldr r4, _080B389C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_8076B2C
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080B38A0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_8076B2C
+ subs r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x8
+ b _080B3962
+ .align 2, 0
+_080B3890: .4byte gTasks
+_080B3894: .4byte gBattleAnimArgs
+_080B3898: .4byte 0x0000fff6
+_080B389C: .4byte gBattleAnimTarget
+_080B38A0: .4byte gBattleAnimAttacker
+_080B38A4:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080B38D0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_8076B2C
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8076B2C
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080B38D4 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_8076B2C
+ adds r0, 0x8
+ b _080B3956
+ .align 2, 0
+_080B38D0: .4byte gBattleAnimAttacker
+_080B38D4: .4byte gBattleAnimTarget
+_080B38D8:
+ ldr r0, _080B391C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080B392C
+ ldr r0, _080B3920 @ =0x0000fff6
+ strh r0, [r5, 0x1C]
+ ldr r4, _080B3924 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_8076B2C
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080B3928 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_8076B2C
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8076B2C
+ adds r0, 0x8
+ b _080B3962
+ .align 2, 0
+_080B391C: .4byte gBattleAnimArgs
+_080B3920: .4byte 0x0000fff6
+_080B3924: .4byte gBattleAnimTarget
+_080B3928: .4byte gBattleAnimAttacker
+_080B392C:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080B3974 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_8076B2C
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8076B2C
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080B3978 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_8076B2C
+ subs r0, 0x8
+_080B3956:
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8076B2C
+ subs r0, 0x8
+_080B3962:
+ strh r0, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0xA]
+ ldr r0, _080B397C @ =sub_80B3980
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3974: .4byte gBattleAnimAttacker
+_080B3978: .4byte gBattleAnimTarget
+_080B397C: .4byte sub_80B3980
+ thumb_func_end sub_80B3834
+
+ thumb_func_start sub_80B3980
+sub_80B3980: @ 80B3980
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B39A0 @ =gTasks
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _080B39A4
+ cmp r1, 0x1
+ beq _080B3A18
+ b _080B3A2C
+ .align 2, 0
+_080B39A0: .4byte gTasks
+_080B39A4:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080B3A2C
+ strh r1, [r5, 0xA]
+ ldr r0, _080B3A10 @ =gUnknown_83E7114
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ movs r3, 0x20
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080B39F8
+ ldr r0, _080B3A14 @ =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_8075068
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+_080B39F8:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080B3A2C
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080B3A2C
+ .align 2, 0
+_080B3A10: .4byte gUnknown_83E7114
+_080B3A14: .4byte gSprites
+_080B3A18:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _080B3A2C
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B3A2C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3980
+
+ thumb_func_start sub_80B3A34
+sub_80B3A34: @ 80B3A34
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3A52
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080B3A52:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3A34
+
+ thumb_func_start sub_80B3A58
+sub_80B3A58: @ 80B3A58
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B3A90 @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _080B3A94 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807492C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x24]
+ ldr r0, _080B3A98 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x1
+ beq _080B3AAE
+ cmp r0, 0x1
+ bgt _080B3A9C
+ cmp r0, 0
+ beq _080B3AA2
+ b _080B3ACA
+ .align 2, 0
+_080B3A90: .4byte gTasks
+_080B3A94: .4byte gBattleAnimTarget
+_080B3A98: .4byte gBattleAnimArgs
+_080B3A9C:
+ cmp r0, 0x2
+ beq _080B3ABA
+ b _080B3ACA
+_080B3AA2:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080B3AC2
+_080B3AAE:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ b _080B3AC2
+_080B3ABA:
+ movs r0, 0x4
+ strh r0, [r4, 0x1E]
+ strh r0, [r4, 0x20]
+ movs r0, 0
+_080B3AC2:
+ strh r0, [r4, 0x22]
+ adds r0, r1, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+_080B3ACA:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080B3AD6
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080B3AD6:
+ ldr r0, _080B3AF0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B3AFC
+ ldr r0, _080B3AF4 @ =gBattle_BG1_X
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080B3AF8 @ =0x04000014
+ b _080B3B04
+ .align 2, 0
+_080B3AF0: .4byte gBattleAnimTarget
+_080B3AF4: .4byte gBattle_BG1_X
+_080B3AF8: .4byte 0x04000014
+_080B3AFC:
+ ldr r0, _080B3B64 @ =gBattle_BG2_X
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080B3B68 @ =0x04000018
+_080B3B04:
+ str r0, [sp]
+ ldrh r1, [r4, 0x24]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ bgt _080B3B3E
+ ldr r5, _080B3B6C @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080B3B1E:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ ble _080B3B1E
+_080B3B3E:
+ ldr r0, _080B3B70 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ ldr r0, _080B3B74 @ =sub_80B3B78
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3B64: .4byte gBattle_BG2_X
+_080B3B68: .4byte 0x04000018
+_080B3B6C: .4byte gScanlineEffectRegBuffers
+_080B3B70: .4byte 0xa2600001
+_080B3B74: .4byte sub_80B3B78
+ thumb_func_end sub_80B3A58
+
+ thumb_func_start sub_80B3B78
+sub_80B3B78: @ 80B3B78
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B3BA0 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080B3C52
+ cmp r0, 0x1
+ bgt _080B3BA4
+ cmp r0, 0
+ beq _080B3BAA
+ b _080B3C6A
+ .align 2, 0
+_080B3BA0: .4byte gTasks
+_080B3BA4:
+ cmp r0, 0x2
+ beq _080B3C64
+ b _080B3C6A
+_080B3BAA:
+ ldrh r3, [r5, 0x22]
+ ldrh r4, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bgt _080B3C42
+ ldr r0, _080B3BF4 @ =gSineTable
+ mov r9, r0
+ movs r7, 0x3
+ ldr r1, _080B3BF8 @ =gScanlineEffectRegBuffers
+ mov r12, r1
+ movs r2, 0xF0
+ lsls r2, 3
+ add r2, r12
+ mov r8, r2
+_080B3BCC:
+ lsls r2, r3, 16
+ asrs r0, r2, 15
+ add r0, r9
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r3, 0x20
+ ldrsh r1, [r5, r3]
+ asrs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r3, r0, 16
+ adds r6, r2, 0
+ cmp r3, 0
+ ble _080B3BFC
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r0, r3, r0
+ b _080B3C08
+ .align 2, 0
+_080B3BF4: .4byte gSineTable
+_080B3BF8: .4byte gScanlineEffectRegBuffers
+_080B3BFC:
+ cmp r3, 0
+ bge _080B3C0C
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ subs r0, r3, r0
+_080B3C08:
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080B3C0C:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ mov r0, r12
+ adds r4, r3, r0
+ ldrh r0, [r5, 0x1C]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1, r0
+ strh r0, [r4]
+ add r3, r8
+ ldrh r0, [r5, 0x1C]
+ adds r1, r0
+ strh r1, [r3]
+ asrs r0, r6, 16
+ ldrh r1, [r5, 0x1E]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r2, r0
+ ble _080B3BCC
+_080B3C42:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _080B3C6A
+ b _080B3C58
+_080B3C52:
+ ldr r1, _080B3C60 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080B3C58:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080B3C6A
+ .align 2, 0
+_080B3C60: .4byte gScanlineEffect
+_080B3C64:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B3C6A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3B78
+
+ thumb_func_start sub_80B3C78
+sub_80B3C78: @ 80B3C78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080B3CAC @ =gTasks
+ adds r7, r0, r1
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r10, r5
+ adds r6, r5, 0
+ cmp r6, 0xFF
+ bne _080B3CB0
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080B3D5A
+ .align 2, 0
+_080B3CAC: .4byte gTasks
+_080B3CB0:
+ ldr r1, _080B3CD4 @ =gBattleAnimArgs
+ ldrb r0, [r1]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r9, r1
+ asrs r0, 16
+ cmp r0, 0
+ bge _080B3CD8
+ adds r0, r5, 0
+ bl FreeOamMatrix
+ mov r0, r8
+ bl DestroyAnimVisualTask
+ b _080B3D5A
+ .align 2, 0
+_080B3CD4: .4byte gBattleAnimArgs
+_080B3CD8:
+ ldr r2, _080B3D68 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r2, 0
+ adds r0, 0x1C
+ adds r0, r4, r0
+ ldr r1, _080B3D6C @ =SpriteCallbackDummy
+ str r1, [r0]
+ adds r4, r2
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+ ldr r1, _080B3D70 @ =gBattleAnimArgs
+ ldrb r0, [r1]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r0, r10
+ strh r0, [r7, 0x24]
+ mov r1, r9
+ strh r1, [r7, 0x26]
+ ldr r0, _080B3D74 @ =sub_80B3D78
+ str r0, [r7]
+_080B3D5A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3D68: .4byte gSprites
+_080B3D6C: .4byte SpriteCallbackDummy
+_080B3D70: .4byte gBattleAnimArgs
+_080B3D74: .4byte sub_80B3D78
+ thumb_func_end sub_80B3C78
+
+ thumb_func_start sub_80B3D78
+sub_80B3D78: @ 80B3D78
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B3D9C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B3DFC
+ cmp r0, 0x1
+ bgt _080B3DA0
+ cmp r0, 0
+ beq _080B3DAA
+ b _080B3E7C
+ .align 2, 0
+_080B3D9C: .4byte gTasks
+_080B3DA0:
+ cmp r0, 0x2
+ beq _080B3E4C
+ cmp r0, 0x3
+ beq _080B3E6C
+ b _080B3E7C
+_080B3DAA:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080B3DF8 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8076494
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x30
+ bne _080B3E7C
+ b _080B3E5E
+ .align 2, 0
+_080B3DF8: .4byte gSineTable
+_080B3DFC:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080B3E48 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8076494
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B3E7C
+ b _080B3E5E
+ .align 2, 0
+_080B3E48: .4byte gSineTable
+_080B3E4C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B3E68 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_080B3E5E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B3E7C
+ .align 2, 0
+_080B3E68: .4byte gSprites
+_080B3E6C:
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bl FreeOamMatrix
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B3E7C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3D78
+
+ thumb_func_start sub_80B3E84
+sub_80B3E84: @ 80B3E84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080B3EFC
+ cmp r0, 0x1
+ bgt _080B3E9A
+ cmp r0, 0
+ beq _080B3EA4
+ b _080B3FA4
+_080B3E9A:
+ cmp r0, 0x2
+ beq _080B3F2E
+ cmp r0, 0x3
+ beq _080B3F8E
+ b _080B3FA4
+_080B3EA4:
+ ldr r4, _080B3EF8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3ED2
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xC
+ strh r0, [r5, 0x22]
+_080B3ED2:
+ movs r0, 0x8
+ strh r0, [r5, 0x30]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ b _080B3F26
+ .align 2, 0
+_080B3EF8: .4byte gBattleAnimAttacker
+_080B3EFC:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B3FA4
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC4
+ bl PlaySE12WithPanning
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_080B3F26:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080B3FA4
+_080B3F2E:
+ ldrh r0, [r5, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080B3F72
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x30]
+ subs r1, 0x1
+ strh r1, [r5, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080B3F72
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080B3F72:
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r0, 0
+ ldrh r1, [r5, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r5, 0x26]
+ subs r0, r1
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r5, 0x34]
+ b _080B3FA4
+_080B3F8E:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+_080B3FA4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3E84
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/region_map.s b/asm/region_map.s
index 168ca47c3..519b766c1 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -118,13 +118,13 @@ sub_80BFEDC: @ 80BFEDC
str r2, [r4]
cmp r2, 0
bne _080BFF08
- ldr r0, _080BFF04 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080BFF04 @ =CB2_ReturnToField
bl SetMainCallback2
b _080BFF38
.align 2, 0
_080BFEFC: .4byte gUnknown_20399D4
_080BFF00: .4byte 0x000047c0
-_080BFF04: .4byte c2_exit_to_overworld_2_switch
+_080BFF04: .4byte CB2_ReturnToField
_080BFF08:
ldr r1, _080BFF40 @ =gUnknown_2031DE0
movs r0, 0x1
@@ -172,13 +172,13 @@ sub_80BFF50: @ 80BFF50
str r2, [r4]
cmp r2, 0
bne _080BFF7C
- ldr r0, _080BFF78 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080BFF78 @ =CB2_ReturnToField
bl SetMainCallback2
b _080BFFB4
.align 2, 0
_080BFF70: .4byte gUnknown_20399D4
_080BFF74: .4byte 0x000047c0
-_080BFF78: .4byte c2_exit_to_overworld_2_switch
+_080BFF78: .4byte CB2_ReturnToField
_080BFF7C:
ldr r1, _080BFFBC @ =gUnknown_2031DE0
movs r0, 0x1
@@ -1487,7 +1487,7 @@ sub_80C0A6C: @ 80C0A6C
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_80C0A6C
@@ -1600,7 +1600,7 @@ _080C0B44:
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
bl PutWindowTilemap
movs r0, 0
@@ -1718,7 +1718,7 @@ sub_80C0BB0: @ 80C0BB0
movs r1, 0x2
movs r2, 0xC
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
@@ -3737,7 +3737,7 @@ _080C1CA8:
movs r1, 0x2
movs r2, 0x4
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
bl sub_80C3580
lsls r0, 16
lsrs r0, 16
@@ -3750,7 +3750,7 @@ _080C1CA8:
movs r1, 0x2
movs r2, 0x2
movs r3, 0xE
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
@@ -6451,7 +6451,7 @@ _080C3300:
ldr r1, _080C3338 @ =0x000047bc
adds r0, r1
ldr r1, [r0]
- ldr r0, _080C333C @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080C333C @ =CB2_ReturnToField
cmp r1, r0
bne _080C331A
_080C3318:
@@ -6474,7 +6474,7 @@ _080C332C:
.align 2, 0
_080C3334: .4byte gUnknown_20399D4
_080C3338: .4byte 0x000047bc
-_080C333C: .4byte c2_exit_to_overworld_2_switch
+_080C333C: .4byte CB2_ReturnToField
_080C3340: .4byte gUnknown_20399E4
_080C3344: .4byte sub_80C3348
thumb_func_end sub_80C31C0
@@ -9815,7 +9815,7 @@ _080C4E48:
movs r1, 0
movs r2, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x3
movs r1, 0x2
bl CopyWindowToVram
@@ -9860,7 +9860,7 @@ _080C4EA4:
movs r1, 0
movs r2, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x4
movs r1, 0x3
bl CopyWindowToVram
@@ -10276,12 +10276,12 @@ _080C5220:
ldrb r0, [r0, 0x2]
cmp r0, 0x1
bne _080C5258
- ldr r0, _080C5254 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080C5254 @ =CB2_ReturnToField
bl SetMainCallback2
b _080C525E
.align 2, 0
_080C5250: .4byte gUnknown_20399FC
-_080C5254: .4byte c2_exit_to_overworld_2_switch
+_080C5254: .4byte CB2_ReturnToField
_080C5258:
ldr r0, _080C5274 @ =sub_8124AB0
bl SetMainCallback2
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
index 6fb09f439..9ec3e3580 100644
--- a/asm/reshow_battle_screen.s
+++ b/asm/reshow_battle_screen.s
@@ -45,7 +45,7 @@ sub_8077764: @ 8077764
cmp r1, 0
beq _080777BC
movs r0, 0x19
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
.align 2, 0
_080777B0: .4byte gPaletteFade
@@ -53,7 +53,7 @@ _080777B4: .4byte gBattleScripting
_080777B8: .4byte gBattleTypeFlags
_080777BC:
movs r0, 0x18
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
_080777C4:
movs r0, 0x80
@@ -61,11 +61,11 @@ _080777C4:
cmp r1, 0
beq _080777D4
movs r0, 0x1A
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
_080777D4:
movs r0, 0x17
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080777DA:
ldr r0, _080777E4 @ =sub_80777E8
bl SetMainCallback2
@@ -123,7 +123,7 @@ _08077860:
_08077866:
movs r0, 0
bl SetVBlankCallback
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl sub_800F324
movs r0, 0x1
movs r1, 0x1
@@ -142,33 +142,33 @@ _08077866:
movs r0, 0x3
bl ShowBg
bl ResetPaletteFade
- ldr r0, _080778C8 @ =gUnknown_2022974
+ ldr r0, _080778C8 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080778CC @ =gUnknown_2022976
+ ldr r0, _080778CC @ =gBattle_BG0_Y
strh r1, [r0]
- ldr r0, _080778D0 @ =gUnknown_2022978
+ ldr r0, _080778D0 @ =gBattle_BG1_X
strh r1, [r0]
- ldr r0, _080778D4 @ =gUnknown_202297A
+ ldr r0, _080778D4 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _080778D8 @ =gUnknown_202297C
+ ldr r0, _080778D8 @ =gBattle_BG2_X
strh r1, [r0]
- ldr r0, _080778DC @ =gUnknown_202297E
+ ldr r0, _080778DC @ =gBattle_BG2_Y
strh r1, [r0]
- ldr r0, _080778E0 @ =gUnknown_2022980
+ ldr r0, _080778E0 @ =gBattle_BG3_X
strh r1, [r0]
- ldr r0, _080778E4 @ =gUnknown_2022982
+ ldr r0, _080778E4 @ =gBattle_BG3_Y
strh r1, [r0]
b _08077A8A
.align 2, 0
-_080778C8: .4byte gUnknown_2022974
-_080778CC: .4byte gUnknown_2022976
-_080778D0: .4byte gUnknown_2022978
-_080778D4: .4byte gUnknown_202297A
-_080778D8: .4byte gUnknown_202297C
-_080778DC: .4byte gUnknown_202297E
-_080778E0: .4byte gUnknown_2022980
-_080778E4: .4byte gUnknown_2022982
+_080778C8: .4byte gBattle_BG0_X
+_080778CC: .4byte gBattle_BG0_Y
+_080778D0: .4byte gBattle_BG1_X
+_080778D4: .4byte gBattle_BG1_Y
+_080778D8: .4byte gBattle_BG2_X
+_080778DC: .4byte gBattle_BG2_Y
+_080778E0: .4byte gBattle_BG3_X
+_080778E4: .4byte gBattle_BG3_Y
_080778E8:
movs r0, 0
str r0, [sp, 0x4]
@@ -661,7 +661,7 @@ _08077CD2:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r5, _08077D98 @ =gMultiuseSpriteTemplate
adds r0, r7, 0
movs r1, 0x2
@@ -678,7 +678,7 @@ _08077CD2:
adds r1, r4, 0
mov r2, r8
bl CreateSprite
- ldr r4, _08077D9C @ =gUnknown_2023D44
+ ldr r4, _08077D9C @ =gBattlerSpriteIds
adds r4, r7, r4
strb r0, [r4]
ldr r5, _08077DA0 @ =gSprites
@@ -735,7 +735,7 @@ _08077CD2:
_08077D90: .4byte gBattlerPartyIndexes
_08077D94: .4byte gEnemyParty
_08077D98: .4byte gMultiuseSpriteTemplate
-_08077D9C: .4byte gUnknown_2023D44
+_08077D9C: .4byte gBattlerSpriteIds
_08077DA0: .4byte gSprites
_08077DA4: .4byte SpriteCallbackDummy
_08077DA8: .4byte gBattleMonForms
@@ -820,7 +820,7 @@ _08077E54:
movs r1, 0x50
adds r2, r4, 0
bl CreateSprite
- ldr r3, _08077E9C @ =gUnknown_2023D44
+ ldr r3, _08077E9C @ =gBattlerSpriteIds
strb r0, [r3]
ldr r4, _08077EA0 @ =gSprites
ldrb r0, [r3]
@@ -851,7 +851,7 @@ _08077E54:
.align 2, 0
_08077E94: .4byte gMultiuseSpriteTemplate
_08077E98: .4byte gUnknown_8239F8C
-_08077E9C: .4byte gUnknown_2023D44
+_08077E9C: .4byte gBattlerSpriteIds
_08077EA0: .4byte gSprites
_08077EA4: .4byte SpriteCallbackDummy
_08077EA8:
@@ -887,7 +887,7 @@ _08077EA8:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r5, _08077FCC @ =gMultiuseSpriteTemplate
adds r0, r7, 0
movs r1, 0x2
@@ -904,7 +904,7 @@ _08077EA8:
adds r1, r4, 0
mov r2, r8
bl CreateSprite
- ldr r4, _08077FD0 @ =gUnknown_2023D44
+ ldr r4, _08077FD0 @ =gBattlerSpriteIds
adds r4, r7, r4
strb r0, [r4]
ldr r5, _08077FD4 @ =gSprites
@@ -958,7 +958,7 @@ _08077EA8:
bl StartSpriteAnim
_08077F84:
ldr r1, _08077FD4 @ =gSprites
- ldr r0, _08077FD0 @ =gUnknown_2023D44
+ ldr r0, _08077FD0 @ =gBattlerSpriteIds
adds r0, r7, r0
ldrb r0, [r0]
lsls r2, r0, 4
@@ -993,7 +993,7 @@ _08077FB4:
_08077FC4: .4byte gBattlerPartyIndexes
_08077FC8: .4byte gPlayerParty
_08077FCC: .4byte gMultiuseSpriteTemplate
-_08077FD0: .4byte gUnknown_2023D44
+_08077FD0: .4byte gBattlerSpriteIds
_08077FD4: .4byte gSprites
_08077FD8: .4byte SpriteCallbackDummy
_08077FDC: .4byte gBattleMonForms
diff --git a/asm/roamer.s b/asm/roamer.s
deleted file mode 100644
index d42b34293..000000000
--- a/asm/roamer.s
+++ /dev/null
@@ -1,531 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8141C54
-sub_8141C54: @ 8141C54
- push {lr}
- ldr r0, _08141C84 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141C88 @ =0x000030d0
- adds r0, r1
- movs r1, 0
- movs r2, 0x1C
- bl memset
- ldr r1, _08141C8C @ =gUnknown_203F3AE
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- movs r1, 0
- movs r2, 0
- ldr r0, _08141C90 @ =gUnknown_203F3A8
-_08141C74:
- strb r2, [r0]
- strb r2, [r0, 0x1]
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x2
- bls _08141C74
- pop {r0}
- bx r0
- .align 2, 0
-_08141C84: .4byte gSaveBlock1Ptr
-_08141C88: .4byte 0x000030d0
-_08141C8C: .4byte gUnknown_203F3AE
-_08141C90: .4byte gUnknown_203F3A8
- thumb_func_end sub_8141C54
-
- thumb_func_start sub_8141C94
-sub_8141C94: @ 8141C94
- push {r4-r7,lr}
- sub sp, 0x10
- ldr r7, _08141CB0 @ =gEnemyParty
- bl sub_80CBDB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08141CB4
- cmp r0, 0x4
- beq _08141CB8
- movs r6, 0xF3
- b _08141CBA
- .align 2, 0
-_08141CB0: .4byte gEnemyParty
-_08141CB4:
- movs r6, 0xF4
- b _08141CBA
-_08141CB8:
- movs r6, 0xF5
-_08141CBA:
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x32
- movs r3, 0x20
- bl CreateMon
- ldr r5, _08141D8C @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r4, _08141D90 @ =0x000030d0
- adds r1, r4
- movs r2, 0
- strh r6, [r1, 0x8]
- movs r0, 0x32
- strb r0, [r1, 0xC]
- ldr r0, [r5]
- adds r0, r4
- strb r2, [r0, 0xD]
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0, 0x13]
- adds r0, r7, 0
- movs r1, 0x42
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- str r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- str r0, [r1, 0x4]
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strh r0, [r1, 0xA]
- adds r0, r7, 0
- movs r1, 0x16
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xE]
- adds r0, r7, 0
- movs r1, 0x17
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xF]
- adds r0, r7, 0
- movs r1, 0x18
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x10]
- adds r0, r7, 0
- movs r1, 0x21
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x11]
- adds r0, r7, 0
- movs r1, 0x2F
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x12]
- ldr r5, _08141D94 @ =gUnknown_203F3AE
- movs r0, 0x3
- strb r0, [r5]
- bl Random
- ldr r4, _08141D98 @ =gUnknown_8466C58
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- adds r1, r4
- ldrb r0, [r1]
- strb r0, [r5, 0x1]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D8C: .4byte gSaveBlock1Ptr
-_08141D90: .4byte 0x000030d0
-_08141D94: .4byte gUnknown_203F3AE
-_08141D98: .4byte gUnknown_8466C58
- thumb_func_end sub_8141C94
-
- thumb_func_start sub_8141D9C
-sub_8141D9C: @ 8141D9C
- push {lr}
- bl sub_8141C54
- bl sub_8141C94
- pop {r0}
- bx r0
- thumb_func_end sub_8141D9C
-
- thumb_func_start UpdateLocationHistoryForRoamer
-UpdateLocationHistoryForRoamer: @ 8141DAC
- ldr r0, _08141DCC @ =gUnknown_203F3A8
- ldrb r1, [r0, 0x2]
- strb r1, [r0, 0x4]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x5]
- ldrb r1, [r0]
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0x3]
- ldr r1, _08141DD0 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- ldrb r1, [r2, 0x5]
- strb r1, [r0, 0x1]
- bx lr
- .align 2, 0
-_08141DCC: .4byte gUnknown_203F3A8
-_08141DD0: .4byte gSaveBlock1Ptr
- thumb_func_end UpdateLocationHistoryForRoamer
-
- thumb_func_start RoamerMoveToOtherLocationSet
-RoamerMoveToOtherLocationSet: @ 8141DD4
- push {r4,r5,lr}
- ldr r0, _08141E18 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141E1C @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141E10
- ldr r1, _08141E20 @ =gUnknown_203F3AE
- movs r0, 0x3
- strb r0, [r1]
- ldr r5, _08141E24 @ =gUnknown_8466C58
- adds r4, r1, 0
-_08141DEE:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- adds r1, r5
- ldrb r1, [r1]
- ldrb r0, [r4, 0x1]
- cmp r0, r1
- beq _08141DEE
- strb r1, [r4, 0x1]
-_08141E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141E18: .4byte gSaveBlock1Ptr
-_08141E1C: .4byte 0x000030d0
-_08141E20: .4byte gUnknown_203F3AE
-_08141E24: .4byte gUnknown_8466C58
- thumb_func_end RoamerMoveToOtherLocationSet
-
- thumb_func_start RoamerMove
-RoamerMove: @ 8141E28
- push {r4-r7,lr}
- movs r4, 0
- bl Random
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 12
- ands r1, r0
- cmp r1, 0
- bne _08141E42
- bl RoamerMoveToOtherLocationSet
- b _08141EB2
-_08141E42:
- ldr r0, _08141E94 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141E98 @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141EB2
- ldr r7, _08141E9C @ =gUnknown_203F3AE
-_08141E52:
- ldr r3, _08141EA0 @ =gUnknown_8466C58
- lsls r0, r4, 3
- subs r2, r0, r4
- adds r1, r2, r3
- ldrb r0, [r7, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08141EA8
- adds r6, r3, 0
- adds r5, r2, 0x1
- ldr r4, _08141EA4 @ =gUnknown_203F3A8
-_08141E68:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, r5
- adds r0, r6
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- cmp r0, 0x3
- bne _08141E8C
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- beq _08141E68
-_08141E8C:
- cmp r1, 0xFF
- beq _08141E68
- strb r1, [r7, 0x1]
- b _08141EB2
- .align 2, 0
-_08141E94: .4byte gSaveBlock1Ptr
-_08141E98: .4byte 0x000030d0
-_08141E9C: .4byte gUnknown_203F3AE
-_08141EA0: .4byte gUnknown_8466C58
-_08141EA4: .4byte gUnknown_203F3A8
-_08141EA8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x18
- bls _08141E52
-_08141EB2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end RoamerMove
-
- thumb_func_start IsRoamerAt
-IsRoamerAt: @ 8141EB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08141EE4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, _08141EE8 @ =0x000030d0
- adds r0, r3
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141EF0
- ldr r0, _08141EEC @ =gUnknown_203F3AE
- ldrb r3, [r0]
- cmp r2, r3
- bne _08141EF0
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bne _08141EF0
- movs r0, 0x1
- b _08141EF2
- .align 2, 0
-_08141EE4: .4byte gSaveBlock1Ptr
-_08141EE8: .4byte 0x000030d0
-_08141EEC: .4byte gUnknown_203F3AE
-_08141EF0:
- movs r0, 0
-_08141EF2:
- pop {r1}
- bx r1
- thumb_func_end IsRoamerAt
-
- thumb_func_start CreateRoamerMonInstance
-CreateRoamerMonInstance: @ 8141EF8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08141F84 @ =gEnemyParty
- bl ZeroEnemyPartyMons
- ldr r4, _08141F88 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r1, _08141F8C @ =0x000030d0
- adds r0, r1
- ldrh r1, [r0, 0x8]
- ldrb r2, [r0, 0xC]
- ldr r3, [r0]
- ldr r0, [r0, 0x4]
- str r0, [sp]
- adds r0, r5, 0
- bl CreateMonWithIVsPersonality
- ldr r2, [r4]
- ldr r0, _08141F90 @ =0x000030dd
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141F94 @ =0x000030da
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x39
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141F98 @ =0x000030de
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x16
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141F9C @ =0x000030df
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x17
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141FA0 @ =0x000030e0
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x18
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141FA4 @ =0x000030e1
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x21
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141FA8 @ =0x000030e2
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x2F
- bl SetMonData
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141F84: .4byte gEnemyParty
-_08141F88: .4byte gSaveBlock1Ptr
-_08141F8C: .4byte 0x000030d0
-_08141F90: .4byte 0x000030dd
-_08141F94: .4byte 0x000030da
-_08141F98: .4byte 0x000030de
-_08141F9C: .4byte 0x000030df
-_08141FA0: .4byte 0x000030e0
-_08141FA4: .4byte 0x000030e1
-_08141FA8: .4byte 0x000030e2
- thumb_func_end CreateRoamerMonInstance
-
- thumb_func_start TryStartRoamerEncounter
-TryStartRoamerEncounter: @ 8141FAC
- push {lr}
- ldr r0, _08141FDC @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- bl IsRoamerAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08141FE0
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08141FE0
- bl CreateRoamerMonInstance
- movs r0, 0x1
- b _08141FE2
- .align 2, 0
-_08141FDC: .4byte gSaveBlock1Ptr
-_08141FE0:
- movs r0, 0
-_08141FE2:
- pop {r1}
- bx r1
- thumb_func_end TryStartRoamerEncounter
-
- thumb_func_start UpdateRoamerHPStatus
-UpdateRoamerHPStatus: @ 8141FE8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x39
- bl GetMonData
- ldr r5, _08142014 @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r4, _08142018 @ =0x000030d0
- adds r1, r4
- strh r0, [r1, 0xA]
- adds r0, r6, 0
- movs r1, 0x37
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xD]
- bl RoamerMoveToOtherLocationSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142014: .4byte gSaveBlock1Ptr
-_08142018: .4byte 0x000030d0
- thumb_func_end UpdateRoamerHPStatus
-
- thumb_func_start SetRoamerInactive
-SetRoamerInactive: @ 814201C
- ldr r0, _0814202C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08142030 @ =0x000030d0
- adds r0, r1
- movs r1, 0
- strb r1, [r0, 0x13]
- bx lr
- .align 2, 0
-_0814202C: .4byte gSaveBlock1Ptr
-_08142030: .4byte 0x000030d0
- thumb_func_end SetRoamerInactive
-
- thumb_func_start GetRoamerLocation
-GetRoamerLocation: @ 8142034
- ldr r3, _08142040 @ =gUnknown_203F3AE
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r3, 0x1]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08142040: .4byte gUnknown_203F3AE
- thumb_func_end GetRoamerLocation
-
- thumb_func_start sub_8142044
-sub_8142044: @ 8142044
- push {lr}
- ldr r0, _08142064 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08142068 @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08142070
- ldr r1, _0814206C @ =gUnknown_203F3AE
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- b _08142072
- .align 2, 0
-_08142064: .4byte gSaveBlock1Ptr
-_08142068: .4byte 0x000030d0
-_0814206C: .4byte gUnknown_203F3AE
-_08142070:
- movs r0, 0xC5
-_08142072:
- pop {r1}
- bx r1
- thumb_func_end sub_8142044
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rock.s b/asm/rock.s
new file mode 100644
index 000000000..50687a86e
--- /dev/null
+++ b/asm/rock.s
@@ -0,0 +1,1558 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B4634
+sub_80B4634: @ 80B4634
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080B46A0 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080B4654
+ ldr r0, _080B46A4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_8076D9C
+_080B4654:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xE
+ strh r0, [r5, 0x22]
+ ldrb r1, [r6, 0x2]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ strh r4, [r5, 0x2E]
+ strh r4, [r5, 0x30]
+ movs r0, 0x4
+ strh r0, [r5, 0x32]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldr r0, _080B46A8 @ =0x0000ffba
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x38]
+ ldr r1, _080B46AC @ =sub_80B46B4
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080B46B0 @ =sub_8074BE4
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B46A0: .4byte gBattleAnimArgs
+_080B46A4: .4byte gBattleAnimTarget
+_080B46A8: .4byte 0x0000ffba
+_080B46AC: .4byte sub_80B46B4
+_080B46B0: .4byte sub_8074BE4
+ thumb_func_end sub_80B4634
+
+ thumb_func_start sub_80B46B4
+sub_80B46B4: @ 80B46B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x20]
+ adds r0, r1, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r0, 0x4
+ strh r0, [r4, 0x32]
+ movs r0, 0x20
+ strh r0, [r4, 0x34]
+ ldr r0, _080B46EC @ =0x0000ffe8
+ strh r0, [r4, 0x36]
+ ldr r1, _080B46F0 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080B46F4 @ =sub_8074BE4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B46EC: .4byte 0x0000ffe8
+_080B46F0: .4byte move_anim_8074EE0
+_080B46F4: .4byte sub_8074BE4
+ thumb_func_end sub_80B46B4
+
+ thumb_func_start sub_80B46F8
+sub_80B46F8: @ 80B46F8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080B4720 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0xA]
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ ldr r0, _080B4724 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4728
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080B472E
+ .align 2, 0
+_080B4720: .4byte gBattleAnimArgs
+_080B4724: .4byte gBattleAnimAttacker
+_080B4728:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080B472E:
+ strh r0, [r5, 0x20]
+ ldr r3, _080B4770 @ =gBattleAnimArgs
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r5, 0x22]
+ adds r2, r0
+ movs r4, 0
+ strh r2, [r5, 0x22]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r1, [r3, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldrh r0, [r3, 0x6]
+ adds r2, r0
+ strh r2, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_80754B8
+ strh r4, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, _080B4774 @ =sub_8074D00
+ str r0, [r5, 0x1C]
+ ldr r1, _080B4778 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4770: .4byte gBattleAnimArgs
+_080B4774: .4byte sub_8074D00
+_080B4778: .4byte move_anim_8074EE0
+ thumb_func_end sub_80B46F8
+
+ thumb_func_start sub_80B477C
+sub_80B477C: @ 80B477C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080B4794 @ =gBattleAnimArgs
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080B4798
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075160
+ b _080B47A0
+ .align 2, 0
+_080B4794: .4byte gBattleAnimArgs
+_080B4798:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075114
+_080B47A0:
+ ldr r1, _080B47BC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080B47C0 @ =sub_80B47C4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B47BC: .4byte gBattleAnimArgs
+_080B47C0: .4byte sub_80B47C4
+ thumb_func_end sub_80B477C
+
+ thumb_func_start sub_80B47C4
+sub_80B47C4: @ 80B47C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080B480A
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B480A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B47C4
+
+ thumb_func_start do_boulder_dust
+do_boulder_dust: @ 80B4810
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _080B48E4 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4854
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080B4854:
+ ldr r0, _080B48E8 @ =gBattle_BG1_X
+ strh r5, [r0]
+ ldr r4, _080B48EC @ =gBattle_BG1_Y
+ strh r5, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
+ bl sub_807543C
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B48B0
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080B48B0:
+ ldr r0, _080B48FC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080B48CA
+ ldr r0, _080B4900 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B48CA
+ movs r5, 0x1
+_080B48CA:
+ ldr r0, _080B4904 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x8]
+ ldr r0, _080B4908 @ =sub_80B490C
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B48E4: .4byte 0x00003f42
+_080B48E8: .4byte gBattle_BG1_X
+_080B48EC: .4byte gBattle_BG1_Y
+_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
+_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
+_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette
+_080B48FC: .4byte gBattleAnimArgs
+_080B4900: .4byte gBattleAnimAttacker
+_080B4904: .4byte gTasks
+_080B4908: .4byte sub_80B490C
+ thumb_func_end do_boulder_dust
+
+ thumb_func_start sub_80B490C
+sub_80B490C: @ 80B490C
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B4934 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _080B4940
+ ldr r1, _080B4938 @ =gBattle_BG1_X
+ ldr r3, _080B493C @ =0x0000fffa
+ adds r0, r3, 0
+ ldrh r3, [r1]
+ adds r0, r3
+ b _080B4946
+ .align 2, 0
+_080B4934: .4byte gTasks
+_080B4938: .4byte gBattle_BG1_X
+_080B493C: .4byte 0x0000fffa
+_080B4940:
+ ldr r1, _080B4974 @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080B4946:
+ strh r0, [r1]
+ ldr r1, _080B4978 @ =gBattle_BG1_Y
+ ldr r3, _080B497C @ =0x0000ffff
+ adds r0, r3, 0
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r3, 0x20
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _080B4968
+ b _080B4A96
+_080B4968:
+ lsls r0, 2
+ ldr r1, _080B4980 @ =_080B4984
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B4974: .4byte gBattle_BG1_X
+_080B4978: .4byte gBattle_BG1_Y
+_080B497C: .4byte 0x0000ffff
+_080B4980: .4byte _080B4984
+ .align 2, 0
+_080B4984:
+ .4byte _080B4998
+ .4byte _080B49DA
+ .4byte _080B49F4
+ .4byte _080B4A36
+ .4byte _080B4A58
+_080B4998:
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080B4A96
+ strh r5, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bne _080B4A96
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _080B4A96
+_080B49DA:
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x65
+ bne _080B4A96
+ movs r0, 0x7
+ strh r0, [r1, 0x1E]
+ b _080B4A4C
+_080B49F4:
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080B4A96
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080B4A96
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080B4A96
+_080B4A36:
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_8075358
+ ldr r0, _080B4A54 @ =gTasks
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+_080B4A4C:
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080B4A96
+ .align 2, 0
+_080B4A54: .4byte gTasks
+_080B4A58:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4A6C
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080B4A6C:
+ ldr r0, _080B4AA0 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080B4AA4 @ =gBattle_BG1_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B4A96:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4AA0: .4byte gBattle_BG1_X
+_080B4AA4: .4byte gBattle_BG1_Y
+ thumb_func_end sub_80B490C
+
+ thumb_func_start sub_80B4AA8
+sub_80B4AA8: @ 80B4AA8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080B4B24
+ ldr r4, _080B4AEC @ =gBattleAnimArgs
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B4AF4
+ ldr r0, _080B4AF0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4AF4
+ movs r0, 0x98
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ subs r0, 0x40
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ b _080B4AF8
+ .align 2, 0
+_080B4AEC: .4byte gBattleAnimArgs
+_080B4AF0: .4byte gBattleAnimAttacker
+_080B4AF4:
+ ldr r0, _080B4B18 @ =0x0000ffc0
+ strh r0, [r5, 0x20]
+_080B4AF8:
+ ldr r4, _080B4B1C @ =gBattleAnimArgs
+ ldrh r0, [r4]
+ strh r0, [r5, 0x22]
+ ldr r1, _080B4B20 @ =gUnknown_83E7470
+ adds r0, r5, 0
+ bl SetSubspriteTables
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080B4B80
+ .align 2, 0
+_080B4B18: .4byte 0x0000ffc0
+_080B4B1C: .4byte gBattleAnimArgs
+_080B4B20: .4byte gUnknown_83E7470
+_080B4B24:
+ ldrh r1, [r5, 0x30]
+ ldrh r3, [r5, 0x34]
+ adds r1, r3
+ ldrh r2, [r5, 0x32]
+ ldrh r0, [r5, 0x36]
+ adds r2, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x24]
+ adds r0, r3
+ strh r0, [r5, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x26]
+ adds r0, r3
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x34]
+ ands r2, r0
+ strh r2, [r5, 0x36]
+ movs r1, 0x38
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080B4B6A
+ movs r2, 0x20
+ ldrsh r0, [r5, r2]
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ adds r0, r1
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ ble _080B4B80
+ b _080B4B7C
+_080B4B6A:
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080B4B80
+_080B4B7C:
+ ldr r0, _080B4B88 @ =DestroyAnimSprite
+ str r0, [r5, 0x1C]
+_080B4B80:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4B88: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B4AA8
+
+ thumb_func_start sub_80B4B8C
+sub_80B4B8C: @ 80B4B8C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B4BC4 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075160
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldr r0, _080B4BC8 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080B4BCC @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4BC4: .4byte gBattleAnimArgs
+_080B4BC8: .4byte sub_8075590
+_080B4BCC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80B4B8C
+
+ thumb_func_start sub_80B4BD0
+sub_80B4BD0: @ 80B4BD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B4C50 @ =gTasks
+ adds r6, r1, r0
+ ldr r5, _080B4C54 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r7, r0, 16
+ ldr r4, _080B4C58 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xC0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080B4C40
+ mov r8, r7
+_080B4C40:
+ bl sub_80B4FB8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080B4C5C
+ movs r0, 0x20
+ b _080B4C62
+ .align 2, 0
+_080B4C50: .4byte gTasks
+_080B4C54: .4byte gBattleAnimAttacker
+_080B4C58: .4byte gBattleAnimTarget
+_080B4C5C:
+ lsls r1, r5, 3
+ movs r0, 0x30
+ subs r0, r1
+_080B4C62:
+ strh r0, [r6, 0x18]
+ movs r4, 0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0x1E]
+ strh r4, [r6, 0x1A]
+ movs r0, 0x1
+ strh r0, [r6, 0x20]
+ movs r1, 0x18
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _080B4C7A
+ adds r0, 0x7
+_080B4C7A:
+ asrs r0, 3
+ subs r0, 0x1
+ strh r0, [r6, 0x1C]
+ mov r2, r9
+ lsls r0, r2, 3
+ strh r0, [r6, 0xC]
+ lsls r0, r7, 3
+ strh r0, [r6, 0xE]
+ mov r1, r10
+ subs r0, r1, r2
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x10]
+ mov r1, r8
+ subs r0, r1, r7
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ strh r4, [r6, 0x16]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073A44
+ adds r4, r0, 0
+ lsls r4, 24
+ asrs r4, 8
+ lsrs r4, 16
+ movs r0, 0x3F
+ bl sub_8073A44
+ lsls r0, 24
+ strh r4, [r6, 0x22]
+ asrs r0, 24
+ lsls r4, 16
+ asrs r4, 16
+ subs r0, r4
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x24]
+ strh r5, [r6, 0xA]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ ldr r0, _080B4CFC @ =sub_80B4D00
+ str r0, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4CFC: .4byte sub_80B4D00
+ thumb_func_end sub_80B4BD0
+
+ thumb_func_start sub_80B4D00
+sub_80B4D00: @ 80B4D00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080B4D24 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080B4D1A
+ b _080B4E68
+_080B4D1A:
+ lsls r0, 2
+ ldr r1, _080B4D28 @ =_080B4D2C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B4D24: .4byte gTasks
+_080B4D28: .4byte _080B4D2C
+ .align 2, 0
+_080B4D2C:
+ .4byte _080B4D40
+ .4byte _080B4DA4
+ .4byte _080B4DAC
+ .4byte _080B4E08
+ .4byte _080B4E5A
+_080B4D40:
+ ldrh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ subs r2, r0
+ strh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ ldr r3, _080B4DA0 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ lsls r2, 16
+ asrs r2, 19
+ strh r2, [r0, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080B4D90
+ movs r0, 0x14
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B4D90:
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x9B
+ bl PlaySE12WithPanning
+ b _080B4E68
+ .align 2, 0
+_080B4DA0: .4byte gSprites
+_080B4DA4:
+ ldrh r0, [r4, 0x1E]
+ subs r0, 0x1
+ strh r0, [r4, 0x1E]
+ b _080B4E4C
+_080B4DAC:
+ ldrh r0, [r4, 0x1A]
+ subs r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _080B4DCC
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ b _080B4DD6
+_080B4DCC:
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B4DD6:
+ ldr r2, _080B4E04 @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ b _080B4E68
+ .align 2, 0
+_080B4E04: .4byte gSprites
+_080B4E08:
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0xE]
+ adds r0, r1
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1C
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080B4E46
+ movs r0, 0
+ strh r0, [r4, 0x1A]
+ adds r0, r4, 0
+ bl sub_80B4E70
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA8
+ bl PlaySE12WithPanning
+_080B4E46:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+_080B4E4C:
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B4E68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B4E68
+_080B4E5A:
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B4E68
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080B4E68:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B4D00
+
+ thumb_func_start sub_80B4E70
+sub_80B4E70: @ 80B4E70
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bhi _080B4F60
+ lsls r0, 2
+ ldr r1, _080B4E8C @ =_080B4E90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B4E8C: .4byte _080B4E90
+ .align 2, 0
+_080B4E90:
+ .4byte _080B4EA4
+ .4byte _080B4EB0
+ .4byte _080B4EB0
+ .4byte _080B4EBC
+ .4byte _080B4EC8
+_080B4EA4:
+ ldr r3, _080B4EAC @ =gUnknown_83E74D8
+ movs r5, 0
+ b _080B4ECC
+ .align 2, 0
+_080B4EAC: .4byte gUnknown_83E74D8
+_080B4EB0:
+ ldr r3, _080B4EB8 @ =gUnknown_83E74F0
+ movs r5, 0x50
+ b _080B4ECC
+ .align 2, 0
+_080B4EB8: .4byte gUnknown_83E74F0
+_080B4EBC:
+ ldr r3, _080B4EC4 @ =gUnknown_83E74F0
+ movs r5, 0x40
+ b _080B4ECC
+ .align 2, 0
+_080B4EC4: .4byte gUnknown_83E74F0
+_080B4EC8:
+ ldr r3, _080B4F68 @ =gUnknown_83E74F0
+ movs r5, 0x30
+_080B4ECC:
+ ldrh r1, [r4, 0xC]
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r4, 0xE]
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ lsls r0, 2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ lsrs r7, r2, 16
+ asrs r2, 16
+ adds r0, r3, 0
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080B4F58
+ ldr r1, _080B4F6C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x12
+ strh r1, [r0, 0x2E]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r6, r2
+ movs r6, 0xA
+ ldrsh r3, [r4, r6]
+ lsls r1, r3, 1
+ adds r1, r3
+ adds r2, r1
+ strh r2, [r0, 0x32]
+ strh r7, [r0, 0x36]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r2, 1
+ movs r3, 0x10
+ negs r3, r3
+ adds r1, r3, 0
+ subs r1, r2
+ strh r1, [r0, 0x38]
+ ldrh r3, [r0, 0x4]
+ lsls r2, r3, 22
+ lsrs r2, 22
+ adds r2, r5
+ ldr r5, _080B4F70 @ =0x000003ff
+ adds r1, r5, 0
+ ands r2, r1
+ ldr r1, _080B4F74 @ =0xfffffc00
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ bl sub_8075068
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+_080B4F58:
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ negs r0, r0
+ strh r0, [r4, 0x20]
+_080B4F60:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4F68: .4byte gUnknown_83E74F0
+_080B4F6C: .4byte gSprites
+_080B4F70: .4byte 0x000003ff
+_080B4F74: .4byte 0xfffffc00
+ thumb_func_end sub_80B4E70
+
+ thumb_func_start sub_80B4F78
+sub_80B4F78: @ 80B4F78
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4FAA
+ ldr r0, _080B4FB0 @ =sub_80B4D00
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080B4FA4
+ ldr r0, _080B4FB4 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1E]
+ subs r0, 0x1
+ strh r0, [r1, 0x1E]
+_080B4FA4:
+ adds r0, r4, 0
+ bl DestroySprite
+_080B4FAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4FB0: .4byte sub_80B4D00
+_080B4FB4: .4byte gTasks
+ thumb_func_end sub_80B4F78
+
+ thumb_func_start sub_80B4FB8
+sub_80B4FB8: @ 80B4FB8
+ push {lr}
+ ldr r0, _080B4FE0 @ =gAnimDisableStructPtr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B4FDA
+ movs r1, 0x1
+_080B4FDA:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B4FE0: .4byte gAnimDisableStructPtr
+ thumb_func_end sub_80B4FB8
+
+ thumb_func_start sub_80B4FE4
+sub_80B4FE4: @ 80B4FE4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B501C @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x4]
+ subs r0, r1
+ strh r0, [r4, 0x34]
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080B5020 @ =sub_80B5024
+ str r0, [r4, 0x1C]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B501C: .4byte gBattleAnimArgs
+_080B5020: .4byte sub_80B5024
+ thumb_func_end sub_80B4FE4
+
+ thumb_func_start sub_80B5024
+sub_80B5024: @ 80B5024
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldrh r1, [r2, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080B505C
+ ldrh r3, [r2, 0x32]
+ adds r0, r1, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r1, r0
+ strh r1, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r1, 16
+ cmp r1, 0
+ ble _080B506E
+ movs r0, 0
+ strh r0, [r2, 0x34]
+ b _080B506E
+_080B505C:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B506E
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080B506E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5024
+
+ thumb_func_start sub_80B5074
+sub_80B5074: @ 80B5074
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080B509C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B5090
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080B5090:
+ adds r0, r4, 0
+ bl sub_8075DF4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B509C: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80B5074
+
+ thumb_func_start sub_80B50A0
+sub_80B50A0: @ 80B50A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B50EC @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B50F0 @ =gBattleAnimArgs
+ ldrh r3, [r2]
+ ldrh r5, [r4, 0x20]
+ adds r1, r3, r5
+ strh r1, [r4, 0x20]
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r3, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r2, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080B50F4 @ =sub_80B50F8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B50EC: .4byte gBattleAnimTarget
+_080B50F0: .4byte gBattleAnimArgs
+_080B50F4: .4byte sub_80B50F8
+ thumb_func_end sub_80B50A0
+
+ thumb_func_start sub_80B50F8
+sub_80B50F8: @ 80B50F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ ldrh r1, [r4, 0x24]
+ adds r1, r0
+ strh r1, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ strh r1, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8C
+ ble _080B5142
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080B5142:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B50F8
+
+ thumb_func_start sub_80B5148
+sub_80B5148: @ 80B5148
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080B5180 @ =gUnknown_2037EE8
+ ldr r0, [r2]
+ cmp r0, 0x20
+ bgt _080B515C
+ ldr r1, _080B5184 @ =gBattleAnimArgs
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080B515C:
+ ldr r2, [r2]
+ adds r0, r2, 0
+ subs r0, 0x21
+ cmp r0, 0x20
+ bhi _080B516C
+ ldr r1, _080B5184 @ =gBattleAnimArgs
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080B516C:
+ cmp r2, 0x41
+ ble _080B5176
+ ldr r1, _080B5184 @ =gBattleAnimArgs
+ movs r0, 0x2
+ strh r0, [r1, 0xE]
+_080B5176:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5180: .4byte gUnknown_2037EE8
+_080B5184: .4byte gBattleAnimArgs
+ thumb_func_end sub_80B5148
+
+ thumb_func_start sub_80B5188
+sub_80B5188: @ 80B5188
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080B51E4 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080B51AA
+ movs r0, 0
+ bl sub_8075458
+ movs r0, 0xC8
+ strh r0, [r5, 0xA]
+_080B51AA:
+ ldr r4, _080B51E8 @ =gBattle_BG3_Y
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xA
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x3
+ strh r0, [r5, 0xA]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x78
+ bne _080B51D6
+ movs r0, 0x1
+ bl sub_8075458
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080B51D6:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B51E4: .4byte gTasks
+_080B51E8: .4byte gBattle_BG3_Y
+ thumb_func_end sub_80B5188
+
+ thumb_func_start sub_80B51EC
+sub_80B51EC: @ 80B51EC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080B5258 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080B5218
+ movs r0, 0
+ bl sub_8075458
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080B525C @ =gBattle_BG3_Y
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+_080B5218:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x50
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldr r6, _080B525C @ =gBattle_BG3_Y
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0x4
+ bl Cos
+ ldrh r4, [r4, 0xC]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r0, _080B5260 @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ ldr r0, _080B5264 @ =0x00000fff
+ cmp r1, r0
+ bne _080B5250
+ movs r0, 0
+ strh r0, [r6]
+ movs r0, 0x1
+ bl sub_8075458
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080B5250:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5258: .4byte gTasks
+_080B525C: .4byte gBattle_BG3_Y
+_080B5260: .4byte gBattleAnimArgs
+_080B5264: .4byte 0x00000fff
+ thumb_func_end sub_80B51EC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
index 06c2d30a2..2ac2cc0a4 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -291,10 +291,10 @@ SetUpFieldMove_RockSmash: @ 80C99D8
movs r0, 0
b _080C99FA
_080C99EC:
- ldr r1, _080C9A00 @ =gUnknown_3005024
- ldr r0, _080C9A04 @ =hm_add_c3_launch_phase_2
+ ldr r1, _080C9A00 @ =gFieldCallback2
+ ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _080C9A08 @ =gUnknown_203B0C4
+ ldr r1, _080C9A08 @ =gPostMenuFieldCallback
ldr r0, _080C9A0C @ =sub_80C9A10
str r0, [r1]
movs r0, 0x1
@@ -302,9 +302,9 @@ _080C99FA:
pop {r1}
bx r1
.align 2, 0
-_080C9A00: .4byte gUnknown_3005024
-_080C9A04: .4byte hm_add_c3_launch_phase_2
-_080C9A08: .4byte gUnknown_203B0C4
+_080C9A00: .4byte gFieldCallback2
+_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu
+_080C9A08: .4byte gPostMenuFieldCallback
_080C9A0C: .4byte sub_80C9A10
thumb_func_end SetUpFieldMove_RockSmash
@@ -373,10 +373,10 @@ SetUpFieldMove_Dig: @ 80C9A78
movs r0, 0
b _080C9A98
_080C9A8A:
- ldr r1, _080C9A9C @ =gUnknown_3005024
- ldr r0, _080C9AA0 @ =hm_add_c3_launch_phase_2
+ ldr r1, _080C9A9C @ =gFieldCallback2
+ ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
- ldr r1, _080C9AA4 @ =gUnknown_203B0C4
+ ldr r1, _080C9AA4 @ =gPostMenuFieldCallback
ldr r0, _080C9AA8 @ =hm2_dig
str r0, [r1]
movs r0, 0x1
@@ -384,9 +384,9 @@ _080C9A98:
pop {r1}
bx r1
.align 2, 0
-_080C9A9C: .4byte gUnknown_3005024
-_080C9AA0: .4byte hm_add_c3_launch_phase_2
-_080C9AA4: .4byte gUnknown_203B0C4
+_080C9A9C: .4byte gFieldCallback2
+_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu
+_080C9AA4: .4byte gPostMenuFieldCallback
_080C9AA8: .4byte hm2_dig
thumb_func_end SetUpFieldMove_Dig
diff --git a/asm/roulette_util.s b/asm/roulette_util.s
deleted file mode 100644
index 532bf4684..000000000
--- a/asm/roulette_util.s
+++ /dev/null
@@ -1,1447 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80D8BE4
-sub_80D8BE4: @ 80D8BE4
- push {lr}
- movs r1, 0
- strb r1, [r0]
- strh r1, [r0, 0x2]
- adds r0, 0x4
- movs r2, 0xC0
- bl memset
- pop {r0}
- bx r0
- thumb_func_end sub_80D8BE4
-
- thumb_func_start sub_80D8BF8
-sub_80D8BF8: @ 80D8BF8
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0xF
- bhi _080D8C14
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r3, r0
- ldrb r7, [r5, 0x4]
- lsrs r0, r7, 7
- cmp r0, 0
- beq _080D8C18
-_080D8C14:
- movs r0, 0xFF
- b _080D8C76
-_080D8C18:
- ldrh r0, [r2]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrh r0, [r2, 0x2]
- strh r0, [r5, 0xA]
- ldrb r0, [r2, 0x4]
- strb r0, [r5, 0xC]
- ldrb r0, [r2, 0x5]
- strb r0, [r5, 0xD]
- ldrb r0, [r2, 0x6]
- strb r0, [r5, 0xE]
- ldrb r3, [r2, 0x7]
- lsls r0, r3, 27
- lsrs r0, 27
- ldrb r2, [r5, 0xF]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- movs r0, 0x60
- ands r0, r3
- movs r2, 0x61
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- lsls r3, 24
- asrs r3, 31
- lsls r3, 7
- movs r0, 0x7F
- ands r1, r0
- orrs r1, r3
- strb r1, [r5, 0xF]
- subs r0, 0xFF
- ands r0, r7
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r5, 0x4]
- strb r4, [r5, 0x6]
- strb r4, [r5, 0x5]
- lsls r1, 24
- cmp r1, 0
- bge _080D8C70
- movs r0, 0xFF
- b _080D8C72
-_080D8C70:
- movs r0, 0x1
-_080D8C72:
- strb r0, [r5, 0x7]
- adds r0, r6, 0
-_080D8C76:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80D8BF8
-
- thumb_func_start sub_80D8C7C
-sub_80D8C7C: @ 80D8C7C
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r4, r1, 0
- cmp r4, 0xF
- bhi _080D8CA8
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r1, r2, r0
- ldrb r0, [r1, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _080D8CA8
- adds r0, r1, 0x4
- movs r1, 0
- movs r2, 0xC
- bl memset
- adds r0, r4, 0
- b _080D8CAA
-_080D8CA8:
- movs r0, 0xFF
-_080D8CAA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80D8C7C
-
- thumb_func_start sub_80D8CB0
-sub_80D8CB0: @ 80D8CB0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- movs r0, 0
- mov r12, r0
- ldrb r1, [r5, 0x8]
- cmp r12, r1
- bcc _080D8CC8
- b _080D8E60
-_080D8CC8:
- movs r7, 0x1F
- ldr r0, _080D8CF8 @ =0xfffffc1f
- mov r10, r0
- movs r1, 0x7D
- negs r1, r1
- mov r9, r1
- movs r0, 0x1F
- mov r8, r0
-_080D8CD8:
- ldrh r0, [r5, 0x6]
- add r0, r12
- lsls r0, 1
- ldr r1, _080D8CFC @ =gPlttBufferFaded
- adds r3, r0, r1
- ldr r1, _080D8D00 @ =gPlttBufferUnfaded
- adds r6, r0, r1
- ldrb r0, [r5]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _080D8D04
- cmp r0, 0x2
- beq _080D8D62
- b _080D8E4E
- .align 2, 0
-_080D8CF8: .4byte 0xfffffc1f
-_080D8CFC: .4byte gPlttBufferFaded
-_080D8D00: .4byte gPlttBufferUnfaded
-_080D8D04:
- ldr r0, [r3]
- lsls r2, r0, 27
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _080D8D26
- lsrs r0, r2, 27
- adds r0, r1
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_080D8D26:
- ldr r0, [r3]
- lsls r2, r0, 22
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _080D8D4A
- lsrs r0, r2, 27
- adds r0, r1
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_080D8D4A:
- ldr r0, [r3]
- lsls r2, r0, 17
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bls _080D8D5C
- b _080D8E4E
-_080D8D5C:
- lsrs r0, r2, 27
- adds r0, r1
- b _080D8E40
-_080D8D62:
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- cmp r0, 0
- bge _080D8DD4
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- blt _080D8D92
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_080D8D92:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- blt _080D8DBC
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_080D8DBC:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- blt _080D8E4E
- b _080D8E3C
-_080D8DD4:
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- bgt _080D8DFC
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_080D8DFC:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- bgt _080D8E26
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_080D8E26:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- bgt _080D8E4E
-_080D8E3C:
- lsrs r0, r4, 27
- adds r0, r2
-_080D8E40:
- ands r0, r7
- lsls r0, 2
- ldrb r2, [r3, 0x1]
- mov r1, r9
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
-_080D8E4E:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- ldrb r0, [r5, 0x8]
- cmp r12, r0
- bcs _080D8E60
- b _080D8CD8
-_080D8E60:
- ldrb r1, [r5, 0x2]
- adds r0, r1, 0x1
- strb r0, [r5, 0x2]
- ldrb r0, [r5, 0xB]
- lsls r0, 27
- lsls r1, 24
- asrs r0, 3
- cmp r1, r0
- beq _080D8E76
- movs r0, 0
- b _080D8EAA
-_080D8E76:
- movs r0, 0
- strb r0, [r5, 0x2]
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- negs r0, r0
- strb r0, [r5, 0x3]
- ldrb r2, [r5]
- movs r1, 0x7F
- movs r0, 0x7F
- ands r0, r2
- cmp r0, 0x1
- bne _080D8E96
- lsls r0, r2, 25
- lsrs r0, 25
- adds r0, 0x1
- b _080D8E9C
-_080D8E96:
- lsls r0, r2, 25
- lsrs r0, 25
- subs r0, 0x1
-_080D8E9C:
- ands r0, r1
- movs r1, 0x80
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- movs r0, 0x1
-_080D8EAA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80D8CB0
-
- thumb_func_start sub_80D8EB8
-sub_80D8EB8: @ 80D8EB8
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r2, 0
- ldrb r0, [r3]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _080D8ECE
- cmp r0, 0x2
- beq _080D8EFC
- b _080D8F36
-_080D8ECE:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _080D8EEE
- ldr r4, _080D8EF8 @ =gPlttBufferFaded
-_080D8ED6:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r3, 0x4]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _080D8ED6
-_080D8EEE:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- adds r1, 0x1
- b _080D8F28
- .align 2, 0
-_080D8EF8: .4byte gPlttBufferFaded
-_080D8EFC:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _080D8F20
- ldr r5, _080D8F40 @ =gPlttBufferFaded
- ldr r4, _080D8F44 @ =gPlttBufferUnfaded
-_080D8F06:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r1, r0, r5
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _080D8F06
-_080D8F20:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- subs r1, 0x1
-_080D8F28:
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D8F36:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080D8F40: .4byte gPlttBufferFaded
-_080D8F44: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80D8EB8
-
- thumb_func_start task_tutorial_controls_fadein
-task_tutorial_controls_fadein: @ 80D8F48
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _080D8FAC
-_080D8F54:
- ldrh r0, [r4, 0x2]
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8FA2
- lsls r1, r5, 1
- adds r0, r1, r5
- lsls r3, r0, 2
- adds r2, r4, r3
- ldrb r0, [r2, 0x5]
- subs r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r1, 0
- cmp r0, 0xFF
- bne _080D8FA2
- ldrh r0, [r2, 0x8]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080D8F90
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_80D8CB0
- b _080D8F98
-_080D8F90:
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_80D8EB8
-_080D8F98:
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r0, 0xD]
- strb r1, [r0, 0x5]
-_080D8FA2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080D8F54
-_080D8FAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end task_tutorial_controls_fadein
-
- thumb_func_start sub_80D8FB4
-sub_80D8FB4: @ 80D8FB4
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r4, 0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r5, 0x1
- movs r7, 0x80
- negs r7, r7
-_080D8FCA:
- adds r0, r6, 0
- asrs r0, r4
- ands r0, r5
- cmp r0, 0
- beq _080D8FF8
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r3, r0
- ldrb r0, [r2, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _080D8FF8
- adds r0, r5, 0
- lsls r0, r4
- ldrh r1, [r3, 0x2]
- orrs r0, r1
- strh r0, [r3, 0x2]
- ldrb r1, [r2, 0x4]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r5
- strb r0, [r2, 0x4]
-_080D8FF8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080D8FCA
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8FB4
-
- thumb_func_start sub_80D9008
-sub_80D9008: @ 80D9008
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- movs r5, 0
- movs r3, 0x1
-_080D9016:
- ldrh r0, [r6, 0x2]
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _080D907E
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r4, r6, r0
- ldrb r0, [r4, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _080D907E
- adds r0, r7, 0
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _080D907E
- ldrh r1, [r4, 0xA]
- lsls r1, 1
- ldr r0, _080D9074 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _080D9078 @ =gPlttBufferUnfaded
- adds r1, r2
- ldrb r2, [r4, 0xC]
- lsls r2, 1
- str r3, [sp]
- bl memcpy
- ldrb r0, [r4, 0x4]
- movs r2, 0x80
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4, 0x4]
- movs r0, 0
- strb r0, [r4, 0x6]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0xF]
- lsls r0, 24
- ldr r3, [sp]
- cmp r0, 0
- bge _080D907C
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- b _080D907E
- .align 2, 0
-_080D9074: .4byte gPlttBufferFaded
-_080D9078: .4byte gPlttBufferUnfaded
-_080D907C:
- strb r3, [r4, 0x7]
-_080D907E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080D9016
- ldr r0, _080D9094 @ =0x0000ffff
- cmp r7, r0
- bne _080D9098
- movs r0, 0
- strb r0, [r6]
- b _080D909C
- .align 2, 0
-_080D9094: .4byte 0x0000ffff
-_080D9098:
- ldrh r0, [r6, 0x2]
- bics r0, r7
-_080D909C:
- strh r0, [r6, 0x2]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9008
-
- thumb_func_start sub_80D90A8
-sub_80D90A8: @ 80D90A8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
- strh r4, [r5]
- adds r0, r5, 0x4
- movs r1, 0
- movs r2, 0xC0
- bl memset
-_080D90BA:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r5, r0
- strb r4, [r0, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080D90BA
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D90A8
-
- thumb_func_start sub_80D90D4
-sub_80D90D4: @ 80D90D4
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r5, r1, 0
- movs r3, 0
- movs r4, 0
- ldrb r0, [r2, 0x5]
- lsrs r0, 7
- cmp r0, 0
- bne _080D90EA
- adds r4, r2, 0x4
- b _080D9108
-_080D90EA:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bhi _080D9108
- lsls r0, r3, 1
- adds r0, r3
- lsls r1, r0, 2
- adds r0, r2, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 7
- cmp r0, 0
- bne _080D90EA
- adds r0, r1, 0x4
- adds r4, r2, r0
-_080D9108:
- cmp r4, 0
- beq _080D9136
- ldrb r1, [r4, 0x1]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r1, r4, 0x4
- adds r0, r5, 0
- ldm r0!, {r2,r4}
- stm r1!, {r2,r4}
- adds r0, r3, 0
- b _080D9138
-_080D9136:
- movs r0, 0xFF
-_080D9138:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80D90D4
-
- thumb_func_start sub_80D9140
-sub_80D9140: @ 80D9140
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080D9182
- ldrb r1, [r4, 0xB]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080D9182
- ldrh r2, [r4, 0x6]
- ldrb r0, [r4, 0x8]
- adds r0, r2, r0
- cmp r2, r0
- bge _080D9182
- ldr r5, _080D91B4 @ =gPlttBufferFaded
- ldr r3, _080D91B8 @ =gPlttBufferUnfaded
-_080D9168:
- lsls r0, r2, 1
- adds r1, r0, r5
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4, 0x6]
- ldrb r1, [r4, 0x8]
- adds r0, r1
- cmp r2, r0
- blt _080D9168
-_080D9182:
- adds r0, r4, 0x4
- movs r1, 0
- movs r2, 0x8
- bl memset
- ldrb r1, [r4, 0x1]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- subs r1, 0x10
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- movs r1, 0x7F
- ands r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0
- strb r0, [r4, 0x3]
- strb r0, [r4, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D91B4: .4byte gPlttBufferFaded
-_080D91B8: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80D9140
-
- thumb_func_start sub_80D91BC
-sub_80D91BC: @ 80D91BC
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- movs r5, 0
- cmp r2, 0
- bne _080D91E0
- movs r1, 0xF
- ands r1, r4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, 0x4
- adds r0, r6, r0
- bl sub_80D9140
- b _080D920C
-_080D91E0:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080D9200
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 2
- adds r0, r6, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 7
- cmp r0, 0
- beq _080D9200
- adds r0, r1, 0x4
- adds r0, r6, r0
- bl sub_80D9140
-_080D9200:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080D91E0
-_080D920C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D91BC
-
- thumb_func_start sub_80D9214
-sub_80D9214: @ 80D9214
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- movs r3, 0
- cmp r2, 0
- bne _080D9248
- movs r0, 0xF
- adds r3, r0, 0
- ands r3, r4
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r5, r1
- ldrb r2, [r1, 0x5]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- lsls r0, r3
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
- b _080D928C
-_080D9248:
- movs r6, 0x1
- movs r7, 0x41
- negs r7, r7
-_080D924E:
- adds r0, r4, 0
- ands r0, r6
- cmp r0, 0
- beq _080D926C
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r2, r5, r0
- ldrb r1, [r2, 0x5]
- lsrs r0, r1, 7
- cmp r0, 0
- beq _080D926C
- lsls r0, r1, 25
- cmp r0, 0
- blt _080D9272
-_080D926C:
- lsls r0, r4, 17
- lsrs r4, r0, 16
- b _080D9282
-_080D9272:
- adds r0, r7, 0
- ands r0, r1
- strb r0, [r2, 0x5]
- adds r0, r6, 0
- lsls r0, r3
- ldrh r1, [r5]
- orrs r0, r1
- strh r0, [r5]
-_080D9282:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _080D924E
-_080D928C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9214
-
- thumb_func_start sub_80D9294
-sub_80D9294: @ 80D9294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- movs r0, 0
- mov r12, r0
- cmp r2, 0
- bne _080D931C
- movs r1, 0xF
- ands r1, r7
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, 0x4
- mov r1, r8
- adds r3, r1, r0
- ldrb r1, [r3, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x80
- bne _080D93A6
- ldrb r1, [r3, 0xB]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080D92FA
- ldrh r2, [r3, 0x6]
- ldrb r0, [r3, 0x8]
- adds r0, r2, r0
- cmp r2, r0
- bge _080D92FA
- ldr r5, _080D9314 @ =gPlttBufferFaded
- ldr r4, _080D9318 @ =gPlttBufferUnfaded
-_080D92E0:
- lsls r0, r2, 1
- adds r1, r0, r5
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r3, 0x6]
- ldrb r1, [r3, 0x8]
- adds r0, r1
- cmp r2, r0
- blt _080D92E0
-_080D92FA:
- ldrb r0, [r3, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3, 0x1]
- movs r1, 0x1
- mov r2, r12
- lsls r1, r2
- mov r2, r8
- ldrh r0, [r2]
- bics r0, r1
- strh r0, [r2]
- b _080D93A6
- .align 2, 0
-_080D9314: .4byte gPlttBufferFaded
-_080D9318: .4byte gPlttBufferUnfaded
-_080D931C:
- movs r0, 0x1
- mov r9, r0
- movs r1, 0x40
- mov r10, r1
-_080D9324:
- mov r2, r12
- lsls r0, r2, 1
- add r0, r12
- lsls r0, 2
- adds r0, 0x4
- mov r1, r8
- adds r3, r1, r0
- adds r0, r7, 0
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _080D9346
- ldrb r1, [r3, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x80
- beq _080D9350
-_080D9346:
- lsls r0, r7, 17
- lsrs r7, r0, 16
- mov r5, r12
- adds r5, 0x1
- b _080D939C
-_080D9350:
- ldrb r1, [r3, 0xB]
- mov r0, r10
- ands r0, r1
- mov r5, r12
- adds r5, 0x1
- cmp r0, 0
- beq _080D9386
- ldrh r2, [r3, 0x6]
- ldrb r0, [r3, 0x8]
- adds r0, r2, r0
- cmp r2, r0
- bge _080D9386
- ldr r6, _080D93B4 @ =gPlttBufferFaded
- ldr r4, _080D93B8 @ =gPlttBufferUnfaded
-_080D936C:
- lsls r0, r2, 1
- adds r1, r0, r6
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r3, 0x6]
- ldrb r1, [r3, 0x8]
- adds r0, r1
- cmp r2, r0
- blt _080D936C
-_080D9386:
- ldrb r1, [r3, 0x1]
- mov r0, r10
- orrs r0, r1
- strb r0, [r3, 0x1]
- mov r1, r9
- mov r0, r12
- lsls r1, r0
- mov r2, r8
- ldrh r0, [r2]
- bics r0, r1
- strh r0, [r2]
-_080D939C:
- lsls r0, r5, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0xF
- bls _080D9324
-_080D93A6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D93B4: .4byte gPlttBufferFaded
-_080D93B8: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80D9294
-
- thumb_func_start sub_80D93BC
-sub_80D93BC: @ 80D93BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- movs r0, 0
- mov r10, r0
- ldr r1, [sp]
- ldrh r0, [r1]
- cmp r0, 0
- bne _080D93D8
- b _080D9562
-_080D93D8:
- movs r2, 0xF
- mov r9, r2
- movs r3, 0x10
- negs r3, r3
- mov r8, r3
- movs r7, 0x1
-_080D93E4:
- mov r5, r10
- lsls r0, r5, 1
- add r0, r10
- lsls r0, 2
- adds r0, 0x4
- ldr r1, [sp]
- adds r4, r1, r0
- ldrb r2, [r4, 0x1]
- movs r3, 0xC0
- ands r3, r2
- cmp r3, 0x80
- beq _080D93FE
- b _080D9552
-_080D93FE:
- ldr r0, _080D944C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080D9414
- ldrb r0, [r4, 0xB]
- ands r3, r0
- cmp r3, 0
- beq _080D9414
- b _080D9552
-_080D9414:
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- strb r0, [r4, 0x2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080D9424
- b _080D9552
-_080D9424:
- ldrb r0, [r4, 0x9]
- strb r0, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- ldrb r1, [r4, 0x8]
- lsls r2, 28
- lsrs r2, 28
- ldrh r3, [r4, 0x4]
- bl BlendPalette
- ldrb r5, [r4, 0xB]
- lsls r0, r5, 26
- asrs r0, 30
- cmp r0, 0x1
- beq _080D9482
- cmp r0, 0x1
- bgt _080D9450
- cmp r0, 0
- beq _080D9456
- b _080D953C
- .align 2, 0
-_080D944C: .4byte gPaletteFade
-_080D9450:
- cmp r0, 0x2
- beq _080D94FE
- b _080D953C
-_080D9456:
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 28
- lsrs r0, r1, 28
- adds r0, 0x1
- mov r3, r9
- ands r0, r3
- mov r6, r8
- adds r3, r6, 0
- ands r3, r2
- orrs r3, r0
- strb r3, [r4, 0x1]
- lsrs r1, 28
- lsls r0, r5, 28
- asrs r0, 28
- cmp r1, r0
- bne _080D953C
- ldrb r0, [r4, 0x3]
- adds r0, 0x1
- strb r0, [r4, 0x3]
- ands r3, r6
- strb r3, [r4, 0x1]
- b _080D953C
-_080D9482:
- ldrb r3, [r4, 0x1]
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _080D94C0
- lsls r0, r3, 28
- lsrs r0, 28
- subs r0, 0x1
- mov r5, r9
- ands r0, r5
- mov r2, r8
- ands r2, r3
- orrs r2, r0
- strb r2, [r4, 0x1]
- cmp r0, 0
- bne _080D953C
- ldrb r0, [r4, 0x3]
- adds r0, 0x1
- strb r0, [r4, 0x3]
- lsls r0, r2, 27
- lsrs r0, 31
- eors r0, r7
- ands r0, r7
- lsls r0, 4
- movs r3, 0x11
- negs r3, r3
- adds r1, r3, 0
- ands r2, r1
- orrs r2, r0
- strb r2, [r4, 0x1]
- b _080D953C
-_080D94C0:
- lsls r0, r5, 28
- asrs r0, 28
- subs r0, 0x1
- mov r5, r9
- ands r0, r5
- lsls r2, r3, 28
- lsrs r1, r2, 28
- adds r1, 0x1
- ands r1, r5
- mov r5, r8
- ands r3, r5
- orrs r3, r1
- strb r3, [r4, 0x1]
- lsrs r2, 28
- cmp r2, r0
- bne _080D953C
- ldrb r0, [r4, 0x3]
- adds r0, 0x1
- strb r0, [r4, 0x3]
- lsls r0, r3, 27
- lsrs r0, 31
- eors r0, r7
- ands r0, r7
- lsls r0, 4
- movs r2, 0x11
- negs r2, r2
- adds r1, r2, 0
- ands r3, r1
- orrs r3, r0
- strb r3, [r4, 0x1]
- b _080D953C
-_080D94FE:
- ldrb r2, [r4, 0x1]
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080D950E
- mov r0, r8
- ands r0, r2
- b _080D951C
-_080D950E:
- lsls r1, r5, 28
- asrs r1, 28
- mov r3, r9
- ands r1, r3
- mov r0, r8
- ands r0, r2
- orrs r0, r1
-_080D951C:
- strb r0, [r4, 0x1]
- ldrb r2, [r4, 0x1]
- lsls r0, r2, 27
- lsrs r0, 31
- eors r0, r7
- ands r0, r7
- lsls r0, 4
- movs r5, 0x11
- negs r5, r5
- adds r1, r5, 0
- ands r2, r1
- orrs r2, r0
- strb r2, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- adds r0, 0x1
- strb r0, [r4, 0x3]
-_080D953C:
- ldrb r1, [r4, 0xA]
- cmp r1, 0xFF
- beq _080D9552
- ldrb r0, [r4, 0x3]
- cmp r0, r1
- bne _080D9552
- ldrb r1, [r4]
- ldr r0, [sp]
- movs r2, 0
- bl sub_80D9294
-_080D9552:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0xF
- bhi _080D9562
- b _080D93E4
-_080D9562:
- 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_80D93BC
-
- thumb_func_start sub_80D9574
-sub_80D9574: @ 80D9574
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r6, r3
- cmp r1, r4
- bcs _080D95BE
-_080D959C:
- lsls r0, r1, 6
- adds r2, r6, r0
- movs r0, 0
- adds r3, r1, 0x1
- cmp r0, r5
- bcs _080D95B6
-_080D95A8:
- strh r7, [r2]
- adds r2, 0x2
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bcc _080D95A8
-_080D95B6:
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, r4
- bcc _080D959C
-_080D95BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9574
-
- thumb_func_start sub_80D95C4
-sub_80D95C4: @ 80D95C4
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r6, r4, 24
- movs r4, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r7, r3
- cmp r4, r6
- bcs _080D960E
-_080D95E8:
- lsls r0, r4, 6
- adds r2, r7, r0
- movs r3, 0
- adds r4, 0x1
- cmp r3, r5
- bcs _080D9606
-_080D95F4:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _080D95F4
-_080D9606:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _080D95E8
-_080D960E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D95C4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/safari_zone.s b/asm/safari_zone.s
index b29c36739..4bc9d6eb7 100644
--- a/asm/safari_zone.s
+++ b/asm/safari_zone.s
@@ -122,30 +122,30 @@ sub_80A0F4C: @ 80A0F4C
ldrb r0, [r0]
cmp r0, 0
beq _080A0F68
- ldr r0, _080A0F64 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _080A0F64 @ =CB2_ReturnToField
bl SetMainCallback2
b _080A0FB0
.align 2, 0
_080A0F60: .4byte gUnknown_2039994
-_080A0F64: .4byte c2_exit_to_overworld_2_switch
+_080A0F64: .4byte CB2_ReturnToField
_080A0F68:
- ldr r0, _080A0F88 @ =gUnknown_2023E8A
+ ldr r0, _080A0F88 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x8
bne _080A0F9C
ldr r0, _080A0F8C @ =gUnknown_81BFB87
bl ScriptContext2_RunNewScript
bl warp_in
- ldr r1, _080A0F90 @ =gUnknown_3005020
+ ldr r1, _080A0F90 @ =gFieldCallback
ldr r0, _080A0F94 @ =sub_807E3EC
str r0, [r1]
ldr r0, _080A0F98 @ =sub_805671C
bl SetMainCallback2
b _080A0FB0
.align 2, 0
-_080A0F88: .4byte gUnknown_2023E8A
+_080A0F88: .4byte gBattleOutcome
_080A0F8C: .4byte gUnknown_81BFB87
-_080A0F90: .4byte gUnknown_3005020
+_080A0F90: .4byte gFieldCallback
_080A0F94: .4byte sub_807E3EC
_080A0F98: .4byte sub_805671C
_080A0F9C:
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s
index cbb07e4c7..09503af6a 100644
--- a/asm/save_failed_screen.s
+++ b/asm/save_failed_screen.s
@@ -73,7 +73,7 @@ _080F516C:
ldr r1, _080F5188 @ =0x0000ffff
movs r2, 0x80
bl m4aMPlayVolumeControl
- bl sub_813BB38
+ bl SaveCallbacks
ldr r1, _080F518C @ =gUnknown_203AB50
movs r0, 0x1
strb r0, [r1]
@@ -83,9 +83,9 @@ _080F5184: .4byte gMPlayInfo_BGM
_080F5188: .4byte 0x0000ffff
_080F518C: .4byte gUnknown_203AB50
_080F5190:
- bl sub_813BBAC
- bl sub_813BB74
- bl sub_813BBC8
+ bl SaveMapTiles
+ bl SaveMapGPURegs
+ bl SaveMapTextColors
bl sub_80F52EC
movs r0, 0
movs r1, 0
@@ -197,7 +197,7 @@ _080F5298:
movs r0, 0
movs r1, 0
bl SetGpuReg
- bl sub_813BC2C
+ bl RestoreMapTiles
bl sub_80F52EC
ldr r1, _080F52B0 @ =gUnknown_203AB50
movs r0, 0x8
@@ -211,9 +211,9 @@ _080F52B4:
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
- bl sub_813BC48
- bl sub_813BBF4
- bl sub_813BBDC
+ bl RestoreMapTextColors
+ bl RestoreGPURegs
+ bl RestoreCallbacks
ldr r0, _080F52E4 @ =gUnknown_3005430
movs r1, 0
str r1, [r0]
@@ -259,7 +259,7 @@ _080F5314: .4byte 0x05000200
thumb_func_start sub_80F5318
sub_80F5318: @ 80F5318
push {lr}
- ldr r0, _080F532C @ =gUnknown_201F800
+ ldr r0, _080F532C @ =gDecompressionBuffer + 0x3800
ldr r1, _080F5330 @ =0x0600f800
movs r2, 0xA0
lsls r2, 3
@@ -268,14 +268,14 @@ sub_80F5318: @ 80F5318
pop {r0}
bx r0
.align 2, 0
-_080F532C: .4byte gUnknown_201F800
+_080F532C: .4byte gDecompressionBuffer + 0x3800
_080F5330: .4byte 0x0600f800
thumb_func_end sub_80F5318
thumb_func_start sub_80F5334
sub_80F5334: @ 80F5334
push {lr}
- ldr r0, _080F5348 @ =gUnknown_201C020
+ ldr r0, _080F5348 @ =gDecompressionBuffer + 0x020
ldr r1, _080F534C @ =0x0600c020
movs r2, 0x8C
lsls r2, 6
@@ -284,7 +284,7 @@ sub_80F5334: @ 80F5334
pop {r0}
bx r0
.align 2, 0
-_080F5348: .4byte gUnknown_201C020
+_080F5348: .4byte gDecompressionBuffer + 0x020
_080F534C: .4byte 0x0600c020
thumb_func_end sub_80F5334
@@ -315,7 +315,7 @@ sub_80F5350: @ 80F5350
cmp r0, r2
bge _080F53B6
mov r12, r2
- ldr r1, _080F53C8 @ =gUnknown_201F800
+ ldr r1, _080F53C8 @ =gDecompressionBuffer + 0x3800
mov r10, r1
_080F5386:
mov r4, r9
@@ -354,7 +354,7 @@ _080F53B6:
pop {r0}
bx r0
.align 2, 0
-_080F53C8: .4byte gUnknown_201F800
+_080F53C8: .4byte gDecompressionBuffer + 0x3800
thumb_func_end sub_80F5350
thumb_func_start sub_80F53CC
@@ -404,7 +404,7 @@ sub_80F5404: @ 80F5404
ldr r2, _080F544C @ =0x00001111
adds r0, r2, 0
strh r0, [r1]
- ldr r4, _080F5450 @ =gUnknown_201C020
+ ldr r4, _080F5450 @ =gDecompressionBuffer + 0x020
ldr r2, _080F5454 @ =0x01001180
adds r0, r1, 0
adds r1, r4, 0
@@ -419,7 +419,7 @@ sub_80F5404: @ 80F5404
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0x2
- bl sub_813C078
+ bl HelpSystemRenderText
bl sub_80F5334
add sp, 0x10
pop {r4,r5}
@@ -427,7 +427,7 @@ sub_80F5404: @ 80F5404
bx r0
.align 2, 0
_080F544C: .4byte 0x00001111
-_080F5450: .4byte gUnknown_201C020
+_080F5450: .4byte gDecompressionBuffer + 0x020
_080F5454: .4byte 0x01001180
thumb_func_end sub_80F5404
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
deleted file mode 100644
index e8ffcf3ab..000000000
--- a/asm/scrcmd.s
+++ /dev/null
@@ -1,5612 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8069ED0
-sub_8069ED0: @ 8069ED0
- movs r0, 0
- bx lr
- thumb_func_end sub_8069ED0
-
- thumb_func_start sub_8069ED4
-sub_8069ED4: @ 8069ED4
- movs r0, 0
- bx lr
- thumb_func_end sub_8069ED4
-
- thumb_func_start ScrCmd_end
-ScrCmd_end: @ 8069ED8
- push {lr}
- bl StopScript
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_end
-
- thumb_func_start ScrCmd_gotonative
-ScrCmd_gotonative: @ 8069EE4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_gotonative
-
- thumb_func_start sub_8069EFC
-sub_8069EFC: @ 8069EFC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 14
- ldr r1, _08069F18 @ =gSpecials
- adds r1, r0, r1
- ldr r0, _08069F1C @ =gStdScripts
- cmp r1, r0
- bcs _08069F20
- ldr r0, [r1]
- bl _call_via_r0
- b _08069F2C
- .align 2, 0
-_08069F18: .4byte gSpecials
-_08069F1C: .4byte gStdScripts
-_08069F20:
- ldr r0, _08069F34 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c"
- ldr r2, _08069F38 @ =gUnknown_83A7290 "0"
- movs r1, 0xF1
- movs r3, 0x1
- bl AGBAssert
-_08069F2C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08069F34: .4byte gUnknown_83A725C
-_08069F38: .4byte gUnknown_83A7290
- thumb_func_end sub_8069EFC
-
- thumb_func_start sub_8069F3C
-sub_8069F3C: @ 8069F3C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 14
- ldr r1, _08069F6C @ =gSpecials
- adds r1, r0, r1
- ldr r0, _08069F70 @ =gStdScripts
- cmp r1, r0
- bcs _08069F74
- ldr r0, [r1]
- bl _call_via_r0
- strh r0, [r5]
- b _08069F80
- .align 2, 0
-_08069F6C: .4byte gSpecials
-_08069F70: .4byte gStdScripts
-_08069F74:
- ldr r0, _08069F88 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c"
- ldr r1, _08069F8C @ =0x00000107
- ldr r2, _08069F90 @ =gUnknown_83A7290 "0"
- movs r3, 0x1
- bl AGBAssert
-_08069F80:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08069F88: .4byte gUnknown_83A725C
-_08069F8C: .4byte 0x00000107
-_08069F90: .4byte gUnknown_83A7290
- thumb_func_end sub_8069F3C
-
- thumb_func_start ScrCmd_callnative
-ScrCmd_callnative: @ 8069F94
- push {lr}
- bl ScriptReadWord
- bl _call_via_r0
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_callnative
-
- thumb_func_start sub_8069FA4
-sub_8069FA4: @ 8069FA4
- push {lr}
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8069FA4
-
- thumb_func_start ScrCmd_goto
-ScrCmd_goto: @ 8069FB0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- adds r0, r4, 0
- bl ScriptJump
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_goto
-
- thumb_func_start ScrCmd_return
-ScrCmd_return: @ 8069FC8
- push {lr}
- bl ScriptReturn
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_return
-
- thumb_func_start ScrCmd_call
-ScrCmd_call: @ 8069FD4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- adds r0, r4, 0
- bl ScriptCall
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_call
-
- thumb_func_start ScrCmd_goto_if
-ScrCmd_goto_if: @ 8069FEC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r1, _0806A024 @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A01A
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptJump
-_0806A01A:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A024: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_goto_if
-
- thumb_func_start ScrCmd_call_if
-ScrCmd_call_if: @ 806A028
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r1, _0806A060 @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A056
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptCall
-_0806A056:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A060: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_call_if
-
- thumb_func_start ScrCmd_setvaddress
-ScrCmd_setvaddress: @ 806A064
- push {r4,lr}
- ldr r4, [r0, 0x8]
- subs r4, 0x1
- bl ScriptReadWord
- ldr r1, _0806A07C @ =gUnknown_20370A8
- subs r0, r4
- str r0, [r1]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A07C: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_setvaddress
-
- thumb_func_start ScrCmd_vgoto
-ScrCmd_vgoto: @ 806A080
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806A0A0 @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl ScriptJump
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A0A0: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_vgoto
-
- thumb_func_start ScrCmd_vcall
-ScrCmd_vcall: @ 806A0A4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806A0C4 @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl ScriptCall
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A0C4: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_vcall
-
- thumb_func_start ScrCmd_vgoto_if
-ScrCmd_vgoto_if: @ 806A0C8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- ldr r1, _0806A104 @ =gUnknown_20370A8
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, _0806A108 @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A0FA
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptJump
-_0806A0FA:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A104: .4byte gUnknown_20370A8
-_0806A108: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_vgoto_if
-
- thumb_func_start ScrCmd_vcall_if
-ScrCmd_vcall_if: @ 806A10C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- ldr r1, _0806A148 @ =gUnknown_20370A8
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, _0806A14C @ =gUnknown_83A7248
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A13E
- adds r0, r5, 0
- adds r1, r2, 0
- bl ScriptCall
-_0806A13E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A148: .4byte gUnknown_20370A8
-_0806A14C: .4byte gUnknown_83A7248
- thumb_func_end ScrCmd_vcall_if
-
- thumb_func_start ScrCmd_gotostd
-ScrCmd_gotostd: @ 806A150
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r2, 0x8]
- lsls r1, 2
- ldr r0, _0806A178 @ =gStdScripts
- adds r1, r0
- ldr r0, _0806A17C @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A170
- ldr r1, [r1]
- adds r0, r2, 0
- bl ScriptJump
-_0806A170:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806A178: .4byte gStdScripts
-_0806A17C: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_gotostd
-
- thumb_func_start ScrCmd_callstd
-ScrCmd_callstd: @ 806A180
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r2, 0x8]
- lsls r1, 2
- ldr r0, _0806A1A8 @ =gStdScripts
- adds r1, r0
- ldr r0, _0806A1AC @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A1A0
- ldr r1, [r1]
- adds r0, r2, 0
- bl ScriptCall
-_0806A1A0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806A1A8: .4byte gStdScripts
-_0806A1AC: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_callstd
-
- thumb_func_start ScrCmd_gotostd_if
-ScrCmd_gotostd_if: @ 806A1B0
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _0806A1F0 @ =gUnknown_83A7248
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A1E8
- lsls r0, r4, 2
- ldr r1, _0806A1F4 @ =gStdScripts
- adds r1, r0, r1
- ldr r0, _0806A1F8 @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A1E8
- ldr r1, [r1]
- adds r0, r3, 0
- bl ScriptJump
-_0806A1E8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A1F0: .4byte gUnknown_83A7248
-_0806A1F4: .4byte gStdScripts
-_0806A1F8: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_gotostd_if
-
- thumb_func_start ScrCmd_callstd_if
-ScrCmd_callstd_if: @ 806A1FC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _0806A23C @ =gUnknown_83A7248
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806A234
- lsls r0, r4, 2
- ldr r1, _0806A240 @ =gStdScripts
- adds r1, r0, r1
- ldr r0, _0806A244 @ =gUnknown_8160478
- cmp r1, r0
- bcs _0806A234
- ldr r1, [r1]
- adds r0, r3, 0
- bl ScriptCall
-_0806A234:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A23C: .4byte gUnknown_83A7248
-_0806A240: .4byte gStdScripts
-_0806A244: .4byte gUnknown_8160478
- thumb_func_end ScrCmd_callstd_if
-
- thumb_func_start ScrCmd_gotoram
-ScrCmd_gotoram: @ 806A248
- push {lr}
- ldr r1, _0806A258 @ =gUnknown_20370A4
- ldr r1, [r1]
- bl ScriptJump
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806A258: .4byte gUnknown_20370A4
- thumb_func_end ScrCmd_gotoram
-
- thumb_func_start ScrCmd_killscript
-ScrCmd_killscript: @ 806A25C
- push {r4,lr}
- adds r4, r0, 0
- bl ClearRamScript
- adds r0, r4, 0
- bl StopScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_killscript
-
- thumb_func_start ScrCmd_setmysteryeventstatus
-ScrCmd_setmysteryeventstatus: @ 806A274
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl SetMysteryEventScriptStatus
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmysteryeventstatus
-
- thumb_func_start sub_806A28C
-sub_806A28C: @ 806A28C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8069E48
- adds r2, r0, 0
- cmp r2, 0
- beq _0806A2A8
- ldr r1, _0806A2B0 @ =gUnknown_20370A4
- ldr r0, [r4, 0x8]
- str r0, [r1]
- adds r0, r4, 0
- adds r1, r2, 0
- bl ScriptJump
-_0806A2A8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A2B0: .4byte gUnknown_20370A4
- thumb_func_end sub_806A28C
-
- thumb_func_start ScrCmd_loadword
-ScrCmd_loadword: @ 806A2B4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_loadword
-
- thumb_func_start ScrCmd_loadbytefromaddr
-ScrCmd_loadbytefromaddr: @ 806A2D8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- ldrb r0, [r0]
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_loadbytefromaddr
-
- thumb_func_start ScrCmd_writebytetoaddr
-ScrCmd_writebytetoaddr: @ 806A2FC
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadWord
- strb r4, [r0]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_writebytetoaddr
-
- thumb_func_start ScrCmd_loadbyte
-ScrCmd_loadbyte: @ 806A314
- ldr r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- lsls r3, 2
- adds r2, r0, 0
- adds r2, 0x64
- adds r2, r3
- ldrb r3, [r1]
- str r3, [r2]
- adds r1, 0x1
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end ScrCmd_loadbyte
-
- thumb_func_start ScrCmd_setptrbyte
-ScrCmd_setptrbyte: @ 806A330
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- ldr r1, [r4]
- strb r1, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setptrbyte
-
- thumb_func_start ScrCmd_copylocal
-ScrCmd_copylocal: @ 806A354
- ldr r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- lsls r3, 2
- adds r0, 0x64
- adds r3, r0, r3
- lsls r2, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0
- bx lr
- thumb_func_end ScrCmd_copylocal
-
- thumb_func_start ScrCmd_copybyte
-ScrCmd_copybyte: @ 806A374
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_copybyte
-
- thumb_func_start ScrCmd_setvar
-ScrCmd_setvar: @ 806A390
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- adds r0, r5, 0
- bl ScriptReadHalfword
- strh r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setvar
-
- thumb_func_start ScrCmd_copyvar
-ScrCmd_copyvar: @ 806A3B4
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r0, [r0]
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_copyvar
-
- thumb_func_start ScrCmd_setorcopyvar
-ScrCmd_setorcopyvar: @ 806A3E0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setorcopyvar
-
- thumb_func_start compare_012
-compare_012: @ 806A40C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r0, r1
- bcs _0806A41E
- movs r0, 0
- b _0806A428
-_0806A41E:
- cmp r0, r1
- beq _0806A426
- movs r0, 0x2
- b _0806A428
-_0806A426:
- movs r0, 0x1
-_0806A428:
- pop {r1}
- bx r1
- thumb_func_end compare_012
-
- thumb_func_start ScrCmd_compare_local_to_local
-ScrCmd_compare_local_to_local: @ 806A42C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- lsls r0, 2
- adds r3, r4, 0
- adds r3, 0x64
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r3, r1
- ldrb r1, [r3]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_local
-
- thumb_func_start ScrCmd_compare_local_to_value
-ScrCmd_compare_local_to_value: @ 806A45C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_value
-
- thumb_func_start ScrCmd_compare_local_to_addr
-ScrCmd_compare_local_to_addr: @ 806A484
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r5, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_local_to_addr
-
- thumb_func_start ScrCmd_compare_addr_to_local
-ScrCmd_compare_addr_to_local: @ 806A4B0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- lsls r2, 2
- adds r1, r4, 0
- adds r1, 0x64
- adds r1, r2
- ldrb r1, [r1]
- adds r3, 0x1
- str r3, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_local
-
- thumb_func_start ScrCmd_compare_addr_to_value
-ScrCmd_compare_addr_to_value: @ 806A4DC
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r0, [r0]
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_value
-
- thumb_func_start ScrCmd_compare_addr_to_addr
-ScrCmd_compare_addr_to_addr: @ 806A4FC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldrb r5, [r0]
- adds r0, r4, 0
- bl ScriptReadWord
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_addr_to_addr
-
- thumb_func_start ScrCmd_compare_var_to_value
-ScrCmd_compare_var_to_value: @ 806A520
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r5, [r0]
- adds r0, r4, 0
- bl ScriptReadHalfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_var_to_value
-
- thumb_func_start ScrCmd_compare_var_to_var
-ScrCmd_compare_var_to_var: @ 806A550
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r2, [r5]
- ldrh r1, [r0]
- adds r0, r2, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_compare_var_to_var
-
- thumb_func_start ScrCmd_addvar
-ScrCmd_addvar: @ 806A584
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- adds r0, r5, 0
- bl ScriptReadHalfword
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_addvar
-
- thumb_func_start ScrCmd_subvar
-ScrCmd_subvar: @ 806A5AC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldrh r1, [r5]
- subs r1, r0
- strh r1, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_subvar
-
- thumb_func_start ScrCmd_random
-ScrCmd_random: @ 806A5DC
- push {r4,r5,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r5, _0806A60C @ =gSpecialVar_Result
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A60C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_random
-
- thumb_func_start sub_806A610
-sub_806A610: @ 806A610
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A658 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A084
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r4, 0
- bl sub_809A824
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A658: .4byte gSpecialVar_Result
- thumb_func_end sub_806A610
-
- thumb_func_start ScrCmd_takeitem
-ScrCmd_takeitem: @ 806A65C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A69C @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A1D8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A69C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_takeitem
-
- thumb_func_start sub_806A6A0
-sub_806A6A0: @ 806A6A0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A6E0 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809A000
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A6E0: .4byte gSpecialVar_Result
- thumb_func_end sub_806A6A0
-
- thumb_func_start sub_806A6E4
-sub_806A6E4: @ 806A6E4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806A724 @ =gSpecialVar_Result
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8099F40
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A724: .4byte gSpecialVar_Result
- thumb_func_end sub_806A6E4
-
- thumb_func_start ScrCmd_checkitemtype
-ScrCmd_checkitemtype: @ 806A728
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0806A750 @ =gSpecialVar_Result
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A750: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_checkitemtype
-
- thumb_func_start ScrCmd_givepcitem
-ScrCmd_givepcitem: @ 806A754
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _0806A794 @ =gSpecialVar_Result
- adds r0, r4, 0
- bl sub_809A3C8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A794: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_givepcitem
-
- thumb_func_start ScrCmd_checkpcitem
-ScrCmd_checkpcitem: @ 806A798
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _0806A7D8 @ =gSpecialVar_Result
- adds r0, r4, 0
- bl sub_809A374
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A7D8: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_checkpcitem
-
- thumb_func_start sub_806A7DC
-sub_806A7DC: @ 806A7DC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A7DC
-
- thumb_func_start sub_806A7F0
-sub_806A7F0: @ 806A7F0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A7F0
-
- thumb_func_start sub_806A804
-sub_806A804: @ 806A804
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A804
-
- thumb_func_start sub_806A818
-sub_806A818: @ 806A818
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806A818
-
- thumb_func_start ScrCmd_setflag
-ScrCmd_setflag: @ 806A82C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setflag
-
- thumb_func_start ScrCmd_clearflag
-ScrCmd_clearflag: @ 806A840
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagClear
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_clearflag
-
- thumb_func_start ScrCmd_checkflag
-ScrCmd_checkflag: @ 806A854
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checkflag
-
- thumb_func_start ScrCmd_incrementgamestat
-ScrCmd_incrementgamestat: @ 806A870
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl IncrementGameStat
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_incrementgamestat
-
- thumb_func_start sub_806A888
-sub_806A888: @ 806A888
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadWord
- adds r6, r0, 0
- adds r0, r4, 0
- bl GetGameStat
- cmp r0, r6
- bcs _0806A8AA
- movs r0, 0
- b _0806A8B4
-_0806A8AA:
- cmp r0, r6
- bne _0806A8B2
- movs r0, 0x1
- b _0806A8B4
-_0806A8B2:
- movs r0, 0x2
-_0806A8B4:
- strb r0, [r5, 0x2]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806A888
-
- thumb_func_start sub_806A8C0
-sub_806A8C0: @ 806A8C0
- push {r4,lr}
- bl ScriptReadHalfword
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8115748
- adds r0, r4, 0
- bl sub_80F85BC
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806A8C0
-
- thumb_func_start ScrCmd_animateflash
-ScrCmd_animateflash: @ 806A8E0
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl sub_807F028
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_animateflash
-
- thumb_func_start ScrCmd_setflashradius
-ScrCmd_setflashradius: @ 806A8FC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl Overworld_SetFlashLevel
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setflashradius
-
- thumb_func_start sub_806A918
-sub_806A918: @ 806A918
- push {lr}
- ldr r0, _0806A92C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806A930
- movs r0, 0
- b _0806A932
- .align 2, 0
-_0806A92C: .4byte gPaletteFade
-_0806A930:
- movs r0, 0x1
-_0806A932:
- pop {r1}
- bx r1
- thumb_func_end sub_806A918
-
- thumb_func_start ScrCmd_fadescreen
-ScrCmd_fadescreen: @ 806A938
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x8]
- ldrb r0, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- movs r1, 0
- bl fade_screen
- ldr r1, _0806A95C @ =sub_806A918
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A95C: .4byte sub_806A918
- thumb_func_end ScrCmd_fadescreen
-
- thumb_func_start ScrCmd_fadescreenspeed
-ScrCmd_fadescreenspeed: @ 806A960
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- lsls r1, 24
- asrs r1, 24
- bl fade_screen
- ldr r1, _0806A98C @ =sub_806A918
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A98C: .4byte sub_806A918
- thumb_func_end ScrCmd_fadescreenspeed
-
- thumb_func_start RunPauseTimer
-RunPauseTimer: @ 806A990
- push {lr}
- ldr r1, _0806A9A4 @ =gUnknown_20370AE
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0806A9A8
- movs r0, 0
- b _0806A9AA
- .align 2, 0
-_0806A9A4: .4byte gUnknown_20370AE
-_0806A9A8:
- movs r0, 0x1
-_0806A9AA:
- pop {r1}
- bx r1
- thumb_func_end RunPauseTimer
-
- thumb_func_start ScrCmd_delay
-ScrCmd_delay: @ 806A9B0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- ldr r1, _0806A9CC @ =gUnknown_20370AE
- strh r0, [r1]
- ldr r1, _0806A9D0 @ =RunPauseTimer
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806A9CC: .4byte gUnknown_20370AE
-_0806A9D0: .4byte RunPauseTimer
- thumb_func_end ScrCmd_delay
-
- thumb_func_start sub_806A9D4
-sub_806A9D4: @ 806A9D4
- movs r0, 0
- bx lr
- thumb_func_end sub_806A9D4
-
- thumb_func_start sub_806A9D8
-sub_806A9D8: @ 806A9D8
- movs r0, 0
- bx lr
- thumb_func_end sub_806A9D8
-
- thumb_func_start sub_806A9DC
-sub_806A9DC: @ 806A9DC
- ldr r0, _0806A9F0 @ =gSpecialVar_0x8000
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0806A9F4 @ =gSpecialVar_0x8001
- strh r1, [r0]
- ldr r0, _0806A9F8 @ =gSpecialVar_0x8002
- strh r1, [r0]
- movs r0, 0
- bx lr
- .align 2, 0
-_0806A9F0: .4byte gSpecialVar_0x8000
-_0806A9F4: .4byte gSpecialVar_0x8001
-_0806A9F8: .4byte gSpecialVar_0x8002
- thumb_func_end sub_806A9DC
-
- thumb_func_start ScrCmd_setweather
-ScrCmd_setweather: @ 806A9FC
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl SetSav1Weather
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setweather
-
- thumb_func_start ScrCmd_resetweather
-ScrCmd_resetweather: @ 806AA18
- push {lr}
- bl sub_807B140
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_resetweather
-
- thumb_func_start ScrCmd_doweather
-ScrCmd_doweather: @ 806AA24
- push {lr}
- bl DoCurrentWeather
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_doweather
-
- thumb_func_start ScrCmd_setstepcallback
-ScrCmd_setstepcallback: @ 806AA30
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl ActivatePerStepCallback
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setstepcallback
-
- thumb_func_start ScrCmd_setmaplayoutindex
-ScrCmd_setmaplayoutindex: @ 806AA48
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_8055D40
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmaplayoutindex
-
- thumb_func_start ScrCmd_warp
-ScrCmd_warp: @ 806AA64
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sub_807E438
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warp
-
- thumb_func_start ScrCmd_warpsilent
-ScrCmd_warpsilent: @ 806AAEC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sp13E_warp_to_last_warp
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warpsilent
-
- thumb_func_start ScrCmd_warpdoor
-ScrCmd_warpdoor: @ 806AB74
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sub_807E4DC
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warpdoor
-
- thumb_func_start ScrCmd_warphole
-ScrCmd_warphole: @ 806ABFC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, [r0, 0x8]
- ldrb r6, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- mov r4, sp
- adds r4, 0x6
- add r0, sp, 0x4
- adds r1, r4, 0
- bl PlayerGetDestCoords
- cmp r6, 0xFF
- bne _0806AC3A
- cmp r5, 0xFF
- bne _0806AC3A
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8055688
- b _0806AC5E
-_0806AC3A:
- lsls r0, r6, 24
- asrs r0, 24
- lsls r1, r5, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- add r3, sp, 0x4
- ldrb r3, [r3]
- subs r3, 0x7
- lsls r3, 24
- asrs r3, 24
- ldrb r4, [r4]
- subs r4, 0x7
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl Overworld_SetWarpDestination
-_0806AC5E:
- bl sp13F_fall_to_last_warp
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_warphole
-
- thumb_func_start sub_806AC70
-sub_806AC70: @ 806AC70
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl sub_807E59C
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806AC70
-
- thumb_func_start sub_806ACF8
-sub_806ACF8: @ 806ACF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805DAE4
- bl sub_807E500
- bl sub_80559E4
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806ACF8
-
- thumb_func_start ScrCmd_setwarp
-ScrCmd_setwarp: @ 806AD8C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl Overworld_SetWarpDestination
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setwarp
-
- thumb_func_start ScrCmd_setdynamicwarp
-ScrCmd_setdynamicwarp: @ 806AE0C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- lsls r0, 24
- asrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r1, r9
- mov r2, r8
- adds r3, r6, 0
- bl saved_warp2_set_2
- movs r0, 0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdynamicwarp
-
- thumb_func_start sub_806AE90
-sub_806AE90: @ 806AE90
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_80555F8
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806AE90
-
- thumb_func_start sub_806AF10
-sub_806AF10: @ 806AF10
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_805564C
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806AF10
-
- thumb_func_start ScrCmd_setescapewarp
-ScrCmd_setescapewarp: @ 806AF90
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_80555A0
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setescapewarp
-
- thumb_func_start ScrCmd_getplayerxy
-ScrCmd_getplayerxy: @ 806B010
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldr r2, _0806B048 @ =gSaveBlock1Ptr
- ldr r1, [r2]
- ldrh r1, [r1]
- strh r1, [r5]
- ldr r1, [r2]
- ldrh r1, [r1, 0x2]
- strh r1, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B048: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_getplayerxy
-
- thumb_func_start ScrCmd_getpartysize
-ScrCmd_getpartysize: @ 806B04C
- push {r4,lr}
- ldr r4, _0806B064 @ =gSpecialVar_Result
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B064: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_getpartysize
-
- thumb_func_start ScrCmd_playse
-ScrCmd_playse: @ 806B068
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_playse
-
- thumb_func_start WaitForSoundEffectFinish
-WaitForSoundEffectFinish: @ 806B07C
- push {lr}
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _0806B08C
- movs r0, 0
- b _0806B08E
-_0806B08C:
- movs r0, 0x1
-_0806B08E:
- pop {r1}
- bx r1
- thumb_func_end WaitForSoundEffectFinish
-
- thumb_func_start sub_806B094
-sub_806B094: @ 806B094
- push {lr}
- ldr r1, _0806B0A4 @ =WaitForSoundEffectFinish
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806B0A4: .4byte WaitForSoundEffectFinish
- thumb_func_end sub_806B094
-
- thumb_func_start ScrCmd_playfanfare
-ScrCmd_playfanfare: @ 806B0A8
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl PlayFanfare
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_playfanfare
-
- thumb_func_start WaitForFanfareFinish
-WaitForFanfareFinish: @ 806B0BC
- push {lr}
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end WaitForFanfareFinish
-
- thumb_func_start sub_806B0CC
-sub_806B0CC: @ 806B0CC
- push {lr}
- ldr r1, _0806B0DC @ =WaitForFanfareFinish
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806B0DC: .4byte WaitForFanfareFinish
- thumb_func_end sub_806B0CC
-
- thumb_func_start sub_806B0E0
-sub_806B0E0: @ 806B0E0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r1, r0, 16
- adds r5, r1, 0
- ldr r0, [r4, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldr r0, _0806B11C @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B114
- cmp r2, 0x1
- bne _0806B10E
- adds r0, r1, 0
- bl sub_8055E78
-_0806B10E:
- adds r0, r5, 0
- bl PlayNewMapMusic
-_0806B114:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B11C: .4byte gUnknown_203ADFA
- thumb_func_end sub_806B0E0
-
- thumb_func_start sub_806B120
-sub_806B120: @ 806B120
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl sub_8055E78
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B120
-
- thumb_func_start sub_806B134
-sub_806B134: @ 806B134
- push {lr}
- ldr r0, _0806B150 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B148
- bl Overworld_ChangeMusicToDefault
-_0806B148:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B150: .4byte gUnknown_203ADFA
- thumb_func_end sub_806B134
-
- thumb_func_start sub_806B154
-sub_806B154: @ 806B154
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0806B178 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B172
- adds r0, r1, 0
- bl sub_8055F48
-_0806B172:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B178: .4byte gUnknown_203ADFA
- thumb_func_end sub_806B154
-
- thumb_func_start sub_806B17C
-sub_806B17C: @ 806B17C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldr r0, _0806B19C @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806B1A0
- movs r0, 0
- b _0806B1BE
- .align 2, 0
-_0806B19C: .4byte gUnknown_203ADFA
-_0806B1A0:
- cmp r1, 0
- beq _0806B1AE
- lsls r0, r1, 26
- lsrs r0, 24
- bl FadeOutBGMTemporarily
- b _0806B1B4
-_0806B1AE:
- movs r0, 0x4
- bl FadeOutBGMTemporarily
-_0806B1B4:
- ldr r1, _0806B1C4 @ =IsBGMPausedOrStopped
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
-_0806B1BE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B1C4: .4byte IsBGMPausedOrStopped
- thumb_func_end sub_806B17C
-
- thumb_func_start sub_806B1C8
-sub_806B1C8: @ 806B1C8
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _0806B1F0 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B1FA
- cmp r2, 0
- beq _0806B1F4
- lsls r0, r2, 26
- lsrs r0, 24
- bl FadeInBGM
- b _0806B1FA
- .align 2, 0
-_0806B1F0: .4byte gUnknown_203ADFA
-_0806B1F4:
- movs r0, 0x4
- bl FadeInBGM
-_0806B1FA:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B1C8
-
- thumb_func_start ScrCmd_applymovement
-ScrCmd_applymovement: @ 806B200
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadWord
- adds r3, r0, 0
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, _0806B23C @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl ScriptMovement_StartObjectMovementScript
- ldr r0, _0806B240 @ =gUnknown_20370B0
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B23C: .4byte gSaveBlock1Ptr
-_0806B240: .4byte gUnknown_20370B0
- thumb_func_end ScrCmd_applymovement
-
- thumb_func_start ScrCmd_applymovement_at
-ScrCmd_applymovement_at: @ 806B244
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadWord
- adds r3, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- lsls r0, r4, 24
- lsrs r0, 24
- bl ScriptMovement_StartObjectMovementScript
- ldr r0, _0806B284 @ =gUnknown_20370B0
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B284: .4byte gUnknown_20370B0
- thumb_func_end ScrCmd_applymovement_at
-
- thumb_func_start WaitForMovementFinish
-WaitForMovementFinish: @ 806B288
- push {lr}
- ldr r0, _0806B2A4 @ =gUnknown_20370B0
- ldrb r0, [r0]
- ldr r1, _0806B2A8 @ =gUnknown_20370B4
- ldrb r1, [r1]
- ldr r2, _0806B2AC @ =gUnknown_20370B2
- ldrb r2, [r2]
- bl ScriptMovement_IsObjectMovementFinished
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806B2A4: .4byte gUnknown_20370B0
-_0806B2A8: .4byte gUnknown_20370B4
-_0806B2AC: .4byte gUnknown_20370B2
- thumb_func_end WaitForMovementFinish
-
- thumb_func_start ScrCmd_waitmovement
-ScrCmd_waitmovement: @ 806B2B0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806B2CC
- ldr r0, _0806B2F0 @ =gUnknown_20370B0
- strh r1, [r0]
-_0806B2CC:
- ldr r1, _0806B2F4 @ =gUnknown_20370B2
- ldr r0, _0806B2F8 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, _0806B2FC @ =gUnknown_20370B4
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, _0806B300 @ =WaitForMovementFinish
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B2F0: .4byte gUnknown_20370B0
-_0806B2F4: .4byte gUnknown_20370B2
-_0806B2F8: .4byte gSaveBlock1Ptr
-_0806B2FC: .4byte gUnknown_20370B4
-_0806B300: .4byte WaitForMovementFinish
- thumb_func_end ScrCmd_waitmovement
-
- thumb_func_start ScrCmd_waitmovement_at
-ScrCmd_waitmovement_at: @ 806B304
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806B320
- ldr r0, _0806B348 @ =gUnknown_20370B0
- strh r1, [r0]
-_0806B320:
- ldr r0, [r4, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldr r0, _0806B34C @ =gUnknown_20370B2
- strh r2, [r0]
- ldr r0, _0806B350 @ =gUnknown_20370B4
- strh r1, [r0]
- ldr r1, _0806B354 @ =WaitForMovementFinish
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B348: .4byte gUnknown_20370B0
-_0806B34C: .4byte gUnknown_20370B2
-_0806B350: .4byte gUnknown_20370B4
-_0806B354: .4byte WaitForMovementFinish
- thumb_func_end ScrCmd_waitmovement_at
-
- thumb_func_start ScrCmd_removeobject
-ScrCmd_removeobject: @ 806B358
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B37C @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B37C: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_removeobject
-
- thumb_func_start ScrCmd_removeobject_at
-ScrCmd_removeobject_at: @ 806B380
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_removeobject_at
-
- thumb_func_start ScrCmd_addobject
-ScrCmd_addobject: @ 806B3B0
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B3D4 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl show_sprite
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B3D4: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_addobject
-
- thumb_func_start ScrCmd_addobject_at
-ScrCmd_addobject_at: @ 806B3D8
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl show_sprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_addobject_at
-
- thumb_func_start ScrCmd_setobjectxy
-ScrCmd_setobjectxy: @ 806B408
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0806B46C @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- lsls r4, 16
- asrs r4, 16
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- adds r0, r5, 0
- adds r3, r4, 0
- bl sub_805F7C4
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B46C: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_setobjectxy
-
- thumb_func_start ScrCmd_setobjectxyperm
-ScrCmd_setobjectxyperm: @ 806B470
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r2, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl Overworld_SetMapObjTemplateCoords
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setobjectxyperm
-
- thumb_func_start ScrCmd_moveobjectoffscreen
-ScrCmd_moveobjectoffscreen: @ 806B4C8
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B4EC @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_805FE94
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B4EC: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_moveobjectoffscreen
-
- thumb_func_start ScrCmd_showobject_at
-ScrCmd_showobject_at: @ 806B4F0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- bl npc_by_local_id_and_map_set_field_1_bit_x20
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_showobject_at
-
- thumb_func_start ScrCmd_hideobject_at
-ScrCmd_hideobject_at: @ 806B520
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1
- bl npc_by_local_id_and_map_set_field_1_bit_x20
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hideobject_at
-
- thumb_func_start ScrCmd_setobjectpriority
-ScrCmd_setobjectpriority: @ 806B550
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r5, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r5, 0x8]
- ldrb r1, [r3]
- adds r4, r3, 0x1
- str r4, [r5, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r5, 0x8]
- lsls r0, 24
- lsrs r0, 24
- adds r3, 0x53
- lsls r3, 24
- lsrs r3, 24
- bl sub_805F3A8
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setobjectpriority
-
- thumb_func_start ScrCmd_resetobjectpriority
-ScrCmd_resetobjectpriority: @ 806B58C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl sub_805F400
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_resetobjectpriority
-
- thumb_func_start ScrCmd_faceplayer
-ScrCmd_faceplayer: @ 806B5BC
- push {r4,lr}
- ldr r2, _0806B5EC @ =gMapObjects
- ldr r0, _0806B5F0 @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _0806B5E4
- bl player_get_direction_lower_nybble
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectFaceOppositeDirection
-_0806B5E4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B5EC: .4byte gMapObjects
-_0806B5F0: .4byte gUnknown_3005074
- thumb_func_end ScrCmd_faceplayer
-
- thumb_func_start ScrCmd_turnobject
-ScrCmd_turnobject: @ 806B5F4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, [r4, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806B624 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl FieldObjectTurnByLocalIdAndMap
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B624: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_turnobject
-
- thumb_func_start ScrCmd_setobjectmovementtype
-ScrCmd_setobjectmovementtype: @ 806B628
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl Overworld_SetMapObjTemplateMovementType
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setobjectmovementtype
-
- thumb_func_start ScrCmd_createvobject
-ScrCmd_createvobject: @ 806B650
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r3, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- lsls r4, 16
- asrs r4, 16
- lsls r3, 16
- asrs r3, 16
- str r2, [sp]
- str r1, [sp, 0x4]
- mov r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_805E9F8
- movs r0, 0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_createvobject
-
- thumb_func_start ScrCmd_turnvobject
-ScrCmd_turnvobject: @ 806B6C0
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl sub_8069058
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_turnvobject
-
- thumb_func_start ScrCmd_lockall
-ScrCmd_lockall: @ 806B6DC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805642C
- cmp r0, 0
- bne _0806B6FC
- bl ScriptFreezeMapObjects
- ldr r1, _0806B6F8 @ =sub_8069590
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- b _0806B6FE
- .align 2, 0
-_0806B6F8: .4byte sub_8069590
-_0806B6FC:
- movs r0, 0
-_0806B6FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_lockall
-
- thumb_func_start ScrCmd_lock
-ScrCmd_lock: @ 806B704
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805642C
- cmp r0, 0
- beq _0806B714
- movs r0, 0
- b _0806B752
-_0806B714:
- ldr r2, _0806B738 @ =gMapObjects
- ldr r0, _0806B73C @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0806B744
- bl LockSelectedMapObject
- ldr r1, _0806B740 @ =sub_8069648
- adds r0, r4, 0
- bl SetupNativeScript
- b _0806B750
- .align 2, 0
-_0806B738: .4byte gMapObjects
-_0806B73C: .4byte gUnknown_3005074
-_0806B740: .4byte sub_8069648
-_0806B744:
- bl ScriptFreezeMapObjects
- ldr r1, _0806B758 @ =sub_8069590
- adds r0, r4, 0
- bl SetupNativeScript
-_0806B750:
- movs r0, 0x1
-_0806B752:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B758: .4byte sub_8069590
- thumb_func_end ScrCmd_lock
-
- thumb_func_start ScrCmd_releaseall
-ScrCmd_releaseall: @ 806B75C
- push {lr}
- bl HideFieldMessageBox
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0806B790 @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80974D8
- bl UnfreezeMapObjects
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806B790: .4byte gMapObjects
- thumb_func_end ScrCmd_releaseall
-
- thumb_func_start ScrCmd_release
-ScrCmd_release: @ 806B794
- push {r4,lr}
- bl HideFieldMessageBox
- ldr r4, _0806B7E4 @ =gMapObjects
- ldr r0, _0806B7E8 @ =gUnknown_3005074
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _0806B7B6
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
-_0806B7B6:
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80974D8
- bl UnfreezeMapObjects
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806B7E4: .4byte gMapObjects
-_0806B7E8: .4byte gUnknown_3005074
- thumb_func_end ScrCmd_release
-
- thumb_func_start sub_806B7EC
-sub_806B7EC: @ 806B7EC
- ldr r2, _0806B804 @ =gUnknown_20370DC
- ldr r3, _0806B808 @ =gUnknown_20370DA
- ldrh r1, [r3]
- strh r1, [r2]
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- strh r2, [r3]
- adds r1, 0x1
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- .align 2, 0
-_0806B804: .4byte gUnknown_20370DC
-_0806B808: .4byte gUnknown_20370DA
- thumb_func_end sub_806B7EC
-
- thumb_func_start sub_806B80C
-sub_806B80C: @ 806B80C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0806B81A
- ldr r0, [r4, 0x64]
-_0806B81A:
- bl ShowFieldMessage
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B80C
-
- thumb_func_start sub_806B828
-sub_806B828: @ 806B828
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0806B836
- ldr r0, [r4, 0x64]
-_0806B836:
- bl sub_80F7974
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B828
-
- thumb_func_start sub_806B850
-sub_806B850: @ 806B850
- push {lr}
- bl sub_80F7998
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B850
-
- thumb_func_start sub_806B85C
-sub_806B85C: @ 806B85C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- cmp r0, 0
- bne _0806B86A
- ldr r0, [r4, 0x64]
-_0806B86A:
- bl ShowFieldAutoScrollMessage
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B85C
-
- thumb_func_start sub_806B878
-sub_806B878: @ 806B878
- push {lr}
- ldr r1, _0806B888 @ =IsFieldMessageBoxHidden
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806B888: .4byte IsFieldMessageBoxHidden
- thumb_func_end sub_806B878
-
- thumb_func_start sub_806B88C
-sub_806B88C: @ 806B88C
- push {lr}
- bl HideFieldMessageBox
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806B88C
-
- thumb_func_start sub_806B898
-sub_806B898: @ 806B898
- push {r4,lr}
- ldr r0, _0806B8F0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806B922
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806B922
- ldr r4, _0806B8F4 @ =gUnknown_3005070
- ldr r0, [r4]
- bl sub_806B93C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B906
- ldr r0, [r4]
- bl sub_806B96C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8069998
- cmp r4, 0
- beq _0806B906
- ldr r0, _0806B8F8 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0806B906
- bl sub_80699F8
- adds r0, r4, 0
- subs r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0806B8FC
- bl sub_8069964
- b _0806B922
- .align 2, 0
-_0806B8F0: .4byte gMain
-_0806B8F4: .4byte gUnknown_3005070
-_0806B8F8: .4byte gUnknown_203ADFA
-_0806B8FC:
- bl sub_80699A4
- bl sub_8069970
- b _0806B922
-_0806B906:
- bl sub_8112CAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806B91A
- ldr r0, _0806B928 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0806B934
-_0806B91A:
- ldr r1, _0806B92C @ =gUnknown_20370AC
- ldrb r0, [r1]
- cmp r0, 0x78
- bne _0806B930
-_0806B922:
- movs r0, 0x1
- b _0806B936
- .align 2, 0
-_0806B928: .4byte gUnknown_203ADFA
-_0806B92C: .4byte gUnknown_20370AC
-_0806B930:
- adds r0, 0x1
- strb r0, [r1]
-_0806B934:
- movs r0, 0
-_0806B936:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806B898
-
- thumb_func_start sub_806B93C
-sub_806B93C: @ 806B93C
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0806B958
- ldrb r1, [r2]
- subs r1, 0x1
- lsls r1, 2
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1
- ldr r0, [r0]
- ldrb r0, [r0]
-_0806B958:
- subs r0, 0x6B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806B966
- movs r0, 0x1
- b _0806B968
-_0806B966:
- movs r0, 0
-_0806B968:
- pop {r1}
- bx r1
- thumb_func_end sub_806B93C
-
- thumb_func_start sub_806B96C
-sub_806B96C: @ 806B96C
- push {lr}
- ldr r2, _0806B988 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0806B990
- ldr r0, _0806B98C @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _0806B990
- movs r0, 0x1
- b _0806BA36
- .align 2, 0
-_0806B988: .4byte gMain
-_0806B98C: .4byte gSpecialVar_Facing
-_0806B990:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806B9AC
- ldr r0, _0806B9A8 @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _0806B9AC
- movs r0, 0x2
- b _0806BA36
- .align 2, 0
-_0806B9A8: .4byte gSpecialVar_Facing
-_0806B9AC:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0806B9C8
- ldr r0, _0806B9C4 @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x3
- beq _0806B9C8
- movs r0, 0x3
- b _0806BA36
- .align 2, 0
-_0806B9C4: .4byte gSpecialVar_Facing
-_0806B9C8:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0806B9E4
- ldr r0, _0806B9E0 @ =gSpecialVar_Facing
- ldrh r0, [r0]
- cmp r0, 0x4
- beq _0806B9E4
- movs r0, 0x4
- b _0806BA36
- .align 2, 0
-_0806B9E0: .4byte gSpecialVar_Facing
-_0806B9E4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0806B9F4
- movs r0, 0x5
- b _0806BA36
-_0806B9F4:
- ldrh r2, [r2, 0x2C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0806BA04
- movs r0, 0x6
- b _0806BA36
-_0806BA04:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0806BA10
- movs r0, 0x7
- b _0806BA36
-_0806BA10:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _0806BA1C
- movs r0, 0x8
- b _0806BA36
-_0806BA1C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806BA28
- movs r0, 0x9
- b _0806BA36
-_0806BA28:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806BA34
- movs r0, 0
- b _0806BA36
-_0806BA34:
- movs r0, 0xA
-_0806BA36:
- pop {r1}
- bx r1
- thumb_func_end sub_806B96C
-
- thumb_func_start sub_806BA3C
-sub_806BA3C: @ 806BA3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0806BA70 @ =gUnknown_3005070
- str r4, [r0]
- bl sub_8112CAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BA58
- ldr r0, _0806BA74 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0806BA5E
-_0806BA58:
- ldr r1, _0806BA78 @ =gUnknown_20370AC
- movs r0, 0
- strb r0, [r1]
-_0806BA5E:
- ldr r1, _0806BA7C @ =sub_806B898
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BA70: .4byte gUnknown_3005070
-_0806BA74: .4byte gUnknown_203ADFA
-_0806BA78: .4byte gUnknown_20370AC
-_0806BA7C: .4byte sub_806B898
- thumb_func_end sub_806BA3C
-
- thumb_func_start ScrCmd_yesnobox
-ScrCmd_yesnobox: @ 806BA80
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl sub_809CDEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BAA2
- movs r0, 0
- b _0806BAA8
-_0806BAA2:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BAA8:
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_yesnobox
-
- thumb_func_start ScrCmd_multichoice
-ScrCmd_multichoice: @ 806BAAC
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl ScriptMenu_Multichoice
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BADA
- movs r0, 0
- b _0806BAE0
-_0806BADA:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BAE0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoice
-
- thumb_func_start ScrCmd_multichoicedefault
-ScrCmd_multichoicedefault: @ 806BAE8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl ScriptMenu_MultichoiceWithDefault
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BB26
- movs r0, 0
- b _0806BB2C
-_0806BB26:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BB2C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoicedefault
-
- thumb_func_start sub_806BB38
-sub_806BB38: @ 806BB38
- movs r0, 0
- bx lr
- thumb_func_end sub_806BB38
-
- thumb_func_start ScrCmd_multichoicegrid
-ScrCmd_multichoicegrid: @ 806BB3C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl sub_809CEC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BB7A
- movs r0, 0
- b _0806BB80
-_0806BB7A:
- bl ScriptContext1_Stop
- movs r0, 0x1
-_0806BB80:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_multichoicegrid
-
- thumb_func_start sub_806BB8C
-sub_806BB8C: @ 806BB8C
- ldr r1, [r0, 0x8]
- adds r1, 0x4
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end sub_806BB8C
-
- thumb_func_start sub_806BB98
-sub_806BB98: @ 806BB98
- movs r0, 0
- bx lr
- thumb_func_end sub_806BB98
-
- thumb_func_start sub_806BB9C
-sub_806BB9C: @ 806BB9C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r4, 0
- bl sub_809D2F0
- adds r0, r4, 0
- movs r1, 0
- bl PlayCry7
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806BB9C
-
- thumb_func_start sub_806BBD8
-sub_806BBD8: @ 806BBD8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D3CC
- adds r1, r0, 0
- cmp r1, 0
- beq _0806BBF0
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- b _0806BBF2
-_0806BBF0:
- movs r0, 0
-_0806BBF2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806BBD8
-
- thumb_func_start sub_806BBF8
-sub_806BBF8: @ 806BBF8
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end sub_806BBF8
-
- thumb_func_start sub_806BC04
-sub_806BC04: @ 806BC04
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- bl ScriptReadWord
- adds r4, r0, 0
- cmp r4, 0
- bne _0806BC16
- ldr r4, [r5, 0x64]
-_0806BC16:
- bl sub_80F6E9C
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6EE4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x6
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- movs r0, 0
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806BC04
-
- thumb_func_start sub_806BC40
-sub_806BC40: @ 806BC40
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- cmp r1, 0
- bne _0806BC50
- ldr r1, [r4, 0x64]
-_0806BC50:
- ldr r4, _0806BC68 @ =gSpecialVar_0x8004
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x6
- bl GetStringWidth
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BC68: .4byte gSpecialVar_0x8004
- thumb_func_end sub_806BC40
-
- thumb_func_start ScrCmd_vmessage
-ScrCmd_vmessage: @ 806BC6C
- push {lr}
- bl ScriptReadWord
- ldr r1, _0806BC84 @ =gUnknown_20370A8
- ldr r1, [r1]
- subs r0, r1
- bl ShowFieldMessage
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806BC84: .4byte gUnknown_20370A8
- thumb_func_end ScrCmd_vmessage
-
- thumb_func_start ScrCmd_bufferspeciesname
-ScrCmd_bufferspeciesname: @ 806BC88
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806BCC0 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xB
- muls r1, r0
- ldr r0, _0806BCC4 @ =gSpeciesNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BCC0: .4byte gUnknown_83A7294
-_0806BCC4: .4byte gSpeciesNames
- thumb_func_end ScrCmd_bufferspeciesname
-
- thumb_func_start ScrCmd_bufferleadmonspeciesname
-ScrCmd_bufferleadmonspeciesname: @ 806BCC8
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _0806BD08 @ =gUnknown_83A7294
- lsls r2, 2
- adds r2, r0
- ldr r4, [r2]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806BD0C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _0806BD10 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD08: .4byte gUnknown_83A7294
-_0806BD0C: .4byte gPlayerParty
-_0806BD10: .4byte gSpeciesNames
- thumb_func_end ScrCmd_bufferleadmonspeciesname
-
- thumb_func_start ScrCmd_bufferpartymonnick
-ScrCmd_bufferpartymonnick: @ 806BD14
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806BD54 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806BD58 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r4, [r4]
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD54: .4byte gPlayerParty
-_0806BD58: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferpartymonnick
-
- thumb_func_start ScrCmd_bufferitemname
-ScrCmd_bufferitemname: @ 806BD5C
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806BD8C @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- bl sub_8099E90
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD8C: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferitemname
-
- thumb_func_start sub_806BD90
-sub_806BD90: @ 806BD90
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r7, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _0806BDE4 @ =gUnknown_83A7294
- lsls r0, r7, 2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8099E90
- cmp r5, 0x4
- bne _0806BDEC
- cmp r6, 0x1
- bls _0806BDEC
- ldr r1, _0806BDE8 @ =gUnknown_83A72A0
- adds r0, r4, 0
- bl StringAppend
- b _0806BE22
- .align 2, 0
-_0806BDE4: .4byte gUnknown_83A7294
-_0806BDE8: .4byte gUnknown_83A72A0
-_0806BDEC:
- adds r0, r5, 0
- subs r0, 0x85
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x29
- bhi _0806BE22
- cmp r6, 0x1
- bls _0806BE22
- ldr r0, _0806BE2C @ =gUnknown_83A7294
- lsls r1, r7, 2
- adds r1, r0
- ldr r4, [r1]
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _0806BE22
- adds r0, r4, r0
- subs r0, 0x1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _0806BE30 @ =gUnknown_83A72A2
- adds r0, r4, 0
- bl StringAppend
-_0806BE22:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BE2C: .4byte gUnknown_83A7294
-_0806BE30: .4byte gUnknown_83A72A2
- thumb_func_end sub_806BD90
-
- thumb_func_start sub_806BE34
-sub_806BE34: @ 806BE34
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806BE34
-
- thumb_func_start ScrCmd_buffermovename
-ScrCmd_buffermovename: @ 806BE50
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806BE88 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xD
- muls r1, r0
- ldr r0, _0806BE8C @ =gMoveNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BE88: .4byte gUnknown_83A7294
-_0806BE8C: .4byte gMoveNames
- thumb_func_end ScrCmd_buffermovename
-
- thumb_func_start ScrCmd_buffernumberstring
-ScrCmd_buffernumberstring: @ 806BE90
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80CBF04
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0806BED0 @ =gUnknown_83A7294
- lsls r5, 2
- adds r5, r0
- ldr r0, [r5]
- adds r1, r4, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BED0: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_buffernumberstring
-
- thumb_func_start ScrCmd_bufferstdstring
-ScrCmd_bufferstdstring: @ 806BED4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- ldr r1, _0806BF0C @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- ldr r1, _0806BF10 @ =gUnknown_83E06B8
- lsrs r0, 14
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF0C: .4byte gUnknown_83A7294
-_0806BF10: .4byte gUnknown_83E06B8
- thumb_func_end ScrCmd_bufferstdstring
-
- thumb_func_start ScrCmd_bufferstring
-ScrCmd_bufferstring: @ 806BF14
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806BF38 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF38: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferstring
-
- thumb_func_start ScrCmd_vloadword
-ScrCmd_vloadword: @ 806BF3C
- push {lr}
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806BF58 @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _0806BF5C @ =gStringVar4
- bl StringExpandPlaceholders
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF58: .4byte gUnknown_20370A8
-_0806BF5C: .4byte gStringVar4
- thumb_func_end ScrCmd_vloadword
-
- thumb_func_start ScrCmd_vbufferstring
-ScrCmd_vbufferstring: @ 806BF60
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, _0806BF8C @ =gUnknown_20370A8
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _0806BF90 @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BF8C: .4byte gUnknown_20370A8
-_0806BF90: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_vbufferstring
-
- thumb_func_start ScrCmd_bufferboxname
-ScrCmd_bufferboxname: @ 806BF94
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _0806BFCC @ =gUnknown_83A7294
- lsls r4, 2
- adds r4, r1
- ldr r4, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl GetBoxNamePtr
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BFCC: .4byte gUnknown_83A7294
- thumb_func_end ScrCmd_bufferboxname
-
- thumb_func_start ScrCmd_givemon
-ScrCmd_givemon: @ 806BFD0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl ScriptReadWord
- mov r8, r0
- adds r0, r4, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- ldr r4, _0806C04C @ =gSpecialVar_Result
- str r0, [sp]
- str r2, [sp, 0x4]
- adds r0, r6, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl ScriptGiveMon
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C04C: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_givemon
-
- thumb_func_start ScrCmd_giveegg
-ScrCmd_giveegg: @ 806C050
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0806C078 @ =gSpecialVar_Result
- bl sub_80A01AC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C078: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_giveegg
-
- thumb_func_start ScrCmd_setmonmove
-ScrCmd_setmonmove: @ 806C07C
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- adds r2, r4, 0
- bl ScriptSetMonMoveSlot
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmonmove
-
- thumb_func_start ScrCmd_checkpartymove
-ScrCmd_checkpartymove: @ 806C0A8
- push {r4-r7,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _0806C0BC @ =gSpecialVar_Result
- movs r0, 0x6
- strh r0, [r1]
- movs r6, 0
- b _0806C0F6
- .align 2, 0
-_0806C0BC: .4byte gSpecialVar_Result
-_0806C0C0:
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806C0F0
- adds r0, r4, 0
- adds r1, r7, 0
- bl pokemon_has_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806C0F0
- ldr r0, _0806C0E8 @ =gSpecialVar_Result
- strh r6, [r0]
- ldr r0, _0806C0EC @ =gSpecialVar_0x8004
- strh r5, [r0]
- b _0806C116
- .align 2, 0
-_0806C0E8: .4byte gSpecialVar_Result
-_0806C0EC: .4byte gSpecialVar_0x8004
-_0806C0F0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0806C0F6:
- cmp r6, 0x5
- bhi _0806C116
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _0806C120 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0806C0C0
-_0806C116:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C120: .4byte gPlayerParty
- thumb_func_end ScrCmd_checkpartymove
-
- thumb_func_start ScrCmd_givemoney
-ScrCmd_givemoney: @ 806C124
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806C14A
- ldr r0, _0806C154 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- bl AddMoney
-_0806C14A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C154: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_givemoney
-
- thumb_func_start ScrCmd_takemoney
-ScrCmd_takemoney: @ 806C158
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806C17E
- ldr r0, _0806C188 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- bl RemoveMoney
-_0806C17E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C188: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_takemoney
-
- thumb_func_start ScrCmd_checkmoney
-ScrCmd_checkmoney: @ 806C18C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806C1BA
- ldr r4, _0806C1C4 @ =gSpecialVar_Result
- ldr r0, _0806C1C8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_0806C1BA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C1C4: .4byte gSpecialVar_Result
-_0806C1C8: .4byte gSaveBlock1Ptr
- thumb_func_end ScrCmd_checkmoney
-
- thumb_func_start sub_806C1CC
-sub_806C1CC: @ 806C1CC
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _0806C20A
- ldr r0, _0806C214 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806C20A
- ldr r0, _0806C218 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r1, r5, 0
- adds r2, r4, 0
- bl DrawMoneyBox
-_0806C20A:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C214: .4byte sub_809D6D4
-_0806C218: .4byte gSaveBlock1Ptr
- thumb_func_end sub_806C1CC
-
- thumb_func_start sub_806C21C
-sub_806C21C: @ 806C21C
- push {lr}
- bl HideMoneyBox
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806C21C
-
- thumb_func_start sub_806C228
-sub_806C228: @ 806C228
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _0806C24E
- ldr r0, _0806C254 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- bl ChangeAmountInMoneyBox
-_0806C24E:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C254: .4byte gSaveBlock1Ptr
- thumb_func_end sub_806C228
-
- thumb_func_start sub_806C258
-sub_806C258: @ 806C258
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _0806C290 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806C286
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- adds r2, r4, 0
- bl ShowCoinsWindow
-_0806C286:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C290: .4byte sub_809D6D4
- thumb_func_end sub_806C258
-
- thumb_func_start ScrCmd_hidecoinsbox
-ScrCmd_hidecoinsbox: @ 806C294
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x2
- str r1, [r0, 0x8]
- bl HideCoinsWindow
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_hidecoinsbox
-
- thumb_func_start ScrCmd_updatecoinsbox
-ScrCmd_updatecoinsbox: @ 806C2A8
- push {lr}
- ldr r1, [r0, 0x8]
- adds r1, 0x2
- str r1, [r0, 0x8]
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- bl PrintCoinsString
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_updatecoinsbox
-
- thumb_func_start ScrCmd_trainerbattle
-ScrCmd_trainerbattle: @ 806C2C4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- bl sub_8080228
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_trainerbattle
-
- thumb_func_start sub_806C2D8
-sub_806C2D8: @ 806C2D8
- push {lr}
- bl sub_8080464
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C2D8
-
- thumb_func_start ScrCmd_ontrainerbattleend
-ScrCmd_ontrainerbattleend: @ 806C2E4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80805E8
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_ontrainerbattleend
-
- thumb_func_start ScrCmd_ontrainerbattleendgoto
-ScrCmd_ontrainerbattleendgoto: @ 806C2F8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8080600
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_ontrainerbattleendgoto
-
- thumb_func_start ScrCmd_checktrainerflag
-ScrCmd_checktrainerflag: @ 806C30C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl HasTrainerAlreadyBeenFought
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checktrainerflag
-
- thumb_func_start ScrCmd_settrainerflag
-ScrCmd_settrainerflag: @ 806C330
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_set
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_settrainerflag
-
- thumb_func_start ScrCmd_cleartrainerflag
-ScrCmd_cleartrainerflag: @ 806C34C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_clear
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_cleartrainerflag
-
- thumb_func_start ScrCmd_setwildbattle
-ScrCmd_setwildbattle: @ 806C368
- push {r4-r6,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, [r4, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadHalfword
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl CreateScriptedWildMon
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setwildbattle
-
- thumb_func_start sub_806C39C
-sub_806C39C: @ 806C39C
- push {lr}
- bl sub_807F8C4
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C39C
-
- thumb_func_start sub_806C3AC
-sub_806C3AC: @ 806C3AC
- push {lr}
- bl ScriptReadWord
- bl sub_809C164
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C3AC
-
- thumb_func_start sub_806C3C0
-sub_806C3C0: @ 806C3C0
- push {lr}
- bl ScriptReadWord
- bl sub_809C1A0
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C3C0
-
- thumb_func_start sub_806C3D4
-sub_806C3D4: @ 806C3D4
- push {lr}
- bl ScriptReadWord
- bl sub_809C1BC
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C3D4
-
- thumb_func_start ScrCmd_playslotmachine
-ScrCmd_playslotmachine: @ 806C3E8
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0806C40C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl sub_813F804
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806C40C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end ScrCmd_playslotmachine
-
- thumb_func_start sub_806C410
-sub_806C410: @ 806C410
- movs r0, 0
- bx lr
- thumb_func_end sub_806C410
-
- thumb_func_start sub_806C414
-sub_806C414: @ 806C414
- movs r0, 0
- bx lr
- thumb_func_end sub_806C414
-
- thumb_func_start sub_806C418
-sub_806C418: @ 806C418
- push {lr}
- bl ScriptContext1_Stop
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806C418
-
- thumb_func_start sub_806C424
-sub_806C424: @ 806C424
- movs r0, 0
- bx lr
- thumb_func_end sub_806C424
-
- thumb_func_start sub_806C428
-sub_806C428: @ 806C428
- movs r0, 0
- bx lr
- thumb_func_end sub_806C428
-
- thumb_func_start sub_806C42C
-sub_806C42C: @ 806C42C
- movs r0, 0
- bx lr
- thumb_func_end sub_806C42C
-
- thumb_func_start ScrCmd_dofieldeffect
-ScrCmd_dofieldeffect: @ 806C430
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0806C454 @ =gUnknown_20370B6
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl FieldEffectStart
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C454: .4byte gUnknown_20370B6
- thumb_func_end ScrCmd_dofieldeffect
-
- thumb_func_start ScrCmd_setfieldeffectarg
-ScrCmd_setfieldeffectarg: @ 806C458
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _0806C484 @ =gFieldEffectArguments
- lsls r4, 2
- adds r4, r1
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C484: .4byte gFieldEffectArguments
- thumb_func_end ScrCmd_setfieldeffectarg
-
- thumb_func_start WaitForFieldEffectFinish
-WaitForFieldEffectFinish: @ 806C488
- push {lr}
- ldr r0, _0806C49C @ =gUnknown_20370B6
- ldrb r0, [r0]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- beq _0806C4A0
- movs r0, 0
- b _0806C4A2
- .align 2, 0
-_0806C49C: .4byte gUnknown_20370B6
-_0806C4A0:
- movs r0, 0x1
-_0806C4A2:
- pop {r1}
- bx r1
- thumb_func_end WaitForFieldEffectFinish
-
- thumb_func_start ScrCmd_waitfieldeffect
-ScrCmd_waitfieldeffect: @ 806C4A8
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _0806C4CC @ =gUnknown_20370B6
- strh r0, [r1]
- ldr r1, _0806C4D0 @ =WaitForFieldEffectFinish
- adds r0, r4, 0
- bl SetupNativeScript
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C4CC: .4byte gUnknown_20370B6
-_0806C4D0: .4byte WaitForFieldEffectFinish
- thumb_func_end ScrCmd_waitfieldeffect
-
- thumb_func_start ScrCmd_setrespawn
-ScrCmd_setrespawn: @ 806C4D4
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_80554CC
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setrespawn
-
- thumb_func_start ScrCmd_checkplayergender
-ScrCmd_checkplayergender: @ 806C4F0
- ldr r1, _0806C500 @ =gSpecialVar_Result
- ldr r0, _0806C504 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- movs r0, 0
- bx lr
- .align 2, 0
-_0806C500: .4byte gSpecialVar_Result
-_0806C504: .4byte gSaveBlock2Ptr
- thumb_func_end ScrCmd_checkplayergender
-
- thumb_func_start ScrCmd_playmoncry
-ScrCmd_playmoncry: @ 806C508
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl PlayCry7
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_playmoncry
-
- thumb_func_start sub_806C540
-sub_806C540: @ 806C540
- push {lr}
- ldr r1, _0806C550 @ =IsCryFinished
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806C550: .4byte IsCryFinished
- thumb_func_end sub_806C540
-
- thumb_func_start ScrCmd_setmetatile
-ScrCmd_setmetatile: @ 806C554
- push {r4-r7,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- adds r1, r6, 0x7
- lsls r1, 16
- lsrs r6, r1, 16
- adds r1, r5, 0x7
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r0, 0
- bne _0806C5B8
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl MapGridSetMetatileIdAt
- b _0806C5CA
-_0806C5B8:
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r2, r7, 0
- orrs r2, r0
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0806C5CA:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setmetatile
-
- thumb_func_start ScrCmd_opendoor
-ScrCmd_opendoor: @ 806C5D4
- push {r4,r5,lr}
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- adds r5, 0x7
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r4, r0
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_805B364
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_805B310
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_opendoor
-
- thumb_func_start ScrCmd_closedoor
-ScrCmd_closedoor: @ 806C62C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805B2D0
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_closedoor
-
- thumb_func_start sub_806C670
-sub_806C670: @ 806C670
- push {lr}
- bl sub_805B350
- lsls r0, 24
- cmp r0, 0
- beq _0806C680
- movs r0, 0
- b _0806C682
-_0806C680:
- movs r0, 0x1
-_0806C682:
- pop {r1}
- bx r1
- thumb_func_end sub_806C670
-
- thumb_func_start sub_806C688
-sub_806C688: @ 806C688
- push {lr}
- ldr r1, _0806C698 @ =sub_806C670
- bl SetupNativeScript
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806C698: .4byte sub_806C670
- thumb_func_end sub_806C688
-
- thumb_func_start ScrCmd_setdooropen
-ScrCmd_setdooropen: @ 806C69C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805B268
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdooropen
-
- thumb_func_start ScrCmd_setdoorclosed
-ScrCmd_setdoorclosed: @ 806C6E0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805B29C
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_setdoorclosed
-
- thumb_func_start sub_806C724
-sub_806C724: @ 806C724
- movs r0, 0
- bx lr
- thumb_func_end sub_806C724
-
- thumb_func_start sub_806C728
-sub_806C728: @ 806C728
- movs r0, 0
- bx lr
- thumb_func_end sub_806C728
-
- thumb_func_start ScrCmd_checkcoins
-ScrCmd_checkcoins: @ 806C72C
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- bl GetCoins
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScrCmd_checkcoins
-
- thumb_func_start ScrCmd_givecoins
-ScrCmd_givecoins: @ 806C74C
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GiveCoins
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806C774
- ldr r1, _0806C770 @ =gSpecialVar_Result
- movs r0, 0
- b _0806C778
- .align 2, 0
-_0806C770: .4byte gSpecialVar_Result
-_0806C774:
- ldr r1, _0806C780 @ =gSpecialVar_Result
- movs r0, 0x1
-_0806C778:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C780: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_givecoins
-
- thumb_func_start ScrCmd_takecoins
-ScrCmd_takecoins: @ 806C784
- push {lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl TakeCoins
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806C7AC
- ldr r1, _0806C7A8 @ =gSpecialVar_Result
- movs r0, 0
- b _0806C7B0
- .align 2, 0
-_0806C7A8: .4byte gSpecialVar_Result
-_0806C7AC:
- ldr r1, _0806C7B8 @ =gSpecialVar_Result
- movs r0, 0x1
-_0806C7B0:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806C7B8: .4byte gSpecialVar_Result
- thumb_func_end ScrCmd_takecoins
-
- thumb_func_start sub_806C7BC
-sub_806C7BC: @ 806C7BC
- push {lr}
- bl sub_8069A20
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806C7BC
-
- thumb_func_start sub_806C7C8
-sub_806C7C8: @ 806C7C8
- push {lr}
- bl sub_8069A2C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806C7C8
-
- thumb_func_start ScrCmd_setmonobedient
-ScrCmd_setmonobedient: @ 806C7D4
- push {lr}
- sub sp, 0x4
- movs r2, 0x1
- mov r1, sp
- strb r2, [r1]
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806C808 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x50
- mov r2, sp
- bl SetMonData
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_0806C808: .4byte gPlayerParty
- thumb_func_end ScrCmd_setmonobedient
-
- thumb_func_start ScrCmd_checkmonobedience
-ScrCmd_checkmonobedience: @ 806C80C
- push {r4,lr}
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0806C83C @ =gSpecialVar_Result
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806C840 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x50
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C83C: .4byte gSpecialVar_Result
-_0806C840: .4byte gPlayerParty
- thumb_func_end ScrCmd_checkmonobedience
-
- thumb_func_start sub_806C844
-sub_806C844: @ 806C844
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl ScriptReadHalfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, [r4, 0x8]
- ldrb r2, [r0]
- mov r1, sp
- strb r2, [r1]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r3, 0x5
- bhi _0806C87A
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806C884 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- mov r2, sp
- bl SetMonData
-_0806C87A:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806C884: .4byte gPlayerParty
- thumb_func_end sub_806C844
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index f1127591d..69e487bcc 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -301,7 +301,7 @@ _0809CB7A:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldr r0, [sp, 0x18]
adds r1, r7, 0
adds r2, r5, 0
@@ -578,7 +578,7 @@ _0809CD82:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
b _0809CDE0
.align 2, 0
_0809CDAC: .4byte gUnknown_83E0738
@@ -603,7 +603,7 @@ _0809CDB0:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
_0809CDE0:
add sp, 0x10
pop {r4}
@@ -613,8 +613,8 @@ _0809CDE0:
_0809CDE8: .4byte gUnknown_83E0748
thumb_func_end sub_809CD48
- thumb_func_start sub_809CDEC
-sub_809CDEC: @ 809CDEC
+ thumb_func_start ScriptMenu_YesNo
+ScriptMenu_YesNo: @ 809CDEC
push {r4,lr}
ldr r4, _0809CE04 @ =task_yes_no_maybe
adds r0, r4, 0
@@ -649,7 +649,7 @@ _0809CE28:
.align 2, 0
_0809CE30: .4byte gSpecialVar_Result
_0809CE34: .4byte sub_809D6D4
- thumb_func_end sub_809CDEC
+ thumb_func_end ScriptMenu_YesNo
thumb_func_start sub_809CE38
sub_809CE38: @ 809CE38
@@ -690,7 +690,7 @@ task_yes_no_maybe: @ 809CE54
.align 2, 0
_0809CE74: .4byte gTasks
_0809CE78:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
@@ -733,8 +733,8 @@ _0809CEBC:
_0809CEC4: .4byte gSpecialVar_Result
thumb_func_end task_yes_no_maybe
- thumb_func_start sub_809CEC8
-sub_809CEC8: @ 809CEC8
+ thumb_func_start ScriptMenu_MultichoiceGrid
+ScriptMenu_MultichoiceGrid: @ 809CEC8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -862,7 +862,7 @@ _0809CFCC: .4byte gSpecialVar_Result
_0809CFD0: .4byte sub_809D6D4
_0809CFD4: .4byte gUnknown_83E04B0
_0809CFD8: .4byte gTasks
- thumb_func_end sub_809CEC8
+ thumb_func_end ScriptMenu_MultichoiceGrid
thumb_func_start sub_809CFDC
sub_809CFDC: @ 809CFDC
@@ -1138,7 +1138,7 @@ _0809D1FA:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
mov r1, r9
adds r2, r6, 0
@@ -1178,7 +1178,7 @@ sub_809D254: @ 809D254
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r0}
bx r0
@@ -1241,8 +1241,8 @@ _0809D2E8:
bx r0
thumb_func_end sub_809D288
- thumb_func_start sub_809D2F0
-sub_809D2F0: @ 809D2F0
+ thumb_func_start ScriptMenu_ShowPokemonPic
+ScriptMenu_ShowPokemonPic: @ 809D2F0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1344,10 +1344,10 @@ _0809D3C2:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_809D2F0
+ thumb_func_end ScriptMenu_ShowPokemonPic
- thumb_func_start sub_809D3CC
-sub_809D3CC: @ 809D3CC
+ thumb_func_start ScriptMenu_GetPicboxWaitFunc
+ScriptMenu_GetPicboxWaitFunc: @ 809D3CC
push {lr}
ldr r0, _0809D3F0 @ =sub_809D288
bl FindTaskIdByFunc
@@ -1374,7 +1374,7 @@ _0809D3FC:
_0809D3FE:
pop {r1}
bx r1
- thumb_func_end sub_809D3CC
+ thumb_func_end ScriptMenu_GetPicboxWaitFunc
thumb_func_start sub_809D404
sub_809D404: @ 809D404
@@ -1721,7 +1721,7 @@ sub_809D6B0: @ 809D6B0
bl ClearWindowTilemap
adds r0, r4, 0
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearMenuWindow
adds r0, r4, 0
bl RemoveWindow
pop {r4}
@@ -1732,7 +1732,7 @@ sub_809D6B0: @ 809D6B0
thumb_func_start sub_809D6D4
sub_809D6D4: @ 809D6D4
push {lr}
- ldr r0, _0809D74C @ =gUnknown_81A7AE0
+ ldr r0, _0809D74C @ =EventScript_1A7AE0
bl ScriptContext1_SetupScript
ldr r0, _0809D750 @ =sub_809D288
bl FindTaskIdByFunc
@@ -1788,7 +1788,7 @@ _0809D748:
pop {r0}
bx r0
.align 2, 0
-_0809D74C: .4byte gUnknown_81A7AE0
+_0809D74C: .4byte EventScript_1A7AE0
_0809D750: .4byte sub_809D288
_0809D754: .4byte gTasks+0x8
_0809D758: .4byte gSprites
@@ -1925,7 +1925,7 @@ _0809D844:
bl AddTextPrinterParameterized
adds r0, r6, 0x1
lsls r0, 24
- ldr r2, _0809D8BC @ =gUnknown_84161C8
+ ldr r2, _0809D8BC @ =gOtherText_Exit
lsrs r0, 20
adds r0, 0x2
lsls r0, 24
@@ -1946,7 +1946,7 @@ _0809D844:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
mov r1, r9
adds r2, r7, 0
@@ -1964,7 +1964,7 @@ _0809D8A8:
bx r0
.align 2, 0
_0809D8B8: .4byte gUnknown_8417DED
-_0809D8BC: .4byte gUnknown_84161C8
+_0809D8BC: .4byte gOtherText_Exit
thumb_func_end sub_809D764
thumb_func_start sub_809D8C0
diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s
index 191457abe..60f416b48 100644
--- a/asm/script_pokemon_util_80A0058.s
+++ b/asm/script_pokemon_util_80A0058.s
@@ -170,8 +170,8 @@ _080A0196:
bx r1
thumb_func_end ScriptGiveMon
- thumb_func_start sub_80A01AC
-sub_80A01AC: @ 80A01AC
+ thumb_func_start ScriptGiveEgg
+ScriptGiveEgg: @ 80A01AC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -202,7 +202,7 @@ sub_80A01AC: @ 80A01AC
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80A01AC
+ thumb_func_end ScriptGiveEgg
thumb_func_start CheckForAlivePartyMons
CheckForAlivePartyMons: @ 80A01F4
diff --git a/asm/script_pokemon_util_80BF8FC.s b/asm/script_pokemon_util_80BF8FC.s
index eec41cf11..26c113dfd 100644
--- a/asm/script_pokemon_util_80BF8FC.s
+++ b/asm/script_pokemon_util_80BF8FC.s
@@ -112,14 +112,14 @@ sub_80BF9BC: @ 80BF9BC
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
- ldr r3, _080BF9FC @ =c2_exit_to_overworld_2_switch
+ ldr r3, _080BF9FC @ =CB2_ReturnToField
movs r4, 0
str r4, [sp]
bl sub_8134738
movs r0, 0x3
bl sub_8138B38
- ldr r1, _080BFA00 @ =gUnknown_3005020
- ldr r0, _080BFA04 @ =sub_807DD24
+ ldr r1, _080BFA00 @ =gFieldCallback
+ ldr r0, _080BFA04 @ =FieldCallback_ReturnToEventScript2
str r0, [r1]
add sp, 0x4
pop {r4}
@@ -129,9 +129,9 @@ sub_80BF9BC: @ 80BF9BC
_080BF9F0: .4byte gPlayerParty
_080BF9F4: .4byte gSpecialVar_0x8004
_080BF9F8: .4byte gPlayerPartyCount
-_080BF9FC: .4byte c2_exit_to_overworld_2_switch
-_080BFA00: .4byte gUnknown_3005020
-_080BFA04: .4byte sub_807DD24
+_080BF9FC: .4byte CB2_ReturnToField
+_080BFA00: .4byte gFieldCallback
+_080BFA04: .4byte FieldCallback_ReturnToEventScript2
thumb_func_end sub_80BF9BC
thumb_func_start ScrSpecial_CountPokemonMoves
diff --git a/asm/seagallop.s b/asm/seagallop.s
deleted file mode 100644
index 89f8c2867..000000000
--- a/asm/seagallop.s
+++ /dev/null
@@ -1,795 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8146E78
-sub_8146E78: @ 8146E78
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- bl sub_812B478
- ldr r0, _08146E90 @ =sub_8146E94
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08146E90: .4byte sub_8146E94
- thumb_func_end sub_8146E78
-
- thumb_func_start sub_8146E94
-sub_8146E94: @ 8146E94
- push {r4,lr}
- sub sp, 0x8
- ldr r0, _08146EB4 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08146EA8
- b _0814703C
-_08146EA8:
- lsls r0, 2
- ldr r1, _08146EB8 @ =_08146EBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146EB4: .4byte gMain
-_08146EB8: .4byte _08146EBC
- .align 2, 0
-_08146EBC:
- .4byte _08146EDC
- .4byte _08146EE8
- .4byte _08146EEE
- .4byte _08146F20
- .4byte _08146F8C
- .4byte _08146FAC
- .4byte _08146FBE
- .4byte _08146FE4
-_08146EDC:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81471C4
- b _08146FCE
-_08146EE8:
- bl sub_81472FC
- b _08146FCE
-_08146EEE:
- ldr r4, _08146F18 @ =gUnknown_203F3D0
- movs r0, 0x80
- lsls r0, 4
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08146F1C @ =gUnknown_846AEF8
- movs r0, 0
- movs r2, 0x1
- bl InitBgsFromTemplates
- ldr r1, [r4]
- movs r0, 0x3
- bl SetBgTilemapBuffer
- bl sub_814732C
- b _08146FCE
- .align 2, 0
-_08146F18: .4byte gUnknown_203F3D0
-_08146F1C: .4byte gUnknown_846AEF8
-_08146F20:
- ldr r1, _08146F50 @ =gUnknown_8468C98
- movs r2, 0xA4
- lsls r2, 3
- movs r0, 0x3
- movs r3, 0
- bl LoadBgTiles
- bl sub_81474CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08146F58
- ldr r1, _08146F54 @ =gUnknown_84699D8
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect
- b _08146F6A
- .align 2, 0
-_08146F50: .4byte gUnknown_8468C98
-_08146F54: .4byte gUnknown_84699D8
-_08146F58:
- ldr r1, _08146F84 @ =gUnknown_84691D8
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect
-_08146F6A:
- ldr r0, _08146F88 @ =gUnknown_84691B8
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x2
- bl stdpal_get
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- b _08146FCE
- .align 2, 0
-_08146F84: .4byte gUnknown_84691D8
-_08146F88: .4byte gUnknown_84691B8
-_08146F8C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0814703C
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _08146FCE
-_08146FAC:
- bl sub_8147384
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08146FCE
-_08146FBE:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08146FCE:
- ldr r1, _08146FE0 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0814703C
- .align 2, 0
-_08146FE0: .4byte gMain
-_08146FE4:
- bl sub_814731C
- ldr r0, _08147044 @ =sub_8147058
- bl SetVBlankCallback
- movs r0, 0x13
- bl PlaySE
- bl sub_81473C4
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r1, _08147048 @ =0x00001888
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, _0814704C @ =sub_8147084
- movs r1, 0x8
- bl CreateTask
- ldr r0, _08147050 @ =sub_814706C
- bl SetMainCallback2
- ldr r0, _08147054 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0814703C:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147044: .4byte sub_8147058
-_08147048: .4byte 0x00001888
-_0814704C: .4byte sub_8147084
-_08147050: .4byte sub_814706C
-_08147054: .4byte gMain
- thumb_func_end sub_8146E94
-
- thumb_func_start sub_8147058
-sub_8147058: @ 8147058
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8147058
-
- thumb_func_start sub_814706C
-sub_814706C: @ 814706C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_814706C
-
- thumb_func_start sub_8147084
-sub_8147084: @ 8147084
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147098 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0814709C @ =sub_81470CC
- str r0, [r1]
- bx lr
- .align 2, 0
-_08147098: .4byte gTasks
-_0814709C: .4byte sub_81470CC
- thumb_func_end sub_8147084
-
- thumb_func_start sub_81470A0
-sub_81470A0: @ 81470A0
- push {lr}
- bl sub_81474CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081470BC
- movs r1, 0xC0
- lsls r1, 3
- movs r0, 0x3
- movs r2, 0x1
- bl ChangeBgX
- b _081470C8
-_081470BC:
- movs r1, 0xC0
- lsls r1, 3
- movs r0, 0x3
- movs r2, 0x2
- bl ChangeBgX
-_081470C8:
- pop {r0}
- bx r0
- thumb_func_end sub_81470A0
-
- thumb_func_start sub_81470CC
-sub_81470CC: @ 81470CC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08147100 @ =gTasks
- adds r4, r1, r0
- bl sub_81470A0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8C
- bne _081470FA
- bl Overworld_FadeOutMapMusic
- bl sub_807DC18
- ldr r0, _08147104 @ =sub_8147108
- str r0, [r4]
-_081470FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147100: .4byte gTasks
-_08147104: .4byte sub_8147108
- thumb_func_end sub_81470CC
-
- thumb_func_start sub_8147108
-sub_8147108: @ 8147108
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81470A0
- bl sub_8055FC4
- lsls r0, 24
- cmp r0, 0
- beq _08147136
- ldr r0, _0814713C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08147136
- bl sub_8147140
- bl sub_812B484
- adds r0, r4, 0
- bl DestroyTask
-_08147136:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814713C: .4byte gPaletteFade
- thumb_func_end sub_8147108
-
- thumb_func_start sub_8147140
-sub_8147140: @ 8147140
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081471AC @ =gSpecialVar_0x8006
- ldrh r0, [r1]
- cmp r0, 0xA
- bls _08147150
- movs r0, 0
- strh r0, [r1]
-_08147150:
- ldrh r4, [r1]
- lsls r4, 2
- ldr r0, _081471B0 @ =gUnknown_846AEFC
- adds r4, r0
- movs r0, 0
- ldrsb r0, [r4, r0]
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- movs r2, 0x1
- negs r2, r2
- movs r3, 0x2
- ldrsb r3, [r4, r3]
- ldrb r4, [r4, 0x3]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl Overworld_SetWarpDestination
- bl play_some_sound
- movs r0, 0x9
- bl PlaySE
- ldr r1, _081471B4 @ =gUnknown_3005020
- ldr r0, _081471B8 @ =sub_807DF64
- str r0, [r1]
- bl warp_in
- ldr r0, _081471BC @ =sub_805671C
- bl SetMainCallback2
- bl sub_80559E4
- bl sub_81473A0
- ldr r0, _081471C0 @ =gUnknown_203F3D0
- ldr r0, [r0]
- bl Free
- bl FreeAllWindowBuffers
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081471AC: .4byte gSpecialVar_0x8006
-_081471B0: .4byte gUnknown_846AEFC
-_081471B4: .4byte gUnknown_3005020
-_081471B8: .4byte sub_807DF64
-_081471BC: .4byte sub_805671C
-_081471C0: .4byte gUnknown_203F3D0
- thumb_func_end sub_8147140
-
- thumb_func_start sub_81471C4
-sub_81471C4: @ 81471C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- mov r2, sp
- movs r6, 0
- ldr r1, _081472F4 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _081472F8 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_081471EA:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _081471EA
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _081472F4 @ =0x040000d4
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x8
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xA
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xC
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xE
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1E
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081472F4: .4byte 0x040000d4
-_081472F8: .4byte 0x81000800
- thumb_func_end sub_81471C4
-
- thumb_func_start sub_81472FC
-sub_81472FC: @ 81472FC
- push {lr}
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl dp13_810BB8C
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- pop {r0}
- bx r0
- thumb_func_end sub_81472FC
-
- thumb_func_start sub_814731C
-sub_814731C: @ 814731C
- push {lr}
- movs r1, 0xCA
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- thumb_func_end sub_814731C
-
- thumb_func_start sub_814732C
-sub_814732C: @ 814732C
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end sub_814732C
-
- thumb_func_start sub_8147384
-sub_8147384: @ 8147384
- push {lr}
- ldr r0, _08147398 @ =gUnknown_846AF78
- bl LoadSpriteSheets
- ldr r0, _0814739C @ =gUnknown_846AF90
- bl LoadSpritePalettes
- pop {r0}
- bx r0
- .align 2, 0
-_08147398: .4byte gUnknown_846AF78
-_0814739C: .4byte gUnknown_846AF90
- thumb_func_end sub_8147384
-
- thumb_func_start sub_81473A0
-sub_81473A0: @ 81473A0
- push {r4,lr}
- ldr r4, _081473C0 @ =0x00000bb8
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- movs r0, 0xFA
- lsls r0, 4
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081473C0: .4byte 0x00000bb8
- thumb_func_end sub_81473A0
-
- thumb_func_start sub_81473C4
-sub_81473C4: @ 81473C4
- push {r4,lr}
- ldr r0, _081473FC @ =gUnknown_846AF60
- movs r1, 0
- movs r2, 0x5C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147400 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- movs r0, 0x30
- strh r0, [r4, 0x2E]
- bl sub_81474CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147404
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _08147410
- .align 2, 0
-_081473FC: .4byte gUnknown_846AF60
-_08147400: .4byte gSprites
-_08147404:
- movs r0, 0xF0
- strh r0, [r4, 0x20]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x2E]
-_08147410:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81473C4
-
- thumb_func_start sub_8147418
-sub_8147418: @ 8147418
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r5, r0, 20
- strh r5, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _08147446
- ldrh r0, [r4, 0x20]
- adds r0, r5
- lsls r0, 16
- asrs r0, 16
- bl sub_814746C
-_08147446:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x96
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r4, 0x24]
- adds r0, r1
- lsls r0, 16
- movs r1, 0x96
- lsls r1, 18
- cmp r0, r1
- bls _08147466
- adds r0, r4, 0
- bl DestroySprite
-_08147466:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8147418
-
- thumb_func_start sub_814746C
-sub_814746C: @ 814746C
- push {r4,lr}
- adds r1, r0, 0
- ldr r0, _081474A8 @ =gUnknown_846AFD0
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x5C
- movs r3, 0x8
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _081474A2
- bl sub_81474CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081474A2
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _081474AC @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
-_081474A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081474A8: .4byte gUnknown_846AFD0
-_081474AC: .4byte gSprites
- thumb_func_end sub_814746C
-
- thumb_func_start sub_81474B0
-sub_81474B0: @ 81474B0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081474C6
- adds r0, r2, 0
- bl DestroySprite
-_081474C6:
- pop {r0}
- bx r0
- thumb_func_end sub_81474B0
-
- thumb_func_start sub_81474CC
-sub_81474CC: @ 81474CC
- push {lr}
- ldr r2, _081474EC @ =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0xA
- bhi _081474F8
- ldr r1, _081474F0 @ =gUnknown_846AF28
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _081474F4 @ =gSpecialVar_0x8006
- ldrh r1, [r1]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- b _081474FA
- .align 2, 0
-_081474EC: .4byte gSpecialVar_0x8004
-_081474F0: .4byte gUnknown_846AF28
-_081474F4: .4byte gSpecialVar_0x8006
-_081474F8:
- movs r0, 0x1
-_081474FA:
- pop {r1}
- bx r1
- thumb_func_end sub_81474CC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/shop.s b/asm/shop.s
index 60b92410d..c59fb15df 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -74,7 +74,7 @@ _0809AAF8:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldrb r0, [r4]
bl PutWindowTilemap
ldrb r0, [r4]
@@ -288,18 +288,18 @@ _0809ACD0: .4byte sub_809AD40
thumb_func_start sub_809ACD4
sub_809ACD4: @ 809ACD4
push {lr}
- ldr r2, _0809ACEC @ =c2_exit_to_overworld_2_switch
+ ldr r2, _0809ACEC @ =CB2_ReturnToField
movs r0, 0x2
movs r1, 0x3
bl sub_8107DB4
- ldr r1, _0809ACF0 @ =gUnknown_3005020
+ ldr r1, _0809ACF0 @ =gFieldCallback
ldr r0, _0809ACF4 @ =sub_809AD74
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_0809ACEC: .4byte c2_exit_to_overworld_2_switch
-_0809ACF0: .4byte gUnknown_3005020
+_0809ACEC: .4byte CB2_ReturnToField
+_0809ACF0: .4byte gFieldCallback
_0809ACF4: .4byte sub_809AD74
thumb_func_end sub_809ACD4
@@ -332,7 +332,7 @@ sub_809AD24: @ 809AD24
ldr r4, _0809AD3C @ =gUnknown_2039950
ldrb r0, [r4]
movs r1, 0x2
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -477,7 +477,7 @@ _0809AE2C:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0809AE9C @ =gUnknown_3005E70
+ ldr r0, _0809AE9C @ =gMultiuseListMenuTemplate
movs r1, 0
movs r2, 0
bl ListMenuInit
@@ -510,26 +510,26 @@ _0809AE2C:
_0809AE90: .4byte gMain
_0809AE94: .4byte gUnknown_2039934
_0809AE98: .4byte sub_809BBC0
-_0809AE9C: .4byte gUnknown_3005E70
+_0809AE9C: .4byte gMultiuseListMenuTemplate
_0809AEA0: .4byte gTasks
_0809AEA4: .4byte sub_809AE00
_0809AEA8: .4byte sub_809ADE4
_0809AEAC:
- bl sub_80BF768
+ bl VblankHblankHandlerSetZero
str r4, [sp, 0x8]
movs r1, 0xE0
lsls r1, 19
ldr r2, _0809AF4C @ =0x01000100
add r0, sp, 0x8
bl CpuFastSet
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl reset_temp_tile_data_buffers
bl FreeAllSpritePalettes
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
bl clear_scheduled_bg_copies_to_vram
- bl sub_80984D8
+ bl ResetItemMenuIconState
bl sub_809AF6C
lsls r0, 24
cmp r0, 0
@@ -793,7 +793,7 @@ _0809B118:
movs r1, 0
movs r2, 0xE
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
b _0809B14E
.align 2, 0
_0809B138: .4byte gUnknown_2039934
@@ -805,7 +805,7 @@ _0809B13C:
movs r1, 0
movs r2, 0xC
movs r3, 0x1E
- bl sub_80F6B08
+ bl SetBgRectPal
_0809B14E:
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
@@ -904,7 +904,7 @@ _0809B1F2:
movs r0, 0x2
negs r0, r0
str r0, [r1, 0x4]
- ldr r5, _0809B2D4 @ =gUnknown_3005E70
+ ldr r5, _0809B2D4 @ =gMultiuseListMenuTemplate
str r2, [r5]
ldr r6, _0809B2D8 @ =gUnknown_2039934
ldrh r0, [r6, 0x10]
@@ -992,7 +992,7 @@ _0809B2BC:
_0809B2C8: .4byte gUnknown_2039968
_0809B2CC: .4byte gFameCheckerText_Cancel
_0809B2D0: .4byte gUnknown_2039964
-_0809B2D4: .4byte gUnknown_3005E70
+_0809B2D4: .4byte gMultiuseListMenuTemplate
_0809B2D8: .4byte gUnknown_2039934
_0809B2DC: .4byte sub_809B320
_0809B2E0: .4byte sub_809B408
@@ -1000,7 +1000,7 @@ _0809B2E4:
strh r0, [r5, 0xE]
_0809B2E6:
ldr r0, _0809B2F8 @ =gUnknown_2039934
- ldr r1, _0809B2FC @ =gUnknown_3005E70
+ ldr r1, _0809B2FC @ =gMultiuseListMenuTemplate
ldrh r1, [r1, 0xE]
strh r1, [r0, 0x12]
movs r0, 0x1
@@ -1010,7 +1010,7 @@ _0809B2F0:
bx r1
.align 2, 0
_0809B2F8: .4byte gUnknown_2039934
-_0809B2FC: .4byte gUnknown_3005E70
+_0809B2FC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_809B188
thumb_func_start sub_809B300
@@ -1023,7 +1023,7 @@ sub_809B300: @ 809B300
lsrs r5, 16
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8099E90
+ bl CopyItemName
str r6, [r4]
str r5, [r4, 0x4]
pop {r4-r6}
@@ -1069,7 +1069,7 @@ _0809B34A:
lsrs r1, 30
movs r0, 0x1
eors r0, r1
- bl sub_8098940
+ bl DestroyItemMenuIcon
movs r0, 0x2
negs r0, r0
cmp r5, r0
@@ -1079,7 +1079,7 @@ _0809B34A:
ldrb r1, [r6, 0x17]
lsls r1, 29
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
b _0809B398
.align 2, 0
_0809B384: .4byte gUnknown_8416757
@@ -1089,7 +1089,7 @@ _0809B38C:
ldrb r1, [r6, 0x17]
lsls r1, 29
lsrs r1, 30
- bl sub_80988E8
+ bl CreateItemMenuIcon
_0809B398:
ldr r3, _0809B3D4 @ =gUnknown_2039934
ldrb r2, [r3, 0x17]
@@ -1233,7 +1233,7 @@ sub_809B494: @ 809B494
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r5, _0809B51C @ =gStringVar4
- ldr r1, _0809B520 @ =gUnknown_8416226
+ ldr r1, _0809B520 @ =gOtherText_UnkF9_08_Clear_01
adds r0, r5, 0
bl StringCopy
adds r0, r5, 0
@@ -1279,10 +1279,10 @@ sub_809B494: @ 809B494
_0809B514: .4byte gStringVar1
_0809B518: .4byte 0xfffffee0
_0809B51C: .4byte gStringVar4
-_0809B520: .4byte gUnknown_8416226
+_0809B520: .4byte gOtherText_UnkF9_08_Clear_01
_0809B524: .4byte gMoveNames
_0809B528:
- ldr r2, _0809B564 @ =gUnknown_8416213
+ ldr r2, _0809B564 @ =gText_ThreeHyphens
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
@@ -1312,7 +1312,7 @@ _0809B55C:
pop {r0}
bx r0
.align 2, 0
-_0809B564: .4byte gUnknown_8416213
+_0809B564: .4byte gText_ThreeHyphens
_0809B568: .4byte gUnknown_8416217
thumb_func_end sub_809B494
@@ -1452,17 +1452,17 @@ _0809B66C: .4byte gUnknown_2039968
thumb_func_start sub_809B670
sub_809B670: @ 809B670
push {lr}
- ldr r0, _0809B684 @ =gUnknown_3005020
+ ldr r0, _0809B684 @ =gFieldCallback
ldr r1, _0809B688 @ =sub_809AD74
str r1, [r0]
- ldr r0, _0809B68C @ =c2_exit_to_overworld_2_switch
+ ldr r0, _0809B68C @ =CB2_ReturnToField
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_0809B684: .4byte gUnknown_3005020
+_0809B684: .4byte gFieldCallback
_0809B688: .4byte sub_809AD74
-_0809B68C: .4byte c2_exit_to_overworld_2_switch
+_0809B68C: .4byte CB2_ReturnToField
thumb_func_end sub_809B670
thumb_func_start sub_809B690
@@ -1510,7 +1510,7 @@ _0809B6C4:
movs r2, 0x8
movs r3, 0x58
_0809B6E2:
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
lsls r0, 3
ldrb r2, [r4, 0x17]
movs r1, 0x7
@@ -1542,7 +1542,7 @@ sub_809B6FC: @ 809B6FC
movs r1, 0x98
movs r2, 0x48
movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
+ bl AddScrollIndicatorArrowPairParameterized
lsls r0, 3
ldrb r2, [r4, 0x17]
movs r1, 0x7
@@ -1632,7 +1632,7 @@ _0809B7B2:
movs r3, 0
ldrsh r1, [r2, r3]
adds r1, r7
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
lsls r0, 16
lsrs r5, r0, 16
mov r0, sp
@@ -1645,7 +1645,7 @@ _0809B7B2:
adds r1, r7, r1
lsls r1, 16
asrs r1, 16
- bl sub_8058F8C
+ bl MapGridGetMetatileLayerTypeAt
lsls r0, 24
lsrs r3, r0, 24
ldr r0, _0809B808 @ =0x0000027f
@@ -2017,7 +2017,7 @@ _0809BA56:
str r0, [sp]
adds r0, r4, 0
ldr r1, _0809BAF4 @ =SpriteCallbackDummy
- bl AddPseudoFieldObject
+ bl AddPseudoEventObject
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 4
@@ -2119,7 +2119,7 @@ sub_809BB44: @ 809BB44
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, _0809BBB8 @ =gStringVar4
- ldr r1, _0809BBBC @ =gUnknown_84162B9
+ ldr r1, _0809BBBC @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -2144,7 +2144,7 @@ _0809BBAC: .4byte gTasks+0x8
_0809BBB0: .4byte gUnknown_2039934
_0809BBB4: .4byte gStringVar1
_0809BBB8: .4byte gStringVar4
-_0809BBBC: .4byte gUnknown_84162B9
+_0809BBBC: .4byte gText_TimesStrVar1
thumb_func_end sub_809BB44
thumb_func_start sub_809BBC0
@@ -2170,7 +2170,7 @@ sub_809BBC0: @ 809BBC0
ldr r7, _0809BC08 @ =gUnknown_2039942
subs r2, r7, 0x2
adds r1, r7, 0
- bl get_coro_args_x18_x1A
+ bl ListMenuGetScrollAndRow
movs r0, 0x2
negs r0, r0
cmp r4, r0
@@ -2232,7 +2232,7 @@ _0809BC78: .4byte sub_809BF98
_0809BC7C:
ldr r1, _0809BC94 @ =gStringVar1
adds r0, r4, 0
- bl sub_8099E90
+ bl CopyItemName
ldr r1, _0809BC98 @ =gUnknown_8416766
ldr r2, _0809BC9C @ =sub_809BCA0
adds r0, r6, 0
@@ -2259,7 +2259,7 @@ sub_809BCA0: @ 809BCA0
ldr r0, _0809BD40 @ =gTasks+0x8
adds r5, r0
ldrh r0, [r5, 0xA]
- bl sub_809A7DC
+ bl BagGetQuantityByItemId
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -2396,10 +2396,10 @@ _0809BDD4:
bl sub_809B73C
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
@@ -2408,7 +2408,7 @@ _0809BDD4:
bl PutWindowTilemap
ldrh r0, [r4, 0xA]
ldr r1, _0809BE40 @ =gStringVar1
- bl sub_8099E90
+ bl CopyItemName
ldr r0, _0809BE44 @ =gStringVar2
movs r2, 0x2
ldrsh r1, [r4, r2]
@@ -2442,10 +2442,10 @@ _0809BE54:
bl sub_809B73C
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
@@ -2485,7 +2485,7 @@ sub_809BEA4: @ 809BEA4
bl PutWindowTilemap
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x2]
- bl sub_809A084
+ bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2601,7 +2601,7 @@ sub_809BF98: @ 809BF98
adds r4, r5, r6
movs r0, 0x2
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
ldrb r0, [r4, 0xE]
movs r1, 0x1
bl sub_809B57C
@@ -2644,7 +2644,7 @@ sub_809C004: @ 809C004
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, _0809C03C @ =gUnknown_3005020
+ ldr r1, _0809C03C @ =gFieldCallback
ldr r0, _0809C040 @ =sub_809AD74
str r0, [r1]
movs r0, 0x1
@@ -2666,7 +2666,7 @@ sub_809C004: @ 809C004
pop {r0}
bx r0
.align 2, 0
-_0809C03C: .4byte gUnknown_3005020
+_0809C03C: .4byte gFieldCallback
_0809C040: .4byte sub_809AD74
_0809C044: .4byte gTasks
_0809C048: .4byte sub_809C04C
@@ -2691,9 +2691,9 @@ sub_809C04C: @ 809C04C
ldrb r0, [r2, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_809B604
- ldr r0, _0809C090 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _0809C090 @ =CB2_ReturnToField
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -2704,7 +2704,7 @@ _0809C082:
.align 2, 0
_0809C088: .4byte gTasks+0x8
_0809C08C: .4byte gPaletteFade
-_0809C090: .4byte c2_exit_to_overworld_2_switch
+_0809C090: .4byte CB2_ReturnToField
thumb_func_end sub_809C04C
thumb_func_start nullsub_52
@@ -2826,8 +2826,8 @@ _0809C15A:
_0809C160: .4byte gUnknown_203996C
thumb_func_end sub_809C138
- thumb_func_start sub_809C164
-sub_809C164: @ 809C164
+ thumb_func_start CreatePokemartMenu
+CreatePokemartMenu: @ 809C164
push {r4,lr}
bl sub_809ABD8
movs r0, 0
@@ -2851,10 +2851,10 @@ sub_809C164: @ 809C164
_0809C194: .4byte EnableBothScriptContexts
_0809C198: .4byte gUnknown_203996C
_0809C19C: .4byte gMapHeader
- thumb_func_end sub_809C164
+ thumb_func_end CreatePokemartMenu
- thumb_func_start sub_809C1A0
-sub_809C1A0: @ 809C1A0
+ thumb_func_start CreateDecorationShop1Menu
+CreateDecorationShop1Menu: @ 809C1A0
push {lr}
bl sub_809ABD8
movs r0, 0x2
@@ -2865,10 +2865,10 @@ sub_809C1A0: @ 809C1A0
bx r0
.align 2, 0
_0809C1B8: .4byte EnableBothScriptContexts
- thumb_func_end sub_809C1A0
+ thumb_func_end CreateDecorationShop1Menu
- thumb_func_start sub_809C1BC
-sub_809C1BC: @ 809C1BC
+ thumb_func_start CreateDecorationShop2Menu
+CreateDecorationShop2Menu: @ 809C1BC
push {lr}
bl sub_809ABD8
movs r0, 0x3
@@ -2879,7 +2879,7 @@ sub_809C1BC: @ 809C1BC
bx r0
.align 2, 0
_0809C1D4: .4byte EnableBothScriptContexts
- thumb_func_end sub_809C1BC
+ thumb_func_end CreateDecorationShop2Menu
thumb_func_start sub_809C1D8
sub_809C1D8: @ 809C1D8
@@ -2940,7 +2940,7 @@ _0809C238:
adds r5, r1, r0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
movs r2, 0
ldrsh r1, [r7, r2]
lsls r0, 16
@@ -3006,7 +3006,7 @@ _0809C2B8:
adds r5, r1, r0
adds r0, r5, 0
adds r1, r6, 0
- bl sub_8058E48
+ bl MapGridGetMetatileIdAt
movs r1, 0x2
subs r1, r7
lsls r1, 1
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 2d1be0535..680004d4a 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_813F804
-sub_813F804: @ 813F804
+ thumb_func_start PlaySlotMachine
+PlaySlotMachine: @ 813F804
push {r4-r6,lr}
adds r6, r1, 0
lsls r0, 16
@@ -39,7 +39,7 @@ _0813F840:
bx r0
.align 2, 0
_0813F848: .4byte sub_813F898
- thumb_func_end sub_813F804
+ thumb_func_end PlaySlotMachine
thumb_func_start sub_813F84C
sub_813F84C: @ 813F84C
@@ -629,7 +629,7 @@ _0813FD00:
strh r0, [r4]
b _0813FD78
_0813FD08:
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3541,7 +3541,7 @@ _081411D0:
movs r0, 0
movs r1, 0xA
movs r2, 0xD0
- bl sub_814FE40
+ bl LoadUserWindowBorderGfx
movs r0, 0
movs r1, 0x1
movs r2, 0xF0
@@ -3603,7 +3603,7 @@ _081411D0:
movs r0, 0x1
movs r1, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r1, 0x83
@@ -4215,7 +4215,7 @@ sub_81417E4: @ 81417E4
movs r0, 0
movs r1, 0x1
movs r2, 0xF
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r1, 0x2
str r1, [sp]
movs r0, 0xFF
@@ -4228,7 +4228,7 @@ sub_81417E4: @ 81417E4
movs r0, 0
adds r2, r4, 0
movs r3, 0x1
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
add sp, 0x14
pop {r4}
pop {r0}
@@ -4424,7 +4424,7 @@ _08141984:
ldrsh r0, [r5, r2]
cmp r0, 0
bne _081419C4
- ldr r1, _081419BC @ =gUnknown_825E074
+ ldr r1, _081419BC @ =gSineTable
movs r2, 0x4
ldrsh r0, [r5, r2]
lsls r0, 1
@@ -4447,7 +4447,7 @@ _08141984:
movs r0, 0x8
b _081419C6
.align 2, 0
-_081419BC: .4byte gUnknown_825E074
+_081419BC: .4byte gSineTable
_081419C0: .4byte gUnknown_84664DC
_081419C4:
subs r0, r1, 0x1
@@ -4462,7 +4462,7 @@ _081419C6:
movs r1, 0x7F
ands r0, r1
strh r0, [r5, 0x8]
- ldr r1, _081419FC @ =gUnknown_825E074
+ ldr r1, _081419FC @ =gSineTable
movs r2, 0x8
ldrsh r0, [r5, r2]
lsls r0, 1
@@ -4478,7 +4478,7 @@ _081419C6:
bl BlendPalettes
b _08141A2C
.align 2, 0
-_081419FC: .4byte gUnknown_825E074
+_081419FC: .4byte gSineTable
_08141A00:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -4603,7 +4603,7 @@ sub_8141AD8: @ 8141AD8
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
diff --git a/asm/ss_anne.s b/asm/ss_anne.s
deleted file mode 100644
index 429645f3e..000000000
--- a/asm/ss_anne.s
+++ /dev/null
@@ -1,408 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815D334
-sub_815D334: @ 815D334
- push {lr}
- movs r0, 0xF9
- bl PlaySE
- ldr r0, _0815D35C @ =sub_815D364
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0815D360 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x32
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0815D35C: .4byte sub_815D364
-_0815D360: .4byte gTasks
- thumb_func_end sub_815D334
-
- thumb_func_start sub_815D364
-sub_815D364: @ 815D364
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r5, _0815D39C @ =gTasks+0x8
- adds r1, r4, r5
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0815D394
- ldr r0, _0815D3A0 @ =gUnknown_8479C58
- bl LoadSpriteSheets
- bl sub_815D498
- adds r0, r5, 0
- subs r0, 0x8
- adds r0, r4, r0
- ldr r1, _0815D3A4 @ =sub_815D3A8
- str r1, [r0]
-_0815D394:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815D39C: .4byte gTasks+0x8
-_0815D3A0: .4byte gUnknown_8479C58
-_0815D3A4: .4byte sub_815D3A8
- thumb_func_end sub_815D364
-
- thumb_func_start sub_815D3A8
-sub_815D3A8: @ 815D3A8
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0815D424 @ =gTasks+0x8
- adds r5, r6, r7
- ldrh r1, [r5, 0x2]
- adds r1, 0x1
- strh r1, [r5, 0x2]
- ldrh r0, [r5, 0x4]
- adds r0, 0x1
- strh r0, [r5, 0x4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x46
- bne _0815D3D6
- movs r0, 0
- strh r0, [r5, 0x2]
- bl sub_815D5A4
-_0815D3D6:
- ldr r0, _0815D428 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x1
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815D42C @ =gMapObjects
- adds r0, r1
- ldr r2, _0815D430 @ =gSprites
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x78
- negs r1, r1
- cmp r0, r1
- bge _0815D438
- movs r0, 0xF9
- bl PlaySE
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0815D434 @ =sub_815D454
- str r1, [r0]
- b _0815D44A
- .align 2, 0
-_0815D424: .4byte gTasks+0x8
-_0815D428: .4byte gSaveBlock1Ptr
-_0815D42C: .4byte gMapObjects
-_0815D430: .4byte gSprites
-_0815D434: .4byte sub_815D454
-_0815D438:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r1, 0x5
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r4, 0x24]
-_0815D44A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815D3A8
-
- thumb_func_start sub_815D454
-sub_815D454: @ 815D454
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- ldr r0, _0815D490 @ =gTasks+0x8
- adds r1, r0
- ldrh r0, [r1, 0x6]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- bne _0815D48A
- movs r0, 0xFA
- lsls r0, 4
- bl FreeSpriteTilesByTag
- ldr r0, _0815D494 @ =0x00000fa1
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0815D48A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815D490: .4byte gTasks+0x8
-_0815D494: .4byte 0x00000fa1
- thumb_func_end sub_815D454
-
- thumb_func_start sub_815D498
-sub_815D498: @ 815D498
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0815D508 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x1
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815D50C @ =gMapObjects
- adds r0, r1
- ldr r4, _0815D510 @ =gSprites
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- adds r1, 0x50
- ldr r0, _0815D514 @ =gUnknown_8479C88
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x6D
- movs r3, 0xFF
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- movs r2, 0xF
- ands r0, r2
- movs r2, 0xA0
- orrs r0, r2
- strb r0, [r1, 0x5]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815D508: .4byte gSaveBlock1Ptr
-_0815D50C: .4byte gMapObjects
-_0815D510: .4byte gSprites
-_0815D514: .4byte gUnknown_8479C88
- thumb_func_end sub_815D498
-
- thumb_func_start sub_815D518
-sub_815D518: @ 815D518
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0815D598 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x1
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815D59C @ =gMapObjects
- adds r0, r1
- ldr r2, _0815D5A0 @ =gSprites
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- adds r1, 0x50
- strh r1, [r4, 0x20]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x6
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bgt _0815D56A
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_0815D56A:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x12
- negs r1, r1
- cmp r0, r1
- bge _0815D58E
- adds r0, r4, 0
- bl DestroySprite
-_0815D58E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815D598: .4byte gSaveBlock1Ptr
-_0815D59C: .4byte gMapObjects
-_0815D5A0: .4byte gSprites
- thumb_func_end sub_815D518
-
- thumb_func_start sub_815D5A4
-sub_815D5A4: @ 815D5A4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0815D614 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x1
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815D618 @ =gMapObjects
- adds r0, r1
- ldr r4, _0815D61C @ =gSprites
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- adds r0, 0x31
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- blt _0815D60C
- ldr r0, _0815D620 @ =gUnknown_8479CC0
- movs r2, 0x4E
- movs r3, 0x8
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0815D60C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x5]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0xA0
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0815D60C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815D614: .4byte gSaveBlock1Ptr
-_0815D618: .4byte gMapObjects
-_0815D61C: .4byte gSprites
-_0815D620: .4byte gUnknown_8479CC0
- thumb_func_end sub_815D5A4
-
- thumb_func_start sub_815D624
-sub_815D624: @ 815D624
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _0815D638
- adds r0, 0x3
-_0815D638:
- asrs r0, 2
- strh r0, [r2, 0x24]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815D650
- adds r0, r2, 0
- bl DestroySprite
-_0815D650:
- pop {r0}
- bx r0
- thumb_func_end sub_815D624
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 1d81d0392..9dc9fbab6 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -11,7 +11,7 @@ sub_806ED54: @ 806ED54
ldr r0, _0806ED6C @ =gUnknown_20370F5
movs r1, 0
strb r1, [r0]
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0x1
bne _0806ED70
bl sub_806EE34
@@ -158,7 +158,7 @@ sub_806EE7C: @ 806EE7C
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r0, _0806EEFC @ =gStringVar1
ldr r1, _0806EF00 @ =gUnknown_2039996
ldrh r1, [r1]
@@ -220,7 +220,7 @@ sub_806EF18: @ 806EF18
ldr r4, _0806EF40 @ =gUnknown_2037101
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldrb r0, [r4]
movs r1, 0x2
bl CopyWindowToVram
@@ -390,7 +390,7 @@ _0806F06C:
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r1, _0806F08C @ =gUnknown_20370FF
b _0806F0B8
.align 2, 0
@@ -438,9 +438,9 @@ _0806F0C4:
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F118
@@ -568,13 +568,13 @@ sub_806F1D4: @ 806F1D4
movs r0, 0
strb r0, [r1]
strb r0, [r1, 0x1]
- ldr r1, _0806F1E8 @ =gUnknown_3005024
+ ldr r1, _0806F1E8 @ =gFieldCallback2
ldr r0, _0806F1EC @ =sub_806F1B8
str r0, [r1]
bx lr
.align 2, 0
_0806F1E4: .4byte gUnknown_20370FF
-_0806F1E8: .4byte gUnknown_3005024
+_0806F1E8: .4byte gFieldCallback2
_0806F1EC: .4byte sub_806F1B8
thumb_func_end sub_806F1D4
@@ -634,7 +634,7 @@ _0806F254: .4byte gUnknown_20370F0
thumb_func_start ShowStartMenu
ShowStartMenu: @ 806F258
push {lr}
- bl sub_805642C
+ bl is_c1_link_related_active
cmp r0, 0
bne _0806F26E
bl player_bitmagic
@@ -666,7 +666,7 @@ sub_806F280: @ 806F280
bl MoveMenuCursor
ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F2D2
@@ -701,7 +701,7 @@ _0806F2D2:
bl MoveMenuCursor
ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F320
@@ -854,9 +854,9 @@ _0806F424: .4byte gPaletteFade
_0806F428:
movs r0, 0x29
bl IncrementGameStat
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
bl sub_806EF18
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0806F448 @ =sub_810275C
bl SetMainCallback2
movs r0, 0x1
@@ -881,9 +881,9 @@ sub_806F44C: @ 806F44C
.align 2, 0
_0806F460: .4byte gPaletteFade
_0806F464:
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
bl sub_806EF18
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu
bl SetMainCallback2
movs r0, 0x1
@@ -908,17 +908,17 @@ sub_806F480: @ 806F480
.align 2, 0
_0806F494: .4byte gPaletteFade
_0806F498:
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
bl sub_806EF18
- bl sub_80563F0
- ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu
+ bl CleanupOverworldWindowsAndTilemaps
+ ldr r0, _0806F4B0 @ =ReturnToBagFromKeyItem
bl SetMainCallback2
movs r0, 0x1
_0806F4AC:
pop {r1}
bx r1
.align 2, 0
-_0806F4B0: .4byte UseFameCheckerFromMenu
+_0806F4B0: .4byte ReturnToBagFromKeyItem
thumb_func_end sub_806F480
thumb_func_start sub_806F4B4
@@ -935,9 +935,9 @@ sub_806F4B4: @ 806F4B4
.align 2, 0
_0806F4C8: .4byte gPaletteFade
_0806F4CC:
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
bl sub_806EF18
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0806F4E4 @ =sub_80568A8
bl sub_808B698
movs r0, 0x1
@@ -974,9 +974,9 @@ sub_806F4FC: @ 806F4FC
.align 2, 0
_0806F510: .4byte gPaletteFade
_0806F514:
- bl play_some_sound
+ bl PlayRainStoppingSoundEffect
bl sub_806EF18
- bl sub_80563F0
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0806F534 @ =sub_8088388
bl SetMainCallback2
ldr r1, _0806F538 @ =gMain
@@ -1029,8 +1029,8 @@ sub_806F56C: @ 806F56C
.align 2, 0
_0806F580: .4byte gPaletteFade
_0806F584:
- bl play_some_sound
- bl sub_80563F0
+ bl PlayRainStoppingSoundEffect
+ bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0806F59C @ =gUnknown_300502C
ldrb r0, [r0]
ldr r1, _0806F5A0 @ =sub_80568A8
@@ -1049,7 +1049,7 @@ sub_806F5A4: @ 806F5A4
push {lr}
bl sub_812B234
movs r0, 0xC
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_806F624
ldr r1, _0806F5C0 @ =gUnknown_20370F0
ldr r0, _0806F5C4 @ =sub_806F5C8
@@ -1080,7 +1080,7 @@ sub_806F5C8: @ 806F5C8
_0806F5E4:
movs r0, 0
movs r1, 0
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
bl sub_806F14C
bl sub_812B248
ldr r1, _0806F5FC @ =gUnknown_20370F0
@@ -1093,7 +1093,7 @@ _0806F600: .4byte sub_806F280
_0806F604:
movs r0, 0
movs r1, 0x1
- bl sub_810F260
+ bl ClearMenuWindow_BorderThickness2
bl sub_80696C0
bl ScriptContext2_Disable
bl sub_812B248
@@ -1109,7 +1109,7 @@ _0806F61E:
thumb_func_start sub_806F624
sub_806F624: @ 806F624
push {lr}
- bl sub_80590D8
+ bl save_serialize_map
ldr r1, _0806F63C @ =gUnknown_3000FA4
ldr r0, _0806F640 @ =sub_806F7A8
str r0, [r1]
@@ -1156,7 +1156,7 @@ sub_806F67C: @ 806F67C
push {lr}
bl sub_812B234
movs r0, 0xC
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_806F624
ldr r0, _0806F698 @ =task50_save_game
movs r1, 0x50
@@ -1239,7 +1239,7 @@ sub_806F71C: @ 806F71C
push {lr}
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
pop {r0}
bx r0
thumb_func_end sub_806F71C
@@ -1328,7 +1328,7 @@ sub_806F7A8: @ 806F7A8
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl remove_start_menu_window_maybe
movs r0, 0
bl sub_8112EDC
@@ -1362,7 +1362,7 @@ _0806F7F4: .4byte sub_806F7F8
thumb_func_start sub_806F7F8
sub_806F7F8: @ 806F7F8
push {lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -1481,7 +1481,7 @@ _0806F8D8: .4byte sub_806F8DC
thumb_func_start sub_806F8DC
sub_806F8DC: @ 806F8DC
push {lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -1713,7 +1713,7 @@ _0806FA88:
bl SetGpuReg
movs r0, 0
bl SetVBlankCallback
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r2, 0xA0
lsls r2, 19
mov r1, sp
@@ -1767,7 +1767,7 @@ _0806FB00:
bl ResetSpriteData
bl ResetTasks
bl ResetPaletteFade
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
b _0806FB64
_0806FB12:
movs r0, 0
@@ -1781,7 +1781,7 @@ _0806FB12:
movs r0, 0
movs r1, 0x8
movs r2, 0xF0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
b _0806FB64
.align 2, 0
_0806FB34: .4byte gUnknown_83A73B8
@@ -1908,11 +1908,11 @@ _0806FC14:
movs r0, 0
movs r1, 0x2
movs r3, 0xFF
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x8
movs r2, 0xF
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl PutWindowTilemap
movs r0, 0
@@ -2014,7 +2014,7 @@ sub_806FCF4: @ 806FCF4
ldr r4, _0806FE5C @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldrb r0, [r5]
movs r1, 0
adds r2, r4, 0
@@ -2043,7 +2043,7 @@ sub_806FCF4: @ 806FCF4
str r4, [sp, 0x8]
movs r1, 0x2
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x2
adds r1, r4, 0
adds r2, r6, 0
@@ -2058,7 +2058,7 @@ sub_806FCF4: @ 806FCF4
movs r1, 0
movs r2, 0x2
movs r3, 0xE
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
adds r1, r4, 0
movs r2, 0x2
@@ -2077,7 +2077,7 @@ sub_806FCF4: @ 806FCF4
movs r1, 0
movs r2, 0x2
movs r3, 0x1C
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x4
adds r1, r4, 0
movs r2, 0x2
@@ -2091,7 +2091,7 @@ sub_806FCF4: @ 806FCF4
movs r1, 0
movs r2, 0x3C
movs r3, 0x1C
- bl box_print
+ bl AddTextPrinterParameterized3
movs r7, 0x2A
ldr r0, _0806FE78 @ =0x00000829
bl FlagGet
@@ -2108,7 +2108,7 @@ sub_806FCF4: @ 806FCF4
movs r1, 0
movs r2, 0x2
movs r3, 0x2A
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2
@@ -2121,7 +2121,7 @@ sub_806FCF4: @ 806FCF4
movs r1, 0
movs r2, 0x3C
movs r3, 0x2A
- bl box_print
+ bl AddTextPrinterParameterized3
movs r7, 0x38
_0806FE0A:
ldrb r0, [r5]
@@ -2133,7 +2133,7 @@ _0806FE0A:
movs r1, 0
movs r2, 0x2
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x2
adds r1, r4, 0
movs r2, 0x2
@@ -2146,7 +2146,7 @@ _0806FE0A:
movs r1, 0
movs r2, 0x3C
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldrb r0, [r5]
movs r1, 0x2
bl CopyWindowToVram
@@ -2178,7 +2178,7 @@ sub_806FE84: @ 806FE84
ldr r4, _0806FE9C @ =gUnknown_2037104
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -2197,7 +2197,7 @@ sub_806FEA0: @ 806FEA0
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl remove_start_menu_window_maybe
bl sub_80696C0
bl ScriptContext2_Disable
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
deleted file mode 100644
index bdd06dfff..000000000
--- a/asm/teachy_tv.s
+++ /dev/null
@@ -1,2912 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815AB94
-sub_815AB94: @ 815AB94
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_815AB94
-
- thumb_func_start sub_815ABB0
-sub_815ABB0: @ 815ABB0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_815ABB0
-
- thumb_func_start sub_815ABC4
-sub_815ABC4: @ 815ABC4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r3, _0815ABF4 @ =gUnknown_203F444
- movs r4, 0
- strb r2, [r3, 0x4]
- str r1, [r3]
- cmp r2, 0
- bne _0815ABE0
- movs r0, 0
- strh r4, [r3, 0x6]
- strh r4, [r3, 0x8]
- strb r0, [r3, 0x5]
-_0815ABE0:
- cmp r2, 0x1
- bne _0815ABE6
- strb r4, [r3, 0x4]
-_0815ABE6:
- ldr r0, _0815ABF8 @ =sub_815AC2C
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815ABF4: .4byte gUnknown_203F444
-_0815ABF8: .4byte sub_815AC2C
- thumb_func_end sub_815ABC4
-
- thumb_func_start sub_815ABFC
-sub_815ABFC: @ 815ABFC
- push {lr}
- ldr r1, _0815AC10 @ =gUnknown_203F444
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- bne _0815AC14
- ldr r1, [r1]
- movs r0, 0x1
- bl sub_815ABC4
- b _0815AC1C
- .align 2, 0
-_0815AC10: .4byte gUnknown_203F444
-_0815AC14:
- ldr r1, [r1]
- movs r0, 0x2
- bl sub_815ABC4
-_0815AC1C:
- pop {r0}
- bx r0
- thumb_func_end sub_815ABFC
-
- thumb_func_start sub_815AC20
-sub_815AC20: @ 815AC20
- ldr r1, _0815AC28 @ =gUnknown_203F444
- movs r0, 0x1
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_0815AC28: .4byte gUnknown_203F444
- thumb_func_end sub_815AC20
-
- thumb_func_start sub_815AC2C
-sub_815AC2C: @ 815AC2C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0815AC44 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r6, r0, r1
- ldrb r5, [r6]
- cmp r5, 0
- beq _0815AC48
- cmp r5, 0x1
- beq _0815AC9C
- b _0815AD6E
- .align 2, 0
-_0815AC44: .4byte gMain
-_0815AC48:
- ldr r4, _0815AC90 @ =gUnknown_203F450
- ldr r0, _0815AC94 @ =0x00004008
- bl AllocZeroed
- str r0, [r4]
- str r5, [r0]
- ldr r1, _0815AC98 @ =0x00004006
- adds r0, r1
- strb r5, [r0]
- ldr r0, [r4]
- adds r1, 0x1
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- bl sub_80BF768
- bl clear_scheduled_bg_copies_to_vram
- bl remove_some_task
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl sub_815AD88
- bl sub_815AE38
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _0815AD6E
- .align 2, 0
-_0815AC90: .4byte gUnknown_203F450
-_0815AC94: .4byte 0x00004008
-_0815AC98: .4byte 0x00004006
-_0815AC9C:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0815AD6E
- bl sub_815AEB8
- bl sub_815AFEC
- ldr r0, _0815ACE0 @ =gUnknown_203F444
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2
- bne _0815ACEC
- ldr r0, _0815ACE4 @ =sub_815BA54
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_815B014
- ldr r2, _0815ACE8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xA]
- adds r0, r5, 0
- bl sub_815B118
- b _0815AD26
- .align 2, 0
-_0815ACE0: .4byte gUnknown_203F444
-_0815ACE4: .4byte sub_815BA54
-_0815ACE8: .4byte gTasks
-_0815ACEC:
- ldr r0, _0815AD78 @ =sub_815B2C0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_815AEE8
- ldr r1, _0815AD7C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- bl sub_815B014
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- bl sub_815AF5C
- movs r0, 0xAD
- lsls r0, 1
- bl PlayNewMapMusic
- bl sub_815B094
-_0815AD26:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x9
- bl sub_812B1E0
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0815AD80 @ =sub_815ABB0
- bl SetVBlankCallback
- ldr r0, _0815AD84 @ =sub_815AB94
- bl SetMainCallback2
-_0815AD6E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815AD78: .4byte sub_815B2C0
-_0815AD7C: .4byte gTasks
-_0815AD80: .4byte sub_815ABB0
-_0815AD84: .4byte sub_815AB94
- thumb_func_end sub_815AC2C
-
- thumb_func_start sub_815AD88
-sub_815AD88: @ 815AD88
- push {r4,lr}
- bl sub_80BF7C8
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0815AE20 @ =gUnknown_84792E0
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r4, _0815AE24 @ =gUnknown_203F450
- ldr r1, [r4]
- adds r1, 0x4
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _0815AE28 @ =0x00001004
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _0815AE2C @ =0x00002004
- adds r1, r0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- movs r1, 0xC1
- lsls r1, 6
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x3
- movs r2, 0x2
- bl ChangeBgX
- movs r1, 0xA0
- lsls r1, 6
- movs r0, 0x3
- movs r2, 0x1
- bl ChangeBgY
- ldr r0, [r4]
- ldr r1, _0815AE30 @ =0x00004004
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _0815AE34 @ =0x00004005
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815AE20: .4byte gUnknown_84792E0
-_0815AE24: .4byte gUnknown_203F450
-_0815AE28: .4byte 0x00001004
-_0815AE2C: .4byte 0x00002004
-_0815AE30: .4byte 0x00004004
-_0815AE34: .4byte 0x00004005
- thumb_func_end sub_815AD88
-
- thumb_func_start sub_815AE38
-sub_815AE38: @ 815AE38
- push {r4,lr}
- sub sp, 0x8
- movs r4, 0
- add r0, sp, 0x4
- strh r4, [r0]
- bl reset_temp_tile_data_buffers
- ldr r1, _0815AE98 @ =gUnknown_8E86240
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r0, _0815AE9C @ =gUnknown_8E86BE8
- ldr r4, _0815AEA0 @ =gUnknown_203F450
- ldr r1, [r4]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r0, _0815AEA4 @ =gUnknown_8E86D6C
- ldr r1, [r4]
- ldr r2, _0815AEA8 @ =0x00003004
- adds r1, r2
- bl LZDecompressWram
- ldr r0, _0815AEAC @ =gUnknown_8E86F98
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- add r0, sp, 0x4
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0815AEB0 @ =gUnknown_83A5348
- bl LoadSpritePalette
- ldr r0, [r4]
- ldr r1, _0815AEB4 @ =0x00002004
- adds r0, r1
- bl sub_815BD80
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815AE98: .4byte gUnknown_8E86240
-_0815AE9C: .4byte gUnknown_8E86BE8
-_0815AEA0: .4byte gUnknown_203F450
-_0815AEA4: .4byte gUnknown_8E86D6C
-_0815AEA8: .4byte 0x00003004
-_0815AEAC: .4byte gUnknown_8E86F98
-_0815AEB0: .4byte gUnknown_83A5348
-_0815AEB4: .4byte 0x00002004
- thumb_func_end sub_815AE38
-
- thumb_func_start sub_815AEB8
-sub_815AEB8: @ 815AEB8
- push {lr}
- ldr r0, _0815AEE4 @ =gUnknown_84792F0
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0xCC
- bl FillWindowPixelBuffer
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .align 2, 0
-_0815AEE4: .4byte gUnknown_84792F0
- thumb_func_end sub_815AEB8
-
- thumb_func_start sub_815AEE8
-sub_815AEE8: @ 815AEE8
- push {r4,r5,lr}
- ldr r4, _0815AF48 @ =gUnknown_3005E70
- adds r1, r4, 0
- ldr r0, _0815AF4C @ =gUnknown_8479368
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- movs r0, 0x1
- strb r0, [r4, 0x10]
- ldr r0, _0815AF50 @ =sub_815AFD8
- str r0, [r4, 0x4]
- movs r0, 0xB6
- lsls r0, 1
- movs r1, 0x1
- bl sub_8099F40
- lsls r0, 24
- cmp r0, 0
- bne _0815AF30
- ldr r0, _0815AF54 @ =gUnknown_8479340
- str r0, [r4]
- movs r0, 0x5
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- ldrb r2, [r4, 0x14]
- lsls r1, r2, 28
- lsrs r1, 28
- adds r1, 0x8
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x14]
-_0815AF30:
- ldr r0, _0815AF58 @ =gUnknown_203F444
- ldrh r1, [r0, 0x6]
- ldrh r2, [r0, 0x8]
- adds r0, r4, 0
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0815AF48: .4byte gUnknown_3005E70
-_0815AF4C: .4byte gUnknown_8479368
-_0815AF50: .4byte sub_815AFD8
-_0815AF54: .4byte gUnknown_8479340
-_0815AF58: .4byte gUnknown_203F444
- thumb_func_end sub_815AEE8
-
- thumb_func_start sub_815AF5C
-sub_815AF5C: @ 815AF5C
- push {lr}
- movs r0, 0xB6
- lsls r0, 1
- movs r1, 0x1
- bl sub_8099F40
- lsls r0, 24
- cmp r0, 0
- bne _0815AF84
- ldr r0, _0815AF7C @ =gUnknown_203F450
- ldr r0, [r0]
- ldr r1, _0815AF80 @ =0x00004007
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- b _0815AF96
- .align 2, 0
-_0815AF7C: .4byte gUnknown_203F450
-_0815AF80: .4byte 0x00004007
-_0815AF84:
- ldr r0, _0815AF9C @ =gUnknown_8479380
- ldr r1, _0815AFA0 @ =gUnknown_203F44A
- bl AddScrollIndicatorArrowPair
- ldr r1, _0815AFA4 @ =gUnknown_203F450
- ldr r1, [r1]
- ldr r2, _0815AFA8 @ =0x00004007
- adds r1, r2
- strb r0, [r1]
-_0815AF96:
- pop {r0}
- bx r0
- .align 2, 0
-_0815AF9C: .4byte gUnknown_8479380
-_0815AFA0: .4byte gUnknown_203F44A
-_0815AFA4: .4byte gUnknown_203F450
-_0815AFA8: .4byte 0x00004007
- thumb_func_end sub_815AF5C
-
- thumb_func_start sub_815AFAC
-sub_815AFAC: @ 815AFAC
- push {r4,lr}
- ldr r4, _0815AFD0 @ =gUnknown_203F450
- ldr r0, [r4]
- ldr r2, _0815AFD4 @ =0x00004007
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0815AFCA
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, _0815AFD4 @ =0x00004007
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_0815AFCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815AFD0: .4byte gUnknown_203F450
-_0815AFD4: .4byte 0x00004007
- thumb_func_end sub_815AFAC
-
- thumb_func_start sub_815AFD8
-sub_815AFD8: @ 815AFD8
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _0815AFE8
- movs r0, 0x5
- bl PlaySE
-_0815AFE8:
- pop {r0}
- bx r0
- thumb_func_end sub_815AFD8
-
- thumb_func_start sub_815AFEC
-sub_815AFEC: @ 815AFEC
- push {lr}
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x1F
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0xCC
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0x5
- bl SetGpuReg
- pop {r0}
- bx r0
- thumb_func_end sub_815AFEC
-
- thumb_func_start sub_815B014
-sub_815B014: @ 815B014
- push {lr}
- sub sp, 0x4
- ldr r1, _0815B054 @ =SpriteCallbackDummy
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0x5A
- movs r2, 0
- movs r3, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0815B058 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- movs r3, 0x8
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2]
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_0815B054: .4byte SpriteCallbackDummy
-_0815B058: .4byte gSprites
- thumb_func_end sub_815B014
-
- thumb_func_start sub_815B05C
-sub_815B05C: @ 815B05C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r5, _0815B090 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- strh r1, [r0, 0x24]
- strh r2, [r0, 0x26]
- adds r4, r0, 0
- adds r4, 0x3E
- ldrb r2, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r4]
- adds r1, r3, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B090: .4byte gSprites
- thumb_func_end sub_815B05C
-
- thumb_func_start sub_815B094
-sub_815B094: @ 815B094
- push {lr}
- ldr r1, _0815B0AC @ =0x00000c64
- movs r0, 0x44
- bl SetGpuReg
- ldr r1, _0815B0B0 @ =0x00001cd4
- movs r0, 0x40
- bl SetGpuReg
- pop {r0}
- bx r0
- .align 2, 0
-_0815B0AC: .4byte 0x00000c64
-_0815B0B0: .4byte 0x00001cd4
- thumb_func_end sub_815B094
-
- thumb_func_start sub_815B0B4
-sub_815B0B4: @ 815B0B4
- push {lr}
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- thumb_func_end sub_815B0B4
-
- thumb_func_start sub_815B0CC
-sub_815B0CC: @ 815B0CC
- push {r4-r7,lr}
- movs r0, 0x2
- bl GetBgTilemapBuffer
- adds r7, r0, 0
- movs r0, 0x1
-_0815B0D8:
- movs r4, 0x2
- lsls r5, r0, 5
- adds r6, r0, 0x1
-_0815B0DE:
- bl Random
- adds r2, r5, r4
- lsls r2, 1
- adds r2, r7
- movs r1, 0x3
- ands r1, r0
- lsls r1, 10
- ldr r3, _0815B114 @ =0x0000301f
- adds r0, r3, 0
- adds r1, r0
- strh r1, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1B
- bls _0815B0DE
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, 0xC
- bls _0815B0D8
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B114: .4byte 0x0000301f
- thumb_func_end sub_815B0CC
-
- thumb_func_start sub_815B118
-sub_815B118: @ 815B118
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0815B190 @ =gTasks+0x8
- adds r5, r0, r1
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815B194 @ =gSprites
- adds r7, r0, r1
- movs r0, 0x1
- bl ClearWindowTilemap
- bl sub_815B0B4
- ldr r0, _0815B198 @ =gUnknown_203F444
- ldrb r0, [r0, 0x5]
- cmp r0, 0
- blt _0815B1B8
- cmp r0, 0x3
- bgt _0815B1A8
- ldrb r0, [r5, 0x2]
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl sub_815B05C
- movs r4, 0xC0
- lsls r4, 6
- movs r0, 0x3
- adds r1, r4, 0
- movs r2, 0x1
- bl ChangeBgX
- movs r0, 0x3
- adds r1, r4, 0
- movs r2, 0x2
- bl ChangeBgY
- ldr r2, _0815B19C @ =gUnknown_203F450
- ldr r1, [r2]
- ldr r0, _0815B1A0 @ =0x00004004
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x3
- strb r0, [r1]
- ldr r1, [r2]
- ldr r0, _0815B1A4 @ =0x00004005
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x3
- strb r0, [r1]
- b _0815B1B8
- .align 2, 0
-_0815B190: .4byte gTasks+0x8
-_0815B194: .4byte gSprites
-_0815B198: .4byte gUnknown_203F444
-_0815B19C: .4byte gUnknown_203F450
-_0815B1A0: .4byte 0x00004004
-_0815B1A4: .4byte 0x00004005
-_0815B1A8:
- cmp r0, 0x5
- bgt _0815B1B8
- ldrb r0, [r5, 0x2]
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl sub_815B05C
-_0815B1B8:
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- movs r0, 0x24
- ldrsh r1, [r7, r0]
- movs r0, 0x26
- ldrsh r2, [r7, r0]
- movs r0, 0x1
- str r0, [sp]
- adds r0, r6, 0
- movs r3, 0
- bl sub_815BAA0
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815B118
-
- thumb_func_start sub_815B1DC
-sub_815B1DC: @ 815B1DC
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r2, _0815B21C @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_80F78A8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B21C: .4byte gTextFlags
- thumb_func_end sub_815B1DC
-
- thumb_func_start sub_815B220
-sub_815B220: @ 815B220
- push {r4,lr}
- ldr r4, _0815B238 @ =gUnknown_203F450
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- bl FreeAllWindowBuffers
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B238: .4byte gUnknown_203F450
- thumb_func_end sub_815B220
-
- thumb_func_start sub_815B23C
-sub_815B23C: @ 815B23C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0815B26C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0815B270 @ =sub_815B274
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B26C: .4byte gTasks
-_0815B270: .4byte sub_815B274
- thumb_func_end sub_815B23C
-
- thumb_func_start sub_815B274
-sub_815B274: @ 815B274
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0815B298 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0815B2B6
- ldr r0, _0815B29C @ =gUnknown_203F450
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _0815B2A0
- bl SetMainCallback2
- b _0815B2AC
- .align 2, 0
-_0815B298: .4byte gPaletteFade
-_0815B29C: .4byte gUnknown_203F450
-_0815B2A0:
- bl sub_8055DC4
- ldr r0, _0815B2BC @ =gUnknown_203F444
- ldr r0, [r0]
- bl SetMainCallback2
-_0815B2AC:
- bl sub_815B220
- adds r0, r4, 0
- bl DestroyTask
-_0815B2B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B2BC: .4byte gUnknown_203F444
- thumb_func_end sub_815B274
-
- thumb_func_start sub_815B2C0
-sub_815B2C0: @ 815B2C0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _0815B31C @ =gTasks+0x8
- adds r6, r0, r1
- bl sub_815B0CC
- ldr r0, _0815B320 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0815B37A
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r5, r0, 0
- ldrb r0, [r6]
- ldr r4, _0815B324 @ =gUnknown_203F44A
- adds r2, r4, 0x2
- adds r1, r4, 0
- bl get_coro_args_x18_x1A
- ldr r0, _0815B328 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0815B30A
- subs r0, r4, 0x6
- ldr r1, [r0]
- ldr r0, _0815B32C @ =UseFameCheckerFromMenu
- cmp r1, r0
- bne _0815B330
-_0815B30A:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _0815B330
- adds r0, 0x1
- cmp r5, r0
- bne _0815B33E
- b _0815B37A
- .align 2, 0
-_0815B31C: .4byte gTasks+0x8
-_0815B320: .4byte gPaletteFade
-_0815B324: .4byte gUnknown_203F44A
-_0815B328: .4byte gMain
-_0815B32C: .4byte UseFameCheckerFromMenu
-_0815B330:
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_815B23C
- b _0815B37A
-_0815B33E:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0815B380 @ =gUnknown_203F444
- movs r4, 0
- strb r5, [r2, 0x5]
- ldrb r0, [r6]
- adds r1, r2, 0x6
- adds r2, 0x8
- bl sub_810713C
- bl sub_815B0B4
- movs r0, 0x1
- bl ClearWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_815AFAC
- strh r4, [r6, 0x6]
- strh r4, [r6, 0x4]
- ldr r1, _0815B384 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0815B388 @ =sub_815B4EC
- str r1, [r0]
-_0815B37A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B380: .4byte gUnknown_203F444
-_0815B384: .4byte gTasks
-_0815B388: .4byte sub_815B4EC
- thumb_func_end sub_815B2C0
-
- thumb_func_start sub_815B38C
-sub_815B38C: @ 815B38C
- push {r4,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0815B3F8 @ =gTasks+0x8
- adds r4, r1, r0
- bl sub_815B0CC
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0815B3F0
- ldr r0, _0815B3FC @ =gUnknown_203F450
- ldr r1, [r0]
- ldr r0, _0815B400 @ =0x00003004
- adds r1, r0
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect_ChangePalette
- ldrb r0, [r4, 0x2]
- movs r1, 0x8
- movs r2, 0x38
- movs r3, 0x7
- bl sub_815B05C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- movs r0, 0x88
- lsls r0, 1
- bl PlayNewMapMusic
-_0815B3F0:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B3F8: .4byte gTasks+0x8
-_0815B3FC: .4byte gUnknown_203F450
-_0815B400: .4byte 0x00003004
- thumb_func_end sub_815B38C
-
- thumb_func_start sub_815B404
-sub_815B404: @ 815B404
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0815B450 @ =gTasks+0x8
- adds r4, r1, r0
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x86
- bne _0815B448
- movs r0, 0x1A
- str r0, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
-_0815B448:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B450: .4byte gTasks+0x8
- thumb_func_end sub_815B404
-
- thumb_func_start sub_815B454
-sub_815B454: @ 815B454
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0815B484 @ =gTasks+0x8
- adds r4, r1, r0
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815B488 @ =gSprites
- adds r1, r0, r1
- ldrh r2, [r4, 0x4]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0x23
- beq _0815B48C
- adds r0, r2, 0x1
- strh r0, [r4, 0x4]
- b _0815B4B8
- .align 2, 0
-_0815B484: .4byte gTasks+0x8
-_0815B488: .4byte gSprites
-_0815B48C:
- ldrh r2, [r1, 0x24]
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0x78
- bne _0815B4B4
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _0815B4B0 @ =gUnknown_841B83D
- bl sub_815B1DC
- movs r0, 0
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- b _0815B4B8
- .align 2, 0
-_0815B4B0: .4byte gUnknown_841B83D
-_0815B4B4:
- adds r0, r2, 0x1
- strh r0, [r1, 0x24]
-_0815B4B8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815B454
-
- thumb_func_start sub_815B4C0
-sub_815B4C0: @ 815B4C0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0815B4E8 @ =gTasks+0x8
- adds r4, r1, r0
- movs r0, 0
- bl sub_80BF518
- lsls r0, 16
- cmp r0, 0
- bne _0815B4E2
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
-_0815B4E2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B4E8: .4byte gTasks+0x8
- thumb_func_end sub_815B4C0
-
- thumb_func_start sub_815B4EC
-sub_815B4EC: @ 815B4EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r6, r0, 3
- ldr r7, _0815B548 @ =gTasks+0x8
- adds r5, r6, r7
- ldr r0, _0815B54C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0815B55C
- ldr r0, _0815B550 @ =gUnknown_203F450
- ldr r0, [r0]
- ldr r1, _0815B554 @ =0x00004006
- adds r0, r1
- movs r4, 0
- movs r1, 0x1
- strb r1, [r0]
- ldrb r0, [r5, 0x2]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_815B05C
- movs r0, 0
- movs r1, 0xCC
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- bl sub_815B908
- strh r4, [r5, 0x4]
- strh r4, [r5, 0x6]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0815B558 @ =sub_815B92C
- str r1, [r0]
- b _0815B578
- .align 2, 0
-_0815B548: .4byte gTasks+0x8
-_0815B54C: .4byte gMain
-_0815B550: .4byte gUnknown_203F450
-_0815B554: .4byte 0x00004006
-_0815B558: .4byte sub_815B92C
-_0815B55C:
- ldr r1, _0815B580 @ =gUnknown_8479548
- ldr r0, _0815B584 @ =gUnknown_203F444
- ldrb r0, [r0, 0x5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_0815B578:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B580: .4byte gUnknown_8479548
-_0815B584: .4byte gUnknown_203F444
- thumb_func_end sub_815B4EC
-
- thumb_func_start sub_815B588
-sub_815B588: @ 815B588
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0815B5B4 @ =gTasks+0x8
- adds r4, r0
- ldr r1, _0815B5B8 @ =gUnknown_8479560
- ldr r0, _0815B5BC @ =gUnknown_203F444
- ldrb r0, [r0, 0x5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl sub_815B1DC
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B5B4: .4byte gTasks+0x8
-_0815B5B8: .4byte gUnknown_8479560
-_0815B5BC: .4byte gUnknown_203F444
- thumb_func_end sub_815B588
-
- thumb_func_start sub_815B5C0
-sub_815B5C0: @ 815B5C0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0815B5EC @ =gTasks+0x8
- adds r4, r0
- ldr r1, _0815B5F0 @ =gUnknown_8479578
- ldr r0, _0815B5F4 @ =gUnknown_203F444
- ldrb r0, [r0, 0x5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl sub_815B1DC
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B5EC: .4byte gTasks+0x8
-_0815B5F0: .4byte gUnknown_8479578
-_0815B5F4: .4byte gUnknown_203F444
- thumb_func_end sub_815B5C0
-
- thumb_func_start sub_815B5F8
-sub_815B5F8: @ 815B5F8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0815B620 @ =gTasks+0x8
- adds r4, r1, r0
- movs r0, 0
- bl sub_80BF518
- lsls r0, 16
- cmp r0, 0
- bne _0815B61A
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
-_0815B61A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B620: .4byte gTasks+0x8
- thumb_func_end sub_815B5F8
-
- thumb_func_start sub_815B624
-sub_815B624: @ 815B624
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0815B65C @ =gTasks+0x8
- adds r4, r1, r0
- ldr r0, _0815B660 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0815B656
- movs r0, 0
- movs r1, 0xCC
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
-_0815B656:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B65C: .4byte gTasks+0x8
-_0815B660: .4byte gMain
- thumb_func_end sub_815B624
-
- thumb_func_start sub_815B664
-sub_815B664: @ 815B664
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0815B6A0 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815B6A4 @ =gSprites
- adds r0, r1
- movs r1, 0x5
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- movs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B6A0: .4byte gTasks+0x8
-_0815B6A4: .4byte gSprites
- thumb_func_end sub_815B664
-
- thumb_func_start sub_815B6A8
-sub_815B6A8: @ 815B6A8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0815B730 @ =gTasks+0x8
- adds r4, r0, r1
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815B734 @ =gSprites
- adds r6, r0, r1
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0x3
- movs r2, 0x2
- bl ChangeBgY
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0815B702
- ldr r0, _0815B738 @ =gUnknown_203F450
- ldr r1, [r0]
- ldr r2, _0815B73C @ =0x00004005
- adds r1, r2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- movs r0, 0x24
- ldrsh r1, [r6, r0]
- movs r0, 0x26
- ldrsh r2, [r6, r0]
- str r3, [sp]
- adds r0, r5, 0
- movs r3, 0
- bl sub_815BAA0
-_0815B702:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x30
- bne _0815B726
- movs r1, 0
- strh r1, [r4, 0x4]
- movs r2, 0x1
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- adds r0, r6, 0
- movs r1, 0x7
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
-_0815B726:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B730: .4byte gTasks+0x8
-_0815B734: .4byte gSprites
-_0815B738: .4byte gUnknown_203F450
-_0815B73C: .4byte 0x00004005
- thumb_func_end sub_815B6A8
-
- thumb_func_start sub_815B740
-sub_815B740: @ 815B740
- push {r4-r6,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, _0815B7D4 @ =gTasks+0x8
- adds r4, r0, r1
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815B7D8 @ =gSprites
- adds r6, r0, r1
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0x3
- movs r2, 0x1
- bl ChangeBgX
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- movs r2, 0xF
- ands r0, r2
- cmp r0, 0
- bne _0815B78A
- ldr r0, _0815B7DC @ =gUnknown_203F450
- ldr r1, [r0]
- ldr r3, _0815B7E0 @ =0x00004004
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0815B78A:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- adds r0, 0x8
- ands r0, r2
- cmp r0, 0
- bne _0815B7AC
- ldrh r1, [r6, 0x24]
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- movs r3, 0x26
- ldrsh r2, [r6, r3]
- str r0, [sp]
- adds r0, r5, 0
- movs r3, 0
- bl sub_815BAA0
-_0815B7AC:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x30
- bne _0815B7CA
- movs r0, 0
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- adds r0, r6, 0
- movs r1, 0x3
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
-_0815B7CA:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B7D4: .4byte gTasks+0x8
-_0815B7D8: .4byte gSprites
-_0815B7DC: .4byte gUnknown_203F450
-_0815B7E0: .4byte 0x00004004
- thumb_func_end sub_815B740
-
- thumb_func_start sub_815B7E4
-sub_815B7E4: @ 815B7E4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _0815B838 @ =gTasks+0x8
- adds r5, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0815B83C @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x6
- bl StartSpriteAnim
- ldrh r0, [r5, 0x6]
- adds r0, 0x1
- strh r0, [r5, 0x6]
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r0, 0x26
- ldrsh r2, [r4, r0]
- movs r0, 0
- str r0, [sp]
- adds r0, r6, 0
- movs r3, 0
- bl sub_815BAA0
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B838: .4byte gTasks+0x8
-_0815B83C: .4byte gSprites
- thumb_func_end sub_815B7E4
-
- thumb_func_start sub_815B840
-sub_815B840: @ 815B840
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _0815B890 @ =gTasks+0x8
- adds r5, r0, r1
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815B894 @ =gSprites
- adds r4, r0, r1
- ldrh r1, [r4, 0x24]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _0815B87E
- subs r1, 0x8
- lsls r1, 16
- asrs r1, 16
- movs r6, 0x26
- ldrsh r2, [r4, r6]
- str r0, [sp]
- adds r0, r3, 0
- movs r3, 0
- bl sub_815BAA0
-_0815B87E:
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _0815B898
- ldrh r0, [r5, 0x6]
- adds r0, 0x1
- strh r0, [r5, 0x6]
- b _0815B89C
- .align 2, 0
-_0815B890: .4byte gTasks+0x8
-_0815B894: .4byte gSprites
-_0815B898:
- subs r0, r1, 0x1
- strh r0, [r4, 0x24]
-_0815B89C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815B840
-
- thumb_func_start sub_815B8A4
-sub_815B8A4: @ 815B8A4
- push {r4,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0815B900 @ =gTasks+0x8
- adds r4, r1, r0
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815B8DC
- ldr r1, _0815B904 @ =gUnknown_8479590
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r2, 0x14
- movs r3, 0xA
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
-_0815B8DC:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _0815B8F8
- bl sub_815B908
- movs r0, 0
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
-_0815B8F8:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B900: .4byte gTasks+0x8
-_0815B904: .4byte gUnknown_8479590
- thumb_func_end sub_815B8A4
-
- thumb_func_start sub_815B908
-sub_815B908: @ 815B908
- push {lr}
- sub sp, 0x8
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x14
- movs r3, 0xA
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_815B908
-
- thumb_func_start sub_815B92C
-sub_815B92C: @ 815B92C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0815B9DC @ =gTasks+0x8
- adds r5, r6, r7
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815B94C
- movs r0, 0xAD
- lsls r0, 1
- bl PlayNewMapMusic
-_0815B94C:
- bl sub_815B0CC
- ldrh r0, [r5, 0x4]
- adds r0, 0x1
- strh r0, [r5, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0815B9D4
- movs r4, 0
- strh r4, [r5, 0x4]
- strh r4, [r5, 0x6]
- bl sub_815AEE8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0815B9E0 @ =sub_815B2C0
- str r1, [r0]
- movs r0, 0
- bl PutWindowTilemap
- bl sub_815AF5C
- bl sub_815B094
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x3
- movs r2, 0x2
- bl ChangeBgX
- movs r1, 0xA0
- lsls r1, 6
- movs r0, 0x3
- movs r2, 0x1
- bl ChangeBgY
- ldr r2, _0815B9E4 @ =gUnknown_203F450
- ldr r0, [r2]
- ldr r1, _0815B9E8 @ =0x00004004
- adds r0, r1
- strb r4, [r0]
- ldr r0, [r2]
- adds r1, 0x1
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r0, [r2]
- ldr r1, _0815B9EC @ =0x00004006
- adds r0, r1
- strb r4, [r0]
-_0815B9D4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815B9DC: .4byte gTasks+0x8
-_0815B9E0: .4byte sub_815B2C0
-_0815B9E4: .4byte gUnknown_203F450
-_0815B9E8: .4byte 0x00004004
-_0815B9EC: .4byte 0x00004006
- thumb_func_end sub_815B92C
-
- thumb_func_start sub_815B9F0
-sub_815B9F0: @ 815B9F0
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _0815BA0C @ =gUnknown_203F444
- ldrb r0, [r0, 0x5]
- cmp r0, 0
- blt _0815BA22
- cmp r0, 0x3
- bgt _0815BA10
- adds r0, r1, 0
- bl sub_815BC90
- b _0815BA22
- .align 2, 0
-_0815BA0C: .4byte gUnknown_203F444
-_0815BA10:
- cmp r0, 0x5
- bgt _0815BA22
- ldr r0, _0815BA28 @ =gUnknown_203F450
- ldr r1, [r0]
- ldr r0, _0815BA2C @ =sub_815BA30
- str r0, [r1]
- adds r0, r2, 0
- bl sub_815B23C
-_0815BA22:
- pop {r0}
- bx r0
- .align 2, 0
-_0815BA28: .4byte gUnknown_203F450
-_0815BA2C: .4byte sub_815BA30
- thumb_func_end sub_815B9F0
-
- thumb_func_start sub_815BA30
-sub_815BA30: @ 815BA30
- push {lr}
- ldr r0, _0815BA44 @ =gUnknown_203F444
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- bne _0815BA48
- movs r0, 0xA
- bl sub_810B108
- b _0815BA4E
- .align 2, 0
-_0815BA44: .4byte gUnknown_203F444
-_0815BA48:
- movs r0, 0x9
- bl sub_810B108
-_0815BA4E:
- pop {r0}
- bx r0
- thumb_func_end sub_815BA30
-
- thumb_func_start sub_815BA54
-sub_815BA54: @ 815BA54
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r2, r1, 3
- ldr r4, _0815BA8C @ =gTasks+0x8
- adds r3, r2, r4
- ldr r0, _0815BA90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0815BA86
- ldr r1, _0815BA94 @ =gUnknown_8479390
- ldr r0, _0815BA98 @ =gUnknown_203F444
- ldrb r0, [r0, 0x5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r3, 0x6]
- adds r0, r4, 0
- subs r0, 0x8
- adds r0, r2, r0
- ldr r1, _0815BA9C @ =sub_815B4EC
- str r1, [r0]
-_0815BA86:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815BA8C: .4byte gTasks+0x8
-_0815BA90: .4byte gPaletteFade
-_0815BA94: .4byte gUnknown_8479390
-_0815BA98: .4byte gUnknown_203F444
-_0815BA9C: .4byte sub_815B4EC
- thumb_func_end sub_815BA54
-
- thumb_func_start sub_815BAA0
-sub_815BAA0: @ 815BAA0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- ldr r0, _0815BB34 @ =gUnknown_203F450
- ldr r0, [r0]
- ldr r2, _0815BB38 @ =0x00004006
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0815BB5C
- lsls r0, r6, 16
- ldr r2, _0815BB3C @ =0xfff00000
- adds r0, r2
- asrs r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r1, r5, 0
- bl sub_815BC40
- lsls r0, 24
- cmp r0, 0
- beq _0815BB5C
- ldr r0, _0815BB40 @ =gUnknown_83A0010
- ldr r0, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- adds r3, r7, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0815BB44 @ =gSprites
- adds r4, r1, r0
- strh r6, [r4, 0x24]
- adds r0, r5, 0
- adds r0, 0x8
- strh r0, [r4, 0x26]
- ldr r0, _0815BB48 @ =sub_815BB6C
- str r0, [r4, 0x1C]
- mov r0, r9
- strh r0, [r4, 0x2E]
- mov r2, r8
- cmp r2, 0x1
- bne _0815BB4C
- adds r0, r4, 0
- movs r1, 0x4
- bl SeekSpriteAnim
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _0815BB5C
- .align 2, 0
-_0815BB34: .4byte gUnknown_203F450
-_0815BB38: .4byte 0x00004006
-_0815BB3C: .4byte 0xfff00000
-_0815BB40: .4byte gUnknown_83A0010
-_0815BB44: .4byte gSprites
-_0815BB48: .4byte sub_815BB6C
-_0815BB4C:
- ldr r1, _0815BB68 @ =gUnknown_84795B8
- adds r0, r4, 0
- bl SetSubspriteTables
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x40
- strb r0, [r1]
-_0815BB5C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815BB68: .4byte gUnknown_84795B8
- thumb_func_end sub_815BAA0
-
- thumb_func_start sub_815BB6C
-sub_815BB6C: @ 815BB6C
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0815BBA4 @ =gTasks+0x8
- adds r4, r0, r1
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815BBA8 @ =gSprites
- adds r5, r0, r1
- ldr r0, _0815BBAC @ =gUnknown_203F450
- ldr r0, [r0]
- ldr r1, _0815BBB0 @ =0x00004006
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0815BBB4
- adds r0, r3, 0
- bl DestroySprite
- b _0815BC3A
- .align 2, 0
-_0815BBA4: .4byte gTasks+0x8
-_0815BBA8: .4byte gSprites
-_0815BBAC: .4byte gUnknown_203F450
-_0815BBB0: .4byte 0x00004006
-_0815BBB4:
- adds r0, r3, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0815BBD2
- adds r2, r3, 0
- adds r2, 0x42
- ldrb r0, [r2]
- movs r1, 0x40
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r2]
- b _0815BBE0
-_0815BBD2:
- adds r2, r3, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0815BBE0:
- ldrh r0, [r4, 0x8]
- ldrh r2, [r3, 0x24]
- adds r0, r2
- strh r0, [r3, 0x24]
- ldrh r0, [r4, 0xA]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815BC3A
- adds r1, r3, 0
- adds r1, 0x43
- movs r0, 0
- strb r0, [r1]
- ldrh r1, [r3, 0x24]
- ldrh r0, [r5, 0x24]
- subs r1, r0
- ldrh r0, [r3, 0x26]
- ldrh r2, [r5, 0x26]
- subs r0, r2
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- movs r2, 0xF0
- lsls r2, 12
- adds r1, r2
- lsrs r1, 16
- cmp r1, 0x1E
- bhi _0815BC34
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- ble _0815BC34
- cmp r1, 0x17
- ble _0815BC3A
-_0815BC34:
- adds r0, r3, 0
- bl DestroySprite
-_0815BC3A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815BB6C
-
- thumb_func_start sub_815BC40
-sub_815BC40: @ 815BC40
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r4, r0, 16
- cmp r4, 0
- blt _0815BC52
- lsls r1, 16
- cmp r1, 0
- bge _0815BC56
-_0815BC52:
- movs r0, 0
- b _0815BC78
-_0815BC56:
- ldr r3, _0815BC80 @ =gUnknown_84795C8
- ldr r0, _0815BC84 @ =gUnknown_203F450
- ldr r2, [r0]
- ldr r5, _0815BC88 @ =0x00004005
- adds r0, r2, r5
- asrs r1, 20
- ldrb r0, [r0]
- adds r1, r0
- lsls r1, 4
- ldr r0, _0815BC8C @ =0x00004004
- adds r2, r0
- asrs r0, r4, 20
- ldrb r2, [r2]
- adds r0, r2
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
-_0815BC78:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0815BC80: .4byte gUnknown_84795C8
-_0815BC84: .4byte gUnknown_203F450
-_0815BC88: .4byte 0x00004005
-_0815BC8C: .4byte 0x00004004
- thumb_func_end sub_815BC40
-
- thumb_func_start sub_815BC90
-sub_815BC90: @ 815BC90
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0815BCCC @ =gTasks+0x8
- adds r5, r0, r1
- bl sub_815B220
- ldr r1, _0815BCD0 @ =gSpecialVar_0x8004
- ldr r4, _0815BCD4 @ =gUnknown_203F444
- ldrb r0, [r4, 0x5]
- strh r0, [r1]
- ldr r1, _0815BCD8 @ =gMain
- ldr r0, _0815BCDC @ =sub_815BD58
- str r0, [r1, 0x8]
- bl SavePlayerParty
- bl sub_8159F40
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- ldrb r0, [r4, 0x5]
- cmp r0, 0
- bne _0815BCE0
- movs r0, 0x9
- b _0815BCE2
- .align 2, 0
-_0815BCCC: .4byte gTasks+0x8
-_0815BCD0: .4byte gSpecialVar_0x8004
-_0815BCD4: .4byte gUnknown_203F444
-_0815BCD8: .4byte gMain
-_0815BCDC: .4byte sub_815BD58
-_0815BCE0:
- movs r0, 0x8
-_0815BCE2:
- strh r0, [r5, 0xC]
- movs r0, 0
- strh r0, [r5, 0xE]
- ldr r1, _0815BCFC @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0815BD00 @ =sub_815BD04
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815BCFC: .4byte gTasks
-_0815BD00: .4byte sub_815BD04
- thumb_func_end sub_815BC90
-
- thumb_func_start sub_815BD04
-sub_815BD04: @ 815BD04
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0815BD24 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815BD28
- cmp r0, 0x1
- beq _0815BD36
- b _0815BD4C
- .align 2, 0
-_0815BD24: .4byte gTasks+0x8
-_0815BD28:
- ldrb r0, [r4, 0xC]
- bl sub_80D08B8
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- b _0815BD4C
-_0815BD36:
- bl sub_80D08F8
- lsls r0, 24
- cmp r0, 0
- beq _0815BD4C
- ldr r0, _0815BD54 @ =sub_800FD9C
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0815BD4C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815BD54: .4byte sub_800FD9C
- thumb_func_end sub_815BD04
-
- thumb_func_start sub_815BD58
-sub_815BD58: @ 815BD58
- push {lr}
- bl LoadPlayerParty
- ldr r0, _0815BD6C @ =gUnknown_2023E8A
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0815BD70
- bl sub_815AC20
- b _0815BD78
- .align 2, 0
-_0815BD6C: .4byte gUnknown_2023E8A
-_0815BD70:
- movs r0, 0x88
- lsls r0, 1
- bl PlayNewMapMusic
-_0815BD78:
- bl sub_815ABFC
- pop {r0}
- bx r0
- thumb_func_end sub_815BD58
-
- thumb_func_start sub_815BD80
-sub_815BD80: @ 815BD80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x10]
- ldr r1, _0815BE1C @ =gUnknown_82E55CC
- mov r8, r1
- movs r0, 0x80
- lsls r0, 4
- bl AllocZeroed
- adds r6, r0, 0
- movs r0, 0x80
- lsls r0, 8
- bl AllocZeroed
- str r0, [sp, 0x8]
- movs r0, 0x10
- bl Alloc
- str r0, [sp, 0xC]
- movs r1, 0xFF
- movs r2, 0x10
- bl memset
- mov r2, r8
- ldr r0, [r2, 0x10]
- movs r2, 0xA0
- lsls r2, 2
- ldr r1, [sp, 0x8]
- bl sub_815BF48
- mov r3, r8
- ldr r0, [r3, 0x14]
- ldr r2, [sp, 0x8]
- movs r3, 0xA0
- lsls r3, 7
- adds r1, r2, r3
- movs r2, 0xC0
- lsls r2, 1
- bl sub_815BF48
- movs r4, 0
-_0815BDDE:
- movs r2, 0
- adds r0, r4, 0x6
- str r0, [sp, 0x18]
- lsls r1, r4, 4
- mov r10, r1
- lsls r3, r4, 6
- mov r9, r3
- adds r4, 0x1
- str r4, [sp, 0x14]
-_0815BDF0:
- mov r1, r8
- ldr r0, [r1]
- ldr r3, [sp, 0x18]
- muls r0, r3
- ldr r1, [r1, 0xC]
- adds r0, r2, r0
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0, 0x10]
- ldr r3, _0815BE20 @ =0x000003ff
- adds r0, r3, 0
- adds r4, r0, 0
- ands r4, r1
- movs r3, 0
- mov r0, r10
- adds r1, r0, r2
- lsls r5, r2, 1
- adds r7, r2, 0x1
- cmp r3, r1
- bge _0815BE3C
- ldrh r0, [r6]
- b _0815BE34
- .align 2, 0
-_0815BE1C: .4byte gUnknown_82E55CC
-_0815BE20: .4byte 0x000003ff
-_0815BE24:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bge _0815BE3C
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
-_0815BE34:
- cmp r0, 0
- beq _0815BE46
- cmp r0, r4
- bne _0815BE24
-_0815BE3C:
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, 0
- bne _0815BE56
-_0815BE46:
- lsls r0, r3, 1
- adds r0, r6
- strh r4, [r0]
- ldr r0, [sp, 0x10]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
-_0815BE56:
- mov r2, r9
- adds r1, r2, r5
- lsls r1, 1
- ldr r0, [sp, 0x4]
- adds r1, r0, r1
- str r3, [sp]
- mov r0, r8
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl sub_815BF70
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0815BDF0
- ldr r1, [sp, 0x14]
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x8
- bls _0815BDDE
- ldr r2, [sp, 0x10]
- lsls r0, r2, 7
- bl Alloc
- adds r7, r0, 0
- movs r0, 0x80
- bl Alloc
- adds r5, r0, 0
- movs r4, 0
- ldr r3, [sp, 0x10]
- lsls r3, 23
- mov r9, r3
- ldr r0, [sp, 0x10]
- cmp r4, r0
- bcs _0815BF00
- ldr r1, _0815BECC @ =0x0000027f
- mov r10, r1
-_0815BEA2:
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x80
- bl memset
- lsls r0, r4, 1
- adds r1, r0, r6
- ldrh r0, [r1]
- cmp r0, r10
- bhi _0815BED0
- mov r2, r8
- ldr r0, [r2, 0x10]
- ldrh r1, [r1]
- lsls r1, 4
- ldr r0, [r0, 0xC]
- adds r0, r1
- adds r1, r5, 0
- ldr r2, [sp, 0x8]
- bl sub_815BFF0
- b _0815BEE8
- .align 2, 0
-_0815BECC: .4byte 0x0000027f
-_0815BED0:
- mov r3, r8
- ldr r0, [r3, 0x14]
- ldrh r1, [r1]
- ldr r2, _0815BF44 @ =0xfffffd80
- adds r1, r2
- lsls r1, 4
- ldr r0, [r0, 0xC]
- adds r0, r1
- adds r1, r5, 0
- ldr r2, [sp, 0x8]
- bl sub_815BFF0
-_0815BEE8:
- lsls r1, r4, 7
- adds r1, r7, r1
- adds r0, r5, 0
- movs r2, 0x20
- bl CpuFastSet
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r3, [sp, 0x10]
- cmp r4, r3
- bcc _0815BEA2
-_0815BF00:
- mov r0, r9
- lsrs r2, r0, 16
- movs r0, 0x3
- adds r1, r7, 0
- movs r3, 0
- bl LoadBgTiles
- mov r0, r8
- ldr r1, [sp, 0xC]
- bl sub_815C230
- adds r0, r5, 0
- bl Free
- adds r0, r7, 0
- bl Free
- ldr r0, [sp, 0xC]
- bl Free
- ldr r0, [sp, 0x8]
- bl Free
- adds r0, r6, 0
- bl Free
- 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
-_0815BF44: .4byte 0xfffffd80
- thumb_func_end sub_815BD80
-
- thumb_func_start sub_815BF48
-sub_815BF48: @ 815BF48
- push {lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r2, 16
- cmp r3, 0
- beq _0815BF6A
- ldrb r0, [r3]
- cmp r0, 0
- bne _0815BF64
- ldr r0, [r3, 0x4]
- lsls r2, 3
- bl CpuFastSet
- b _0815BF6A
-_0815BF64:
- ldr r0, [r3, 0x4]
- bl LZDecompressWram
-_0815BF6A:
- pop {r0}
- bx r0
- thumb_func_end sub_815BF48
-
- thumb_func_start sub_815BF70
-sub_815BF70: @ 815BF70
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x14]
- lsls r3, 16
- lsrs r1, r3, 16
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0815BF8C @ =0x0000027f
- cmp r1, r0
- bhi _0815BF90
- ldr r0, [r5, 0x10]
- b _0815BF96
- .align 2, 0
-_0815BF8C: .4byte 0x0000027f
-_0815BF90:
- ldr r0, [r5, 0x14]
- ldr r2, _0815BFEC @ =0xfffffd80
- adds r1, r2
-_0815BF96:
- lsls r1, 4
- ldr r0, [r0, 0xC]
- adds r5, r0, r1
- ldrh r1, [r5]
- adds r0, r6, 0
- bl sub_815C1F0
- lsls r0, 12
- lsls r4, 2
- adds r0, r4
- strh r0, [r7]
- ldrh r1, [r5, 0x2]
- adds r0, r6, 0
- bl sub_815C1F0
- lsls r0, 12
- adds r0, r4
- adds r0, 0x1
- strh r0, [r7, 0x2]
- ldrh r1, [r5, 0x4]
- adds r0, r6, 0
- bl sub_815C1F0
- adds r1, r7, 0
- adds r1, 0x40
- lsls r0, 12
- adds r0, r4
- adds r0, 0x2
- strh r0, [r1]
- ldrh r1, [r5, 0x6]
- adds r0, r6, 0
- bl sub_815C1F0
- adds r1, r7, 0
- adds r1, 0x42
- lsls r0, 12
- adds r0, r4
- adds r0, 0x3
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815BFEC: .4byte 0xfffffd80
- thumb_func_end sub_815BF70
-
- thumb_func_start sub_815BFF0
-sub_815BFF0: @ 815BFF0
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- mov r9, r1
- adds r5, r2, 0
- ldrh r2, [r0]
- ldr r4, _0815C0D0 @ =0x000003ff
- adds r1, r4, 0
- ands r1, r2
- lsls r1, 5
- adds r1, r5, r1
- lsrs r2, 10
- movs r6, 0x3
- ands r2, r6
- mov r0, r9
- bl sub_815C0D4
- mov r0, r8
- ldrh r2, [r0, 0x8]
- adds r1, r4, 0
- ands r1, r2
- lsls r1, 5
- adds r1, r5, r1
- lsrs r2, 10
- ands r2, r6
- mov r0, r9
- bl sub_815C0D4
- movs r0, 0x20
- add r0, r9
- mov r10, r0
- mov r0, r8
- ldrh r2, [r0, 0x2]
- adds r1, r4, 0
- ands r1, r2
- lsls r1, 5
- adds r1, r5, r1
- lsrs r2, 10
- ands r2, r6
- mov r0, r10
- bl sub_815C0D4
- mov r0, r8
- ldrh r2, [r0, 0xA]
- adds r1, r4, 0
- ands r1, r2
- lsls r1, 5
- adds r1, r5, r1
- lsrs r2, 10
- ands r2, r6
- mov r0, r10
- bl sub_815C0D4
- movs r0, 0x40
- add r0, r9
- mov r10, r0
- mov r0, r8
- ldrh r2, [r0, 0x4]
- adds r1, r4, 0
- ands r1, r2
- lsls r1, 5
- adds r1, r5, r1
- lsrs r2, 10
- ands r2, r6
- mov r0, r10
- bl sub_815C0D4
- mov r0, r8
- ldrh r2, [r0, 0xC]
- adds r1, r4, 0
- ands r1, r2
- lsls r1, 5
- adds r1, r5, r1
- lsrs r2, 10
- ands r2, r6
- mov r0, r10
- bl sub_815C0D4
- movs r0, 0x60
- add r9, r0
- mov r0, r8
- ldrh r2, [r0, 0x6]
- adds r1, r4, 0
- ands r1, r2
- lsls r1, 5
- adds r1, r5, r1
- lsrs r2, 10
- ands r2, r6
- mov r0, r9
- bl sub_815C0D4
- mov r0, r8
- ldrh r2, [r0, 0xE]
- ands r4, r2
- lsls r4, 5
- adds r5, r4
- lsrs r2, 10
- ands r2, r6
- mov r0, r9
- adds r1, r5, 0
- bl sub_815C0D4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815C0D0: .4byte 0x000003ff
- thumb_func_end sub_815BFF0
-
- thumb_func_start sub_815C0D4
-sub_815C0D4: @ 815C0D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r0, 0x20
- bl AllocZeroed
- adds r6, r0, 0
- movs r0, 0x20
- bl AllocZeroed
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x8
- bl CpuFastSet
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _0815C15A
- movs r5, 0
- movs r7, 0xF
- mov r12, r7
- movs r0, 0xF0
- mov r8, r0
-_0815C118:
- movs r3, 0
- lsls r4, r5, 2
-_0815C11C:
- subs r0, r3, 0x3
- subs r0, r4, r0
- adds r0, r6, r0
- ldrb r1, [r0]
- adds r2, r4, r3
- ldr r7, [sp]
- adds r2, r7, r2
- adds r0, r1, 0
- mov r7, r12
- ands r0, r7
- lsls r0, 4
- mov r7, r8
- ands r1, r7
- lsrs r1, 4
- adds r0, r1
- strb r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0815C11C
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0815C118
- ldr r0, [sp]
- adds r1, r6, 0
- movs r2, 0x8
- bl CpuFastSet
-_0815C15A:
- movs r0, 0x2
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _0815C18E
- movs r5, 0
-_0815C166:
- lsls r0, r5, 2
- ldr r7, [sp]
- adds r0, r7
- movs r1, 0x7
- subs r1, r5
- lsls r1, 2
- adds r1, r6
- movs r2, 0x4
- bl memcpy
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0815C166
- ldr r0, [sp]
- adds r1, r6, 0
- movs r2, 0x8
- bl CpuFastSet
-_0815C18E:
- movs r5, 0
- movs r0, 0xF0
- mov r8, r0
- movs r1, 0xF
- mov r12, r1
-_0815C198:
- adds r4, r6, r5
- ldrb r0, [r4]
- mov r3, r8
- ands r3, r0
- cmp r3, 0
- beq _0815C1B2
- mov r7, r9
- adds r2, r7, r5
- ldrb r1, [r2]
- mov r0, r12
- ands r0, r1
- adds r0, r3
- strb r0, [r2]
-_0815C1B2:
- ldrb r0, [r4]
- mov r3, r12
- ands r3, r0
- cmp r3, 0
- beq _0815C1CA
- mov r0, r9
- adds r2, r0, r5
- ldrb r1, [r2]
- mov r0, r8
- ands r0, r1
- adds r0, r3
- strb r0, [r2]
-_0815C1CA:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1F
- bls _0815C198
- ldr r0, [sp]
- bl Free
- adds r0, r6, 0
- bl Free
- 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_815C0D4
-
- thumb_func_start sub_815C1F0
-sub_815C1F0: @ 815C1F0
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 28
- movs r3, 0
- ldrb r0, [r4]
- cmp r0, r1
- beq _0815C220
- cmp r0, 0xFF
- bne _0815C208
- strb r1, [r4]
- b _0815C220
-_0815C208:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bhi _0815C220
- adds r2, r4, r3
- ldrb r0, [r2]
- cmp r0, r1
- beq _0815C220
- cmp r0, 0xFF
- bne _0815C208
- strb r1, [r2]
-_0815C220:
- movs r0, 0xF
- subs r0, r3
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_815C1F0
-
- thumb_func_start sub_815C230
-sub_815C230: @ 815C230
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _0815C274
-_0815C23E:
- adds r1, r5, r4
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _0815C24A
- ldr r0, [r6, 0x14]
- b _0815C24C
-_0815C24A:
- ldr r0, [r6, 0x10]
-_0815C24C:
- ldrb r1, [r1]
- lsls r1, 5
- ldr r0, [r0, 0x8]
- adds r0, r1
- movs r1, 0xF
- subs r1, r4
- lsls r1, 20
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bhi _0815C274
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0815C23E
-_0815C274:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815C230
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/text_window.s b/asm/text_window.s
deleted file mode 100644
index df5c80739..000000000
--- a/asm/text_window.s
+++ /dev/null
@@ -1,948 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_814FD04
-sub_814FD04: @ 814FD04
- push {r4,lr}
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0814FD34 @ =gUnknown_84566A8
- movs r2, 0xA0
- lsls r2, 2
- bl LoadBgTiles
- movs r0, 0x2
- bl stdpal_get
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FD34: .4byte gUnknown_84566A8
- thumb_func_end sub_814FD04
-
- thumb_func_start sub_814FD38
-sub_814FD38: @ 814FD38
- push {r4,lr}
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0814FD68 @ =gUnknown_841F1C8
- movs r2, 0xA0
- lsls r2, 2
- bl LoadBgTiles
- movs r0, 0
- bl stdpal_get
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FD68: .4byte gUnknown_841F1C8
- thumb_func_end sub_814FD38
-
- thumb_func_start sub_814FD6C
-sub_814FD6C: @ 814FD6C
- push {r4,lr}
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0814FD9C @ =gUnknown_8470B0C
- movs r2, 0x98
- lsls r2, 2
- bl LoadBgTiles
- movs r0, 0x1
- bl stdpal_get
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FD9C: .4byte gUnknown_8470B0C
- thumb_func_end sub_814FD6C
-
- thumb_func_start sub_814FDA0
-sub_814FDA0: @ 814FDA0
- push {r4,lr}
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0814FDD0 @ =gUnknown_8471A4C
- movs r2, 0x90
- lsls r2, 1
- bl LoadBgTiles
- movs r0, 0x3
- bl stdpal_get
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FDD0: .4byte gUnknown_8471A4C
- thumb_func_end sub_814FDA0
-
- thumb_func_start sub_814FDD4
-sub_814FDD4: @ 814FDD4
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 16
- lsrs r3, 16
- ldr r1, _0814FDF0 @ =gUnknown_8471B6C
- movs r2, 0xA0
- lsls r2, 2
- bl LoadBgTiles
- pop {r0}
- bx r0
- .align 2, 0
-_0814FDF0: .4byte gUnknown_8471B6C
- thumb_func_end sub_814FDD4
-
- thumb_func_start sub_814FDF4
-sub_814FDF4: @ 814FDF4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r6, 16
- lsrs r6, 16
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r5, _0814FE3C @ =gUnknown_8471E8C
- lsrs r4, 21
- adds r1, r4, r5
- ldr r1, [r1]
- movs r2, 0x90
- lsls r2, 1
- adds r3, r6, 0
- bl LoadBgTiles
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- mov r1, r8
- movs r2, 0x20
- bl LoadPalette
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FE3C: .4byte gUnknown_8471E8C
- thumb_func_end sub_814FDF4
-
- thumb_func_start sub_814FE40
-sub_814FE40: @ 814FE40
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _0814FE68 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- ldrb r1, [r1, 0x14]
- lsrs r1, 3
- adds r2, r4, 0
- bl sub_814FFC4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FE68: .4byte gSaveBlock2Ptr
- thumb_func_end sub_814FE40
-
- thumb_func_start sub_814FE6C
-sub_814FE6C: @ 814FE6C
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814FEA8 @ =gUnknown_84566A8
- movs r2, 0xA0
- lsls r2, 2
- adds r3, r4, 0
- bl LoadBgTiles
- movs r0, 0x2
- bl stdpal_get
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FEA8: .4byte gUnknown_84566A8
- thumb_func_end sub_814FE6C
-
- thumb_func_start sub_814FEAC
-sub_814FEAC: @ 814FEAC
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814FEE8 @ =gUnknown_841F1C8
- movs r2, 0xA0
- lsls r2, 2
- adds r3, r4, 0
- bl LoadBgTiles
- movs r0, 0
- bl stdpal_get
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FEE8: .4byte gUnknown_841F1C8
- thumb_func_end sub_814FEAC
-
- thumb_func_start sub_814FEEC
-sub_814FEEC: @ 814FEEC
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814FF28 @ =gUnknown_8470B0C
- movs r2, 0x98
- lsls r2, 2
- adds r3, r4, 0
- bl LoadBgTiles
- movs r0, 0x1
- bl stdpal_get
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FF28: .4byte gUnknown_8470B0C
- thumb_func_end sub_814FEEC
-
- thumb_func_start sub_814FF2C
-sub_814FF2C: @ 814FF2C
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814FF68 @ =gUnknown_8471A4C
- movs r2, 0x90
- lsls r2, 1
- adds r3, r4, 0
- bl LoadBgTiles
- movs r0, 0x3
- bl stdpal_get
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FF68: .4byte gUnknown_8471A4C
- thumb_func_end sub_814FF2C
-
- thumb_func_start sub_814FF6C
-sub_814FF6C: @ 814FF6C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814FF94 @ =gUnknown_8471A4C
- movs r2, 0x90
- lsls r2, 1
- adds r3, r4, 0
- bl LoadBgTiles
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FF94: .4byte gUnknown_8471A4C
- thumb_func_end sub_814FF6C
-
- thumb_func_start sub_814FF98
-sub_814FF98: @ 814FF98
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814FFC0 @ =gUnknown_8471B6C
- movs r2, 0xA0
- lsls r2, 2
- adds r3, r4, 0
- bl LoadBgTiles
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814FFC0: .4byte gUnknown_8471B6C
- thumb_func_end sub_814FF98
-
- thumb_func_start sub_814FFC4
-sub_814FFC4: @ 814FFC4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 16
- lsrs r6, 16
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08150018 @ =gUnknown_8471E8C
- lsls r4, 3
- adds r1, r4, r5
- ldr r1, [r1]
- movs r2, 0x90
- lsls r2, 1
- adds r3, r6, 0
- bl LoadBgTiles
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- mov r1, r8
- movs r2, 0x20
- bl LoadPalette
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08150018: .4byte gUnknown_8471E8C
- thumb_func_end sub_814FFC4
-
- thumb_func_start sub_815001C
-sub_815001C: @ 815001C
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _08150044 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- ldrb r1, [r1, 0x14]
- lsrs r1, 3
- adds r2, r4, 0
- bl sub_814FFC4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08150044: .4byte gSaveBlock2Ptr
- thumb_func_end sub_815001C
-
- thumb_func_start sub_8150048
-sub_8150048: @ 8150048
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl GetWindowAttribute
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x2
- bl GetWindowAttribute
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- adds r0, r4, 0
- movs r1, 0x3
- bl GetWindowAttribute
- mov r9, r0
- mov r2, r9
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- adds r0, r4, 0
- movs r1, 0x4
- bl GetWindowAttribute
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- mov r0, r8
- subs r0, 0x1
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- subs r4, r6, 0x1
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- mov r10, r0
- str r0, [sp]
- str r0, [sp, 0x4]
- ldr r2, [sp, 0xC]
- str r2, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r5, 0
- ldr r2, [sp, 0x14]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- adds r1, r5, 0x1
- lsls r1, 16
- lsrs r1, 16
- mov r0, r8
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- mov r2, r9
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- str r0, [sp]
- mov r0, r10
- str r0, [sp, 0x4]
- ldr r2, [sp, 0xC]
- str r2, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- adds r1, r5, 0x2
- lsls r1, 16
- lsrs r1, 16
- add r8, r9
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r2, r10
- str r2, [sp]
- str r2, [sp, 0x4]
- ldr r0, [sp, 0xC]
- str r0, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- adds r1, r5, 0x3
- lsls r1, 16
- lsrs r1, 16
- lsls r2, r6, 24
- lsrs r2, 24
- mov r9, r2
- mov r0, r10
- str r0, [sp]
- ldr r2, [sp, 0x10]
- lsls r4, r2, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- ldr r0, [sp, 0xC]
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x14]
- mov r3, r9
- bl FillBgTilemapBufferRect
- adds r1, r5, 0x5
- lsls r1, 16
- lsrs r1, 16
- mov r2, r10
- str r2, [sp]
- str r4, [sp, 0x4]
- ldr r0, [sp, 0xC]
- str r0, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- mov r3, r9
- bl FillBgTilemapBufferRect
- adds r1, r5, 0x6
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x10]
- adds r6, r2
- lsls r6, 24
- lsrs r6, 24
- mov r0, r10
- str r0, [sp]
- str r0, [sp, 0x4]
- ldr r2, [sp, 0xC]
- str r2, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x14]
- adds r3, r6, 0
- bl FillBgTilemapBufferRect
- adds r1, r5, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x1C]
- str r0, [sp]
- mov r2, r10
- str r2, [sp, 0x4]
- ldr r0, [sp, 0xC]
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r6, 0
- bl FillBgTilemapBufferRect
- adds r5, 0x8
- lsls r5, 16
- lsrs r5, 16
- mov r2, r10
- str r2, [sp]
- str r2, [sp, 0x4]
- ldr r0, [sp, 0xC]
- str r0, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r5, 0
- mov r2, r8
- adds r3, r6, 0
- bl FillBgTilemapBufferRect
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8150048
-
- thumb_func_start sub_81501D0
-sub_81501D0: @ 81501D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r4, r0, 0
- mov r9, r1
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- adds r0, r4, 0
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl GetWindowAttribute
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x2
- bl GetWindowAttribute
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- adds r0, r4, 0
- movs r1, 0x3
- bl GetWindowAttribute
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x4
- bl GetWindowAttribute
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r0, r8
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, r6, 24
- lsrs r4, 24
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- mov r1, r9
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- mov r1, r9
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- mov r0, r8
- adds r0, 0x1
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- subs r0, r5, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- mov r1, r9
- adds r1, 0x2
- lsls r1, 16
- lsrs r1, 16
- add r8, r5
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- mov r1, r9
- adds r1, 0x3
- lsls r1, 16
- lsrs r1, 16
- adds r5, r6, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- str r0, [sp]
- ldr r4, [sp, 0xC]
- subs r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x10]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r1, r9
- adds r1, 0x5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r1, r9
- adds r1, 0x6
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0xC]
- adds r6, r0
- subs r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x10]
- adds r3, r6, 0
- bl FillBgTilemapBufferRect
- mov r1, r9
- adds r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x14]
- adds r3, r6, 0
- bl FillBgTilemapBufferRect
- movs r0, 0x8
- add r9, r0
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r7, 0
- mov r1, r9
- mov r2, r8
- adds r3, r6, 0
- bl FillBgTilemapBufferRect
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81501D0
-
- thumb_func_start rbox_fill_rectangle
-rbox_fill_rectangle: @ 815036C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r0, r6, 0
- movs r1, 0
- bl GetWindowAttribute
- mov r9, r0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x1
- bl GetWindowAttribute
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r6, 0
- movs r1, 0x2
- bl GetWindowAttribute
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x3
- bl GetWindowAttribute
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x4
- bl GetWindowAttribute
- movs r1, 0x1
- negs r1, r1
- add r8, r1
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- subs r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 18
- adds r0, r1
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- mov r0, r9
- movs r1, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end rbox_fill_rectangle
-
- thumb_func_start stdpal_get
-stdpal_get: @ 8150408
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08150444
- lsls r0, 2
- ldr r1, _0815041C @ =_08150420
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0815041C: .4byte _08150420
- .align 2, 0
-_08150420:
- .4byte _08150434
- .4byte _08150438
- .4byte _0815043C
- .4byte _08150440
- .4byte _08150444
-_08150434:
- movs r0, 0
- b _08150446
-_08150438:
- movs r0, 0x10
- b _08150446
-_0815043C:
- movs r0, 0x20
- b _08150446
-_08150440:
- movs r0, 0x30
- b _08150446
-_08150444:
- movs r0, 0x40
-_08150446:
- lsls r0, 1
- ldr r1, _08150450 @ =gUnknown_8471DEC
- adds r0, r1
- pop {r1}
- bx r1
- .align 2, 0
-_08150450: .4byte gUnknown_8471DEC
- thumb_func_end stdpal_get
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/text_window_graphics.s b/asm/text_window_graphics.s
deleted file mode 100644
index 6c725a553..000000000
--- a/asm/text_window_graphics.s
+++ /dev/null
@@ -1,30 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8069788
-sub_8069788: @ 8069788
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080697A0
- lsls r0, 3
- ldr r1, _0806979C @ =gUnknown_8471E8C
- adds r0, r1
- b _080697A2
- .align 2, 0
-_0806979C: .4byte gUnknown_8471E8C
-_080697A0:
- ldr r0, _080697A8 @ =gUnknown_8471E8C
-_080697A2:
- pop {r1}
- bx r1
- .align 2, 0
-_080697A8: .4byte gUnknown_8471E8C
- thumb_func_end sub_8069788
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/tileset_anims.s b/asm/tileset_anims.s
index 37280ab70..693962d39 100644
--- a/asm/tileset_anims.s
+++ b/asm/tileset_anims.s
@@ -132,11 +132,11 @@ sub_806FFB0: @ 806FFB0
sub_806FFBC: @ 806FFBC
push {r4,lr}
bl ResetTilesetAnimBuffer
- ldr r2, _08070014 @ =gUnknown_3000FAE
+ ldr r2, _08070014 @ =sPrimaryTilesetCBCounter
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
- ldr r1, _08070018 @ =gUnknown_3000FB0
+ ldr r1, _08070018 @ =sPrimaryTilesetCBBufferSize
lsls r0, 16
lsrs r0, 16
ldrh r1, [r1]
@@ -145,11 +145,11 @@ sub_806FFBC: @ 806FFBC
movs r0, 0
strh r0, [r2]
_0806FFDA:
- ldr r4, _0807001C @ =gUnknown_3000FB2
+ ldr r4, _0807001C @ =sSecondaryTilesetCBCounter
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
- ldr r1, _08070020 @ =gUnknown_3000FB4
+ ldr r1, _08070020 @ =sSecondaryTilesetCBBufferSize
lsls r0, 16
lsrs r0, 16
ldrh r1, [r1]
@@ -158,14 +158,14 @@ _0806FFDA:
movs r0, 0
strh r0, [r4]
_0806FFF2:
- ldr r0, _08070024 @ =gUnknown_3000FB8
+ ldr r0, _08070024 @ =sPrimaryTilesetCB
ldr r1, [r0]
cmp r1, 0
beq _08070000
ldrh r0, [r2]
bl _call_via_r1
_08070000:
- ldr r0, _08070028 @ =gUnknown_3000FBC
+ ldr r0, _08070028 @ =sSecondaryTilesetCB
ldr r1, [r0]
cmp r1, 0
beq _0807000E
@@ -176,23 +176,23 @@ _0807000E:
pop {r0}
bx r0
.align 2, 0
-_08070014: .4byte gUnknown_3000FAE
-_08070018: .4byte gUnknown_3000FB0
-_0807001C: .4byte gUnknown_3000FB2
-_08070020: .4byte gUnknown_3000FB4
-_08070024: .4byte gUnknown_3000FB8
-_08070028: .4byte gUnknown_3000FBC
+_08070014: .4byte sPrimaryTilesetCBCounter
+_08070018: .4byte sPrimaryTilesetCBBufferSize
+_0807001C: .4byte sSecondaryTilesetCBCounter
+_08070020: .4byte sSecondaryTilesetCBBufferSize
+_08070024: .4byte sPrimaryTilesetCB
+_08070028: .4byte sSecondaryTilesetCB
thumb_func_end sub_806FFBC
thumb_func_start cur_mapheader_run_tileset1_func
cur_mapheader_run_tileset1_func: @ 807002C
push {lr}
- ldr r0, _08070058 @ =gUnknown_3000FAE
+ ldr r0, _08070058 @ =sPrimaryTilesetCBCounter
movs r1, 0
strh r1, [r0]
- ldr r0, _0807005C @ =gUnknown_3000FB0
+ ldr r0, _0807005C @ =sPrimaryTilesetCBBufferSize
strh r1, [r0]
- ldr r1, _08070060 @ =gUnknown_3000FB8
+ ldr r1, _08070060 @ =sPrimaryTilesetCB
movs r0, 0
str r0, [r1]
ldr r0, _08070064 @ =gMapHeader
@@ -208,21 +208,21 @@ _08070052:
pop {r0}
bx r0
.align 2, 0
-_08070058: .4byte gUnknown_3000FAE
-_0807005C: .4byte gUnknown_3000FB0
-_08070060: .4byte gUnknown_3000FB8
+_08070058: .4byte sPrimaryTilesetCBCounter
+_0807005C: .4byte sPrimaryTilesetCBBufferSize
+_08070060: .4byte sPrimaryTilesetCB
_08070064: .4byte gMapHeader
thumb_func_end cur_mapheader_run_tileset1_func
thumb_func_start cur_mapheader_run_tileset2_func
cur_mapheader_run_tileset2_func: @ 8070068
push {lr}
- ldr r0, _08070094 @ =gUnknown_3000FB2
+ ldr r0, _08070094 @ =sSecondaryTilesetCBCounter
movs r1, 0
strh r1, [r0]
- ldr r0, _08070098 @ =gUnknown_3000FB4
+ ldr r0, _08070098 @ =sSecondaryTilesetCBBufferSize
strh r1, [r0]
- ldr r1, _0807009C @ =gUnknown_3000FBC
+ ldr r1, _0807009C @ =sSecondaryTilesetCB
movs r0, 0
str r0, [r1]
ldr r0, _080700A0 @ =gMapHeader
@@ -238,9 +238,9 @@ _0807008E:
pop {r0}
bx r0
.align 2, 0
-_08070094: .4byte gUnknown_3000FB2
-_08070098: .4byte gUnknown_3000FB4
-_0807009C: .4byte gUnknown_3000FBC
+_08070094: .4byte sSecondaryTilesetCBCounter
+_08070098: .4byte sSecondaryTilesetCBBufferSize
+_0807009C: .4byte sSecondaryTilesetCB
_080700A0: .4byte gMapHeader
thumb_func_end cur_mapheader_run_tileset2_func
@@ -342,22 +342,22 @@ _0807014C:
thumb_func_start sub_8070154
sub_8070154: @ 8070154
- ldr r1, _0807016C @ =gUnknown_3000FAE
+ ldr r1, _0807016C @ =sPrimaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _08070170 @ =gUnknown_3000FB0
+ ldr r1, _08070170 @ =sPrimaryTilesetCBBufferSize
movs r2, 0xA0
lsls r2, 2
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08070174 @ =gUnknown_3000FB8
+ ldr r1, _08070174 @ =sPrimaryTilesetCB
ldr r0, _08070178 @ =sub_8070120
str r0, [r1]
bx lr
.align 2, 0
-_0807016C: .4byte gUnknown_3000FAE
-_08070170: .4byte gUnknown_3000FB0
-_08070174: .4byte gUnknown_3000FB8
+_0807016C: .4byte sPrimaryTilesetCBCounter
+_08070170: .4byte sPrimaryTilesetCBBufferSize
+_08070174: .4byte sPrimaryTilesetCB
_08070178: .4byte sub_8070120
thumb_func_end sub_8070154
@@ -410,20 +410,20 @@ _080701D0:
thumb_func_start sub_80701D8
sub_80701D8: @ 80701D8
- ldr r1, _080701EC @ =gUnknown_3000FB2
+ ldr r1, _080701EC @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _080701F0 @ =gUnknown_3000FB4
+ ldr r1, _080701F0 @ =sSecondaryTilesetCBBufferSize
movs r0, 0x78
strh r0, [r1]
- ldr r1, _080701F4 @ =gUnknown_3000FBC
+ ldr r1, _080701F4 @ =sSecondaryTilesetCB
ldr r0, _080701F8 @ =sub_80701AC
str r0, [r1]
bx lr
.align 2, 0
-_080701EC: .4byte gUnknown_3000FB2
-_080701F0: .4byte gUnknown_3000FB4
-_080701F4: .4byte gUnknown_3000FBC
+_080701EC: .4byte sSecondaryTilesetCBCounter
+_080701F0: .4byte sSecondaryTilesetCBBufferSize
+_080701F4: .4byte sSecondaryTilesetCB
_080701F8: .4byte sub_80701AC
thumb_func_end sub_80701D8
@@ -474,20 +474,20 @@ _08070248:
thumb_func_start sub_8070250
sub_8070250: @ 8070250
- ldr r1, _08070264 @ =gUnknown_3000FB2
+ ldr r1, _08070264 @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _08070268 @ =gUnknown_3000FB4
+ ldr r1, _08070268 @ =sSecondaryTilesetCBBufferSize
movs r0, 0xA0
strh r0, [r1]
- ldr r1, _0807026C @ =gUnknown_3000FBC
+ ldr r1, _0807026C @ =sSecondaryTilesetCB
ldr r0, _08070270 @ =sub_8070224
str r0, [r1]
bx lr
.align 2, 0
-_08070264: .4byte gUnknown_3000FB2
-_08070268: .4byte gUnknown_3000FB4
-_0807026C: .4byte gUnknown_3000FBC
+_08070264: .4byte sSecondaryTilesetCBCounter
+_08070268: .4byte sSecondaryTilesetCBBufferSize
+_0807026C: .4byte sSecondaryTilesetCB
_08070270: .4byte sub_8070224
thumb_func_end sub_8070250
@@ -531,22 +531,22 @@ _080702B0:
thumb_func_start sub_80702B4
sub_80702B4: @ 80702B4
- ldr r1, _080702CC @ =gUnknown_3000FB2
+ ldr r1, _080702CC @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _080702D0 @ =gUnknown_3000FB4
+ ldr r1, _080702D0 @ =sSecondaryTilesetCBBufferSize
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _080702D4 @ =gUnknown_3000FBC
+ ldr r1, _080702D4 @ =sSecondaryTilesetCB
ldr r0, _080702D8 @ =sub_807029C
str r0, [r1]
bx lr
.align 2, 0
-_080702CC: .4byte gUnknown_3000FB2
-_080702D0: .4byte gUnknown_3000FB4
-_080702D4: .4byte gUnknown_3000FBC
+_080702CC: .4byte sSecondaryTilesetCBCounter
+_080702D0: .4byte sSecondaryTilesetCBBufferSize
+_080702D4: .4byte sSecondaryTilesetCB
_080702D8: .4byte sub_807029C
thumb_func_end sub_80702B4
@@ -589,20 +589,20 @@ _08070318:
thumb_func_start sub_807031C
sub_807031C: @ 807031C
- ldr r1, _08070330 @ =gUnknown_3000FB2
+ ldr r1, _08070330 @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _08070334 @ =gUnknown_3000FB4
+ ldr r1, _08070334 @ =sSecondaryTilesetCBBufferSize
movs r0, 0xF0
strh r0, [r1]
- ldr r1, _08070338 @ =gUnknown_3000FBC
+ ldr r1, _08070338 @ =sSecondaryTilesetCB
ldr r0, _0807033C @ =sub_8070304
str r0, [r1]
bx lr
.align 2, 0
-_08070330: .4byte gUnknown_3000FB2
-_08070334: .4byte gUnknown_3000FB4
-_08070338: .4byte gUnknown_3000FBC
+_08070330: .4byte sSecondaryTilesetCBCounter
+_08070334: .4byte sSecondaryTilesetCBBufferSize
+_08070338: .4byte sSecondaryTilesetCB
_0807033C: .4byte sub_8070304
thumb_func_end sub_807031C
@@ -645,22 +645,22 @@ _0807037C:
thumb_func_start sub_8070380
sub_8070380: @ 8070380
- ldr r1, _08070398 @ =gUnknown_3000FB2
+ ldr r1, _08070398 @ =sSecondaryTilesetCBCounter
movs r0, 0
strh r0, [r1]
- ldr r1, _0807039C @ =gUnknown_3000FB4
+ ldr r1, _0807039C @ =sSecondaryTilesetCBBufferSize
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _080703A0 @ =gUnknown_3000FBC
+ ldr r1, _080703A0 @ =sSecondaryTilesetCB
ldr r0, _080703A4 @ =sub_8070368
str r0, [r1]
bx lr
.align 2, 0
-_08070398: .4byte gUnknown_3000FB2
-_0807039C: .4byte gUnknown_3000FB4
-_080703A0: .4byte gUnknown_3000FBC
+_08070398: .4byte sSecondaryTilesetCBCounter
+_0807039C: .4byte sSecondaryTilesetCBBufferSize
+_080703A0: .4byte sSecondaryTilesetCB
_080703A4: .4byte sub_8070368
thumb_func_end sub_8070380
diff --git a/asm/title_screen.s b/asm/title_screen.s
index c07978623..07a861c86 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_8078914
-sub_8078914: @ 8078914
+ thumb_func_start CB2_InitTitleScreen
+CB2_InitTitleScreen: @ 8078914
push {r4-r6,lr}
sub sp, 0xC
ldr r0, _08078930 @ =gMain
@@ -230,7 +230,7 @@ _08078B26:
bx r0
.align 2, 0
_08078B30: .4byte gMain
- thumb_func_end sub_8078914
+ thumb_func_end CB2_InitTitleScreen
thumb_func_start sub_8078B34
sub_8078B34: @ 8078B34
@@ -292,7 +292,7 @@ sub_8078BB4: @ 8078BB4
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
ldr r1, _08078BE4 @ =gUnknown_2037F30
ldrb r0, [r1]
cmp r0, 0xFF
@@ -433,7 +433,7 @@ sub_8078C9C: @ 8078C9C
strb r5, [r0, 0x9]
add r0, sp, 0xC
strh r5, [r0]
- ldr r4, _08078D1C @ =gUnknown_2038700
+ ldr r4, _08078D1C @ =gScanlineEffectRegBuffers
ldr r6, _08078D20 @ =0x010000a0
adds r1, r4, 0
adds r2, r6, 0
@@ -450,7 +450,7 @@ sub_8078C9C: @ 8078C9C
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
mov r0, r8
movs r1, 0x1
bl sub_8078C90
@@ -463,7 +463,7 @@ sub_8078C9C: @ 8078C9C
.align 2, 0
_08078D14: .4byte 0x04000054
_08078D18: .4byte 0xa2600001
-_08078D1C: .4byte gUnknown_2038700
+_08078D1C: .4byte gScanlineEffectRegBuffers
_08078D20: .4byte 0x010000a0
thumb_func_end sub_8078C9C
@@ -507,7 +507,7 @@ _08078D5C:
ldrsh r0, [r4, r1]
cmp r0, 0
bge _08078D9C
- ldr r1, _08078D80 @ =gUnknown_2039600
+ ldr r1, _08078D80 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08078D78:
@@ -516,7 +516,7 @@ _08078D78:
strh r0, [r4, 0x2]
b _08078D9C
.align 2, 0
-_08078D80: .4byte gUnknown_2039600
+_08078D80: .4byte gScanlineEffect
_08078D84:
movs r0, 0x50
movs r1, 0
@@ -809,7 +809,7 @@ sub_8078FC4: @ 8078FC4
b _08079094
_08078FD6:
movs r0, 0x1
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0807902C @ =sub_807941C
movs r1, 0
bl CreateTask
@@ -1481,9 +1481,9 @@ sub_8079550: @ 8079550
asrs r4, r5, 16
cmp r4, 0
blt _08079574
- ldr r3, _08079618 @ =gUnknown_2038700
+ ldr r3, _08079618 @ =gScanlineEffectRegBuffers
lsls r2, r4, 1
- ldr r0, _0807961C @ =gUnknown_2039600
+ ldr r0, _0807961C @ =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
@@ -1496,9 +1496,9 @@ _08079574:
movs r3, 0
mov r8, r5
adds r6, r4, 0
- ldr r0, _08079618 @ =gUnknown_2038700
+ ldr r0, _08079618 @ =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, _0807961C @ =gUnknown_2039600
+ ldr r7, _0807961C @ =gScanlineEffect
movs r5, 0xF
lsls r2, r6, 1
adds r4, r2, 0
@@ -1537,8 +1537,8 @@ _080795AE:
adds r3, 0x10
cmp r3, 0x9F
bgt _080795E6
- ldr r6, _08079618 @ =gUnknown_2038700
- ldr r5, _0807961C @ =gUnknown_2039600
+ ldr r6, _08079618 @ =gScanlineEffectRegBuffers
+ ldr r5, _0807961C @ =gScanlineEffect
movs r4, 0
_080795CC:
cmp r3, 0
@@ -1562,8 +1562,8 @@ _080795E6:
subs r3, 0x10
cmp r3, 0
blt _0807960E
- ldr r6, _08079618 @ =gUnknown_2038700
- ldr r5, _0807961C @ =gUnknown_2039600
+ ldr r6, _08079618 @ =gScanlineEffectRegBuffers
+ ldr r5, _0807961C @ =gScanlineEffect
movs r4, 0
_080795F8:
lsls r2, r3, 1
@@ -1584,14 +1584,14 @@ _0807960E:
pop {r0}
bx r0
.align 2, 0
-_08079618: .4byte gUnknown_2038700
-_0807961C: .4byte gUnknown_2039600
+_08079618: .4byte gScanlineEffectRegBuffers
+_0807961C: .4byte gScanlineEffect
thumb_func_end sub_8079550
thumb_func_start sub_8079620
sub_8079620: @ 8079620
push {lr}
- ldr r1, _08079644 @ =gUnknown_2039600
+ ldr r1, _08079644 @ =gScanlineEffect
ldrb r0, [r1, 0x15]
cmp r0, 0
beq _0807962E
@@ -1607,7 +1607,7 @@ _0807962E:
pop {r0}
bx r0
.align 2, 0
-_08079644: .4byte gUnknown_2039600
+_08079644: .4byte gScanlineEffect
thumb_func_end sub_8079620
thumb_func_start sub_8079648
@@ -1688,13 +1688,13 @@ sub_80796E8: @ 80796E8
cmp r0, 0
bne _080796FE
bl m4aMPlayAllStop
- ldr r0, _08079704 @ =sub_815F74C
+ ldr r0, _08079704 @ =mb_berry_fix_serve
bl SetMainCallback2
_080796FE:
pop {r0}
bx r0
.align 2, 0
-_08079704: .4byte sub_815F74C
+_08079704: .4byte mb_berry_fix_serve
thumb_func_end sub_80796E8
thumb_func_start sub_8079708
diff --git a/asm/tm_case.s b/asm/tm_case.s
deleted file mode 100644
index 1539343e8..000000000
--- a/asm/tm_case.s
+++ /dev/null
@@ -1,3999 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81317F8
-sub_81317F8: @ 81317F8
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r6, r2, 24
- bl sub_8131A8C
- ldr r4, _08131854 @ =gUnknown_203B118
- movs r0, 0x1C
- bl Alloc
- str r0, [r4]
- movs r1, 0
- str r1, [r0]
- movs r1, 0xFF
- strb r1, [r0, 0x8]
- ldr r1, [r4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x7]
- cmp r5, 0x5
- beq _0813182A
- ldr r0, _08131858 @ =gUnknown_203B10C
- strb r5, [r0, 0x4]
-_0813182A:
- cmp r7, 0
- beq _08131832
- ldr r0, _08131858 @ =gUnknown_203B10C
- str r7, [r0]
-_08131832:
- cmp r6, 0xFF
- beq _0813183A
- ldr r0, _08131858 @ =gUnknown_203B10C
- strb r6, [r0, 0x5]
-_0813183A:
- ldr r2, _0813185C @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08131860 @ =sub_8131894
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131854: .4byte gUnknown_203B118
-_08131858: .4byte gUnknown_203B10C
-_0813185C: .4byte gTextFlags
-_08131860: .4byte sub_8131894
- thumb_func_end sub_81317F8
-
- thumb_func_start sub_8131864
-sub_8131864: @ 8131864
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8131864
-
- thumb_func_start sub_8131880
-sub_8131880: @ 8131880
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8131880
-
- thumb_func_start sub_8131894
-sub_8131894: @ 8131894
- push {lr}
-_08131896:
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081318BA
- bl sub_81318C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081318BA
- bl sub_80BF708
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08131896
-_081318BA:
- pop {r0}
- bx r0
- thumb_func_end sub_8131894
-
- thumb_func_start sub_81318C0
-sub_81318C0: @ 81318C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081318E0 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _081318D4
- b _08131A68
-_081318D4:
- lsls r0, 2
- ldr r1, _081318E4 @ =_081318E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081318E0: .4byte gMain
-_081318E4: .4byte _081318E8
- .align 2, 0
-_081318E8:
- .4byte _08131934
- .4byte _0813193E
- .4byte _08131944
- .4byte _0813194A
- .4byte _08131950
- .4byte _08131956
- .4byte _0813195C
- .4byte _08131970
- .4byte _08131976
- .4byte _08131984
- .4byte _08131990
- .4byte _0813199E
- .4byte _081319A4
- .4byte _081319AE
- .4byte _081319B4
- .4byte _08131A04
- .4byte _08131A0A
- .4byte _08131A34
- .4byte _08131A42
-_08131934:
- bl sub_80BF768
- bl clear_scheduled_bg_copies_to_vram
- b _08131A52
-_0813193E:
- bl remove_some_task
- b _08131A52
-_08131944:
- bl FreeAllSpritePalettes
- b _08131A52
-_0813194A:
- bl ResetPaletteFade
- b _08131A52
-_08131950:
- bl ResetSpriteData
- b _08131A52
-_08131956:
- bl ResetTasks
- b _08131A52
-_0813195C:
- bl sub_8131AB8
- ldr r0, _0813196C @ =gUnknown_203B118
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0x12]
- b _08131A52
- .align 2, 0
-_0813196C: .4byte gUnknown_203B118
-_08131970:
- bl sub_8133244
- b _08131A52
-_08131976:
- bl sub_8131B20
- lsls r0, 24
- cmp r0, 0
- bne _08131982
- b _08131A80
-_08131982:
- b _08131A52
-_08131984:
- ldr r0, _0813198C @ =gUnknown_20398A4
- bl sub_809A5E4
- b _08131A52
- .align 2, 0
-_0813198C: .4byte gUnknown_20398A4
-_08131990:
- bl sub_81320BC
- bl sub_8132120
- bl sub_8132170
- b _08131A52
-_0813199E:
- bl sub_8133404
- b _08131A52
-_081319A4:
- bl sub_8131C10
- bl sub_8131C50
- b _08131A52
-_081319AE:
- bl sub_81333C4
- b _08131A52
-_081319B4:
- ldr r0, _081319C0 @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bne _081319C8
- ldr r0, _081319C4 @ =sub_8132F20
- b _081319CA
- .align 2, 0
-_081319C0: .4byte gUnknown_203B10C
-_081319C4: .4byte sub_8132F20
-_081319C8:
- ldr r0, _081319F4 @ =sub_81322D4
-_081319CA:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081319F8 @ =gUnknown_3005E70
- ldr r2, _081319FC @ =gUnknown_203B10C
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0x8]
- bl ListMenuInit
- ldr r2, _08131A00 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- b _08131A52
- .align 2, 0
-_081319F4: .4byte sub_81322D4
-_081319F8: .4byte gUnknown_3005E70
-_081319FC: .4byte gUnknown_203B10C
-_08131A00: .4byte gTasks
-_08131A04:
- bl sub_8132018
- b _08131A52
-_08131A0A:
- ldr r0, _08131A2C @ =gUnknown_203B10C
- ldrh r1, [r0, 0x8]
- ldrh r0, [r0, 0xA]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl sub_813368C
- ldr r1, _08131A30 @ =gUnknown_203B118
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- b _08131A52
- .align 2, 0
-_08131A2C: .4byte gUnknown_203B10C
-_08131A30: .4byte gUnknown_203B118
-_08131A34:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08131A52
-_08131A42:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08131A52:
- ldr r1, _08131A64 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08131A80
- .align 2, 0
-_08131A64: .4byte gMain
-_08131A68:
- ldr r0, _08131A78 @ =sub_8131880
- bl SetVBlankCallback
- ldr r0, _08131A7C @ =sub_8131864
- bl SetMainCallback2
- movs r0, 0x1
- b _08131A82
- .align 2, 0
-_08131A78: .4byte sub_8131880
-_08131A7C: .4byte sub_8131864
-_08131A80:
- movs r0, 0
-_08131A82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81318C0
-
- thumb_func_start sub_8131A8C
-sub_8131A8C: @ 8131A8C
- ldr r0, _08131AA4 @ =gUnknown_203B118
- movs r1, 0
- str r1, [r0]
- ldr r0, _08131AA8 @ =gUnknown_203B120
- str r1, [r0]
- ldr r0, _08131AAC @ =gUnknown_203B124
- str r1, [r0]
- ldr r0, _08131AB0 @ =gUnknown_203B128
- str r1, [r0]
- ldr r0, _08131AB4 @ =gUnknown_203B12C
- str r1, [r0]
- bx lr
- .align 2, 0
-_08131AA4: .4byte gUnknown_203B118
-_08131AA8: .4byte gUnknown_203B120
-_08131AAC: .4byte gUnknown_203B124
-_08131AB0: .4byte gUnknown_203B128
-_08131AB4: .4byte gUnknown_203B12C
- thumb_func_end sub_8131A8C
-
- thumb_func_start sub_8131AB8
-sub_8131AB8: @ 8131AB8
- push {r4,lr}
- bl sub_80BF7C8
- ldr r4, _08131B18 @ =gUnknown_203B120
- movs r0, 0x80
- lsls r0, 4
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08131B1C @ =gUnknown_8463134
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r1, [r4]
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131B18: .4byte gUnknown_203B120
-_08131B1C: .4byte gUnknown_8463134
- thumb_func_end sub_8131AB8
-
- thumb_func_start sub_8131B20
-sub_8131B20: @ 8131B20
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08131B3C @ =gUnknown_203B118
- ldr r0, [r4]
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bhi _08131BF8
- lsls r0, 2
- ldr r1, _08131B40 @ =_08131B44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131B3C: .4byte gUnknown_203B118
-_08131B40: .4byte _08131B44
- .align 2, 0
-_08131B44:
- .4byte _08131B58
- .4byte _08131B74
- .4byte _08131B94
- .4byte _08131BAC
- .4byte _08131BDC
-_08131B58:
- bl reset_temp_tile_data_buffers
- ldr r1, _08131B70 @ =gUnknown_8E845D8
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _08131BE2
- .align 2, 0
-_08131B70: .4byte gUnknown_8E845D8
-_08131B74:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08131C06
- ldr r0, _08131B8C @ =gUnknown_8E84A24
- ldr r1, _08131B90 @ =gUnknown_203B120
- ldr r1, [r1]
- bl LZDecompressWram
- b _08131BE2
- .align 2, 0
-_08131B8C: .4byte gUnknown_8E84A24
-_08131B90: .4byte gUnknown_203B120
-_08131B94:
- ldr r4, _08131BA8 @ =gUnknown_8E84B70
- movs r0, 0x1
- bl GetBgTilemapBuffer
- adds r1, r0, 0
- adds r0, r4, 0
- bl LZDecompressWram
- b _08131BE2
- .align 2, 0
-_08131BA8: .4byte gUnknown_8E84B70
-_08131BAC:
- ldr r0, _08131BC4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08131BCC
- ldr r0, _08131BC8 @ =gUnknown_8E84CB0
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- b _08131BE2
- .align 2, 0
-_08131BC4: .4byte gSaveBlock2Ptr
-_08131BC8: .4byte gUnknown_8E84CB0
-_08131BCC:
- ldr r0, _08131BD8 @ =gUnknown_8E84D20
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- b _08131BE2
- .align 2, 0
-_08131BD8: .4byte gUnknown_8E84D20
-_08131BDC:
- ldr r0, _08131BF0 @ =gUnknown_8463218
- bl LoadCompressedObjectPic
-_08131BE2:
- ldr r0, _08131BF4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- b _08131C06
- .align 2, 0
-_08131BF0: .4byte gUnknown_8463218
-_08131BF4: .4byte gUnknown_203B118
-_08131BF8:
- bl sub_81338A8
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1, 0x12]
- movs r0, 0x1
- b _08131C08
-_08131C06:
- movs r0, 0
-_08131C08:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8131B20
-
- thumb_func_start sub_8131C10
-sub_8131C10: @ 8131C10
- push {r4,lr}
- ldr r0, _08131C40 @ =gUnknown_20398A4
- ldr r4, _08131C44 @ =gUnknown_203B124
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- lsls r0, 3
- bl Alloc
- str r0, [r4]
- ldr r4, _08131C48 @ =gUnknown_203B128
- ldr r0, _08131C4C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- bl Alloc
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131C40: .4byte gUnknown_20398A4
-_08131C44: .4byte gUnknown_203B124
-_08131C48: .4byte gUnknown_203B128
-_08131C4C: .4byte gUnknown_203B118
- thumb_func_end sub_8131C10
-
- thumb_func_start sub_8131C50
-sub_8131C50: @ 8131C50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08131D28 @ =gUnknown_20398A4
- mov r8, r0
- movs r6, 0
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r6, r0
- bcs _08131CA0
- ldr r7, _08131D30 @ =gUnknown_203B128
-_08131C68:
- lsls r5, r6, 3
- subs r4, r5, r6
- lsls r4, 2
- adds r4, r6
- ldr r0, [r7]
- adds r0, r4
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r6, 2
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8131D48
- ldr r0, _08131D34 @ =gUnknown_203B124
- ldr r0, [r0]
- adds r5, r0
- ldr r0, [r7]
- adds r0, r4
- str r0, [r5]
- str r6, [r5, 0x4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r6, r0
- bcc _08131C68
-_08131CA0:
- ldr r0, _08131D34 @ =gUnknown_203B124
- ldr r3, [r0]
- lsls r0, r6, 3
- adds r0, r3
- ldr r1, _08131D38 @ =gUnknown_84166DB
- str r1, [r0]
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- ldr r2, _08131D3C @ =gUnknown_3005E70
- str r3, [r2]
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r3, [r0]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0xC]
- strb r1, [r2, 0x10]
- strb r1, [r2, 0x11]
- movs r0, 0x8
- strb r0, [r2, 0x12]
- strb r1, [r2, 0x13]
- ldrb r0, [r2, 0x16]
- movs r4, 0x8
- negs r4, r4
- ands r4, r0
- movs r0, 0x39
- negs r0, r0
- ands r4, r0
- movs r0, 0x10
- orrs r4, r0
- strb r4, [r2, 0x16]
- ldrb r1, [r2, 0x14]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r5, 0x2
- orrs r0, r5
- strb r0, [r2, 0x14]
- ldrb r1, [r3, 0x5]
- strh r1, [r2, 0xE]
- ldrb r1, [r2, 0x17]
- movs r3, 0x40
- negs r3, r3
- ands r3, r1
- orrs r3, r5
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x14]
- movs r0, 0x30
- strb r0, [r2, 0x15]
- ldr r0, _08131D40 @ =sub_8131E18
- str r0, [r2, 0x4]
- ldr r0, _08131D44 @ =sub_8131E68
- str r0, [r2, 0x8]
- movs r0, 0x3F
- ands r3, r0
- strb r3, [r2, 0x17]
- ands r4, r0
- strb r4, [r2, 0x16]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131D28: .4byte gUnknown_20398A4
-_08131D2C: .4byte gUnknown_203B118
-_08131D30: .4byte gUnknown_203B128
-_08131D34: .4byte gUnknown_203B124
-_08131D38: .4byte gUnknown_84166DB
-_08131D3C: .4byte gUnknown_3005E70
-_08131D40: .4byte sub_8131E18
-_08131D44: .4byte sub_8131E68
- thumb_func_end sub_8131C50
-
- thumb_func_start sub_8131D48
-sub_8131D48: @ 8131D48
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r5, _08131D8C @ =gStringVar4
- ldr r1, _08131D90 @ =gUnknown_84166FF
- adds r0, r5, 0
- bl StringCopy
- movs r0, 0xA9
- lsls r0, 1
- cmp r6, r0
- bls _08131DA4
- ldr r1, _08131D94 @ =gUnknown_8463178
- adds r0, r5, 0
- bl StringAppend
- ldr r1, _08131D98 @ =gUnknown_8416226
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _08131D9C @ =gStringVar1
- ldr r0, _08131DA0 @ =0xfffffeae
- adds r1, r6, r0
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- b _08131DC4
- .align 2, 0
-_08131D8C: .4byte gStringVar4
-_08131D90: .4byte gUnknown_84166FF
-_08131D94: .4byte gUnknown_8463178
-_08131D98: .4byte gUnknown_8416226
-_08131D9C: .4byte gStringVar1
-_08131DA0: .4byte 0xfffffeae
-_08131DA4:
- ldr r1, _08131DFC @ =gUnknown_8416226
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _08131E00 @ =gStringVar1
- ldr r0, _08131E04 @ =0xfffffee0
- adds r1, r6, r0
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
-_08131DC4:
- ldr r4, _08131E08 @ =gStringVar4
- ldr r1, _08131E0C @ =gUnknown_846317C
- adds r0, r4, 0
- bl StringAppend
- ldr r1, _08131E10 @ =gUnknown_8416703
- adds r0, r4, 0
- bl StringAppend
- adds r0, r6, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _08131E14 @ =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131DFC: .4byte gUnknown_8416226
-_08131E00: .4byte gStringVar1
-_08131E04: .4byte 0xfffffee0
-_08131E08: .4byte gStringVar4
-_08131E0C: .4byte gUnknown_846317C
-_08131E10: .4byte gUnknown_8416703
-_08131E14: .4byte gMoveNames
- thumb_func_end sub_8131D48
-
- thumb_func_start sub_8131E18
-sub_8131E18: @ 8131E18
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- bne _08131E2C
- movs r5, 0
- b _08131E3A
-_08131E2C:
- lsls r1, r4, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r5, r0, 16
-_08131E3A:
- cmp r6, 0x1
- beq _08131E50
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08131E64 @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl sub_81337E4
-_08131E50:
- adds r0, r4, 0
- bl sub_8131F0C
- adds r0, r5, 0
- bl sub_8133444
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131E64: .4byte gUnknown_203B118
- thumb_func_end sub_8131E18
-
- thumb_func_start sub_8131E68
-sub_8131E68: @ 8131E68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r7, r9
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r4, r8
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08131EFE
- lsls r0, r1, 16
- lsrs r6, r0, 16
- movs r0, 0x4
- adds r1, r6, 0
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08131EF4
- ldr r4, _08131EE8 @ =gStringVar1
- movs r0, 0x4
- adds r1, r6, 0
- bl sub_809A7B4
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08131EEC @ =gStringVar4
- ldr r1, _08131EF0 @ =gUnknown_84162B9
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r0, r8
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- mov r0, r9
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x7E
- bl sub_81332EC
- b _08131EFE
- .align 2, 0
-_08131EE8: .4byte gStringVar1
-_08131EEC: .4byte gStringVar4
-_08131EF0: .4byte gUnknown_84162B9
-_08131EF4:
- adds r0, r7, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl sub_81335B0
-_08131EFE:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8131E68
-
- thumb_func_start sub_8131F0C
-sub_8131F0C: @ 8131F0C
- push {r4,lr}
- sub sp, 0x14
- adds r1, r0, 0
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08131F30
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _08131F32
-_08131F30:
- ldr r4, _08131F60 @ =gUnknown_84166E1
-_08131F32:
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0x2
- bl sub_81332EC
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131F60: .4byte gUnknown_84166E1
- thumb_func_end sub_8131F0C
-
- thumb_func_start sub_8131F64
-sub_8131F64: @ 8131F64
- push {lr}
- sub sp, 0x8
- movs r1, 0x8
- str r1, [sp]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80F6B08
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_8131F64
-
- thumb_func_start sub_8131F90
-sub_8131F90: @ 8131F90
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_8131FB0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8131F90
-
- thumb_func_start sub_8131FB0
-sub_8131FB0: @ 8131FB0
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- bne _08131FF4
- movs r0, 0x2
- movs r1, 0
- bl GetFontAttribute
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl FillWindowPixelRect
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- b _0813200A
-_08131FF4:
- ldr r2, _08132014 @ =gFameCheckerText_ListMenuCursor
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r3, 0
- bl sub_81332EC
-_0813200A:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132014: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end sub_8131FB0
-
- thumb_func_start sub_8132018
-sub_8132018: @ 8132018
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0813204C @ =gUnknown_203B118
- ldr r1, [r4]
- ldrb r0, [r1, 0x6]
- ldrb r1, [r1, 0x5]
- subs r0, r1
- adds r0, 0x1
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, _08132050 @ =gUnknown_203B116
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xA0
- movs r2, 0x8
- movs r3, 0x58
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813204C: .4byte gUnknown_203B118
-_08132050: .4byte gUnknown_203B116
- thumb_func_end sub_8132018
-
- thumb_func_start sub_8132054
-sub_8132054: @ 8132054
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08132088 @ =gUnknown_203B118
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r1, 0xA
- str r1, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x98
- movs r2, 0x48
- movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132088: .4byte gUnknown_203B118
- thumb_func_end sub_8132054
-
- thumb_func_start sub_813208C
-sub_813208C: @ 813208C
- push {r4,lr}
- ldr r4, _081320A8 @ =gUnknown_203B118
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _081320A2
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
-_081320A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081320A8: .4byte gUnknown_203B118
- thumb_func_end sub_813208C
-
- thumb_func_start sub_81320AC
-sub_81320AC: @ 81320AC
- ldr r1, _081320B8 @ =gUnknown_203B10C
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bx lr
- .align 2, 0
-_081320B8: .4byte gUnknown_203B10C
- thumb_func_end sub_81320AC
-
- thumb_func_start sub_81320BC
-sub_81320BC: @ 81320BC
- push {r4,lr}
- ldr r4, _08132118 @ =gUnknown_20398A4
- ldr r0, [r4]
- ldrb r1, [r4, 0x4]
- bl sub_809A584
- ldr r3, _0813211C @ =gUnknown_203B118
- ldr r1, [r3]
- movs r0, 0
- strb r0, [r1, 0x6]
- movs r2, 0
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08132100
- ldr r0, [r4]
- ldrh r0, [r0]
- cmp r0, 0
- beq _08132100
-_081320E0:
- ldr r0, [r3]
- ldrb r1, [r0, 0x6]
- adds r1, 0x1
- strb r1, [r0, 0x6]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08132100
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _081320E0
-_08132100:
- ldr r0, _0813211C @ =gUnknown_203B118
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- adds r0, 0x1
- cmp r0, 0x5
- ble _0813210E
- movs r0, 0x5
-_0813210E:
- strb r0, [r1, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132118: .4byte gUnknown_20398A4
-_0813211C: .4byte gUnknown_203B118
- thumb_func_end sub_81320BC
-
- thumb_func_start sub_8132120
-sub_8132120: @ 8132120
- push {r4,r5,lr}
- ldr r0, _08132160 @ =gUnknown_203B10C
- ldrh r1, [r0, 0xA]
- adds r4, r0, 0
- ldr r5, _08132164 @ =gUnknown_203B118
- cmp r1, 0
- beq _08132144
- ldrh r0, [r4, 0xA]
- ldr r1, [r5]
- ldrb r3, [r1, 0x5]
- adds r0, r3
- ldrb r2, [r1, 0x6]
- adds r1, r2, 0x1
- cmp r0, r1
- ble _08132144
- subs r0, r3, 0x1
- subs r0, r2, r0
- strh r0, [r4, 0xA]
-_08132144:
- adds r3, r4, 0
- ldrh r0, [r3, 0xA]
- ldrh r1, [r3, 0x8]
- adds r0, r1
- ldr r1, [r5]
- ldrb r1, [r1, 0x6]
- adds r2, r1, 0x1
- cmp r0, r2
- blt _0813216A
- cmp r2, 0x1
- bgt _08132168
- movs r0, 0
- strh r0, [r3, 0x8]
- b _0813216A
- .align 2, 0
-_08132160: .4byte gUnknown_203B10C
-_08132164: .4byte gUnknown_203B118
-_08132168:
- strh r1, [r4, 0x8]
-_0813216A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8132120
-
- thumb_func_start sub_8132170
-sub_8132170: @ 8132170
- push {r4-r6,lr}
- ldr r0, _081321CC @ =gUnknown_203B10C
- ldrh r1, [r0, 0x8]
- adds r6, r0, 0
- cmp r1, 0x3
- bls _081321C4
- movs r4, 0
- ldrh r0, [r6, 0x8]
- subs r0, 0x3
- cmp r4, r0
- bgt _081321C4
- ldrh r1, [r6, 0xA]
- ldr r5, _081321D0 @ =gUnknown_203B118
- ldr r2, [r5]
- ldrb r0, [r2, 0x5]
- adds r1, r0
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- cmp r1, r0
- beq _081321C4
- adds r3, r6, 0
-_0813219A:
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r3, 0x8]
- subs r0, 0x3
- cmp r4, r0
- bgt _081321C4
- ldrh r1, [r6, 0xA]
- ldr r2, [r5]
- ldrb r0, [r2, 0x5]
- adds r1, r0
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- cmp r1, r0
- bne _0813219A
-_081321C4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081321CC: .4byte gUnknown_203B10C
-_081321D0: .4byte gUnknown_203B118
- thumb_func_end sub_8132170
-
- thumb_func_start sub_81321D4
-sub_81321D4: @ 81321D4
- push {lr}
- ldr r0, _0813221C @ =gUnknown_203B118
- ldr r0, [r0]
- cmp r0, 0
- beq _081321E2
- bl Free
-_081321E2:
- ldr r0, _08132220 @ =gUnknown_203B120
- ldr r0, [r0]
- cmp r0, 0
- beq _081321EE
- bl Free
-_081321EE:
- ldr r0, _08132224 @ =gUnknown_203B124
- ldr r0, [r0]
- cmp r0, 0
- beq _081321FA
- bl Free
-_081321FA:
- ldr r0, _08132228 @ =gUnknown_203B128
- ldr r0, [r0]
- cmp r0, 0
- beq _08132206
- bl Free
-_08132206:
- ldr r0, _0813222C @ =gUnknown_203B12C
- ldr r0, [r0]
- cmp r0, 0
- beq _08132212
- bl Free
-_08132212:
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .align 2, 0
-_0813221C: .4byte gUnknown_203B118
-_08132220: .4byte gUnknown_203B120
-_08132224: .4byte gUnknown_203B124
-_08132228: .4byte gUnknown_203B128
-_0813222C: .4byte gUnknown_203B12C
- thumb_func_end sub_81321D4
-
- thumb_func_start sub_8132230
-sub_8132230: @ 8132230
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08132264 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08132268 @ =sub_813226C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132264: .4byte gTasks
-_08132268: .4byte sub_813226C
- thumb_func_end sub_8132230
-
- thumb_func_start sub_813226C
-sub_813226C: @ 813226C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081322A4 @ =gTasks+0x8
- adds r2, r0, r1
- ldr r0, _081322A8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081322CC
- ldrb r0, [r2]
- ldr r4, _081322AC @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- ldr r0, _081322B0 @ =gUnknown_203B118
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _081322B4
- bl SetMainCallback2
- b _081322BE
- .align 2, 0
-_081322A4: .4byte gTasks+0x8
-_081322A8: .4byte gPaletteFade
-_081322AC: .4byte gUnknown_203B116
-_081322B0: .4byte gUnknown_203B118
-_081322B4:
- adds r0, r4, 0
- subs r0, 0xA
- ldr r0, [r0]
- bl SetMainCallback2
-_081322BE:
- bl sub_813208C
- bl sub_81321D4
- adds r0, r5, 0
- bl DestroyTask
-_081322CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813226C
-
- thumb_func_start sub_81322D4
-sub_81322D4: @ 81322D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08132340 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _08132344 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0
- bne _081323C8
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081323C8
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r5, r0, 0
- ldrb r0, [r6]
- ldr r4, _08132348 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl get_coro_args_x18_x1A
- ldr r0, _0813234C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08132354
- adds r0, r4, 0
- subs r0, 0xA
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _08132354
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08132350 @ =gSpecialVar_ItemId
- mov r1, r8
- strh r1, [r0]
- b _08132370
- .align 2, 0
-_08132340: .4byte gTasks+0x8
-_08132344: .4byte gPaletteFade
-_08132348: .4byte gUnknown_203B116
-_0813234C: .4byte gMain
-_08132350: .4byte gSpecialVar_ItemId
-_08132354:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _08132364
- adds r0, 0x1
- cmp r5, r0
- bne _0813237C
- b _081323C8
-_08132364:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08132378 @ =gSpecialVar_ItemId
- movs r0, 0
- strh r0, [r1]
-_08132370:
- adds r0, r7, 0
- bl sub_8132230
- b _081323C8
- .align 2, 0
-_08132378: .4byte gSpecialVar_ItemId
-_0813237C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_8131F64
- bl sub_813208C
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8131F90
- strh r5, [r6, 0x2]
- lsls r4, r5, 16
- lsrs r4, 16
- movs r0, 0x4
- adds r1, r4, 0
- bl sub_809A7B4
- strh r0, [r6, 0x4]
- movs r0, 0x4
- adds r1, r4, 0
- bl sub_809A798
- ldr r1, _081323D4 @ =gSpecialVar_ItemId
- strh r0, [r1]
- ldr r0, _081323D8 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r2, _081323DC @ =gUnknown_8463140
- ldr r0, _081323E0 @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
-_081323C8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081323D4: .4byte gSpecialVar_ItemId
-_081323D8: .4byte gTasks
-_081323DC: .4byte gUnknown_8463140
-_081323E0: .4byte gUnknown_203B10C
- thumb_func_end sub_81322D4
-
- thumb_func_start sub_81323E4
-sub_81323E4: @ 81323E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8131F64
- bl sub_8132018
- ldr r1, _0813240C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08132410 @ =sub_81322D4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813240C: .4byte gTasks
-_08132410: .4byte sub_81322D4
- thumb_func_end sub_81323E4
-
- thumb_func_start sub_8132414
-sub_8132414: @ 8132414
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl sub_8133368
- bl sub_80BF708
- lsls r0, 24
- cmp r0, 0
- bne _08132454
- bl InUnionRoom
- cmp r0, 0x1
- beq _08132454
- ldr r4, _0813244C @ =gUnknown_203B118
- ldr r0, [r4]
- adds r0, 0x7
- movs r1, 0
- bl sub_8133630
- ldr r1, [r4]
- ldr r0, _08132450 @ =gUnknown_8463168
- str r0, [r1, 0xC]
- movs r0, 0x3
- b _08132468
- .align 2, 0
-_0813244C: .4byte gUnknown_203B118
-_08132450: .4byte gUnknown_8463168
-_08132454:
- ldr r4, _0813254C @ =gUnknown_203B118
- ldr r0, [r4]
- adds r0, 0x7
- movs r1, 0x1
- bl sub_8133630
- ldr r1, [r4]
- ldr r0, _08132550 @ =gUnknown_846316B
- str r0, [r1, 0xC]
- movs r0, 0x2
-_08132468:
- strb r0, [r1, 0x10]
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0813254C @ =gUnknown_203B118
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- movs r5, 0
- str r5, [sp]
- str r0, [sp, 0x4]
- ldrb r0, [r1, 0x10]
- str r0, [sp, 0x8]
- ldr r0, _08132554 @ =gUnknown_8463150
- str r0, [sp, 0xC]
- ldr r0, [r1, 0xC]
- str r0, [sp, 0x10]
- adds r0, r2, 0
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0x2
- bl AddItemMenuActionTextPrinters
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- str r0, [sp]
- ldrb r0, [r1, 0x10]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r2, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl sub_810F7D8
- movs r0, 0x80
- lsls r0, 1
- bl Alloc
- adds r4, r0, 0
- ldr r6, _08132558 @ =gSpecialVar_ItemId
- ldrh r1, [r6]
- bl sub_8131D48
- ldr r1, _0813255C @ =gUnknown_8416301
- adds r0, r4, 0
- bl StringAppend
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x2
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_81332EC
- adds r0, r4, 0
- bl Free
- ldrh r0, [r6]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- beq _08132528
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x2
- bl sub_81335B0
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
-_08132528:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, _08132560 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _08132564 @ =sub_8132568
- str r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813254C: .4byte gUnknown_203B118
-_08132550: .4byte gUnknown_846316B
-_08132554: .4byte gUnknown_8463150
-_08132558: .4byte gSpecialVar_ItemId
-_0813255C: .4byte gUnknown_8416301
-_08132560: .4byte gTasks
-_08132564: .4byte sub_8132568
- thumb_func_end sub_8132414
-
- thumb_func_start sub_8132568
-sub_8132568: @ 8132568
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081325E0
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081325E0
- adds r0, 0x1
- cmp r4, r0
- bne _081325C0
- movs r0, 0x5
- bl PlaySE
- ldr r2, _081325B8 @ =gUnknown_8463150
- ldr r0, _081325BC @ =gUnknown_203B118
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- ldr r1, [r1, 0xC]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _081325E0
- .align 2, 0
-_081325B8: .4byte gUnknown_8463150
-_081325BC: .4byte gUnknown_203B118
-_081325C0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _081325E8 @ =gUnknown_8463150
- ldr r0, _081325EC @ =gUnknown_203B118
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
-_081325E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081325E8: .4byte gUnknown_8463150
-_081325EC: .4byte gUnknown_203B118
- thumb_func_end sub_8132568
-
- thumb_func_start sub_81325F0
-sub_81325F0: @ 81325F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _08132634 @ =gUnknown_203B118
- ldr r0, [r5]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _08132638
- adds r0, r4, 0
- bl sub_81326F8
- b _0813264A
- .align 2, 0
-_08132634: .4byte gUnknown_203B118
-_08132638:
- ldr r1, _08132650 @ =gUnknown_3005E98
- ldr r0, _08132654 @ =sub_8125B40
- str r0, [r1]
- ldr r1, [r5]
- ldr r0, _08132658 @ =sub_8124C8C
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
-_0813264A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132650: .4byte gUnknown_3005E98
-_08132654: .4byte sub_8125B40
-_08132658: .4byte sub_8124C8C
- thumb_func_end sub_81325F0
-
- thumb_func_start sub_813265C
-sub_813265C: @ 813265C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081326D0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r6, _081326D4 @ =gUnknown_203B118
- ldr r0, [r6]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r4, 0
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081326EC
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _081326D8
- adds r0, r5, 0
- bl sub_81326F8
- b _081326F2
- .align 2, 0
-_081326D0: .4byte gTasks+0x8
-_081326D4: .4byte gUnknown_203B118
-_081326D8:
- ldr r1, [r6]
- ldr r0, _081326E8 @ =sub_8126EDC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_8132230
- b _081326F2
- .align 2, 0
-_081326E8: .4byte sub_8126EDC
-_081326EC:
- adds r0, r5, 0
- bl sub_8132714
-_081326F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813265C
-
- thumb_func_start sub_81326F8
-sub_81326F8: @ 81326F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813270C @ =gUnknown_841632A
- ldr r3, _08132710 @ =sub_8132758
- movs r1, 0x2
- bl sub_813337C
- pop {r0}
- bx r0
- .align 2, 0
-_0813270C: .4byte gUnknown_841632A
-_08132710: .4byte sub_8132758
- thumb_func_end sub_81326F8
-
- thumb_func_start sub_8132714
-sub_8132714: @ 8132714
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08132744 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _08132748 @ =gStringVar1
- bl sub_8099E90
- ldr r5, _0813274C @ =gStringVar4
- ldr r1, _08132750 @ =gUnknown_841635E
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r3, _08132754 @ =sub_8132758
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl sub_813337C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132744: .4byte gSpecialVar_ItemId
-_08132748: .4byte gStringVar1
-_0813274C: .4byte gStringVar4
-_08132750: .4byte gUnknown_841635E
-_08132754: .4byte sub_8132758
- thumb_func_end sub_8132714
-
- thumb_func_start sub_8132758
-sub_8132758: @ 8132758
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813277C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132776
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8132780
-_08132776:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813277C: .4byte gMain
- thumb_func_end sub_8132758
-
- thumb_func_start sub_8132780
-sub_8132780: @ 8132780
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _081327F0 @ =gTasks+0x8
- adds r5, r0
- ldrb r0, [r5]
- ldr r4, _081327F4 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- ldr r0, _081327F8 @ =gUnknown_3005E70
- subs r4, 0xA
- ldrh r1, [r4, 0xA]
- ldrh r2, [r4, 0x8]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r1, 0x1
- bl sub_8131F90
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x6
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl sub_81323E4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081327F0: .4byte gTasks+0x8
-_081327F4: .4byte gUnknown_203B116
-_081327F8: .4byte gUnknown_3005E70
- thumb_func_end sub_8132780
-
- thumb_func_start sub_81327FC
-sub_81327FC: @ 81327FC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132860 @ =gTasks+0x8
- adds r4, r0
- ldr r0, _08132864 @ =gUnknown_203B118
- ldr r0, [r0]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8131F90
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_81323E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132860: .4byte gTasks+0x8
-_08132864: .4byte gUnknown_203B118
- thumb_func_end sub_81327FC
-
- thumb_func_start sub_8132868
-sub_8132868: @ 8132868
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _081328A0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081328AC
- ldr r0, _081328A4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldr r0, _081328A8 @ =c2_8123744
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
- b _081328B2
- .align 2, 0
-_081328A0: .4byte gTasks+0x8
-_081328A4: .4byte gUnknown_203B118
-_081328A8: .4byte c2_8123744
-_081328AC:
- adds r0, r4, 0
- bl sub_8132714
-_081328B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8132868
-
- thumb_func_start sub_81328B8
-sub_81328B8: @ 81328B8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _081328F0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081328FC
- ldr r0, _081328F4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldr r0, _081328F8 @ =sub_808CE60
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
- b _08132902
- .align 2, 0
-_081328F0: .4byte gTasks+0x8
-_081328F4: .4byte gUnknown_203B118
-_081328F8: .4byte sub_808CE60
-_081328FC:
- adds r0, r4, 0
- bl sub_8132714
-_08132902:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81328B8
-
- thumb_func_start sub_8132908
-sub_8132908: @ 8132908
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08132950 @ =gTasks+0x8
- adds r4, r0, r1
- ldr r6, _08132954 @ =gSpecialVar_ItemId
- ldrh r0, [r6]
- bl itemid_get_market_price
- lsls r0, 16
- cmp r0, 0
- bne _08132968
- ldrh r0, [r6]
- ldr r1, _08132958 @ =gStringVar1
- bl sub_8099E90
- ldr r4, _0813295C @ =gStringVar4
- ldr r1, _08132960 @ =gUnknown_84168F1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08132964 @ =sub_8132780
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_813337C
- b _081329AE
- .align 2, 0
-_08132950: .4byte gTasks+0x8
-_08132954: .4byte gSpecialVar_ItemId
-_08132958: .4byte gStringVar1
-_0813295C: .4byte gStringVar4
-_08132960: .4byte gUnknown_84168F1
-_08132964: .4byte sub_8132780
-_08132968:
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08132980
- bl sub_81335E0
- adds r0, r5, 0
- bl sub_81329C4
- b _081329AE
-_08132980:
- cmp r0, 0x63
- ble _08132988
- movs r0, 0x63
- strh r0, [r4, 0x4]
-_08132988:
- ldrh r0, [r6]
- ldr r1, _081329B4 @ =gStringVar1
- bl sub_8099E90
- ldr r4, _081329B8 @ =gStringVar4
- ldr r1, _081329BC @ =gUnknown_8416911
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _081329C0 @ =sub_8132AAC
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_813337C
-_081329AE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081329B4: .4byte gStringVar1
-_081329B8: .4byte gStringVar4
-_081329BC: .4byte gUnknown_8416911
-_081329C0: .4byte sub_8132AAC
- thumb_func_end sub_8132908
-
- thumb_func_start sub_81329C4
-sub_81329C4: @ 81329C4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132A20 @ =gTasks+0x8
- adds r4, r0
- ldr r6, _08132A24 @ =gStringVar3
- ldrh r1, [r4, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _08132A28 @ =gStringVar4
- ldr r1, _08132A2C @ =gUnknown_8416936
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08132A30 @ =sub_8132A34
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_813337C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132A20: .4byte gTasks+0x8
-_08132A24: .4byte gStringVar3
-_08132A28: .4byte gStringVar4
-_08132A2C: .4byte gUnknown_8416936
-_08132A30: .4byte sub_8132A34
- thumb_func_end sub_81329C4
-
- thumb_func_start sub_8132A34
-sub_8132A34: @ 8132A34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08132A44 @ =gUnknown_8463170
- bl sub_8133604
- pop {r0}
- bx r0
- .align 2, 0
-_08132A44: .4byte gUnknown_8463170
- thumb_func_end sub_8132A34
-
- thumb_func_start sub_8132A48
-sub_8132A48: @ 8132A48
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132AA8 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8131F90
- adds r0, r5, 0
- bl sub_81323E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132AA8: .4byte gTasks+0x8
- thumb_func_end sub_8132A48
-
- thumb_func_start sub_8132AAC
-sub_8132AAC: @ 8132AAC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _08132B48 @ =gTasks+0x8
- adds r0, r4, r6
- mov r8, r0
- movs r0, 0x7
- bl sub_8133354
- ldr r0, _08132B4C @ =gStringVar1
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _08132B50 @ =gStringVar4
- ldr r1, _08132B54 @ =gUnknown_84162B9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r0, 0x7
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl sub_81332EC
- mov r2, r8
- ldrh r1, [r2, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r3, r8
- movs r2, 0x10
- ldrsh r1, [r3, r2]
- muls r1, r0
- movs r0, 0x1
- bl sub_8132B5C
- bl sub_81335E0
- bl sub_8132054
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- subs r6, 0x8
- adds r4, r6
- ldr r0, _08132B58 @ =sub_8132BC8
- str r0, [r4]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132B48: .4byte gTasks+0x8
-_08132B4C: .4byte gStringVar1
-_08132B50: .4byte gStringVar4
-_08132B54: .4byte gUnknown_84162B9
-_08132B58: .4byte sub_8132BC8
- thumb_func_end sub_8132AAC
-
- thumb_func_start sub_8132B5C
-sub_8132B5C: @ 8132B5C
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x7
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, _08132BBC @ =gStringVar1
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _08132BC0 @ =gStringVar4
- ldr r1, _08132BC4 @ =gUnknown_84162B9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x7
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl sub_81332EC
- str r4, [sp]
- movs r0, 0x7
- movs r1, 0x38
- movs r2, 0xA
- adds r3, r6, 0
- bl PrintMoneyAmount
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132BBC: .4byte gStringVar1
-_08132BC0: .4byte gStringVar4
-_08132BC4: .4byte gUnknown_84162B9
- thumb_func_end sub_8132B5C
-
- thumb_func_start sub_8132BC8
-sub_8132BC8: @ 8132BC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08132C14 @ =gTasks+0x8
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x10
- ldrh r1, [r5, 0x4]
- bl sub_80BF848
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08132C18
- movs r0, 0x10
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- muls r1, r0
- adds r0, r4, 0
- bl sub_8132B5C
- b _08132CA6
- .align 2, 0
-_08132C14: .4byte gTasks+0x8
-_08132C18:
- ldr r0, _08132C4C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132C50
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_813208C
- adds r0, r4, 0
- bl sub_81329C4
- b _08132CA6
- .align 2, 0
-_08132C4C: .4byte gMain
-_08132C50:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132CA6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_813208C
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8131F90
- adds r0, r6, 0
- bl sub_81323E4
-_08132CA6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8132BC8
-
- thumb_func_start sub_8132CAC
-sub_8132CAC: @ 8132CAC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132D18 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, _08132D1C @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _08132D20 @ =gStringVar1
- bl sub_8099E90
- ldr r6, _08132D24 @ =gStringVar3
- ldrh r1, [r4, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _08132D28 @ =gStringVar4
- ldr r1, _08132D2C @ =gUnknown_8416959
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, _08132D30 @ =sub_8132D34
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_813337C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132D18: .4byte gTasks+0x8
-_08132D1C: .4byte gSpecialVar_ItemId
-_08132D20: .4byte gStringVar1
-_08132D24: .4byte gStringVar3
-_08132D28: .4byte gStringVar4
-_08132D2C: .4byte gUnknown_8416959
-_08132D30: .4byte sub_8132D34
- thumb_func_end sub_8132CAC
-
- thumb_func_start sub_8132D34
-sub_8132D34: @ 8132D34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- ldr r0, _08132DF4 @ =gTasks+0x8
- mov r9, r0
- adds r1, r6, 0
- add r1, r9
- mov r8, r1
- movs r0, 0xF8
- bl PlaySE
- ldr r5, _08132DF8 @ =gSpecialVar_ItemId
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- bl sub_809A1D8
- ldr r7, _08132DFC @ =gSaveBlock1Ptr
- ldr r4, [r7]
- movs r3, 0xA4
- lsls r3, 2
- mov r10, r3
- add r4, r10
- ldrh r0, [r5]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r2, r8
- movs r3, 0x10
- ldrsh r1, [r2, r3]
- muls r1, r0
- adds r0, r4, 0
- bl AddMoney
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- movs r2, 0x2
- bl sub_809C09C
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _08132E00 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- bl sub_81320BC
- bl sub_8132120
- bl sub_8131C50
- ldr r0, _08132E04 @ =gUnknown_3005E70
- subs r4, 0xA
- ldrh r1, [r4, 0xA]
- ldrh r2, [r4, 0x8]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1]
- movs r1, 0x2
- bl sub_8131F90
- ldr r0, [r7]
- add r0, r10
- bl GetMoney
- adds r1, r0, 0
- movs r0, 0x8
- movs r2, 0
- bl PrintMoneyAmountInMoneyBox
- movs r2, 0x8
- negs r2, r2
- add r9, r2
- add r6, r9
- ldr r0, _08132E08 @ =sub_8132E0C
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08132DF4: .4byte gTasks+0x8
-_08132DF8: .4byte gSpecialVar_ItemId
-_08132DFC: .4byte gSaveBlock1Ptr
-_08132E00: .4byte gUnknown_203B116
-_08132E04: .4byte gUnknown_3005E70
-_08132E08: .4byte sub_8132E0C
- thumb_func_end sub_8132D34
-
- thumb_func_start sub_8132E0C
-sub_8132E0C: @ 8132E0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08132E60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08132E26
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132E5A
-_08132E26:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- adds r0, r4, 0
- bl sub_8132780
-_08132E5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132E60: .4byte gMain
- thumb_func_end sub_8132E0C
-
- thumb_func_start sub_8132E64
-sub_8132E64: @ 8132E64
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _08132EFC @ =gUnknown_203B11C
- movs r0, 0xB2
- lsls r0, 1
- bl AllocZeroed
- str r0, [r4]
- ldr r5, _08132F00 @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r2, _08132F04 @ =0x00000464
- mov r8, r2
- add r1, r8
- movs r2, 0xE8
- bl memcpy
- ldr r0, [r4]
- adds r0, 0xE8
- ldr r1, [r5]
- movs r6, 0xEE
- lsls r6, 2
- adds r1, r6
- movs r2, 0x78
- bl memcpy
- ldr r3, [r4]
- ldr r2, _08132F08 @ =gUnknown_203B10C
- ldrh r1, [r2, 0x8]
- movs r4, 0xB0
- lsls r4, 1
- adds r0, r3, r4
- strh r1, [r0]
- ldrh r0, [r2, 0xA]
- movs r2, 0xB1
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- ldr r0, [r5]
- add r0, r8
- movs r1, 0x3A
- bl ClearItemSlots
- ldr r0, [r5]
- adds r0, r6
- movs r1, 0x1E
- bl ClearItemSlots
- bl sub_81320AC
- ldr r0, _08132F0C @ =0x00000121
- movs r1, 0x1
- bl sub_809A084
- ldr r0, _08132F10 @ =0x00000123
- movs r1, 0x1
- bl sub_809A084
- ldr r0, _08132F14 @ =0x00000129
- movs r1, 0x1
- bl sub_809A084
- ldr r0, _08132F18 @ =0x00000143
- movs r1, 0x1
- bl sub_809A084
- ldr r1, _08132F1C @ =sub_815ABFC
- movs r0, 0x4
- movs r2, 0
- bl sub_81317F8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132EFC: .4byte gUnknown_203B11C
-_08132F00: .4byte gSaveBlock1Ptr
-_08132F04: .4byte 0x00000464
-_08132F08: .4byte gUnknown_203B10C
-_08132F0C: .4byte 0x00000121
-_08132F10: .4byte 0x00000123
-_08132F14: .4byte 0x00000129
-_08132F18: .4byte 0x00000143
-_08132F1C: .4byte sub_815ABFC
- thumb_func_end sub_8132E64
-
- thumb_func_start sub_8132F20
-sub_8132F20: @ 8132F20
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r4, _08132F54 @ =gTasks+0x8
- adds r2, r3, r4
- ldr r0, _08132F58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08132F4E
- strh r0, [r2, 0x10]
- strh r0, [r2, 0x12]
- adds r0, r4, 0
- subs r0, 0x8
- adds r0, r3, r0
- ldr r1, _08132F5C @ =sub_8132F60
- str r1, [r0]
-_08132F4E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132F54: .4byte gTasks+0x8
-_08132F58: .4byte gPaletteFade
-_08132F5C: .4byte sub_8132F60
- thumb_func_end sub_8132F20
-
- thumb_func_start sub_8132F60
-sub_8132F60: @ 8132F60
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08132FA4 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _08132FA8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132F8E
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r0, 0x14
- bgt _08132F8E
- movs r0, 0x15
- strh r0, [r6, 0x10]
- bl sub_815AC20
-_08132F8E:
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x15
- bls _08132F98
- b _08133210
-_08132F98:
- lsls r0, 2
- ldr r1, _08132FAC @ =_08132FB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08132FA4: .4byte gTasks+0x8
-_08132FA8: .4byte gMain
-_08132FAC: .4byte _08132FB0
- .align 2, 0
-_08132FB0:
- .4byte _08133008
- .4byte _08133024
- .4byte _08133050
- .4byte _08133050
- .4byte _08133050
- .4byte _08133080
- .4byte _08133080
- .4byte _08133080
- .4byte _081330B0
- .4byte _081330E0
- .4byte _081330F4
- .4byte _08133024
- .4byte _08133050
- .4byte _08133050
- .4byte _08133050
- .4byte _08133080
- .4byte _08133080
- .4byte _08133080
- .4byte _0813312C
- .4byte _081330E0
- .4byte _0813315C
- .4byte _08133170
-_08133008:
- ldr r0, _08133020 @ =0xffff8405
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x6
- bl BeginNormalPaletteFade
- movs r0, 0x1
- bl sub_8131F64
- b _081331EA
- .align 2, 0
-_08133020: .4byte 0xffff8405
-_08133024:
- ldr r0, _0813304C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08133036
- b _08133232
-_08133036:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _08133046
- b _08133232
-_08133046:
- strh r1, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_0813304C: .4byte gPaletteFade
-_08133050:
- movs r0, 0x12
- ldrsh r1, [r6, r0]
- cmp r1, 0
- bne _08133066
- ldr r0, _0813307C @ =gMain
- strh r1, [r0, 0x2E]
- movs r1, 0x80
- strh r1, [r0, 0x30]
- ldrb r0, [r6]
- bl ListMenuHandleInput
-_08133066:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _08133076
- b _08133232
-_08133076:
- movs r0, 0
- strh r0, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_0813307C: .4byte gMain
-_08133080:
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- cmp r1, 0
- bne _08133096
- ldr r0, _081330AC @ =gMain
- strh r1, [r0, 0x2E]
- movs r1, 0x40
- strh r1, [r0, 0x30]
- ldrb r0, [r6]
- bl ListMenuHandleInput
-_08133096:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _081330A6
- b _08133232
-_081330A6:
- movs r0, 0
- strh r0, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_081330AC: .4byte gMain
-_081330B0:
- movs r0, 0x1
- bl sub_8131F64
- ldr r2, _081330D4 @ =gUnknown_841C587
- adds r0, r4, 0
- movs r1, 0x4
- movs r3, 0
- bl sub_813337C
- ldr r1, _081330D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081330DC @ =sub_8132F60
- str r1, [r0]
- b _081331EA
- .align 2, 0
-_081330D4: .4byte gUnknown_841C587
-_081330D8: .4byte gTasks
-_081330DC: .4byte sub_8132F60
-_081330E0:
- bl RunTextPrinters
- movs r0, 0x6
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- beq _081330F2
- b _08133232
-_081330F2:
- b _081331EA
-_081330F4:
- ldr r0, _08133128 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08133102
- b _08133232
-_08133102:
- movs r0, 0
- bl sub_8131F64
- movs r0, 0x80
- lsls r0, 3
- movs r1, 0
- str r1, [sp]
- movs r2, 0x6
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- b _081331EA
- .align 2, 0
-_08133128: .4byte gMain
-_0813312C:
- movs r0, 0x1
- bl sub_8131F64
- ldr r2, _08133150 @ =gUnknown_841C693
- adds r0, r4, 0
- movs r1, 0x4
- movs r3, 0
- bl sub_813337C
- ldr r1, _08133154 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08133158 @ =sub_8132F60
- str r1, [r0]
- b _081331EA
- .align 2, 0
-_08133150: .4byte gUnknown_841C693
-_08133154: .4byte gTasks
-_08133158: .4byte sub_8132F60
-_0813315C:
- ldr r0, _0813316C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08133232
- b _081331EA
- .align 2, 0
-_0813316C: .4byte gMain
-_08133170:
- ldr r0, _081331F4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _08133232
- ldr r5, _081331F8 @ =gSaveBlock1Ptr
- ldr r0, [r5]
- ldr r1, _081331FC @ =0x00000464
- adds r0, r1
- ldr r4, _08133200 @ =gUnknown_203B11C
- ldr r1, [r4]
- movs r2, 0xE8
- bl memcpy
- ldr r0, [r5]
- movs r3, 0xEE
- lsls r3, 2
- adds r0, r3
- ldr r1, [r4]
- adds r1, 0xE8
- movs r2, 0x78
- bl memcpy
- ldrb r0, [r6]
- movs r1, 0
- movs r2, 0
- bl sub_810713C
- ldr r2, _08133204 @ =gUnknown_203B10C
- ldr r0, [r4]
- movs r3, 0xB0
- lsls r3, 1
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2, 0x8]
- adds r3, 0x2
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2, 0xA]
- bl Free
- ldr r0, _08133208 @ =gPlttBufferFaded
- ldr r1, _0813320C @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
- bl sub_8108CF0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- str r7, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081331EA:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
- b _08133232
- .align 2, 0
-_081331F4: .4byte gPaletteFade
-_081331F8: .4byte gSaveBlock1Ptr
-_081331FC: .4byte 0x00000464
-_08133200: .4byte gUnknown_203B11C
-_08133204: .4byte gUnknown_203B10C
-_08133208: .4byte gPlttBufferFaded
-_0813320C: .4byte gPlttBufferUnfaded
-_08133210:
- ldr r0, _0813323C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08133232
- ldr r0, _08133240 @ =gUnknown_203B10C
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_813208C
- bl sub_81321D4
- adds r0, r4, 0
- bl DestroyTask
-_08133232:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813323C: .4byte gPaletteFade
-_08133240: .4byte gUnknown_203B10C
- thumb_func_end sub_8132F60
-
- thumb_func_start sub_8133244
-sub_8133244: @ 8133244
- push {r4,lr}
- ldr r0, _081332E0 @ =gUnknown_8463190
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x5B
- movs r2, 0xE0
- bl sub_815001C
- movs r0, 0
- movs r1, 0x64
- movs r2, 0xB0
- bl sub_814FEAC
- movs r0, 0
- movs r1, 0x78
- movs r2, 0xD0
- bl sub_814FF2C
- ldr r4, _081332E4 @ =gUnknown_841F408
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _081332E8 @ =gUnknown_8463180
- adds r0, r4, 0
- movs r1, 0xF6
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD6
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0xC0
- movs r1, 0x1
- bl sub_8107D38
- movs r4, 0
-_081332A4:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _081332A4
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081332E0: .4byte gUnknown_8463190
-_081332E4: .4byte gUnknown_841F408
-_081332E8: .4byte gUnknown_8463180
- thumb_func_end sub_8133244
-
- thumb_func_start sub_81332EC
-sub_81332EC: @ 81332EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r3
- ldr r3, [sp, 0x30]
- ldr r4, [sp, 0x34]
- ldr r6, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- mov r8, r5
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- mov r9, r7
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, _08133350 @ =gUnknown_8463184
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r2, [sp, 0x10]
- mov r2, r9
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133350: .4byte gUnknown_8463184
- thumb_func_end sub_81332EC
-
- thumb_func_start sub_8133354
-sub_8133354: @ 8133354
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0x5B
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_8133354
-
- thumb_func_start sub_8133368
-sub_8133368: @ 8133368
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0x78
- movs r3, 0xD
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_8133368
-
- thumb_func_start sub_813337C
-sub_813337C: @ 813337C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F78A8
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x6
- movs r2, 0x64
- movs r3, 0xB
- bl DisplayMessageAndContinueTask
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813337C
-
- thumb_func_start sub_81333C4
-sub_81333C4: @ 81333C4
- push {r4,lr}
- sub sp, 0xC
- ldr r4, _081333FC @ =gUnknown_84166D3
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r2, 0x48
- subs r2, r0
- lsrs r2, 1
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08133400 @ =gUnknown_8463184
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081333FC: .4byte gUnknown_84166D3
-_08133400: .4byte gUnknown_8463184
- thumb_func_end sub_81333C4
-
- thumb_func_start sub_8133404
-sub_8133404: @ 8133404
- push {lr}
- movs r0, 0x4
- movs r1, 0x13
- movs r2, 0
- movs r3, 0
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x14
- movs r2, 0
- movs r3, 0xC
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x15
- movs r2, 0
- movs r3, 0x18
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x16
- movs r2, 0
- movs r3, 0x24
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8133404
-
- thumb_func_start sub_8133444
-sub_8133444: @ 8133444
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0x30
- str r0, [sp, 0x4]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
- cmp r4, 0
- bne _081334A8
- movs r4, 0
- movs r5, 0
-_0813346E:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 26
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x3
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- ldr r2, _081334A4 @ =gUnknown_8416213
- movs r3, 0x7
- bl sub_81332EC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0813346E
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- b _0813359A
- .align 2, 0
-_081334A4: .4byte gUnknown_8416213
-_081334A8:
- adds r0, r4, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _081334D8 @ =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r5, r0, r1
- ldrb r1, [r5, 0x2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- movs r2, 0
- movs r3, 0
- bl sub_8107D68
- ldrb r0, [r5, 0x1]
- cmp r0, 0x1
- bhi _081334E0
- ldr r2, _081334DC @ =gUnknown_8416213
- b _081334F0
- .align 2, 0
-_081334D8: .4byte gBattleMoves
-_081334DC: .4byte gUnknown_8416213
-_081334E0:
- ldr r4, _08133524 @ =gStringVar1
- ldrb r1, [r5, 0x1]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_081334F0:
- movs r0, 0xC
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x3
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- movs r3, 0x7
- bl sub_81332EC
- ldr r2, _08133528 @ =gBattleMoves
- lsls r1, r7, 1
- adds r0, r1, r7
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x3]
- adds r6, r1, 0
- cmp r0, 0
- bne _08133530
- ldr r2, _0813352C @ =gUnknown_8416213
- b _08133540
- .align 2, 0
-_08133524: .4byte gStringVar1
-_08133528: .4byte gBattleMoves
-_0813352C: .4byte gUnknown_8416213
-_08133530:
- ldr r4, _081335A8 @ =gStringVar1
- ldrb r1, [r2, 0x3]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_08133540:
- movs r0, 0x18
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0xFF
- mov r8, r0
- str r0, [sp, 0xC]
- movs r0, 0x3
- mov r9, r0
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- movs r3, 0x7
- bl sub_81332EC
- ldr r5, _081335A8 @ =gStringVar1
- ldr r1, _081335AC @ =gBattleMoves
- adds r0, r6, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x4]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x24
- str r0, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- mov r0, r9
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- adds r2, r5, 0
- movs r3, 0x7
- bl sub_81332EC
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
-_0813359A:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081335A8: .4byte gStringVar1
-_081335AC: .4byte gBattleMoves
- thumb_func_end sub_8133444
-
- thumb_func_start sub_81335B0
-sub_81335B0: @ 81335B0
- push {r4,lr}
- sub sp, 0x8
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _081335DC @ =gUnknown_8E99118
- movs r2, 0x10
- str r2, [sp]
- movs r2, 0xC
- str r2, [sp, 0x4]
- adds r2, r4, 0
- bl BlitBitmapToWindow
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081335DC: .4byte gUnknown_8E99118
- thumb_func_end sub_81335B0
-
- thumb_func_start sub_81335E0
-sub_81335E0: @ 81335E0
- push {lr}
- ldr r0, _08133600 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- movs r0, 0x8
- movs r1, 0x78
- movs r2, 0xD
- bl PrintMoneyAmountInMoneyBoxWithBorder
- pop {r0}
- bx r0
- .align 2, 0
-_08133600: .4byte gSaveBlock1Ptr
- thumb_func_end sub_81335E0
-
- thumb_func_start sub_8133604
-sub_8133604: @ 8133604
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813362C @ =gUnknown_84631E0
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x5B
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF5D0
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0813362C: .4byte gUnknown_84631E0
- thumb_func_end sub_8133604
-
- thumb_func_start sub_8133630
-sub_8133630: @ 8133630
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _08133656
- lsls r0, r1, 3
- ldr r1, _08133660 @ =gUnknown_84631E8
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_8133354
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_08133656:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133660: .4byte gUnknown_84631E8
- thumb_func_end sub_8133630
-
- thumb_func_start sub_8133664
-sub_8133664: @ 8133664
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_810F4D8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133664
-
- thumb_func_start sub_813368C
-sub_813368C: @ 813368C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _081336E8 @ =gUnknown_8463220
- movs r1, 0x29
- movs r2, 0x2E
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, 0
- beq _081336F4
- adds r5, r6, 0
- subs r5, 0x21
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r0, _081336EC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8133714
- ldr r0, _081336F0 @ =gBattleMoves
- mov r8, r0
- adds r0, r6, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x2]
- bl sub_8133730
- adds r0, r4, 0
- adds r1, r5, 0
- b _08133700
- .align 2, 0
-_081336E8: .4byte gUnknown_8463220
-_081336EC: .4byte gSprites
-_081336F0: .4byte gBattleMoves
-_081336F4:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08133710 @ =gSprites
- adds r0, r1
- movs r1, 0xFF
-_08133700:
- bl sub_8133790
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08133710: .4byte gSprites
- thumb_func_end sub_813368C
-
- thumb_func_start sub_8133714
-sub_8133714: @ 8133714
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x31
- bls _08133726
- movs r1, 0x1
- bl StartSpriteAnim
- b _0813372C
-_08133726:
- movs r1, 0
- bl StartSpriteAnim
-_0813372C:
- pop {r0}
- bx r0
- thumb_func_end sub_8133714
-
- thumb_func_start sub_8133730
-sub_8133730: @ 8133730
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xC8
- lsls r0, 1
- bl IndexOfSpritePaletteTag
- lsls r0, 28
- lsrs r5, r0, 24
- ldr r2, _08133784 @ =gUnknown_203B12C
- ldr r0, _08133788 @ =gUnknown_8463238
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- lsls r1, 1
- ldr r0, [r2]
- adds r0, r1
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- adds r1, r5, 0
- orrs r1, r2
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0813378C @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bne _0813377C
- adds r1, r5, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- movs r1, 0x4
- movs r2, 0
- bl BlendPalettes
-_0813377C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08133784: .4byte gUnknown_203B12C
-_08133788: .4byte gUnknown_8463238
-_0813378C: .4byte gUnknown_203B10C
- thumb_func_end sub_8133730
-
- thumb_func_start sub_8133790
-sub_8133790: @ 8133790
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r4, 0xFF
- bne _081337A6
- movs r6, 0x1B
- movs r1, 0x36
- movs r0, 0x14
- strh r0, [r5, 0x26]
- b _081337D8
-_081337A6:
- cmp r4, 0x31
- bls _081337B0
- adds r0, r4, 0
- subs r0, 0x32
- b _081337B4
-_081337B0:
- adds r0, r4, 0
- adds r0, 0x8
-_081337B4:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 9
- movs r1, 0x3A
- bl __divsi3
- asrs r0, 8
- movs r1, 0x29
- subs r6, r1, r0
- lsls r0, r4, 11
- movs r1, 0x3A
- bl __divsi3
- asrs r0, 8
- adds r1, r0, 0
- adds r1, 0x2E
-_081337D8:
- strh r6, [r5, 0x20]
- strh r1, [r5, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8133790
-
- thumb_func_start sub_81337E4
-sub_81337E4: @ 81337E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08133808 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r0, r2, r3
- movs r4, 0
- strh r1, [r0, 0x2E]
- strh r4, [r0, 0x30]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _0813380C @ =sub_8133810
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133808: .4byte gSprites
-_0813380C: .4byte sub_8133810
- thumb_func_end sub_81337E4
-
- thumb_func_start sub_8133810
-sub_8133810: @ 8133810
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08133822
- cmp r0, 0x1
- beq _08133886
- b _081338A2
-_08133822:
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x13
- ble _08133880
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08133890
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldr r4, _08133878 @ =gBattleMoves
- ldrh r0, [r5, 0x2E]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x2]
- bl sub_8133730
- ldr r2, _0813387C @ =0xfffffedf
- adds r1, r2, 0
- ldrh r0, [r5, 0x2E]
- adds r1, r0
- strh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8133714
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8133790
- b _081338A2
- .align 2, 0
-_08133878: .4byte gBattleMoves
-_0813387C: .4byte 0xfffffedf
-_08133880:
- adds r0, r1, 0
- adds r0, 0xA
- b _081338A0
-_08133886:
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bgt _0813389C
-_08133890:
- ldr r0, _08133898 @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
- b _081338A2
- .align 2, 0
-_08133898: .4byte SpriteCallbackDummy
-_0813389C:
- adds r0, r1, 0
- subs r0, 0xA
-_081338A0:
- strh r0, [r5, 0x26]
-_081338A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8133810
-
- thumb_func_start sub_81338A8
-sub_81338A8: @ 81338A8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _081338F4 @ =gUnknown_203B12C
- movs r5, 0x88
- lsls r5, 2
- adds r0, r5, 0
- bl Alloc
- adds r1, r0, 0
- str r1, [r4]
- ldr r0, _081338F8 @ =gUnknown_8E84F20
- bl LZDecompressWram
- ldr r0, _081338FC @ =gUnknown_8E85068
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 2
- adds r1, r2
- bl LZDecompressWram
- ldr r0, [r4]
- adds r0, r5
- str r0, [sp]
- ldr r1, _08133900 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC8
- lsls r1, 1
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081338F4: .4byte gUnknown_203B12C
-_081338F8: .4byte gUnknown_8E84F20
-_081338FC: .4byte gUnknown_8E85068
-_08133900: .4byte 0xffff0000
- thumb_func_end sub_81338A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index e9fcddf2d..eac1fdea5 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -20,7 +20,7 @@ sub_804C600: @ 804C600
strb r0, [r2, 0x8]
ldr r0, _0804C6FC @ =sub_804D4F8
bl SetVBlankCallback
- ldr r4, _0804C700 @ =gUnknown_841F408
+ ldr r4, _0804C700 @ =gTMCaseMainWindowPalette
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0x14
@@ -78,11 +78,11 @@ _0804C674:
movs r0, 0
movs r1, 0x14
movs r2, 0xC0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x2
movs r1, 0x1
movs r2, 0xE0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
bl sub_809707C
ldr r2, _0804C708 @ =gUnknown_2031DA8
ldr r0, [r2]
@@ -118,7 +118,7 @@ _0804C6F0:
.align 2, 0
_0804C6F8: .4byte gPaletteFade
_0804C6FC: .4byte sub_804D4F8
-_0804C700: .4byte gUnknown_841F408
+_0804C700: .4byte gTMCaseMainWindowPalette
_0804C704: .4byte gUnknown_8261F1C
_0804C708: .4byte gUnknown_2031DA8
_0804C70C: .4byte gUnknown_8261F2C
@@ -422,7 +422,7 @@ _0804C9B0:
ldrb r0, [r0]
cmp r0, 0
beq _0804C9E8
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
bne _0804C9C4
@@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4
ldrb r0, [r0]
cmp r0, 0
beq _0804D5FC
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
beq _0804D620
@@ -1845,7 +1845,7 @@ sub_804D5A4: @ 804D5A4
bl Free
movs r0, 0
str r0, [r5]
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _0804D5F8 @ =sub_8050138
bl SetMainCallback2
b _0804D620
@@ -2487,7 +2487,7 @@ _0804DB1A:
bne _0804DB5A
adds r0, r4, 0
movs r1, 0x2
- ldr r2, _0804DB74 @ =gUnknown_8246BE5
+ ldr r2, _0804DB74 @ = gSpeciesNames + 0xD05
bl SetMonData
_0804DB5A:
adds r4, 0x64
@@ -2500,7 +2500,7 @@ _0804DB5A:
_0804DB68: .4byte gEnemyParty
_0804DB6C: .4byte 0x0000012f
_0804DB70: .4byte gUnknown_8262034
-_0804DB74: .4byte gUnknown_8246BE5
+_0804DB74: .4byte gSpeciesNames+0xD05
_0804DB78:
ldr r2, _0804DBA8 @ =gUnknown_2031DA8
ldr r1, [r2]
@@ -3369,7 +3369,7 @@ _0804E208:
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -3390,7 +3390,7 @@ _0804E208:
movs r1, 0x3
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
@@ -3432,7 +3432,7 @@ _0804E2A6:
movs r1, 0x3
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r0, [r4]
adds r0, 0x6F
movs r1, 0x4
@@ -3912,7 +3912,7 @@ _0804E670: .4byte 0x0000bbcc
thumb_func_start sub_804E674
sub_804E674: @ 804E674
push {r4,lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -4019,7 +4019,7 @@ _0804E740: .4byte gUnknown_2031DA8
thumb_func_start sub_804E744
sub_804E744: @ 804E744
push {r4,r5,lr}
- bl ProcessMenuInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r5, r0, 24
cmp r5, 0
@@ -4162,7 +4162,7 @@ sub_804E830: @ 804E830
movs r1, 0x3
movs r2, 0
movs r3, 0x2
- bl sub_810FF60
+ bl CreateYesNoMenu
ldr r0, [r4]
adds r0, 0xA8
strb r5, [r0]
@@ -4296,7 +4296,7 @@ sub_804E944: @ 804E944
ldr r0, [r0]
bl Free
bl FreeAllWindowBuffers
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _0804E984 @ =c2_8056854
bl SetMainCallback2
b _0804E9AA
@@ -4827,7 +4827,7 @@ _0804ECEC:
str r0, [sp, 0x8]
adds r0, r5, 0
movs r3, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
add r6, sp, 0x28
adds r0, r6, 0
ldr r1, [sp, 0x60]
@@ -4847,7 +4847,7 @@ _0804ECEC:
movs r1, 0x1
movs r2, 0
movs r3, 0
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0
bl PutWindowTilemap
adds r0, r5, 0
@@ -5110,7 +5110,7 @@ sub_804EFB4: @ 804EFB4
adds r0, r4, 0
movs r1, 0
movs r3, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r4, 0
@@ -5876,7 +5876,7 @@ sub_804F5BC: @ 804F5BC
movs r0, 0
movs r1, 0x14
movs r2, 0xC
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl PutWindowTilemap
movs r0, 0
@@ -7178,7 +7178,7 @@ _0804FF7A:
lsls r0, 1
cmp r1, r0
bls _0804FFAC
- bl sub_80098B8
+ bl CloseLink
ldr r0, _0804FFC0 @ =c2_800ACD4
bl SetMainCallback2
ldr r1, [r4]
@@ -7285,7 +7285,7 @@ _08050040:
cmp r6, 0
bne _0805007C
lsls r0, r5, 3
- ldr r1, _08050074 @ =gUnknown_82350AC
+ ldr r1, _08050074 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _08050078 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -7296,11 +7296,11 @@ _08050040:
movs r4, 0
b _0805009A
.align 2, 0
-_08050074: .4byte gUnknown_82350AC
+_08050074: .4byte gMonFrontPicTable
_08050078: .4byte gMonSpritesGfxPtr
_0805007C:
lsls r0, r5, 3
- ldr r1, _080500BC @ =gUnknown_82350AC
+ ldr r1, _080500BC @ =gMonFrontPicTable
adds r0, r1
ldr r1, _080500C0 @ =gMonSpritesGfxPtr
ldr r2, [r1]
@@ -7329,7 +7329,7 @@ _0805009A:
str r7, [r1]
b _0805011E
.align 2, 0
-_080500BC: .4byte gUnknown_82350AC
+_080500BC: .4byte gMonFrontPicTable
_080500C0: .4byte gMonSpritesGfxPtr
_080500C4: .4byte gUnknown_2031DAC
_080500C8:
@@ -7337,7 +7337,7 @@ _080500C8:
bl GetMonSpritePalStruct
ldrh r0, [r0, 0x4]
adds r1, r4, 0
- bl sub_803F7D4
+ bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _08050128 @ =gMultiuseSpriteTemplate
movs r1, 0x78
movs r2, 0x3C
@@ -7432,7 +7432,7 @@ _08050194:
ldr r2, _08050230 @ =0x00001144
adds r0, r2, 0
strh r0, [r1]
- bl sub_80098B8
+ bl CloseLink
_080501A8:
ldr r4, _08050234 @ =gUnknown_2031DAC
movs r0, 0x88
@@ -7841,7 +7841,7 @@ sub_80504CC: @ 80504CC
movs r0, 0x3
bl SetBgTilemapBuffer
bl DeactivateAllTextPrinters
- ldr r0, _080505B8 @ =gUnknown_8D00000
+ ldr r0, _080505B8 @ =gBattleTextboxTiles
mov r10, r0
movs r0, 0
mov r9, r0
@@ -7849,7 +7849,7 @@ sub_80504CC: @ 80504CC
mov r1, r10
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, _080505BC @ =gFile_graphics_interface_menu_map_tilemap
mov r8, r0
ldr r4, _080505C0 @ =gDecompressionBuffer
@@ -7860,7 +7860,7 @@ sub_80504CC: @ 80504CC
adds r2, r5, 0
movs r3, 0
bl CopyToBgTilemapBuffer
- ldr r6, _080505C4 @ =gUnknown_8D004D8
+ ldr r6, _080505C4 @ =gBattleTextboxPalette
adds r0, r6, 0
movs r1, 0
movs r2, 0x20
@@ -7873,7 +7873,7 @@ sub_80504CC: @ 80504CC
mov r1, r10
movs r2, 0
movs r3, 0
- bl sub_80F696C
+ bl DecompressAndLoadBgGfxUsingHeap
mov r0, r8
adds r1, r4, 0
bl LZDecompressWram
@@ -7896,10 +7896,10 @@ sub_80504CC: @ 80504CC
bx r0
.align 2, 0
_080505B4: .4byte gUnknown_826D1D4
-_080505B8: .4byte gUnknown_8D00000
+_080505B8: .4byte gBattleTextboxTiles
_080505BC: .4byte gFile_graphics_interface_menu_map_tilemap
_080505C0: .4byte gDecompressionBuffer
-_080505C4: .4byte gUnknown_8D004D8
+_080505C4: .4byte gBattleTextboxPalette
_080505C8: .4byte gUnknown_826D1BC
thumb_func_end sub_80504CC
@@ -8360,11 +8360,11 @@ _080509A4:
ldr r1, _08050A00 @ =0x00005206
movs r0, 0xC
bl SetGpuReg
- ldr r0, _08050A04 @ =gUnknown_8EAEA20
+ ldr r0, _08050A04 @ =gTradeGba2_Pal
movs r1, 0x10
movs r2, 0x60
bl LoadPalette
- ldr r3, _08050A08 @ =gUnknown_8EAEA80
+ ldr r3, _08050A08 @ =gTradeGba_Gfx
ldr r4, _08050A0C @ =0x06004000
movs r5, 0xA1
lsls r5, 5
@@ -8388,8 +8388,8 @@ _080509E6:
.align 2, 0
_080509FC: .4byte gUnknown_2031DAC
_08050A00: .4byte 0x00005206
-_08050A04: .4byte gUnknown_8EAEA20
-_08050A08: .4byte gUnknown_8EAEA80
+_08050A04: .4byte gTradeGba2_Pal
+_08050A08: .4byte gTradeGba_Gfx
_08050A0C: .4byte 0x06004000
_08050A10: .4byte 0x040000d4
_08050A14: .4byte 0x80000800
@@ -8436,7 +8436,7 @@ _08050A66:
ldr r1, _08050ABC @ =0x80000800
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- ldr r3, _08050AC0 @ =gUnknown_8EAEA80
+ ldr r3, _08050AC0 @ =gTradeGba_Gfx
movs r4, 0xC0
lsls r4, 19
movs r5, 0xA1
@@ -8471,7 +8471,7 @@ _08050AB0: .4byte gUnknown_8269A5C
_08050AB4: .4byte 0x06002800
_08050AB8: .4byte 0x040000d4
_08050ABC: .4byte 0x80000800
-_08050AC0: .4byte gUnknown_8EAEA80
+_08050AC0: .4byte gTradeGba_Gfx
_08050AC4:
ldr r0, _08050AF4 @ =gUnknown_2031DAC
ldr r2, [r0]
@@ -8769,11 +8769,11 @@ _08050D48:
ldr r1, _08050DC0 @ =0x00005206
movs r0, 0xC
bl SetGpuReg
- ldr r0, _08050DC4 @ =gUnknown_8EAEA20
+ ldr r0, _08050DC4 @ =gTradeGba2_Pal
movs r1, 0x10
movs r2, 0x60
bl LoadPalette
- ldr r3, _08050DC8 @ =gUnknown_8EAEA80
+ ldr r3, _08050DC8 @ =gTradeGba_Gfx
ldr r4, _08050DCC @ =0x06004000
movs r5, 0xA1
lsls r5, 5
@@ -8800,7 +8800,7 @@ _08050D98:
orrs r0, r7
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- ldr r1, _08050DD8 @ =gUnknown_826601C
+ ldr r1, _08050DD8 @ =gUnknown_08331F60
ldr r2, _08050DDC @ =0x06009000
ldr r0, _08050DD0 @ =0x040000d4
str r1, [r0]
@@ -8816,12 +8816,12 @@ _08050DB4:
.align 2, 0
_08050DBC: .4byte gUnknown_2031DAC
_08050DC0: .4byte 0x00005206
-_08050DC4: .4byte gUnknown_8EAEA20
-_08050DC8: .4byte gUnknown_8EAEA80
+_08050DC4: .4byte gTradeGba2_Pal
+_08050DC8: .4byte gTradeGba_Gfx
_08050DCC: .4byte 0x06004000
_08050DD0: .4byte 0x040000d4
_08050DD4: .4byte 0x80000800
-_08050DD8: .4byte gUnknown_826601C
+_08050DD8: .4byte gUnknown_08331F60
_08050DDC: .4byte 0x06009000
thumb_func_end sub_8050968
@@ -10807,7 +10807,7 @@ _08052042:
adds r0, 0xF2
ldrh r2, [r0]
lsls r0, r2, 3
- ldr r1, _08052068 @ =gUnknown_82350AC
+ ldr r1, _08052068 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _0805206C @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -10819,7 +10819,7 @@ _08052042:
.align 2, 0
_08052060: .4byte gSprites
_08052064: .4byte SpriteCallbackDummy
-_08052068: .4byte gUnknown_82350AC
+_08052068: .4byte gMonFrontPicTable
_0805206C: .4byte gMonSpritesGfxPtr
_08052070:
ldr r4, _0805211C @ =gSprites
@@ -11137,7 +11137,7 @@ _080522BC:
bl Free
str r4, [r7]
_0805230A:
- ldr r0, _08052328 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _08052328 @ =CB2_ReturnToField
bl SetMainCallback2
bl sub_8053AE4
bl sub_812B484
@@ -11150,7 +11150,7 @@ _0805231A:
bx r1
.align 2, 0
_08052324: .4byte gPaletteFade
-_08052328: .4byte c2_exit_to_overworld_2_switch
+_08052328: .4byte CB2_ReturnToField
thumb_func_end sub_8050F3C
thumb_func_start sub_805232C
@@ -13032,7 +13032,7 @@ _0805349E:
adds r0, 0xF2
ldrh r2, [r0]
lsls r0, r2, 3
- ldr r1, _080534C4 @ =gUnknown_82350AC
+ ldr r1, _080534C4 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _080534C8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
@@ -13044,7 +13044,7 @@ _0805349E:
.align 2, 0
_080534BC: .4byte gSprites
_080534C0: .4byte SpriteCallbackDummy
-_080534C4: .4byte gUnknown_82350AC
+_080534C4: .4byte gMonFrontPicTable
_080534C8: .4byte gMonSpritesGfxPtr
_080534CC:
ldr r4, _08053578 @ =gSprites
@@ -13362,7 +13362,7 @@ _08053718:
bl Free
str r4, [r7]
_08053766:
- ldr r0, _08053784 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _08053784 @ =CB2_ReturnToField
bl SetMainCallback2
bl sub_8053AE4
bl sub_812B484
@@ -13375,7 +13375,7 @@ _08053776:
bx r1
.align 2, 0
_08053780: .4byte gPaletteFade
-_08053784: .4byte c2_exit_to_overworld_2_switch
+_08053784: .4byte CB2_ReturnToField
thumb_func_end sub_805232C
thumb_func_start sub_8053788
@@ -14745,7 +14745,7 @@ _0805434C:
ldr r0, _08054378 @ =sub_804C718
cmp r1, r0
bne _08054384
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
beq _08054396
@@ -14819,7 +14819,7 @@ sub_80543C4: @ 80543C4
ldrb r0, [r0]
cmp r0, 0
beq _08054412
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
_08054412:
ldr r0, _0805443C @ =gMain
ldr r0, [r0, 0x8]
@@ -14875,8 +14875,8 @@ sub_8054470: @ 8054470
bne _08054494
ldr r0, _080544A0 @ =sub_80505CC
bl SetMainCallback2
- ldr r1, _080544A4 @ =gUnknown_3005020
- ldr r0, _080544A8 @ =sub_807DD24
+ ldr r1, _080544A4 @ =gFieldCallback
+ ldr r0, _080544A8 @ =FieldCallback_ReturnToEventScript2
str r0, [r1]
adds r0, r4, 0
bl DestroyTask
@@ -14887,8 +14887,8 @@ _08054494:
.align 2, 0
_0805449C: .4byte gPaletteFade
_080544A0: .4byte sub_80505CC
-_080544A4: .4byte gUnknown_3005020
-_080544A8: .4byte sub_807DD24
+_080544A4: .4byte gFieldCallback
+_080544A8: .4byte FieldCallback_ReturnToEventScript2
thumb_func_end sub_8054470
thumb_func_start sub_80544AC
@@ -14989,7 +14989,7 @@ sub_8054508: @ 8054508
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index e44503915..502d47c89 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -18,7 +18,7 @@ sub_8088FF0: @ 8088FF0
cmp r0, 0
beq _08089020
ldr r1, _08089028 @ =0x040000d4
- ldr r0, _0808902C @ =gUnknown_2038700
+ ldr r0, _0808902C @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -33,7 +33,7 @@ _08089020:
.align 2, 0
_08089024: .4byte gUnknown_20397A4
_08089028: .4byte 0x040000d4
-_0808902C: .4byte gUnknown_2038700
+_0808902C: .4byte gScanlineEffectRegBuffers
_08089030: .4byte 0x800000a0
thumb_func_end sub_8088FF0
@@ -44,7 +44,7 @@ sub_8089034: @ 8089034
ldrh r3, [r4]
movs r0, 0
strh r0, [r4]
- ldr r1, _08089064 @ =gUnknown_2038700
+ ldr r1, _08089064 @ =gScanlineEffectRegBuffers
ldr r0, _08089068 @ =0x04000006
ldrh r2, [r0]
movs r0, 0xFF
@@ -63,7 +63,7 @@ sub_8089034: @ 8089034
bx r0
.align 2, 0
_08089060: .4byte 0x04000208
-_08089064: .4byte gUnknown_2038700
+_08089064: .4byte gScanlineEffectRegBuffers
_08089068: .4byte 0x04000006
_0808906C: .4byte 0x04000012
thumb_func_end sub_8089034
@@ -291,7 +291,7 @@ _0808924A:
cmp r0, 0
beq _08089280
movs r0, 0xB
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_808B1D4
movs r0, 0xF2
bl PlaySE
@@ -387,7 +387,7 @@ _0808931C: .4byte gMain
_08089320: .4byte gReceivedRemoteLinkPlayers
_08089324:
movs r0, 0xA
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_808B1D4
ldr r0, _08089340 @ =gUnknown_20397A4
ldr r1, [r0]
@@ -431,7 +431,7 @@ _0808937A:
bl sub_800AAC0
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080893B0 @ =gUnknown_8419D89
movs r0, 0x1
str r0, [sp]
@@ -1647,7 +1647,7 @@ sub_8089D8C: @ 8089D8C
ldr r0, _08089DA0 @ =sub_8089070
bl SetMainCallback2
movs r0, 0xA
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
@@ -1658,7 +1658,7 @@ _08089DA0: .4byte sub_8089070
sub_8089DA4: @ 8089DA4
push {lr}
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
ldr r0, _08089DC4 @ =sub_80890C0
movs r1, 0
bl CreateTask
@@ -1856,7 +1856,7 @@ sub_8089EEC: @ 8089EEC
add r0, sp, 0xC
str r0, [sp, 0x8]
movs r0, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x4C
pop {r4,r5}
pop {r0}
@@ -1908,7 +1908,7 @@ sub_8089F78: @ 8089F78
add r0, sp, 0xC
str r0, [sp, 0x8]
movs r0, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x2C
pop {r4}
pop {r0}
@@ -1972,7 +1972,7 @@ sub_8089FEC: @ 8089FEC
adds r1, r6, 0
movs r2, 0x14
movs r3, 0x38
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
add r0, sp, 0xC
@@ -1981,7 +1981,7 @@ sub_8089FEC: @ 8089FEC
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x38
- bl box_print
+ bl AddTextPrinterParameterized3
b _0808A0CA
.align 2, 0
_0808A068: .4byte gUnknown_8419CED
@@ -2015,7 +2015,7 @@ _0808A080:
adds r1, r6, 0
movs r2, 0x10
movs r3, 0x39
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
add r1, sp, 0xC
@@ -2024,7 +2024,7 @@ _0808A080:
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x39
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A0CA:
add sp, 0x18
pop {r4-r7}
@@ -2108,7 +2108,7 @@ _0808A112:
adds r1, r6, 0
movs r2, 0x14
movs r3, 0x48
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
add r0, sp, 0xC
@@ -2117,7 +2117,7 @@ _0808A112:
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x48
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
ldr r0, _0808A1B0 @ =gUnknown_8419CF7
@@ -2126,7 +2126,7 @@ _0808A112:
adds r1, r6, 0
movs r2, 0x8A
movs r3, 0x48
- bl box_print
+ bl AddTextPrinterParameterized3
b _0808A212
.align 2, 0
_0808A198: .4byte 0x00000829
@@ -2161,7 +2161,7 @@ _0808A1B4:
adds r1, r6, 0
movs r2, 0x10
movs r3, 0x49
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
add r1, sp, 0xC
@@ -2170,7 +2170,7 @@ _0808A1B4:
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x49
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
ldr r0, _0808A228 @ =gUnknown_8419CF7
@@ -2179,7 +2179,7 @@ _0808A1B4:
adds r1, r6, 0
movs r2, 0x8A
movs r3, 0x49
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A212:
add sp, 0x18
pop {r4-r7}
@@ -2258,7 +2258,7 @@ _0808A264:
movs r0, 0x1
movs r2, 0x14
movs r3, 0x58
- bl box_print
+ bl AddTextPrinterParameterized3
b _0808A2F4
.align 2, 0
_0808A2B0: .4byte gSaveBlock2Ptr
@@ -2284,7 +2284,7 @@ _0808A2D8:
movs r0, 0x1
movs r2, 0x10
movs r3, 0x59
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A2F4:
add r0, sp, 0xC
adds r1, r5, 0
@@ -2316,7 +2316,7 @@ _0808A2F4:
str r1, [sp, 0x8]
movs r0, 0x1
mov r1, r10
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, _0808A3C0 @ =gUnknown_83CD932
mov r2, r9
ldr r4, [r2]
@@ -2338,7 +2338,7 @@ _0808A2F4:
str r0, [sp, 0x8]
movs r0, 0x1
mov r1, r10
- bl box_print
+ bl AddTextPrinterParameterized3
add r0, sp, 0xC
adds r1, r7, 0
movs r2, 0x2
@@ -2360,7 +2360,7 @@ _0808A2F4:
str r1, [sp, 0x8]
movs r0, 0x1
mov r1, r10
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x14
pop {r3-r5}
mov r8, r3
@@ -2412,7 +2412,7 @@ sub_808A3D0: @ 808A3D0
movs r0, 0x1
movs r1, 0x2
movs r2, 0xA
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r7]
adds r1, 0x19
movs r0, 0x2
@@ -2433,7 +2433,7 @@ sub_808A3D0: @ 808A3D0
str r1, [sp, 0x8]
movs r0, 0x1
movs r1, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, _0808A4A4 @ =gUnknown_83CD93A
mov r8, r0
ldr r1, [r7]
@@ -2448,7 +2448,7 @@ sub_808A3D0: @ 808A3D0
movs r0, 0x1
movs r1, 0x2
movs r2, 0xA
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r7]
adds r1, 0x33
movs r0, 0x2
@@ -2469,7 +2469,7 @@ sub_808A3D0: @ 808A3D0
str r1, [sp, 0x8]
movs r0, 0x1
movs r1, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A486:
add sp, 0xC
pop {r3}
@@ -2553,7 +2553,7 @@ sub_808A4FC: @ 808A4FC
adds r0, 0x4D
str r0, [sp, 0x8]
movs r0, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
b _0808A59C
.align 2, 0
_0808A538: .4byte gUnknown_20397A4
@@ -2597,7 +2597,7 @@ _0808A550:
str r4, [sp, 0x8]
movs r0, 0x1
adds r1, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A59C:
add sp, 0xC
pop {r4-r6}
@@ -2708,7 +2708,7 @@ sub_808A654: @ 808A654
movs r0, 0x1
adds r1, r5, 0
movs r3, 0x23
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, _0808A6C4 @ =gUnknown_83CD8E3
str r0, [sp]
str r4, [sp, 0x4]
@@ -2719,7 +2719,7 @@ sub_808A654: @ 808A654
adds r1, r5, 0
movs r2, 0xA4
movs r3, 0x23
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A6A2:
add sp, 0xC
pop {r4-r6}
@@ -2830,7 +2830,7 @@ sub_808A760: @ 808A760
movs r0, 0x1
adds r1, r6, 0
movs r3, 0x33
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
ldr r0, [r7]
@@ -2841,7 +2841,7 @@ sub_808A760: @ 808A760
adds r1, r6, 0
movs r2, 0x82
movs r3, 0x33
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r5, _0808A804 @ =gUnknown_83CD8E3
str r5, [sp]
str r4, [sp, 0x4]
@@ -2853,7 +2853,7 @@ sub_808A760: @ 808A760
adds r1, r6, 0
movs r2, 0x90
movs r3, 0x33
- bl box_print
+ bl AddTextPrinterParameterized3
str r5, [sp]
str r4, [sp, 0x4]
ldr r0, [r7]
@@ -2864,7 +2864,7 @@ sub_808A760: @ 808A760
adds r1, r6, 0
movs r2, 0xC0
movs r3, 0x33
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A7E2:
add sp, 0xC
pop {r4-r7}
@@ -2943,7 +2943,7 @@ sub_808A854: @ 808A854
movs r0, 0x1
adds r1, r5, 0
movs r3, 0x43
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, _0808A8C8 @ =gUnknown_83CD8E3
str r0, [sp]
str r4, [sp, 0x4]
@@ -2955,7 +2955,7 @@ sub_808A854: @ 808A854
adds r1, r5, 0
movs r2, 0xBA
movs r3, 0x43
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A8A6:
add sp, 0xC
pop {r4-r6}
@@ -3042,7 +3042,7 @@ sub_808A91C: @ 808A91C
movs r0, 0x1
adds r1, r5, 0
movs r3, 0x63
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, _0808A99C @ =gUnknown_83CD8E3
str r0, [sp]
str r4, [sp, 0x4]
@@ -3054,7 +3054,7 @@ sub_808A91C: @ 808A91C
adds r1, r5, 0
movs r2, 0xBA
movs r3, 0x63
- bl box_print
+ bl AddTextPrinterParameterized3
_0808A97A:
add sp, 0xC
pop {r4-r6}
@@ -3140,7 +3140,7 @@ sub_808A9F0: @ 808A9F0
movs r0, 0x1
adds r1, r5, 0
movs r3, 0x53
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, _0808AA70 @ =gUnknown_83CD8E3
str r0, [sp]
str r4, [sp, 0x4]
@@ -3152,7 +3152,7 @@ sub_808A9F0: @ 808A9F0
adds r1, r5, 0
movs r2, 0xBA
movs r3, 0x53
- bl box_print
+ bl AddTextPrinterParameterized3
_0808AA4C:
add sp, 0xC
pop {r4-r6}
@@ -4179,10 +4179,10 @@ sub_808B254: @ 808B254
bl HideBg
movs r0, 0x3
bl HideBg
- bl remove_some_task
- bl dp12_8087EA4
+ bl ScanlineEffect_Stop
+ bl ScanlineEffect_Clear
movs r1, 0
- ldr r0, _0808B290 @ =gUnknown_2038700
+ ldr r0, _0808B290 @ =gScanlineEffectRegBuffers
movs r2, 0
movs r3, 0xF0
lsls r3, 3
@@ -4201,7 +4201,7 @@ _0808B278:
pop {r1}
bx r1
.align 2, 0
-_0808B290: .4byte gUnknown_2038700
+_0808B290: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_808B254
thumb_func_start sub_808B294
@@ -4271,7 +4271,7 @@ _0808B2CA:
movs r2, 0
cmp r2, r7
bcs _0808B334
- ldr r3, _0808B3C0 @ =gUnknown_2038700
+ ldr r3, _0808B3C0 @ =gScanlineEffectRegBuffers
_0808B31C:
lsls r0, r2, 16
asrs r0, 16
@@ -4296,7 +4296,7 @@ _0808B334:
lsrs r7, r4, 16
cmp r1, r0
bge _0808B36C
- ldr r0, _0808B3C0 @ =gUnknown_2038700
+ ldr r0, _0808B3C0 @ =gScanlineEffectRegBuffers
mov r12, r0
adds r4, r3, 0
_0808B34E:
@@ -4321,7 +4321,7 @@ _0808B36C:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0808B38A
- ldr r2, _0808B3C0 @ =gUnknown_2038700
+ ldr r2, _0808B3C0 @ =gScanlineEffectRegBuffers
_0808B378:
asrs r0, r1, 16
lsls r1, r0, 1
@@ -4359,7 +4359,7 @@ _0808B3A2:
_0808B3B4: .4byte gUnknown_20397A4
_0808B3B8: .4byte 0x00007bcc
_0808B3BC: .4byte 0xffff0000
-_0808B3C0: .4byte gUnknown_2038700
+_0808B3C0: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_808B294
thumb_func_start sub_808B3C4
@@ -4612,7 +4612,7 @@ _0808B572:
movs r2, 0
cmp r2, r7
bcs _0808B5DC
- ldr r3, _0808B668 @ =gUnknown_2038700
+ ldr r3, _0808B668 @ =gScanlineEffectRegBuffers
_0808B5C4:
lsls r0, r2, 16
asrs r0, 16
@@ -4637,7 +4637,7 @@ _0808B5DC:
lsrs r7, r4, 16
cmp r1, r0
bge _0808B612
- ldr r0, _0808B668 @ =gUnknown_2038700
+ ldr r0, _0808B668 @ =gScanlineEffectRegBuffers
mov r12, r0
adds r4, r3, 0
_0808B5F6:
@@ -4661,7 +4661,7 @@ _0808B612:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0808B630
- ldr r2, _0808B668 @ =gUnknown_2038700
+ ldr r2, _0808B668 @ =gScanlineEffectRegBuffers
_0808B61E:
asrs r0, r1, 16
lsls r1, r0, 1
@@ -4699,7 +4699,7 @@ _0808B648:
_0808B65C: .4byte gUnknown_20397A4
_0808B660: .4byte 0x00007bcc
_0808B664: .4byte 0xffff0000
-_0808B668: .4byte gUnknown_2038700
+_0808B668: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_808B540
thumb_func_start sub_808B66C
@@ -5019,7 +5019,7 @@ _0808B8FC:
adds r0, r1, r4
ldrb r0, [r0]
movs r1, 0x1
- bl sub_810C374
+ bl PlayerGenderToFrontTrainerPicId_Debug
lsls r0, 16
lsrs r0, 16
ldr r5, _0808B944 @ =gUnknown_83CD8EC
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index 6cc322609..a07c918f8 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -1024,7 +1024,7 @@ sub_808226C: @ 808226C
movs r0, 0x12
movs r1, 0x7
movs r2, 0x7F
- bl SpawnSpecialFieldObjectParametrized
+ bl SpawnSpecialFieldObjectParameterized
ldr r2, _080822C8 @ =gMapObjects
lsls r1, r0, 3
adds r1, r0
diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s
deleted file mode 100644
index c1da74a98..000000000
--- a/asm/trainer_tower.s
+++ /dev/null
@@ -1,1679 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815E068
-sub_815E068: @ 815E068
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- movs r5, 0
- cmp r0, 0x1
- beq _0815E0B4
- cmp r0, 0x1
- bgt _0815E084
- cmp r0, 0
- beq _0815E088
- b _0815E0F8
-_0815E084:
- cmp r3, 0x2
- bne _0815E0F8
-_0815E088:
- movs r4, 0
- ldr r0, _0815E0B0 @ =gUnknown_8479ED8
- ldrb r1, [r0, 0x1]
- adds r3, r0, 0
- cmp r1, r2
- beq _0815E0A4
- adds r1, r3, 0
-_0815E096:
- adds r1, 0x4
- adds r4, 0x1
- cmp r4, 0x52
- bhi _0815E0A4
- ldrb r0, [r1, 0x1]
- cmp r0, r2
- bne _0815E096
-_0815E0A4:
- cmp r4, 0x53
- beq _0815E0F8
- lsls r0, r4, 2
- adds r0, r3
- ldrb r5, [r0, 0x2]
- b _0815E0F8
- .align 2, 0
-_0815E0B0: .4byte gUnknown_8479ED8
-_0815E0B4:
- movs r4, 0
- ldr r1, _0815E0BC @ =gUnknown_847A024
- b _0815E0C8
- .align 2, 0
-_0815E0BC: .4byte gUnknown_847A024
-_0815E0C0:
- adds r1, 0x8
- adds r4, 0x1
- cmp r4, 0x9
- bhi _0815E0CE
-_0815E0C8:
- ldrb r0, [r1, 0x2]
- cmp r0, r2
- bne _0815E0C0
-_0815E0CE:
- cmp r4, 0xA
- beq _0815E0F8
- ldr r0, _0815E0E8 @ =0x00004003
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _0815E0F0
- ldr r1, _0815E0EC @ =gUnknown_847A024
- lsls r0, r4, 3
- adds r0, r1
- ldrb r5, [r0, 0x4]
- b _0815E0F8
- .align 2, 0
-_0815E0E8: .4byte 0x00004003
-_0815E0EC: .4byte gUnknown_847A024
-_0815E0F0:
- ldr r1, _0815E108 @ =gUnknown_847A024
- lsls r0, r4, 3
- adds r0, r1
- ldrb r5, [r0, 0x3]
-_0815E0F8:
- ldr r2, _0815E10C @ =gUnknown_20370DC
- ldr r1, _0815E110 @ =gUnknown_20370DA
- ldrh r0, [r1]
- strh r0, [r2]
- strh r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E108: .4byte gUnknown_847A024
-_0815E10C: .4byte gUnknown_20370DC
-_0815E110: .4byte gUnknown_20370DA
- thumb_func_end sub_815E068
-
- thumb_func_start sub_815E114
-sub_815E114: @ 815E114
- push {lr}
- ldr r0, _0815E120 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0815E120: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_815E114
-
- thumb_func_start sub_815E124
-sub_815E124: @ 815E124
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80D08F8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815E14C
- ldr r0, _0815E154 @ =gMain
- ldr r1, _0815E158 @ =sub_815E114
- str r1, [r0, 0x8]
- bl sub_80563F0
- ldr r0, _0815E15C @ =sub_800FD9C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0815E14C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E154: .4byte gMain
-_0815E158: .4byte sub_815E114
-_0815E15C: .4byte sub_800FD9C
- thumb_func_end sub_815E124
-
- thumb_func_start sub_815E160
-sub_815E160: @ 815E160
- push {r4,lr}
- ldr r4, _0815E1AC @ =gBattleTypeFlags
- ldr r3, _0815E1B0 @ =0x00080008
- str r3, [r4]
- ldr r0, _0815E1B4 @ =gUnknown_203F458
- ldr r1, [r0]
- ldrb r2, [r1]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1, 0xE]
- cmp r0, 0x1
- bne _0815E180
- orrs r0, r3
- str r0, [r4]
-_0815E180:
- ldr r1, _0815E1B8 @ =gTrainerBattleOpponent_A
- movs r0, 0
- strh r0, [r1]
- bl sub_815E9FC
- ldr r0, _0815E1BC @ =sub_815E124
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- bl sub_8080060
- lsls r0, 24
- lsrs r0, 24
- bl sub_80D08B8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E1AC: .4byte gBattleTypeFlags
-_0815E1B0: .4byte 0x00080008
-_0815E1B4: .4byte gUnknown_203F458
-_0815E1B8: .4byte gTrainerBattleOpponent_A
-_0815E1BC: .4byte sub_815E124
- thumb_func_end sub_815E160
-
- thumb_func_start sub_815E1C0
-sub_815E1C0: @ 815E1C0
- push {lr}
- ldr r0, _0815E1E4 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- bne _0815E1DE
- ldr r3, _0815E1E8 @ =gSpecialVar_Result
- ldr r0, _0815E1EC @ =gUnknown_203F458
- ldr r1, [r0]
- ldrb r2, [r1]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1, 0xE]
- strh r0, [r3]
-_0815E1DE:
- pop {r0}
- bx r0
- .align 2, 0
-_0815E1E4: .4byte gSpecialVar_0x8005
-_0815E1E8: .4byte gSpecialVar_Result
-_0815E1EC: .4byte gUnknown_203F458
- thumb_func_end sub_815E1C0
-
- thumb_func_start sub_815E1F0
-sub_815E1F0: @ 815E1F0
- ldr r0, _0815E210 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0815E214 @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- movs r0, 0xF5
- lsls r0, 6
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0815E210: .4byte gSaveBlock1Ptr
-_0815E214: .4byte 0x00003d34
- thumb_func_end sub_815E1F0
-
- thumb_func_start sub_815E218
-sub_815E218: @ 815E218
- push {lr}
- ldr r0, _0815E260 @ =gMapHeader
- ldrh r0, [r0, 0x12]
- mov r12, r0
- ldr r3, _0815E264 @ =0xfffffed6
- add r3, r12
- ldr r0, _0815E268 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0815E26C @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- movs r0, 0xF5
- lsls r0, 6
- adds r1, r0
- ldrb r1, [r1]
- cmp r3, r1
- bne _0815E27C
- ldr r3, _0815E270 @ =0xfffffed7
- add r3, r12
- ldr r0, _0815E274 @ =gUnknown_203F458
- ldr r1, [r0]
- ldrb r2, [r1]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 5
- adds r1, r0
- ldrb r1, [r1, 0xD]
- cmp r3, r1
- bgt _0815E27C
- ldr r1, _0815E278 @ =gSpecialVar_Result
- movs r0, 0
- b _0815E280
- .align 2, 0
-_0815E260: .4byte gMapHeader
-_0815E264: .4byte 0xfffffed6
-_0815E268: .4byte gSaveBlock1Ptr
-_0815E26C: .4byte 0x00003d34
-_0815E270: .4byte 0xfffffed7
-_0815E274: .4byte gUnknown_203F458
-_0815E278: .4byte gSpecialVar_Result
-_0815E27C:
- ldr r1, _0815E288 @ =gSpecialVar_Result
- movs r0, 0x1
-_0815E280:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0815E288: .4byte gSpecialVar_Result
- thumb_func_end sub_815E218
-
- thumb_func_start sub_815E28C
-sub_815E28C: @ 815E28C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _0815E2D0 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r5, _0815E2D4 @ =0x00003d34
- adds r1, r0, r5
- ldr r0, _0815E2D8 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- str r0, [r1]
- cmp r0, 0x3
- bls _0815E2A8
- movs r0, 0
- str r0, [r1]
-_0815E2A8:
- bl sub_815EC0C
- bl sub_815D834
- cmp r0, 0
- bne _0815E2E0
- ldr r1, [r4]
- adds r0, r1, r5
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _0815E2DC @ =0x00003d42
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x20
- orrs r0, r2
- b _0815E2FA
- .align 2, 0
-_0815E2D0: .4byte gSaveBlock1Ptr
-_0815E2D4: .4byte 0x00003d34
-_0815E2D8: .4byte gSpecialVar_0x8005
-_0815E2DC: .4byte 0x00003d42
-_0815E2E0:
- ldr r1, [r4]
- adds r0, r1, r5
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _0815E384 @ =0x00003d42
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
-_0815E2FA:
- strb r0, [r1]
- ldr r6, _0815E388 @ =gSaveBlock1Ptr
- ldr r2, [r6]
- ldr r5, _0815E38C @ =0x00003d34
- adds r0, r2, r5
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- movs r0, 0xF5
- lsls r0, 6
- adds r2, r0
- movs r0, 0
- mov r8, r0
- mov r0, r8
- strb r0, [r2]
- ldr r0, [r6]
- adds r1, r0, r5
- ldr r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r4, _0815E390 @ =0x00003d38
- adds r1, r4
- adds r0, r1
- bl SetVBlankCounter1Ptr
- ldr r2, [r6]
- adds r3, r2, r5
- ldr r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r4, r2, r4
- adds r4, r0
- mov r0, r8
- str r0, [r4]
- ldr r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r3, _0815E384 @ =0x00003d42
- adds r2, r3
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r1, [r6]
- adds r5, r1, r5
- ldr r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, r3
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E384: .4byte 0x00003d42
-_0815E388: .4byte gSaveBlock1Ptr
-_0815E38C: .4byte 0x00003d34
-_0815E390: .4byte 0x00003d38
- thumb_func_end sub_815E28C
-
- thumb_func_start sub_815E394
-sub_815E394: @ 815E394
- push {lr}
- bl DisableVBlankCounter1
- ldr r3, _0815E3F8 @ =gSpecialVar_Result
- movs r0, 0
- strh r0, [r3]
- ldr r0, _0815E3FC @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, _0815E400 @ =0x00003d34
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r0, _0815E404 @ =0x00003d42
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 29
- cmp r0, 0
- bge _0815E3C2
- movs r0, 0x1
- strh r0, [r3]
-_0815E3C2:
- ldrb r2, [r2]
- lsls r0, r2, 31
- cmp r0, 0
- beq _0815E3D6
- lsls r0, r2, 30
- cmp r0, 0
- bge _0815E3D6
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0815E3D6:
- ldr r0, _0815E3FC @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0815E400 @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _0815E404 @ =0x00003d42
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0815E3F8: .4byte gSpecialVar_Result
-_0815E3FC: .4byte gSaveBlock1Ptr
-_0815E400: .4byte 0x00003d34
-_0815E404: .4byte 0x00003d42
- thumb_func_end sub_815E394
-
- thumb_func_start sub_815E408
-sub_815E408: @ 815E408
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _0815E444 @ =gUnknown_847A2B4
- ldr r0, _0815E448 @ =gUnknown_203F458
- ldr r0, [r0]
- ldrb r0, [r0, 0xF]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- ldr r0, _0815E44C @ =gSaveBlock1Ptr
- mov r8, r0
- ldr r2, [r0]
- ldr r7, _0815E450 @ =0x00003d34
- adds r0, r2, r7
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r6, _0815E454 @ =0x00003d42
- adds r2, r6
- ldrb r0, [r2]
- lsls r0, 31
- lsrs r5, r0, 31
- cmp r5, 0
- beq _0815E45C
- ldr r1, _0815E458 @ =gSpecialVar_Result
- movs r0, 0x2
- b _0815E4A0
- .align 2, 0
-_0815E444: .4byte gUnknown_847A2B4
-_0815E448: .4byte gUnknown_203F458
-_0815E44C: .4byte gSaveBlock1Ptr
-_0815E450: .4byte 0x00003d34
-_0815E454: .4byte 0x00003d42
-_0815E458: .4byte gSpecialVar_Result
-_0815E45C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809A084
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815E49C
- ldr r1, _0815E494 @ =gStringVar2
- adds r0, r4, 0
- bl sub_8099E90
- mov r0, r8
- ldr r1, [r0]
- adds r0, r1, r7
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, r6
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r0, _0815E498 @ =gSpecialVar_Result
- strh r5, [r0]
- b _0815E4A2
- .align 2, 0
-_0815E494: .4byte gStringVar2
-_0815E498: .4byte gSpecialVar_Result
-_0815E49C:
- ldr r1, _0815E4AC @ =gSpecialVar_Result
- movs r0, 0x1
-_0815E4A0:
- strh r0, [r1]
-_0815E4A2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E4AC: .4byte gSpecialVar_Result
- thumb_func_end sub_815E408
-
- thumb_func_start sub_815E4B0
-sub_815E4B0: @ 815E4B0
- push {r4-r6,lr}
- ldr r6, _0815E4D8 @ =gSaveBlock1Ptr
- ldr r2, [r6]
- ldr r1, _0815E4DC @ =0x00003d34
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, r1
- ldr r3, _0815E4E0 @ =0x00003d42
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 31
- cmp r5, 0
- beq _0815E4E8
- ldr r1, _0815E4E4 @ =gSpecialVar_Result
- movs r0, 0x2
- b _0815E534
- .align 2, 0
-_0815E4D8: .4byte gSaveBlock1Ptr
-_0815E4DC: .4byte 0x00003d34
-_0815E4E0: .4byte 0x00003d42
-_0815E4E4: .4byte gSpecialVar_Result
-_0815E4E8:
- ldr r4, _0815E520 @ =0x00003d38
- adds r0, r1, r4
- adds r0, r2, r0
- adds r0, 0x4
- bl sub_815EDDC
- ldr r3, [r6]
- ldr r2, _0815E524 @ =0x00003d34
- adds r1, r3, r2
- ldr r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r4, r3, r4
- adds r4, r1
- ldr r4, [r4]
- cmp r0, r4
- bls _0815E530
- adds r0, r1, r3
- ldr r3, _0815E528 @ =0x00003d3c
- adds r0, r3
- adds r1, r4, 0
- bl sub_815EDF4
- ldr r0, _0815E52C @ =gSpecialVar_Result
- strh r5, [r0]
- b _0815E536
- .align 2, 0
-_0815E520: .4byte 0x00003d38
-_0815E524: .4byte 0x00003d34
-_0815E528: .4byte 0x00003d3c
-_0815E52C: .4byte gSpecialVar_Result
-_0815E530:
- ldr r1, _0815E55C @ =gSpecialVar_Result
- movs r0, 0x1
-_0815E534:
- strh r0, [r1]
-_0815E536:
- ldr r0, _0815E560 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0815E564 @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r3, _0815E568 @ =0x00003d42
- adds r1, r3
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E55C: .4byte gSpecialVar_Result
-_0815E560: .4byte gSaveBlock1Ptr
-_0815E564: .4byte 0x00003d34
-_0815E568: .4byte 0x00003d42
- thumb_func_end sub_815E4B0
-
- thumb_func_start sub_815E56C
-sub_815E56C: @ 815E56C
- push {r4,lr}
- ldr r0, _0815E5A0 @ =gSaveBlock1Ptr
- ldr r4, [r0]
- ldr r1, _0815E5A4 @ =0x00003d34
- adds r0, r4, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, r3
- ldr r1, _0815E5A8 @ =0x00003d42
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _0815E5BA
- subs r1, 0xA
- adds r0, r4, r1
- adds r2, r0, r3
- ldr r1, [r2]
- ldr r0, _0815E5AC @ =0x00034bbe
- cmp r1, r0
- bls _0815E5B0
- adds r0, 0x1
- str r0, [r2]
- b _0815E5BA
- .align 2, 0
-_0815E5A0: .4byte gSaveBlock1Ptr
-_0815E5A4: .4byte 0x00003d34
-_0815E5A8: .4byte 0x00003d42
-_0815E5AC: .4byte 0x00034bbe
-_0815E5B0:
- ldr r1, _0815E5C0 @ =0x00003d38
- adds r0, r3, r1
- adds r0, r4, r0
- bl SetVBlankCounter1Ptr
-_0815E5BA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E5C0: .4byte 0x00003d38
- thumb_func_end sub_815E56C
-
- thumb_func_start sub_815E5C4
-sub_815E5C4: @ 815E5C4
- ldr r0, _0815E5E4 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0815E5E8 @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _0815E5EC @ =0x00003d42
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0815E5E4: .4byte gSaveBlock1Ptr
-_0815E5E8: .4byte 0x00003d34
-_0815E5EC: .4byte 0x00003d42
- thumb_func_end sub_815E5C4
-
- thumb_func_start sub_815E5F0
-sub_815E5F0: @ 815E5F0
- push {lr}
- ldr r0, _0815E620 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, _0815E624 @ =0x00003d34
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r0, _0815E628 @ =0x00003d42
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- bge _0815E630
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r1, _0815E62C @ =gSpecialVar_Result
- movs r0, 0
- b _0815E64C
- .align 2, 0
-_0815E620: .4byte gSaveBlock1Ptr
-_0815E624: .4byte 0x00003d34
-_0815E628: .4byte 0x00003d42
-_0815E62C: .4byte gSpecialVar_Result
-_0815E630:
- lsls r0, r1, 27
- cmp r0, 0
- bge _0815E648
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r1, _0815E644 @ =gSpecialVar_Result
- movs r0, 0x1
- b _0815E64C
- .align 2, 0
-_0815E644: .4byte gSpecialVar_Result
-_0815E648:
- ldr r1, _0815E654 @ =gSpecialVar_Result
- movs r0, 0x2
-_0815E64C:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0815E654: .4byte gSpecialVar_Result
- thumb_func_end sub_815E5F0
-
- thumb_func_start sub_815E658
-sub_815E658: @ 815E658
- push {r4-r6,lr}
- ldr r4, _0815E700 @ =gSaveBlock1Ptr
- ldr r2, [r4]
- ldr r6, _0815E704 @ =0x00003d34
- adds r0, r2, r6
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r5, _0815E708 @ =0x00003d38
- adds r2, r5
- adds r2, r0
- ldr r1, [r2]
- ldr r0, _0815E70C @ =0x00034bbe
- cmp r1, r0
- bls _0815E690
- bl DisableVBlankCounter1
- ldr r1, [r4]
- adds r0, r1, r6
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r5
- adds r1, r0
- ldr r0, _0815E710 @ =0x00034bbf
- str r0, [r1]
-_0815E690:
- ldr r1, [r4]
- adds r0, r1, r6
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r5
- adds r1, r0
- ldr r4, [r1]
- movs r5, 0xE1
- lsls r5, 4
- adds r0, r4, 0
- adds r1, r5, 0
- bl __divsi3
- adds r6, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- movs r1, 0x3C
- bl __divsi3
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0x3C
- bl __modsi3
- movs r1, 0xA8
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _0815E714 @ =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815E718 @ =gStringVar2
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815E71C @ =gStringVar3
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E700: .4byte gSaveBlock1Ptr
-_0815E704: .4byte 0x00003d34
-_0815E708: .4byte 0x00003d38
-_0815E70C: .4byte 0x00034bbe
-_0815E710: .4byte 0x00034bbf
-_0815E714: .4byte gStringVar1
-_0815E718: .4byte gStringVar2
-_0815E71C: .4byte gStringVar3
- thumb_func_end sub_815E658
-
- thumb_func_start sub_815E720
-sub_815E720: @ 815E720
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- bl sub_815EC0C
- ldr r0, _0815E85C @ =gUnknown_847A218
- bl AddWindow
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_80F6E9C
- adds r0, r7, 0
- movs r1, 0
- bl sub_80F6F1C
- ldr r2, _0815E860 @ =gUnknown_83FE982
- movs r1, 0
- str r1, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- movs r3, 0x4A
- bl AddTextPrinterParameterized
- movs r0, 0
- mov r8, r0
- movs r1, 0xB8
- lsls r1, 22
- mov r10, r1
- movs r0, 0x90
- lsls r0, 22
- mov r9, r0
-_0815E76C:
- ldr r0, _0815E864 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, _0815E868 @ =0x00003d34
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0815E86C @ =0x00003d3c
- adds r0, r1
- bl sub_815EDDC
- adds r4, r0, 0
- movs r5, 0xE1
- lsls r5, 4
- adds r1, r5, 0
- bl __divsi3
- adds r6, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- movs r1, 0x3C
- bl __divsi3
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0x3C
- bl __modsi3
- movs r1, 0xA8
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _0815E870 @ =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815E874 @ =gStringVar2
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815E878 @ =gStringVar3
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815E87C @ =gStringVar4
- ldr r1, _0815E880 @ =gUnknown_83FE998
- bl StringExpandPlaceholders
- ldr r1, _0815E884 @ =gUnknown_83FE9C4
- mov r0, r8
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- mov r1, r9
- lsrs r0, r1, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- movs r3, 0x18
- bl AddTextPrinterParameterized
- mov r1, r10
- lsrs r0, r1, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- ldr r2, _0815E87C @ =gStringVar4
- movs r3, 0x60
- bl AddTextPrinterParameterized
- movs r0, 0xA0
- lsls r0, 21
- add r10, r0
- add r9, r0
- movs r1, 0x1
- add r8, r1
- mov r0, r8
- cmp r0, 0x3
- ble _0815E76C
- adds r0, r7, 0
- bl PutWindowTilemap
- adds r0, r7, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0815E888 @ =0x00004001
- adds r1, r7, 0
- bl VarSet
- 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
-_0815E85C: .4byte gUnknown_847A218
-_0815E860: .4byte gUnknown_83FE982
-_0815E864: .4byte gSaveBlock1Ptr
-_0815E868: .4byte 0x00003d34
-_0815E86C: .4byte 0x00003d3c
-_0815E870: .4byte gStringVar1
-_0815E874: .4byte gStringVar2
-_0815E878: .4byte gStringVar3
-_0815E87C: .4byte gStringVar4
-_0815E880: .4byte gUnknown_83FE998
-_0815E884: .4byte gUnknown_83FE9C4
-_0815E888: .4byte 0x00004001
- thumb_func_end sub_815E720
-
- thumb_func_start sub_815E88C
-sub_815E88C: @ 815E88C
- push {r4,lr}
- ldr r0, _0815E8B0 @ =0x00004001
- bl VarGet
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_810F4D8
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E8B0: .4byte 0x00004001
- thumb_func_end sub_815E88C
-
- thumb_func_start sub_815E8B4
-sub_815E8B4: @ 815E8B4
- push {r4,lr}
- ldr r4, _0815E8C8 @ =gSpecialVar_Result
- bl GetMonsStateToDoubles
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E8C8: .4byte gSpecialVar_Result
- thumb_func_end sub_815E8B4
-
- thumb_func_start sub_815E8CC
-sub_815E8CC: @ 815E8CC
- push {lr}
- ldr r0, _0815E8EC @ =gUnknown_203F458
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- ldrb r2, [r1, 0xD]
- cmp r0, r2
- beq _0815E8F8
- ldr r0, _0815E8F0 @ =gStringVar1
- ldrb r1, [r1, 0x4]
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r1, _0815E8F4 @ =gSpecialVar_Result
- movs r0, 0x1
- b _0815E8FC
- .align 2, 0
-_0815E8EC: .4byte gUnknown_203F458
-_0815E8F0: .4byte gStringVar1
-_0815E8F4: .4byte gSpecialVar_Result
-_0815E8F8:
- ldr r1, _0815E904 @ =gSpecialVar_Result
- movs r0, 0
-_0815E8FC:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0815E904: .4byte gSpecialVar_Result
- thumb_func_end sub_815E8CC
-
- thumb_func_start sub_815E908
-sub_815E908: @ 815E908
- push {lr}
- ldr r0, _0815E928 @ =gMapHeader
- ldrh r1, [r0, 0x12]
- ldr r0, _0815E92C @ =0x00000129
- cmp r1, r0
- bne _0815E938
- ldr r0, _0815E930 @ =0x00004082
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0815E938
- ldr r0, _0815E934 @ =gSpecialVar_Result
- strh r1, [r0]
- b _0815E93E
- .align 2, 0
-_0815E928: .4byte gMapHeader
-_0815E92C: .4byte 0x00000129
-_0815E930: .4byte 0x00004082
-_0815E934: .4byte gSpecialVar_Result
-_0815E938:
- ldr r1, _0815E944 @ =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
-_0815E93E:
- pop {r0}
- bx r0
- .align 2, 0
-_0815E944: .4byte gSpecialVar_Result
- thumb_func_end sub_815E908
-
- thumb_func_start sub_815E948
-sub_815E948: @ 815E948
- push {r4,lr}
- ldr r0, _0815E97C @ =0x00004001
- bl VarGet
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _0815E980 @ =gUnknown_203F458
- ldr r3, [r0]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r2
- lsls r1, 3
- ldrb r2, [r3]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 5
- adds r1, r0
- adds r3, r1
- ldrb r1, [r3, 0x1B]
- movs r3, 0
- ldr r2, _0815E984 @ =gUnknown_847A074
- ldr r0, _0815E988 @ =gFacilityClassToTrainerClass
- adds r1, r0
- b _0815E994
- .align 2, 0
-_0815E97C: .4byte 0x00004001
-_0815E980: .4byte gUnknown_203F458
-_0815E984: .4byte gUnknown_847A074
-_0815E988: .4byte gFacilityClassToTrainerClass
-_0815E98C:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x68
- bhi _0815E99C
-_0815E994:
- ldrb r0, [r2]
- ldrb r4, [r1]
- cmp r0, r4
- bne _0815E98C
-_0815E99C:
- cmp r3, 0x69
- beq _0815E9B0
- ldr r1, _0815E9AC @ =gUnknown_847A074
- lsls r0, r3, 2
- adds r0, r1
- ldrb r2, [r0, 0x1]
- b _0815E9B2
- .align 2, 0
-_0815E9AC: .4byte gUnknown_847A074
-_0815E9B0:
- movs r2, 0
-_0815E9B2:
- ldr r0, _0815E9C4 @ =gUnknown_847A2D2
- lsls r1, r2, 1
- adds r1, r0
- ldrh r0, [r1]
- bl PlayNewMapMusic
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815E9C4: .4byte gUnknown_847A2D2
- thumb_func_end sub_815E948
-
- thumb_func_start sub_815E9C8
-sub_815E9C8: @ 815E9C8
- ldr r3, _0815E9EC @ =gSpecialVar_Result
- ldr r0, _0815E9F0 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0815E9F4 @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _0815E9F8 @ =0x00003d42
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- lsrs r0, 31
- strh r0, [r3]
- bx lr
- .align 2, 0
-_0815E9EC: .4byte gSpecialVar_Result
-_0815E9F0: .4byte gSaveBlock1Ptr
-_0815E9F4: .4byte 0x00003d34
-_0815E9F8: .4byte 0x00003d42
- thumb_func_end sub_815E9C8
-
- thumb_func_start sub_815E9FC
-sub_815E9FC: @ 815E9FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0815EABC @ =0x00004001
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_815EBB8
- mov r9, r0
- ldr r0, _0815EAC0 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0815EAC4 @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- movs r0, 0xF5
- lsls r0, 6
- adds r1, r0
- ldrb r5, [r1]
- bl ZeroEnemyPartyMons
- ldr r1, _0815EAC8 @ =gUnknown_203F458
- mov r10, r1
- ldr r6, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 5
- subs r0, r1
- lsls r7, r0, 5
- adds r0, r6, r7
- ldrb r0, [r0, 0xE]
- cmp r0, 0x1
- beq _0815EAD4
- cmp r0, 0x1
- ble _0815EA56
- cmp r0, 0x2
- bne _0815EA56
- b _0815EB58
-_0815EA56:
- movs r6, 0
- lsls r5, 1
- str r5, [sp]
- lsls r0, r4, 2
- mov r5, r10
- adds r0, r4
- lsls r0, 3
- adds r0, r4
- lsls r7, r0, 3
- adds r2, r7, 0x4
- mov r8, r2
-_0815EA6C:
- ldr r1, _0815EACC @ =gUnknown_847A2EE
- ldr r2, [sp]
- adds r0, r6, r2
- adds r0, r1
- ldrb r2, [r0]
- ldr r3, [r5]
- movs r0, 0x2C
- adds r4, r2, 0
- muls r4, r0
- adds r2, r4, r7
- ldrb r1, [r3]
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 5
- adds r2, r0
- adds r3, r2
- adds r3, 0x5C
- mov r0, r9
- strb r0, [r3]
- movs r0, 0x64
- muls r0, r6
- ldr r1, _0815EAD0 @ =gEnemyParty
- adds r0, r1
- ldr r1, [r5]
- ldrb r3, [r1]
- lsls r2, r3, 5
- subs r2, r3
- lsls r2, 5
- adds r2, 0xC
- adds r1, r2
- add r1, r8
- adds r4, 0x40
- adds r1, r4
- bl sub_803E0A4
- adds r6, 0x1
- cmp r6, 0x1
- ble _0815EA6C
- b _0815EB9E
- .align 2, 0
-_0815EABC: .4byte 0x00004001
-_0815EAC0: .4byte gSaveBlock1Ptr
-_0815EAC4: .4byte 0x00003d34
-_0815EAC8: .4byte gUnknown_203F458
-_0815EACC: .4byte gUnknown_847A2EE
-_0815EAD0: .4byte gEnemyParty
-_0815EAD4:
- ldr r4, _0815EB50 @ =gUnknown_847A2FE
- lsls r5, 1
- adds r0, r5, r4
- ldrb r2, [r0]
- movs r1, 0x2C
- mov r8, r1
- mov r3, r8
- muls r3, r2
- adds r0, r3, r7
- adds r0, r6, r0
- adds r0, 0x5C
- mov r2, r9
- strb r2, [r0]
- ldr r6, _0815EB54 @ =gEnemyParty
- mov r0, r10
- ldr r1, [r0]
- ldrb r2, [r1]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 5
- adds r0, 0xC
- adds r1, r0
- adds r3, 0x44
- adds r1, r3
- adds r0, r6, 0
- bl sub_803E0A4
- adds r4, 0x1
- adds r5, r4
- ldrb r2, [r5]
- mov r0, r10
- ldr r1, [r0]
- mov r3, r8
- muls r3, r2
- ldrb r2, [r1]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 5
- adds r0, r3, r0
- adds r1, r0
- movs r2, 0xD2
- lsls r2, 1
- adds r1, r2
- mov r0, r9
- strb r0, [r1]
- adds r6, 0x64
- mov r2, r10
- ldr r1, [r2]
- ldrb r2, [r1]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 5
- adds r0, 0xC
- adds r1, r0
- movs r0, 0xC6
- lsls r0, 1
- adds r3, r0
- adds r1, r3
- adds r0, r6, 0
- bl sub_803E0A4
- b _0815EB9E
- .align 2, 0
-_0815EB50: .4byte gUnknown_847A2FE
-_0815EB54: .4byte gEnemyParty
-_0815EB58:
- ldr r1, _0815EBB0 @ =gUnknown_847A30E
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r4, r0
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0x2C
- adds r5, r2, 0
- muls r5, r0
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r4
- lsls r3, 3
- adds r0, r5, r3
- adds r0, r7
- adds r0, r6, r0
- adds r0, 0x5C
- mov r1, r9
- strb r1, [r0]
- ldr r0, _0815EBB4 @ =gEnemyParty
- mov r2, r10
- ldr r1, [r2]
- ldrb r4, [r1]
- lsls r2, r4, 5
- subs r2, r4
- lsls r2, 5
- adds r2, 0xC
- adds r1, r2
- adds r3, 0x4
- adds r1, r3
- adds r5, 0x40
- adds r1, r5
- bl sub_803E0A4
-_0815EB9E:
- 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
-_0815EBB0: .4byte gUnknown_847A30E
-_0815EBB4: .4byte gEnemyParty
- thumb_func_end sub_815E9FC
-
- thumb_func_start sub_815EBB8
-sub_815EBB8: @ 815EBB8
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_0815EBBE:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0815EC08 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0815EBF8
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0815EBF8
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- ble _0815EBF8
- adds r6, r0, 0
-_0815EBF8:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0815EBBE
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0815EC08: .4byte gPlayerParty
- thumb_func_end sub_815EBB8
-
- thumb_func_start sub_815EC0C
-sub_815EC0C: @ 815EC0C
- push {r4,lr}
- ldr r4, _0815EC70 @ =gSaveBlock1Ptr
- ldr r2, [r4]
- ldr r1, _0815EC74 @ =0x00003d34
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r0, _0815EC78 @ =0x00003d41
- adds r2, r0
- ldr r0, _0815EC7C @ =gUnknown_203F458
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r0, [r2]
- cmp r0, r1
- beq _0815EC6A
- strb r1, [r2]
- ldr r2, [r4]
- ldr r1, _0815EC74 @ =0x00003d34
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r2, _0815EC80 @ =0x00003d3c
- adds r0, r2
- ldr r1, _0815EC84 @ =0x00034bbf
- bl sub_815EDF4
- ldr r1, [r4]
- ldr r2, _0815EC74 @ =0x00003d34
- adds r0, r1, r2
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _0815EC88 @ =0x00003d42
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0815EC6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815EC70: .4byte gSaveBlock1Ptr
-_0815EC74: .4byte 0x00003d34
-_0815EC78: .4byte 0x00003d41
-_0815EC7C: .4byte gUnknown_203F458
-_0815EC80: .4byte 0x00003d3c
-_0815EC84: .4byte 0x00034bbf
-_0815EC88: .4byte 0x00003d42
- thumb_func_end sub_815EC0C
-
- thumb_func_start sub_815EC8C
-sub_815EC8C: @ 815EC8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r8, r0
- bl sub_815DC8C
- movs r0, 0xD8
- str r0, [sp]
- movs r0, 0x90
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
- bl sub_815EC0C
- ldr r4, _0815EDB4 @ =gUnknown_847A22C
- str r4, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- ldr r0, _0815EDB8 @ =gUnknown_83FE982
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x4A
- movs r3, 0
- bl box_print
- movs r7, 0
- movs r0, 0x90
- lsls r0, 22
- mov r10, r0
- ldr r0, _0815EDBC @ =0x00003d38
- mov r9, r0
-_0815ECDC:
- ldr r0, _0815EDC0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- add r0, r9
- adds r0, 0x4
- bl sub_815EDDC
- adds r4, r0, 0
- movs r5, 0xE1
- lsls r5, 4
- adds r1, r5, 0
- bl __divsi3
- adds r6, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- bl __modsi3
- adds r4, r0, 0
- movs r1, 0x3C
- bl __divsi3
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0x3C
- bl __modsi3
- movs r1, 0xA8
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _0815EDC4 @ =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815EDC8 @ =gStringVar2
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815EDCC @ =gStringVar3
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0815EDD0 @ =gStringVar4
- ldr r1, _0815EDD4 @ =gUnknown_83FE998
- bl StringExpandPlaceholders
- lsls r1, r7, 2
- mov r0, r10
- lsrs r4, r0, 24
- ldr r0, _0815EDB4 @ =gUnknown_847A22C
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, _0815EDD8 @ =gUnknown_83FE9C4
- adds r1, r0
- ldr r0, [r1]
- str r0, [sp, 0x8]
- mov r0, r8
- movs r1, 0x2
- movs r2, 0x18
- adds r3, r4, 0
- bl box_print
- ldr r0, _0815EDB4 @ =gUnknown_847A22C
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, _0815EDD0 @ =gStringVar4
- str r0, [sp, 0x8]
- mov r0, r8
- movs r1, 0x2
- movs r2, 0x60
- adds r3, r4, 0
- bl box_print
- movs r0, 0xA0
- lsls r0, 21
- add r10, r0
- movs r0, 0xC
- add r9, r0
- adds r7, 0x1
- cmp r7, 0x3
- ble _0815ECDC
- mov r0, r8
- bl PutWindowTilemap
- mov r0, r8
- movs r1, 0x3
- bl CopyWindowToVram
- bl sub_815DD2C
- 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
-_0815EDB4: .4byte gUnknown_847A22C
-_0815EDB8: .4byte gUnknown_83FE982
-_0815EDBC: .4byte 0x00003d38
-_0815EDC0: .4byte gSaveBlock1Ptr
-_0815EDC4: .4byte gStringVar1
-_0815EDC8: .4byte gStringVar2
-_0815EDCC: .4byte gStringVar3
-_0815EDD0: .4byte gStringVar4
-_0815EDD4: .4byte gUnknown_83FE998
-_0815EDD8: .4byte gUnknown_83FE9C4
- thumb_func_end sub_815EC8C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trig.s b/asm/trig.s
deleted file mode 100644
index ca1993b60..000000000
--- a/asm/trig.s
+++ /dev/null
@@ -1,97 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start Sin
-Sin: @ 8044E30
- lsls r1, 16
- asrs r1, 16
- ldr r2, _08044E48 @ =gUnknown_825E074
- lsls r0, 16
- asrs r0, 15
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- lsls r0, 8
- asrs r0, 16
- bx lr
- .align 2, 0
-_08044E48: .4byte gUnknown_825E074
- thumb_func_end Sin
-
- thumb_func_start Cos
-Cos: @ 8044E4C
- lsls r1, 16
- asrs r1, 16
- ldr r2, _08044E68 @ =gUnknown_825E074
- lsls r0, 16
- asrs r0, 15
- adds r0, 0x80
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- lsls r0, 8
- asrs r0, 16
- bx lr
- .align 2, 0
-_08044E68: .4byte gUnknown_825E074
- thumb_func_end Cos
-
- thumb_func_start Sin2
-Sin2: @ 8044E6C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r5, 0
- movs r1, 0xB4
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0xB4
- bl __udivsi3
- movs r1, 0x1
- ands r0, r1
- ldr r1, _08044EA0 @ =gUnknown_825E2F4
- lsls r4, 1
- adds r4, r1
- ldrh r1, [r4]
- cmp r0, 0
- bne _08044EA4
- lsls r0, r1, 16
- b _08044EA8
- .align 2, 0
-_08044EA0: .4byte gUnknown_825E2F4
-_08044EA4:
- lsls r0, r1, 16
- negs r0, r0
-_08044EA8:
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end Sin2
-
- thumb_func_start Cos2
-Cos2: @ 8044EB0
- push {lr}
- lsls r0, 16
- movs r1, 0xB4
- lsls r1, 15
- adds r0, r1
- lsrs r0, 16
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end Cos2
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index c61c9a3d8..6c917be27 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -200,7 +200,7 @@ sub_81285B4: @ 81285B4
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_81285B4
@@ -1720,7 +1720,7 @@ _081291E8:
bl sub_812B4B8
bl sub_8129B88
bl sub_81284BC
- ldr r0, _08129214 @ =c2_exit_to_overworld_2_switch
+ ldr r0, _08129214 @ =CB2_ReturnToField
bl SetMainCallback2
_08129206:
add sp, 0x4
@@ -1729,7 +1729,7 @@ _08129206:
bx r0
.align 2, 0
_08129210: .4byte gPaletteFade
-_08129214: .4byte c2_exit_to_overworld_2_switch
+_08129214: .4byte CB2_ReturnToField
thumb_func_end sub_8128FB8
thumb_func_start sub_8129218
@@ -3046,7 +3046,7 @@ sub_8129B88: @ 8129B88
str r0, [r4]
_08129B9E:
bl FreeAllWindowBuffers
- ldr r1, _08129BB4 @ =gUnknown_2039600
+ ldr r1, _08129BB4 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
pop {r4}
@@ -3054,7 +3054,7 @@ _08129B9E:
bx r0
.align 2, 0
_08129BB0: .4byte gUnknown_203B0E4
-_08129BB4: .4byte gUnknown_2039600
+_08129BB4: .4byte gScanlineEffect
thumb_func_end sub_8129B88
thumb_func_start sub_8129BB8
@@ -4288,7 +4288,7 @@ sub_812A424: @ 812A424
ldrb r0, [r0, 0x18]
movs r1, 0x1
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
ldr r0, [r6]
ldrb r0, [r0, 0x18]
movs r1, 0xE
@@ -4299,7 +4299,7 @@ sub_812A424: @ 812A424
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
_0812A4F0:
add sp, 0x14
pop {r3}
@@ -4329,7 +4329,7 @@ sub_812A51C: @ 812A51C
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldr r0, [r4]
ldrb r0, [r0, 0x18]
bl ClearWindowTilemap
@@ -4495,7 +4495,7 @@ _0812A642:
adds r0, r5, 0
movs r1, 0xA
movs r2, 0x2
- bl sub_81501D0
+ bl DrawTextBorderInner
ldrb r3, [r4, 0x5]
adds r3, 0x8
lsls r3, 24
@@ -4516,7 +4516,7 @@ _0812A642:
adds r0, r5, 0
movs r1, 0x2
adds r2, r6, 0
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
b _0812A6DA
.align 2, 0
_0812A6AC: .4byte gUnknown_845AB64
@@ -4524,7 +4524,7 @@ _0812A6B0:
adds r0, r5, 0
movs r1, 0xA
movs r2, 0x2
- bl sub_8150048
+ bl DrawTextBorderOuter
ldrb r3, [r4, 0x5]
ldrb r0, [r4, 0x6]
str r0, [sp]
@@ -4539,7 +4539,7 @@ _0812A6B0:
adds r0, r5, 0
movs r1, 0x2
adds r2, r6, 0
- bl sub_812E62C
+ bl AddTextPrinterParameterized5
_0812A6DA:
ldr r0, _0812A6F0 @ =gUnknown_203B0E4
ldr r0, [r0]
@@ -4568,7 +4568,7 @@ sub_812A6F4: @ 812A6F4
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
ldr r0, [r4]
ldrb r0, [r0, 0x1E]
bl ClearWindowTilemap
@@ -4689,7 +4689,7 @@ _0812A7B4:
movs r0, 0x1
movs r1, 0x2
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x34
pop {r3-r5}
mov r8, r3
@@ -4767,7 +4767,7 @@ _0812A866:
movs r0, 0x2
movs r1, 0
lsrs r2, r5, 24
- bl box_print
+ bl AddTextPrinterParameterized3
adds r4, 0x4
adds r7, 0x1
adds r0, r6, 0
@@ -4807,7 +4807,7 @@ _0812A8A8:
movs r4, 0x80
lsls r4, 19
lsrs r2, r4, 24
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r7, 0x1
str r0, [sp, 0x48]
adds r6, 0xC
@@ -4858,7 +4858,7 @@ _0812A90C:
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r2, r7, 0
add r0, sp, 0xC
str r0, [sp]
@@ -4870,7 +4870,7 @@ _0812A90C:
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
_0812A960:
ldr r7, [sp, 0x48]
mov r4, r10
@@ -4980,7 +4980,7 @@ sub_812AA10: @ 812AA10
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
ldr r0, _0812AA60 @ =gUnknown_845ABEC
str r0, [sp]
movs r0, 0x3
@@ -5000,7 +5000,7 @@ sub_812AA10: @ 812AA10
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x3
bl PutWindowTilemap
add sp, 0xC
@@ -5015,7 +5015,7 @@ sub_812AA64: @ 812AA64
push {lr}
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearMenuWindow
movs r0, 0x3
bl ClearWindowTilemap
pop {r0}
@@ -5063,7 +5063,7 @@ sub_812AA78: @ 812AA78
movs r1, 0x2
movs r2, 0
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x10
pop {r4,r5}
pop {r0}
@@ -5350,19 +5350,19 @@ sub_812AD20: @ 812AD20
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD0
- bl sub_815001C
+ bl TextWindow_SetUserSelectedFrame
movs r0, 0x3
movs r1, 0xA
movs r2, 0x20
- bl sub_814FF2C
- ldr r0, _0812AD4C @ =gUnknown_841F408
+ bl TextWindow_SetStdFrame0_WithPal
+ ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_0812AD4C: .4byte gUnknown_841F408
+_0812AD4C: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_812AD20
thumb_func_start sub_812AD50
@@ -5384,13 +5384,13 @@ sub_812AD50: @ 812AD50
strh r1, [r0, 0x20]
str r1, [sp, 0xC]
add r0, sp, 0xC
- ldr r1, _0812AD98 @ =gUnknown_2038700
+ ldr r1, _0812AD98 @ =gScanlineEffectRegBuffers
ldr r2, _0812AD9C @ =0x010003c0
bl CpuFastSet
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
add sp, 0x10
pop {r0}
bx r0
@@ -5398,7 +5398,7 @@ sub_812AD50: @ 812AD50
_0812AD8C: .4byte 0xa2600001
_0812AD90: .4byte 0x04000014
_0812AD94: .4byte gUnknown_203B0E4
-_0812AD98: .4byte gUnknown_2038700
+_0812AD98: .4byte gScanlineEffectRegBuffers
_0812AD9C: .4byte 0x010003c0
thumb_func_end sub_812AD50
@@ -5410,12 +5410,12 @@ sub_812ADA0: @ 812ADA0
lsrs r0, 16
mov r1, sp
strh r0, [r1]
- ldr r5, _0812ADE8 @ =gUnknown_2039600
+ ldr r5, _0812ADE8 @ =gScanlineEffect
ldrb r0, [r5, 0x14]
lsls r1, r0, 4
subs r1, r0
lsls r1, 7
- ldr r4, _0812ADEC @ =gUnknown_2038700
+ ldr r4, _0812ADEC @ =gScanlineEffectRegBuffers
adds r1, r4
ldr r2, _0812ADF0 @ =0x01000090
mov r0, sp
@@ -5439,8 +5439,8 @@ sub_812ADA0: @ 812ADA0
pop {r0}
bx r0
.align 2, 0
-_0812ADE8: .4byte gUnknown_2039600
-_0812ADEC: .4byte gUnknown_2038700
+_0812ADE8: .4byte gScanlineEffect
+_0812ADEC: .4byte gScanlineEffectRegBuffers
_0812ADF0: .4byte 0x01000090
_0812ADF4: .4byte 0x01000010
thumb_func_end sub_812ADA0
@@ -5457,7 +5457,7 @@ sub_812ADF8: @ 812ADF8
lsrs r4, 16
mov r0, sp
strh r4, [r0]
- ldr r5, _0812AE64 @ =gUnknown_2038700
+ ldr r5, _0812AE64 @ =gScanlineEffectRegBuffers
ldr r0, _0812AE68 @ =0x01000090
mov r9, r0
mov r0, sp
@@ -5498,7 +5498,7 @@ sub_812ADF8: @ 812ADF8
pop {r0}
bx r0
.align 2, 0
-_0812AE64: .4byte gUnknown_2038700
+_0812AE64: .4byte gScanlineEffectRegBuffers
_0812AE68: .4byte 0x01000090
_0812AE6C: .4byte 0x01000010
thumb_func_end sub_812ADF8
diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s
deleted file mode 100644
index e7e825483..000000000
--- a/asm/unk_810C3A4.s
+++ /dev/null
@@ -1,389 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810C3A4
-sub_810C3A4: @ 810C3A4
- push {lr}
- ldr r0, _0810C3B4 @ =sub_810C3B8
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810C3B4: .4byte sub_810C3B8
- thumb_func_end sub_810C3A4
-
- thumb_func_start sub_810C3B8
-sub_810C3B8: @ 810C3B8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0810C43C @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810C3E2
- bl walkrun_is_standing_still
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0810C3E2
- bl sub_805C270
- strh r4, [r5, 0x8]
-_0810C3E2:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810C41C
- movs r4, 0
- ldr r7, _0810C440 @ =gMapObjects
-_0810C3EE:
- adds r0, r4, 0
- bl sub_810CF04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C412
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0810C436
- adds r0, r1, 0
- bl FreezeMapObject
-_0810C412:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0810C3EE
-_0810C41C:
- movs r0, 0x1
- strh r0, [r5, 0xA]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810C436
- adds r0, r6, 0
- bl DestroyTask
- bl sub_805C780
- bl EnableBothScriptContexts
-_0810C436:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C43C: .4byte gTasks
-_0810C440: .4byte gMapObjects
- thumb_func_end sub_810C3B8
-
- thumb_func_start sub_810C444
-sub_810C444: @ 810C444
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r0, _0810C4E0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 4
- adds r1, r0
- mov r8, r1
- movs r7, 0
- ldr r0, _0810C4E4 @ =gMapHeader
- ldr r1, [r0, 0x4]
- adds r2, r0, 0
- ldrb r1, [r1]
- cmp r7, r1
- bcs _0810C4D2
-_0810C466:
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- mov r1, r8
- adds r5, r0, r1
- ldrh r0, [r5, 0xC]
- cmp r0, 0x1
- beq _0810C47A
- cmp r0, 0x3
- bne _0810C4C4
-_0810C47A:
- ldrb r0, [r5, 0x9]
- subs r0, 0x4D
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0810C4C4
- bl sub_810CF54
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r5]
- ldr r1, _0810C4E0 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, _0810C4E8 @ =gMapObjects
- adds r4, r1, r2
- bl sub_810CF04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C4C0
- adds r0, r4, 0
- adds r1, r6, 0
- bl npc_set_running_behaviour_etc
-_0810C4C0:
- strb r6, [r5, 0x9]
- ldr r2, _0810C4E4 @ =gMapHeader
-_0810C4C4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r2, 0x4]
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0810C466
-_0810C4D2:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C4E0: .4byte gSaveBlock1Ptr
-_0810C4E4: .4byte gMapHeader
-_0810C4E8: .4byte gMapObjects
- thumb_func_end sub_810C444
-
- thumb_func_start sub_810C4EC
-sub_810C4EC: @ 810C4EC
- push {r4-r7,lr}
- movs r0, 0xB5
- lsls r0, 1
- movs r1, 0x1
- bl sub_8099F40
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C516
- ldr r0, _0810C568 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0xC7
- lsls r2, 3
- adds r1, r0, r2
- ldrh r2, [r1]
- ldrb r0, [r1]
- cmp r0, 0x63
- bhi _0810C516
- adds r0, r2, 0x1
- strh r0, [r1]
-_0810C516:
- ldr r7, _0810C56C @ =0x00000801
- adds r0, r7, 0
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C570
- ldr r6, _0810C568 @ =gSaveBlock1Ptr
- ldr r0, [r6]
- movs r5, 0xC7
- lsls r5, 3
- adds r3, r0, r5
- ldrh r2, [r3]
- lsrs r1, r2, 8
- movs r4, 0xFF
- cmp r1, 0x63
- bhi _0810C548
- adds r1, 0x1
- lsls r1, 24
- movs r0, 0xFF
- ands r0, r2
- lsrs r1, 16
- orrs r0, r1
- strh r0, [r3]
-_0810C548:
- ldr r0, [r6]
- adds r0, r5
- ldrh r0, [r0]
- lsrs r0, 8
- ands r0, r4
- cmp r0, 0x64
- bne _0810C570
- adds r0, r7, 0
- bl FlagClear
- bl sub_810C640
- bl sub_810D0D0
- movs r0, 0x1
- b _0810C572
- .align 2, 0
-_0810C568: .4byte gSaveBlock1Ptr
-_0810C56C: .4byte 0x00000801
-_0810C570:
- movs r0, 0
-_0810C572:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810C4EC
-
- thumb_func_start sub_810C578
-sub_810C578: @ 810C578
- push {lr}
- ldr r0, _0810C590 @ =0x00000801
- bl FlagClear
- bl sub_810C640
- bl sub_810D0D0
- bl sub_810C594
- pop {r0}
- bx r0
- .align 2, 0
-_0810C590: .4byte 0x00000801
- thumb_func_end sub_810C578
-
- thumb_func_start sub_810C594
-sub_810C594: @ 810C594
- push {r4-r7,lr}
- movs r5, 0
- movs r6, 0
-_0810C59A:
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- ldr r1, _0810C5FC @ =gMapObjects
- adds r4, r0, r1
- ldrb r0, [r4, 0x6]
- subs r0, 0x4D
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0810C5EA
- bl sub_810CF54
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _0810C5EA
- ldr r2, _0810C600 @ =gSprites
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r7, 0x2E
- ldrsh r0, [r1, r7]
- cmp r0, r5
- bne _0810C5EA
- strh r6, [r1, 0x24]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x26]
- adds r0, r4, 0
- adds r1, r3, 0
- bl npc_set_running_behaviour_etc
-_0810C5EA:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _0810C59A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5FC: .4byte gMapObjects
-_0810C600: .4byte gSprites
- thumb_func_end sub_810C594
-
- thumb_func_start sub_810C604
-sub_810C604: @ 810C604
- ldr r0, _0810C61C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0xC7
- lsls r0, 3
- adds r1, r0
- ldrh r2, [r1]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810C61C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C604
-
- thumb_func_start sub_810C620
-sub_810C620: @ 810C620
- ldr r0, _0810C63C @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0xC7
- lsls r0, 3
- adds r2, r0
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- movs r1, 0x64
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0810C63C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C620
-
- thumb_func_start sub_810C640
-sub_810C640: @ 810C640
- ldr r0, _0810C650 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 3
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0810C650: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C640
-
- thumb_func_start sub_810C654
-sub_810C654: @ 810C654
- ldr r0, _0810C66C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0xC7
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- movs r3, 0xC8
- lsls r3, 7
- adds r2, r3, 0
- orrs r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810C66C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C654
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unk_8159F40.s b/asm/unk_8159F40.s
deleted file mode 100644
index aefa4ecff..000000000
--- a/asm/unk_8159F40.s
+++ /dev/null
@@ -1,1623 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8159F40
-sub_8159F40: @ 8159F40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r10, r0
- mov r9, r0
- ldr r1, _08159F90 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 9
- str r0, [r1]
- bl ZeroPlayerPartyMons
- bl ZeroEnemyPartyMons
- ldr r1, _08159F94 @ =gUnknown_84792D0
- ldr r0, _08159F98 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- mov r8, r0
- movs r7, 0
-_08159F72:
- lsls r0, r7, 4
- mov r2, r8
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0
- bne _08159FA0
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, _08159F9C @ =gPlayerParty
- adds r6, r1, r0
- movs r0, 0x1
- add r10, r0
- b _08159FAE
- .align 2, 0
-_08159F90: .4byte gBattleTypeFlags
-_08159F94: .4byte gUnknown_84792D0
-_08159F98: .4byte gSpecialVar_0x8004
-_08159F9C: .4byte gPlayerParty
-_08159FA0:
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _0815A004 @ =gEnemyParty
- adds r6, r1, r0
- movs r2, 0x1
- add r9, r2
-_08159FAE:
- mov r0, r8
- adds r3, r4, r0
- ldrh r1, [r3, 0x2]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0xD]
- str r0, [sp]
- ldrb r0, [r3, 0xC]
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r3, 0
- bl CreateMonWithGenderNatureLetter
- movs r5, 0
- adds r7, 0x1
- mov r0, r8
- adds r0, 0x4
- adds r4, r0
-_08159FD4:
- ldrh r1, [r4]
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r6, 0
- bl SetMonMoveSlot
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08159FD4
- lsls r0, r7, 4
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08159F72
- 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
-_0815A004: .4byte gEnemyParty
- thumb_func_end sub_8159F40
-
- thumb_func_start sub_815A008
-sub_815A008: @ 815A008
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r1, 0
- mov r8, r1
- movs r6, 0x1
- movs r2, 0x2
- negs r2, r2
- mov r12, r2
- adds r5, r0, 0
- adds r5, 0x8
- movs r7, 0
- movs r0, 0x41
- negs r0, r0
- mov r10, r0
- movs r1, 0x7F
- mov r9, r1
-_0815A02E:
- ldr r2, _0815A1F4 @ =gMapObjects
- adds r3, r7, r2
- ldrb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- ands r0, r6
- ldrb r2, [r5]
- mov r1, r12
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r3]
- lsls r0, 28
- lsrs r0, 31
- ands r0, r6
- lsls r0, 1
- movs r2, 0x3
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5]
- ldrb r0, [r3]
- lsls r0, 27
- lsrs r0, 31
- ands r0, r6
- lsls r0, 2
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r3]
- lsls r0, 26
- lsrs r0, 31
- ands r0, r6
- lsls r0, 3
- movs r2, 0x9
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5]
- ldrb r0, [r3, 0x1]
- lsls r0, 31
- lsrs r0, 31
- ands r0, r6
- lsls r0, 4
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r3, 0x1]
- lsls r0, 30
- lsrs r0, 31
- ands r0, r6
- lsls r0, 5
- movs r2, 0x21
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5]
- ldrb r0, [r3, 0x1]
- lsls r0, 29
- lsrs r0, 31
- ands r0, r6
- lsls r0, 6
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r3, 0x1]
- lsls r0, 28
- lsrs r0, 31
- lsls r0, 7
- mov r2, r9
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r3, 0x1]
- lsls r0, 27
- lsrs r0, 31
- ands r0, r6
- ldrb r2, [r5, 0x1]
- mov r1, r12
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 26
- lsrs r0, 31
- ands r0, r6
- lsls r0, 1
- movs r2, 0x3
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 25
- lsrs r0, 31
- ands r0, r6
- lsls r0, 2
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrb r0, [r3, 0x1]
- lsrs r0, 7
- ands r0, r6
- lsls r0, 3
- movs r2, 0x9
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 31
- lsrs r0, 31
- ands r0, r6
- lsls r0, 4
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrb r0, [r3, 0x2]
- lsrs r0, 7
- ands r0, r6
- lsls r0, 5
- movs r2, 0x21
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x1]
- ldrb r0, [r3, 0x3]
- lsls r0, 31
- lsrs r0, 31
- ands r0, r6
- lsls r0, 6
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrb r0, [r3, 0x3]
- lsls r0, 30
- lsrs r0, 31
- lsls r0, 7
- mov r2, r9
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrb r0, [r3, 0x3]
- lsls r0, 29
- lsrs r0, 31
- ands r0, r6
- ldrb r2, [r5, 0x2]
- mov r1, r12
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x2]
- ldrb r2, [r3, 0x18]
- lsls r2, 28
- lsrs r2, 27
- movs r0, 0x1F
- negs r0, r0
- ands r1, r0
- orrs r1, r2
- strb r1, [r5, 0x2]
- ldrb r1, [r3, 0xB]
- lsls r1, 28
- movs r4, 0xF
- lsrs r1, 28
- ldrb r2, [r5, 0x3]
- adds r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrb r1, [r3, 0xB]
- lsrs r1, 4
- lsls r1, 4
- ands r0, r4
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrb r0, [r3, 0x5]
- strb r0, [r5, 0x4]
- ldrb r0, [r3, 0x6]
- strb r0, [r5, 0x5]
- ldrb r0, [r3, 0x7]
- strb r0, [r5, 0x6]
- ldrb r0, [r3, 0x8]
- strb r0, [r5, 0x7]
- ldrb r0, [r3, 0x9]
- strb r0, [r5, 0x8]
- ldrb r0, [r3, 0xA]
- strb r0, [r5, 0x9]
- ldrh r0, [r3, 0x10]
- strh r0, [r5, 0xA]
- ldrh r0, [r3, 0x12]
- strh r0, [r5, 0xC]
- ldrb r0, [r3, 0x1D]
- strb r0, [r5, 0xE]
- ldrb r0, [r3, 0x1F]
- strb r0, [r5, 0xF]
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- strb r0, [r5, 0x10]
- adds r3, 0x22
- ldrb r0, [r3]
- strb r0, [r5, 0x11]
- adds r5, 0x14
- adds r7, 0x24
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0xF
- bhi _0815A1E4
- b _0815A02E
-_0815A1E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815A1F4: .4byte gMapObjects
- thumb_func_end sub_815A008
-
- thumb_func_start sub_815A1F8
-sub_815A1F8: @ 815A1F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r1, [sp, 0x4]
- adds r0, 0x8
- str r0, [sp, 0x8]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r4, _0815A480 @ =gMapObjects
- ldr r2, _0815A484 @ =0x01000120
- mov r0, sp
- adds r1, r4, 0
- bl CpuSet
- movs r0, 0
- mov r12, r0
- movs r1, 0x1
- mov r10, r1
-_0815A224:
- mov r2, r12
- lsls r7, r2, 3
- adds r5, r7, r2
- lsls r5, 2
- ldr r0, _0815A480 @ =gMapObjects
- adds r5, r0
- lsls r6, r2, 2
- add r6, r12
- lsls r6, 2
- ldr r1, [sp, 0x8]
- adds r6, r1
- ldrb r0, [r6]
- lsls r0, 31
- lsrs r0, 31
- mov r2, r10
- ands r0, r2
- ldrb r2, [r5]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r6]
- lsls r0, 30
- lsrs r0, 31
- mov r2, r10
- ands r0, r2
- lsls r0, 3
- movs r2, 0x9
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5]
- ldrb r0, [r6]
- lsls r0, 29
- lsrs r0, 31
- mov r1, r10
- ands r0, r1
- lsls r0, 4
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r6]
- lsls r0, 28
- lsrs r0, 31
- mov r2, r10
- ands r0, r2
- lsls r0, 5
- movs r4, 0x21
- negs r4, r4
- ands r1, r4
- orrs r1, r0
- strb r1, [r5]
- ldrb r0, [r6]
- lsls r0, 27
- lsrs r0, 31
- ands r0, r2
- ldrb r1, [r5, 0x1]
- movs r2, 0x2
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x1]
- ldrb r0, [r6]
- lsls r0, 26
- lsrs r0, 31
- mov r1, r10
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- mov r8, r1
- mov r3, r8
- ands r3, r2
- orrs r3, r0
- strb r3, [r5, 0x1]
- ldrb r0, [r6]
- lsls r0, 25
- lsrs r0, 31
- mov r2, r10
- ands r0, r2
- lsls r0, 2
- subs r1, 0x2
- mov r9, r1
- ands r1, r3
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrb r0, [r6]
- lsrs r0, 7
- ands r0, r2
- lsls r0, 3
- movs r2, 0x9
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- lsls r0, 31
- lsrs r0, 31
- mov r1, r10
- ands r0, r1
- lsls r0, 4
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- lsls r0, 30
- lsrs r0, 31
- mov r2, r10
- ands r0, r2
- lsls r0, 5
- ands r4, r1
- orrs r4, r0
- strb r4, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- lsls r0, 29
- lsrs r0, 31
- ands r0, r2
- lsls r0, 6
- movs r2, 0x41
- negs r2, r2
- adds r1, r2, 0
- ands r4, r1
- orrs r4, r0
- strb r4, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- lsls r0, 28
- lsrs r0, 31
- lsls r0, 7
- movs r3, 0x7F
- ands r4, r3
- orrs r4, r0
- strb r4, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- lsls r0, 27
- lsrs r0, 31
- mov r1, r10
- ands r0, r1
- ldrb r2, [r5, 0x2]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x2]
- ldrb r0, [r6, 0x1]
- lsls r0, 26
- lsrs r0, 31
- lsls r0, 7
- ands r1, r3
- orrs r1, r0
- strb r1, [r5, 0x2]
- ldrb r0, [r6, 0x1]
- lsls r0, 25
- lsrs r0, 31
- mov r2, r10
- ands r0, r2
- ldrb r2, [r5, 0x3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x3]
- ldrb r0, [r6, 0x1]
- lsrs r0, 7
- mov r2, r10
- ands r0, r2
- lsls r0, 1
- mov r2, r8
- ands r2, r1
- orrs r2, r0
- mov r8, r2
- strb r2, [r5, 0x3]
- ldrb r0, [r6, 0x2]
- lsls r0, 31
- lsrs r0, 31
- mov r1, r10
- ands r0, r1
- lsls r0, 2
- mov r1, r9
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x3]
- ldrb r1, [r6, 0x2]
- lsls r1, 27
- lsrs r1, 28
- ldrb r2, [r5, 0x18]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x18]
- ldrb r1, [r6, 0x3]
- lsls r1, 28
- movs r3, 0xF
- lsrs r1, 28
- ldrb r2, [r5, 0xB]
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xB]
- ldrb r1, [r6, 0x3]
- lsrs r1, 4
- lsls r1, 4
- ands r0, r3
- orrs r0, r1
- strb r0, [r5, 0xB]
- ldrb r0, [r6, 0x4]
- strb r0, [r5, 0x5]
- ldrb r0, [r6, 0x5]
- strb r0, [r5, 0x6]
- ldrb r0, [r6, 0x6]
- strb r0, [r5, 0x7]
- ldrb r0, [r6, 0x7]
- strb r0, [r5, 0x8]
- ldrb r0, [r6, 0x8]
- strb r0, [r5, 0x9]
- ldrb r0, [r6, 0x9]
- strb r0, [r5, 0xA]
- ldrh r0, [r6, 0xA]
- strh r0, [r5, 0x10]
- ldrh r0, [r6, 0xC]
- strh r0, [r5, 0x12]
- ldrb r0, [r6, 0xE]
- strb r0, [r5, 0x1D]
- ldrb r0, [r6, 0xF]
- strb r0, [r5, 0x1F]
- ldrb r0, [r6, 0x10]
- adds r1, r5, 0
- adds r1, 0x21
- strb r0, [r1]
- ldrb r0, [r6, 0x11]
- adds r1, 0x1
- strb r0, [r1]
- movs r6, 0
- mov r8, r7
- mov r2, r12
- adds r2, 0x1
- str r2, [sp, 0xC]
- ldrb r7, [r5, 0x8]
- ldr r3, [sp, 0x4]
- movs r0, 0xF
- mov r9, r0
-_0815A412:
- ldrb r1, [r3]
- cmp r7, r1
- bne _0815A444
- ldrh r0, [r3, 0x4]
- adds r0, 0x7
- strh r0, [r5, 0xC]
- ldrh r0, [r3, 0x6]
- adds r0, 0x7
- strh r0, [r5, 0xE]
- ldrb r1, [r3, 0xA]
- lsls r1, 28
- lsrs r1, 28
- mov r2, r9
- ands r1, r2
- ldrb r0, [r5, 0x19]
- ands r0, r4
- orrs r0, r1
- strb r0, [r5, 0x19]
- ldrb r1, [r3, 0xA]
- lsrs r1, 4
- lsls r1, 4
- movs r2, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x19]
-_0815A444:
- adds r3, 0x18
- adds r6, 0x1
- cmp r6, 0x3F
- bls _0815A412
- mov r0, r8
- add r0, r12
- lsls r0, 2
- ldr r1, _0815A480 @ =gMapObjects
- adds r6, r0, r1
- movs r2, 0x10
- ldrsh r0, [r6, r2]
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- bl MapGridGetMetatileBehaviorAt
- strb r0, [r6, 0x1E]
- ldrb r4, [r6, 0x1F]
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- bl MapGridGetMetatileBehaviorAt
- cmp r4, r0
- bne _0815A488
- ldrh r0, [r6, 0x10]
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0x12]
- b _0815A506
- .align 2, 0
-_0815A480: .4byte gMapObjects
-_0815A484: .4byte 0x01000120
-_0815A488:
- ldrb r4, [r6, 0x1F]
- ldrh r0, [r6, 0x10]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- bl MapGridGetMetatileBehaviorAt
- cmp r4, r0
- bne _0815A4A8
- ldrh r0, [r6, 0x10]
- subs r0, 0x1
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0x12]
- b _0815A506
-_0815A4A8:
- ldrb r4, [r6, 0x1F]
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- bl MapGridGetMetatileBehaviorAt
- cmp r4, r0
- bne _0815A4C8
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0x12]
- b _0815A506
-_0815A4C8:
- ldrb r4, [r6, 0x1F]
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- ldrh r1, [r6, 0x12]
- subs r1, 0x1
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- cmp r4, r0
- bne _0815A4E8
- ldrh r0, [r6, 0x10]
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0x12]
- subs r0, 0x1
- b _0815A506
-_0815A4E8:
- ldrb r4, [r6, 0x1F]
- movs r2, 0x10
- ldrsh r0, [r6, r2]
- ldrh r1, [r6, 0x12]
- adds r1, 0x1
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- cmp r4, r0
- bne _0815A508
- ldrh r0, [r6, 0x10]
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
-_0815A506:
- strh r0, [r6, 0x16]
-_0815A508:
- ldr r0, [sp, 0xC]
- mov r12, r0
- cmp r0, 0xF
- bhi _0815A512
- b _0815A224
-_0815A512:
- ldr r0, _0815A538 @ =gMapObjects
- ldr r1, _0815A53C @ =gSaveBlock1Ptr
- ldr r1, [r1]
- movs r2, 0xD4
- lsls r2, 3
- adds r1, r2
- movs r2, 0x90
- lsls r2, 1
- bl CpuSet
- 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
-_0815A538: .4byte gMapObjects
-_0815A53C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_815A1F8
-
- thumb_func_start sub_815A540
-sub_815A540: @ 815A540
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0815A5AC @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0815A5A4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0815A5A4
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0815A5A4
- ldr r0, _0815A5B0 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _0815A5B4 @ =gMapObjects
- adds r4, r0
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0815A5B8 @ =gSprites
- adds r0, r1
- bl DestroySprite
-_0815A5A4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815A5AC: .4byte gUnknown_203ADFA
-_0815A5B0: .4byte gPlayerAvatar
-_0815A5B4: .4byte gMapObjects
-_0815A5B8: .4byte gSprites
- thumb_func_end sub_815A540
-
- thumb_func_start sub_815A5BC
-sub_815A5BC: @ 815A5BC
- push {lr}
- sub sp, 0x8
- ldr r3, _0815A5E4 @ =0xffffff00
- ldr r1, [sp]
- ands r1, r3
- movs r2, 0x1
- orrs r1, r2
- str r1, [sp]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x4]
- ands r1, r3
- orrs r1, r0
- str r1, [sp, 0x4]
- mov r0, sp
- bl sub_80F9E2C
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0815A5E4: .4byte 0xffffff00
- thumb_func_end sub_815A5BC
-
- thumb_func_start sub_815A5E8
-sub_815A5E8: @ 815A5E8
- push {lr}
- adds r2, r0, 0
- ldr r3, _0815A610 @ =gUnknown_3003ED0
- ldrh r0, [r3]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- movs r0, 0xBC
- lsls r0, 6
- cmp r1, r0
- bne _0815A60A
- lsls r0, r2, 4
- adds r1, r3, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _0815A614
-_0815A60A:
- movs r0, 0
- b _0815A616
- .align 2, 0
-_0815A610: .4byte gUnknown_3003ED0
-_0815A614:
- ldrb r0, [r1, 0x4]
-_0815A616:
- pop {r1}
- bx r1
- thumb_func_end sub_815A5E8
-
- thumb_func_start sub_815A61C
-sub_815A61C: @ 815A61C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x48]
- lsls r4, 24
- str r4, [sp, 0x1C]
- movs r4, 0x14
- adds r4, r0
- mov r9, r4
- mov r5, sp
- movs r4, 0x2
- strb r4, [r5]
- mov r10, sp
- mov r5, r9
- ldrb r4, [r5, 0xB]
- movs r7, 0xF
- adds r5, r7, 0
- ands r5, r4
- mov r6, r10
- ldrb r6, [r6, 0x1]
- mov r8, r6
- movs r4, 0x10
- negs r4, r4
- mov r6, r8
- ands r4, r6
- orrs r4, r5
- mov r5, r10
- strb r4, [r5, 0x1]
- mov r8, sp
- mov r6, r9
- ldrb r5, [r6, 0xC]
- lsls r5, 4
- ands r4, r7
- orrs r4, r5
- mov r5, r8
- strb r4, [r5, 0x1]
- ldrb r5, [r6, 0xD]
- movs r6, 0xF
- ands r5, r6
- mov r4, r10
- ldrb r4, [r4, 0x2]
- mov r8, r4
- movs r4, 0x10
- negs r4, r4
- mov r6, r8
- ands r4, r6
- orrs r4, r5
- mov r5, r10
- strb r4, [r5, 0x2]
- mov r8, sp
- mov r6, r9
- ldrb r5, [r6, 0xE]
- lsls r5, 4
- ands r4, r7
- orrs r4, r5
- mov r5, r8
- strb r4, [r5, 0x2]
- ldrb r5, [r6, 0xF]
- movs r6, 0xF
- ands r5, r6
- mov r4, r10
- ldrb r4, [r4, 0x3]
- mov r8, r4
- movs r4, 0x10
- negs r4, r4
- mov r6, r8
- ands r4, r6
- orrs r4, r5
- mov r5, r10
- strb r4, [r5, 0x3]
- mov r8, sp
- mov r6, r9
- ldrb r5, [r6, 0x10]
- lsls r5, 4
- ands r4, r7
- orrs r4, r5
- mov r5, r8
- strb r4, [r5, 0x3]
- ldrb r5, [r6, 0x11]
- movs r6, 0xF
- ands r5, r6
- mov r4, r10
- ldrb r4, [r4, 0x4]
- mov r8, r4
- movs r4, 0x10
- negs r4, r4
- mov r6, r8
- ands r4, r6
- orrs r4, r5
- mov r5, r10
- strb r4, [r5, 0x4]
- mov r8, sp
- mov r6, r9
- ldrb r5, [r6, 0x12]
- lsls r5, 4
- ands r4, r7
- orrs r4, r5
- mov r5, r8
- strb r4, [r5, 0x4]
- ldrb r4, [r6, 0x13]
- movs r6, 0xF
- ands r4, r6
- mov r6, r8
- ldrb r5, [r6, 0x5]
- movs r6, 0x10
- negs r6, r6
- ands r6, r5
- orrs r6, r4
- str r6, [sp, 0xC]
- mov r4, r8
- strb r6, [r4, 0x5]
- mov r5, sp
- mov r6, r9
- ldrb r4, [r6, 0x14]
- lsls r4, 4
- ldr r6, [sp, 0xC]
- ands r6, r7
- orrs r6, r4
- strb r6, [r5, 0x5]
- mov r7, sp
- movs r4, 0x3
- mov r8, r4
- ldrb r0, [r0, 0x14]
- mov r5, r8
- ands r0, r5
- ldrb r5, [r7, 0x6]
- movs r6, 0x4
- negs r6, r6
- mov r10, r6
- mov r4, r10
- ands r4, r5
- orrs r4, r0
- strb r4, [r7, 0x6]
- mov r5, r9
- ldrb r0, [r5, 0x1]
- mov r6, r8
- ands r0, r6
- lsls r0, 2
- movs r5, 0xD
- negs r5, r5
- ands r5, r4
- orrs r5, r0
- strb r5, [r7, 0x6]
- mov r0, r9
- ldrb r4, [r0, 0x2]
- ands r4, r6
- lsls r4, 4
- movs r0, 0x31
- negs r0, r0
- ands r0, r5
- orrs r0, r4
- strb r0, [r7, 0x6]
- mov r5, sp
- mov r6, r9
- ldrb r4, [r6, 0x3]
- lsls r4, 6
- movs r6, 0x3F
- ands r0, r6
- orrs r0, r4
- strb r0, [r5, 0x6]
- mov r4, r9
- ldrb r0, [r4, 0x4]
- mov r5, r8
- ands r0, r5
- ldrb r5, [r7, 0x7]
- mov r4, r10
- ands r4, r5
- orrs r4, r0
- strb r4, [r7, 0x7]
- mov r6, r9
- ldrb r0, [r6, 0x5]
- mov r5, r8
- ands r0, r5
- lsls r0, 2
- movs r5, 0xD
- negs r5, r5
- ands r5, r4
- orrs r5, r0
- strb r5, [r7, 0x7]
- ldrb r4, [r6, 0x6]
- mov r6, r8
- ands r4, r6
- lsls r4, 4
- movs r0, 0x31
- negs r0, r0
- ands r0, r5
- orrs r0, r4
- strb r0, [r7, 0x7]
- mov r5, sp
- mov r6, r9
- ldrb r4, [r6, 0x7]
- lsls r4, 6
- movs r6, 0x3F
- ands r0, r6
- orrs r0, r4
- strb r0, [r5, 0x7]
- mov r8, sp
- mov r0, r9
- ldrb r4, [r0, 0x8]
- movs r7, 0x3
- adds r0, r7, 0
- ands r0, r4
- mov r4, r8
- ldrb r5, [r4, 0x8]
- mov r4, r10
- ands r4, r5
- orrs r4, r0
- mov r5, r8
- strb r4, [r5, 0x8]
- mov r6, r9
- ldrb r5, [r6, 0x9]
- adds r0, r7, 0
- ands r0, r5
- lsls r0, 2
- movs r5, 0xD
- negs r5, r5
- ands r5, r4
- orrs r5, r0
- mov r0, r8
- strb r5, [r0, 0x8]
- ldrb r0, [r1]
- adds r4, r7, 0
- ands r4, r0
- lsls r4, 4
- movs r0, 0x31
- negs r0, r0
- ands r0, r5
- orrs r0, r4
- mov r4, r8
- strb r0, [r4, 0x8]
- mov r5, sp
- ldrb r4, [r2]
- lsls r4, 6
- movs r6, 0x3F
- ands r0, r6
- orrs r0, r4
- strb r0, [r5, 0x8]
- ldrb r4, [r3]
- adds r0, r7, 0
- ands r0, r4
- ldrb r4, [r5, 0x9]
- mov r6, r10
- ands r6, r4
- orrs r6, r0
- mov r10, r6
- strb r6, [r5, 0x9]
- ldr r0, [sp, 0x40]
- ldrb r4, [r0]
- adds r0, r7, 0
- ands r0, r4
- lsls r0, 2
- movs r4, 0xD
- negs r4, r4
- ands r6, r4
- orrs r6, r0
- str r6, [sp, 0x10]
- strb r6, [r5, 0x9]
- mov r4, sp
- ldr r5, [sp, 0x44]
- ldrb r0, [r5]
- adds r6, r7, 0
- ands r6, r0
- lsls r0, r6, 4
- subs r7, 0x34
- ldr r5, [sp, 0x10]
- ands r7, r5
- orrs r7, r0
- strb r7, [r4, 0x9]
- mov r5, sp
- ldrb r0, [r1, 0x4]
- movs r6, 0x1
- mov r12, r6
- mov r4, r12
- ands r4, r0
- lsls r4, 6
- movs r0, 0x41
- negs r0, r0
- mov r10, r0
- ands r0, r7
- orrs r0, r4
- strb r0, [r5, 0x9]
- ldrb r4, [r2, 0x4]
- lsls r4, 7
- movs r5, 0x7F
- ands r0, r5
- orrs r0, r4
- mov r4, r8
- strb r0, [r4, 0x9]
- ldrb r4, [r3, 0x4]
- mov r0, r12
- ands r0, r4
- mov r5, r8
- ldrb r4, [r5, 0xA]
- movs r7, 0x2
- negs r7, r7
- adds r5, r7, 0
- ands r5, r4
- orrs r5, r0
- mov r6, r8
- strb r5, [r6, 0xA]
- mov r9, sp
- ldr r4, [sp, 0x40]
- ldrb r0, [r4, 0x4]
- mov r4, r12
- ands r4, r0
- lsls r4, 1
- movs r6, 0x3
- negs r6, r6
- mov r8, r6
- mov r0, r8
- ands r0, r5
- orrs r0, r4
- mov r4, r9
- strb r0, [r4, 0xA]
- ldr r6, [sp, 0x44]
- ldrb r5, [r6, 0x4]
- mov r4, r12
- ands r4, r5
- lsls r4, 2
- movs r5, 0x5
- negs r5, r5
- ands r0, r5
- orrs r0, r4
- mov r4, r9
- strb r0, [r4, 0xA]
- mov r4, sp
- ldrb r1, [r1, 0x8]
- mov r0, r12
- ands r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0xB]
- ands r5, r1
- orrs r5, r0
- strb r5, [r4, 0xB]
- ldrb r1, [r2, 0x8]
- mov r0, r12
- ands r0, r1
- lsls r0, 3
- movs r1, 0x9
- negs r1, r1
- ands r1, r5
- orrs r1, r0
- strb r1, [r4, 0xB]
- ldrb r2, [r3, 0x8]
- mov r0, r12
- ands r0, r2
- lsls r0, 4
- movs r2, 0x11
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4, 0xB]
- mov r3, sp
- ldr r5, [sp, 0x40]
- ldrb r0, [r5, 0x8]
- mov r1, r12
- ands r1, r0
- lsls r1, 5
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xB]
- mov r2, sp
- ldrb r1, [r6, 0x8]
- mov r6, r12
- ands r6, r1
- lsls r1, r6, 6
- mov r3, r10
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0xB]
- ldr r4, [sp, 0x1C]
- lsrs r3, r4, 21
- ldrb r1, [r2, 0xA]
- movs r0, 0x7
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0xA]
- mov r1, sp
- ldr r5, [sp, 0x4C]
- movs r6, 0x1
- ands r5, r6
- lsls r2, r5, 1
- ldrb r0, [r1, 0xB]
- mov r3, r8
- ands r3, r0
- orrs r3, r2
- mov r8, r3
- strb r3, [r1, 0xB]
- mov r0, sp
- ldr r4, [sp, 0x50]
- ands r4, r6
- mov r5, r8
- ands r5, r7
- orrs r5, r4
- strb r5, [r0, 0xB]
- bl sub_80F9E2C
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815A61C
-
- thumb_func_start sub_815A950
-sub_815A950: @ 815A950
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r0, [sp, 0x1C]
- mov r12, r0
- ldr r1, [sp, 0x20]
- mov r8, r1
- ldr r0, [sp, 0x24]
- mov r9, r0
- adds r2, r7, 0
- adds r2, 0x14
- ldr r4, _0815A98C @ =gUnknown_3003ED0
- ldrh r0, [r4]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- movs r0, 0xBC
- lsls r0, 6
- cmp r1, r0
- bne _0815A988
- adds r3, r4, 0x2
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _0815A990
-_0815A988:
- movs r0, 0
- b _0815AACA
- .align 2, 0
-_0815A98C: .4byte gUnknown_3003ED0
-_0815A990:
- ldrb r0, [r3, 0x1]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r2, 0xB]
- ldrb r0, [r3, 0x1]
- lsrs r0, 4
- strb r0, [r2, 0xC]
- ldrb r0, [r3, 0x2]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r2, 0xD]
- ldrb r0, [r3, 0x2]
- lsrs r0, 4
- strb r0, [r2, 0xE]
- ldrb r0, [r3, 0x3]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r2, 0xF]
- ldrb r0, [r3, 0x3]
- lsrs r0, 4
- strb r0, [r2, 0x10]
- ldrb r0, [r3, 0x4]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r2, 0x11]
- ldrb r0, [r3, 0x4]
- lsrs r0, 4
- strb r0, [r2, 0x12]
- ldrb r0, [r3, 0x5]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r2, 0x13]
- ldrb r0, [r3, 0x5]
- lsrs r0, 4
- strb r0, [r2, 0x14]
- ldrb r0, [r3, 0x1]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r2, 0x15]
- ldrb r0, [r3, 0x6]
- lsls r0, 30
- lsrs r0, 30
- strb r0, [r7, 0x14]
- ldrb r0, [r3, 0x6]
- lsls r0, 28
- lsrs r0, 30
- strb r0, [r2, 0x1]
- ldrb r0, [r3, 0x6]
- lsls r0, 26
- lsrs r0, 30
- strb r0, [r2, 0x2]
- ldrb r0, [r3, 0x6]
- lsrs r0, 6
- strb r0, [r2, 0x3]
- ldrb r0, [r3, 0x7]
- lsls r0, 30
- lsrs r0, 30
- strb r0, [r2, 0x4]
- ldrb r0, [r3, 0x7]
- lsls r0, 28
- lsrs r0, 30
- strb r0, [r2, 0x5]
- ldrb r0, [r3, 0x7]
- lsls r0, 26
- lsrs r0, 30
- strb r0, [r2, 0x6]
- ldrb r0, [r3, 0x7]
- lsrs r0, 6
- strb r0, [r2, 0x7]
- ldrb r0, [r3, 0x8]
- lsls r0, 30
- lsrs r0, 30
- strb r0, [r2, 0x8]
- ldrb r0, [r3, 0x8]
- lsls r0, 28
- lsrs r0, 30
- strb r0, [r2, 0x9]
- ldrb r0, [r3, 0x6]
- lsls r0, 30
- lsrs r0, 30
- strb r0, [r2, 0xA]
- ldrb r0, [r3, 0x8]
- lsls r0, 26
- lsrs r0, 30
- strb r0, [r5]
- ldrb r0, [r3, 0x9]
- lsls r0, 25
- lsrs r0, 31
- strb r0, [r5, 0x4]
- ldrb r0, [r3, 0xB]
- lsls r0, 29
- lsrs r0, 31
- strb r0, [r5, 0x8]
- ldrb r0, [r3, 0x8]
- lsrs r0, 6
- strb r0, [r6]
- ldrb r0, [r3, 0x9]
- lsrs r0, 7
- strb r0, [r6, 0x4]
- ldrb r0, [r3, 0xB]
- lsls r0, 28
- lsrs r0, 31
- strb r0, [r6, 0x8]
- ldrb r0, [r3, 0x9]
- lsls r0, 30
- lsrs r0, 30
- mov r1, r12
- strb r0, [r1]
- ldrb r0, [r3, 0xA]
- lsls r0, 31
- lsrs r0, 31
- strb r0, [r1, 0x4]
- ldrb r0, [r3, 0xB]
- lsls r0, 27
- lsrs r0, 31
- strb r0, [r1, 0x8]
- ldrb r0, [r3, 0x9]
- lsls r0, 28
- lsrs r0, 30
- mov r1, r8
- strb r0, [r1]
- ldrb r0, [r3, 0xA]
- lsls r0, 30
- lsrs r0, 31
- strb r0, [r1, 0x4]
- ldrb r0, [r3, 0xB]
- lsls r0, 26
- lsrs r0, 31
- strb r0, [r1, 0x8]
- ldrb r0, [r3, 0x9]
- lsls r0, 26
- lsrs r0, 30
- mov r1, r9
- strb r0, [r1]
- ldrb r0, [r3, 0xA]
- lsls r0, 29
- lsrs r0, 31
- strb r0, [r1, 0x4]
- ldrb r0, [r3, 0xB]
- lsls r0, 25
- lsrs r0, 31
- strb r0, [r1, 0x8]
- ldrb r0, [r3, 0xA]
- lsrs r0, 3
- ldr r1, [sp, 0x28]
- strb r0, [r1]
- ldrb r0, [r3, 0xB]
- lsls r0, 30
- lsrs r0, 31
- ldr r1, [sp, 0x2C]
- str r0, [r1]
- ldrb r0, [r3, 0xB]
- lsls r0, 31
- lsrs r0, 31
- ldr r1, [sp, 0x30]
- str r0, [r1]
- movs r0, 0x1
-_0815AACA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_815A950
-
- thumb_func_start sub_815AAD8
-sub_815AAD8: @ 815AAD8
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0815AB00 @ =0xffffff00
- ldr r1, [sp]
- ands r1, r3
- movs r2, 0x3
- orrs r1, r2
- str r1, [sp]
- ldr r1, [sp, 0x4]
- ands r1, r3
- orrs r1, r0
- str r1, [sp, 0x4]
- mov r0, sp
- bl sub_80F9E2C
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0815AB00: .4byte 0xffffff00
- thumb_func_end sub_815AAD8
-
- thumb_func_start sub_815AB04
-sub_815AB04: @ 815AB04
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- ldr r3, _0815AB2C @ =gUnknown_3003ED0
- ldrh r0, [r3]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- movs r0, 0xBC
- lsls r0, 6
- cmp r1, r0
- bne _0815AB28
- lsls r0, r2, 4
- adds r1, r3, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0x3
- beq _0815AB30
-_0815AB28:
- movs r0, 0
- b _0815AB36
- .align 2, 0
-_0815AB2C: .4byte gUnknown_3003ED0
-_0815AB30:
- ldrb r0, [r1, 0x4]
- strb r0, [r4]
- movs r0, 0x1
-_0815AB36:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_815AB04
-
- thumb_func_start sub_815AB3C
-sub_815AB3C: @ 815AB3C
- push {lr}
- sub sp, 0x8
- ldr r2, _0815AB5C @ =0xffffff00
- ldr r1, [sp]
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- str r1, [sp]
- str r0, [sp, 0x4]
- mov r0, sp
- bl sub_80F9E2C
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0815AB5C: .4byte 0xffffff00
- thumb_func_end sub_815AB3C
-
- thumb_func_start sub_815AB60
-sub_815AB60: @ 815AB60
- push {lr}
- adds r2, r0, 0
- ldr r3, _0815AB88 @ =gUnknown_3003ED0
- ldrh r0, [r3]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- movs r0, 0xBC
- lsls r0, 6
- cmp r1, r0
- bne _0815AB82
- lsls r0, r2, 4
- adds r1, r3, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0815AB8C
-_0815AB82:
- movs r0, 0
- b _0815AB8E
- .align 2, 0
-_0815AB88: .4byte gUnknown_3003ED0
-_0815AB8C:
- ldr r0, [r1, 0x4]
-_0815AB8E:
- pop {r1}
- bx r1
- thumb_func_end sub_815AB60
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unk_815C27C.s b/asm/unk_815C27C.s
deleted file mode 100644
index 067ab8659..000000000
--- a/asm/unk_815C27C.s
+++ /dev/null
@@ -1,920 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815C27C
-sub_815C27C: @ 815C27C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- bl sub_815C8C8
- movs r7, 0x2
- ldr r4, _0815C2BC @ =gUnknown_3003F84
-_0815C28C:
- bl sub_815C898
- ldr r0, _0815C2C0 @ =gUnknown_3002062
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0815C29E
- strb r7, [r4]
-_0815C29E:
- movs r0, 0x1
- adds r1, r6, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_815C498
- adds r1, r0, 0
- ldr r0, _0815C2C4 @ =gUnknown_3002064
- strh r1, [r0]
- movs r0, 0x13
- ands r0, r1
- cmp r0, 0x10
- bne _0815C2C8
- movs r4, 0
- b _0815C2EA
- .align 2, 0
-_0815C2BC: .4byte gUnknown_3003F84
-_0815C2C0: .4byte gUnknown_3002062
-_0815C2C4: .4byte gUnknown_3002064
-_0815C2C8:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0815C2D4
- movs r4, 0x1
- b _0815C2EA
-_0815C2D4:
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0815C2E8
- strb r0, [r4]
- bl VBlankIntrWait
- b _0815C28C
-_0815C2E8:
- movs r4, 0x2
-_0815C2EA:
- movs r0, 0
- str r0, [sp]
- ldr r1, _0815C308 @ =gUnknown_3002048
- ldr r2, _0815C30C @ =0x05000006
- mov r0, sp
- bl CpuSet
- bl sub_815C91C
- adds r0, r4, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0815C308: .4byte gUnknown_3002048
-_0815C30C: .4byte 0x05000006
- thumb_func_end sub_815C27C
-
- thumb_func_start sub_815C310
-sub_815C310: @ 815C310
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_815C8C8
- movs r6, 0x2
- ldr r4, _0815C350 @ =gUnknown_3003F84
-_0815C31E:
- bl sub_815C898
- ldr r0, _0815C354 @ =gUnknown_3002062
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0815C330
- strb r6, [r4]
-_0815C330:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl sub_815C498
- adds r1, r0, 0
- ldr r0, _0815C358 @ =gUnknown_3002064
- strh r1, [r0]
- movs r0, 0x13
- ands r0, r1
- cmp r0, 0x10
- bne _0815C35C
- movs r4, 0
- b _0815C37E
- .align 2, 0
-_0815C350: .4byte gUnknown_3003F84
-_0815C354: .4byte gUnknown_3002062
-_0815C358: .4byte gUnknown_3002064
-_0815C35C:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0815C368
- movs r4, 0x1
- b _0815C37E
-_0815C368:
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0815C37C
- strb r0, [r4]
- bl VBlankIntrWait
- b _0815C31E
-_0815C37C:
- movs r4, 0x2
-_0815C37E:
- movs r0, 0
- str r0, [sp]
- ldr r1, _0815C39C @ =gUnknown_3002048
- ldr r2, _0815C3A0 @ =0x05000006
- mov r0, sp
- bl CpuSet
- bl sub_815C91C
- adds r0, r4, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0815C39C: .4byte gUnknown_3002048
-_0815C3A0: .4byte 0x05000006
- thumb_func_end sub_815C310
-
- thumb_func_start sub_815C3A4
-sub_815C3A4: @ 815C3A4
- push {r4,lr}
- ldr r4, _0815C3D0 @ =0x04000208
- movs r3, 0
- strh r3, [r4]
- ldr r2, _0815C3D4 @ =0x04000200
- ldrh r1, [r2]
- ldr r0, _0815C3D8 @ =0x0000ff3f
- ands r0, r1
- strh r0, [r2]
- movs r0, 0x1
- strh r0, [r4]
- ldr r0, _0815C3DC @ =0x04000128
- strh r3, [r0]
- subs r0, 0x1A
- strh r3, [r0]
- ldr r1, _0815C3E0 @ =0x04000202
- movs r0, 0xC0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815C3D0: .4byte 0x04000208
-_0815C3D4: .4byte 0x04000200
-_0815C3D8: .4byte 0x0000ff3f
-_0815C3DC: .4byte 0x04000128
-_0815C3E0: .4byte 0x04000202
- thumb_func_end sub_815C3A4
-
- thumb_func_start sub_815C3E4
-sub_815C3E4: @ 815C3E4
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r5, _0815C43C @ =0x04000208
- movs r4, 0
- strh r4, [r5]
- ldr r3, _0815C440 @ =0x04000200
- ldrh r1, [r3]
- ldr r0, _0815C444 @ =0x0000ff3f
- ands r0, r1
- strh r0, [r3]
- movs r6, 0x1
- strh r6, [r5]
- ldr r0, _0815C448 @ =0x04000134
- strh r4, [r0]
- ldr r2, _0815C44C @ =0x04000128
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1, 0
- strh r0, [r2]
- ldrh r0, [r2]
- ldr r7, _0815C450 @ =0x00004003
- adds r1, r7, 0
- orrs r0, r1
- strh r0, [r2]
- strh r4, [r5]
- ldrh r0, [r3]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r3]
- strh r6, [r5]
- ldr r1, _0815C454 @ =gUnknown_3002048
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0815C432
- str r0, [sp]
- ldr r2, _0815C458 @ =0x05000006
- mov r0, sp
- bl CpuSet
-_0815C432:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815C43C: .4byte 0x04000208
-_0815C440: .4byte 0x04000200
-_0815C444: .4byte 0x0000ff3f
-_0815C448: .4byte 0x04000134
-_0815C44C: .4byte 0x04000128
-_0815C450: .4byte 0x00004003
-_0815C454: .4byte gUnknown_3002048
-_0815C458: .4byte 0x05000006
- thumb_func_end sub_815C3E4
-
- thumb_func_start sub_815C45C
-sub_815C45C: @ 815C45C
- ldr r0, _0815C484 @ =0x04000134
- movs r3, 0
- strh r3, [r0]
- ldr r2, _0815C488 @ =0x04000128
- movs r1, 0xA0
- lsls r1, 7
- adds r0, r1, 0
- strh r0, [r2]
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0815C48C @ =gUnknown_3003F84
- strb r3, [r0]
- ldr r0, _0815C490 @ =gUnknown_3002066
- strh r3, [r0]
- ldr r1, _0815C494 @ =gUnknown_3002068
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0815C484: .4byte 0x04000134
-_0815C488: .4byte 0x04000128
-_0815C48C: .4byte gUnknown_3003F84
-_0815C490: .4byte gUnknown_3002066
-_0815C494: .4byte gUnknown_3002068
- thumb_func_end sub_815C45C
-
- thumb_func_start sub_815C498
-sub_815C498: @ 815C498
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0815C4B8 @ =gUnknown_3002048
- ldrb r0, [r0, 0x1]
- cmp r0, 0x6
- bls _0815C4AE
- b _0815C5F4
-_0815C4AE:
- lsls r0, 2
- ldr r1, _0815C4BC @ =_0815C4C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0815C4B8: .4byte gUnknown_3002048
-_0815C4BC: .4byte _0815C4C0
- .align 2, 0
-_0815C4C0:
- .4byte _0815C4DC
- .4byte _0815C4F0
- .4byte _0815C510
- .4byte _0815C524
- .4byte _0815C59C
- .4byte _0815C5AC
- .4byte _0815C5E4
-_0815C4DC:
- bl sub_815C3E4
- ldr r1, _0815C4EC @ =gUnknown_3002048
- movs r0, 0x1
- strb r0, [r1, 0x2]
- strb r0, [r1, 0x1]
- b _0815C5F4
- .align 2, 0
-_0815C4EC: .4byte gUnknown_3002048
-_0815C4F0:
- adds r0, r2, 0
- bl sub_815C610
- lsls r0, 16
- cmp r0, 0
- beq _0815C500
- bl sub_815C864
-_0815C500:
- ldr r0, _0815C50C @ =gUnknown_3003F84
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0815C50A
- b _0815C5F4
-_0815C50A:
- b _0815C52C
- .align 2, 0
-_0815C50C: .4byte gUnknown_3003F84
-_0815C510:
- bl sub_815C45C
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_815C644
- ldr r1, _0815C538 @ =gUnknown_3002048
- movs r0, 0x3
- strb r0, [r1, 0x1]
-_0815C524:
- ldr r0, _0815C53C @ =gUnknown_3003F84
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0815C540
-_0815C52C:
- ldr r1, _0815C538 @ =gUnknown_3002048
- strb r0, [r1, 0x4]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- b _0815C5F4
- .align 2, 0
-_0815C538: .4byte gUnknown_3002048
-_0815C53C: .4byte gUnknown_3003F84
-_0815C540:
- ldr r2, _0815C580 @ =gUnknown_3002066
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ldr r1, _0815C584 @ =gUnknown_3002068
- ldr r0, [r1]
- adds r3, r0, 0x1
- str r3, [r1]
- ldr r1, _0815C588 @ =gUnknown_3002048
- ldrb r0, [r1]
- cmp r0, 0
- bne _0815C564
- cmp r3, 0x3C
- bls _0815C564
- movs r0, 0x1
- strb r0, [r1, 0x4]
- movs r0, 0x6
- strb r0, [r1, 0x1]
-_0815C564:
- ldr r4, _0815C588 @ =gUnknown_3002048
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _0815C5F4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0815C58C
- ldrh r0, [r2]
- cmp r0, 0x2
- bls _0815C58C
- bl sub_815C864
- movs r0, 0x2
- b _0815C5F2
- .align 2, 0
-_0815C580: .4byte gUnknown_3002066
-_0815C584: .4byte gUnknown_3002068
-_0815C588: .4byte gUnknown_3002048
-_0815C58C:
- bl sub_815C864
- ldr r1, _0815C598 @ =gUnknown_3002048
- movs r0, 0x2
- strb r0, [r1, 0x2]
- b _0815C5F4
- .align 2, 0
-_0815C598: .4byte gUnknown_3002048
-_0815C59C:
- bl sub_815C3E4
- ldr r1, _0815C5A8 @ =gUnknown_3002048
- movs r0, 0x5
- strb r0, [r1, 0x1]
- b _0815C5F4
- .align 2, 0
-_0815C5A8: .4byte gUnknown_3002048
-_0815C5AC:
- ldr r0, _0815C5DC @ =gUnknown_3002048
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0815C5C0
- ldr r0, _0815C5E0 @ =gUnknown_3002066
- ldrh r0, [r0]
- cmp r0, 0x2
- bls _0815C5C0
- bl sub_815C864
-_0815C5C0:
- ldr r1, _0815C5E0 @ =gUnknown_3002066
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3C
- bls _0815C5F4
- ldr r0, _0815C5DC @ =gUnknown_3002048
- movs r1, 0x1
- strb r1, [r0, 0x4]
- movs r1, 0x6
- strb r1, [r0, 0x1]
- b _0815C5F4
- .align 2, 0
-_0815C5DC: .4byte gUnknown_3002048
-_0815C5E0: .4byte gUnknown_3002066
-_0815C5E4:
- ldr r4, _0815C60C @ =gUnknown_3002048
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _0815C5F4
- bl sub_815C3A4
- movs r0, 0
-_0815C5F2:
- strb r0, [r4, 0x2]
-_0815C5F4:
- ldr r2, _0815C60C @ =gUnknown_3002048
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x4]
- lsls r1, 2
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 4
- orrs r0, r1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0815C60C: .4byte gUnknown_3002048
- thumb_func_end sub_815C498
-
- thumb_func_start sub_815C610
-sub_815C610: @ 815C610
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0815C62C @ =0x04000128
- ldr r0, [r0]
- movs r1, 0xC
- ands r0, r1
- cmp r0, 0x8
- bne _0815C634
- cmp r2, 0
- beq _0815C634
- ldr r1, _0815C630 @ =gUnknown_3002048
- movs r0, 0x1
- b _0815C638
- .align 2, 0
-_0815C62C: .4byte 0x04000128
-_0815C630: .4byte gUnknown_3002048
-_0815C634:
- ldr r1, _0815C640 @ =gUnknown_3002048
- movs r0, 0
-_0815C638:
- strb r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_0815C640: .4byte gUnknown_3002048
- thumb_func_end sub_815C610
-
- thumb_func_start sub_815C644
-sub_815C644: @ 815C644
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r3, _0815C670 @ =gUnknown_3002048
- ldrb r0, [r3]
- cmp r0, 0
- beq _0815C67C
- ldr r2, _0815C674 @ =0x04000128
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- str r5, [r3, 0x8]
- ldr r0, _0815C678 @ =0x04000120
- str r4, [r0]
- lsrs r0, r4, 2
- adds r0, 0x1
- str r0, [r3, 0x10]
- bl sub_815C690
- b _0815C684
- .align 2, 0
-_0815C670: .4byte gUnknown_3002048
-_0815C674: .4byte 0x04000128
-_0815C678: .4byte 0x04000120
-_0815C67C:
- ldr r1, _0815C68C @ =0x04000128
- ldrh r0, [r1]
- strh r0, [r1]
- str r2, [r3, 0x8]
-_0815C684:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815C68C: .4byte 0x04000128
- thumb_func_end sub_815C644
-
- thumb_func_start sub_815C690
-sub_815C690: @ 815C690
- ldr r1, _0815C6B4 @ =0x0400010c
- ldr r2, _0815C6B8 @ =0x0000fda7
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0815C6BC @ =0x0400010e
- movs r2, 0x40
- strh r2, [r0]
- ldr r3, _0815C6C0 @ =0x04000208
- movs r0, 0
- strh r0, [r3]
- adds r1, 0xF4
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- movs r0, 0x1
- strh r0, [r3]
- bx lr
- .align 2, 0
-_0815C6B4: .4byte 0x0400010c
-_0815C6B8: .4byte 0x0000fda7
-_0815C6BC: .4byte 0x0400010e
-_0815C6C0: .4byte 0x04000208
- thumb_func_end sub_815C690
-
- thumb_func_start sub_815C6C4
-sub_815C6C4: @ 815C6C4
- push {lr}
- bl sub_815C874
- bl sub_815C864
- pop {r0}
- bx r0
- thumb_func_end sub_815C6C4
-
- thumb_func_start sub_815C6D4
-sub_815C6D4: @ 815C6D4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r2, _0815C6EC @ =gUnknown_3002048
- ldrb r0, [r2, 0x1]
- adds r3, r2, 0
- cmp r0, 0x3
- beq _0815C75C
- cmp r0, 0x3
- bgt _0815C6F0
- cmp r0, 0x1
- beq _0815C6F8
- b _0815C852
- .align 2, 0
-_0815C6EC: .4byte gUnknown_3002048
-_0815C6F0:
- cmp r0, 0x5
- bne _0815C6F6
- b _0815C824
-_0815C6F6:
- b _0815C852
-_0815C6F8:
- ldr r1, _0815C728 @ =0x0400012a
- ldr r2, _0815C72C @ =0x0000ccd0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0815C730 @ =0x04000120
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r4, 0
- ldr r6, _0815C72C @ =0x0000ccd0
- ldr r5, _0815C734 @ =0x0000ffff
-_0815C714:
- lsls r0, r1, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r0, r6
- bne _0815C738
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- b _0815C742
- .align 2, 0
-_0815C728: .4byte 0x0400012a
-_0815C72C: .4byte 0x0000ccd0
-_0815C730: .4byte 0x04000120
-_0815C734: .4byte 0x0000ffff
-_0815C738:
- cmp r0, r5
- beq _0815C742
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_0815C742:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _0815C714
- cmp r2, 0x2
- beq _0815C752
- b _0815C852
-_0815C752:
- cmp r4, 0
- beq _0815C758
- b _0815C852
-_0815C758:
- strb r2, [r3, 0x1]
- b _0815C852
-_0815C75C:
- ldr r0, _0815C798 @ =0x04000120
- ldr r4, [r0]
- ldr r0, [r2, 0xC]
- cmp r0, 0
- bne _0815C772
- ldrb r0, [r2]
- cmp r0, 0
- bne _0815C772
- lsrs r0, r4, 2
- adds r0, 0x1
- str r0, [r2, 0x10]
-_0815C772:
- ldrb r0, [r3]
- cmp r0, 0x1
- bne _0815C7A8
- ldr r1, [r3, 0xC]
- ldr r0, [r3, 0x10]
- cmp r1, r0
- bge _0815C79C
- ldr r2, _0815C798 @ =0x04000120
- ldr r0, [r3, 0x8]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, [r3, 0x14]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r3, 0x14]
- b _0815C7E2
- .align 2, 0
-_0815C798: .4byte 0x04000120
-_0815C79C:
- ldr r1, _0815C7A4 @ =0x04000120
- ldr r0, [r3, 0x14]
- b _0815C7E0
- .align 2, 0
-_0815C7A4: .4byte 0x04000120
-_0815C7A8:
- ldr r1, [r3, 0xC]
- cmp r1, 0
- ble _0815C7C8
- ldr r0, [r3, 0x10]
- adds r0, 0x1
- cmp r1, r0
- bge _0815C7C8
- ldr r0, [r3, 0x8]
- lsls r1, 2
- adds r1, r0
- subs r1, 0x4
- str r4, [r1]
- ldr r0, [r3, 0x14]
- adds r0, r4
- str r0, [r3, 0x14]
- b _0815C7DC
-_0815C7C8:
- ldr r0, [r3, 0xC]
- cmp r0, 0
- beq _0815C7DC
- ldr r0, [r3, 0x14]
- cmp r0, r4
- bne _0815C7D8
- movs r0, 0x1
- b _0815C7DA
-_0815C7D8:
- movs r0, 0x2
-_0815C7DA:
- strb r0, [r3, 0x3]
-_0815C7DC:
- ldr r1, _0815C804 @ =gUnknown_3002068
- movs r0, 0
-_0815C7E0:
- str r0, [r1]
-_0815C7E2:
- ldr r1, [r3, 0xC]
- adds r1, 0x1
- str r1, [r3, 0xC]
- ldr r0, [r3, 0x10]
- adds r0, 0x2
- cmp r1, r0
- bge _0815C812
- ldrb r0, [r3]
- cmp r0, 0
- beq _0815C80C
- ldr r0, _0815C808 @ =0x0400010e
- ldrh r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strh r1, [r0]
- b _0815C852
- .align 2, 0
-_0815C804: .4byte gUnknown_3002068
-_0815C808: .4byte 0x0400010e
-_0815C80C:
- bl sub_815C864
- b _0815C852
-_0815C812:
- movs r0, 0
- movs r1, 0x4
- strb r1, [r3, 0x1]
- ldr r1, _0815C820 @ =gUnknown_3002066
- strh r0, [r1]
- b _0815C852
- .align 2, 0
-_0815C820: .4byte gUnknown_3002066
-_0815C824:
- ldrb r3, [r2]
- cmp r3, 0
- bne _0815C830
- ldr r1, _0815C85C @ =0x0400012a
- ldrb r0, [r2, 0x3]
- strh r0, [r1]
-_0815C830:
- ldr r0, _0815C860 @ =0x04000120
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- ldrh r1, [r0, 0x2]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0815C852
- cmp r3, 0x1
- bne _0815C84E
- strb r1, [r2, 0x3]
-_0815C84E:
- movs r0, 0x6
- strb r0, [r2, 0x1]
-_0815C852:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815C85C: .4byte 0x0400012a
-_0815C860: .4byte 0x04000120
- thumb_func_end sub_815C6D4
-
- thumb_func_start sub_815C864
-sub_815C864: @ 815C864
- ldr r0, _0815C870 @ =0x04000128
- ldrh r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0815C870: .4byte 0x04000128
- thumb_func_end sub_815C864
-
- thumb_func_start sub_815C874
-sub_815C874: @ 815C874
- ldr r2, _0815C888 @ =0x0400010e
- ldrh r1, [r2]
- ldr r0, _0815C88C @ =0x0000ff7f
- ands r0, r1
- strh r0, [r2]
- ldr r1, _0815C890 @ =0x0400010c
- ldr r2, _0815C894 @ =0x0000fda7
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0815C888: .4byte 0x0400010e
-_0815C88C: .4byte 0x0000ff7f
-_0815C890: .4byte 0x0400010c
-_0815C894: .4byte 0x0000fda7
- thumb_func_end sub_815C874
-
- thumb_func_start sub_815C898
-sub_815C898: @ 815C898
- push {r4,lr}
- ldr r0, _0815C8B8 @ =0x04000130
- ldrh r0, [r0]
- ldr r2, _0815C8BC @ =0x000003ff
- adds r1, r2, 0
- eors r1, r0
- ldr r4, _0815C8C0 @ =gUnknown_3002062
- ldr r3, _0815C8C4 @ =gUnknown_3002060
- ldrh r2, [r3]
- adds r0, r1, 0
- bics r0, r2
- strh r0, [r4]
- strh r1, [r3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815C8B8: .4byte 0x04000130
-_0815C8BC: .4byte 0x000003ff
-_0815C8C0: .4byte gUnknown_3002062
-_0815C8C4: .4byte gUnknown_3002060
- thumb_func_end sub_815C898
-
- thumb_func_start sub_815C8C8
-sub_815C8C8: @ 815C8C8
- ldr r1, _0815C8F4 @ =gUnknown_300206C
- ldr r0, _0815C8F8 @ =0x04000208
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0815C8FC @ =gUnknown_300206E
- ldr r0, _0815C900 @ =0x04000200
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0815C904 @ =gUnknown_3002070
- ldr r0, _0815C908 @ =0x0400010e
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0815C90C @ =gUnknown_3002072
- ldr r0, _0815C910 @ =0x04000128
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0815C914 @ =gUnknown_3002074
- ldr r0, _0815C918 @ =0x04000134
- ldrh r0, [r0]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0815C8F4: .4byte gUnknown_300206C
-_0815C8F8: .4byte 0x04000208
-_0815C8FC: .4byte gUnknown_300206E
-_0815C900: .4byte 0x04000200
-_0815C904: .4byte gUnknown_3002070
-_0815C908: .4byte 0x0400010e
-_0815C90C: .4byte gUnknown_3002072
-_0815C910: .4byte 0x04000128
-_0815C914: .4byte gUnknown_3002074
-_0815C918: .4byte 0x04000134
- thumb_func_end sub_815C8C8
-
- thumb_func_start sub_815C91C
-sub_815C91C: @ 815C91C
- ldr r1, _0815C948 @ =0x04000208
- ldr r0, _0815C94C @ =gUnknown_300206C
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x8
- ldr r0, _0815C950 @ =gUnknown_300206E
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0xF2
- ldr r0, _0815C954 @ =gUnknown_3002070
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x1A
- ldr r0, _0815C958 @ =gUnknown_3002072
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0xC
- ldr r0, _0815C95C @ =gUnknown_3002074
- ldrh r0, [r0]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0815C948: .4byte 0x04000208
-_0815C94C: .4byte gUnknown_300206C
-_0815C950: .4byte gUnknown_300206E
-_0815C954: .4byte gUnknown_3002070
-_0815C958: .4byte gUnknown_3002072
-_0815C95C: .4byte gUnknown_3002074
- thumb_func_end sub_815C91C
-
- thumb_func_start sub_815C960
-sub_815C960: @ 815C960
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r1, _0815C978 @ =gUnknown_3002048
- ldr r2, _0815C97C @ =0x05000006
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0815C978: .4byte gUnknown_3002048
-_0815C97C: .4byte 0x05000006
- thumb_func_end sub_815C960
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unk_815C980.s b/asm/unk_815C980.s
deleted file mode 100644
index a348558f3..000000000
--- a/asm/unk_815C980.s
+++ /dev/null
@@ -1,1314 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815C980
-sub_815C980: @ 815C980
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _0815C9A0 @ =gUnknown_203F454
- ldr r0, [r5]
- cmp r0, 0
- beq _0815C990
- bl sub_815C9F4
-_0815C990:
- movs r0, 0x8
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- bne _0815C9A4
- movs r0, 0
- b _0815C9EC
- .align 2, 0
-_0815C9A0: .4byte gUnknown_203F454
-_0815C9A4:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- bl Alloc
- ldr r1, [r5]
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _0815C9C0
- adds r0, r1, 0
- bl Free
- movs r0, 0
- b _0815C9EC
-_0815C9C0:
- str r4, [r1]
- movs r3, 0
- cmp r3, r4
- bcs _0815C9EA
- movs r7, 0
- movs r6, 0xFF
- movs r2, 0
-_0815C9CE:
- ldr r0, [r5]
- ldr r0, [r0, 0x4]
- adds r0, r2, r0
- strb r7, [r0]
- ldr r0, [r5]
- ldr r1, [r0, 0x4]
- adds r1, r2, r1
- ldrb r0, [r1, 0x1]
- orrs r0, r6
- strb r0, [r1, 0x1]
- adds r2, 0x1C
- adds r3, 0x1
- cmp r3, r4
- bcc _0815C9CE
-_0815C9EA:
- movs r0, 0x1
-_0815C9EC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_815C980
-
- thumb_func_start sub_815C9F4
-sub_815C9F4: @ 815C9F4
- push {r4,r5,lr}
- ldr r2, _0815CA3C @ =gUnknown_203F454
- ldr r1, [r2]
- cmp r1, 0
- beq _0815CA34
- ldr r0, [r1, 0x4]
- cmp r0, 0
- beq _0815CA28
- movs r4, 0
- ldr r0, [r1]
- cmp r4, r0
- bcs _0815CA1E
- adds r5, r2, 0
-_0815CA0E:
- adds r0, r4, 0
- bl sub_815D108
- adds r4, 0x1
- ldr r0, [r5]
- ldr r0, [r0]
- cmp r4, r0
- bcc _0815CA0E
-_0815CA1E:
- ldr r0, _0815CA3C @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl Free
-_0815CA28:
- ldr r4, _0815CA3C @ =gUnknown_203F454
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
-_0815CA34:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815CA3C: .4byte gUnknown_203F454
- thumb_func_end sub_815C9F4
-
- thumb_func_start sub_815CA40
-sub_815CA40: @ 815CA40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r8, r0
- mov r10, r1
- adds r5, r2, 0
- ldr r6, _0815CAB8 @ =gUnknown_203F454
- ldr r0, [r6]
- cmp r0, 0
- beq _0815CB00
- ldr r1, [r0, 0x4]
- mov r0, r8
- lsls r2, r0, 3
- subs r0, r2, r0
- lsls r4, r0, 2
- adds r1, r4, r1
- ldrb r0, [r1]
- mov r9, r2
- cmp r0, 0
- bne _0815CB00
- ldrb r0, [r5, 0x1]
- bl sub_815D244
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strb r0, [r1, 0x1]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r0, [r0, 0x1]
- cmp r0, 0xFF
- beq _0815CB00
- ldr r0, [r5, 0x8]
- ldrh r0, [r0, 0x6]
- bl GetSpriteTileStartByTag
- ldr r2, [r6]
- ldr r1, [r2, 0x4]
- adds r1, r4, r1
- strh r0, [r1, 0xA]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldrh r1, [r0, 0xA]
- ldr r7, _0815CABC @ =0xffff0000
- lsrs r0, r7, 16
- cmp r1, r0
- bne _0815CB0C
- ldr r2, [r5, 0x8]
- ldrh r0, [r2, 0x4]
- adds r1, r2, 0
- cmp r0, 0
- beq _0815CAC0
- adds r0, r1, 0
- bl LoadSpriteSheet
- b _0815CAE0
- .align 2, 0
-_0815CAB8: .4byte gUnknown_203F454
-_0815CABC: .4byte 0xffff0000
-_0815CAC0:
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [r2]
- bl sub_800F0C4
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x4]
- ands r1, r7
- orrs r1, r0
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadCompressedObjectPic
-_0815CAE0:
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strh r0, [r1, 0xA]
- ldr r0, _0815CB04 @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- mov r2, r9
- mov r3, r8
- subs r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0xA]
- ldr r0, _0815CB08 @ =0x0000ffff
- cmp r1, r0
- bne _0815CB0C
-_0815CB00:
- movs r0, 0
- b _0815CC14
- .align 2, 0
-_0815CB04: .4byte gUnknown_203F454
-_0815CB08: .4byte 0x0000ffff
-_0815CB0C:
- ldr r0, [r5, 0xC]
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- ldr r6, _0815CC24 @ =gUnknown_203F454
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- mov r4, r9
- mov r3, r8
- subs r2, r4, r3
- lsls r4, r2, 2
- adds r1, r4, r1
- strb r0, [r1, 0x4]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r0, [r0, 0x4]
- cmp r0, 0xFF
- bne _0815CB40
- ldr r0, [r5, 0xC]
- bl LoadSpritePalette
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strb r0, [r1, 0x4]
-_0815CB40:
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsls r0, 30
- lsrs r0, 30
- strb r0, [r1, 0x2]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r1, [r5, 0x1]
- strb r1, [r0, 0x3]
- ldr r2, [r6]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldrh r1, [r5, 0x4]
- strh r1, [r0, 0xC]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldrh r1, [r5, 0x6]
- strh r1, [r0, 0xE]
- ldr r1, [r2, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsls r0, 28
- lsrs r0, 30
- strb r0, [r1, 0x6]
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsls r0, 26
- lsrs r0, 30
- strb r0, [r1, 0x5]
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsrs r0, 6
- strb r0, [r1, 0x7]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r1, [r5, 0x2]
- strb r1, [r0, 0x8]
- ldrb r1, [r5]
- lsls r0, r1, 28
- lsrs r0, 30
- lsls r1, 26
- lsrs r1, 30
- bl sub_815D324
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strb r0, [r1, 0x9]
- ldr r2, [r6]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldr r1, [r5, 0x8]
- ldrh r1, [r1, 0x6]
- strh r1, [r0, 0x10]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldr r1, [r5, 0xC]
- ldrh r1, [r1, 0x4]
- strh r1, [r0, 0x12]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- str r1, [r0, 0x14]
- movs r3, 0x1
- ldrb r0, [r5, 0x1]
- cmp r3, r0
- bcs _0815CBF6
-_0815CBDE:
- ldr r0, [r6]
- ldr r2, [r0, 0x4]
- adds r2, r4, r2
- ldr r1, [r2, 0x14]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- str r0, [r2, 0x14]
- adds r3, 0x1
- ldrb r2, [r5, 0x1]
- cmp r3, r2
- bcc _0815CBDE
-_0815CBF6:
- ldr r0, _0815CC24 @ =gUnknown_203F454
- ldr r0, [r0]
- mov r3, r9
- mov r4, r8
- subs r1, r3, r4
- lsls r1, 2
- ldr r0, [r0, 0x4]
- adds r0, r1
- bl sub_815CC28
- mov r0, r8
- mov r1, r10
- bl sub_815CD70
- movs r0, 0x1
-_0815CC14:
- 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
-_0815CC24: .4byte gUnknown_203F454
- thumb_func_end sub_815CA40
-
- thumb_func_start sub_815CC28
-sub_815CC28: @ 815CC28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrb r5, [r4, 0x1]
- movs r0, 0xC
- ldrsh r7, [r4, r0]
- ldrb r0, [r4, 0x3]
- adds r0, 0x1
- mov r8, r0
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- lsls r1, r5, 3
- ldr r2, _0815CD58 @ =gMain + 0x38
- mov r9, r2
- add r1, r9
- mov r0, r8
- lsls r2, r0, 2
- movs r0, 0x80
- lsls r0, 17
- orrs r2, r0
- mov r0, sp
- bl CpuSet
- movs r6, 0
- ldrb r5, [r4, 0x1]
- cmp r6, r8
- bcs _0815CCFA
- movs r1, 0x3F
- mov r10, r1
- movs r2, 0xD
- negs r2, r2
- mov r9, r2
-_0815CC72:
- lsls r0, r5, 3
- ldr r1, _0815CD5C @ =gMain
- adds r3, r0, r1
- ldrh r1, [r4, 0xE]
- adds r0, r3, 0
- adds r0, 0x38
- strb r1, [r0]
- ldr r2, _0815CD60 @ =0x000001ff
- adds r0, r2, 0
- adds r1, r7, 0
- ands r1, r0
- ldrh r2, [r3, 0x3A]
- ldr r0, _0815CD64 @ =0xfffffe00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3A]
- ldrb r1, [r4, 0x6]
- movs r0, 0x39
- adds r0, r3
- mov r12, r0
- lsls r1, 6
- ldrb r2, [r0]
- mov r0, r10
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrb r1, [r4, 0x5]
- movs r2, 0x3B
- adds r2, r3
- mov r12, r2
- lsls r1, 6
- ldrb r2, [r2]
- mov r0, r10
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r4, 0xA]
- ldr r1, _0815CD68 @ =0x000003ff
- ands r1, r0
- ldrh r2, [r3, 0x3C]
- ldr r0, _0815CD6C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3C]
- adds r3, 0x3D
- movs r0, 0x3
- ldrb r1, [r4, 0x7]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrb r2, [r4, 0x4]
- lsls r2, 4
- movs r1, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldrb r0, [r4, 0x8]
- adds r7, r0
- adds r6, 0x1
- adds r5, 0x1
- cmp r6, r8
- bcc _0815CC72
-_0815CCFA:
- subs r5, 0x1
- ldr r0, _0815CD5C @ =gMain
- lsls r3, r5, 3
- adds r3, r0
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- ldrb r0, [r4, 0x8]
- subs r1, r0
- ldr r2, _0815CD60 @ =0x000001ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x3A]
- ldr r0, _0815CD64 @ =0xfffffe00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3A]
- adds r2, r3, 0
- adds r2, 0x39
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4, 0x9]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- ldrh r4, [r4, 0xA]
- adds r1, r4
- ldr r2, _0815CD68 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x3C]
- ldr r0, _0815CD6C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3C]
- 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
-_0815CD58: .4byte gMain + 0x38
-_0815CD5C: .4byte gMain
-_0815CD60: .4byte 0x000001ff
-_0815CD64: .4byte 0xfffffe00
-_0815CD68: .4byte 0x000003ff
-_0815CD6C: .4byte 0xfffffc00
- thumb_func_end sub_815CC28
-
- thumb_func_start sub_815CD70
-sub_815CD70: @ 815CD70
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldr r0, _0815CDA0 @ =gUnknown_203F454
- ldr r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _0815CDD4
- ldr r2, [r1, 0x4]
- lsls r1, r3, 3
- subs r0, r1, r3
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2]
- adds r5, r1, 0
- cmp r0, 0
- beq _0815CDD4
- str r4, [r2, 0x18]
- cmp r4, 0
- bge _0815CDA4
- movs r2, 0x1
- negs r4, r4
- b _0815CDA6
- .align 2, 0
-_0815CDA0: .4byte gUnknown_203F454
-_0815CDA4:
- movs r2, 0
-_0815CDA6:
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- subs r0, r5, r3
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x2]
- cmp r3, 0x1
- beq _0815CDC6
- cmp r3, 0x1
- ble _0815CDBE
- cmp r3, 0x2
- beq _0815CDCE
-_0815CDBE:
- adds r1, r4, 0
- bl sub_815CDDC
- b _0815CDD4
-_0815CDC6:
- adds r1, r4, 0
- bl sub_815CE90
- b _0815CDD4
-_0815CDCE:
- adds r1, r4, 0
- bl sub_815CFEC
-_0815CDD4:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815CD70
-
- thumb_func_start sub_815CDDC
-sub_815CDDC: @ 815CDDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- mov r9, r1
- str r2, [sp]
- ldr r5, [r0, 0x14]
- ldrb r7, [r0, 0x1]
- ldr r0, _0815CE60 @ =gMain
- mov r10, r0
- cmp r5, 0
- beq _0815CE46
- lsls r0, r7, 3
- adds r0, 0x3C
- mov r1, r10
- adds r6, r0, r1
-_0815CE02:
- mov r0, r9
- adds r1, r5, 0
- bl __udivsi3
- adds r4, r0, 0
- adds r0, r4, 0
- muls r0, r5
- mov r2, r9
- subs r2, r0
- mov r9, r2
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- mov r1, r8
- ldrb r0, [r1, 0x9]
- adds r1, r4, 0
- muls r1, r0
- mov r2, r8
- ldrh r2, [r2, 0xA]
- adds r1, r2
- ldr r2, _0815CE64 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r0, [r6]
- ldr r2, _0815CE68 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r6]
- adds r6, 0x8
- adds r7, 0x1
- cmp r5, 0
- bne _0815CE02
-_0815CE46:
- ldr r0, [sp]
- cmp r0, 0
- beq _0815CE6C
- lsls r0, r7, 3
- add r0, r10
- adds r0, 0x39
- ldrb r2, [r0]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _0815CE80
- .align 2, 0
-_0815CE60: .4byte gMain
-_0815CE64: .4byte 0x000003ff
-_0815CE68: .4byte 0xfffffc00
-_0815CE6C:
- lsls r2, r7, 3
- add r2, r10
- adds r2, 0x39
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_0815CE80:
- 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_815CDDC
-
- thumb_func_start sub_815CE90
-sub_815CE90: @ 815CE90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r0, 0
- mov r8, r1
- str r2, [sp]
- ldr r5, [r6, 0x14]
- ldr r3, _0815CF38 @ =gUnknown_3002078
- ldrb r0, [r6, 0x1]
- str r0, [r3]
- ldr r2, _0815CF3C @ =gUnknown_300207C
- movs r0, 0
- str r0, [r2]
- ldr r1, _0815CF40 @ =gUnknown_3002080
- subs r0, 0x1
- str r0, [r1]
- adds r7, r3, 0
- mov r10, r1
- ldr r0, _0815CF44 @ =gMain
- mov r9, r0
- cmp r5, 0
- beq _0815CF78
-_0815CEC2:
- mov r0, r8
- adds r1, r5, 0
- bl __udivsi3
- adds r4, r0, 0
- adds r0, r4, 0
- muls r0, r5
- mov r1, r8
- subs r1, r0
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- cmp r4, 0
- bne _0815CEF4
- mov r2, r10
- ldr r1, [r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0815CEF4
- cmp r5, 0
- bne _0815CF50
-_0815CEF4:
- ldr r2, [r7]
- lsls r2, 3
- add r2, r9
- ldrb r0, [r6, 0x9]
- adds r3, r4, 0
- muls r3, r0
- ldrh r4, [r6, 0xA]
- adds r3, r4
- ldr r1, _0815CF48 @ =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldrh r0, [r2, 0x3C]
- ldr r4, _0815CF4C @ =0xfffffc00
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r3
- strh r0, [r2, 0x3C]
- adds r2, 0x39
- ldrb r0, [r2]
- movs r1, 0x4
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- mov r2, r10
- ldr r1, [r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0815CF66
- ldr r4, _0815CF3C @ =gUnknown_300207C
- ldr r0, [r4]
- str r0, [r2]
- b _0815CF66
- .align 2, 0
-_0815CF38: .4byte gUnknown_3002078
-_0815CF3C: .4byte gUnknown_300207C
-_0815CF40: .4byte gUnknown_3002080
-_0815CF44: .4byte gMain
-_0815CF48: .4byte 0x000003ff
-_0815CF4C: .4byte 0xfffffc00
-_0815CF50:
- ldr r0, [r7]
- lsls r0, 3
- add r0, r9
- adds r0, 0x39
- ldrb r1, [r0]
- movs r2, 0x4
- negs r2, r2
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_0815CF66:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
- ldr r4, _0815CFB8 @ =gUnknown_300207C
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- cmp r5, 0
- bne _0815CEC2
-_0815CF78:
- ldr r0, [sp]
- cmp r0, 0
- beq _0815CFC4
- ldr r1, [r7]
- lsls r1, 3
- add r1, r9
- adds r1, 0x39
- ldrb r2, [r1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r3, [r7]
- lsls r3, 3
- add r3, r9
- movs r1, 0xC
- ldrsh r2, [r6, r1]
- mov r4, r10
- ldr r0, [r4]
- subs r0, 0x1
- ldrb r1, [r6, 0x8]
- muls r0, r1
- adds r2, r0
- ldr r1, _0815CFBC @ =0x000001ff
- adds r0, r1, 0
- ands r2, r0
- ldrh r1, [r3, 0x3A]
- ldr r0, _0815CFC0 @ =0xfffffe00
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0x3A]
- b _0815CFDA
- .align 2, 0
-_0815CFB8: .4byte gUnknown_300207C
-_0815CFBC: .4byte 0x000001ff
-_0815CFC0: .4byte 0xfffffe00
-_0815CFC4:
- ldr r0, [r7]
- lsls r0, 3
- add r0, r9
- adds r0, 0x39
- ldrb r2, [r0]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_0815CFDA:
- 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_815CE90
-
- thumb_func_start sub_815CFEC
-sub_815CFEC: @ 815CFEC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- mov r10, r1
- str r2, [sp]
- ldr r5, [r0, 0x14]
- ldrb r3, [r0, 0x1]
- movs r0, 0
- str r0, [sp, 0x4]
- mov r9, r0
- cmp r5, 0
- beq _0815D086
-_0815D00C:
- lsls r0, r3, 3
- adds r1, r0, 0
- adds r1, 0x39
- ldr r2, _0815D0D0 @ =gMain
- adds r7, r1, r2
- adds r0, 0x3C
- adds r6, r0, r2
-_0815D01A:
- mov r0, r10
- adds r1, r5, 0
- str r3, [sp, 0x8]
- bl __udivsi3
- adds r4, r0, 0
- adds r0, r4, 0
- muls r0, r5
- mov r1, r10
- subs r1, r0
- mov r10, r1
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- ldr r3, [sp, 0x8]
- cmp r4, 0
- bne _0815D04A
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _0815D04A
- cmp r5, 0
- bne _0815D00C
-_0815D04A:
- movs r0, 0x1
- str r0, [sp, 0x4]
- mov r1, r8
- ldrb r0, [r1, 0x9]
- adds r2, r4, 0
- muls r2, r0
- ldrh r4, [r1, 0xA]
- adds r2, r4
- ldr r1, _0815D0D4 @ =0x000003ff
- adds r0, r1, 0
- ands r2, r0
- ldrh r0, [r6]
- ldr r4, _0815D0D8 @ =0xfffffc00
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r6]
- ldrb r0, [r7]
- movs r2, 0x4
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r7]
- adds r7, 0x8
- adds r6, 0x8
- adds r3, 0x1
- movs r4, 0x1
- add r9, r4
- cmp r5, 0
- bne _0815D01A
-_0815D086:
- mov r0, r8
- ldrb r0, [r0, 0x3]
- cmp r9, r0
- bge _0815D0B6
- ldr r1, _0815D0D0 @ =gMain
- movs r5, 0x4
- negs r5, r5
- movs r4, 0x2
- lsls r0, r3, 3
- adds r0, 0x39
- adds r2, r0, r1
-_0815D09C:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- orrs r0, r4
- strb r0, [r2]
- adds r2, 0x8
- adds r3, 0x1
- movs r1, 0x1
- add r9, r1
- mov r0, r8
- ldrb r0, [r0, 0x3]
- cmp r9, r0
- blt _0815D09C
-_0815D0B6:
- ldr r1, [sp]
- cmp r1, 0
- beq _0815D0DC
- lsls r0, r3, 3
- ldr r2, _0815D0D0 @ =gMain
- adds r0, r2
- adds r0, 0x39
- ldrb r2, [r0]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _0815D0F2
- .align 2, 0
-_0815D0D0: .4byte gMain
-_0815D0D4: .4byte 0x000003ff
-_0815D0D8: .4byte 0xfffffc00
-_0815D0DC:
- lsls r2, r3, 3
- ldr r4, _0815D104 @ =gMain
- adds r2, r4
- adds r2, 0x39
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_0815D0F2:
- 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
-_0815D104: .4byte gMain
- thumb_func_end sub_815CFEC
-
- thumb_func_start sub_815D108
-sub_815D108: @ 815D108
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _0815D1A0 @ =gUnknown_203F454
- ldr r0, [r0]
- cmp r0, 0
- beq _0815D19A
- ldr r2, [r0, 0x4]
- lsls r1, r4, 3
- subs r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2]
- adds r5, r1, 0
- cmp r0, 0
- beq _0815D19A
- ldrb r3, [r2, 0x3]
- adds r0, r3, 0x1
- ldrb r2, [r2, 0x1]
- cmp r0, 0
- beq _0815D152
- ldr r1, _0815D1A4 @ =gMain
- movs r7, 0x4
- negs r7, r7
- movs r6, 0x2
- adds r3, r0, 0
- lsls r0, r2, 3
- adds r0, 0x39
- adds r2, r0, r1
-_0815D140:
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r2]
- subs r3, 0x1
- adds r2, 0x8
- cmp r3, 0
- bne _0815D140
-_0815D152:
- adds r0, r4, 0
- bl sub_815D29C
- cmp r0, 0
- bne _0815D16E
- ldr r0, _0815D1A0 @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- subs r0, r5, r4
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x10]
- bl FreeSpriteTilesByTag
-_0815D16E:
- adds r0, r4, 0
- bl sub_815D2E0
- cmp r0, 0
- bne _0815D18A
- ldr r0, _0815D1A0 @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- subs r0, r5, r4
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x12]
- bl FreeSpritePaletteByTag
-_0815D18A:
- ldr r0, _0815D1A0 @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- subs r0, r5, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0815D19A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815D1A0: .4byte gUnknown_203F454
-_0815D1A4: .4byte gMain
- thumb_func_end sub_815D108
-
- thumb_func_start sub_815D1A8
-sub_815D1A8: @ 815D1A8
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _0815D1FC @ =gUnknown_203F454
- ldr r1, [r0]
- adds r7, r0, 0
- cmp r1, 0
- beq _0815D238
- ldr r2, [r1, 0x4]
- lsls r1, r4, 3
- subs r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2]
- adds r6, r1, 0
- cmp r0, 0
- beq _0815D238
- ldrb r3, [r2, 0x3]
- adds r1, r3, 0x1
- ldrb r0, [r2, 0x1]
- cmp r5, 0
- beq _0815D204
- cmp r1, 0
- beq _0815D238
- ldr r1, _0815D200 @ =gMain
- movs r5, 0x4
- negs r5, r5
- movs r4, 0x2
- adds r3, 0x1
- lsls r0, 3
- adds r0, 0x39
- adds r2, r0, r1
-_0815D1E8:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- orrs r0, r4
- strb r0, [r2]
- subs r3, 0x1
- adds r2, 0x8
- cmp r3, 0
- bne _0815D1E8
- b _0815D238
- .align 2, 0
-_0815D1FC: .4byte gUnknown_203F454
-_0815D200: .4byte gMain
-_0815D204:
- cmp r1, 0
- beq _0815D226
- ldr r1, _0815D240 @ =gMain
- movs r5, 0x4
- negs r5, r5
- adds r3, 0x1
- lsls r0, 3
- adds r0, 0x39
- adds r2, r0, r1
-_0815D216:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2]
- subs r3, 0x1
- adds r2, 0x8
- cmp r3, 0
- bne _0815D216
-_0815D226:
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- subs r0, r6, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0, 0x18]
- adds r0, r4, 0
- bl sub_815CD70
-_0815D238:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0815D240: .4byte gMain
- thumb_func_end sub_815D1A8
-
- thumb_func_start sub_815D244
-sub_815D244: @ 815D244
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0x40
- movs r3, 0
- ldr r0, _0815D270 @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r2, [r0]
- cmp r3, r2
- bcs _0815D286
- ldr r1, [r0, 0x4]
-_0815D25A:
- ldrb r0, [r1]
- cmp r0, 0
- bne _0815D274
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _0815D27E
- ldrb r0, [r1, 0x3]
- cmp r0, r4
- bhi _0815D27E
- ldrb r0, [r1, 0x1]
- b _0815D296
- .align 2, 0
-_0815D270: .4byte gUnknown_203F454
-_0815D274:
- adds r0, r5, 0x1
- ldrb r5, [r1, 0x3]
- adds r0, r5
- lsls r0, 16
- lsrs r5, r0, 16
-_0815D27E:
- adds r1, 0x1C
- adds r3, 0x1
- cmp r3, r2
- bcc _0815D25A
-_0815D286:
- adds r0, r5, r4
- adds r0, 0x1
- cmp r0, 0x80
- bgt _0815D294
- lsls r0, r5, 24
- lsrs r0, 24
- b _0815D296
-_0815D294:
- movs r0, 0xFF
-_0815D296:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_815D244
-
- thumb_func_start sub_815D29C
-sub_815D29C: @ 815D29C
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, _0815D2CC @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r4, [r0]
- cmp r2, r4
- bcs _0815D2D8
- ldr r1, [r0, 0x4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r5, r0, r1
-_0815D2B6:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0815D2D0
- cmp r2, r3
- beq _0815D2D0
- ldrh r0, [r1, 0x10]
- ldrh r6, [r5, 0x10]
- cmp r0, r6
- bne _0815D2D0
- movs r0, 0x1
- b _0815D2DA
- .align 2, 0
-_0815D2CC: .4byte gUnknown_203F454
-_0815D2D0:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, r4
- bcc _0815D2B6
-_0815D2D8:
- movs r0, 0
-_0815D2DA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_815D29C
-
- thumb_func_start sub_815D2E0
-sub_815D2E0: @ 815D2E0
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, _0815D310 @ =gUnknown_203F454
- ldr r0, [r0]
- ldr r4, [r0]
- cmp r2, r4
- bcs _0815D31C
- ldr r1, [r0, 0x4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r5, r0, r1
-_0815D2FA:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0815D314
- cmp r2, r3
- beq _0815D314
- ldrh r0, [r1, 0x12]
- ldrh r6, [r5, 0x12]
- cmp r0, r6
- bne _0815D314
- movs r0, 0x1
- b _0815D31E
- .align 2, 0
-_0815D310: .4byte gUnknown_203F454
-_0815D314:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, r4
- bcc _0815D2FA
-_0815D31C:
- movs r0, 0
-_0815D31E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_815D2E0
-
- thumb_func_start sub_815D324
-sub_815D324: @ 815D324
- ldr r2, _0815D330 @ =gUnknown_8479658
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_0815D330: .4byte gUnknown_8479658
- thumb_func_end sub_815D324
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s
deleted file mode 100644
index 116458940..000000000
--- a/asm/unk_815EDDC.s
+++ /dev/null
@@ -1,462 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815EDDC
-sub_815EDDC: @ 815EDDC
- ldr r1, _0815EDF0 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- movs r2, 0xF2
- lsls r2, 4
- adds r1, r2
- ldr r0, [r0]
- ldr r1, [r1]
- eors r0, r1
- bx lr
- .align 2, 0
-_0815EDF0: .4byte gSaveBlock2Ptr
- thumb_func_end sub_815EDDC
-
- thumb_func_start sub_815EDF4
-sub_815EDF4: @ 815EDF4
- ldr r2, _0815EE08 @ =gSaveBlock2Ptr
- ldr r2, [r2]
- movs r3, 0xF2
- lsls r3, 4
- adds r2, r3
- ldr r2, [r2]
- eors r2, r1
- str r2, [r0]
- bx lr
- .align 2, 0
-_0815EE08: .4byte gSaveBlock2Ptr
- thumb_func_end sub_815EDF4
-
- thumb_func_start sub_815EE0C
-sub_815EE0C: @ 815EE0C
- push {r4-r6,lr}
- ldr r6, _0815EE30 @ =gSaveBlock1Ptr
- ldr r5, _0815EE34 @ =0x00003d38
- movs r4, 0x3
-_0815EE14:
- ldr r0, [r6]
- adds r0, r5
- adds r0, 0x4
- ldr r1, _0815EE38 @ =0x00034bbf
- bl sub_815EDF4
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _0815EE14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815EE30: .4byte gSaveBlock1Ptr
-_0815EE34: .4byte 0x00003d38
-_0815EE38: .4byte 0x00034bbf
- thumb_func_end sub_815EE0C
-
- thumb_func_start sub_815EE3C
-sub_815EE3C: @ 815EE3C
- ldr r1, _0815EE50 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- movs r2, 0xF2
- lsls r2, 4
- adds r1, r2
- ldr r0, [r0]
- ldr r1, [r1]
- eors r0, r1
- bx lr
- .align 2, 0
-_0815EE50: .4byte gSaveBlock2Ptr
- thumb_func_end sub_815EE3C
-
- thumb_func_start sub_815EE54
-sub_815EE54: @ 815EE54
- ldr r2, _0815EE68 @ =gSaveBlock2Ptr
- ldr r2, [r2]
- movs r3, 0xF2
- lsls r3, 4
- adds r2, r3
- ldr r2, [r2]
- eors r2, r1
- str r2, [r0]
- bx lr
- .align 2, 0
-_0815EE68: .4byte gSaveBlock2Ptr
- thumb_func_end sub_815EE54
-
- thumb_func_start sub_815EE6C
-sub_815EE6C: @ 815EE6C
- push {lr}
- adds r1, r0, 0
- ldr r0, _0815EE80 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, _0815EE84 @ =0x00000af8
- adds r0, r2
- bl ApplyNewEncryptionKeyToWord
- pop {r0}
- bx r0
- .align 2, 0
-_0815EE80: .4byte gSaveBlock2Ptr
-_0815EE84: .4byte 0x00000af8
- thumb_func_end sub_815EE6C
-
- thumb_func_start sub_815EE88
-sub_815EE88: @ 815EE88
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0815EEA0 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _0815EEA4 @ =0x00000af8
- adds r0, r1
- bl sub_815EE3C
- cmp r0, r4
- bcc _0815EEA8
- movs r0, 0x1
- b _0815EEAA
- .align 2, 0
-_0815EEA0: .4byte gSaveBlock2Ptr
-_0815EEA4: .4byte 0x00000af8
-_0815EEA8:
- movs r0, 0
-_0815EEAA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_815EE88
-
- thumb_func_start sub_815EEB0
-sub_815EEB0: @ 815EEB0
- push {lr}
- ldr r0, _0815EECC @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _0815EED0 @ =0x00000af8
- adds r0, r1
- bl sub_815EE3C
- ldr r1, _0815EED4 @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- cmp r0, r1
- bcc _0815EED8
- movs r0, 0x1
- b _0815EEDA
- .align 2, 0
-_0815EECC: .4byte gSaveBlock2Ptr
-_0815EED0: .4byte 0x00000af8
-_0815EED4: .4byte gSpecialVar_0x8004
-_0815EED8:
- movs r0, 0
-_0815EEDA:
- pop {r1}
- bx r1
- thumb_func_end sub_815EEB0
-
- thumb_func_start sub_815EEE0
-sub_815EEE0: @ 815EEE0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _0815EF04 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _0815EF08 @ =0x00000af8
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_815EE3C
- adds r1, r0, r4
- ldr r2, _0815EF0C @ =0x0001869f
- cmp r1, r2
- bhi _0815EF10
- adds r0, r5, 0
- bl sub_815EE54
- movs r0, 0x1
- b _0815EF1A
- .align 2, 0
-_0815EF04: .4byte gSaveBlock2Ptr
-_0815EF08: .4byte 0x00000af8
-_0815EF0C: .4byte 0x0001869f
-_0815EF10:
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_815EE54
- movs r0, 0
-_0815EF1A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_815EEE0
-
- thumb_func_start sub_815EF20
-sub_815EF20: @ 815EF20
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _0815EF4C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _0815EF50 @ =0x00000af8
- adds r4, r0, r1
- adds r0, r5, 0
- bl sub_815EE88
- lsls r0, 24
- cmp r0, 0
- beq _0815EF54
- adds r0, r4, 0
- bl sub_815EE3C
- adds r1, r0, 0
- subs r1, r5
- adds r0, r4, 0
- bl sub_815EE54
- movs r0, 0x1
- b _0815EF56
- .align 2, 0
-_0815EF4C: .4byte gSaveBlock2Ptr
-_0815EF50: .4byte 0x00000af8
-_0815EF54:
- movs r0, 0
-_0815EF56:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_815EF20
-
- thumb_func_start sub_815EF5C
-sub_815EF5C: @ 815EF5C
- push {r4,r5,lr}
- ldr r0, _0815EF8C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _0815EF90 @ =0x00000af8
- adds r4, r0, r1
- ldr r5, _0815EF94 @ =gSpecialVar_0x8004
- ldrh r0, [r5]
- bl sub_815EE88
- lsls r0, 24
- cmp r0, 0
- beq _0815EF98
- adds r0, r4, 0
- bl sub_815EE3C
- adds r1, r0, 0
- ldrh r0, [r5]
- subs r1, r0
- adds r0, r4, 0
- bl sub_815EE54
- movs r0, 0x1
- b _0815EF9A
- .align 2, 0
-_0815EF8C: .4byte gSaveBlock2Ptr
-_0815EF90: .4byte 0x00000af8
-_0815EF94: .4byte gSpecialVar_0x8004
-_0815EF98:
- movs r0, 0
-_0815EF9A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_815EF5C
-
- thumb_func_start sub_815EFA0
-sub_815EFA0: @ 815EFA0
- push {lr}
- ldr r0, _0815EFB4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _0815EFB8 @ =0x00000af8
- adds r0, r1
- bl sub_815EE3C
- pop {r1}
- bx r1
- .align 2, 0
-_0815EFB4: .4byte gSaveBlock2Ptr
-_0815EFB8: .4byte 0x00000af8
- thumb_func_end sub_815EFA0
-
- thumb_func_start sub_815EFBC
-sub_815EFBC: @ 815EFBC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r6, r0, 0
- mov r8, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x24]
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0815F010 @ =gStringVar1
- mov r9, r0
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0
- mov r2, r9
- mov r3, r8
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F010: .4byte gStringVar1
- thumb_func_end sub_815EFBC
-
- thumb_func_start sub_815F014
-sub_815F014: @ 815F014
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl SetWindowBorderStyle
- ldr r2, _0815F06C @ =gUnknown_8416655
- movs r4, 0
- str r4, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- str r4, [sp]
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0x27
- movs r3, 0xC
- bl sub_815EFBC
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F06C: .4byte gUnknown_8416655
- thumb_func_end sub_815F014
-
- thumb_func_start sub_815F070
-sub_815F070: @ 815F070
- push {lr}
- sub sp, 0x4
- bl sub_815EFA0
- adds r1, r0, 0
- ldr r0, _0815F090 @ =gUnknown_203F464
- ldrb r0, [r0]
- movs r2, 0
- str r2, [sp]
- movs r2, 0x27
- movs r3, 0xC
- bl sub_815EFBC
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0815F090: .4byte gUnknown_203F464
- thumb_func_end sub_815F070
-
- thumb_func_start sub_815F094
-sub_815F094: @ 815F094
- push {r4,r5,lr}
- sub sp, 0x20
- ldr r0, _0815F108 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0815F100
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x20
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl SetWindowTemplateFields
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r4, _0815F10C @ =gUnknown_203F464
- add r0, sp, 0x18
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- ldr r5, _0815F110 @ =0x0000021d
- adds r1, r5, 0
- movs r2, 0xD0
- bl sub_814FF2C
- ldrb r4, [r4]
- bl sub_815EFA0
- adds r3, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xD
- bl sub_815F014
-_0815F100:
- add sp, 0x20
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F108: .4byte sub_809D6D4
-_0815F10C: .4byte gUnknown_203F464
-_0815F110: .4byte 0x0000021d
- thumb_func_end sub_815F094
-
- thumb_func_start sub_815F114
-sub_815F114: @ 815F114
- push {r4,lr}
- ldr r4, _0815F134 @ =gUnknown_203F464
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810F4D8
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F134: .4byte gUnknown_203F464
- thumb_func_end sub_815F114
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unk_815F138.s b/asm/unk_815F138.s
deleted file mode 100644
index eaca7d2a4..000000000
--- a/asm/unk_815F138.s
+++ /dev/null
@@ -1,753 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815F138
-sub_815F138: @ 815F138
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x18]
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0815F190 @ =sub_815F1AC
- movs r1, 0x50
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0815F194 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r6, [r1, 0x10]
- ldr r3, [sp]
- strh r3, [r1, 0x12]
- mov r0, r8
- strh r0, [r1, 0x14]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F190: .4byte sub_815F1AC
-_0815F194: .4byte gTasks
- thumb_func_end sub_815F138
-
- thumb_func_start sub_815F198
-sub_815F198: @ 815F198
- push {lr}
- ldr r0, _0815F1A8 @ =sub_815F1AC
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0815F1A8: .4byte sub_815F1AC
- thumb_func_end sub_815F198
-
- thumb_func_start sub_815F1AC
-sub_815F1AC: @ 815F1AC
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0815F1D0 @ =gTasks+0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0815F21C
- cmp r0, 0x1
- bgt _0815F1D4
- cmp r0, 0
- beq _0815F1DA
- b _0815F29E
- .align 2, 0
-_0815F1D0: .4byte gTasks+0x8
-_0815F1D4:
- cmp r0, 0x2
- beq _0815F260
- b _0815F29E
-_0815F1DA:
- ldrh r0, [r5, 0x4]
- ldrh r1, [r5, 0x6]
- bl sub_815F564
- ldrh r0, [r5, 0x4]
- ldrh r1, [r5, 0x6]
- movs r3, 0x8
- ldrsh r2, [r5, r3]
- movs r4, 0xA
- ldrsh r3, [r5, r4]
- ldrb r4, [r5, 0xC]
- str r4, [sp]
- bl sub_815F5BC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- ldrh r0, [r5, 0x4]
- ldrh r1, [r5, 0x6]
- movs r3, 0x8
- ldrsh r2, [r5, r3]
- movs r4, 0xA
- ldrsh r3, [r5, r4]
- ldrb r4, [r5, 0xC]
- str r4, [sp]
- adds r4, r5, 0
- adds r4, 0x10
- str r4, [sp, 0x4]
- adds r4, 0x2
- str r4, [sp, 0x8]
- bl sub_815F610
- b _0815F252
-_0815F21C:
- ldrb r0, [r5, 0xE]
- bl sub_815F2AC
- cmp r0, 0
- bne _0815F29E
- ldrb r0, [r5, 0xE]
- ldrb r1, [r5, 0x10]
- ldrb r2, [r5, 0x12]
- bl sub_815F3E0
- movs r0, 0xE
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0815F25C @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- movs r3, 0xE
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_0815F252:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _0815F29E
- .align 2, 0
-_0815F25C: .4byte gSprites
-_0815F260:
- ldrb r0, [r5, 0x10]
- bl sub_815F444
- cmp r0, 0
- bne _0815F29E
- movs r4, 0x10
- ldrsh r1, [r5, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0815F2A8 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0x12
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrh r0, [r5, 0x4]
- bl FreeSpriteTilesByTag
- ldrh r0, [r5, 0x6]
- bl FreeSpritePaletteByTag
- adds r0, r6, 0
- bl DestroyTask
-_0815F29E:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F2A8: .4byte gSprites
- thumb_func_end sub_815F1AC
-
- thumb_func_start sub_815F2AC
-sub_815F2AC: @ 815F2AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0815F2D0 @ =gSprites
- adds r4, r1, r0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _0815F2C6
- b _0815F3D8
-_0815F2C6:
- lsls r0, 2
- ldr r1, _0815F2D4 @ =_0815F2D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0815F2D0: .4byte gSprites
-_0815F2D4: .4byte _0815F2D8
- .align 2, 0
-_0815F2D8:
- .4byte _0815F2F8
- .4byte _0815F30A
- .4byte _0815F330
- .4byte _0815F340
- .4byte _0815F362
- .4byte _0815F39A
- .4byte _0815F3C0
- .4byte _0815F396
-_0815F2F8:
- movs r1, 0x80
- lsls r1, 4
- adds r0, r4, 0
- movs r2, 0x1A
- bl sub_8007FFC
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_0815F30A:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0815F318
- movs r0, 0x32
- bl PlaySE
-_0815F318:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0815F3D8
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- movs r1, 0x1
- b _0815F3B6
-_0815F330:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815F3D8
- b _0815F3BA
-_0815F340:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0815F3D8
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _0815F3D8
-_0815F362:
- ldrh r0, [r4, 0x22]
- subs r0, 0x4
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0815F3D8
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bgt _0815F392
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0815F3BA
-_0815F392:
- movs r0, 0x7
- strh r0, [r4, 0x2E]
-_0815F396:
- movs r0, 0
- b _0815F3DA
-_0815F39A:
- ldrh r0, [r4, 0x22]
- adds r0, 0x4
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0815F3D8
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- movs r1, 0x3
-_0815F3B6:
- bl StartSpriteAffineAnim
-_0815F3BA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- b _0815F3D6
-_0815F3C0:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815F3D8
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r0, 0x1
-_0815F3D6:
- strh r0, [r4, 0x2E]
-_0815F3D8:
- movs r0, 0x1
-_0815F3DA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_815F2AC
-
- thumb_func_start sub_815F3E0
-sub_815F3E0: @ 815F3E0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0815F438 @ =gSprites
- mov r8, r0
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r5, r4, r0
- ldr r0, _0815F43C @ =0x0000ffd8
- strh r0, [r5, 0x26]
- lsls r3, r2, 4
- adds r3, r2
- lsls r3, 2
- mov r1, r8
- adds r2, r3, r1
- strh r0, [r2, 0x26]
- adds r5, 0x3E
- ldrb r6, [r5]
- movs r1, 0x5
- negs r1, r1
- adds r0, r1, 0
- ands r0, r6
- strb r0, [r5]
- adds r2, 0x3E
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _0815F440 @ =sub_815F470
- str r0, [r4]
- add r3, r8
- str r0, [r3]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F438: .4byte gSprites
-_0815F43C: .4byte 0x0000ffd8
-_0815F440: .4byte sub_815F470
- thumb_func_end sub_815F3E0
-
- thumb_func_start sub_815F444
-sub_815F444: @ 815F444
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _0815F468 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, 0x1C
- adds r1, r2
- ldr r1, [r1]
- ldr r0, _0815F46C @ =sub_815F470
- cmp r1, r0
- bne _0815F462
- movs r3, 0x1
-_0815F462:
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0815F468: .4byte gSprites
-_0815F46C: .4byte sub_815F470
- thumb_func_end sub_815F444
-
- thumb_func_start sub_815F470
-sub_815F470: @ 815F470
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x2E
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bhi _0815F55A
- lsls r0, 2
- ldr r1, _0815F48C @ =_0815F490
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0815F48C: .4byte _0815F490
- .align 2, 0
-_0815F490:
- .4byte _0815F4A4
- .4byte _0815F4B4
- .4byte _0815F4DC
- .4byte _0815F510
- .4byte _0815F548
-_0815F4A4:
- movs r0, 0x40
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0x26]
- lsls r0, 4
- strh r0, [r4, 0xA]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0815F4B4:
- ldrh r1, [r4, 0x8]
- ldrh r2, [r4, 0xA]
- adds r0, r1, r2
- strh r0, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x26]
- cmp r0, 0
- blt _0815F55A
- movs r0, 0x32
- bl PlaySE
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0815F55A
-_0815F4DC:
- ldrh r0, [r4, 0x2]
- adds r0, 0xC
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _0815F4FA
- movs r0, 0x32
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0815F4FA:
- ldr r0, _0815F50C @ =gUnknown_825E074
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- lsls r1, 1
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- asrs r0, 4
- b _0815F53E
- .align 2, 0
-_0815F50C: .4byte gUnknown_825E074
-_0815F510:
- ldrh r0, [r4, 0x2]
- adds r0, 0x10
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _0815F52E
- movs r0, 0x32
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0815F52E:
- ldr r1, _0815F544 @ =gUnknown_825E074
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
-_0815F53E:
- negs r0, r0
- strh r0, [r5, 0x26]
- b _0815F55A
- .align 2, 0
-_0815F544: .4byte gUnknown_825E074
-_0815F548:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _0815F55A
- ldr r0, _0815F560 @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
-_0815F55A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F560: .4byte SpriteCallbackDummy
- thumb_func_end sub_815F470
-
- thumb_func_start sub_815F564
-sub_815F564: @ 815F564
- push {r4,lr}
- sub sp, 0x10
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0815F5AC @ =gUnknown_847A79C
- ldr r3, [r2, 0x4]
- ldr r2, [r2]
- str r2, [sp]
- str r3, [sp, 0x4]
- ldr r2, _0815F5B0 @ =gUnknown_847A7A4
- ldr r3, [r2, 0x4]
- ldr r2, [r2]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- lsls r0, 16
- ldr r3, _0815F5B4 @ =0x0000ffff
- ldr r2, [sp, 0x4]
- ands r2, r3
- orrs r2, r0
- str r2, [sp, 0x4]
- ldr r2, _0815F5B8 @ =0xffff0000
- add r4, sp, 0x8
- ldr r0, [r4, 0x4]
- ands r0, r2
- orrs r0, r1
- str r0, [r4, 0x4]
- mov r0, sp
- bl LoadCompressedObjectPic
- adds r0, r4, 0
- bl LoadSpritePalette
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0815F5AC: .4byte gUnknown_847A79C
-_0815F5B0: .4byte gUnknown_847A7A4
-_0815F5B4: .4byte 0x0000ffff
-_0815F5B8: .4byte 0xffff0000
- thumb_func_end sub_815F564
-
- thumb_func_start sub_815F5BC
-sub_815F5BC: @ 815F5BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- mov r12, r3
- ldr r3, [sp, 0x30]
- lsls r1, 16
- lsrs r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- mov r5, sp
- ldr r4, _0815F60C @ =gUnknown_847A860
- ldm r4!, {r3,r6,r7}
- stm r5!, {r3,r6,r7}
- ldm r4!, {r3,r6,r7}
- stm r5!, {r3,r6,r7}
- mov r4, sp
- strh r0, [r4]
- mov r0, sp
- strh r1, [r0, 0x2]
- lsls r2, 16
- asrs r2, 16
- mov r0, r12
- lsls r6, r0, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- mov r3, r8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0815F60C: .4byte gUnknown_847A860
- thumb_func_end sub_815F5BC
-
- thumb_func_start sub_815F610
-sub_815F610: @ 815F610
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r12, r3
- ldr r6, [sp, 0x38]
- ldr r3, [sp, 0x3C]
- mov r9, r3
- ldr r4, [sp, 0x40]
- mov r8, r4
- lsls r1, 16
- lsrs r1, 16
- lsls r6, 24
- lsrs r6, 24
- mov r10, r6
- mov r4, sp
- ldr r3, _0815F6D4 @ =gUnknown_847A878
- ldm r3!, {r5-r7}
- stm r4!, {r5-r7}
- ldm r3!, {r5-r7}
- stm r4!, {r5-r7}
- mov r3, sp
- strh r0, [r3]
- mov r0, sp
- strh r1, [r0, 0x2]
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _0815F6D8 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- mov r1, r12
- lsls r5, r1, 16
- asrs r5, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r5, 0
- mov r3, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r3, r9
- strh r0, [r3]
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r4, r8
- strh r0, [r4]
- ldr r2, _0815F6DC @ =gSprites
- mov r5, r9
- movs r6, 0
- ldrsh r1, [r5, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r0]
- movs r7, 0
- ldrsh r1, [r4, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- movs r0, 0
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- bl StartSpriteAnim
- 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
-_0815F6D4: .4byte gUnknown_847A878
-_0815F6D8: .4byte 0xffe00000
-_0815F6DC: .4byte gSprites
- thumb_func_end sub_815F610
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unknown_task.s b/asm/unknown_task.s
deleted file mode 100644
index 6f417a4a1..000000000
--- a/asm/unknown_task.s
+++ /dev/null
@@ -1,644 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start remove_some_task
-remove_some_task: @ 8087E64
- push {r4,lr}
- ldr r4, _08087E94 @ =gUnknown_2039600
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _08087E98 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _08087E9C @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _08087EA0 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x18]
- cmp r0, 0xFF
- beq _08087E8E
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r4, 0x18]
-_08087E8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087E94: .4byte gUnknown_2039600
-_08087E98: .4byte 0x040000b0
-_08087E9C: .4byte 0x0000c5ff
-_08087EA0: .4byte 0x00007fff
- thumb_func_end remove_some_task
-
- thumb_func_start dp12_8087EA4
-dp12_8087EA4: @ 8087EA4
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r1, _08087ED8 @ =gUnknown_2038700
- ldr r2, _08087EDC @ =0x01000780
- bl CpuSet
- ldr r0, _08087EE0 @ =gUnknown_2039600
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- strb r4, [r0, 0x14]
- strb r4, [r0, 0x15]
- strb r4, [r0, 0x16]
- strb r4, [r0, 0x17]
- movs r1, 0xFF
- strb r1, [r0, 0x18]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087ED8: .4byte gUnknown_2038700
-_08087EDC: .4byte 0x01000780
-_08087EE0: .4byte gUnknown_2039600
- thumb_func_end dp12_8087EA4
-
- thumb_func_start sub_8087EE4
-sub_8087EE4: @ 8087EE4
- push {lr}
- sub sp, 0xC
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, _08087F08 @ =0xa2600001
- cmp r1, r0
- bne _08087F18
- ldr r0, _08087F0C @ =gUnknown_2039600
- ldr r1, _08087F10 @ =gUnknown_2038702
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08087F14 @ =sub_8087FE0
- b _08087F28
- .align 2, 0
-_08087F08: .4byte 0xa2600001
-_08087F0C: .4byte gUnknown_2039600
-_08087F10: .4byte gUnknown_2038702
-_08087F14: .4byte sub_8087FE0
-_08087F18:
- ldr r0, _08087F48 @ =gUnknown_2039600
- ldr r1, _08087F4C @ =gUnknown_2038704
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08087F50 @ =sub_8088000
-_08087F28:
- str r1, [r0, 0x10]
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r1, 0xC]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x8]
- strb r0, [r1, 0x15]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_08087F48: .4byte gUnknown_2039600
-_08087F4C: .4byte gUnknown_2038704
-_08087F50: .4byte sub_8088000
- thumb_func_end sub_8087EE4
-
- thumb_func_start sub_8087F54
-sub_8087F54: @ 8087F54
- push {r4,lr}
- ldr r4, _08087F84 @ =gUnknown_2039600
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _08087FCE
- cmp r0, 0x3
- bne _08087F98
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _08087F88 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _08087F8C @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _08087F90 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r1, _08087F94 @ =gUnknown_203961C
- movs r0, 0x1
- strb r0, [r1]
- b _08087FCE
- .align 2, 0
-_08087F84: .4byte gUnknown_2039600
-_08087F88: .4byte 0x040000b0
-_08087F8C: .4byte 0x0000c5ff
-_08087F90: .4byte 0x00007fff
-_08087F94: .4byte gUnknown_203961C
-_08087F98:
- ldr r1, _08087FD4 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _08087FD8 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _08087FDC @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x14]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r4, 0x8]
- str r0, [r1, 0x4]
- ldr r0, [r4, 0xC]
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, [r4, 0x10]
- bl _call_via_r0
- ldrb r0, [r4, 0x14]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4, 0x14]
-_08087FCE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087FD4: .4byte 0x040000b0
-_08087FD8: .4byte 0x0000c5ff
-_08087FDC: .4byte 0x00007fff
- thumb_func_end sub_8087F54
-
- thumb_func_start sub_8087FE0
-sub_8087FE0: @ 8087FE0
- ldr r0, _08087FF8 @ =gUnknown_2039600
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08087FFC @ =gUnknown_2038700
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_08087FF8: .4byte gUnknown_2039600
-_08087FFC: .4byte gUnknown_2038700
- thumb_func_end sub_8087FE0
-
- thumb_func_start sub_8088000
-sub_8088000: @ 8088000
- ldr r0, _08088018 @ =gUnknown_2039600
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _0808801C @ =gUnknown_2038700
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .align 2, 0
-_08088018: .4byte gUnknown_2039600
-_0808801C: .4byte gUnknown_2038700
- thumb_func_end sub_8088000
-
- thumb_func_start task00_for_dp12
-task00_for_dp12: @ 8088020
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- ldr r0, _08088048 @ =gUnknown_203961C
- ldrb r0, [r0]
- cmp r0, 0
- beq _08088050
- mov r0, r12
- bl DestroyTask
- ldr r1, _0808804C @ =gUnknown_2039600
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- b _080881D0
- .align 2, 0
-_08088048: .4byte gUnknown_203961C
-_0808804C: .4byte gUnknown_2039600
-_08088050:
- ldr r1, _0808807C @ =gTasks
- mov r0, r12
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- mov r10, r1
- mov r9, r2
- cmp r0, 0
- beq _080880FC
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- bhi _080880FC
- lsls r0, 2
- ldr r1, _08088080 @ =_08088084
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808807C: .4byte gTasks
-_08088080: .4byte _08088084
- .align 2, 0
-_08088084:
- .4byte _080880C0
- .4byte _080880FC
- .4byte _080880C8
- .4byte _080880FC
- .4byte _080880D0
- .4byte _080880FC
- .4byte _080880D8
- .4byte _080880FC
- .4byte _080880E0
- .4byte _080880FC
- .4byte _080880E8
- .4byte _080880FC
- .4byte _080880F0
- .4byte _080880FC
- .4byte _080880F8
-_080880C0:
- ldr r0, _080880C4 @ =gUnknown_2022974
- b _080880FA
- .align 2, 0
-_080880C4: .4byte gUnknown_2022974
-_080880C8:
- ldr r0, _080880CC @ =gUnknown_2022976
- b _080880FA
- .align 2, 0
-_080880CC: .4byte gUnknown_2022976
-_080880D0:
- ldr r0, _080880D4 @ =gUnknown_2022978
- b _080880FA
- .align 2, 0
-_080880D4: .4byte gUnknown_2022978
-_080880D8:
- ldr r0, _080880DC @ =gUnknown_202297A
- b _080880FA
- .align 2, 0
-_080880DC: .4byte gUnknown_202297A
-_080880E0:
- ldr r0, _080880E4 @ =gUnknown_202297C
- b _080880FA
- .align 2, 0
-_080880E4: .4byte gUnknown_202297C
-_080880E8:
- ldr r0, _080880EC @ =gUnknown_202297E
- b _080880FA
- .align 2, 0
-_080880EC: .4byte gUnknown_202297E
-_080880F0:
- ldr r0, _080880F4 @ =gUnknown_2022980
- b _080880FA
- .align 2, 0
-_080880F4: .4byte gUnknown_2022980
-_080880F8:
- ldr r0, _0808815C @ =gUnknown_2022982
-_080880FA:
- ldrh r6, [r0]
-_080880FC:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r2, r10
- adds r1, r0, r2
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08088168
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080881D0
- ldr r5, _08088160 @ =gUnknown_2038700
- ldr r0, _08088164 @ =gUnknown_2039600
- mov r8, r0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
-_08088136:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _08088136
- b _080881D0
- .align 2, 0
-_0808815C: .4byte gUnknown_2022982
-_08088160: .4byte gUnknown_2038700
-_08088164: .4byte gUnknown_2039600
-_08088168:
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x10]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080881B0
- ldr r5, _080881E0 @ =gUnknown_2038700
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
- ldr r0, _080881E4 @ =gUnknown_2039600
- mov r8, r0
-_0808818E:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _0808818E
-_080881B0:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r3, r10
- adds r2, r0, r3
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bne _080881D0
- movs r0, 0
- strh r0, [r2, 0xE]
-_080881D0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080881E0: .4byte gUnknown_2038700
-_080881E4: .4byte gUnknown_2039600
- thumb_func_end task00_for_dp12
-
- thumb_func_start sub_80881E8
-sub_80881E8: @ 80881E8
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0
- movs r2, 0
- ldr r0, _0808822C @ =gUnknown_825E074
- mov r12, r0
-_080881FC:
- lsls r0, r1, 1
- adds r3, r0, r6
- lsls r0, r2, 1
- add r0, r12
- movs r7, 0
- ldrsh r0, [r0, r7]
- muls r0, r4
- cmp r0, 0
- bge _08088210
- adds r0, 0xFF
-_08088210:
- asrs r0, 8
- strh r0, [r3]
- adds r0, r2, r5
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _080881FC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808822C: .4byte gUnknown_825E074
- thumb_func_end sub_80881E8
-
- thumb_func_start sub_8088230
-sub_8088230: @ 8088230
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x40]
- mov r8, r0
- ldr r1, [sp, 0x44]
- mov r9, r1
- ldr r0, [sp, 0x48]
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [sp, 0x10]
- lsls r1, 24
- str r1, [sp, 0x14]
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, r3, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl dp12_8087EA4
- ldr r0, _0808833C @ =0x04000010
- add r0, r9
- str r0, [sp]
- ldr r0, _08088340 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- ldr r0, _08088344 @ =task00_for_dp12
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08088348 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x18]
- bl __divsi3
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4, 0xE]
- mov r1, r8
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- mov r3, r9
- strh r3, [r4, 0x14]
- mov r0, r10
- strh r0, [r4, 0x16]
- ldr r0, _0808834C @ =gUnknown_2039600
- strb r7, [r0, 0x18]
- ldr r0, _08088350 @ =gUnknown_203961C
- movs r1, 0
- strb r1, [r0]
- ldr r4, _08088354 @ =gUnknown_2038980
- ldr r3, [sp, 0xC]
- subs r6, r3, r5
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r4, 0
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- bl sub_80881E8
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _0808832A
- ldr r1, _08088358 @ =0xfffffd80
- adds r2, r4, r1
- lsls r1, r5, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r1, r3
- adds r3, r0, r2
- adds r1, r2
- adds r2, r4, 0
- adds r5, r6, 0
-_08088316:
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _08088316
-_0808832A:
- adds r0, r7, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808833C: .4byte 0x04000010
-_08088340: .4byte 0xa2600001
-_08088344: .4byte task00_for_dp12
-_08088348: .4byte gTasks
-_0808834C: .4byte gUnknown_2039600
-_08088350: .4byte gUnknown_203961C
-_08088354: .4byte gUnknown_2038980
-_08088358: .4byte 0xfffffd80
- thumb_func_end sub_8088230
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/util.s b/asm/util.s
deleted file mode 100644
index a3efaa8f2..000000000
--- a/asm/util.s
+++ /dev/null
@@ -1,500 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CreateInvisibleSpriteWithCallback
-CreateInvisibleSpriteWithCallback: @ 8044EF8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _08044F2C @ =gUnknown_825E4DC
- movs r1, 0xF8
- movs r2, 0xA8
- movs r3, 0xE
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08044F30 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r3, r2, r5
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r4, 0x4
- orrs r1, r4
- strb r1, [r3]
- adds r5, 0x1C
- adds r2, r5
- str r6, [r2]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08044F2C: .4byte gUnknown_825E4DC
-_08044F30: .4byte gSprites
- thumb_func_end CreateInvisibleSpriteWithCallback
-
- thumb_func_start StoreWordInTwoHalfwords
-StoreWordInTwoHalfwords: @ 8044F34
- strh r1, [r0]
- lsrs r1, 16
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end StoreWordInTwoHalfwords
-
- thumb_func_start LoadWordFromTwoHalfwords
-LoadWordFromTwoHalfwords: @ 8044F3C
- ldrh r2, [r0]
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- lsls r0, 16
- orrs r2, r0
- str r2, [r1]
- bx lr
- thumb_func_end LoadWordFromTwoHalfwords
-
- thumb_func_start SetBgAffineStruct
-SetBgAffineStruct: @ 8044F4C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r7, [sp, 0x24]
- mov r8, r7
- str r1, [r0]
- str r2, [r0, 0x4]
- strh r3, [r0, 0x8]
- strh r4, [r0, 0xA]
- strh r5, [r0, 0xC]
- strh r6, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetBgAffineStruct
-
- thumb_func_start DoBgAffineSet
-DoBgAffineSet: @ 8044F78
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x24
- mov r8, r0
- ldr r0, [sp, 0x38]
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- ldr r6, [sp, 0x44]
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- asrs r3, 16
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- add r0, sp, 0x10
- bl SetBgAffineStruct
- add r0, sp, 0x10
- mov r1, r8
- movs r2, 0x1
- bl BgAffineSet
- add sp, 0x24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end DoBgAffineSet
-
- thumb_func_start CopySpriteTiles
-CopySpriteTiles: @ 8044FC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r2, [sp, 0x20]
- adds r4, r3, 0
- ldr r7, [sp, 0x5C]
- lsls r0, 24
- lsls r1, 24
- ldr r2, _0804504C @ =gUnknown_825E4F4
- lsrs r1, 23
- lsrs r0, 21
- adds r1, r0
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- str r0, [sp, 0x24]
- adds r1, r2
- ldrb r1, [r1]
- str r1, [sp, 0x28]
- movs r1, 0
- cmp r1, r0
- bcc _08044FF8
- b _0804517A
-_08044FF8:
- movs r0, 0x20
- ldr r2, [sp, 0x28]
- subs r0, r2
- lsls r0, 1
- str r0, [sp, 0x2C]
-_08045002:
- movs r2, 0
- adds r1, 0x1
- str r1, [sp, 0x34]
- ldr r3, [sp, 0x28]
- cmp r2, r3
- bcc _08045010
- b _08045168
-_08045010:
- ldr r0, _08045050 @ =0x040000d4
- mov r8, r0
-_08045014:
- ldrh r1, [r4]
- ldr r0, _08045054 @ =0x000003ff
- ands r0, r1
- lsls r0, 5
- mov r12, r0
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- mov r3, sp
- strh r1, [r3, 0x38]
- cmp r0, 0
- bne _0804505C
- ldr r0, [sp, 0x20]
- add r0, r12
- mov r1, r8
- str r0, [r1]
- str r7, [r1, 0x4]
- ldr r3, _08045058 @ =0x84000008
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, 0x2
- str r4, [sp, 0x30]
- adds r7, 0x20
- mov r10, r7
- adds r2, 0x1
- mov r9, r2
- b _08045156
- .align 2, 0
-_0804504C: .4byte gUnknown_825E4F4
-_08045050: .4byte 0x040000d4
-_08045054: .4byte 0x000003ff
-_08045058: .4byte 0x84000008
-_0804505C:
- movs r1, 0x80
- lsls r1, 4
- cmp r0, r1
- bne _080450AC
- movs r3, 0
- adds r4, 0x2
- str r4, [sp, 0x30]
- movs r0, 0x20
- adds r0, r7
- mov r10, r0
- adds r2, 0x1
- mov r9, r2
- ldr r4, _080450A4 @ =0x040000d4
- ldr r6, _080450A8 @ =0x84000001
- movs r5, 0x7
-_0804507A:
- lsls r2, r3, 24
- asrs r2, 24
- subs r0, r5, r2
- lsls r0, 2
- add r0, r12
- ldr r1, [sp, 0x20]
- adds r0, r1, r0
- lsls r1, r2, 2
- adds r1, r7, r1
- str r0, [r4]
- str r1, [r4, 0x4]
- str r6, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, 0x1
- lsls r2, 24
- lsrs r3, r2, 24
- asrs r2, 24
- cmp r2, 0x7
- ble _0804507A
- b _08045156
- .align 2, 0
-_080450A4: .4byte 0x040000d4
-_080450A8: .4byte 0x84000001
-_080450AC:
- movs r3, 0
- adds r4, 0x2
- str r4, [sp, 0x30]
- movs r0, 0x20
- adds r0, r7
- mov r10, r0
- adds r2, 0x1
- mov r9, r2
-_080450BC:
- movs r2, 0
- lsls r4, r3, 24
- lsls r0, r4, 2
- lsrs r0, 24
- adds r6, r0, 0x3
- mov r1, r12
- adds r5, r1, r0
-_080450CA:
- lsls r1, r2, 24
- asrs r1, 24
- subs r0, r6, r1
- mov r2, sp
- adds r3, r2, r0
- adds r0, r5, r1
- ldr r2, [sp, 0x20]
- adds r0, r2, r0
- ldrb r2, [r0]
- movs r0, 0xF
- ands r0, r2
- lsls r0, 4
- lsrs r2, 4
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x1
- lsls r1, 24
- lsrs r2, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080450CA
- movs r3, 0x80
- lsls r3, 17
- adds r0, r4, r3
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x7
- ble _080450BC
- movs r0, 0x80
- lsls r0, 4
- mov r1, sp
- ldrh r1, [r1, 0x38]
- ands r0, r1
- cmp r0, 0
- beq _08045148
- movs r3, 0
- ldr r4, _08045140 @ =0x040000d4
- ldr r6, _08045144 @ =0x84000001
- movs r5, 0x7
-_08045118:
- lsls r1, r3, 24
- asrs r1, 24
- subs r0, r5, r1
- lsls r0, 2
- mov r3, sp
- adds r2, r3, r0
- lsls r0, r1, 2
- adds r0, r7, r0
- str r2, [r4]
- str r0, [r4, 0x4]
- str r6, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r1, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- asrs r1, 24
- cmp r1, 0x7
- ble _08045118
- b _08045156
- .align 2, 0
-_08045140: .4byte 0x040000d4
-_08045144: .4byte 0x84000001
-_08045148:
- mov r0, sp
- mov r1, r8
- str r0, [r1]
- str r7, [r1, 0x4]
- ldr r2, _0804518C @ =0x84000008
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08045156:
- ldr r4, [sp, 0x30]
- mov r7, r10
- mov r3, r9
- lsls r0, r3, 24
- lsrs r2, r0, 24
- ldr r0, [sp, 0x28]
- cmp r2, r0
- bcs _08045168
- b _08045014
-_08045168:
- ldr r1, [sp, 0x2C]
- adds r4, r1
- ldr r2, [sp, 0x34]
- lsls r0, r2, 24
- lsrs r1, r0, 24
- ldr r3, [sp, 0x24]
- cmp r1, r3
- bcs _0804517A
- b _08045002
-_0804517A:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804518C: .4byte 0x84000008
- thumb_func_end CopySpriteTiles
-
- thumb_func_start CountTrailingZeroBits
-CountTrailingZeroBits: @ 8045190
- push {lr}
- adds r2, r0, 0
- movs r1, 0
- movs r3, 0x1
-_08045198:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _080451A4
- adds r0, r1, 0
- b _080451B2
-_080451A4:
- lsrs r2, 1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _08045198
- movs r0, 0
-_080451B2:
- pop {r1}
- bx r1
- thumb_func_end CountTrailingZeroBits
-
- thumb_func_start CalcCRC16
-CalcCRC16: @ 80451B8
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r4, r1, 0
- ldr r2, _080451E8 @ =0x00001121
- movs r3, 0
- cmp r3, r4
- bcs _08045204
- movs r6, 0x1
- ldr r0, _080451EC @ =0x00008408
- adds r5, r0, 0
-_080451CC:
- adds r0, r7, r3
- ldrb r0, [r0]
- eors r2, r0
- movs r1, 0
- adds r3, 0x1
-_080451D6:
- adds r0, r2, 0
- ands r0, r6
- cmp r0, 0
- beq _080451F0
- lsrs r0, r2, 1
- eors r0, r5
- lsls r0, 16
- lsrs r2, r0, 16
- b _080451F2
- .align 2, 0
-_080451E8: .4byte 0x00001121
-_080451EC: .4byte 0x00008408
-_080451F0:
- lsrs r2, 1
-_080451F2:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _080451D6
- lsls r0, r3, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _080451CC
-_08045204:
- mvns r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CalcCRC16
-
- thumb_func_start CalcCRC16WithTable
-CalcCRC16WithTable: @ 8045210
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r2, _0804524C @ =0x00001121
- movs r3, 0
- cmp r3, r4
- bcs _0804523E
- ldr r6, _08045250 @ =gUnknown_825E50C
-_08045220:
- lsrs r1, r2, 8
- adds r0, r5, r3
- ldrb r0, [r0]
- eors r2, r0
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r6
- ldrh r0, [r0]
- adds r2, r0, 0
- eors r2, r1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _08045220
-_0804523E:
- mvns r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0804524C: .4byte 0x00001121
-_08045250: .4byte gUnknown_825E50C
- thumb_func_end CalcCRC16WithTable
-
- thumb_func_start CalcByteArraySum
-CalcByteArraySum: @ 8045254
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0
- movs r2, 0
- cmp r3, r1
- bcs _0804526C
-_08045260:
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r3, r0
- adds r2, 0x1
- cmp r2, r1
- bcc _08045260
-_0804526C:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CalcByteArraySum
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/water.s b/asm/water.s
new file mode 100644
index 000000000..5518dd33e
--- /dev/null
+++ b/asm/water.s
@@ -0,0 +1,3775 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80AABC0
+sub_80AABC0: @ 80AABC0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080AAC48 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AABE8
+ ldr r1, _080AAC4C @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r5, 0xA]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0xE]
+_080AABE8:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl __modsi3
+ cmp r0, 0x1
+ bne _080AAC30
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x50
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080AAC50 @ =gUnknown_83E5898
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl CreateSprite
+_080AAC30:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _080AAC42
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080AAC42:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAC48: .4byte gTasks
+_080AAC4C: .4byte gBattleAnimArgs
+_080AAC50: .4byte gUnknown_83E5898
+ thumb_func_end sub_80AABC0
+
+ thumb_func_start sub_80AAC54
+sub_80AAC54: @ 80AAC54
+ ldr r1, _080AAC5C @ =sub_80AAC60
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080AAC5C: .4byte sub_80AAC60
+ thumb_func_end sub_80AAC54
+
+ thumb_func_start sub_80AAC60
+sub_80AAC60: @ 80AAC60
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080AAC7E
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x4
+ strh r0, [r2, 0x26]
+_080AAC7E:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AAC92
+ adds r0, r2, 0
+ bl DestroySprite
+_080AAC92:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AAC60
+
+ thumb_func_start sub_80AAC98
+sub_80AAC98: @ 80AAC98
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080AACC0 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AACC8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080AACC4 @ =gBattleAnimArgs
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080AACDA
+ .align 2, 0
+_080AACC0: .4byte gBattleAnimAttacker
+_080AACC4: .4byte gBattleAnimArgs
+_080AACC8:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080AADA0 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+_080AACDA:
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ adds r2, r6, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080AADA4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAD10
+ ldr r1, _080AADA0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080AAD10:
+ ldr r5, _080AADA0 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0xC]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r4, _080AADA8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080AADAC @ =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ strh r4, [r6, 0x38]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldrh r1, [r6, 0x20]
+ subs r1, r0
+ strh r1, [r6, 0x20]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl Cos
+ ldrh r1, [r6, 0x22]
+ subs r1, r0
+ strh r1, [r6, 0x22]
+ ldr r0, _080AADB0 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x4]
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r1, 0x32]
+ ldrb r0, [r5, 0x8]
+ lsls r0, 8
+ strh r0, [r1, 0x34]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r1, 0x36]
+ ldr r1, _080AADB4 @ =sub_80AADB8
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AADA0: .4byte gBattleAnimArgs
+_080AADA4: .4byte gBattleAnimAttacker
+_080AADA8: .4byte gBattleAnimTarget
+_080AADAC: .4byte SpriteCallbackDummy
+_080AADB0: .4byte gSprites
+_080AADB4: .4byte sub_80AADB8
+ thumb_func_end sub_80AAC98
+
+ thumb_func_start sub_80AADB8
+sub_80AADB8: @ 80AADB8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080AAE20 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r7, r0, r2
+ ldrh r4, [r7, 0x36]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrh r0, [r7, 0x34]
+ mov r8, r0
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_80755E0
+ mov r1, r8
+ lsrs r6, r1, 8
+ movs r0, 0x2E
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Sin
+ ldrh r1, [r5, 0x24]
+ adds r0, r1
+ strh r0, [r5, 0x24]
+ movs r0, 0x30
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Cos
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r0, [r7, 0x32]
+ mov r1, r8
+ adds r1, r0
+ strh r1, [r7, 0x34]
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r4, 0
+ beq _080AAE24
+ strh r4, [r7, 0x36]
+ b _080AAE2E
+ .align 2, 0
+_080AAE20: .4byte gSprites
+_080AAE24:
+ ldr r0, _080AAE3C @ =sub_80AAE40
+ str r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl DestroySprite
+_080AAE2E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAE3C: .4byte sub_80AAE40
+ thumb_func_end sub_80AADB8
+
+ thumb_func_start sub_80AAE40
+sub_80AAE40: @ 80AAE40
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r2, [r3]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldr r1, _080AAE60 @ =sub_8074F6C
+ str r1, [r0, 0x1C]
+ ldr r1, _080AAE64 @ =sub_80AAE68
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAE60: .4byte sub_8074F6C
+_080AAE64: .4byte sub_80AAE68
+ thumb_func_end sub_80AAE40
+
+ thumb_func_start sub_80AAE68
+sub_80AAE68: @ 80AAE68
+ push {lr}
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ ldr r1, _080AAE7C @ =sub_8074C44
+ str r1, [r0, 0x1C]
+ ldr r1, _080AAE80 @ =move_anim_8074EE0
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAE7C: .4byte sub_8074C44
+_080AAE80: .4byte move_anim_8074EE0
+ thumb_func_end sub_80AAE68
+
+ thumb_func_start sub_80AAE84
+sub_80AAE84: @ 80AAE84
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080AAEAC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAEB4
+ ldr r1, _080AAEB0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r1, 0
+ b _080AAEBA
+ .align 2, 0
+_080AAEAC: .4byte gBattleAnimAttacker
+_080AAEB0: .4byte gBattleAnimArgs
+_080AAEB4:
+ ldr r0, _080AAF10 @ =gBattleAnimArgs
+ ldrh r6, [r0, 0x4]
+ adds r7, r0, 0
+_080AAEBA:
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080AAF14 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7, 0x6]
+ adds r0, r7
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080AAF18 @ =sub_80AAF1C
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAF10: .4byte gBattleAnimArgs
+_080AAF14: .4byte gBattleAnimTarget
+_080AAF18: .4byte sub_80AAF1C
+ thumb_func_end sub_80AAE84
+
+ thumb_func_start sub_80AAF1C
+sub_80AAF1C: @ 80AAF1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AAF58 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080AAF5C @ =0x0000ffff
+ cmp r1, r0
+ bne _080AAF3E
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+_080AAF3E:
+ adds r0, r4, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAF50
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AAF50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAF58: .4byte gBattleAnimArgs
+_080AAF5C: .4byte 0x0000ffff
+ thumb_func_end sub_80AAF1C
+
+ thumb_func_start sub_80AAF60
+sub_80AAF60: @ 80AAF60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AAF94 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, _080AAF98 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x8]
+ ldr r0, _080AAF9C @ =0x0000279c
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _080AAFA0 @ =sub_80AAFA4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAF94: .4byte gTasks
+_080AAF98: .4byte gBattleAnimArgs
+_080AAF9C: .4byte 0x0000279c
+_080AAFA0: .4byte sub_80AAFA4
+ thumb_func_end sub_80AAF60
+
+ thumb_func_start sub_80AAFA4
+sub_80AAFA4: @ 80AAFA4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AB01C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ mov r12, r1
+ cmp r0, 0x3
+ bne _080AAFF6
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080AB020 @ =gPlttBufferFaded
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ adds r7, r1, 0
+ adds r3, r0, 0x2
+ movs r1, 0x6
+ adds r2, r0, 0
+_080AAFE0:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080AAFE0
+ adds r0, r5, 0x7
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+_080AAFF6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x1E]
+ adds r1, 0x1
+ strh r1, [r0, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _080AB016
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AB016:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB01C: .4byte gTasks
+_080AB020: .4byte gPlttBufferFaded
+ thumb_func_end sub_80AAFA4
+
+ thumb_func_start sub_80AB024
+sub_80AB024: @ 80AB024
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080AB08C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r0, 0xD2
+ lsls r0, 8
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldr r0, _080AB090 @ =gBattleAnimArgs
+ ldrh r2, [r0, 0x6]
+ strh r2, [r5, 0x3C]
+ ldrh r1, [r0, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7F
+ ble _080AB094
+ adds r0, r1, 0
+ subs r0, 0x7F
+ lsls r0, 8
+ strh r0, [r5, 0x3A]
+ negs r0, r2
+ strh r0, [r5, 0x3C]
+ b _080AB098
+ .align 2, 0
+_080AB08C: .4byte gBattleAnimTarget
+_080AB090: .4byte gBattleAnimArgs
+_080AB094:
+ lsls r0, r1, 8
+ strh r0, [r5, 0x3A]
+_080AB098:
+ ldr r1, _080AB0A8 @ =sub_80AB0AC
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB0A8: .4byte sub_80AB0AC
+ thumb_func_end sub_80AB024
+
+ thumb_func_start sub_80AB0AC
+sub_80AB0AC: @ 80AB0AC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AB0C0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AB0C0:
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ asrs r0, 8
+ cmp r0, 0x7F
+ ble _080AB0F0
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ b _080AB0F8
+_080AB0F0:
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x3A]
+ adds r0, r1
+ strh r0, [r4, 0x3A]
+_080AB0F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AB0AC
+
+ thumb_func_start sub_80AB100
+sub_80AB100: @ 80AB100
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AB120 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080AB124 @ =gBattleAnimArgs
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r3, 0xE]
+ ldr r0, _080AB128 @ =sub_80AB12C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080AB120: .4byte gTasks
+_080AB124: .4byte gBattleAnimArgs
+_080AB128: .4byte sub_80AB12C
+ thumb_func_end sub_80AB100
+
+ thumb_func_start sub_80AB12C
+sub_80AB12C: @ 80AB12C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080AB160 @ =gBattleAnimArgs
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0xE]
+ ldr r1, _080AB164 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080AB15A
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080AB15A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB160: .4byte gBattleAnimArgs
+_080AB164: .4byte gTasks
+ thumb_func_end sub_80AB12C
+
+ thumb_func_start sub_80AB168
+sub_80AB168: @ 80AB168
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r7, _080AB1B4 @ =gBattleAnimAttacker
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r6, _080AB1B8 @ =0x0000fff6
+ strh r6, [r4, 0x26]
+ ldrb r0, [r7]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB1C2
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB1BC
+ movs r0, 0xA
+ strh r0, [r4, 0x24]
+ b _080AB1C4
+ .align 2, 0
+_080AB1B4: .4byte gBattleAnimAttacker
+_080AB1B8: .4byte 0x0000fff6
+_080AB1BC:
+ strh r6, [r4, 0x24]
+ subs r0, r5, 0x2
+ b _080AB1C6
+_080AB1C2:
+ strh r6, [r4, 0x24]
+_080AB1C4:
+ adds r0, r5, 0x2
+_080AB1C6:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r0, _080AB1D8 @ =sub_80AB1DC
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB1D8: .4byte sub_80AB1DC
+ thumb_func_end sub_80AB168
+
+ thumb_func_start sub_80AB1DC
+sub_80AB1DC: @ 80AB1DC
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080AB1F2
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AB1F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AB1DC
+
+ thumb_func_start sub_80AB1F8
+sub_80AB1F8: @ 80AB1F8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r5, _080AB2B8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080AB2BC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080AB242
+ ldr r4, _080AB2C0 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AB23A
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080AB242
+_080AB23A:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+_080AB242:
+ ldr r5, _080AB2C0 @ =gBattleAnimArgs
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0
+ bne _080AB256
+ movs r1, 0x1
+_080AB256:
+ ldrb r0, [r5, 0xA]
+ movs r7, 0x1
+ cmp r0, 0
+ bne _080AB260
+ movs r7, 0x3
+_080AB260:
+ adds r0, r6, 0
+ bl sub_8075160
+ ldr r0, _080AB2B8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AB27A
+ ldrh r0, [r5, 0x4]
+ negs r0, r0
+ strh r0, [r5, 0x4]
+_080AB27A:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r4, _080AB2BC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r4]
+ adds r1, r7, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r6, 0x36]
+ ldr r0, _080AB2C4 @ =sub_8075590
+ str r0, [r6, 0x1C]
+ ldr r1, _080AB2C8 @ =DestroyAnimSprite
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB2B8: .4byte gBattleAnimAttacker
+_080AB2BC: .4byte gBattleAnimTarget
+_080AB2C0: .4byte gBattleAnimArgs
+_080AB2C4: .4byte sub_8075590
+_080AB2C8: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AB1F8
+
+ thumb_func_start sub_80AB2CC
+sub_80AB2CC: @ 80AB2CC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r0, _080AB2FC @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x8]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ ldr r0, _080AB300 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080AB304 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB2FC: .4byte gBattleAnimArgs
+_080AB300: .4byte sub_8075590
+_080AB304: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AB2CC
+
+ thumb_func_start sub_80AB308
+sub_80AB308: @ 80AB308
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AB320 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080AB324
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ b _080AB32C
+ .align 2, 0
+_080AB320: .4byte gBattleAnimArgs
+_080AB324:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075160
+_080AB32C:
+ ldr r0, _080AB33C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080AB340 @ =sub_80AB344
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB33C: .4byte gBattleAnimArgs
+_080AB340: .4byte sub_80AB344
+ thumb_func_end sub_80AB308
+
+ thumb_func_start sub_80AB344
+sub_80AB344: @ 80AB344
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080AB384
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AB384:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AB344
+
+ thumb_func_start sub_80AB38C
+sub_80AB38C: @ 80AB38C
+ 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 r10, r0
+ ldr r1, _080AB3FC @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ mov r0, sp
+ bl sub_80752A0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB418
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ ldr r0, _080AB400 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080AB408
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap
+ bl sub_807543C
+ b _080AB42E
+ .align 2, 0
+_080AB3FC: .4byte 0x00003f42
+_080AB400: .4byte gBattleAnimAttacker
+_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap
+_080AB408:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap
+ bl sub_807543C
+ b _080AB42E
+ .align 2, 0
+_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap
+_080AB418:
+ ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80730C0
+_080AB42E:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080AB460 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AB468
+ ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080AB476
+ .align 2, 0
+_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap
+_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet
+_080AB460: .4byte gBattleAnimArgs
+_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette
+_080AB468:
+ ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080AB476:
+ ldr r0, _080AB4E4 @ =sub_80AB79C
+ ldr r4, _080AB4E8 @ =gTasks
+ mov r2, r10
+ lsls r5, r2, 2
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r6, r1, r4
+ ldrb r1, [r6, 0x7]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ mov r9, r0
+ mov r1, r8
+ strh r1, [r6, 0x26]
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r7, r0, r4
+ mov r0, r9
+ strh r0, [r7, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r7, 0xA]
+ strh r0, [r7, 0xC]
+ bl sub_8073788
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080AB4F8
+ ldr r1, _080AB4EC @ =0x0000ffb0
+ adds r0, r1, 0
+ ldr r2, _080AB4F0 @ =gBattle_BG1_X
+ strh r0, [r2]
+ adds r1, 0x20
+ adds r0, r1, 0
+ ldr r2, _080AB4F4 @ =gBattle_BG1_Y
+ strh r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ mov r0, r9
+ strh r0, [r7, 0xE]
+ b _080AB552
+ .align 2, 0
+_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette
+_080AB4E4: .4byte sub_80AB79C
+_080AB4E8: .4byte gTasks
+_080AB4EC: .4byte 0x0000ffb0
+_080AB4F0: .4byte gBattle_BG1_X
+_080AB4F4: .4byte gBattle_BG1_Y
+_080AB4F8:
+ ldr r0, _080AB528 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080AB53C
+ ldr r2, _080AB52C @ =0x0000ff20
+ adds r0, r2, 0
+ ldr r2, _080AB530 @ =gBattle_BG1_X
+ strh r0, [r2]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldr r2, _080AB534 @ =gBattle_BG1_Y
+ strh r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ ldr r0, _080AB538 @ =0x0000ffff
+ strh r0, [r6, 0xA]
+ strh r1, [r7, 0xE]
+ b _080AB552
+ .align 2, 0
+_080AB528: .4byte gBattleAnimAttacker
+_080AB52C: .4byte 0x0000ff20
+_080AB530: .4byte gBattle_BG1_X
+_080AB534: .4byte gBattle_BG1_Y
+_080AB538: .4byte 0x0000ffff
+_080AB53C:
+ ldr r0, _080AB584 @ =gBattle_BG1_X
+ strh r4, [r0]
+ ldr r1, _080AB588 @ =0x0000ffd0
+ adds r0, r1, 0
+ ldr r2, _080AB58C @ =gBattle_BG1_Y
+ strh r0, [r2]
+ ldr r0, _080AB590 @ =0x0000fffe
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r7, 0xE]
+_080AB552:
+ ldr r0, _080AB584 @ =gBattle_BG1_X
+ ldrh r1, [r0]
+ movs r0, 0x14
+ bl SetGpuReg
+ ldr r2, _080AB58C @ =gBattle_BG1_Y
+ ldrh r1, [r2]
+ movs r0, 0x16
+ bl SetGpuReg
+ ldr r1, _080AB594 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080AB598
+ movs r0, 0x30
+ strh r0, [r1, 0x10]
+ movs r0, 0x70
+ b _080AB59C
+ .align 2, 0
+_080AB584: .4byte gBattle_BG1_X
+_080AB588: .4byte 0x0000ffd0
+_080AB58C: .4byte gBattle_BG1_Y
+_080AB590: .4byte 0x0000fffe
+_080AB594: .4byte gTasks
+_080AB598:
+ movs r0, 0
+ strh r0, [r1, 0x10]
+_080AB59C:
+ strh r0, [r1, 0x12]
+ ldr r1, _080AB5C0 @ =gTasks
+ mov r2, r10
+ adds r0, r5, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ ldr r1, _080AB5C4 @ =sub_80AB5C8
+ str r1, [r0]
+ 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
+_080AB5C0: .4byte gTasks
+_080AB5C4: .4byte sub_80AB5C8
+ thumb_func_end sub_80AB38C
+
+ thumb_func_start sub_80AB5C8
+sub_80AB5C8: @ 80AB5C8
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080AB6F4 @ =gBattle_BG1_X
+ ldr r2, _080AB6F8 @ =gBattle_BG1_Y
+ ldr r0, _080AB6FC @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ bl sub_80752A0
+ ldrh r0, [r4, 0xA]
+ ldrh r3, [r4, 0xC]
+ adds r0, r3
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080AB65C
+ ldr r1, _080AB700 @ =gPlttBufferFaded
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r2, 0x6
+ adds r7, r1, 0
+ adds r3, r7, 0
+ mov r4, sp
+_080AB622:
+ ldrb r0, [r4, 0x8]
+ lsls r0, 4
+ adds r1, r2, 0x1
+ adds r0, r1
+ lsls r1, r0, 1
+ adds r1, r3
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080AB622
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+ ldr r1, _080AB6FC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+_080AB65C:
+ ldr r1, _080AB6FC @ =gTasks
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x14]
+ adds r0, 0x1
+ strh r0, [r3, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ adds r4, r1, 0
+ adds r6, r2, 0
+ cmp r0, 0x1
+ ble _080AB6CA
+ movs r0, 0
+ strh r0, [r3, 0x14]
+ ldrh r0, [r3, 0xE]
+ adds r2, r0, 0x1
+ strh r2, [r3, 0xE]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080AB6A6
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+_080AB6A6:
+ movs r1, 0xE
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x36
+ ble _080AB6CA
+ ldrh r2, [r3, 0x10]
+ subs r2, 0x1
+ strh r2, [r3, 0x10]
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+_080AB6CA:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldrh r0, [r0, 0xA]
+ movs r3, 0x1F
+ ands r3, r0
+ cmp r3, 0
+ bne _080AB6EC
+ strh r3, [r2, 0x8]
+ ldr r0, _080AB704 @ =sub_80AB708
+ str r0, [r2]
+_080AB6EC:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB6F4: .4byte gBattle_BG1_X
+_080AB6F8: .4byte gBattle_BG1_Y
+_080AB6FC: .4byte gTasks
+_080AB700: .4byte gPlttBufferFaded
+_080AB704: .4byte sub_80AB708
+ thumb_func_end sub_80AB5C8
+
+ thumb_func_start sub_80AB708
+sub_80AB708: @ 80AB708
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r7, _080AB740 @ =gBattle_BG1_X
+ ldr r0, _080AB744 @ =gBattle_BG1_Y
+ mov r8, r0
+ ldr r6, _080AB748 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AB74C
+ movs r0, 0x1
+ bl sub_8075358
+ movs r0, 0x2
+ bl sub_8075358
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AB78E
+ .align 2, 0
+_080AB740: .4byte gBattle_BG1_X
+_080AB744: .4byte gBattle_BG1_Y
+_080AB748: .4byte gTasks
+_080AB74C:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB760
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080AB760:
+ movs r0, 0
+ strh r0, [r7]
+ mov r1, r8
+ strh r0, [r1]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldr r1, _080AB798 @ =0x0000ffff
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080AB78E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB798: .4byte 0x0000ffff
+ thumb_func_end sub_80AB708
+
+ thumb_func_start sub_80AB79C
+sub_80AB79C: @ 80AB79C
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080AB7C4 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080AB7B8
+ b _080AB8F0
+_080AB7B8:
+ cmp r0, 0x1
+ bgt _080AB7C8
+ cmp r0, 0
+ beq _080AB7D0
+ b _080ABA66
+ .align 2, 0
+_080AB7C4: .4byte gTasks
+_080AB7C8:
+ cmp r0, 0x2
+ bne _080AB7CE
+ b _080AB9BC
+_080AB7CE:
+ b _080ABA66
+_080AB7D0:
+ movs r3, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ ldr r1, _080AB8A0 @ =gScanlineEffectRegBuffers
+ mov r12, r1
+ cmp r3, r0
+ bge _080AB80E
+ mov r7, r12
+ movs r5, 0xF0
+ lsls r5, 3
+ add r5, r12
+ ldr r6, _080AB8A4 @ =0x0000ffff
+_080AB7E8:
+ lsls r2, r3, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r7
+ adds r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080AB7E8
+_080AB80E:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080AB848
+ ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080AB8A4 @ =0x0000ffff
+_080AB826:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080AB826
+_080AB848:
+ ldrh r3, [r4, 0x12]
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ bgt _080AB87E
+ ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080AB8A4 @ =0x0000ffff
+_080AB85C:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ ble _080AB85C
+_080AB87E:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AB8A8
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r3, r12
+ adds r2, r0, r3
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xA]
+ b _080AB8BE
+ .align 2, 0
+_080AB8A0: .4byte gScanlineEffectRegBuffers
+_080AB8A4: .4byte 0x0000ffff
+_080AB8A8:
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r1, r12
+ adds r2, r0, r1
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xC]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xC]
+_080AB8BE:
+ strh r0, [r2]
+ ldr r0, _080AB8E8 @ =0x04000052
+ str r0, [sp]
+ ldr r0, _080AB8EC @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080ABA66
+ .align 2, 0
+_080AB8E8: .4byte 0x04000052
+_080AB8EC: .4byte 0xa2600001
+_080AB8F0:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080AB908
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080AB91C
+ strh r1, [r4, 0x10]
+ b _080AB916
+_080AB908:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080AB91C
+_080AB916:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080AB91C:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080AB950
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
+_080AB92A:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080AB92A
+_080AB950:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080AB984
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
+_080AB962:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080AB962
+_080AB984:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080ABA66
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
+_080AB992:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080AB992
+ b _080ABA66
+ .align 2, 0
+_080AB9B4: .4byte gScanlineEffectRegBuffers
+_080AB9B8: .4byte gScanlineEffect
+_080AB9BC:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080AB9F0
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
+_080AB9CA:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080AB9CA
+_080AB9F0:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080ABA24
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
+_080ABA02:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080ABA02
+_080ABA24:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080ABA50
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
+_080ABA32:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080ABA32
+_080ABA50:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ABA66
+ bl ScanlineEffect_Stop
+ adds r0, r7, 0
+ bl DestroyTask
+_080ABA66:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABA70: .4byte gScanlineEffectRegBuffers
+_080ABA74: .4byte gScanlineEffect
+ thumb_func_end sub_80AB79C
+
+ thumb_func_start sub_80ABA78
+sub_80ABA78: @ 80ABA78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080ABACC @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080ABAD0 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080ABAD4 @ =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080ABABE
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080ABABE:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080ABAD8 @ =sub_80ABADC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABACC: .4byte 0x000003ff
+_080ABAD0: .4byte 0xfffffc00
+_080ABAD4: .4byte 0x000001ff
+_080ABAD8: .4byte sub_80ABADC
+ thumb_func_end sub_80ABA78
+
+ thumb_func_start sub_80ABADC
+sub_80ABADC: @ 80ABADC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080ABB00
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080ABB04
+_080ABB00:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080ABB04:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080ABB22
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080ABB22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ABADC
+
+ thumb_func_start sub_80ABB28
+sub_80ABB28: @ 80ABB28
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080ABB78 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r2, _080ABB7C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x12]
+ bl sub_80ABDC8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80758E0
+ ldr r0, _080ABB80 @ =sub_80ABB84
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABB78: .4byte gTasks
+_080ABB7C: .4byte gSprites
+_080ABB80: .4byte sub_80ABB84
+ thumb_func_end sub_80ABB28
+
+ thumb_func_start sub_80ABB84
+sub_80ABB84: @ 80ABB84
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080ABBAC @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _080ABBA0
+ b _080ABDBE
+_080ABBA0:
+ lsls r0, 2
+ ldr r1, _080ABBB0 @ =_080ABBB4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ABBAC: .4byte gTasks
+_080ABBB0: .4byte _080ABBB4
+ .align 2, 0
+_080ABBB4:
+ .4byte _080ABBD4
+ .4byte _080ABBFA
+ .4byte _080ABC8C
+ .4byte _080ABCC2
+ .4byte _080ABCD6
+ .4byte _080ABCE4
+ .4byte _080ABD64
+ .4byte _080ABDB0
+_080ABBD4:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_80765D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080ABBFA:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080ABC56
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ABC44
+ ldr r2, _080ABC40 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+ b _080ABC56
+ .align 2, 0
+_080ABC40: .4byte gSprites
+_080ABC44:
+ ldr r2, _080ABC84 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080ABC88 @ =0x0000fffd
+ strh r1, [r0, 0x24]
+_080ABC56:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080ABC66
+ b _080ABDBE
+_080ABC66:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076440
+ ldr r2, _080ABC84 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xE]
+ b _080ABDA0
+ .align 2, 0
+_080ABC84: .4byte gSprites
+_080ABC88: .4byte 0x0000fffd
+_080ABC8C:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080ABC9C
+ b _080ABDBE
+_080ABC9C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xE0
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_80765D4
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080ABDA2
+_080ABCC2:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080ABDBE
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080ABDA2
+_080ABCD6:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80ABE4C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080ABCE4:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080ABDBE
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ABD1C
+ ldr r2, _080ABD18 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x2
+ b _080ABD2E
+ .align 2, 0
+_080ABD18: .4byte gSprites
+_080ABD1C:
+ ldr r2, _080ABD60 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+_080ABD2E:
+ strh r1, [r0, 0x26]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080ABDBE
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xE0
+ bl sub_80765D4
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080ABDA2
+ .align 2, 0
+_080ABD60: .4byte gSprites
+_080ABD64:
+ ldr r6, _080ABDAC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080ABDBE
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x22]
+_080ABDA0:
+ strh r5, [r4, 0x10]
+_080ABDA2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080ABDBE
+ .align 2, 0
+_080ABDAC: .4byte gSprites
+_080ABDB0:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080ABDBE
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080ABDBE:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ABB84
+
+ thumb_func_start sub_80ABDC8
+sub_80ABDC8: @ 80ABDC8
+ push {r4,r5,lr}
+ ldr r4, _080ABDEC @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABDFC
+ ldr r1, _080ABDF0 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080ABDF4 @ =gPlayerParty
+ b _080ABE0C
+ .align 2, 0
+_080ABDEC: .4byte gBattleAnimAttacker
+_080ABDF0: .4byte gBattlerPartyIndexes
+_080ABDF4: .4byte gPlayerParty
+_080ABDF8:
+ adds r0, r2, 0
+ b _080ABE3E
+_080ABDFC:
+ ldr r1, _080ABE44 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080ABE48 @ =gEnemyParty
+_080ABE0C:
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsrs r4, 18
+ movs r2, 0
+_080ABE2A:
+ adds r1, r2, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ cmp r3, r0
+ blt _080ABDF8
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080ABE2A
+ movs r0, 0x3
+_080ABE3E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080ABE44: .4byte gBattlerPartyIndexes
+_080ABE48: .4byte gEnemyParty
+ thumb_func_end sub_80ABDC8
+
+ thumb_func_start sub_80ABE4C
+sub_80ABE4C: @ 80ABE4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ ldr r4, _080ABF54 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0xAC
+ ldrb r0, [r4]
+ bl sub_807685C
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldrh r1, [r7, 0xA]
+ movs r0, 0x4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bgt _080ABE9C
+ movs r1, 0x1
+_080ABE9C:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r1, 16
+ mov r10, r8
+ mov r9, r6
+ mov r1, r10
+ lsls r1, 4
+ str r1, [sp, 0xC]
+ mov r1, r9
+ lsls r1, 4
+ str r1, [sp, 0x10]
+ asrs r0, 16
+ mov r8, r0
+_080ABEB6:
+ ldr r0, _080ABF58 @ =gUnknown_83E5AE0
+ mov r1, r10
+ mov r2, r9
+ ldr r3, [sp, 0x8]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r6, r5, 16
+ cmp r2, 0x40
+ beq _080ABF1E
+ ldr r1, _080ABF5C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x30]
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r5, 0x32]
+ mov r0, sp
+ ldrh r0, [r0, 0x10]
+ strh r0, [r5, 0x34]
+ asrs r4, r6, 16
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Cos
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Sin
+ strh r0, [r5, 0x38]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r5, 0x3A]
+ movs r0, 0x2
+ strh r0, [r5, 0x3C]
+ ldrh r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ABF18
+ adds r0, r5, 0
+ bl sub_80ABF60
+_080ABF18:
+ ldrh r0, [r7, 0xC]
+ adds r0, 0x1
+ strh r0, [r7, 0xC]
+_080ABF1E:
+ mov r1, r8
+ lsls r0, r1, 1
+ asrs r1, r6, 16
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ str r1, [sp, 0x4]
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080ABEB6
+ 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
+_080ABF54: .4byte gBattleAnimAttacker
+_080ABF58: .4byte gUnknown_83E5AE0
+_080ABF5C: .4byte gSprites
+ thumb_func_end sub_80ABE4C
+
+ thumb_func_start sub_80ABF60
+sub_80ABF60: @ 80ABF60
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ABF72
+ cmp r0, 0x1
+ beq _080ABFA8
+ b _080AC002
+_080ABF72:
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080ABFA8:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r2, r1, 20
+ strh r2, [r4, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080ABFDE
+ adds r1, r2, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080ABFDE
+ cmp r1, 0x78
+ ble _080AC002
+_080ABFDE:
+ ldr r3, _080AC008 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080AC002:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC008: .4byte gTasks
+ thumb_func_end sub_80ABF60
+
+ thumb_func_start sub_80AC00C
+sub_80AC00C: @ 80AC00C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AC03C @ =gTasks
+ adds r4, r1, r0
+ bl sub_80ABDC8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldr r0, _080AC040 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AC044
+ movs r0, 0x88
+ strh r0, [r4, 0x10]
+ movs r0, 0x28
+ b _080AC04A
+ .align 2, 0
+_080AC03C: .4byte gTasks
+_080AC040: .4byte gBattleAnimAttacker
+_080AC044:
+ movs r0, 0x10
+ strh r0, [r4, 0x10]
+ movs r0, 0x50
+_080AC04A:
+ strh r0, [r4, 0x14]
+ movs r0, 0x62
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x31
+ strh r0, [r4, 0x16]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x5
+ strh r0, [r4, 0x20]
+ ldr r0, _080AC06C @ =sub_80AC070
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC06C: .4byte sub_80AC070
+ thumb_func_end sub_80AC00C
+
+ thumb_func_start sub_80AC070
+sub_80AC070: @ 80AC070
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r7, _080AC094 @ =gTasks
+ adds r4, r0, r7
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080AC098
+ cmp r2, 0x1
+ beq _080AC148
+ b _080AC156
+ .align 2, 0
+_080AC094: .4byte gTasks
+_080AC098:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080AC0AE
+ strh r2, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_80AC160
+_080AC0AE:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AC128
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AC128
+ ldr r5, _080AC13C @ =gBattleAnimArgs
+ movs r1, 0x1
+ mov r8, r1
+ mov r2, r8
+ strh r2, [r5]
+ strh r0, [r5, 0x2]
+ movs r0, 0xC
+ strh r0, [r5, 0x4]
+ ldr r6, _080AC140 @ =sub_80B94B4
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080AC0F8
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080AC144 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080AC0F8:
+ movs r0, 0x3
+ strh r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080AC124
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080AC144 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080AC124:
+ mov r0, r8
+ strh r0, [r4, 0x22]
+_080AC128:
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080AC156
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AC156
+ .align 2, 0
+_080AC13C: .4byte gBattleAnimArgs
+_080AC140: .4byte sub_80B94B4
+_080AC144: .4byte gUnknown_2037EE2
+_080AC148:
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AC156
+ adds r0, r1, 0
+ bl DestroyAnimVisualTask
+_080AC156:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC070
+
+ thumb_func_start sub_80AC160
+sub_80AC160: @ 80AC160
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080AC1EC @ =gSineTable
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x3
+ asrs r0, 4
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080AC1F0 @ =gUnknown_83E5AE0
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080AC1BA
+ ldr r3, _080AC1F4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080AC1F8 @ =sub_80AC204
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x38]
+ strh r6, [r0, 0x3A]
+ movs r1, 0x9
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+_080AC1BA:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x27
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x18]
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ ldr r0, _080AC1FC @ =0x41c64e6d
+ muls r0, r1
+ ldr r1, _080AC200 @ =0x00003039
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ ldrh r1, [r4, 0x10]
+ adds r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC1EC: .4byte gSineTable
+_080AC1F0: .4byte gUnknown_83E5AE0
+_080AC1F4: .4byte gSprites
+_080AC1F8: .4byte sub_80AC204
+_080AC1FC: .4byte 0x41c64e6d
+_080AC200: .4byte 0x00003039
+ thumb_func_end sub_80AC160
+
+ thumb_func_start sub_80AC204
+sub_80AC204: @ 80AC204
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AC29A
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080AC29A
+ ldr r2, _080AC2A0 @ =gTasks
+ movs r3, 0x3A
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x1C]
+ ldr r0, _080AC2A4 @ =gUnknown_83E7C38
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ cmp r0, 0x40
+ beq _080AC294
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080AC2A8 @ =gSprites
+ adds r0, r4
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r3, 0x30
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3C]
+ strh r1, [r0, 0x3C]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080AC2AC @ =sub_80AC2B0
+ str r1, [r0]
+_080AC294:
+ adds r0, r5, 0
+ bl DestroySprite
+_080AC29A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC2A0: .4byte gTasks
+_080AC2A4: .4byte gUnknown_83E7C38
+_080AC2A8: .4byte gSprites
+_080AC2AC: .4byte sub_80AC2B0
+ thumb_func_end sub_80AC204
+
+ thumb_func_start sub_80AC2B0
+sub_80AC2B0: @ 80AC2B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AC31C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080AC31C
+ ldr r3, _080AC324 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080AC31C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC324: .4byte gTasks
+ thumb_func_end sub_80AC2B0
+
+ thumb_func_start sub_80AC328
+sub_80AC328: @ 80AC328
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AC3AC @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080AC3B0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080AC36C
+ movs r1, 0x1
+_080AC36C:
+ strh r1, [r5, 0x16]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC380
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x16]
+_080AC380:
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0x12]
+ movs r2, 0x16
+ ldrsh r1, [r5, r2]
+ lsls r1, 3
+ ldrh r0, [r5, 0x10]
+ subs r0, r1
+ strh r0, [r5, 0x14]
+ ldr r0, _080AC3B4 @ =0x0000ffe0
+ strh r0, [r5, 0x1A]
+ strh r6, [r5, 0xA]
+ strh r6, [r5, 0x8]
+ ldr r0, _080AC3B8 @ =sub_80AC3BC
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC3AC: .4byte gTasks
+_080AC3B0: .4byte gBattleAnimAttacker
+_080AC3B4: .4byte 0x0000ffe0
+_080AC3B8: .4byte sub_80AC3BC
+ thumb_func_end sub_80AC328
+
+ thumb_func_start sub_80AC3BC
+sub_80AC3BC: @ 80AC3BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080AC3E0 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080AC3D6
+ b _080AC4F6
+_080AC3D6:
+ lsls r0, 2
+ ldr r1, _080AC3E4 @ =_080AC3E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AC3E0: .4byte gTasks
+_080AC3E4: .4byte _080AC3E8
+ .align 2, 0
+_080AC3E8:
+ .4byte _080AC404
+ .4byte _080AC414
+ .4byte _080AC42E
+ .4byte _080AC470
+ .4byte _080AC492
+ .4byte _080AC4C0
+ .4byte _080AC4E6
+_080AC404:
+ adds r0, r4, 0
+ bl sub_80AC504
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AC4FC
+ b _080AC4EE
+_080AC414:
+ adds r0, r4, 0
+ bl sub_80AC504
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080AC4FC
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080AC4EE
+_080AC42E:
+ adds r0, r4, 0
+ bl sub_80AC504
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ adds r1, r0
+ movs r2, 0
+ strh r1, [r4, 0x12]
+ adds r1, 0x10
+ lsls r1, 16
+ movs r0, 0x88
+ lsls r0, 17
+ cmp r1, r0
+ bls _080AC4FC
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080AC46C
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ b _080AC4FC
+_080AC46C:
+ strh r2, [r4, 0xA]
+ b _080AC4EE
+_080AC470:
+ adds r0, r4, 0
+ bl sub_80AC504
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080AC4FC
+ b _080AC4EE
+_080AC492:
+ adds r0, r4, 0
+ bl sub_80AC504
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x12]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bls _080AC4FC
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080AC4EE
+_080AC4C0:
+ adds r0, r4, 0
+ bl sub_80AC504
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080AC4FC
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080AC4FC
+_080AC4E6:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AC4FC
+_080AC4EE:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AC4FC
+_080AC4F6:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080AC4FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC3BC
+
+ thumb_func_start sub_80AC504
+sub_80AC504: @ 80AC504
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AC55E
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ ldr r0, _080AC564 @ =gUnknown_83E5AE0
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ movs r3, 0x10
+ ldrsh r2, [r6, r3]
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080AC55E
+ ldr r5, _080AC568 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r6, 0x12]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r6, 0x1A]
+ strh r1, [r0, 0x38]
+ bl sub_8075068
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080AC56C @ =sub_80AC570
+ str r0, [r4]
+ ldrh r0, [r6, 0x18]
+ adds r0, 0x1
+ strh r0, [r6, 0x18]
+_080AC55E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC564: .4byte gUnknown_83E5AE0
+_080AC568: .4byte gSprites
+_080AC56C: .4byte sub_80AC570
+ thumb_func_end sub_80AC504
+
+ thumb_func_start sub_80AC570
+sub_80AC570: @ 80AC570
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC5CA
+ ldrh r0, [r6, 0x24]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrh r0, [r6, 0x26]
+ ldrh r1, [r6, 0x22]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ movs r0, 0x6
+ strh r0, [r6, 0x2E]
+ bl Random
+ movs r4, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r5, _080AC5D0 @ =0x0000fff0
+ adds r1, r5
+ ldrh r0, [r6, 0x20]
+ adds r1, r0
+ strh r1, [r6, 0x32]
+ bl Random
+ ands r4, r0
+ adds r4, r5
+ ldrh r1, [r6, 0x22]
+ adds r4, r1
+ strh r4, [r6, 0x36]
+ bl Random
+ movs r1, 0x7
+ ands r1, r0
+ mvns r1, r1
+ strh r1, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_8075068
+ ldr r0, _080AC5D4 @ =sub_80AC5D8
+ str r0, [r6, 0x1C]
+_080AC5CA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC5D0: .4byte 0x0000fff0
+_080AC5D4: .4byte sub_80AC5D8
+ thumb_func_end sub_80AC570
+
+ thumb_func_start sub_80AC5D8
+sub_80AC5D8: @ 80AC5D8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC614
+ movs r4, 0
+ ldr r6, _080AC61C @ =gTasks
+_080AC5EA:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldr r0, _080AC620 @ =sub_80AC3BC
+ cmp r1, r0
+ bne _080AC60A
+ movs r0, 0x1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x18]
+ subs r0, 0x1
+ strh r0, [r2, 0x18]
+ adds r0, r5, 0
+ bl DestroySprite
+_080AC60A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080AC5EA
+_080AC614:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC61C: .4byte gTasks
+_080AC620: .4byte sub_80AC3BC
+ thumb_func_end sub_80AC5D8
+
+ thumb_func_start sub_80AC624
+sub_80AC624: @ 80AC624
+ ldr r2, _080AC644 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0x30]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0, 0x34]
+ ldr r1, _080AC648 @ =sub_80AC64C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080AC644: .4byte gBattleAnimArgs
+_080AC648: .4byte sub_80AC64C
+ thumb_func_end sub_80AC624
+
+ thumb_func_start sub_80AC64C
+sub_80AC64C: @ 80AC64C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080AC690
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AC690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC64C
+
+ thumb_func_start sub_80AC698
+sub_80AC698: @ 80AC698
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080AC6D0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080AC6D0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC698
+
+ thumb_func_start sub_80AC6D8
+sub_80AC6D8: @ 80AC6D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080AC714 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r1, _080AC718 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080AC71C @ =sub_80AC720
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC714: .4byte gBattleAnimTarget
+_080AC718: .4byte gBattleAnimArgs
+_080AC71C: .4byte sub_80AC720
+ thumb_func_end sub_80AC6D8
+
+ thumb_func_start sub_80AC720
+sub_80AC720: @ 80AC720
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ subs r6, r1, r0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ subs r5, r1, r0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r6
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r5
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080AC778
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80AC798
+_080AC778:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080AC78A
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AC78A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC720
+
+ thumb_func_start sub_80AC798
+sub_80AC798: @ 80AC798
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ lsls r1, 15
+ lsrs r1, 16
+ str r1, [sp]
+ ldrh r1, [r0, 0x24]
+ ldrh r3, [r0, 0x20]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, r5, r0
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl Random
+ negs r4, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0
+ subs r4, 0x5
+ lsls r4, 16
+ lsrs r7, r4, 16
+ movs r6, 0
+ mov r0, r8
+ lsls r0, 16
+ mov r8, r0
+ mov r1, r10
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ ldr r2, [sp]
+ lsls r2, 16
+ str r2, [sp, 0x10]
+ asrs r1, 16
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ str r0, [sp, 0x14]
+ negs r3, r5
+ str r3, [sp, 0x4]
+ asrs r0, r2, 16
+ adds r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080AC826:
+ ldr r0, _080AC868 @ =gUnknown_83E5B88
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080AC86C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080AC870 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ bge _080AC874
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r4, 0x32]
+ b _080AC876
+ .align 2, 0
+_080AC868: .4byte gUnknown_83E5B88
+_080AC86C: .4byte gSprites
+_080AC870: .4byte gBattleAnimAttacker
+_080AC874:
+ strh r7, [r4, 0x32]
+_080AC876:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080AC826
+ movs r6, 0
+ ldr r3, [sp, 0xC]
+ asrs r1, r3, 16
+ ldr r0, [sp, 0x14]
+ asrs r5, r0, 16
+ negs r2, r5
+ str r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ asrs r0, r3, 16
+ subs r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080AC89C:
+ ldr r0, _080AC8E0 @ =gUnknown_83E5B88
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080AC8E4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080AC8E8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ ble _080AC8EC
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ b _080AC8EE
+ .align 2, 0
+_080AC8E0: .4byte gUnknown_83E5B88
+_080AC8E4: .4byte gSprites
+_080AC8E8: .4byte gBattleAnimAttacker
+_080AC8EC:
+ strh r7, [r4, 0x32]
+_080AC8EE:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080AC89C
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC798
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index 67c159abc..21b97c942 100644
--- a/asm/wild_encounter.s
+++ b/asm/wild_encounter.s
@@ -482,7 +482,7 @@ _08082A8E:
lsrs r0, 16
orrs r4, r0
adds r0, r4, 0
- bl sub_8082AB8
+ bl GetUnownLetterByPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, r5
@@ -493,8 +493,8 @@ _08082A8E:
bx r1
thumb_func_end sub_8082A88
- thumb_func_start sub_8082AB8
-sub_8082AB8: @ 8082AB8
+ thumb_func_start GetUnownLetterByPersonality
+GetUnownLetterByPersonality: @ 8082AB8
push {lr}
adds r2, r0, 0
movs r0, 0xC0
@@ -520,7 +520,7 @@ sub_8082AB8: @ 8082AB8
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end sub_8082AB8
+ thumb_func_end GetUnownLetterByPersonality
thumb_func_start sub_8082AEC
sub_8082AEC: @ 8082AEC
diff --git a/asm/wild_pokemon_area.s b/asm/wild_pokemon_area.s
index 26c908a14..71d8ac8dc 100644
--- a/asm/wild_pokemon_area.s
+++ b/asm/wild_pokemon_area.s
@@ -221,13 +221,13 @@ sub_813CB5C: @ 813CB5C
ldr r0, _0813CBBC @ =gUnknown_84642F4
lsls r4, 2
adds r4, r0
- bl sub_80CBDB0
+ bl ScrSpecial_GetStarter
ldrh r1, [r4, 0x2]
lsls r0, 16
lsrs r0, 16
cmp r1, r0
bne _0813CBC4
- bl sub_8142044
+ bl GetRoamerLocationMapSectionId
lsls r0, 16
lsrs r0, 16
movs r1, 0
diff --git a/asm/wireless_communication_status_screen.s b/asm/wireless_communication_status_screen.s
deleted file mode 100644
index b4aecb9a5..000000000
--- a/asm/wireless_communication_status_screen.s
+++ /dev/null
@@ -1,868 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_814F19C
-sub_814F19C: @ 814F19C
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814F1BC
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
-_0814F1BC:
- pop {r0}
- bx r0
- thumb_func_end sub_814F19C
-
- thumb_func_start sub_814F1C0
-sub_814F1C0: @ 814F1C0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_814F1C0
-
- thumb_func_start sub_814F1D4
-sub_814F1D4: @ 814F1D4
- push {lr}
- ldr r0, _0814F1E0 @ =sub_814F1E4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0814F1E0: .4byte sub_814F1E4
- thumb_func_end sub_814F1D4
-
- thumb_func_start sub_814F1E4
-sub_814F1E4: @ 814F1E4
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r5, _0814F308 @ =gUnknown_3002040
- movs r0, 0x6C
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0814F30C @ =gUnknown_846FA74
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, _0814F310 @ =gUnknown_846F6D0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl sub_80F696C
- ldr r1, _0814F314 @ =gUnknown_846F8E0
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r0, _0814F318 @ =gUnknown_846FA7C
- bl InitWindows
- bl DeactivateAllTextPrinters
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl remove_some_task
- bl m4aSoundVSyncOn
- ldr r0, _0814F31C @ =sub_814F1C0
- bl SetVBlankCallback
- ldr r0, _0814F320 @ =sub_814F46C
- movs r1, 0
- bl CreateTask
- ldr r1, [r5]
- adds r1, 0x60
- strb r0, [r1]
- bl sub_8116DE0
- ldr r1, [r5]
- adds r1, 0x61
- strb r0, [r1]
- ldr r1, [r5]
- movs r0, 0x1
- str r0, [r1, 0x1C]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r0, _0814F324 @ =gUnknown_846F4D0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0xF0
- bl sub_80F77CC
- bl UnkTextUtil_Reset
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, _0814F328 @ =sub_814F19C
- bl SetMainCallback2
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814F308: .4byte gUnknown_3002040
-_0814F30C: .4byte gUnknown_846FA74
-_0814F310: .4byte gUnknown_846F6D0
-_0814F314: .4byte gUnknown_846F8E0
-_0814F318: .4byte gUnknown_846FA7C
-_0814F31C: .4byte sub_814F1C0
-_0814F320: .4byte sub_814F46C
-_0814F324: .4byte gUnknown_846F4D0
-_0814F328: .4byte sub_814F19C
- thumb_func_end sub_814F1E4
-
- thumb_func_start sub_814F32C
-sub_814F32C: @ 814F32C
- push {r4,lr}
- bl FreeAllWindowBuffers
- movs r4, 0
-_0814F334:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBgTilemapBuffer
- bl Free
- adds r4, 0x1
- cmp r4, 0x1
- ble _0814F334
- ldr r0, _0814F35C @ =gUnknown_3002040
- ldr r0, [r0]
- bl Free
- ldr r0, _0814F360 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814F35C: .4byte gUnknown_3002040
-_0814F360: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_814F32C
-
- thumb_func_start sub_814F364
-sub_814F364: @ 814F364
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0814F38C
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _0814F388
- movs r0, 0
- strh r0, [r1]
-_0814F388:
- movs r0, 0
- strh r0, [r2]
-_0814F38C:
- movs r2, 0
- ldrsh r0, [r1, r2]
- adds r0, 0x2
- lsls r0, 5
- ldr r1, _0814F3A4 @ =gUnknown_846F4D0
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_0814F3A4: .4byte gUnknown_846F4D0
- thumb_func_end sub_814F364
-
- thumb_func_start sub_814F3A8
-sub_814F3A8: @ 814F3A8
- push {r4,r5,lr}
- sub sp, 0x8
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, _0814F468 @ =gUnknown_846FAAC
- ldr r4, [r5]
- movs r0, 0x3
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r3, 0xC0
- subs r3, r0
- lsrs r3, 1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x6
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_814F65C
- movs r1, 0
-_0814F3F0:
- adds r4, r1, 0x1
- lsls r0, r4, 2
- adds r0, r5
- ldr r2, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 25
- movs r1, 0xA0
- lsls r1, 20
- adds r0, r1
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r1, 0x3
- movs r3, 0
- bl sub_814F65C
- adds r1, r4, 0
- cmp r4, 0x2
- ble _0814F3F0
- ldr r1, _0814F468 @ =gUnknown_846FAAC
- adds r0, r4, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 25
- movs r1, 0xA0
- lsls r1, 20
- adds r0, r1
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x3
- movs r3, 0
- bl sub_814F65C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814F468: .4byte gUnknown_846FAAC
- thumb_func_end sub_814F3A8
-
- thumb_func_start sub_814F46C
-sub_814F46C: @ 814F46C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0814F498 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x5
- bls _0814F48E
- b _0814F648
-_0814F48E:
- lsls r0, 2
- ldr r1, _0814F49C @ =_0814F4A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814F498: .4byte gTasks
-_0814F49C: .4byte _0814F4A0
- .align 2, 0
-_0814F4A0:
- .4byte _0814F4B8
- .4byte _0814F4D4
- .4byte _0814F4F8
- .4byte _0814F514
- .4byte _0814F608
- .4byte _0814F630
-_0814F4B8:
- bl sub_814F3A8
- ldr r0, _0814F4D0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0814F648
- .align 2, 0
-_0814F4D0: .4byte gTasks
-_0814F4D4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x1
- bl ShowBg
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- bl ShowBg
- b _0814F618
-_0814F4F8:
- ldr r0, _0814F510 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0814F506
- b _0814F648
-_0814F506:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- b _0814F622
- .align 2, 0
-_0814F510: .4byte gPaletteFade
-_0814F514:
- ldr r0, _0814F570 @ =gUnknown_3002040
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x10
- adds r2, r0, 0
- adds r2, 0x20
- adds r3, r0, 0
- adds r3, 0x61
- ldrb r3, [r3]
- bl sub_814F7E4
- lsls r1, r5, 2
- mov r8, r1
- cmp r0, 0
- beq _0814F5A4
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r4, 0
- ldr r6, _0814F574 @ =gStringVar4
- movs r7, 0xA0
- lsls r7, 20
-_0814F542:
- ldr r0, _0814F570 @ =gUnknown_3002040
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- cmp r4, 0x3
- beq _0814F578
- lsrs r0, r7, 24
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0x3
- adds r2, r6, 0
- movs r3, 0x4
- bl sub_814F65C
- b _0814F58A
- .align 2, 0
-_0814F570: .4byte gUnknown_3002040
-_0814F574: .4byte gStringVar4
-_0814F578:
- movs r0, 0x64
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r1, 0x3
- adds r2, r6, 0
- movs r3, 0x4
- bl sub_814F65C
-_0814F58A:
- movs r2, 0xF0
- lsls r2, 21
- adds r7, r2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0814F542
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
-_0814F5A4:
- ldr r0, _0814F5F8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0814F5B8
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0814F5E2
-_0814F5B8:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0814F5FC @ =gTasks
- ldr r0, _0814F600 @ =gUnknown_3002040
- ldr r0, [r0]
- adds r0, 0x61
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0xFF
- strh r1, [r0, 0x26]
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0814F5E2:
- mov r2, r8
- adds r1, r2, r5
- lsls r1, 3
- ldr r0, _0814F604 @ =gTasks+0x8
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0xE
- adds r1, 0x10
- bl sub_814F364
- b _0814F648
- .align 2, 0
-_0814F5F8: .4byte gMain
-_0814F5FC: .4byte gTasks
-_0814F600: .4byte gUnknown_3002040
-_0814F604: .4byte gTasks+0x8
-_0814F608:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0814F618:
- ldr r1, _0814F62C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
-_0814F622:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _0814F648
- .align 2, 0
-_0814F62C: .4byte gTasks
-_0814F630:
- ldr r0, _0814F654 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0814F648
- ldr r0, _0814F658 @ =sub_814F32C
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0814F648:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814F654: .4byte gPaletteFade
-_0814F658: .4byte sub_814F32C
- thumb_func_end sub_814F46C
-
- thumb_func_start sub_814F65C
-sub_814F65C: @ 814F65C
- push {r4-r7,lr}
- sub sp, 0x18
- mov r12, r2
- ldr r2, [sp, 0x2C]
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r2, 24
- lsrs r3, r2, 24
- lsls r4, 24
- lsrs r0, r4, 24
- cmp r0, 0x4
- bhi _0814F6E6
- lsls r0, 2
- ldr r1, _0814F688 @ =_0814F68C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814F688: .4byte _0814F68C
- .align 2, 0
-_0814F68C:
- .4byte _0814F6A0
- .4byte _0814F6AE
- .4byte _0814F6BC
- .4byte _0814F6CA
- .4byte _0814F6D8
-_0814F6A0:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- movs r0, 0x3
- b _0814F6E4
-_0814F6AE:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x3
- b _0814F6E4
-_0814F6BC:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- movs r0, 0x5
- b _0814F6E4
-_0814F6CA:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- movs r0, 0x6
- b _0814F6E4
-_0814F6D8:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
-_0814F6E4:
- strb r0, [r1, 0x2]
-_0814F6E6:
- negs r0, r5
- orrs r0, r5
- lsrs r0, 31
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- add r0, sp, 0x14
- str r0, [sp, 0x8]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0xC]
- mov r0, r12
- str r0, [sp, 0x10]
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl AddTextPrinterParametrized2
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_814F65C
-
- thumb_func_start sub_814F714
-sub_814F714: @ 814F714
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r12, r0
- adds r7, r1, 0
- ldrb r0, [r0, 0xA]
- lsls r0, 25
- lsrs r0, 25
- mov r8, r0
- movs r4, 0
- ldr r0, _0814F78C @ =gUnknown_846FAC0
- mov r9, r0
- movs r1, 0x1
- add r1, r9
- mov r10, r1
- mov r3, r12
- adds r3, 0x4
- str r3, [sp]
-_0814F73E:
- lsls r0, r4, 1
- adds r2, r0, r4
- mov r3, r9
- adds r1, r2, r3
- adds r5, r0, 0
- adds r6, r4, 0x1
- ldrb r1, [r1]
- cmp r8, r1
- bne _0814F7A2
- mov r0, r12
- ldrb r1, [r0, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0814F7A2
- mov r0, r9
- adds r0, 0x2
- adds r3, r2, r0
- ldrb r0, [r3]
- cmp r0, 0
- bne _0814F790
- movs r2, 0
- movs r1, 0
- ldr r3, [sp]
-_0814F76E:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0814F778
- adds r2, 0x1
-_0814F778:
- adds r1, 0x1
- cmp r1, 0x3
- ble _0814F76E
- adds r2, 0x1
- adds r0, r5, r4
- add r0, r10
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r7
- b _0814F79C
- .align 2, 0
-_0814F78C: .4byte gUnknown_846FAC0
-_0814F790:
- mov r1, r10
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r3]
-_0814F79C:
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
-_0814F7A2:
- adds r4, r6, 0
- cmp r4, 0x16
- bls _0814F73E
- mov r0, r8
- 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_814F714
-
- thumb_func_start sub_814F7BC
-sub_814F7BC: @ 814F7BC
- push {r4,lr}
- movs r4, 0
- adds r3, r1, 0
- adds r2, r0, 0
-_0814F7C4:
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- beq _0814F7D0
- movs r0, 0x1
- b _0814F7DC
-_0814F7D0:
- adds r3, 0x4
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _0814F7C4
- movs r0, 0
-_0814F7DC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814F7BC
-
- thumb_func_start sub_814F7E4
-sub_814F7E4: @ 814F7E4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- adds r5, r2, 0
- lsls r4, r3, 24
- lsrs r4, 24
- movs r0, 0
- mov r8, r0
- mov r0, sp
- movs r1, 0
- movs r2, 0x10
- bl memset
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0814F84C @ =gTasks+0x8
- adds r7, r0, r1
- movs r4, 0
-_0814F812:
- lsls r1, r4, 5
- ldr r0, [r7]
- adds r0, r1
- mov r1, sp
- bl sub_814F714
- adds r1, r0, 0
- ldr r0, [r5]
- cmp r1, r0
- beq _0814F82C
- str r1, [r5]
- movs r2, 0x1
- mov r8, r2
-_0814F82C:
- adds r5, 0x4
- adds r4, 0x1
- cmp r4, 0xF
- ble _0814F812
- mov r0, sp
- mov r1, r9
- bl sub_814F7BC
- cmp r0, 0
- bne _0814F850
- mov r3, r8
- cmp r3, 0x1
- beq _0814F874
- movs r0, 0
- b _0814F876
- .align 2, 0
-_0814F84C: .4byte gTasks+0x8
-_0814F850:
- adds r1, r6, 0
- mov r0, sp
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- mov r1, r9
- mov r0, sp
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- adds r0, r1
- ldr r1, [r6, 0x8]
- adds r0, r1
- str r0, [r6, 0xC]
-_0814F874:
- movs r0, 0x1
-_0814F876:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_814F7E4
-
- .align 2, 0 @ Don't pad with nop.