summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-07-29 21:10:54 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-07-29 21:10:54 -0400
commite130a00cdf69c58dbff8e98a69559aeb33f87b60 (patch)
treee128e502a2229f5d934f0436a0eb31dc86350bbb /asm
parentef4c86fbfdd18b78700f61b629907a85579197c0 (diff)
parentd4cc0e161bf103d3d3e01fefa02e867d4a2053c2 (diff)
Merge branch 'master' into slot_machine
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_1.s12
-rw-r--r--asm/battle_2.s78
-rw-r--r--asm/battle_anim.s198
-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)644
-rw-r--r--asm/battle_anim_mons.s (renamed from asm/battle_anim_8074480.s)238
-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)24
-rw-r--r--asm/battle_anim_utility_funcs.s5133
-rw-r--r--asm/battle_controller_link_opponent.s80
-rw-r--r--asm/battle_controller_link_partner.s80
-rw-r--r--asm/battle_controller_oak.s72
-rw-r--r--asm/battle_controller_opponent.s80
-rw-r--r--asm/battle_controller_player.s114
-rw-r--r--asm/battle_controller_pokedude.s80
-rw-r--r--asm/battle_controller_safari.s12
-rw-r--r--asm/battle_controllers.s4
-rw-r--r--asm/battle_gfx_sfx_util.s84
-rw-r--r--asm/battle_interface.s12
-rw-r--r--asm/battle_message.s2
-rw-r--r--asm/battle_records.s1398
-rw-r--r--asm/battle_script_commands.s34
-rw-r--r--asm/battle_setup.s66
-rw-r--r--asm/battle_tower.s26
-rw-r--r--asm/battle_transition.s2
-rw-r--r--asm/battle_util.s2
-rw-r--r--asm/berry_crush.s2
-rw-r--r--asm/berry_crush_2.s16
-rw-r--r--asm/berry_crush_3.s72
-rw-r--r--asm/berry_fix_program.s344
-rw-r--r--asm/berry_pouch.s186
-rw-r--r--asm/bike.s12
-rw-r--r--asm/braille_text.s8
-rw-r--r--asm/bug.s829
-rw-r--r--asm/buy_menu_helpers.s220
-rw-r--r--asm/cable_car_util.s162
-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/credits.s20
-rw-r--r--asm/dark.s2323
-rw-r--r--asm/decompress.s887
-rw-r--r--asm/diploma.s607
-rw-r--r--asm/dodrio_berry_picking.s34
-rw-r--r--asm/dragon.s835
-rw-r--r--asm/egg_hatch.s8
-rw-r--r--asm/electric.s2675
-rw-r--r--asm/ereader_helpers.s920
-rw-r--r--asm/evolution_graphics.s2
-rw-r--r--asm/evolution_scene.s4
-rw-r--r--asm/field_camera.s6
-rw-r--r--asm/field_control_avatar.s24
-rw-r--r--asm/field_effect.s166
-rw-r--r--asm/field_fadetransition.s68
-rw-r--r--asm/field_map_obj.s54
-rw-r--r--asm/field_message_box.s10
-rw-r--r--asm/field_player_avatar.s82
-rw-r--r--asm/field_poison.s316
-rw-r--r--asm/field_screen_effect.s2
-rw-r--r--asm/field_special_scene.s39
-rw-r--r--asm/field_specials.s48
-rw-r--r--asm/field_weather.s6
-rw-r--r--asm/fighting.s1746
-rw-r--r--asm/fire.s2500
-rw-r--r--asm/fldeff_cut.s10
-rw-r--r--asm/fldeff_poison.s98
-rw-r--r--asm/fldeff_softboiled.s366
-rw-r--r--asm/fldeff_strength.s111
-rw-r--r--asm/fldeff_sweetscent.s262
-rw-r--r--asm/flying.s2945
-rw-r--r--asm/ghost.s4054
-rw-r--r--asm/ground.s1787
-rw-r--r--asm/hall_of_fame.s56
-rw-r--r--asm/help_system.s2254
-rw-r--r--asm/help_system_812B1E0.s1761
-rw-r--r--asm/hof_pc.s118
-rw-r--r--asm/ice.s3099
-rw-r--r--asm/intro.s4841
-rw-r--r--asm/item.s1853
-rw-r--r--asm/item_menu.s280
-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.s2
-rw-r--r--asm/learn_move.s22
-rw-r--r--asm/link.s16
-rw-r--r--asm/link_rfu.s8
-rw-r--r--asm/link_rfu_2.s2
-rw-r--r--asm/link_rfu_3.s154
-rw-r--r--asm/list_menu.s2019
-rw-r--r--asm/mail.s14
-rw-r--r--asm/mail_data.s626
-rw-r--r--asm/mailbox_pc.s8
-rw-r--r--asm/main_menu.s32
-rw-r--r--asm/map_preview_screen.s10
-rw-r--r--asm/menu.s3455
-rw-r--r--asm/menu_helpers.s628
-rw-r--r--asm/menu_indicators.s1185
-rw-r--r--asm/multiboot.s924
-rw-r--r--asm/naming_screen.s10
-rw-r--r--asm/new_game.s10
-rw-r--r--asm/new_menu_helpers.s2497
-rw-r--r--asm/normal.s1978
-rw-r--r--asm/option_menu.s6
-rw-r--r--asm/overworld.s124
-rw-r--r--asm/party_menu.s350
-rw-r--r--asm/play_time.s137
-rw-r--r--asm/player_pc.s70
-rw-r--r--asm/poison.s326
-rw-r--r--asm/pokeball.s36
-rw-r--r--asm/pokedex.s6
-rw-r--r--asm/pokedex_area_markers.s2
-rw-r--r--asm/pokedex_screen.s48
-rw-r--r--asm/pokemon_3.s1228
-rw-r--r--asm/pokemon_icon.s14
-rw-r--r--asm/pokemon_jump.s2
-rw-r--r--asm/pokemon_jump_2.s60
-rw-r--r--asm/pokemon_special_anim.s48
-rw-r--r--asm/pokemon_storage_system.s106
-rw-r--r--asm/pokemon_summary_screen.s144
-rw-r--r--asm/post_battle_event_funcs.s2
-rw-r--r--asm/psychic.s2180
-rw-r--r--asm/region_map.s20
-rw-r--r--asm/reset_save_heap.s68
-rw-r--r--asm/reshow_battle_screen.s14
-rw-r--r--asm/rock.s1558
-rw-r--r--asm/rom6.s459
-rw-r--r--asm/safari_zone.s167
-rw-r--r--asm/save_failed_screen.s34
-rw-r--r--asm/save_location.s222
-rw-r--r--asm/script_menu.s72
-rw-r--r--asm/script_movement.s4
-rw-r--r--asm/script_pokemon_util_80A0058.s8
-rw-r--r--asm/script_pokemon_util_80BF8FC.s4
-rw-r--r--asm/shop.s116
-rw-r--r--asm/slot_machine.s4
-rw-r--r--asm/smokescreen.s4
-rw-r--r--asm/ss_anne.s408
-rw-r--r--asm/start_menu.s78
-rw-r--r--asm/teachy_tv.s2912
-rw-r--r--asm/title_screen.s34
-rw-r--r--asm/trade.s32
-rw-r--r--asm/trainer_card.s94
-rw-r--r--asm/trainer_see.s56
-rw-r--r--asm/union_room_chat.s68
-rw-r--r--asm/unk_815EDDC.s407
-rw-r--r--asm/unk_815F138.s753
-rw-r--r--asm/unk_text_util.s130
-rw-r--r--asm/water.s3775
-rw-r--r--asm/wild_encounter.s14
154 files changed, 58290 insertions, 101734 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index c479650a7..310d1a791 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
@@ -257,7 +257,7 @@ sub_800F380: @ 800F380
movs r0, 0
movs r1, 0x30
movs r2, 0x70
- bl sub_814FEAC
+ bl TextWindow_LoadResourcesStdFrame0
adds r0, r4, 0
adds r0, 0xEC
movs r1, 0
@@ -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
@@ -1197,7 +1197,7 @@ sub_800FAE0: @ 800FAE0
ldr r0, _0800FB8C @ =gBattle_BG2_Y
strh r1, [r0]
ldr r0, _0800FB90 @ =gUnknown_8248318
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0800FC26
.align 2, 0
_0800FB64: .4byte gBattleTypeFlags
diff --git a/asm/battle_2.s b/asm/battle_2.s
index b4414ad71..3fdaeca33 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -1132,7 +1132,7 @@ _0801067E:
adds r1, r0
ldrh r0, [r1]
strh r0, [r2, 0x10]
- bl sub_8044708
+ bl SetDeoxysStats
ldr r1, _080106F0 @ =gUnknown_2023E82
b _080108B2
.align 2, 0
@@ -1834,7 +1834,7 @@ _08010CE2:
adds r1, r7, 0
bl sub_8010414
bl sub_801017C
- bl sub_8044708
+ bl SetDeoxysStats
ldr r0, _08010D4C @ =gDecompressionBuffer
ldr r1, _08010D50 @ =gPlayerParty
movs r2, 0x96
@@ -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
@@ -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
@@ -6570,7 +6570,7 @@ _080131F6:
add r1, r10
ldr r2, [r1]
movs r1, 0x2
- bl sub_8044898
+ bl HandleSetPokedexFlag
b _080132C2
.align 2, 0
_08013230: .4byte gBaseStats
@@ -6609,7 +6609,7 @@ _0801324C:
add r1, r10
ldr r2, [r1]
movs r1, 0x2
- bl sub_8044898
+ bl HandleSetPokedexFlag
b _080132B4
_0801328E:
ldr r0, _08013324 @ =0x0001aa02
@@ -6628,7 +6628,7 @@ _0801328E:
add r1, r10
ldr r2, [r1]
movs r1, 0x2
- bl sub_8044898
+ bl HandleSetPokedexFlag
_080132B4:
movs r0, 0
bl EmitLoadMonSprite
@@ -7097,7 +7097,7 @@ _0801364C:
adds r1, r7
ldr r2, [r1]
movs r1, 0x2
- bl sub_8044898
+ bl HandleSetPokedexFlag
_08013684:
ldrb r0, [r4]
adds r0, 0x1
@@ -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
@@ -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
@@ -13497,7 +13497,7 @@ sub_8016AC0: @ 8016AC0
strh r1, [r0]
ldr r0, _08016B08 @ =gBattle_BG0_Y
strh r1, [r0]
- ldr r1, _08016B0C @ =gUnknown_2039994
+ ldr r1, _08016B0C @ =gNumSafariBalls
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -13518,7 +13518,7 @@ _08016AFC: .4byte gUnknown_2023BDE
_08016B00: .4byte gUnknown_2023BE2
_08016B04: .4byte gBattle_BG0_X
_08016B08: .4byte gBattle_BG0_Y
-_08016B0C: .4byte gUnknown_2039994
+_08016B0C: .4byte gNumSafariBalls
_08016B10: .4byte gUnknown_2023D68
_08016B14: .4byte gUnknown_2023D74
_08016B18: .4byte gUnknown_81D99B0
@@ -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
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index f65b9b705..9aa80db64 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
@@ -483,11 +483,11 @@ ScriptCmd_loadspritegfx: @ 8072868
lsls r5, r4, 3
ldr r0, _080728B8 @ =gUnknown_8399388
adds r0, r5, r0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080728BC @ =gUnknown_8399C90
adds r5, r0
adds r0, r5, 0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, [r6]
adds r0, 0x2
str r0, [r6]
@@ -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
@@ -1043,8 +1043,8 @@ _08072C88:
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
@@ -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
@@ -1131,7 +1131,7 @@ _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 gBattle_BG1_X
@@ -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,7 +1268,7 @@ _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 @ =gBattle_BG1_X
@@ -1349,7 +1349,7 @@ _08072F5C: .4byte 0x06004000
_08072F60: .4byte 0x0600e000
_08072F64: .4byte 0x01000800
_08072F68: .4byte 0x01000400
-_08072F6C: .4byte gUnknown_2023D44
+_08072F6C: .4byte gBattlerSpriteIds
_08072F70: .4byte gBattle_BG1_X
_08072F74: .4byte gSprites
_08072F78: .4byte gBattle_BG1_Y
@@ -1401,7 +1401,7 @@ _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 @ =gBattle_BG2_X
@@ -1483,7 +1483,7 @@ _08073094: .4byte 0x06006000
_08073098: .4byte 0x0600f000
_0807309C: .4byte 0x01000800
_080730A0: .4byte 0x01000400
-_080730A4: .4byte gUnknown_2023D44
+_080730A4: .4byte gBattlerSpriteIds
_080730A8: .4byte gBattle_BG2_X
_080730AC: .4byte gSprites
_080730B0: .4byte gBattle_BG2_Y
@@ -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 bf7f547f6..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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =gBattle_BG1_X
- 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 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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 gUnknown_2037F1A
-_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 @ =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 @ =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 @ =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 @ =gSineTable
- 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 gSineTable
-_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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 gUnknown_2037F1B
-_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 @ =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 gBattle_BG3_X
-_080B1618: .4byte gBattle_BG3_Y
-_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 @ =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 @ =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 @ =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 gUnknown_2037F1B
-_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 @ =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 @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080B3AF8 @ =0x04000014
- b _080B3B04
- .align 2, 0
-_080B3AF0: .4byte gUnknown_2037F1B
-_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 @ =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 @ =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 @ =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 @ =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 @ =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 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 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 @ =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 @ =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 @ =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 @ =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 gBattle_BG3_Y
-_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 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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =gBattle_BG1_X
- b _080B7622
- .align 2, 0
-_080B760C: .4byte gTasks
-_080B7610: .4byte gUnknown_2037F1A
-_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 @ =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 @ =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 gUnknown_2037F1A
-_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 @ =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 @ =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 gUnknown_2037F1A
-_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 @ =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 @ =gBattle_BG2_X
- b _080B8126
- .align 2, 0
-_080B8110: .4byte gUnknown_2037F1B
-_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 @ =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 @ =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 @ =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 @ =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 @ =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 gBattle_BG1_X
-_080B88D4: .4byte gSprites
-_080B88D8: .4byte gBattle_BG1_Y
-_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 @ =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 @ =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 gBattle_BG1_X
-_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 @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080B8F44 @ =gBattle_BG1_Y
- b _080B8F50
- .align 2, 0
-_080B8F3C: .4byte gUnknown_2037F1A
-_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 @ =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 gBattle_BG2_X
-_080B8F90: .4byte gBattle_BG2_Y
-_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 @ =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 @ =gUnknown_2037F1A
- 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 gUnknown_2037F1A
-_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 @ =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 @ =gBattle_BG1_X
- b _080B921E
- .align 2, 0
-_080B9214: .4byte gUnknown_2037F1A
-_080B9218: .4byte gBattle_BG1_X
-_080B921C:
- ldr r0, _080B923C @ =gBattle_BG2_X
-_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 gBattle_BG2_X
-_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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 gUnknown_2037F1A
-_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 @ =gUnknown_2037F02
- 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 gUnknown_2037F02
-_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
-
- 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 @ =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 @ =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 @ =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 gUnknown_2037F02
-_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 @ =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 @ =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 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 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 @ =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 gBattle_BG1_Y
-_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 @ =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 @ =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 @ =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 @ =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 @ =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 @ =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 gBattle_BG3_X
-_080BB918: .4byte gBattle_BG3_Y
-_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 @ =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 gUnknown_2023D44
-_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 @ =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 @ =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_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 603005d78..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
@@ -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,7 +1735,7 @@ _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]
@@ -1745,8 +1745,8 @@ _080DEFF4:
ldr r0, _080DF018 @ =gBattle_BG1_X
b _080DF01E
.align 2, 0
-_080DF010: .4byte gUnknown_2037F1B
-_080DF014: .4byte gUnknown_2037F02
+_080DF010: .4byte gBattleAnimTarget
+_080DF014: .4byte gBattleAnimArgs
_080DF018: .4byte gBattle_BG1_X
_080DF01C:
ldr r0, _080DF03C @ =gBattle_BG2_X
@@ -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
@@ -3445,7 +3445,7 @@ _080DFD24: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette
_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
@@ -3456,7 +3456,7 @@ _080DFD30:
adds r0, r2, 0
b _080DFD5A
.align 2, 0
-_080DFD48: .4byte gUnknown_2037F1A
+_080DFD48: .4byte gBattleAnimAttacker
_080DFD4C: .4byte gBattle_BG1_X
_080DFD50: .4byte 0x0000ff79
_080DFD54:
@@ -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
@@ -4089,7 +4089,7 @@ _080E0258: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette
_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
@@ -4123,7 +4123,7 @@ _080E029A:
ldr r2, _080E02B4 @ =0x0000ffec
b _080E02CC
.align 2, 0
-_080E02A4: .4byte gUnknown_2037F1B
+_080E02A4: .4byte gBattleAnimTarget
_080E02A8: .4byte gBattle_BG1_X
_080E02AC: .4byte 0x0000ff65
_080E02B0: .4byte 0x0000ff8d
@@ -4174,7 +4174,7 @@ _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
@@ -4194,7 +4194,7 @@ _080E0304:
b _080E035A
.align 2, 0
_080E0338: .4byte gTasks
-_080E033C: .4byte gUnknown_2037F1B
+_080E033C: .4byte gBattleAnimTarget
_080E0340: .4byte gBattle_BG1_X
_080E0344: .4byte gUnknown_83FF284
_080E0348:
@@ -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
@@ -6296,8 +6296,8 @@ _080E136C:
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 gBattle_BG1_X
@@ -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]
@@ -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
@@ -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
@@ -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 f90748d37..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
@@ -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 dbcc63093..02a1216c6 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
@@ -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
@@ -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
@@ -260,7 +260,7 @@ sub_80EEDF4: @ 80EEDF4
beq _080EEE4E
b _080EEFA8
.align 2, 0
-_080EEE3C: .4byte gUnknown_2037F1A
+_080EEE3C: .4byte gBattleAnimAttacker
_080EEE40: .4byte gTasks
_080EEE44: .4byte gBattle_BG1_Y
_080EEE48:
@@ -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
@@ -3264,10 +3264,10 @@ sub_80F05B4: @ 80F05B4
cmp r0, r1
bne _080F05DA
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F05E8 @ =gUnknown_840BFA8
adds r0, r5, r0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_080F05DA:
pop {r4,r5}
pop {r0}
@@ -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
@@ -5514,9 +5514,9 @@ _080F177E:
cmp r0, r7
bne _080F179E
ldr r0, _080F17E8 @ =gUnknown_83AD350
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F17EC @ =gUnknown_83ADC58
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_080F179E:
ldr r5, _080F17F0 @ =sub_80F181C
adds r0, r5, 0
@@ -5941,9 +5941,9 @@ sub_80F1AE0: @ 80F1AE0
lsls r4, 24
lsrs r4, 24
ldr r0, _080F1B08 @ =gUnknown_83AD470
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F1B0C @ =gUnknown_83ADD78
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, _080F1B10 @ =0x0000281d
bl IndexOfSpritePaletteTag
adds r0, r4, 0
@@ -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..b1da74298 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
@@ -26,9 +26,9 @@ sub_8078178: @ 8078178
lsrs r0, 24
mov r8, r0
ldr r0, _08078224 @ =gUnknown_83AD048
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _08078228 @ =gUnknown_83AD950
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r1, _0807822C @ =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -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 18b83bac6..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
@@ -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
@@ -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
@@ -4392,7 +4392,7 @@ _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 gTrainerFrontPicPaletteTable
@@ -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
@@ -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 0398914cb..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
@@ -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
@@ -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
@@ -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 cd2495a35..9f878733e 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -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
@@ -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
@@ -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 c7223984e..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
@@ -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
@@ -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
@@ -4341,7 +4341,7 @@ _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 gTrainerFrontPicPaletteTable
@@ -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
@@ -4561,7 +4561,7 @@ _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 gTrainerFrontPicPaletteTable
@@ -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
@@ -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 370fa7ee8..e3db6d88e 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
@@ -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
@@ -1005,7 +1005,7 @@ _0802EB04:
cmp r0, 0
bne _0802EB3A
movs r0, 0
- bl CountAliveMons
+ bl CountAliveMonsInBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 3eb6ecb33..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
@@ -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]
@@ -4387,7 +4387,7 @@ _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 gTrainerFrontPicPaletteTable
@@ -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
@@ -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
@@ -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
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index e8edcb7fd..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
@@ -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_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s
index d5ae72291..ba54bafbb 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
@@ -975,7 +975,7 @@ _08034548:
ldr r1, [r1]
adds r2, r5, 0
adds r3, r4, 0
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
_08034562:
mov r2, r8
lsls r1, r2, 4
@@ -1184,7 +1184,7 @@ sub_80346C4: @ 80346C4
ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable
adds r5, r0
adds r0, r5, 0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
add sp, 0x8
pop {r3}
mov r8, r3
@@ -1262,9 +1262,9 @@ sub_80347A8: @ 80347A8
cmp r0, 0
bne _080347E0
ldr r0, _080347D8 @ =gUnknown_8260208
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080347DC @ =gUnknown_8260210
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
movs r5, 0x2
b _08034802
.align 2, 0
@@ -1274,16 +1274,16 @@ _080347DC: .4byte gUnknown_8260210
_080347E0:
ldr r4, _08034828 @ =gUnknown_8260218
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
adds r4, 0x8
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r4, _0803482C @ =gUnknown_8260228
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
adds r4, 0x8
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
movs r5, 0x4
_08034802:
movs r4, 0
@@ -1296,7 +1296,7 @@ _0803480C:
ldrb r0, [r0]
lsls r0, 3
adds r0, r6
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -1349,14 +1349,14 @@ _08034864:
cmp r0, 0
beq _08034890
ldr r0, _0803488C @ =gUnknown_8260238
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034888: .4byte gBattleTypeFlags
_0803488C: .4byte gUnknown_8260238
_08034890:
ldr r0, _08034898 @ =gUnknown_8260208
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034898: .4byte gUnknown_8260208
@@ -1364,7 +1364,7 @@ _0803489C:
cmp r4, 0x3
bne _080348AC
ldr r0, _080348A8 @ =gUnknown_8260210
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348A8: .4byte gUnknown_8260210
@@ -1388,7 +1388,7 @@ _080348CC:
cmp r4, 0x2
bne _080348DC
ldr r0, _080348D8 @ =gUnknown_8260218
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348D8: .4byte gUnknown_8260218
@@ -1396,7 +1396,7 @@ _080348DC:
cmp r4, 0x3
bne _080348EC
ldr r0, _080348E8 @ =gUnknown_8260220
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348E8: .4byte gUnknown_8260220
@@ -1404,7 +1404,7 @@ _080348EC:
cmp r4, 0x4
bne _080348FC
ldr r0, _080348F8 @ =gUnknown_8260228
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348F8: .4byte gUnknown_8260228
@@ -1412,7 +1412,7 @@ _080348FC:
cmp r4, 0x5
bne _0803490C
ldr r0, _08034908 @ =gUnknown_8260230
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034908: .4byte gUnknown_8260230
@@ -1449,7 +1449,7 @@ _08034944:
lsls r0, 3
ldr r1, _08034954 @ =gUnknown_8260240
adds r0, r1
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034950: .4byte gUnknown_2023BD6
@@ -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
@@ -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
@@ -1964,7 +1964,7 @@ _08034D5C: .4byte gEnemyParty
_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
@@ -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]
@@ -2318,7 +2318,7 @@ _08035078: .4byte gEnemyParty
_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]
@@ -2911,7 +2911,7 @@ LoadAndCreateEnemyShadowSprites: @ 8035538
mov r7, r8
push {r7}
ldr r0, _08035614 @ =gUnknown_8250A0C
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
movs r0, 0x1
bl GetBattlerAtPosition
adds r5, r0, 0
@@ -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..959e4e19d 100644
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -2381,7 +2381,7 @@ _08048DC4:
bge _08048DB0
mov r6, r10
adds r0, r4, r6
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _08048E4C @ =gUnknown_826049C
adds r0, r4, r0
bl LoadSpriteSheet
@@ -3610,7 +3610,7 @@ _08049734:
lsls r1, 24
lsrs r1, 24
adds r0, r7, 0
- bl sub_80448F8
+ bl CheckBattleTypeGhost
lsls r0, 24
cmp r0, 0
beq _08049754
@@ -3755,7 +3755,7 @@ sub_804981C: @ 804981C
ldr r6, _080498EC @ =gEnemyParty
adds r0, r6
adds r1, r4, 0
- bl sub_80448F8
+ bl CheckBattleTypeGhost
lsls r0, 24
cmp r0, 0
bne _0804991C
@@ -4307,7 +4307,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
ldr r1, _08049D84 @ =gUnknown_83FE81C
mov r0, sp
bl StringCopy
- ldr r1, _08049D88 @ =gUnknown_2039994
+ ldr r1, _08049D88 @ =gNumSafariBalls
ldrb r1, [r1]
movs r2, 0
movs r3, 0x2
@@ -4351,7 +4351,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
bx r0
.align 2, 0
_08049D84: .4byte gUnknown_83FE81C
-_08049D88: .4byte gUnknown_2039994
+_08049D88: .4byte gNumSafariBalls
_08049D8C: .4byte gSprites
_08049D90: .4byte 0x060102c0
_08049D94: .4byte 0x06010a00
@@ -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 9505d542b..efd7e1385 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -2683,7 +2683,7 @@ _080D87F2:
ands r0, r1
cmp r0, 0
beq _080D881C
- bl sub_80CBE00
+ bl ContextNpcGetTextColor
lsls r0, 24
lsrs r0, 24
mov r2, sp
diff --git a/asm/battle_records.s b/asm/battle_records.s
deleted file mode 100644
index 2684fbd43..000000000
--- a/asm/battle_records.s
+++ /dev/null
@@ -1,1398 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80CD228
-sub_80CD228: @ 80CD228
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _080CD23C @ =sub_80CD240
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080CD23C: .4byte sub_80CD240
- thumb_func_end sub_80CD228
-
- thumb_func_start sub_80CD240
-sub_80CD240: @ 80CD240
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080CD260 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _080CD254
- b _080CD376
-_080CD254:
- lsls r0, 2
- ldr r1, _080CD264 @ =_080CD268
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CD260: .4byte gMain
-_080CD264: .4byte _080CD268
- .align 2, 0
-_080CD268:
- .4byte _080CD288
- .4byte _080CD294
- .4byte _080CD29A
- .4byte _080CD2CC
- .4byte _080CD2E2
- .4byte _080CD302
- .4byte _080CD314
- .4byte _080CD338
-_080CD288:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80CD4D0
- b _080CD324
-_080CD294:
- bl sub_80CD608
- b _080CD324
-_080CD29A:
- ldr r4, _080CD2C4 @ =gUnknown_2039A1C
- movs r0, 0x80
- lsls r0, 4
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _080CD2C8 @ =gUnknown_83F6C7C
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- ldr r1, [r4]
- movs r0, 0x3
- bl SetBgTilemapBuffer
- bl sub_80CD638
- b _080CD324
- .align 2, 0
-_080CD2C4: .4byte gUnknown_2039A1C
-_080CD2C8: .4byte gUnknown_83F6C7C
-_080CD2CC:
- movs r0, 0x3
- bl sub_80CDCD0
- movs r0, 0
- bl stdpal_get
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- b _080CD324
-_080CD2E2:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080CD376
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _080CD324
-_080CD302:
- ldr r0, _080CD310 @ =gUnknown_83F6C68
- bl InitWindows
- bl DeactivateAllTextPrinters
- b _080CD324
- .align 2, 0
-_080CD310: .4byte gUnknown_83F6C68
-_080CD314:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080CD324:
- ldr r1, _080CD334 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080CD376
- .align 2, 0
-_080CD334: .4byte gMain
-_080CD338:
- bl sub_80CD628
- ldr r0, _080CD350 @ =sub_80CD38C
- bl SetVBlankCallback
- ldr r0, _080CD354 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _080CD358
- bl sub_815EC8C
- b _080CD35C
- .align 2, 0
-_080CD350: .4byte sub_80CD38C
-_080CD354: .4byte gSpecialVar_0x8004
-_080CD358:
- bl sub_80CDBE4
-_080CD35C:
- ldr r0, _080CD380 @ =sub_80CD3B8
- movs r1, 0x8
- bl CreateTask
- ldr r0, _080CD384 @ =sub_80CD3A0
- bl SetMainCallback2
- ldr r0, _080CD388 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_080CD376:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD380: .4byte sub_80CD3B8
-_080CD384: .4byte sub_80CD3A0
-_080CD388: .4byte gMain
- thumb_func_end sub_80CD240
-
- thumb_func_start sub_80CD38C
-sub_80CD38C: @ 80CD38C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80CD38C
-
- thumb_func_start sub_80CD3A0
-sub_80CD3A0: @ 80CD3A0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80CD3A0
-
- thumb_func_start sub_80CD3B8
-sub_80CD3B8: @ 80CD3B8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CD3DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CD3D8
- ldr r0, _080CD3E0 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080CD3E4 @ =sub_80CD3E8
- str r0, [r1]
-_080CD3D8:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD3DC: .4byte gPaletteFade
-_080CD3E0: .4byte gTasks
-_080CD3E4: .4byte sub_80CD3E8
- thumb_func_end sub_80CD3B8
-
- thumb_func_start sub_80CD3E8
-sub_80CD3E8: @ 80CD3E8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080CD41C @ =gTasks
- adds r4, r1, r0
- ldr r0, _080CD420 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CD40C
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080CD416
-_080CD40C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080CD424 @ =sub_80CD428
- str r0, [r4]
-_080CD416:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD41C: .4byte gTasks
-_080CD420: .4byte gMain
-_080CD424: .4byte sub_80CD428
- thumb_func_end sub_80CD3E8
-
- thumb_func_start sub_80CD428
-sub_80CD428: @ 80CD428
- 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, _080CD458 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CD45C @ =sub_80CD460
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD458: .4byte gTasks
-_080CD45C: .4byte sub_80CD460
- thumb_func_end sub_80CD428
-
- thumb_func_start sub_80CD460
-sub_80CD460: @ 80CD460
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CD498 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CD490
- ldr r0, _080CD49C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- ldr r0, _080CD4A0 @ =gUnknown_2039A1C
- ldr r0, [r0]
- bl Free
- movs r0, 0
- bl sub_80CD4A4
- bl FreeAllWindowBuffers
- adds r0, r4, 0
- bl DestroyTask
-_080CD490:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD498: .4byte gPaletteFade
-_080CD49C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
-_080CD4A0: .4byte gUnknown_2039A1C
- thumb_func_end sub_80CD460
-
- thumb_func_start sub_80CD4A4
-sub_80CD4A4: @ 80CD4A4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl ClearWindowTilemap
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD4A4
-
- thumb_func_start sub_80CD4D0
-sub_80CD4D0: @ 80CD4D0
- 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, _080CD600 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080CD604 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080CD4F6:
- 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 _080CD4F6
- 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, _080CD600 @ =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
-_080CD600: .4byte 0x040000d4
-_080CD604: .4byte 0x81000800
- thumb_func_end sub_80CD4D0
-
- thumb_func_start sub_80CD608
-sub_80CD608: @ 80CD608
- push {lr}
- bl ScanlineEffect_Stop
- bl ResetTasks
- bl ResetSpriteData
- bl ResetAllPicSprites
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- pop {r0}
- bx r0
- thumb_func_end sub_80CD608
-
- thumb_func_start sub_80CD628
-sub_80CD628: @ 80CD628
- push {lr}
- movs r1, 0x94
- lsls r1, 4
- movs r0, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- thumb_func_end sub_80CD628
-
- thumb_func_start sub_80CD638
-sub_80CD638: @ 80CD638
- 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_80CD638
-
- thumb_func_start InitLinkBattleRecord
-InitLinkBattleRecord: @ 80CD690
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r2, _080CD6BC @ =0x01000008
- mov r0, sp
- adds r1, r4, 0
- bl CpuSet
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD6BC: .4byte 0x01000008
- thumb_func_end InitLinkBattleRecord
-
- thumb_func_start InitLinkBattleRecords_
-InitLinkBattleRecords_: @ 80CD6C0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0x4
-_080CD6C6:
- adds r0, r4, 0
- bl InitLinkBattleRecord
- adds r4, 0x10
- subs r5, 0x1
- cmp r5, 0
- bge _080CD6C6
- movs r0, 0x17
- movs r1, 0
- bl sub_8054F00
- movs r0, 0x18
- movs r1, 0
- bl sub_8054F00
- movs r0, 0x19
- movs r1, 0
- bl sub_8054F00
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end InitLinkBattleRecords_
-
- thumb_func_start GetLinkBattleRecordTotalBattles
-GetLinkBattleRecordTotalBattles: @ 80CD6F4
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- ldrh r1, [r1, 0xE]
- adds r0, r1
- bx lr
- thumb_func_end GetLinkBattleRecordTotalBattles
-
- thumb_func_start sub_80CD704
-sub_80CD704: @ 80CD704
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r2, 16
- lsrs r6, r2, 16
- movs r5, 0
- adds r4, r0, 0
-_080CD710:
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x7
- bl StringCompareN
- cmp r0, 0
- bne _080CD728
- ldrh r0, [r4, 0x8]
- cmp r0, r6
- bne _080CD728
- adds r0, r5, 0
- b _080CD732
-_080CD728:
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x4
- ble _080CD710
- movs r0, 0x5
-_080CD732:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80CD704
-
- thumb_func_start SortLinkBattleRecords
-SortLinkBattleRecords: @ 80CD738
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r8, r0
- movs r0, 0x4
-_080CD746:
- subs r2, r0, 0x1
- mov r9, r2
- cmp r2, 0
- blt _080CD7A0
- lsls r0, 4
- mov r1, r8
- adds r6, r1, r0
- lsls r0, r2, 4
- adds r5, r0, r1
-_080CD758:
- adds r0, r6, 0
- str r2, [sp, 0x10]
- bl GetLinkBattleRecordTotalBattles
- adds r4, r0, 0
- adds r0, r5, 0
- bl GetLinkBattleRecordTotalBattles
- ldr r2, [sp, 0x10]
- cmp r4, r0
- ble _080CD792
- mov r1, sp
- adds r0, r6, 0
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
- adds r1, r6, 0
- adds r0, r5, 0
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
- adds r1, r5, 0
- mov r0, sp
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
-_080CD792:
- subs r5, 0x10
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r1, r9
- cmp r1, 0
- bge _080CD758
-_080CD7A0:
- adds r0, r2, 0
- cmp r0, 0
- bgt _080CD746
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SortLinkBattleRecords
-
- thumb_func_start UpdateLinkBattleRecord
-UpdateLinkBattleRecord: @ 80CD7B4
- push {lr}
- adds r2, r0, 0
- cmp r1, 0x2
- beq _080CD7E4
- cmp r1, 0x2
- bgt _080CD7C6
- cmp r1, 0x1
- beq _080CD7CC
- b _080CD80E
-_080CD7C6:
- cmp r1, 0x3
- beq _080CD7FC
- b _080CD80E
-_080CD7CC:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080CD7E0 @ =0x0000270f
- cmp r0, r1
- bls _080CD80E
- strh r1, [r2, 0xA]
- b _080CD80E
- .align 2, 0
-_080CD7E0: .4byte 0x0000270f
-_080CD7E4:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080CD7F8 @ =0x0000270f
- cmp r0, r1
- bls _080CD80E
- strh r1, [r2, 0xC]
- b _080CD80E
- .align 2, 0
-_080CD7F8: .4byte 0x0000270f
-_080CD7FC:
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080CD814 @ =0x0000270f
- cmp r0, r1
- bls _080CD80E
- strh r1, [r2, 0xE]
-_080CD80E:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD814: .4byte 0x0000270f
- thumb_func_end UpdateLinkBattleRecord
-
- thumb_func_start UpdateLinkBattleGameStats
-UpdateLinkBattleGameStats: @ 80CD818
- push {r4,lr}
- cmp r0, 0x2
- beq _080CD832
- cmp r0, 0x2
- bgt _080CD828
- cmp r0, 0x1
- beq _080CD82E
- b _080CD84A
-_080CD828:
- cmp r0, 0x3
- beq _080CD836
- b _080CD84A
-_080CD82E:
- movs r4, 0x17
- b _080CD838
-_080CD832:
- movs r4, 0x18
- b _080CD838
-_080CD836:
- movs r4, 0x19
-_080CD838:
- adds r0, r4, 0
- bl GetGameStat
- ldr r1, _080CD850 @ =0x0000270e
- cmp r0, r1
- bhi _080CD84A
- adds r0, r4, 0
- bl IncrementGameStat
-_080CD84A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD850: .4byte 0x0000270e
- thumb_func_end UpdateLinkBattleGameStats
-
- thumb_func_start sub_80CD854
-sub_80CD854: @ 80CD854
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- mov r8, r3
- ldr r0, [sp, 0x20]
- lsls r2, 16
- lsrs r7, r2, 16
- cmp r0, 0x1
- bne _080CD882
- mov r1, sp
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x15
- strb r0, [r1, 0x1]
- mov r0, sp
- adds r0, 0x2
- adds r1, r4, 0
- bl StringCopy
- b _080CD88A
-_080CD882:
- mov r0, sp
- adds r1, r4, 0
- bl StringCopy
-_080CD88A:
- mov r0, r8
- bl UpdateLinkBattleGameStats
- adds r0, r6, 0
- bl SortLinkBattleRecords
- adds r0, r6, 0
- mov r1, sp
- adds r2, r7, 0
- bl sub_80CD704
- adds r5, r0, 0
- cmp r5, 0x5
- bne _080CD8BE
- movs r5, 0x4
- adds r4, r6, 0
- adds r4, 0x40
- adds r0, r4, 0
- bl InitLinkBattleRecord
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0x7
- bl StringCopyN
- strh r7, [r4, 0x8]
-_080CD8BE:
- lsls r0, r5, 4
- adds r0, r6, r0
- mov r1, r8
- bl UpdateLinkBattleRecord
- adds r0, r6, 0
- bl SortLinkBattleRecords
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD854
-
- thumb_func_start InitLinkBattleRecords
-InitLinkBattleRecords: @ 80CD8DC
- push {lr}
- ldr r0, _080CD8F0 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _080CD8F4 @ =0x00000a98
- adds r0, r1
- bl InitLinkBattleRecords_
- pop {r0}
- bx r0
- .align 2, 0
-_080CD8F0: .4byte gSaveBlock2Ptr
-_080CD8F4: .4byte 0x00000a98
- thumb_func_end InitLinkBattleRecords
-
- thumb_func_start sub_80CD8F8
-sub_80CD8F8: @ 80CD8F8
- push {lr}
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 5
- ldr r0, _080CD91C @ =gUnknown_2039638
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080CD920 @ =0x0000270f
- cmp r0, r2
- bls _080CD916
- strh r2, [r1]
-_080CD916:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD91C: .4byte gUnknown_2039638
-_080CD920: .4byte 0x0000270f
- thumb_func_end sub_80CD8F8
-
- thumb_func_start sub_80CD924
-sub_80CD924: @ 80CD924
- push {lr}
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 5
- ldr r0, _080CD948 @ =gUnknown_203963A
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080CD94C @ =0x0000270f
- cmp r0, r2
- bls _080CD942
- strh r2, [r1]
-_080CD942:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD948: .4byte gUnknown_203963A
-_080CD94C: .4byte 0x0000270f
- thumb_func_end sub_80CD924
-
- thumb_func_start sub_80CD950
-sub_80CD950: @ 80CD950
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CD964 @ =gUnknown_2023E8A
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080CD968
- cmp r0, 0x2
- beq _080CD976
- b _080CD984
- .align 2, 0
-_080CD964: .4byte gUnknown_2023E8A
-_080CD968:
- eors r0, r4
- bl sub_80CD8F8
- adds r0, r4, 0
- bl sub_80CD924
- b _080CD984
-_080CD976:
- movs r0, 0x1
- eors r0, r4
- bl sub_80CD924
- adds r0, r4, 0
- bl sub_80CD8F8
-_080CD984:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD950
-
- thumb_func_start sub_80CD98C
-sub_80CD98C: @ 80CD98C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _080CD9DC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _080CD9D4
- adds r0, r6, 0
- bl sub_80CD950
- ldr r0, _080CD9E0 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, _080CD9E4 @ =0x00000a98
- adds r0, r1
- lsls r2, r6, 1
- adds r2, r6
- lsls r2, 5
- ldr r3, _080CD9E8 @ =gUnknown_2039654
- adds r1, r2, r3
- subs r3, 0x30
- adds r2, r3
- ldrh r2, [r2, 0xE]
- ldr r3, _080CD9EC @ =gUnknown_2023E8A
- ldrb r3, [r3]
- ldr r5, _080CD9F0 @ =gLinkPlayers
- lsls r4, r6, 3
- subs r4, r6
- lsls r4, 2
- adds r4, r5
- ldrh r4, [r4, 0x1A]
- str r4, [sp]
- bl sub_80CD854
-_080CD9D4:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD9DC: .4byte gSaveBlock1Ptr
-_080CD9E0: .4byte gSaveBlock2Ptr
-_080CD9E4: .4byte 0x00000a98
-_080CD9E8: .4byte gUnknown_2039654
-_080CD9EC: .4byte gUnknown_2023E8A
-_080CD9F0: .4byte gLinkPlayers
- thumb_func_end sub_80CD98C
-
- thumb_func_start sub_80CD9F4
-sub_80CD9F4: @ 80CD9F4
- push {r4-r7,lr}
- sub sp, 0x14
- movs r0, 0x17
- bl GetGameStat
- adds r4, r0, 0
- movs r0, 0x18
- bl GetGameStat
- adds r5, r0, 0
- movs r0, 0x19
- bl GetGameStat
- adds r6, r0, 0
- ldr r0, _080CDAB0 @ =0x0000270f
- cmp r4, r0
- bls _080CDA18
- adds r4, r0, 0
-_080CDA18:
- cmp r5, r0
- bls _080CDA1E
- adds r5, r0, 0
-_080CDA1E:
- cmp r6, r0
- bls _080CDA24
- adds r6, r0, 0
-_080CDA24:
- ldr r0, _080CDAB4 @ =gStringVar1
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r0, _080CDAB8 @ =gStringVar2
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r0, _080CDABC @ =gStringVar3
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- movs r3, 0
- ldr r6, _080CDAC0 @ =gUnknown_83F6C84
- ldr r7, _080CDAC4 @ =gStringVar4
- ldr r0, _080CDAC8 @ =gUnknown_8418188
- mov r12, r0
- movs r5, 0
-_080CDA54:
- lsls r0, r3, 2
- adds r0, r6
- ldr r2, [r0]
- movs r1, 0
- adds r4, r3, 0x1
- movs r3, 0x3
-_080CDA60:
- cmp r1, 0
- bne _080CDA70
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080CDA6C
- movs r1, 0x1
-_080CDA6C:
- cmp r1, 0
- beq _080CDA72
-_080CDA70:
- strb r5, [r2]
-_080CDA72:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _080CDA60
- movs r0, 0xFF
- strb r0, [r2]
- adds r3, r4, 0
- cmp r3, 0x2
- bls _080CDA54
- adds r0, r7, 0
- mov r1, r12
- bl StringExpandPlaceholders
- movs r0, 0
- str r0, [sp]
- movs r1, 0x2
- str r1, [sp, 0x4]
- ldr r1, _080CDACC @ =gUnknown_83F6C78
- str r1, [sp, 0x8]
- str r0, [sp, 0xC]
- str r7, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0xC
- movs r3, 0x18
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDAB0: .4byte 0x0000270f
-_080CDAB4: .4byte gStringVar1
-_080CDAB8: .4byte gStringVar2
-_080CDABC: .4byte gStringVar3
-_080CDAC0: .4byte gUnknown_83F6C84
-_080CDAC4: .4byte gStringVar4
-_080CDAC8: .4byte gUnknown_8418188
-_080CDACC: .4byte gUnknown_83F6C78
- thumb_func_end sub_80CD9F4
-
- thumb_func_start sub_80CDAD0
-sub_80CDAD0: @ 80CDAD0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r5, 0
- ldrh r0, [r6, 0xA]
- cmp r0, 0
- bne _080CDB50
- ldr r0, [r6, 0xC]
- cmp r0, 0
- bne _080CDB50
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- ldr r0, _080CDB44 @ =gUnknown_83F6C78
- str r0, [sp, 0x8]
- str r5, [sp, 0xC]
- ldr r0, _080CDB48 @ =gUnknown_84181B6
- str r0, [sp, 0x10]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- mov r3, r8
- bl AddTextPrinterParametrized2
- movs r6, 0
-_080CDB0E:
- movs r4, 0x54
- cmp r5, 0
- beq _080CDB1C
- movs r4, 0xB4
- cmp r5, 0x1
- bne _080CDB1C
- movs r4, 0x84
-_080CDB1C:
- adds r2, r4, 0
- str r6, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- ldr r0, _080CDB44 @ =gUnknown_83F6C78
- str r0, [sp, 0x8]
- str r6, [sp, 0xC]
- ldr r0, _080CDB4C @ =gUnknown_84181BE
- str r0, [sp, 0x10]
- movs r0, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParametrized2
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080CDB0E
- b _080CDBCE
- .align 2, 0
-_080CDB44: .4byte gUnknown_83F6C78
-_080CDB48: .4byte gUnknown_84181B6
-_080CDB4C: .4byte gUnknown_84181BE
-_080CDB50:
- movs r5, 0
- ldr r7, _080CDB70 @ =gStringVar1
- mov r9, r5
-_080CDB56:
- cmp r5, 0
- bne _080CDB74
- movs r4, 0
- adds r0, r7, 0
- movs r1, 0x8
- bl StringFillWithTerminator
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x7
- bl StringCopyN
- b _080CDBA6
- .align 2, 0
-_080CDB70: .4byte gStringVar1
-_080CDB74:
- cmp r5, 0x1
- bne _080CDB7E
- movs r4, 0x54
- ldrh r1, [r6, 0xA]
- b _080CDB86
-_080CDB7E:
- cmp r5, 0x2
- bne _080CDB98
- movs r4, 0x84
- ldrh r1, [r6, 0xC]
-_080CDB86:
- ldr r0, _080CDB94 @ =gStringVar1
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- b _080CDBA6
- .align 2, 0
-_080CDB94: .4byte gStringVar1
-_080CDB98:
- movs r4, 0xB4
- ldrh r1, [r6, 0xE]
- ldr r0, _080CDBDC @ =gStringVar1
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
-_080CDBA6:
- adds r2, r4, 0
- mov r0, r9
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- ldr r0, _080CDBE0 @ =gUnknown_83F6C78
- str r0, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- str r7, [sp, 0x10]
- movs r0, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParametrized2
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080CDB56
-_080CDBCE:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDBDC: .4byte gStringVar1
-_080CDBE0: .4byte gUnknown_83F6C78
- thumb_func_end sub_80CDAD0
-
- thumb_func_start sub_80CDBE4
-sub_80CDBE4: @ 80CDBE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- 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
- ldr r5, _080CDC9C @ =gStringVar4
- ldr r1, _080CDCA0 @ =gUnknown_8418174
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x2
- adds r1, r5, 0
- bl GetStringWidth
- movs r2, 0xD0
- subs r2, r0
- lsrs r2, 1
- lsls r2, 24
- lsrs r2, 24
- movs r4, 0
- str r4, [sp]
- movs r0, 0x2
- mov r9, r0
- str r0, [sp, 0x4]
- ldr r6, _080CDCA4 @ =gUnknown_83F6C78
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r0, 0
- movs r1, 0x2
- movs r3, 0x4
- bl AddTextPrinterParametrized2
- ldr r5, _080CDCA8 @ =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, _080CDCAC @ =0x00000a98
- mov r8, r1
- add r0, r8
- bl sub_80CD9F4
- str r4, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r0, _080CDCB0 @ =gUnknown_84181A4
- str r0, [sp, 0x10]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x54
- movs r3, 0x30
- bl AddTextPrinterParametrized2
- adds r7, r5, 0
- movs r5, 0xF4
- lsls r5, 22
- mov r6, r8
- movs r4, 0x4
-_080CDC70:
- ldr r0, [r7]
- adds r0, r6
- lsrs r1, r5, 24
- bl sub_80CDAD0
- movs r1, 0xE0
- lsls r1, 20
- adds r5, r1
- adds r6, 0x10
- subs r4, 0x1
- cmp r4, 0
- bge _080CDC70
- movs r0, 0
- bl sub_80CDCB4
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDC9C: .4byte gStringVar4
-_080CDCA0: .4byte gUnknown_8418174
-_080CDCA4: .4byte gUnknown_83F6C78
-_080CDCA8: .4byte gSaveBlock2Ptr
-_080CDCAC: .4byte 0x00000a98
-_080CDCB0: .4byte gUnknown_84181A4
- thumb_func_end sub_80CDBE4
-
- thumb_func_start sub_80CDCB4
-sub_80CDCB4: @ 80CDCB4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CDCB4
-
- thumb_func_start sub_80CDCD0
-sub_80CDCD0: @ 80CDCD0
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080CDD0C @ =gUnknown_83F6388
- adds r0, r4, 0
- movs r2, 0xC0
- movs r3, 0
- bl LoadBgTiles
- ldr r1, _080CDD10 @ =gUnknown_83F6468
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBufferRect
- ldr r0, _080CDD14 @ =gUnknown_83F6448
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDD0C: .4byte gUnknown_83F6388
-_080CDD10: .4byte gUnknown_83F6468
-_080CDD14: .4byte gUnknown_83F6448
- thumb_func_end sub_80CDCD0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 9c69714cb..42d1f653d 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
@@ -13273,7 +13273,7 @@ sub_80240D4: @ 80240D4
adds r1, r4
ldr r2, [r1]
movs r1, 0x2
- bl sub_8044898
+ bl HandleSetPokedexFlag
_0802412A:
ldr r2, _08024180 @ =gAbsentBattlerFlags
ldr r1, _08024184 @ =gBitTable
@@ -13398,7 +13398,7 @@ _08024228:
bl GetBankMultiplayerId
lsls r0, 24
lsrs r0, 24
- bl sub_8043620
+ bl GetLinkTrainerFlankId
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -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
@@ -17903,7 +17903,7 @@ PutMonIconOnLvlUpBox: @ 8026688
orrs r0, r1
str r0, [sp, 0x4]
adds r0, r4, 0
- bl sub_80971CC
+ bl GetValidMonIconPalettePtr
str r0, [sp, 0x8]
add r4, sp, 0x8
ldr r0, [r4, 0x4]
@@ -19745,7 +19745,7 @@ _0802753C:
cmp r0, 0
beq _080275AC
movs r0, 0x1
- bl CountAliveMons
+ bl CountAliveMonsInBattle
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x2
@@ -21520,7 +21520,7 @@ _08028336:
bl GetBankMultiplayerId
lsls r0, 24
lsrs r0, 24
- bl sub_8043620
+ bl GetLinkTrainerFlankId
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -21665,7 +21665,7 @@ _08028458:
bl GetBankMultiplayerId
lsls r0, 24
lsrs r0, 24
- bl sub_8043620
+ bl GetLinkTrainerFlankId
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -22207,7 +22207,7 @@ _0802887C:
cmp r0, 0
beq _080288EC
movs r0, 0x1
- bl CountAliveMons
+ bl CountAliveMonsInBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -32384,7 +32384,7 @@ _0802D9B4:
lsrs r0, 16
movs r1, 0x3
adds r2, r4, 0
- bl sub_8044898
+ bl HandleSetPokedexFlag
ldr r1, _0802D9D4 @ =gUnknown_2023D74
ldr r0, [r1]
adds r0, 0x5
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index f4e1fdf0a..99e4c3468 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -25,7 +25,7 @@ sub_807F620: @ 807F620
.align 2, 0
_0807F640: .4byte gTasks+0x8
_0807F644:
- bl c3_80A0DD8_is_running
+ bl FldEffPoison_IsActive
cmp r0, 0
bne _0807F686
bl sub_812B478
@@ -46,7 +46,7 @@ _0807F65E:
ldr r0, _0807F68C @ =sub_800FD9C
bl SetMainCallback2
bl sub_806D7E8
- bl overworld_poison_timer_set
+ bl ClearPoisonStepCounter
adds r0, r5, 0
bl DestroyTask
_0807F686:
@@ -221,7 +221,7 @@ sub_807F7D8: @ 807F7D8
bl player_bitmagic
bl sub_805C780
ldr r1, _0807F804 @ =gMain
- ldr r0, _0807F808 @ =sub_80A0F4C
+ ldr r0, _0807F808 @ =CB2_EndSafariBattle
str r0, [r1, 0x8]
ldr r1, _0807F80C @ =gBattleTypeFlags
movs r0, 0x80
@@ -235,7 +235,7 @@ sub_807F7D8: @ 807F7D8
bx r0
.align 2, 0
_0807F804: .4byte gMain
-_0807F808: .4byte sub_80A0F4C
+_0807F808: .4byte CB2_EndSafariBattle
_0807F80C: .4byte gBattleTypeFlags
thumb_func_end sub_807F7D8
@@ -300,7 +300,7 @@ sub_807F888: @ 807F888
bl CreateMaleMon
bl ScriptContext2_Enable
ldr r1, _0807F8B8 @ =gMain
- ldr r0, _0807F8BC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _0807F8BC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [r1, 0x8]
ldr r1, _0807F8C0 @ =gBattleTypeFlags
movs r0, 0x80
@@ -314,7 +314,7 @@ sub_807F888: @ 807F888
.align 2, 0
_0807F8B4: .4byte gEnemyParty
_0807F8B8: .4byte gMain
-_0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_0807F8BC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_0807F8C0: .4byte gBattleTypeFlags
thumb_func_end sub_807F888
@@ -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,7 +633,7 @@ 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 @ =CB2_ReturnToField
@@ -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,17 +676,17 @@ 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
+ ldr r0, _0807FBEC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
_0807FBE6:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
-_0807FBEC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_0807FBEC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_807FBA0
thumb_func_start sub_807FBF0
@@ -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]
@@ -731,7 +731,7 @@ _0807FC40:
movs r0, 0x1
strh r0, [r1]
_0807FC46:
- ldr r0, _0807FC58 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _0807FC58 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
_0807FC4C:
add sp, 0x4
@@ -740,7 +740,7 @@ _0807FC4C:
bx r0
.align 2, 0
_0807FC54: .4byte gSpecialVar_Result
-_0807FC58: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_0807FC58: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_807FBF0
thumb_func_start sub_807FC5C
@@ -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:
@@ -1878,14 +1878,14 @@ _080804E8:
movs r1, 0
strh r1, [r0]
_080804EE:
- ldr r0, _08080504 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _08080504 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
bl sub_80803FC
bl sub_81139BC
b _0808054E
.align 2, 0
_08080500: .4byte gSpecialVar_Result
-_08080504: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_08080504: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08080508:
ldr r0, _0808051C @ =gTrainerBattleOpponent_A
ldrh r1, [r0]
@@ -1893,14 +1893,14 @@ _08080508:
lsls r0, 3
cmp r1, r0
bne _08080524
- ldr r0, _08080520 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _08080520 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
b _0808054E
.align 2, 0
_0808051C: .4byte gTrainerBattleOpponent_A
-_08080520: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_08080520: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08080524:
- ldr r0, _08080538 @ =gUnknown_2023E8A
+ ldr r0, _08080538 @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -1910,10 +1910,10 @@ _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
+ ldr r0, _08080554 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
bl sub_80803FC
bl sub_81139BC
@@ -1921,7 +1921,7 @@ _0808054E:
pop {r0}
bx r0
.align 2, 0
-_08080554: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_08080554: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80804AC
thumb_func_start sub_8080558
@@ -1933,14 +1933,14 @@ sub_8080558: @ 8080558
lsls r0, 3
cmp r1, r0
bne _08080578
- ldr r0, _08080574 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _08080574 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
b _080805A6
.align 2, 0
_08080570: .4byte gTrainerBattleOpponent_A
-_08080574: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_08080574: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08080578:
- ldr r0, _0808058C @ =gUnknown_2023E8A
+ ldr r0, _0808058C @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -1949,10 +1949,10 @@ _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
+ ldr r0, _080805AC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
bl sub_80803FC
bl sub_810CDE8
@@ -1961,7 +1961,7 @@ _080805A6:
pop {r0}
bx r0
.align 2, 0
-_080805AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_080805AC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_8080558
thumb_func_start sub_80805B0
@@ -2051,7 +2051,7 @@ sub_8080628: @ 8080628
beq _080806BE
ldr r0, _08080668 @ =gTrainerBattleOpponent_A
ldrh r0, [r0]
- bl sub_804367C
+ bl GetTrainerEncounterMusicId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xD
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 0f268a320..13a75573a 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -1222,7 +1222,7 @@ _080E6286:
adds r2, r3
ldr r1, [r4]
adds r1, r2
- bl sub_803E0A4
+ bl CreateBattleTowerMon
adds r6, 0x1
cmp r6, 0x2
ble _080E6286
@@ -1251,7 +1251,7 @@ _080E62B2:
muls r2, r6
adds r2, 0x1C
adds r1, r2
- bl sub_803E0A4
+ bl CreateBattleTowerMon
adds r6, 0x1
cmp r6, 0x2
ble _080E62B2
@@ -2010,14 +2010,14 @@ _080E68A8: .4byte gPlayerParty
_080E68AC:
bl sub_80E7550
_080E68B0:
- ldr r0, _080E68C0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _080E68C0 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080E68C0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_080E68C0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80E6854
thumb_func_start sub_80E68C4
@@ -2136,7 +2136,7 @@ _080E69A0:
adds r2, r1
ldr r1, [r4]
adds r1, r2
- bl sub_803E0A4
+ bl CreateBattleTowerMon
adds r5, 0x1
cmp r5, 0x2
ble _080E69A0
@@ -2407,7 +2407,7 @@ _080E6C00:
adds r0, r2
ldrh r1, [r0]
movs r0, 0x20
- bl sub_8054F00
+ bl SetGameStat
b _080E6C80
.align 2, 0
_080E6C10: .4byte 0x0000057a
@@ -2599,7 +2599,7 @@ _080E6D9C:
adds r0, r1
ldrh r1, [r0]
movs r0, 0x20
- bl sub_8054F00
+ bl SetGameStat
b _080E6E08
.align 2, 0
_080E6DAC: .4byte 0x0000057a
@@ -2717,7 +2717,7 @@ _080E6E76:
adds r5, r0, 0
movs r0, 0x20
adds r1, r5, 0
- bl sub_8054F00
+ bl SetGameStat
ldr r1, _080E6EA4 @ =0x0000270f
cmp r5, r1
bhi _080E6EB8
@@ -2731,7 +2731,7 @@ _080E6EA8:
ldrh r5, [r1]
movs r0, 0x20
adds r1, r5, 0
- bl sub_8054F00
+ bl SetGameStat
ldr r1, _080E6EC4 @ =0x0000270f
cmp r5, r1
bls _080E6ECC
@@ -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
@@ -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 cf761a220..48a5836ed 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -137,7 +137,7 @@ _080D09AC: .4byte gTasks
Transition_Phase1: @ 80D09B0
push {r4,lr}
adds r4, r0, 0
- bl sub_807B05C
+ bl SetWeatherScreenFadeOut
ldr r0, _080D09DC @ =gPlttBufferFaded
ldr r1, _080D09E0 @ =gPlttBufferUnfaded
ldr r2, _080D09E4 @ =0x04000100
diff --git a/asm/battle_util.s b/asm/battle_util.s
index 04202e9da..50f5210aa 100644
--- a/asm/battle_util.s
+++ b/asm/battle_util.s
@@ -5775,7 +5775,7 @@ _08019C40:
mov r8, r0
_08019C66:
adds r0, r7, 0
- bl sub_8043620
+ bl GetLinkTrainerFlankId
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 1
diff --git a/asm/berry_crush.s b/asm/berry_crush.s
index eb5e8d08d..42de36a1f 100644
--- a/asm/berry_crush.s
+++ b/asm/berry_crush.s
@@ -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/berry_crush_2.s b/asm/berry_crush_2.s
index 16f7bff79..f775bd8dc 100644
--- a/asm/berry_crush_2.s
+++ b/asm/berry_crush_2.s
@@ -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
@@ -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
@@ -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
@@ -2946,7 +2946,7 @@ _0814D1A6:
strb r0, [r5, 0xC]
b _0814D238
_0814D1CA:
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
b _0814D230
_0814D1D0:
bl Menu_ProcessInputNoWrapClearOnChoose
@@ -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
@@ -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/berry_crush_3.s b/asm/berry_crush_3.s
index f837c4929..b10f29f8d 100644
--- a/asm/berry_crush_3.s
+++ b/asm/berry_crush_3.s
@@ -50,7 +50,7 @@ _0814D61C:
movs r1, 0
bl SetGpuReg
bl ScanlineEffect_Stop
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _0814D878
_0814D63A:
add r0, sp, 0x8
@@ -175,12 +175,12 @@ _0814D73A:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _0814D878
.align 2, 0
_0814D764: .4byte gUnknown_8EAFFC0
_0814D768:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
beq _0814D774
@@ -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
@@ -1265,7 +1265,7 @@ _0814DFE0:
adds r4, r2, r4
str r4, [sp, 0x2C]
_0814DFF0:
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r0, [sp, 0x10]
cmp r0, 0x1
beq _0814E0E4
@@ -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
@@ -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
@@ -1610,10 +1610,10 @@ _0814E2B8:
ldr r0, [sp, 0xC]
adds r1, r0, r1
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, _0814E324 @ =gStringVar4
adds r1, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r1, [sp, 0x2C]
ldrb r0, [r1]
mov r2, r9
@@ -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,12 +2097,12 @@ _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
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
b _0814E7F8
.align 2, 0
_0814E700: .4byte 0x0000021d
@@ -2246,7 +2246,7 @@ sub_814E80C: @ 814E80C
adds r5, r4, r0
ldrb r0, [r5]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r5]
bl RemoveWindow
adds r0, r4, 0
@@ -2309,12 +2309,12 @@ _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
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
b _0814EA66
.align 2, 0
_0814E8A8: .4byte gUnknown_846E3F0
@@ -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 ClearStdWindowAndFrameToTransparent
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
@@ -2845,7 +2845,7 @@ sub_814ECE0: @ 814ECE0
_0814ECF6:
lsls r0, r5, 3
adds r0, r4
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s
deleted file mode 100644
index e24fa6c3c..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 ScanlineEffect_Stop
- 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 762938e3c..60d6873e6 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
@@ -100,7 +100,7 @@ sub_813CE00: @ 813CE00
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl UpdatePaletteFade
pop {r0}
bx r0
@@ -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,8 +183,8 @@ _0813CE84:
.4byte _0813CFB0
.4byte _0813CFBE
_0813CED0:
- bl sub_80BF768
- bl clear_scheduled_bg_copies_to_vram
+ bl SetVBlankHBlankCallbacksToNull
+ bl ClearScheduledBgCopiesToVram
b _0813CFD2
_0813CEDA:
bl ScanlineEffect_Stop
@@ -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
@@ -386,7 +386,7 @@ _0813D078: .4byte gUnknown_203F370
thumb_func_start sub_813D07C
sub_813D07C: @ 813D07C
push {r4,lr}
- bl sub_80BF7C8
+ bl ResetAllBgsCoordinatesAndBgCntRegs
ldr r4, _0813D0DC @ =gUnknown_203F36C
ldr r0, [r4]
adds r0, 0xC
@@ -405,7 +405,7 @@ sub_813D07C: @ 813D07C
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x50
movs r1, 0
bl SetGpuReg
@@ -454,18 +454,18 @@ _0813D10C:
beq _0813D178
b _0813D190
_0813D116:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r1, _0813D12C @ =gUnknown_8E859D0
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _0813D17E
.align 2, 0
_0813D12C: .4byte gUnknown_8E859D0
_0813D130:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -498,7 +498,7 @@ _0813D170: .4byte gSaveBlock2Ptr
_0813D174: .4byte gUnknown_8E85BF4
_0813D178:
ldr r0, _0813D18C @ =gUnknown_84644A8
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
_0813D17E:
ldr r1, [r5]
adds r1, r6
@@ -510,7 +510,7 @@ _0813D17E:
_0813D18C: .4byte gUnknown_84644A8
_0813D190:
ldr r0, _0813D1A8 @ =gUnknown_84644B0
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
ldr r0, _0813D1AC @ =gUnknown_203F36C
ldr r0, [r0]
ldr r1, _0813D1B0 @ =0x0000080c
@@ -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
@@ -1028,9 +1028,9 @@ 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
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -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 DestroyListMenu
+ bl DestroyListMenuTask
ldr r0, _0813D888 @ =gUnknown_203F36C
ldr r0, [r0]
ldr r0, [r0]
@@ -1443,7 +1443,7 @@ sub_813D8AC: @ 813D8AC
push {r4,lr}
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
@@ -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
@@ -1688,13 +1688,13 @@ _0813DA90:
b _0813DB9E
_0813DA9E:
ldrb r0, [r7]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r5, r0, 0
ldrb r0, [r7]
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
@@ -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
@@ -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 ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
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
@@ -2051,7 +2051,7 @@ sub_813DDA0: @ 813DDA0
lsrs r0, 24
cmp r0, 0x1
beq _0813DDFE
- bl ProcessMenuInputNoWrapAround
+ bl Menu_ProcessInputNoWrapAround
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@@ -2111,9 +2111,9 @@ sub_813DE0C: @ 813DE0C
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0813DE60 @ =gUnknown_203F370
ldrb r0, [r0, 0x4]
cmp r0, 0x4
@@ -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
@@ -2309,9 +2309,9 @@ sub_813DFC8: @ 813DFC8
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl sub_813D4B0
@@ -2338,7 +2338,7 @@ sub_813E010: @ 813E010
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2370,9 +2370,9 @@ _0813E048:
movs r0, 0
bl sub_813EA98
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_813D684
adds r0, r5, 0
bl sub_813DF54
@@ -2395,9 +2395,9 @@ _0813E090:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl sub_813D4B0
@@ -2504,7 +2504,7 @@ _0813E18A:
ldr r4, _0813E1F8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
@@ -2519,7 +2519,7 @@ _0813E18A:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r5]
movs r1, 0x1
bl sub_813D4B0
@@ -2555,9 +2555,9 @@ sub_813E200: @ 813E200
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl CalculatePlayerPartyCount
lsls r0, 24
cmp r0, 0
@@ -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
@@ -2598,7 +2598,7 @@ sub_813E274: @ 813E274
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
@@ -2646,7 +2646,7 @@ sub_813E2B8: @ 813E2B8
ldr r4, _0813E318 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
@@ -2659,7 +2659,7 @@ sub_813E2B8: @ 813E2B8
lsrs r0, 24
strh r0, [r5]
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r5]
movs r1, 0x1
bl sub_813D4B0
@@ -2693,9 +2693,9 @@ sub_813E320: @ 813E320
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0813E378 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -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
@@ -2827,7 +2827,7 @@ 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
@@ -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}
@@ -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
@@ -2964,7 +2964,7 @@ sub_813E568: @ 813E568
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl sub_813D4B0
@@ -3091,7 +3091,7 @@ sub_813E690: @ 813E690
adds r0, r5, 0
adds r0, 0x10
ldrh r1, [r5, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3130,7 +3130,7 @@ _0813E6E4:
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_813D684
adds r0, r4, 0
bl sub_813E4E4
@@ -3157,7 +3157,7 @@ _0813E718:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_813D684
ldrb r0, [r5]
movs r1, 0x1
@@ -3184,7 +3184,7 @@ sub_813E768: @ 813E768
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0813E7D8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0813E7DC @ =gStringVar1
@@ -3213,7 +3213,7 @@ sub_813E768: @ 813E768
adds r0, r5, 0
movs r1, 0x2
adds r2, r4, 0
- bl sub_813EB20
+ bl DisplayItemMessageInBerryPouch
pop {r4-r6}
pop {r0}
bx r0
@@ -3277,7 +3277,7 @@ sub_813E7F0: @ 813E7F0
ldr r4, _0813E8C8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
@@ -3367,15 +3367,15 @@ 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_LoadResourcesStdFrame0
movs r0, 0
movs r1, 0xA
movs r2, 0xC0
- bl sub_814FF2C
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _0813E998 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
@@ -3397,9 +3397,9 @@ _0813E946:
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r4, 0
ldr r3, _0813E99C @ =gUnknown_203F38C
movs r2, 0xFF
@@ -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
@@ -3509,7 +3509,7 @@ _0813EA38:
movs r1, 0
movs r2, 0xA
movs r3, 0xC
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
b _0813EA60
.align 2, 0
_0813EA4C: .4byte gUnknown_203F38C
@@ -3519,10 +3519,10 @@ _0813EA54:
movs r1, 0
movs r2, 0x1
movs r3, 0xE
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
_0813EA60:
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0813EA74 @ =gUnknown_203F38C
adds r0, r4, r0
ldrb r0, [r0]
@@ -3545,7 +3545,7 @@ sub_813EA78: @ 813EA78
movs r1, 0
movs r2, 0x1
movs r3, 0xE
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
pop {r0}
bx r0
.align 2, 0
@@ -3562,13 +3562,13 @@ sub_813EA98: @ 813EA98
adds r4, r0
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0xFF
strb r0, [r4]
pop {r4}
@@ -3589,7 +3589,7 @@ sub_813EACC: @ 813EACC
cmp r0, 0xFF
beq _0813EB04
movs r1, 0
- bl sub_810F260
+ bl ClearDialogWindowAndFrameToTransparent
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
@@ -3597,9 +3597,9 @@ sub_813EACC: @ 813EACC
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0xFF
strb r0, [r4]
_0813EB04:
@@ -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}
@@ -3656,7 +3656,7 @@ _0813EB44:
movs r3, 0xD
bl DisplayMessageAndContinueTask
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3}
mov r8, r3
@@ -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
diff --git a/asm/bike.s b/asm/bike.s
index c85537d3d..94583aa47 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
@@ -730,7 +730,7 @@ sub_80BD5C8: @ 80BD5C8
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
bl sav1_reset_battle_music_maybe
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
b _080BD618
.align 2, 0
_080BD5F0: .4byte gUnknown_2036E2C
@@ -738,8 +738,8 @@ _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
@@ -752,7 +752,7 @@ _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/braille_text.s b/asm/braille_text.s
deleted file mode 100644
index 2428f2984..000000000
--- a/asm/braille_text.s
+++ /dev/null
@@ -1,8 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- .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
deleted file mode 100644
index 04caf30a4..000000000
--- a/asm/buy_menu_helpers.s
+++ /dev/null
@@ -1,220 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_813F66C
-sub_813F66C: @ 813F66C
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0x1
- beq _0813F680
- ldr r0, _0813F67C @ =gUnknown_8464804
- bl InitWindows
- b _0813F686
- .align 2, 0
-_0813F67C: .4byte gUnknown_8464804
-_0813F680:
- ldr r0, _0813F6CC @ =gUnknown_846483C
- bl InitWindows
-_0813F686:
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD0
- bl sub_815001C
- movs r0, 0
- movs r1, 0x13
- movs r2, 0xE0
- bl sub_814FEAC
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xF0
- bl sub_814FF2C
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _0813F6C4
- movs r0, 0x6
- bl PutWindowTilemap
-_0813F6C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F6CC: .4byte gUnknown_846483C
- thumb_func_end sub_813F66C
-
- thumb_func_start sub_813F6D0
-sub_813F6D0: @ 813F6D0
- push {lr}
- ldr r0, _0813F6F0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xF
- bl PrintMoneyAmountInMoneyBoxWithBorder
- pop {r0}
- bx r0
- .align 2, 0
-_0813F6F0: .4byte gSaveBlock1Ptr
- thumb_func_end sub_813F6D0
-
- thumb_func_start sub_813F6F4
-sub_813F6F4: @ 813F6F4
- 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, _0813F758 @ =gUnknown_8464884
- 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
-_0813F758: .4byte gUnknown_8464884
- thumb_func_end sub_813F6F4
-
- thumb_func_start sub_813F75C
-sub_813F75C: @ 813F75C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- bl sub_809B56C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl GetTextSpeedSetting
- 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, 0x2
- movs r2, 0x13
- movs r3, 0xE
- bl DisplayMessageAndContinueTask
- movs r0, 0
- 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_813F75C
-
- thumb_func_start sub_813F7A8
-sub_813F7A8: @ 813F7A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x1
- movs r3, 0xD
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_813F7A8
-
- thumb_func_start sub_813F7C0
-sub_813F7C0: @ 813F7C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xA
- movs r3, 0xF
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_813F7C0
-
- thumb_func_start sub_813F7D8
-sub_813F7D8: @ 813F7D8
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813F800 @ =gUnknown_846487C
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0xD
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl CreateYesNoMenuWithCallbacks
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0813F800: .4byte gUnknown_846487C
- thumb_func_end sub_813F7D8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s
deleted file mode 100644
index 4a8f99176..000000000
--- a/asm/cable_car_util.s
+++ /dev/null
@@ -1,162 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80D9614
-sub_80D9614: @ 80D9614
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- movs r0, 0
- lsrs r4, r3, 24
- cmp r0, r8
- bcs _080D968E
-_080D9646:
- ldr r2, [sp]
- movs r3, 0
- adds r6, r4, 0x1
- adds r0, 0x1
- mov r12, r0
- cmp r3, r7
- bcs _080D9678
- lsls r5, r4, 6
-_080D9656:
- lsls r0, r2, 1
- adds r0, r5
- add r0, r10
- mov r1, r9
- strh r1, [r0]
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r7
- bcc _080D9656
-_080D9678:
- adds r0, r6, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r6, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r12
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _080D9646
-_080D968E:
- 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_80D9614
-
- thumb_func_start sub_80D96A0
-sub_80D96A0: @ 80D96A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- movs r0, 0
- adds r5, r1, 0
- lsrs r4, r3, 24
- cmp r0, r9
- bcs _080D971A
-_080D96D0:
- ldr r2, [sp]
- movs r3, 0
- adds r7, r4, 0x1
- adds r0, 0x1
- mov r8, r0
- cmp r3, r12
- bcs _080D9704
- lsls r6, r4, 6
-_080D96E0:
- lsls r0, r2, 1
- adds r0, r6
- add r0, r10
- ldrh r1, [r5]
- strh r1, [r0]
- adds r5, 0x2
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r12
- bcc _080D96E0
-_080D9704:
- adds r0, r7, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r7, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _080D96D0
-_080D971A:
- 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_80D96A0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 91ddde46d..28cbfc49c 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -55,7 +55,7 @@ sub_808078C: @ 808078C
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldr r5, _080807E0 @ =gStringVar4
ldr r1, _080807E4 @ =gUnknown_841DF82
adds r0, r5, 0
@@ -943,7 +943,7 @@ _08080E9A:
lsls r1, r5, 8
ldr r0, _08080ED4 @ =gBlockRecvBuffer
adds r1, r0
- ldr r0, _08080ED8 @ =gUnknown_2039624
+ ldr r0, _08080ED8 @ =gTrainerCards
lsls r4, r5, 1
adds r4, r5
lsls r4, 5
@@ -958,12 +958,12 @@ _08080E9A:
.align 2, 0
_08080ED0: .4byte gLinkPlayers
_08080ED4: .4byte gBlockRecvBuffer
-_08080ED8: .4byte gUnknown_2039624
+_08080ED8: .4byte gTrainerCards
_08080EDC:
lsls r1, r5, 8
ldr r0, _08080F3C @ =gBlockRecvBuffer
adds r1, r0
- ldr r2, _08080F40 @ =gUnknown_2039624
+ ldr r2, _08080F40 @ =gTrainerCards
lsls r0, r5, 1
adds r0, r5
lsls r0, 5
@@ -1004,7 +1004,7 @@ _08080EF8:
b _08080F66
.align 2, 0
_08080F3C: .4byte gBlockRecvBuffer
-_08080F40: .4byte gUnknown_2039624
+_08080F40: .4byte gTrainerCards
_08080F44: .4byte gSpecialVar_Result
_08080F48: .4byte gLinkType
_08080F4C: .4byte 0x00004411
@@ -1935,12 +1935,12 @@ sub_8081668: @ 8081668
ldrb r0, [r0]
movs r5, 0x1
eors r0, r5
- bl sub_80CD98C
+ bl TryRecordLinkBattleOutcome
ldr r0, _080816C0 @ =gWirelessCommType
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
@@ -2387,13 +2387,13 @@ sp02A_crash_sound: @ 8081A1C
push {lr}
ldr r0, _08081A2C @ =gSpecialVar_0x8006
ldrb r0, [r0]
- ldr r1, _08081A30 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r1, _08081A30 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl sub_808B700
pop {r0}
bx r0
.align 2, 0
_08081A2C: .4byte gSpecialVar_0x8006
-_08081A30: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_08081A30: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sp02A_crash_sound
thumb_func_start sub_8081A34
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 c92e072cb..f6cd11410 100644
--- a/asm/clear_save_data_screen.s
+++ b/asm/clear_save_data_screen.s
@@ -109,18 +109,18 @@ _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
movs r1, 0x1
movs r2, 0x1
movs r3, 0xF
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
movs r0, 0x1
str r0, [sp]
str r0, [sp, 0x4]
@@ -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
@@ -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
@@ -304,7 +304,7 @@ _080F57D4:
lsrs r4, r0, 24
cmp r4, 0
bne _080F57FE
- bl sub_81100E8
+ bl DestroyYesNoMenu
adds r0, r6, 0
bl DestroyTask
bl FreeAllWindowBuffers
diff --git a/asm/credits.s b/asm/credits.s
index d6b72605b..e52275e77 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -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
@@ -1987,7 +1987,7 @@ _080F49D8:
ands r1, r3
orrs r1, r2
str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4A1C @ =gUnknown_8410E10
b _080F4A36
.align 2, 0
@@ -2005,7 +2005,7 @@ _080F4A20:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x2]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4A48 @ =gUnknown_8411BF8
_080F4A36:
movs r1, 0xF8
@@ -2025,7 +2025,7 @@ _080F4A4C:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x2]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4ADC @ =gUnknown_84129A0
movs r1, 0xF8
lsls r1, 1
@@ -2107,7 +2107,7 @@ _080F4AFE:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4B1C @ =gUnknown_8413318
b _080F4B8A
.align 2, 0
@@ -2122,7 +2122,7 @@ _080F4B20:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4B4C @ =gUnknown_8413318
movs r1, 0xF0
lsls r1, 1
@@ -2144,7 +2144,7 @@ _080F4B54:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4B70 @ =gUnknown_8413854
b _080F4B8A
.align 2, 0
@@ -2159,7 +2159,7 @@ _080F4B74:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4BF0 @ =gUnknown_8413D98
_080F4B8A:
movs r1, 0xF0
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/decompress.s b/asm/decompress.s
deleted file mode 100644
index cc38e0df5..000000000
--- a/asm/decompress.s
+++ /dev/null
@@ -1,887 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start LZDecompressWram
-LZDecompressWram: @ 800EBB4
- push {lr}
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end LZDecompressWram
-
- thumb_func_start LZDecompressVram
-LZDecompressVram: @ 800EBC0
- push {lr}
- bl LZ77UnCompVram
- pop {r0}
- bx r0
- thumb_func_end LZDecompressVram
-
- thumb_func_start LoadCompressedObjectPic
-LoadCompressedObjectPic: @ 800EBCC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- ldr r5, _0800EBFC @ =gDecompressionBuffer
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0800EBFC: .4byte gDecompressionBuffer
- thumb_func_end LoadCompressedObjectPic
-
- thumb_func_start LoadCompressedObjectPicOverrideBuffer
-LoadCompressedObjectPicOverrideBuffer: @ 800EC00
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end LoadCompressedObjectPicOverrideBuffer
-
- thumb_func_start LoadCompressedObjectPalette
-LoadCompressedObjectPalette: @ 800EC28
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5]
- ldr r4, _0800EC54 @ =gDecompressionBuffer
- adds r1, r4, 0
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800EC58 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC54: .4byte gDecompressionBuffer
-_0800EC58: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPalette
-
- thumb_func_start LoadCompressedObjectPaletteOverrideBuffer
-LoadCompressedObjectPaletteOverrideBuffer: @ 800EC5C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, [r5]
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800EC88 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC88: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPaletteOverrideBuffer
-
- thumb_func_start DecompressPicFromTable
-DecompressPicFromTable: @ 800EC8C
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0800ECAC
- ldr r0, _0800ECA8 @ =gMonFrontPicTable
- ldr r0, [r0]
- bl LZ77UnCompWram
- b _0800ECB4
- .align 2, 0
-_0800ECA8: .4byte gMonFrontPicTable
-_0800ECAC:
- ldr r0, [r3]
- adds r1, r4, 0
- bl LZ77UnCompWram
-_0800ECB4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_800EDAC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end DecompressPicFromTable
-
- thumb_func_start sub_800ECC4
-sub_800ECC4: @ 800ECC4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r0, r2, 3
- ldr r1, _0800ECEC @ =gMonFrontPicTable
- adds r0, r1
- movs r1, 0
- cmp r4, r0
- bne _0800ECDA
- movs r1, 0x1
-_0800ECDA:
- str r1, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- bl LoadSpecialPokePic
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800ECEC: .4byte gMonFrontPicTable
- thumb_func_end sub_800ECC4
-
- thumb_func_start LoadSpecialPokePic
-LoadSpecialPokePic: @ 800ECF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r7, r2, 0
- adds r5, r3, 0
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r7, 0xC9
- bne _0800ED6C
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r5
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r5
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r5
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r5
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0800ED3E
- movs r1, 0xC9
- b _0800ED48
-_0800ED3E:
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r1, r2
- lsls r0, 16
- lsrs r1, r0, 16
-_0800ED48:
- mov r0, r8
- cmp r0, 0
- bne _0800ED5C
- ldr r0, _0800ED58 @ =gMonBackPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800ED78
- .align 2, 0
-_0800ED58: .4byte gMonBackPicTable
-_0800ED5C:
- ldr r0, _0800ED68 @ =gMonFrontPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800ED78
- .align 2, 0
-_0800ED68: .4byte gMonFrontPicTable
-_0800ED6C:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- ble _0800ED84
- ldr r0, _0800ED80 @ =gMonFrontPicTable
- ldr r0, [r0]
-_0800ED78:
- adds r1, r4, 0
- bl LZ77UnCompWram
- b _0800ED8C
- .align 2, 0
-_0800ED80: .4byte gMonFrontPicTable
-_0800ED84:
- ldr r0, [r6]
- adds r1, r4, 0
- bl LZ77UnCompWram
-_0800ED8C:
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_800EDAC
- lsls r0, r7, 16
- lsrs r0, 16
- adds r1, r5, 0
- adds r2, r4, 0
- mov r3, r8
- bl DrawSpindaSpots
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end LoadSpecialPokePic
-
- thumb_func_start sub_800EDAC
-sub_800EDAC: @ 800EDAC
- push {lr}
- adds r3, r0, 0
- movs r0, 0xCD
- lsls r0, 1
- cmp r1, r0
- bne _0800EDC6
- movs r1, 0x80
- lsls r1, 4
- adds r0, r3, r1
- ldr r2, _0800EDCC @ =0x04000200
- adds r1, r3, 0
- bl CpuSet
-_0800EDC6:
- pop {r0}
- bx r0
- .align 2, 0
-_0800EDCC: .4byte 0x04000200
- thumb_func_end sub_800EDAC
-
- thumb_func_start sub_800EDD0
-sub_800EDD0: @ 800EDD0
- push {lr}
- ldr r0, [r0]
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end sub_800EDD0
-
- thumb_func_start sub_800EDDC
-sub_800EDDC: @ 800EDDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r9, r0
- str r1, [sp]
- str r2, [sp, 0x4]
- adds r5, r3, 0
- movs r0, 0x1
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- bne _0800EDFC
- b _0800EF94
-_0800EDFC:
- asrs r0, r1, 1
- adds r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- movs r0, 0
- ldr r2, [sp]
- cmp r0, r2
- blt _0800EE10
- b _0800F024
-_0800EE10:
- movs r4, 0x8
- subs r1, r4, r1
- str r1, [sp, 0x10]
-_0800EE16:
- movs r7, 0
- adds r0, 0x1
- str r0, [sp, 0x14]
- ldr r0, [sp, 0x10]
- cmp r7, r0
- bge _0800EE92
- ldr r1, [sp, 0x8]
- lsls r1, 8
- str r1, [sp, 0x18]
- movs r2, 0
- mov r10, r2
- mov r0, r9
- movs r4, 0x8
- subs r0, r4, r0
- str r0, [sp, 0xC]
-_0800EE34:
- movs r3, 0
- asrs r0, r7, 1
- adds r1, r7, 0
- movs r2, 0x1
- ands r1, r2
- str r1, [sp, 0x20]
- lsls r0, 8
- mov r8, r0
- mov r12, r5
-_0800EE46:
- lsls r1, r3, 5
- ldr r4, [sp, 0x18]
- adds r0, r5, r4
- adds r0, r1
- mov r1, r8
- adds r2, r0, r1
- mov r1, r12
- add r1, r8
- movs r6, 0xF
-_0800EE58:
- ldr r4, [sp, 0x20]
- cmp r4, 0
- bne _0800EE68
- strb r4, [r1]
- add r4, sp, 0x20
- ldrb r4, [r4]
- strb r4, [r2, 0x10]
- b _0800EE76
-_0800EE68:
- mov r0, r10
- strb r0, [r1, 0x10]
- movs r4, 0x80
- lsls r4, 1
- adds r4, r2, r4
- str r4, [sp, 0x1C]
- strb r0, [r4]
-_0800EE76:
- adds r2, 0x1
- adds r1, 0x1
- subs r6, 0x1
- cmp r6, 0
- bge _0800EE58
- movs r0, 0x20
- add r12, r0
- adds r3, 0x1
- cmp r3, 0x7
- ble _0800EE46
- adds r7, 0x1
- ldr r1, [sp, 0xC]
- cmp r7, r1
- blt _0800EE34
-_0800EE92:
- movs r7, 0
- movs r2, 0
-_0800EE96:
- movs r6, 0
- adds r4, r7, 0x1
- mov r8, r4
- lsls r4, r7, 5
-_0800EE9E:
- adds r0, r6, 0x1
- mov r10, r0
- lsls r1, r6, 8
- adds r0, r1, 0
- adds r0, 0xC0
- adds r0, r5, r0
- adds r0, r4
- adds r1, r5, r1
- adds r1, r4
- movs r3, 0x1F
-_0800EEB2:
- strb r2, [r1]
- strb r2, [r0]
- adds r0, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EEB2
- mov r6, r10
- cmp r6, 0x7
- ble _0800EE9E
- mov r7, r8
- cmp r7, 0x1
- ble _0800EE96
- mov r1, r9
- cmp r1, 0x5
- bne _0800EED8
- movs r2, 0x90
- lsls r2, 1
- adds r5, r2
-_0800EED8:
- movs r7, 0
- cmp r7, r9
- bge _0800EF6E
-_0800EEDE:
- movs r3, 0
- adds r7, 0x1
- mov r8, r7
- cmp r3, r9
- bge _0800EF4E
-_0800EEE8:
- adds r3, 0x1
- mov r10, r3
- ldr r4, [sp, 0x4]
- adds r4, 0x20
- adds r7, r5, 0
- adds r7, 0x20
- movs r0, 0x12
- adds r0, r5
- mov r12, r0
- ldr r2, [sp, 0x4]
- adds r3, r5, 0
- movs r6, 0x3
-_0800EF00:
- ldrb r0, [r2]
- mov r1, r12
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- strb r0, [r1, 0x1]
- ldrb r0, [r2, 0x2]
- strb r0, [r1, 0x1E]
- ldrb r0, [r2, 0x3]
- strb r0, [r1, 0x1F]
- movs r0, 0x81
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x10]
- strb r0, [r1]
- ldr r0, _0800EF58 @ =0x00000103
- adds r1, r3, r0
- ldrb r0, [r2, 0x11]
- strb r0, [r1]
- movs r0, 0x90
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x12]
- strb r0, [r1]
- ldr r0, _0800EF5C @ =0x00000121
- adds r1, r3, r0
- ldrb r0, [r2, 0x13]
- strb r0, [r1]
- movs r1, 0x4
- add r12, r1
- adds r2, 0x4
- adds r3, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _0800EF00
- str r4, [sp, 0x4]
- adds r5, r7, 0
- mov r3, r10
- cmp r3, r9
- blt _0800EEE8
-_0800EF4E:
- mov r2, r9
- cmp r2, 0x7
- bne _0800EF60
- adds r5, 0x20
- b _0800EF68
- .align 2, 0
-_0800EF58: .4byte 0x00000103
-_0800EF5C: .4byte 0x00000121
-_0800EF60:
- mov r4, r9
- cmp r4, 0x5
- bne _0800EF68
- adds r5, 0x60
-_0800EF68:
- mov r7, r8
- cmp r7, r9
- blt _0800EEDE
-_0800EF6E:
- mov r0, r9
- cmp r0, 0x7
- bne _0800EF7C
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1
- b _0800EF88
-_0800EF7C:
- mov r2, r9
- cmp r2, 0x5
- bne _0800EF88
- movs r4, 0xF0
- lsls r4, 1
- adds r5, r4
-_0800EF88:
- ldr r0, [sp, 0x14]
- ldr r1, [sp]
- cmp r0, r1
- bge _0800EF92
- b _0800EE16
-_0800EF92:
- b _0800F024
-_0800EF94:
- movs r6, 0
- ldr r2, [sp]
- cmp r6, r2
- bge _0800F024
-_0800EF9C:
- adds r6, 0x1
- mov r10, r6
- mov r4, r9
- cmp r4, 0x6
- bne _0800EFB4
- movs r0, 0
- movs r3, 0xFF
-_0800EFAA:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EFAA
-_0800EFB4:
- movs r7, 0
- cmp r7, r9
- bge _0800F008
-_0800EFBA:
- adds r7, 0x1
- mov r8, r7
- mov r1, r9
- lsls r0, r1, 5
- cmp r1, 0x6
- bne _0800EFD4
- movs r1, 0
- movs r3, 0x1F
-_0800EFCA:
- strb r1, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EFCA
-_0800EFD4:
- adds r1, r0, 0
- cmp r1, 0
- ble _0800EFEE
- adds r3, r1, 0
-_0800EFDC:
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- strb r0, [r5]
- adds r2, 0x1
- str r2, [sp, 0x4]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800EFDC
-_0800EFEE:
- mov r4, r9
- cmp r4, 0x6
- bne _0800F002
- movs r0, 0
- movs r3, 0x1F
-_0800EFF8:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EFF8
-_0800F002:
- mov r7, r8
- cmp r7, r9
- blt _0800EFBA
-_0800F008:
- mov r0, r9
- cmp r0, 0x6
- bne _0800F01C
- movs r0, 0
- movs r3, 0xFF
-_0800F012:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800F012
-_0800F01C:
- mov r6, r10
- ldr r1, [sp]
- cmp r6, r1
- blt _0800EF9C
-_0800F024:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800EDDC
-
- thumb_func_start sub_800F034
-sub_800F034: @ 800F034
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- ldr r0, [r0]
- lsrs r0, 8
- bl AllocZeroed
- adds r5, r0, 0
- cmp r5, 0
- beq _0800F06E
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0
- bl Free
- movs r0, 0
- b _0800F070
-_0800F06E:
- movs r0, 0x1
-_0800F070:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_800F034
-
- thumb_func_start sub_800F078
-sub_800F078: @ 800F078
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- ldr r0, [r0]
- lsrs r0, 8
- bl AllocZeroed
- adds r5, r0, 0
- cmp r5, 0
- beq _0800F0B8
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r2, [r4, 0x4]
- ldr r1, _0800F0B4 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- adds r0, r5, 0
- bl Free
- movs r0, 0
- b _0800F0BA
- .align 2, 0
-_0800F0B4: .4byte 0xffff0000
-_0800F0B8:
- movs r0, 0x1
-_0800F0BA:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_800F078
-
- thumb_func_start GetDecompressedDataSize
-GetDecompressedDataSize: @ 800F0C4
- sub sp, 0x4
- mov r3, sp
- ldrb r2, [r0, 0x1]
- mov r1, sp
- strb r2, [r1]
- ldrb r1, [r0, 0x2]
- strb r1, [r3, 0x1]
- ldrb r0, [r0, 0x3]
- strb r0, [r3, 0x2]
- movs r0, 0
- strb r0, [r3, 0x3]
- ldr r0, [sp]
- add sp, 0x4
- bx lr
- thumb_func_end GetDecompressedDataSize
-
- thumb_func_start DecompressPicFromTable_DontHandleDeoxys
-DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0
- push {lr}
- adds r3, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r2, r0
- ble _0800F0FC
- ldr r0, _0800F0F8 @ =gMonFrontPicTable
- ldr r0, [r0]
- bl LZ77UnCompWram
- b _0800F102
- .align 2, 0
-_0800F0F8: .4byte gMonFrontPicTable
-_0800F0FC:
- ldr r0, [r3]
- bl LZ77UnCompWram
-_0800F102:
- pop {r0}
- bx r0
- thumb_func_end DecompressPicFromTable_DontHandleDeoxys
-
- thumb_func_start HandleLoadSpecialPokePic_DontHandleDeoxys
-HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r0, r2, 3
- ldr r1, _0800F130 @ =gMonFrontPicTable
- adds r0, r1
- movs r1, 0
- cmp r4, r0
- bne _0800F11E
- movs r1, 0x1
-_0800F11E:
- str r1, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- bl LoadSpecialPokePic_DontHandleDeoxys
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F130: .4byte gMonFrontPicTable
- thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys
-
- thumb_func_start LoadSpecialPokePic_DontHandleDeoxys
-LoadSpecialPokePic_DontHandleDeoxys: @ 800F134
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- adds r4, r3, 0
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r7, 0xC9
- bne _0800F1B0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r4
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r4
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r4
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r4
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0800F182
- movs r1, 0xC9
- b _0800F18C
-_0800F182:
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r1, r2
- lsls r0, 16
- lsrs r1, r0, 16
-_0800F18C:
- mov r0, r8
- cmp r0, 0
- bne _0800F1A0
- ldr r0, _0800F19C @ =gMonBackPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800F1BC
- .align 2, 0
-_0800F19C: .4byte gMonBackPicTable
-_0800F1A0:
- ldr r0, _0800F1AC @ =gMonFrontPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800F1BC
- .align 2, 0
-_0800F1AC: .4byte gMonFrontPicTable
-_0800F1B0:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- ble _0800F1C8
- ldr r0, _0800F1C4 @ =gMonFrontPicTable
- ldr r0, [r0]
-_0800F1BC:
- adds r1, r5, 0
- bl LZ77UnCompWram
- b _0800F1D0
- .align 2, 0
-_0800F1C4: .4byte gMonFrontPicTable
-_0800F1C8:
- ldr r0, [r6]
- adds r1, r5, 0
- bl LZ77UnCompWram
-_0800F1D0:
- lsls r0, r7, 16
- lsrs r0, 16
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl DrawSpindaSpots
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end LoadSpecialPokePic_DontHandleDeoxys
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/diploma.s b/asm/diploma.s
deleted file mode 100644
index 31f0d368d..000000000
--- a/asm/diploma.s
+++ /dev/null
@@ -1,607 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80F4BFC
-sub_80F4BFC: @ 80F4BFC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80F4BFC
-
- thumb_func_start sub_80F4C10
-sub_80F4C10: @ 80F4C10
- push {r4,lr}
- ldr r4, _080F4C40 @ =gUnknown_203AB48
- ldr r0, _080F4C44 @ =0x00001004
- bl AllocZeroed
- str r0, [r4]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- strb r1, [r0, 0x1]
- ldr r0, [r4]
- strb r1, [r0, 0x2]
- bl sub_80F4E24
- ldr r0, _080F4C48 @ =sub_80F4C68
- movs r1, 0
- bl CreateTask
- ldr r0, _080F4C4C @ =sub_80F4C50
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4C40: .4byte gUnknown_203AB48
-_080F4C44: .4byte 0x00001004
-_080F4C48: .4byte sub_80F4C68
-_080F4C4C: .4byte sub_80F4C50
- thumb_func_end sub_80F4C10
-
- thumb_func_start sub_80F4C50
-sub_80F4C50: @ 80F4C50
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80F4C50
-
- thumb_func_start sub_80F4C68
-sub_80F4C68: @ 80F4C68
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F4C84 @ =gUnknown_203AB48
- ldr r0, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x8
- bhi _080F4D30
- lsls r0, 2
- ldr r1, _080F4C88 @ =_080F4C8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F4C84: .4byte gUnknown_203AB48
-_080F4C88: .4byte _080F4C8C
- .align 2, 0
-_080F4C8C:
- .4byte _080F4CB0
- .4byte _080F4CB8
- .4byte _080F4CBE
- .4byte _080F4CCA
- .4byte _080F4CDC
- .4byte _080F4CFC
- .4byte _080F4D02
- .4byte _080F4D10
- .4byte _080F4D22
-_080F4CB0:
- movs r0, 0
- bl SetVBlankCallback
- b _080F4D50
-_080F4CB8:
- bl sub_80F4E40
- b _080F4D50
-_080F4CBE:
- bl sub_80F4F9C
- lsls r0, 24
- cmp r0, 0
- beq _080F4D5A
- b _080F4D50
-_080F4CCA:
- ldr r1, _080F4CD8 @ =gUnknown_84154E8
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _080F4D50
- .align 2, 0
-_080F4CD8: .4byte gUnknown_84154E8
-_080F4CDC:
- bl sub_8088F84
- lsls r0, 16
- cmp r0, 0
- beq _080F4CF2
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0x14
- bl SetGpuReg
- b _080F4D50
-_080F4CF2:
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- b _080F4D50
-_080F4CFC:
- bl sub_80F5018
- b _080F4D50
-_080F4D02:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _080F4D50
-_080F4D10:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080F4D50
-_080F4D22:
- ldr r0, _080F4D2C @ =sub_80F4BFC
- bl SetVBlankCallback
- b _080F4D50
- .align 2, 0
-_080F4D2C: .4byte sub_80F4BFC
-_080F4D30:
- ldr r0, _080F4D64 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F4D50
- movs r0, 0x5
- bl PlayFanfareByFanfareNum
- ldr r0, _080F4D68 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080F4D6C @ =sub_80F4D74
- str r0, [r1]
-_080F4D50:
- ldr r0, _080F4D70 @ =gUnknown_203AB48
- ldr r1, [r0]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_080F4D5A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4D64: .4byte gPaletteFade
-_080F4D68: .4byte gTasks
-_080F4D6C: .4byte sub_80F4D74
-_080F4D70: .4byte gUnknown_203AB48
- thumb_func_end sub_80F4C68
-
- thumb_func_start sub_80F4D74
-sub_80F4D74: @ 80F4D74
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, _080F4D90 @ =gUnknown_203AB48
- ldr r0, [r4]
- ldrb r1, [r0]
- cmp r1, 0x1
- beq _080F4DA8
- cmp r1, 0x1
- bgt _080F4D94
- cmp r1, 0
- beq _080F4D9A
- b _080F4DD6
- .align 2, 0
-_080F4D90: .4byte gUnknown_203AB48
-_080F4D94:
- cmp r1, 0x2
- beq _080F4DD0
- b _080F4DD6
-_080F4D9A:
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _080F4DD6
- b _080F4DC2
-_080F4DA8:
- ldr r0, _080F4DCC @ =gMain
- ldrh r0, [r0, 0x2E]
- ands r1, r0
- cmp r1, 0
- beq _080F4DD6
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080F4DC2:
- ldr r1, [r4]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F4DD6
- .align 2, 0
-_080F4DCC: .4byte gMain
-_080F4DD0:
- adds r0, r2, 0
- bl sub_80F4DE0
-_080F4DD6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F4D74
-
- thumb_func_start sub_80F4DE0
-sub_80F4DE0: @ 80F4DE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080F4E18 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080F4E10
- adds r0, r2, 0
- bl DestroyTask
- bl FreeAllWindowBuffers
- ldr r4, _080F4E1C @ =gUnknown_203AB48
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r0, _080F4E20 @ =sub_80568FC
- bl SetMainCallback2
-_080F4E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4E18: .4byte gPaletteFade
-_080F4E1C: .4byte gUnknown_203AB48
-_080F4E20: .4byte sub_80568FC
- thumb_func_end sub_80F4DE0
-
- thumb_func_start sub_80F4E24
-sub_80F4E24: @ 80F4E24
- push {lr}
- bl ResetSpriteData
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- bl ResetTasks
- bl ScanlineEffect_Stop
- pop {r0}
- bx r0
- thumb_func_end sub_80F4E24
-
- thumb_func_start sub_80F4E40
-sub_80F4E40: @ 80F4E40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0xC
- mov r8, r0
- add r2, sp, 0x8
- movs r6, 0
- ldr r1, _080F4F88 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080F4F8C @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080F4E66:
- strh r6, [r2]
- add r0, sp, 0x8
- 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 _080F4E66
- strh r6, [r2]
- add r2, sp, 0x8
- 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, 0xC]
- ldr r2, _080F4F88 @ =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
- add r0, sp, 0x8
- 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, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _080F4F90 @ =gUnknown_8415A08
- movs r0, 0
- movs r2, 0x2
- 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
- ldr r0, _080F4F94 @ =gUnknown_8415A10
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r0, _080F4F98 @ =gUnknown_203AB48
- ldr r1, [r0]
- adds r1, 0x4
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r5, 0x1E
- str r5, [sp]
- movs r4, 0x14
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4F88: .4byte 0x040000d4
-_080F4F8C: .4byte 0x81000800
-_080F4F90: .4byte gUnknown_8415A08
-_080F4F94: .4byte gUnknown_8415A10
-_080F4F98: .4byte gUnknown_203AB48
- thumb_func_end sub_80F4E40
-
- thumb_func_start sub_80F4F9C
-sub_80F4F9C: @ 80F4F9C
- push {lr}
- sub sp, 0x4
- ldr r0, _080F4FB4 @ =gUnknown_203AB48
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- beq _080F4FC8
- cmp r0, 0x1
- bgt _080F4FB8
- cmp r0, 0
- beq _080F4FC2
- b _080F4FF8
- .align 2, 0
-_080F4FB4: .4byte gUnknown_203AB48
-_080F4FB8:
- cmp r0, 0x2
- beq _080F4FE0
- cmp r0, 0x3
- beq _080F4FEE
- b _080F4FF8
-_080F4FC2:
- bl reset_temp_tile_data_buffers
- b _080F5000
-_080F4FC8:
- ldr r1, _080F4FDC @ =gUnknown_84147C0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _080F5000
- .align 2, 0
-_080F4FDC: .4byte gUnknown_84147C0
-_080F4FE0:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F5000
- b _080F500A
-_080F4FEE:
- ldr r0, _080F4FFC @ =gUnknown_8415954
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
-_080F4FF8:
- movs r0, 0x1
- b _080F500C
- .align 2, 0
-_080F4FFC: .4byte gUnknown_8415954
-_080F5000:
- ldr r0, _080F5014 @ =gUnknown_203AB48
- ldr r1, [r0]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
-_080F500A:
- movs r0, 0
-_080F500C:
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080F5014: .4byte gUnknown_203AB48
- thumb_func_end sub_80F4F9C
-
- thumb_func_start sub_80F5018
-sub_80F5018: @ 80F5018
- push {r4-r6,lr}
- sub sp, 0xAC
- bl UnkTextUtil_Reset
- ldr r0, _080F5040 @ =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r0, 0
- bl UnkTextUtil_SetPtrI
- bl sub_8088F84
- lsls r0, 16
- cmp r0, 0
- beq _080F5048
- ldr r1, _080F5044 @ =gUnknown_841B68F
- movs r0, 0x1
- bl UnkTextUtil_SetPtrI
- b _080F5050
- .align 2, 0
-_080F5040: .4byte gSaveBlock2Ptr
-_080F5044: .4byte gUnknown_841B68F
-_080F5048:
- ldr r1, _080F50E0 @ =gUnknown_841B698
- movs r0, 0x1
- bl UnkTextUtil_SetPtrI
-_080F5050:
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r1, _080F50E4 @ =gUnknown_841B60E
- add r0, sp, 0xC
- bl UnkTextUtil_StringExpandPlaceholders
- movs r5, 0x1
- negs r5, r5
- movs r0, 0x2
- add r1, sp, 0xC
- adds r2, r5, 0
- bl GetStringWidth
- lsrs r2, r0, 1
- movs r4, 0x78
- subs r2, r4, r2
- lsls r2, 24
- lsrs r2, 24
- ldr r6, _080F50E8 @ =gUnknown_8415A04
- str r6, [sp]
- str r5, [sp, 0x4]
- add r0, sp, 0xC
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x2
- movs r3, 0x4
- bl box_print
- ldr r1, _080F50EC @ =gUnknown_841B619
- add r0, sp, 0xC
- bl UnkTextUtil_StringExpandPlaceholders
- movs r0, 0x2
- add r1, sp, 0xC
- adds r2, r5, 0
- bl GetStringWidth
- lsrs r0, 1
- subs r4, r0
- lsls r4, 24
- lsrs r4, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- add r0, sp, 0xC
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0x1E
- bl box_print
- str r6, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, _080F50F0 @ =gUnknown_841B684
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x78
- movs r3, 0x69
- bl box_print
- movs r0, 0
- bl PutWindowTilemap
- add sp, 0xAC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F50E0: .4byte gUnknown_841B698
-_080F50E4: .4byte gUnknown_841B60E
-_080F50E8: .4byte gUnknown_8415A04
-_080F50EC: .4byte gUnknown_841B619
-_080F50F0: .4byte gUnknown_841B684
- thumb_func_end sub_80F5018
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index 19b2b2c43..13a4d95b5 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -6474,7 +6474,7 @@ 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
@@ -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
@@ -9983,7 +9983,7 @@ _08155480:
movs r1, 0
adds r2, r5, 0
bl AddTextPrinterParameterized
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
bl sub_8153390
lsls r0, 16
lsrs r0, 16
@@ -9992,10 +9992,10 @@ _08155480:
bl CopyItemName
movs r0, 0
adds r1, r5, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, _0815556C @ =gUnknown_841CD7A
add r0, sp, 0xC
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, [r4]
add r0, r10
ldrb r0, [r0]
@@ -10016,7 +10016,7 @@ _08155480:
beq _0815559E
cmp r4, 0x3
beq _0815559E
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
bl sub_8153390
lsls r0, 16
lsrs r0, 16
@@ -10024,12 +10024,12 @@ _08155480:
bl CopyItemName
movs r0, 0
adds r1, r5, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
cmp r4, 0x2
bne _08155574
ldr r1, _08155570 @ =gUnknown_841CD9F
add r0, sp, 0xC
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _08155580
.align 2, 0
_08155558: .4byte 0x00000101
@@ -10044,7 +10044,7 @@ _08155574:
bne _08155580
ldr r1, _081555C4 @ =gUnknown_841CDBA
add r0, sp, 0xC
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_08155580:
ldr r0, _081555C8 @ =gUnknown_203F440
ldr r0, [r0]
@@ -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
@@ -11348,7 +11348,7 @@ _08156020:
.align 2, 0
_0815602C: .4byte gUnknown_84758A8
_08156030:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _08156082
_08156036:
ldr r1, _08156040 @ =gUnknown_8475B3C
@@ -11366,12 +11366,12 @@ _08156044:
_0815604C:
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _08156082
.align 2, 0
_08156058: .4byte gUnknown_84763CC
_0815605C:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
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
deleted file mode 100644
index 2428f2984..000000000
--- a/asm/egg_hatch.s
+++ /dev/null
@@ -1,8 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- .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/ereader_helpers.s b/asm/ereader_helpers.s
deleted file mode 100644
index 067ab8659..000000000
--- a/asm/ereader_helpers.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/evolution_graphics.s b/asm/evolution_graphics.s
index 1dafc92ea..64edbdf7a 100644
--- a/asm/evolution_graphics.s
+++ b/asm/evolution_graphics.s
@@ -573,7 +573,7 @@ _080F5D80: .4byte SpriteCB_PostEvoSparkleSet2
LoadEvoSparkleSpriteAndPal: @ 80F5D84
push {lr}
ldr r0, _080F5D98 @ =gUnknown_841EEC4
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F5D9C @ =gUnknown_841EED4
bl LoadSpritePalettes
pop {r0}
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 08aa16703..e151e6d7d 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -1870,7 +1870,7 @@ _080CEDC6:
cmp r4, 0
bne _080CEE40
bl StopMapMusic
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
ldrh r1, [r5, 0xE]
movs r0, 0x80
orrs r0, r1
@@ -1944,7 +1944,7 @@ _080CEE74:
cmp r0, 0
bne _080CEE90
bl StopMapMusic
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
_080CEE90:
movs r2, 0x1A
ldrsh r0, [r4, r2]
diff --git a/asm/field_camera.s b/asm/field_camera.s
index 5541c6472..f6cbbd0ef 100644
--- a/asm/field_camera.s
+++ b/asm/field_camera.s
@@ -710,11 +710,11 @@ _0805AAA2:
strh r0, [r3]
_0805AABE:
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4}
pop {r0}
bx r0
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 67e7e7d5a..2eee6da2f 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -320,7 +320,7 @@ sub_806CAC8: @ 806CAC8
sub sp, 0x8
adds r5, r0, 0
bl sub_8069A54
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r6, r0, 24
mov r4, sp
@@ -629,7 +629,7 @@ _0806CD54:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _0806CDC0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x2]
@@ -1033,7 +1033,7 @@ _0806D078:
lsls r0, 2
ldr r1, _0806D098 @ =gMapObjects
adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
bne _0806D0A0
@@ -1817,7 +1817,7 @@ _0806D6E0: .4byte gUnknown_203ADFA
_0806D6E4: .4byte gPlayerAvatar
_0806D6E8: .4byte gUnknown_81A8CED
_0806D6EC:
- bl overworld_poison_step
+ bl DoPoisonFieldEffect_step
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1840,7 +1840,7 @@ _0806D704:
.align 2, 0
_0806D71C: .4byte gUnknown_81BF546
_0806D720:
- bl sub_80A0F0C
+ bl SafariZoneTakeStep
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1901,8 +1901,8 @@ _0806D780: .4byte 0x00004021
_0806D784: .4byte gPlayerParty
thumb_func_end AdjustFriendship_step
- thumb_func_start overworld_poison_timer_set
-overworld_poison_timer_set: @ 806D788
+ thumb_func_start ClearPoisonStepCounter
+ClearPoisonStepCounter: @ 806D788
push {lr}
ldr r0, _0806D798 @ =0x00004022
movs r1, 0
@@ -1911,10 +1911,10 @@ overworld_poison_timer_set: @ 806D788
bx r0
.align 2, 0
_0806D798: .4byte 0x00004022
- thumb_func_end overworld_poison_timer_set
+ thumb_func_end ClearPoisonStepCounter
- thumb_func_start overworld_poison_step
-overworld_poison_step: @ 806D79C
+ thumb_func_start DoPoisonFieldEffect_step
+DoPoisonFieldEffect_step: @ 806D79C
push {r4,lr}
ldr r0, _0806D7D8 @ =gMapHeader
ldrb r0, [r0, 0x17]
@@ -1933,7 +1933,7 @@ overworld_poison_step: @ 806D79C
lsls r0, 16
cmp r0, 0
bne _0806D7E0
- bl overworld_poison
+ bl DoPoisonFieldEffect
cmp r0, 0x1
beq _0806D7E0
cmp r0, 0x1
@@ -1951,7 +1951,7 @@ _0806D7E2:
pop {r4}
pop {r1}
bx r1
- thumb_func_end overworld_poison_step
+ thumb_func_end DoPoisonFieldEffect_step
thumb_func_start sub_806D7E8
sub_806D7E8: @ 806D7E8
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 0fa36ce46..7bd1abe80 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -608,12 +608,12 @@ CreateTrainerSprite: @ 8083858
add r8, r4
mov r0, r8
adds r1, r7, 0
- bl LoadCompressedObjectPaletteOverrideBuffer
+ bl LoadCompressedSpritePaletteOverrideBuffer
ldr r0, _080838E4 @ =gTrainerFrontPicTable
adds r4, r0
adds r0, r4, 0
adds r1, r7, 0
- bl LoadCompressedObjectPicOverrideBuffer
+ bl LoadCompressedSpriteSheetOverrideBuffer
mov r1, sp
ldrh r0, [r4, 0x6]
movs r2, 0
@@ -2039,8 +2039,8 @@ _08084350:
cmp r0, 0
bne _08084376
bl sub_8054CA0
- bl warp_in
- ldr r0, _08084384 @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _08084384 @ =CB2_LoadMap
bl SetMainCallback2
ldr r1, _08084388 @ =gFieldCallback
ldr r0, _0808438C @ =mapldr_08084390
@@ -2054,7 +2054,7 @@ _08084376:
.align 2, 0
_0808437C: .4byte gTasks
_08084380: .4byte gFieldEffectArguments
-_08084384: .4byte sub_805671C
+_08084384: .4byte CB2_LoadMap
_08084388: .4byte gFieldCallback
_0808438C: .4byte mapldr_08084390
thumb_func_end task00_8084310
@@ -2062,7 +2062,7 @@ _0808438C: .4byte mapldr_08084390
thumb_func_start mapldr_08084390
mapldr_08084390: @ 8084390
push {r4,lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _080843E8 @ =c3_080843F8
movs r1, 0
@@ -2154,7 +2154,7 @@ _08084450: .4byte gPaletteFade
thumb_func_start sub_8084454
sub_8084454: @ 8084454
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -2235,7 +2235,7 @@ sub_80844BC: @ 80844BC
strb r1, [r0, 0x1]
movs r0, 0x1
strb r0, [r6, 0x6]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
@@ -2243,7 +2243,7 @@ sub_80844BC: @ 80844BC
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
adds r3, r4, 0
adds r3, 0x42
ldrb r0, [r3]
@@ -2653,17 +2653,17 @@ sub_8084820: @ 8084820
ldr r1, _0808488C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808484A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808487E
_0808484A:
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
@@ -2671,7 +2671,7 @@ _0808484A:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
movs r1, 0
@@ -2860,11 +2860,11 @@ sub_80849A0: @ 80849A0
cmp r0, 0x1
bne _080849DC
bl sub_809C460
- bl warp_in
+ bl WarpIntoMap
ldr r1, _080849E4 @ =gFieldCallback
ldr r0, _080849E8 @ =sub_80849F4
str r0, [r1]
- ldr r0, _080849EC @ =sub_805671C
+ ldr r0, _080849EC @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _080849F0 @ =sub_80847C0
bl FindTaskIdByFunc
@@ -2878,14 +2878,14 @@ _080849DC:
_080849E0: .4byte gPaletteFade
_080849E4: .4byte gFieldCallback
_080849E8: .4byte sub_80849F4
-_080849EC: .4byte sub_805671C
+_080849EC: .4byte CB2_LoadMap
_080849F0: .4byte sub_80847C0
thumb_func_end sub_80849A0
thumb_func_start sub_80849F4
sub_80849F4: @ 80849F4
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -2952,7 +2952,7 @@ sub_8084A5C: @ 8084A5C
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
mov r4, sp
adds r4, 0x2
mov r0, sp
@@ -3192,7 +3192,7 @@ sub_8084C3C: @ 8084C3C
ldr r1, _08084C98 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08084C8A
@@ -3205,7 +3205,7 @@ sub_8084C3C: @ 8084C3C
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldr r0, _08084C9C @ =sub_8084A24
bl FindTaskIdByFunc
lsls r0, 24
@@ -3317,12 +3317,12 @@ waterfall_1_do_anim_probably: @ 8084D44
adds r5, r1, 0
bl ScriptContext2_Enable
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _08084D74
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldr r1, _08084D7C @ =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r4, r2]
@@ -3374,7 +3374,7 @@ sub_8084DA4: @ 8084DA4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -3390,7 +3390,7 @@ sub_8084DCC: @ 8084DCC
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _08084DE2
@@ -3883,11 +3883,11 @@ sub_8085168: @ 8085168
lsrs r0, 24
cmp r0, 0x1
bne _080851A0
- bl warp_in
+ bl WarpIntoMap
ldr r1, _080851AC @ =gFieldCallback
ldr r0, _080851B0 @ =mapldr_080851BC
str r0, [r1]
- ldr r0, _080851B4 @ =sub_805671C
+ ldr r0, _080851B4 @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _080851B8 @ =sub_8084F44
bl FindTaskIdByFunc
@@ -3902,14 +3902,14 @@ _080851A0:
_080851A8: .4byte gPaletteFade
_080851AC: .4byte gFieldCallback
_080851B0: .4byte mapldr_080851BC
-_080851B4: .4byte sub_805671C
+_080851B4: .4byte CB2_LoadMap
_080851B8: .4byte sub_8084F44
thumb_func_end sub_8085168
thumb_func_start mapldr_080851BC
mapldr_080851BC: @ 80851BC
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -4070,7 +4070,7 @@ sub_80852C0: @ 80852C0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
_08085308:
movs r0, 0
pop {r4}
@@ -4084,7 +4084,7 @@ _08085310: .4byte gSprites
sub_8085314: @ 8085314
push {lr}
adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808533E
@@ -4266,7 +4266,7 @@ sub_8085470: @ 8085470
adds r4, r1, 0
adds r6, r2, 0
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080854E4
@@ -4311,7 +4311,7 @@ _080854C4:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x21
bl PlaySE
_080854E4:
@@ -4388,11 +4388,11 @@ sub_808554C: @ 808554C
lsrs r0, 24
cmp r0, 0x1
bne _08085584
- bl warp_in
+ bl WarpIntoMap
ldr r1, _08085590 @ =gFieldCallback
ldr r0, _08085594 @ =sub_8084454
str r0, [r1]
- ldr r0, _08085598 @ =sub_805671C
+ ldr r0, _08085598 @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _0808559C @ =sub_80853E4
bl FindTaskIdByFunc
@@ -4407,7 +4407,7 @@ _08085584:
_0808558C: .4byte gPaletteFade
_08085590: .4byte gFieldCallback
_08085594: .4byte sub_8084454
-_08085598: .4byte sub_805671C
+_08085598: .4byte CB2_LoadMap
_0808559C: .4byte sub_80853E4
thumb_func_end sub_808554C
@@ -4527,7 +4527,7 @@ sub_808566C: @ 808566C
strh r0, [r4, 0x8]
movs r0, 0x40
strh r0, [r4, 0x22]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -4612,11 +4612,11 @@ _08085702:
adds r0, r6, 0
bl FieldObjectSetDirection
bl sub_80555E0
- bl warp_in
+ bl WarpIntoMap
ldr r1, _0808575C @ =gFieldCallback
ldr r0, _08085760 @ =sub_80859D4
str r0, [r1]
- ldr r0, _08085764 @ =sub_805671C
+ ldr r0, _08085764 @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _08085768 @ =sub_808563C
bl FindTaskIdByFunc
@@ -4631,7 +4631,7 @@ _08085750:
_08085758: .4byte gPaletteFade
_0808575C: .4byte gFieldCallback
_08085760: .4byte sub_80859D4
-_08085764: .4byte sub_805671C
+_08085764: .4byte CB2_LoadMap
_08085768: .4byte sub_808563C
thumb_func_end sub_8085690
@@ -4641,12 +4641,12 @@ sub_808576C: @ 808576C
adds r4, r0, 0
adds r6, r1, 0
adds r5, r2, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808578A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080857E4
@@ -4673,7 +4673,7 @@ _0808579E:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r1, [r5]
movs r2, 0
ldrsh r0, [r5, r2]
@@ -4965,7 +4965,7 @@ _080859C4:
thumb_func_start sub_80859D4
sub_80859D4: @ 80859D4
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -5031,7 +5031,7 @@ sub_8085A54: @ 8085A54
beq _08085A78
movs r0, 0x28
bl PlaySE
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5125,7 +5125,7 @@ _08085B10:
cmp r1, r0
bne _08085B58
adds r0, r6, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5200,7 +5200,7 @@ sub_8085BA8: @ 8085BA8
bl ScriptContext2_Enable
bl player_bitmagic
bl CameraObjectReset2
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5406,8 +5406,8 @@ sub_8085D34: @ 8085D34
cmp r0, 0x1
bne _08085D70
bl copy_saved_warp3_bank_and_enter_x_to_warp1
- bl warp_in
- ldr r0, _08085D78 @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _08085D78 @ =CB2_LoadMap
bl SetMainCallback2
ldr r1, _08085D7C @ =gFieldCallback
ldr r0, _08085D80 @ =mapldr_08085D88
@@ -5422,7 +5422,7 @@ _08085D70:
bx r0
.align 2, 0
_08085D74: .4byte gPaletteFade
-_08085D78: .4byte sub_805671C
+_08085D78: .4byte CB2_LoadMap
_08085D7C: .4byte gFieldCallback
_08085D80: .4byte mapldr_08085D88
_08085D84: .4byte sub_8085B78
@@ -5431,7 +5431,7 @@ _08085D84: .4byte sub_8085B78
thumb_func_start mapldr_08085D88
mapldr_08085D88: @ 8085D88
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -5540,7 +5540,7 @@ sub_8085E0C: @ 8085E0C
ldrb r0, [r2]
lsrs r0, 6
strh r0, [r6, 0x24]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -6185,7 +6185,7 @@ sub_8086358: @ 8086358
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F77B8
+ bl Menu_LoadStdPal
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
@@ -6568,7 +6568,7 @@ sub_8086650: @ 8086650
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F77B8
+ bl Menu_LoadStdPal
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
@@ -7050,12 +7050,12 @@ sub_8086A20: @ 8086A20
ldr r1, _08086A68 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086A4A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086A5C
@@ -7063,7 +7063,7 @@ _08086A4A:
bl sub_805CB70
adds r0, r4, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7087,7 +7087,7 @@ sub_8086A6C: @ 8086A6C
lsls r0, 2
ldr r1, _08086AAC @ =gMapObjects
adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _08086AA2
@@ -7135,9 +7135,9 @@ sub_8086AB4: @ 8086AB4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl sub_80641C0
@@ -7145,7 +7145,7 @@ sub_8086AB4: @ 8086AB4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldr r1, _08086B2C @ =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r6, r2]
@@ -7182,7 +7182,7 @@ sub_8086B30: @ 8086B30
ldr r1, _08086BA0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086B96
@@ -7199,7 +7199,7 @@ sub_8086B30: @ 8086B30
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_80DC44C
@@ -7302,12 +7302,12 @@ sub_8086C24: @ 8086C24
ldr r1, _08086C6C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086C4E
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086C60
@@ -7315,7 +7315,7 @@ _08086C4E:
bl sub_805CBE8
adds r0, r4, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7340,7 +7340,7 @@ sub_8086C70: @ 8086C70
ldr r1, _08086CA0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086CEE
@@ -7366,7 +7366,7 @@ _08086CAE:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
b _08086CD2
_08086CC0:
movs r0, 0
@@ -7375,7 +7375,7 @@ _08086CC0:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
_08086CD2:
ldrb r0, [r4, 0x18]
lsls r0, 28
@@ -7405,7 +7405,7 @@ sub_8086CF4: @ 8086CF4
lsls r0, 2
ldr r1, _08086D30 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086D26
@@ -7599,12 +7599,12 @@ sub_8086E70: @ 8086E70
ldr r1, _08086EC4 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086E9A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086EB8
@@ -7617,7 +7617,7 @@ _08086E9A:
bl sub_805CB70
adds r0, r4, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7641,7 +7641,7 @@ sub_8086EC8: @ 8086EC8
lsls r0, 2
ldr r1, _08086F04 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086EF8
@@ -7732,7 +7732,7 @@ sub_8086F64: @ 8086F64
ldr r1, _08086FA4 @ =gMapObjects
adds r0, r1
movs r1, 0x2
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
_08086F98:
pop {r4}
pop {r0}
@@ -7765,7 +7765,7 @@ sub_8086FA8: @ 8086FA8
bne _08086FEC
_08086FCE:
adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086FEC
@@ -7809,7 +7809,7 @@ sub_8086FFC: @ 8086FFC
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -7824,7 +7824,7 @@ sub_8086FFC: @ 8086FFC
strb r0, [r4, 0x1]
adds r0, r4, 0
movs r1, 0x54
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -8433,12 +8433,12 @@ sub_80874C8: @ 80874C8
ldr r1, _080875B8 @ =gMapObjects
adds r5, r0, r1
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080874F2
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080875AE
@@ -8468,7 +8468,7 @@ _0808751A:
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
bl CameraObjectReset2
adds r0, r5, 0
movs r1, 0x3
@@ -8688,7 +8688,7 @@ sub_8087698: @ 8087698
bl sub_805CB70
adds r0, r5, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
@@ -8713,7 +8713,7 @@ sub_8087710: @ 8087710
lsls r0, 2
ldr r1, _08087744 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08087738
@@ -8795,7 +8795,7 @@ _080877B4:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
adds r0, r4, 0
movs r1, 0x1
bl FieldObjectTurn
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
index ceaaaf7a6..b2eb846e7 100644
--- a/asm/field_fadetransition.s
+++ b/asm/field_fadetransition.s
@@ -245,7 +245,7 @@ _0807DCDC:
sub_807DCE4: @ 807DCE4
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _0807DD00 @ =task0A_nop_for_a_while
movs r1, 0xA
@@ -277,7 +277,7 @@ _0807DD1C:
FieldCallback_ReturnToEventScript2: @ 807DD24
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _0807DD40 @ =task0A_asap_script_env_2_enable_and_set_ctx_running
movs r1, 0xA
@@ -366,7 +366,7 @@ _0807DDCA:
sub_807DDD0: @ 807DDD0
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl palette_bg_faded_fill_black
ldr r0, _0807DDEC @ =task_mpl_807DD60
movs r1, 0xA
@@ -434,7 +434,7 @@ _0807DE50:
sub_807DE58: @ 807DE58
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl palette_bg_faded_fill_black
ldr r0, _0807DE74 @ =sub_807DDF0
movs r1, 0xA
@@ -563,7 +563,7 @@ _0807DF5E:
thumb_func_start sub_807DF64
sub_807DF64: @ 807DF64
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_8111CF0
movs r0, 0
bl sub_807DE78
@@ -575,7 +575,7 @@ sub_807DF64: @ 807DF64
thumb_func_start sub_807DF7C
sub_807DF7C: @ 807DF7C
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_8111CF0
movs r0, 0x1
bl sub_807DE78
@@ -587,7 +587,7 @@ sub_807DF7C: @ 807DF7C
thumb_func_start sub_807DF94
sub_807DF94: @ 807DF94
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
movs r0, 0x28
@@ -730,7 +730,7 @@ _0807E0AE:
ldr r1, _0807E0E8 @ =gMapObjects
adds r0, r1
movs r1, 0x10
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x8
strh r0, [r4, 0x8]
b _0807E206
@@ -783,7 +783,7 @@ _0807E10E:
lsls r0, 2
ldr r1, _0807E15C @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
b _0807E1F2
.align 2, 0
_0807E158: .4byte sub_807F204
@@ -807,7 +807,7 @@ _0807E160:
ldr r1, _0807E194 @ =gMapObjects
adds r0, r1
movs r1, 0x10
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r4, 0x8]
b _0807E206
@@ -838,7 +838,7 @@ _0807E198:
lsls r0, 2
ldr r1, _0807E1D8 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
movs r0, 0x3
strh r0, [r4, 0x8]
b _0807E206
@@ -929,7 +929,7 @@ _0807E25E:
lsls r4, 2
ldr r0, _0807E2A4 @ =gMapObjects
adds r4, r0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063F84
@@ -937,7 +937,7 @@ _0807E25E:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r5, 0x8]
b _0807E2C6
@@ -1112,7 +1112,7 @@ _0807E3E4:
sub_807E3EC: @ 807E3EC
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _0807E408 @ =task_mpl_807E3C8
movs r1, 0xA
@@ -1411,7 +1411,7 @@ _0807E632:
strh r0, [r4, 0x8]
b _0807E64A
_0807E63A:
- bl warp_in
+ bl WarpIntoMap
ldr r0, _0807E650 @ =sub_8056788
bl SetMainCallback2
adds r0, r5, 0
@@ -1494,8 +1494,8 @@ _0807E6DC:
ldrb r0, [r0]
cmp r0, 0
bne _0807E6F4
- bl warp_in
- ldr r0, _0807E700 @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _0807E700 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
@@ -1505,7 +1505,7 @@ _0807E6F4:
bx r0
.align 2, 0
_0807E6FC: .4byte gReceivedRemoteLinkPlayers
-_0807E700: .4byte sub_805671C
+_0807E700: .4byte CB2_LoadMap
thumb_func_end sub_807E678
thumb_func_start sub_807E704
@@ -1563,8 +1563,8 @@ _0807E762:
strh r0, [r4, 0x8]
b _0807E77A
_0807E76A:
- bl warp_in
- ldr r0, _0807E780 @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _0807E780 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
@@ -1573,7 +1573,7 @@ _0807E77A:
pop {r0}
bx r0
.align 2, 0
-_0807E780: .4byte sub_805671C
+_0807E780: .4byte CB2_LoadMap
thumb_func_end sub_807E718
thumb_func_start sub_807E784
@@ -1630,8 +1630,8 @@ _0807E7EA:
strh r0, [r4, 0x8]
b _0807E802
_0807E7F2:
- bl warp_in
- ldr r0, _0807E808 @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _0807E808 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
@@ -1640,7 +1640,7 @@ _0807E802:
pop {r0}
bx r0
.align 2, 0
-_0807E808: .4byte sub_805671C
+_0807E808: .4byte CB2_LoadMap
thumb_func_end sub_807E784
thumb_func_start sub_807E80C
@@ -1744,7 +1744,7 @@ _0807E8AE:
lsls r0, 2
adds r0, r4
movs r1, 0x11
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r5, 0x8]
b _0807E976
@@ -1776,7 +1776,7 @@ _0807E8F4:
lsls r0, 2
ldr r1, _0807E93C @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
movs r0, 0
bl sub_807DCB0
movs r0, 0x3
@@ -1871,12 +1871,12 @@ _0807E9DA:
b _0807EA92
_0807E9E8:
adds r0, r6, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0807EA00
adds r0, r6, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0807EAB0
@@ -1957,8 +1957,8 @@ _0807EA9A:
ldr r0, _0807EAB8 @ =gFieldCallback
ldr r1, _0807EABC @ =sub_807DF64
str r1, [r0]
- bl warp_in
- ldr r0, _0807EAC0 @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _0807EAC0 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -1970,7 +1970,7 @@ _0807EAB0:
.align 2, 0
_0807EAB8: .4byte gFieldCallback
_0807EABC: .4byte sub_807DF64
-_0807EAC0: .4byte sub_805671C
+_0807EAC0: .4byte CB2_LoadMap
thumb_func_end sub_807E980
thumb_func_start sub_807EAC4
@@ -2033,7 +2033,7 @@ _0807EB08:
lsrs r0, 7
cmp r0, 0
beq _0807EB4C
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl GetStepInPlaceDelay16AnimId
@@ -2071,7 +2071,7 @@ sub_807EB64: @ 807EB64
lsls r4, 2
ldr r0, _0807EBB8 @ =gMapObjects
adds r4, r0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl GetStepInPlaceDelay16AnimId
@@ -2188,7 +2188,7 @@ sub_807EC34: @ 807EC34
.align 2, 0
_0807EC6C: .4byte gTasks+0x8
_0807EC70:
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl ScriptContext2_Enable
adds r0, r5, 0x2
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 145521094..92ef6a6e4 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -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,7 +1612,7 @@ _0805E9E4:
.align 2, 0
_0805E9F0: .4byte 0x0000ffff
_0805E9F4: .4byte gSprites
- thumb_func_end AddPseudoFieldObject
+ thumb_func_end AddPseudoEventObject
thumb_func_start sprite_new
sprite_new: @ 805E9F8
@@ -2440,8 +2440,8 @@ _0805F058: .4byte gPlayerAvatar
_0805F05C: .4byte gMapObjects
thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId
- thumb_func_start sub_805F060
-sub_805F060: @ 805F060
+ thumb_func_start EventObjectSetGraphicsId
+EventObjectSetGraphicsId: @ 805F060
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2625,7 +2625,7 @@ _0805F1BA:
_0805F1CC: .4byte gSprites
_0805F1D0: .4byte 0x000003ff
_0805F1D4: .4byte 0xfffffc00
- thumb_func_end sub_805F060
+ thumb_func_end EventObjectSetGraphicsId
thumb_func_start FieldObjectSetGraphicsIdByLocalIdAndMap
FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8
@@ -2652,7 +2652,7 @@ FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8
ldr r1, _0805F214 @ =gMapObjects
adds r0, r1
adds r1, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
_0805F20C:
add sp, 0x4
pop {r4}
@@ -10353,7 +10353,7 @@ mss_npc_reset_oampriv3_1_unk2_unk3: @ 80628C0
ldrb r0, [r4]
cmp r0, 0
bne _080628D8
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
strb r0, [r4]
_080628D8:
movs r0, 0x1
@@ -13097,8 +13097,8 @@ FieldObjectMoveDestCoords: @ 8063C50
bx r0
thumb_func_end FieldObjectMoveDestCoords
- thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
-FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 8063C70
+ thumb_func_start FieldObjectIsMovementOverridden
+FieldObjectIsMovementOverridden: @ 8063C70
push {lr}
ldrb r1, [r0]
movs r0, 0x42
@@ -13112,7 +13112,7 @@ _08063C80:
_08063C82:
pop {r1}
bx r1
- thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ thumb_func_end FieldObjectIsMovementOverridden
thumb_func_start FieldObjectIsSpecialAnimActive
FieldObjectIsSpecialAnimActive: @ 8063C88
@@ -13134,8 +13134,8 @@ _08063CA0:
bx r1
thumb_func_end FieldObjectIsSpecialAnimActive
- thumb_func_start sub_8063CA4
-sub_8063CA4: @ 8063CA4
+ thumb_func_start FieldObjectSetHeldMovement
+FieldObjectSetHeldMovement: @ 8063CA4
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
@@ -13146,7 +13146,7 @@ sub_8063CA4: @ 8063CA4
cmp r0, 0x1
beq _08063CC8
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08063CCE
@@ -13180,7 +13180,7 @@ _08063CF4:
bx r1
.align 2, 0
_08063CFC: .4byte gSprites
- thumb_func_end sub_8063CA4
+ thumb_func_end FieldObjectSetHeldMovement
thumb_func_start FieldObjectForceSetSpecialAnim
FieldObjectForceSetSpecialAnim: @ 8063D00
@@ -13191,7 +13191,7 @@ FieldObjectForceSetSpecialAnim: @ 8063D00
bl FieldObjectClearAnimIfSpecialAnimActive
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
pop {r4,r5}
pop {r0}
bx r0
@@ -13242,8 +13242,8 @@ FieldObjectClearAnim: @ 8063D34
_08063D64: .4byte gSprites
thumb_func_end FieldObjectClearAnim
- thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive
-FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8063D68
+ thumb_func_start FieldObjectCheckHeldMovementStatus
+FieldObjectCheckHeldMovementStatus: @ 8063D68
push {lr}
ldrb r1, [r0]
lsls r0, r1, 25
@@ -13256,13 +13256,13 @@ _08063D76:
_08063D78:
pop {r1}
bx r1
- thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ thumb_func_end FieldObjectCheckHeldMovementStatus
- thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished
-FieldObjectClearAnimIfSpecialAnimFinished: @ 8063D7C
+ thumb_func_start FieldObjectClearHeldMovementIfFinished
+FieldObjectClearHeldMovementIfFinished: @ 8063D7C
push {r4,r5,lr}
adds r5, r0, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -13276,7 +13276,7 @@ _08063D96:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished
+ thumb_func_end FieldObjectClearHeldMovementIfFinished
thumb_func_start FieldObjectGetSpecialAnim
FieldObjectGetSpecialAnim: @ 8063DA0
@@ -14023,7 +14023,7 @@ FieldObjectFaceOppositeDirection: @ 80642C8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
lsrs r0, 24
pop {r4}
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index 46f4c3f8e..a326e0f59 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -65,13 +65,13 @@ _0806939E:
movs r1, 0x80
lsls r1, 2
movs r0, 0
- bl sub_814FF98
+ bl TextWindow_LoadTilesStdFrame1
b _080693E2
.align 2, 0
_080693BC: .4byte gUnknown_203ADFA
_080693C0: .4byte gTextFlags
_080693C4:
- bl sub_8069A38
+ bl IsMsgSignPost
lsls r0, 24
cmp r0, 0
bne _080693D4
@@ -90,7 +90,7 @@ _080693E2:
strh r0, [r5, 0x8]
b _08069402
_080693EA:
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -226,7 +226,7 @@ textbox_fdecode_auto_and_task_add: @ 80694C8
ldr r0, _080694E0 @ =gStringVar4
bl StringExpandPlaceholders
movs r0, 0x1
- bl sub_80F6D5C
+ bl AddTextPrinterDiffStyle
bl task_add_textbox
pop {r0}
bx r0
@@ -238,7 +238,7 @@ _080694E0: .4byte gStringVar4
textbox_auto_and_task_add: @ 80694E4
push {lr}
movs r0, 0x1
- bl sub_80F6D5C
+ bl AddTextPrinterDiffStyle
bl task_add_textbox
pop {r0}
bx r0
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index b7824ee84..c753fb948 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -94,12 +94,12 @@ sub_805B45C: @ 805B45C
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0805B4A6
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _0805B4A6
@@ -845,7 +845,7 @@ _0805B9AC: .4byte gPlayerAvatar
thumb_func_start PlayerNotOnBikeNotMoving
PlayerNotOnBikeNotMoving: @ 805B9B0
push {lr}
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl PlayerFaceDirection
@@ -1631,7 +1631,7 @@ PlayerIsAnimActive: @ 805BF7C
lsls r0, 2
ldr r1, _0805BF9C @ =gMapObjects
adds r0, r1
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -1651,7 +1651,7 @@ PlayerCheckIfAnimFinishedOrInactive: @ 805BFA0
lsls r0, 2
ldr r1, _0805BFC0 @ =gMapObjects
adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -1737,7 +1737,7 @@ sub_805C024: @ 805C024
ldr r1, _0805C068 @ =gMapObjects
adds r0, r1
adds r1, r5, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C05E
@@ -1765,7 +1765,7 @@ sub_805C06C: @ 805C06C
ldr r1, _0805C0A0 @ =gMapObjects
adds r0, r1
adds r1, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C094
@@ -1789,7 +1789,7 @@ sub_805C0A4: @ 805C0A4
lsls r1, 24
lsrs r5, r1, 24
adds r1, r5, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C0CA
@@ -2404,7 +2404,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 805C4F4
adds r0, r3
ldrh r0, [r0, 0x12]
strh r0, [r5]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
@@ -2582,8 +2582,8 @@ _0805C6BC:
bx r1
thumb_func_end plaer_get_pos_including_state_based_drift
- thumb_func_start player_get_direction_lower_nybble
-player_get_direction_lower_nybble: @ 805C6C4
+ thumb_func_start GetPlayerFacingDirection
+GetPlayerFacingDirection: @ 805C6C4
ldr r2, _0805C6DC @ =gMapObjects
ldr r0, _0805C6E0 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
@@ -2598,7 +2598,7 @@ player_get_direction_lower_nybble: @ 805C6C4
.align 2, 0
_0805C6DC: .4byte gMapObjects
_0805C6E0: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_lower_nybble
+ thumb_func_end GetPlayerFacingDirection
thumb_func_start player_get_direction_upper_nybble
player_get_direction_upper_nybble: @ 805C6E4
@@ -3257,7 +3257,7 @@ sub_805CB70: @ 805CB70
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -3318,7 +3318,7 @@ sub_805CBE8: @ 805CBE8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -3532,19 +3532,19 @@ sub_805CD84: @ 805CD84
adds r5, r1, 0
adds r4, r2, 0
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0805CE0E
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0805CE0E
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r6, 0xC]
bl GetStepInPlaceDelay16AnimId
adds r1, r0, 0
@@ -3602,19 +3602,19 @@ sub_805CE20: @ 805CE20
adds r5, r1, 0
adds r4, r2, 0
adds r0, r5, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805CE70
adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805CE70
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
bl sub_806DE28
ldrh r0, [r4, 0x10]
@@ -3704,7 +3704,7 @@ PlayerAvatar_DoSecretBaseMatJump: @ 805CEEC
movs r0, 0x1
strb r0, [r5, 0x6]
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805CF48
@@ -3836,7 +3836,7 @@ sub_805CFEC: @ 805CFEC
movs r2, 0x4
bl memcpy
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D054
@@ -3896,7 +3896,7 @@ sub_805D064: @ 805D064
movs r2, 0x5
bl memcpy
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D094
@@ -3924,7 +3924,7 @@ sub_805D0A4: @ 805D0A4
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D0E8
@@ -4073,12 +4073,12 @@ taskFF_0805D1D4: @ 805D1D4
ldr r1, _0805D234 @ =gMapObjects
adds r5, r0, r1
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0805D200
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D228
@@ -4124,7 +4124,7 @@ sub_805D240: @ 805D240
ldr r1, _0805D2B8 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D2AE
@@ -4134,7 +4134,7 @@ sub_805D240: @ 805D240
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
@@ -4503,7 +4503,7 @@ _0805D548:
adds r4, r0
lsls r4, 2
adds r4, r5
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063510
@@ -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]
@@ -4734,7 +4734,7 @@ _0805D6EA:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
@@ -4827,7 +4827,7 @@ sub_805D7C0: @ 805D7C0
adds r4, r0
lsls r4, 2
adds r4, r5
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
@@ -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
@@ -4883,7 +4883,7 @@ sub_805D838: @ 805D838
adds r4, r0
lsls r4, 2
adds r4, r5
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
@@ -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]
@@ -4978,7 +4978,7 @@ sub_805D8D8: @ 805D8D8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
@@ -5131,7 +5131,7 @@ _0805DA2E:
bhi _0805DA60
movs r0, 0x8
strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -5280,7 +5280,7 @@ _0805DB58:
b _0805DBFA
_0805DB5E:
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805DBFA
@@ -5608,7 +5608,7 @@ sub_805DDC8: @ 805DDC8
ble _0805DE20
_0805DDE4:
adds r0, r5, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805DE20
diff --git a/asm/field_poison.s b/asm/field_poison.s
deleted file mode 100644
index f76e7db4f..000000000
--- a/asm/field_poison.s
+++ /dev/null
@@ -1,316 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CheckMonIsValid
-CheckMonIsValid: @ 80A0460
- push {lr}
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080A0478
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _080A047C
-_080A0478:
- movs r0, 0
- b _080A047E
-_080A047C:
- movs r0, 0x1
-_080A047E:
- pop {r1}
- bx r1
- thumb_func_end CheckMonIsValid
-
- thumb_func_start AllMonsFainted
-AllMonsFainted: @ 80A0484
- push {r4,r5,lr}
- ldr r4, _080A04A4 @ =gPlayerParty
- movs r5, 0
-_080A048A:
- adds r0, r4, 0
- bl CheckMonIsValid
- cmp r0, 0
- beq _080A04A8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080A04A8
- movs r0, 0
- b _080A04B2
- .align 2, 0
-_080A04A4: .4byte gPlayerParty
-_080A04A8:
- adds r5, 0x1
- adds r4, 0x64
- cmp r5, 0x5
- ble _080A048A
- movs r0, 0x1
-_080A04B2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end AllMonsFainted
-
- thumb_func_start MonFaintFromPoisonOnField
-MonFaintFromPoisonOnField: @ 80A04B8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080A04FC @ =gPlayerParty
- adds r4, r0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x8
- bl AdjustFriendship
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- ldr r5, _080A0500 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r5, 0
- bl StringGetEnd10
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A04FC: .4byte gPlayerParty
-_080A0500: .4byte gStringVar1
- thumb_func_end MonFaintFromPoisonOnField
-
- thumb_func_start CheckMonFaintedFromPoison
-CheckMonFaintedFromPoison: @ 80A0504
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _080A0540 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- bl CheckMonIsValid
- cmp r0, 0
- beq _080A0544
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080A0544
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0544
- movs r0, 0x1
- b _080A0546
- .align 2, 0
-_080A0540: .4byte gPlayerParty
-_080A0544:
- movs r0, 0
-_080A0546:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckMonFaintedFromPoison
-
- thumb_func_start Task_WhiteOut
-Task_WhiteOut: @ 80A054C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A0570 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080A05A6
- cmp r0, 0x1
- bgt _080A0574
- cmp r0, 0
- beq _080A057A
- b _080A05F6
- .align 2, 0
-_080A0570: .4byte gTasks+0x8
-_080A0574:
- cmp r0, 0x2
- beq _080A05B8
- b _080A05F6
-_080A057A:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bgt _080A05A0
-_080A0584:
- lsls r0, r1, 24
- lsrs r0, 24
- bl CheckMonFaintedFromPoison
- cmp r0, 0
- bne _080A05D0
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r1, r0, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A0584
-_080A05A0:
- movs r0, 0x2
- strh r0, [r4]
- b _080A05F6
-_080A05A6:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _080A05F6
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- b _080A05F6
-_080A05B8:
- bl AllMonsFainted
- adds r1, r0, 0
- cmp r1, 0
- beq _080A05E8
- ldr r1, _080A05CC @ =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- b _080A05EC
- .align 2, 0
-_080A05CC: .4byte gSpecialVar_Result
-_080A05D0:
- ldrb r0, [r4, 0x2]
- bl MonFaintFromPoisonOnField
- ldr r0, _080A05E4 @ =gUnknown_81A5476
- bl ShowFieldMessage
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080A05F6
- .align 2, 0
-_080A05E4: .4byte gUnknown_81A5476
-_080A05E8:
- ldr r0, _080A05FC @ =gSpecialVar_Result
- strh r1, [r0]
-_080A05EC:
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
-_080A05F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A05FC: .4byte gSpecialVar_Result
- thumb_func_end Task_WhiteOut
-
- thumb_func_start ExecuteWhiteOut
-ExecuteWhiteOut: @ 80A0600
- push {lr}
- ldr r0, _080A0614 @ =Task_WhiteOut
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080A0614: .4byte Task_WhiteOut
- thumb_func_end ExecuteWhiteOut
-
- thumb_func_start overworld_poison
-overworld_poison: @ 80A0618
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _080A0684 @ =gPlayerParty
- movs r7, 0
- movs r6, 0
- movs r5, 0x5
-_080A0624:
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _080A0668
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0668
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- beq _080A065A
- subs r0, 0x1
- str r0, [sp]
- cmp r0, 0
- bne _080A065C
-_080A065A:
- adds r6, 0x1
-_080A065C:
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r7, 0x1
-_080A0668:
- adds r4, 0x64
- subs r5, 0x1
- cmp r5, 0
- bge _080A0624
- cmp r6, 0
- bne _080A0678
- cmp r7, 0
- beq _080A067C
-_080A0678:
- bl overworld_poison_effect
-_080A067C:
- cmp r6, 0
- beq _080A0688
- movs r0, 0x2
- b _080A0692
- .align 2, 0
-_080A0684: .4byte gPlayerParty
-_080A0688:
- cmp r7, 0
- bne _080A0690
- movs r0, 0
- b _080A0692
-_080A0690:
- movs r0, 0x1
-_080A0692:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end overworld_poison
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
index 24ca7a19a..079abee2c 100644
--- a/asm/field_screen_effect.s
+++ b/asm/field_screen_effect.s
@@ -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
diff --git a/asm/field_special_scene.s b/asm/field_special_scene.s
deleted file mode 100644
index ab436029f..000000000
--- a/asm/field_special_scene.s
+++ /dev/null
@@ -1,39 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A0E78
-sub_80A0E78: @ 80A0E78
- movs r0, 0
- bx lr
- thumb_func_end sub_80A0E78
-
- thumb_func_start nullsub_57
-nullsub_57: @ 80A0E7C
- bx lr
- thumb_func_end nullsub_57
-
- thumb_func_start nullsub_58
-nullsub_58: @ 80A0E80
- bx lr
- thumb_func_end nullsub_58
-
- thumb_func_start nullsub_59
-nullsub_59: @ 80A0E84
- bx lr
- thumb_func_end nullsub_59
-
- thumb_func_start nullsub_60
-nullsub_60: @ 80A0E88
- bx lr
- thumb_func_end nullsub_60
-
- thumb_func_start nullsub_61
-nullsub_61: @ 80A0E8C
- bx lr
- thumb_func_end nullsub_61
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_specials.s b/asm/field_specials.s
index d98798352..4c37e0638 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -9,13 +9,13 @@
sub_80CA618: @ 80CA618
push {lr}
bl sub_8112364
- ldr r0, _080CA62C @ =sub_80F4C10
+ ldr r0, _080CA62C @ =CB2_ShowDiploma
bl SetMainCallback2
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
-_080CA62C: .4byte sub_80F4C10
+_080CA62C: .4byte CB2_ShowDiploma
thumb_func_end sub_80CA618
thumb_func_start sub_80CA630
@@ -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
@@ -268,13 +268,13 @@ _080CA7E6:
sub_80CA7EC: @ 80CA7EC
push {lr}
bl sub_8112364
- ldr r1, _080CA800 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r1, _080CA800 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
movs r0, 0x1
bl sub_80BFF50
pop {r0}
bx r0
.align 2, 0
-_080CA800: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_080CA800: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80CA7EC
thumb_func_start sub_80CA804
@@ -413,7 +413,7 @@ sub_80CA8F8: @ 80CA8F8
movs r4, 0
movs r7, 0
movs r5, 0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -510,7 +510,7 @@ sub_80CA9A8: @ 80CA9A8
movs r4, 0
movs r6, 0
movs r5, 0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -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
@@ -2071,12 +2071,12 @@ 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
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
ldrb r0, [r4]
ldr r2, _080CB630 @ =gUnknown_8418075
movs r1, 0x2
@@ -2141,7 +2141,7 @@ sub_80CB63C: @ 80CB63C
ldr r4, _080CB654 @ =gUnknown_2039A0C
ldrb r0, [r4]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -2631,7 +2631,7 @@ _080CB9D2:
lsrs r0, 24
strh r0, [r5, 0x22]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldr r4, _080CBA70 @ =gUnknown_3005360
ldrh r0, [r5, 0xA]
strh r0, [r4, 0xC]
@@ -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]
@@ -2781,7 +2781,7 @@ sub_80CBB28: @ 80CBB28
ldrh r0, [r6, 0x24]
lsls r0, 24
lsrs r0, 24
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r4, r0, 0
movs r0, 0x2
negs r0, r0
@@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC
lsrs r0, 24
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
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 ClearStdWindowAndFrameToTransparent
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
@@ -3150,8 +3150,8 @@ _080CBDF8: .4byte gSelectedEventObject
_080CBDFC: .4byte gUnknown_20370DA
thumb_func_end sub_80CBDE8
- thumb_func_start sub_80CBE00
-sub_80CBE00: @ 80CBE00
+ thumb_func_start ContextNpcGetTextColor
+ContextNpcGetTextColor: @ 80CBE00
push {lr}
ldr r0, _080CBE18 @ =gUnknown_20370DA
ldrh r0, [r0]
@@ -3183,7 +3183,7 @@ _080CBE20:
lsls r0, 24
lsrs r0, 24
_080CBE40:
- bl sub_813CD24
+ bl GetColorFromTextColorTable
_080CBE44:
lsls r0, 24
lsrs r0, 24
@@ -3192,7 +3192,7 @@ _080CBE48:
bx r1
.align 2, 0
_080CBE4C: .4byte gMapObjects
- thumb_func_end sub_80CBE00
+ thumb_func_end ContextNpcGetTextColor
thumb_func_start sub_80CBE50
sub_80CBE50: @ 80CBE50
@@ -3469,7 +3469,7 @@ ChangeBoxPokemonNickname_CB: @ 80CC064
ldrb r1, [r1]
ldr r2, _080CC084 @ =gStringVar2
bl SetBoxMonNickFromAnyBox
- bl c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl CB2_ReturnToFieldContinueScriptPlayMapMusic
pop {r0}
bx r0
.align 2, 0
@@ -3577,7 +3577,7 @@ ChangePokemonNickname_CB: @ 80CC144
ldr r2, _080CC16C @ =gStringVar2
movs r1, 0x2
bl SetMonData
- bl c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl CB2_ReturnToFieldContinueScriptPlayMapMusic
pop {r0}
bx r0
.align 2, 0
@@ -5152,7 +5152,7 @@ sub_80CCD84: @ 80CCD84
ldr r0, _080CCDC4 @ =0x00190018
cmp r1, r0
bne _080CCDC8
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
diff --git a/asm/field_weather.s b/asm/field_weather.s
index e8d3ba7ee..ac24101a7 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -2672,8 +2672,8 @@ _0807B054: .4byte gUnknown_2037F34
_0807B058: .4byte 0x000006d3
thumb_func_end sub_807B048
- thumb_func_start sub_807B05C
-sub_807B05C: @ 807B05C
+ thumb_func_start SetWeatherScreenFadeOut
+SetWeatherScreenFadeOut: @ 807B05C
ldr r0, _0807B068 @ =gUnknown_2037F34
ldr r1, _0807B06C @ =0x000006c6
adds r0, r1
@@ -2683,7 +2683,7 @@ sub_807B05C: @ 807B05C
.align 2, 0
_0807B068: .4byte gUnknown_2037F34
_0807B06C: .4byte 0x000006c6
- thumb_func_end sub_807B05C
+ thumb_func_end SetWeatherScreenFadeOut
thumb_func_start sub_807B070
sub_807B070: @ 807B070
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_cut.s b/asm/fldeff_cut.s
index c98cda3b7..3452841c4 100644
--- a/asm/fldeff_cut.s
+++ b/asm/fldeff_cut.s
@@ -39,7 +39,7 @@ sub_8097898: @ 8097898
cmp r0, 0x1
beq _080978E0
movs r0, 0x5F
- bl npc_before_player_of_type
+ bl CheckObjectGraphicsInFrontOfPlayer
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -74,7 +74,7 @@ _080978F8: .4byte FieldCallback_PrepareFadeInFromMenu
_080978FC: .4byte gPostMenuFieldCallback
_08097900: .4byte sub_8097984
_08097904:
- ldr r4, _0809797C @ =gUnknown_2039A04
+ ldr r4, _0809797C @ =gPlayerFacingPosition
adds r1, r4, 0x2
adds r0, r4, 0
bl PlayerGetDestCoords
@@ -136,7 +136,7 @@ _08097970:
pop {r1}
bx r1
.align 2, 0
-_0809797C: .4byte gUnknown_2039A04
+_0809797C: .4byte gPlayerFacingPosition
_08097980: .4byte 0x0000ffff
thumb_func_end sub_8097898
@@ -253,7 +253,7 @@ sub_8097A48: @ 8097A48
movs r7, 0
movs r0, 0x79
bl PlaySE
- ldr r4, _08097B38 @ =gUnknown_2039A04
+ ldr r4, _08097B38 @ =gPlayerFacingPosition
adds r1, r4, 0x2
adds r0, r4, 0
bl PlayerGetDestCoords
@@ -362,7 +362,7 @@ _08097AE2:
pop {r1}
bx r1
.align 2, 0
-_08097B38: .4byte gUnknown_2039A04
+_08097B38: .4byte gPlayerFacingPosition
_08097B3C: .4byte 0x0000ffff
_08097B40: .4byte gUnknown_2039870
_08097B44: .4byte gSprites
diff --git a/asm/fldeff_poison.s b/asm/fldeff_poison.s
deleted file mode 100644
index dd3bb622e..000000000
--- a/asm/fldeff_poison.s
+++ /dev/null
@@ -1,98 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start task50_overworld_poison_effect
-task50_overworld_poison_effect: @ 80A0DD8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A0DFC @ =gTasks+0x8
- adds r1, r0, r1
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080A0E16
- cmp r0, 0x1
- bgt _080A0E00
- cmp r0, 0
- beq _080A0E06
- b _080A0E32
- .align 2, 0
-_080A0DFC: .4byte gTasks+0x8
-_080A0E00:
- cmp r0, 0x2
- beq _080A0E2A
- b _080A0E32
-_080A0E06:
- ldrh r0, [r1, 0x2]
- adds r0, 0x1
- strh r0, [r1, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080A0E32
- b _080A0E22
-_080A0E16:
- ldrh r0, [r1, 0x2]
- subs r0, 0x1
- strh r0, [r1, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080A0E32
-_080A0E22:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080A0E32
-_080A0E2A:
- adds r0, r2, 0
- bl DestroyTask
- b _080A0E42
-_080A0E32:
- ldrb r1, [r1, 0x2]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl Unused_AdjustBgMosaic
-_080A0E42:
- pop {r0}
- bx r0
- thumb_func_end task50_overworld_poison_effect
-
- thumb_func_start overworld_poison_effect
-overworld_poison_effect: @ 80A0E48
- push {lr}
- movs r0, 0x48
- bl PlaySE
- ldr r0, _080A0E5C @ =task50_overworld_poison_effect
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080A0E5C: .4byte task50_overworld_poison_effect
- thumb_func_end overworld_poison_effect
-
- thumb_func_start c3_80A0DD8_is_running
-c3_80A0DD8_is_running: @ 80A0E60
- push {lr}
- ldr r0, _080A0E70 @ =task50_overworld_poison_effect
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A0E70: .4byte task50_overworld_poison_effect
- thumb_func_end c3_80A0DD8_is_running
-
- .align 2, 0 @ Don't pad with nop.
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
deleted file mode 100644
index ace765f55..000000000
--- a/asm/fldeff_strength.s
+++ /dev/null
@@ -1,111 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80D07EC
-sub_80D07EC: @ 80D07EC
- push {r4,lr}
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080D0808
- movs r0, 0x61
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080D080C
-_080D0808:
- movs r0, 0
- b _080D0826
-_080D080C:
- ldr r4, _080D082C @ =gSpecialVar_Result
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r1, _080D0830 @ =gFieldCallback2
- ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080D0838 @ =gPostMenuFieldCallback
- ldr r0, _080D083C @ =sub_80D0840
- str r0, [r1]
- movs r0, 0x1
-_080D0826:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080D082C: .4byte gSpecialVar_Result
-_080D0830: .4byte gFieldCallback2
-_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu
-_080D0838: .4byte gPostMenuFieldCallback
-_080D083C: .4byte sub_80D0840
- thumb_func_end sub_80D07EC
-
- thumb_func_start sub_80D0840
-sub_80D0840: @ 80D0840
- push {lr}
- bl GetCursorSelectionMonId
- ldr r1, _080D0858 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- ldr r0, _080D085C @ =gUnknown_81BE16E
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080D0858: .4byte gFieldEffectArguments
-_080D085C: .4byte gUnknown_81BE16E
- thumb_func_end sub_80D0840
-
- thumb_func_start sub_80D0860
-sub_80D0860: @ 80D0860
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D0894 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080D0898 @ =sub_80D08A8
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080D089C @ =gFieldEffectArguments
- ldr r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080D08A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080D08A4 @ =gStringVar1
- bl GetMonNickname
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080D0894: .4byte gTasks
-_080D0898: .4byte sub_80D08A8
-_080D089C: .4byte gFieldEffectArguments
-_080D08A0: .4byte gPlayerParty
-_080D08A4: .4byte gStringVar1
- thumb_func_end sub_80D0860
-
- thumb_func_start sub_80D08A8
-sub_80D08A8: @ 80D08A8
- push {lr}
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80D08A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
deleted file mode 100644
index aead537d4..000000000
--- a/asm/fldeff_sweetscent.s
+++ /dev/null
@@ -1,262 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80DE0B4
-sub_80DE0B4: @ 80DE0B4
- push {lr}
- ldr r1, _080DE0C4 @ =gUnknown_203B0A0
- movs r0, 0
- strb r0, [r1, 0x9]
- bl hm2_sweet_scent
- pop {r0}
- bx r0
- .align 2, 0
-_080DE0C4: .4byte gUnknown_203B0A0
- thumb_func_end sub_80DE0B4
-
- thumb_func_start sub_80DE0C8
-sub_80DE0C8: @ 80DE0C8
- ldr r1, _080DE0D8 @ =gFieldCallback2
- ldr r0, _080DE0DC @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080DE0E0 @ =gPostMenuFieldCallback
- ldr r0, _080DE0E4 @ =hm2_sweet_scent
- str r0, [r1]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_080DE0D8: .4byte gFieldCallback2
-_080DE0DC: .4byte FieldCallback_PrepareFadeInFromMenu
-_080DE0E0: .4byte gPostMenuFieldCallback
-_080DE0E4: .4byte hm2_sweet_scent
- thumb_func_end sub_80DE0C8
-
- thumb_func_start hm2_sweet_scent
-hm2_sweet_scent: @ 80DE0E8
- push {lr}
- movs r0, 0x33
- bl FieldEffectStart
- bl GetCursorSelectionMonId
- ldr r1, _080DE100 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080DE100: .4byte gFieldEffectArguments
- thumb_func_end hm2_sweet_scent
-
- thumb_func_start FldEff_SweetScent
-FldEff_SweetScent: @ 80DE104
- push {lr}
- bl sub_807B05C
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DE12C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080DE130 @ =sub_80DE134
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080DE12C: .4byte gTasks
-_080DE130: .4byte sub_80DE134
- thumb_func_end FldEff_SweetScent
-
- thumb_func_start sub_80DE134
-sub_80DE134: @ 80DE134
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0xE5
- bl PlaySE
- ldr r4, _080DE1B8 @ =gUnknown_203AAB0
- movs r0, 0x80
- lsls r0, 3
- bl Alloc
- adds r1, r0, 0
- str r1, [r4]
- ldr r4, _080DE1BC @ =gPlttBufferUnfaded
- movs r5, 0x80
- lsls r5, 1
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuFastSet
- ldr r0, _080DE1C0 @ =gPlttBufferFaded
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuFastSet
- bl GetPlayerAvatarObjectId
- ldr r2, _080DE1C4 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r0, _080DE1C8 @ =sub_80DE1D0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DE1CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x33
- bl FieldEffectActiveListRemove
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE1B8: .4byte gUnknown_203AAB0
-_080DE1BC: .4byte gPlttBufferUnfaded
-_080DE1C0: .4byte gPlttBufferFaded
-_080DE1C4: .4byte gSprites
-_080DE1C8: .4byte sub_80DE1D0
-_080DE1CC: .4byte gTasks
- thumb_func_end sub_80DE134
-
- thumb_func_start sub_80DE1D0
-sub_80DE1D0: @ 80DE1D0
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r5, r0, 3
- ldr r6, _080DE21C @ =gTasks+0x8
- adds r2, r5, r6
- ldr r0, _080DE220 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080DE26C
- ldrh r3, [r2]
- movs r7, 0
- ldrsh r0, [r2, r7]
- cmp r0, 0x40
- bne _080DE268
- strh r1, [r2]
- bl sub_8082EC0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DE228
- ldr r0, _080DE224 @ =gUnknown_203AAB0
- ldr r0, [r0]
- bl Free
- adds r0, r4, 0
- bl DestroyTask
- b _080DE26C
- .align 2, 0
-_080DE21C: .4byte gTasks+0x8
-_080DE220: .4byte gPaletteFade
-_080DE224: .4byte gUnknown_203AAB0
-_080DE228:
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _080DE260 @ =sub_80DE274
- str r1, [r0]
- bl GetPlayerAvatarObjectId
- ldr r2, _080DE264 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080DE26C
- .align 2, 0
-_080DE260: .4byte sub_80DE274
-_080DE264: .4byte gSprites
-_080DE268:
- adds r0, r3, 0x1
- strh r0, [r2]
-_080DE26C:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE1D0
-
- thumb_func_start sub_80DE274
-sub_80DE274: @ 80DE274
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080DE2B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080DE2AA
- ldr r4, _080DE2B4 @ =gUnknown_203AAB0
- ldr r0, [r4]
- ldr r1, _080DE2B8 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
- bl sub_807B070
- ldr r0, [r4]
- bl Free
- ldr r0, _080DE2BC @ =gUnknown_81BE564
- bl ScriptContext1_SetupScript
- adds r0, r5, 0
- bl DestroyTask
-_080DE2AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE2B0: .4byte gPaletteFade
-_080DE2B4: .4byte gUnknown_203AAB0
-_080DE2B8: .4byte gPlttBufferUnfaded
-_080DE2BC: .4byte gUnknown_81BE564
- thumb_func_end sub_80DE274
-
- .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..2d550e6f7
--- /dev/null
+++ b/asm/ghost.s
@@ -0,0 +1,4054 @@
+ .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, _080B658C+4 @ =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, _080B658C+4 @ =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, _080B658C+4 @ =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, _080B658C+4 @ =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: .double 0.0625
+_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 8a240ed43..19ff62664 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -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
@@ -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
@@ -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
@@ -1607,7 +1607,7 @@ sub_80F2AA4: @ 80F2AA4
movs r1, 0x1E
movs r2, 0
movs r3, 0xC
- bl CreateWindow_SnapRight_StdPal
+ bl CreateTopBarWindowLoadPalette
movs r0, 0x3
bl Save_LoadGameData
lsls r0, 24
@@ -1894,7 +1894,7 @@ _080F2CB4:
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl Menu_PrintHelpSystemUIHeader
+ bl TopBarWindowPrintTwoStrings
b _080F2D34
.align 2, 0
_080F2D08: .4byte 0xffff0000
@@ -1911,7 +1911,7 @@ _080F2D24:
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl Menu_PrintHelpSystemUIHeader
+ bl TopBarWindowPrintTwoStrings
_080F2D34:
ldr r0, _080F2D58 @ =gTasks
ldr r1, [sp, 0x14]
@@ -2298,7 +2298,7 @@ sub_80F3030: @ 80F3030
bl HideBg
movs r0, 0x3
bl HideBg
- bl sub_810F740
+ bl DestroyTopBarWindow
bl FreeAllWindowBuffers
movs r0, 0x1
bl UnsetBgTilemapBuffer
@@ -2322,7 +2322,7 @@ _080F3082:
bl Free
str r4, [r5]
_080F3090:
- bl sub_80CA5A0
+ bl ReturnFromHallOfFamePC
_080F3094:
pop {r4,r5}
pop {r0}
@@ -2342,7 +2342,7 @@ sub_80F30A4: @ 80F30A4
ldr r0, _080F30FC @ =gText_ABUTTONExit
movs r1, 0x8
movs r2, 0x1
- bl PrintTextOnRightSnappedWindow
+ bl TopBarWindowPrintString
movs r0, 0
movs r1, 0
bl DrawDialogueFrame
@@ -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
@@ -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
@@ -2750,7 +2750,7 @@ sub_80F33DC: @ 80F33DC
movs r0, 0x1
movs r1, 0
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
movs r7, 0
str r7, [sp]
str r7, [sp, 0x4]
@@ -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
@@ -3073,16 +3073,16 @@ sub_80F36BC: @ 80F36BC
bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
bl ResetAllPicSprites
bl FreeAllSpritePalettes
ldr r1, _080F36EC @ =gReservedSpritePaletteCount
movs r0, 0x8
strb r0, [r1]
ldr r0, _080F36F0 @ =gUnknown_840C248
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F36F4 @ =gUnknown_840C258
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
pop {r0}
bx r0
.align 2, 0
@@ -3174,12 +3174,12 @@ _080F37A4:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _080F3854
.align 2, 0
_080F37B8: .4byte gUnknown_840C3BC
_080F37BC:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
beq _080F3854
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 b88a86b47..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 HelpSystem_SetSomeVariable2
-HelpSystem_SetSomeVariable2: @ 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 HelpSystem_SetSomeVariable2
-
- 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 HelpSystem_SetSomeVariable2
- b _0812B406
-_0812B376:
- bl sub_812B2C4
- lsls r0, 24
- cmp r0, 0
- beq _0812B388
- movs r0, 0x15
- bl HelpSystem_SetSomeVariable2
- 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 HelpSystem_SetSomeVariable2
- 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 HelpSystem_SetSomeVariable2
- b _0812B406
-_0812B3C8:
- bl IsCurMapPokeCenter
- cmp r0, 0x1
- bne _0812B3D8
- movs r0, 0x10
- bl HelpSystem_SetSomeVariable2
- b _0812B406
-_0812B3D8:
- bl sub_812B25C
- cmp r0, 0x1
- bne _0812B3E8
- movs r0, 0x11
- bl HelpSystem_SetSomeVariable2
- b _0812B406
-_0812B3E8:
- bl sub_812B26C
- cmp r0, 0x1
- bne _0812B3F8
- movs r0, 0x12
- bl HelpSystem_SetSomeVariable2
- b _0812B406
-_0812B3F8:
- movs r0, 0x13
- bl HelpSystem_SetSomeVariable2
- b _0812B406
-_0812B400:
- movs r0, 0x14
- bl HelpSystem_SetSomeVariable2
-_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 CheckBagHasItem
- 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
deleted file mode 100644
index 80f7fc3f9..000000000
--- a/asm/hof_pc.s
+++ /dev/null
@@ -1,118 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80CA53C
-sub_80CA53C: @ 80CA53C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA56C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA564
- bl FreeAllWindowBuffers
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080CA570 @ =sub_80F2978
- bl SetMainCallback2
-_080CA564:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA56C: .4byte gPaletteFade
-_080CA570: .4byte sub_80F2978
- thumb_func_end sub_80CA53C
-
- thumb_func_start sub_80CA574
-sub_80CA574: @ 80CA574
- 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
- bl ScriptContext2_Enable
- ldr r0, _080CA59C @ =sub_80CA53C
- movs r1, 0
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA59C: .4byte sub_80CA53C
- thumb_func_end sub_80CA574
-
- thumb_func_start sub_80CA5A0
-sub_80CA5A0: @ 80CA5A0
- push {lr}
- ldr r0, _080CA5B4 @ =CB2_ReturnToField
- bl SetMainCallback2
- ldr r1, _080CA5B8 @ =gFieldCallback
- ldr r0, _080CA5BC @ =sub_80CA5C0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080CA5B4: .4byte CB2_ReturnToField
-_080CA5B8: .4byte gFieldCallback
-_080CA5BC: .4byte sub_80CA5C0
- thumb_func_end sub_80CA5A0
-
- thumb_func_start sub_80CA5C0
-sub_80CA5C0: @ 80CA5C0
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl sub_8055DC4
- bl sp109_CreatePCMenu
- bl sub_809D254
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080CA5F4 @ =sub_80CA5F8
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA5F4: .4byte sub_80CA5F8
- thumb_func_end sub_80CA5C0
-
- thumb_func_start sub_80CA5F8
-sub_80CA5F8: @ 80CA5F8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CA614 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA610
- adds r0, r2, 0
- bl DestroyTask
-_080CA610:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA614: .4byte gPaletteFade
- thumb_func_end sub_80CA5F8
-
- .align 2, 0 @ Don't pad with nop.
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
deleted file mode 100644
index 909fee72e..000000000
--- a/asm/intro.s
+++ /dev/null
@@ -1,4841 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80EC5A4
-sub_80EC5A4: @ 80EC5A4
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80EC5A4
-
- thumb_func_start sub_80EC5B8
-sub_80EC5B8: @ 80EC5B8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080EC5CA
- ldr r0, _080EC5D0 @ =sub_80EC870
- bl SetMainCallback2
-_080EC5CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080EC5D0: .4byte sub_80EC870
- thumb_func_end sub_80EC5B8
-
- thumb_func_start load_copyright_graphics
-load_copyright_graphics: @ 80EC5D4
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _080EC610 @ =gUnknown_8402280
- movs r6, 0xC0
- lsls r6, 19
- adds r3, r6
- adds r1, r3, 0
- bl LZ77UnCompVram
- ldr r0, _080EC614 @ =gUnknown_84024E4
- adds r4, r6
- adds r1, r4, 0
- bl LZ77UnCompVram
- ldr r0, _080EC618 @ =gUnknown_8402260
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC610: .4byte gUnknown_8402280
-_080EC614: .4byte gUnknown_84024E4
-_080EC618: .4byte gUnknown_8402260
- thumb_func_end load_copyright_graphics
-
- thumb_func_start SerialCb_CopyrightScreen
-SerialCb_CopyrightScreen: @ 80EC61C
- push {lr}
- ldr r0, _080EC628 @ =gUnknown_203AAD4
- bl GameCubeMultiBoot_HandleSerialInterrupt
- pop {r0}
- bx r0
- .align 2, 0
-_080EC628: .4byte gUnknown_203AAD4
- thumb_func_end SerialCb_CopyrightScreen
-
- thumb_func_start sub_80EC62C
-sub_80EC62C: @ 80EC62C
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, _080EC64C @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0x8C
- bne _080EC640
- b _080EC778
-_080EC640:
- cmp r4, 0x8C
- bgt _080EC650
- cmp r4, 0
- beq _080EC65E
- b _080EC732
- .align 2, 0
-_080EC64C: .4byte gMain
-_080EC650:
- cmp r4, 0x8D
- bne _080EC656
- b _080EC7A4
-_080EC656:
- cmp r4, 0x8E
- bne _080EC65C
- b _080EC808
-_080EC65C:
- b _080EC732
-_080EC65E:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _080EC74C @ =0x00007fff
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- add r0, sp, 0x4
- strh r4, [r0]
- ldr r1, _080EC750 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080EC754 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080EC758 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- ldr r0, _080EC75C @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _080EC760 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- movs r1, 0xE0
- lsls r1, 6
- movs r0, 0
- movs r2, 0
- bl load_copyright_graphics
- bl ScanlineEffect_Stop
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- ldr r1, _080EC764 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0xE0
- lsls r1, 3
- movs r0, 0x8
- bl SetGpuReg
- movs r0, 0x1
- bl EnableInterrupts
- ldr r0, _080EC768 @ =sub_80EC5A4
- bl SetVBlankCallback
- movs r1, 0xA0
- lsls r1, 1
- movs r0, 0
- bl SetGpuReg
- ldr r0, _080EC76C @ =SerialCb_CopyrightScreen
- bl SetSerialCallback
- ldr r0, _080EC770 @ =gUnknown_203AAD4
- bl GameCubeMultiBoot_Init
-_080EC732:
- bl UpdatePaletteFade
- ldr r0, _080EC774 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _080EC770 @ =gUnknown_203AAD4
- bl GameCubeMultiBoot_Main
- b _080EC812
- .align 2, 0
-_080EC74C: .4byte 0x00007fff
-_080EC750: .4byte 0x040000d4
-_080EC754: .4byte 0x8100c000
-_080EC758: .4byte 0x85000100
-_080EC75C: .4byte 0x05000002
-_080EC760: .4byte 0x810001ff
-_080EC764: .4byte 0x0000ffff
-_080EC768: .4byte sub_80EC5A4
-_080EC76C: .4byte SerialCb_CopyrightScreen
-_080EC770: .4byte gUnknown_203AAD4
-_080EC774: .4byte gMain
-_080EC778:
- ldr r4, _080EC7A0 @ =gUnknown_203AAD4
- adds r0, r4, 0
- bl GameCubeMultiBoot_Main
- ldrb r0, [r4, 0x2]
- cmp r0, 0x1
- beq _080EC812
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _080EC812
- .align 2, 0
-_080EC7A0: .4byte gUnknown_203AAD4
-_080EC7A4:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080EC812
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r5, _080EC7E4 @ =gUnknown_203AAD4
- ldrb r0, [r5, 0x2]
- cmp r0, 0
- beq _080EC7F4
- ldrb r0, [r5, 0x2]
- cmp r0, 0x2
- bne _080EC7FE
- ldr r6, _080EC7E8 @ =0x020000ac
- ldr r4, [r6]
- ldr r0, _080EC7EC @ =0x65366347
- cmp r4, r0
- bne _080EC7DC
- ldr r0, _080EC7F0 @ =gMultiBootProgram_PokemonColosseum_Start
- movs r1, 0x80
- lsls r1, 18
- movs r2, 0xA0
- lsls r2, 9
- bl CpuSet
- str r4, [r6]
-_080EC7DC:
- adds r0, r5, 0
- bl GameCubeMultiBoot_ExecuteProgram
- b _080EC7FE
- .align 2, 0
-_080EC7E4: .4byte gUnknown_203AAD4
-_080EC7E8: .4byte 0x020000ac
-_080EC7EC: .4byte 0x65366347
-_080EC7F0: .4byte gMultiBootProgram_PokemonColosseum_Start
-_080EC7F4:
- bl GameCubeMultiBoot_Quit
- ldr r0, _080EC804 @ =SerialCB
- bl SetSerialCallback
-_080EC7FE:
- movs r0, 0
- b _080EC814
- .align 2, 0
-_080EC804: .4byte SerialCB
-_080EC808:
- bl sub_800B388
- ldr r0, _080EC81C @ =sub_80EC5B8
- bl SetMainCallback2
-_080EC812:
- movs r0, 0x1
-_080EC814:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080EC81C: .4byte sub_80EC5B8
- thumb_func_end sub_80EC62C
-
- thumb_func_start c2_copyright_1
-c2_copyright_1: @ 80EC820
- push {lr}
- bl sub_80EC62C
- lsls r0, 24
- cmp r0, 0
- bne _080EC858
- bl sub_8054A28
- bl Save_ResetSaveCounters
- movs r0, 0
- bl Save_LoadGameData
- ldr r0, _080EC85C @ =gSaveFileStatus
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EC846
- cmp r0, 0x2
- bne _080EC84A
-_080EC846:
- bl Sav2_ClearSetDefault
-_080EC84A:
- ldr r0, _080EC860 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- lsls r0, 31
- lsrs r0, 31
- bl SetPokemonCryStereo
-_080EC858:
- pop {r0}
- bx r0
- .align 2, 0
-_080EC85C: .4byte gSaveFileStatus
-_080EC860: .4byte gSaveBlock2Ptr
- thumb_func_end c2_copyright_1
-
- thumb_func_start sub_80EC864
-sub_80EC864: @ 80EC864
- push {lr}
- bl sub_80EC62C
- pop {r0}
- bx r0
- thumb_func_end sub_80EC864
-
- thumb_func_start sub_80EC870
-sub_80EC870: @ 80EC870
- push {r4,lr}
- sub sp, 0xC
- ldr r0, _080EC88C @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r4, [r0]
- cmp r4, 0x1
- beq _080EC944
- cmp r4, 0x1
- bgt _080EC890
- cmp r4, 0
- beq _080EC8A0
- b _080EC894
- .align 2, 0
-_080EC88C: .4byte gMain
-_080EC890:
- cmp r4, 0x2
- beq _080EC988
-_080EC894:
- ldr r0, _080EC928 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_080EC8A0:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r0, _080EC92C @ =gHeap
- movs r1, 0xE0
- lsls r1, 9
- bl InitHeap
- bl ResetTasks
- bl ResetSpriteData
- bl ResetPaletteFade
- bl reset_temp_tile_data_buffers
- bl sub_80ECA00
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080EC930 @ =0x040000d4
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080EC934 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080EC938 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r2, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080EC93C @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0
- movs r1, 0
- bl FillPalette
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _080EC940 @ =gUnknown_840BB80
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- b _080EC9B8
- .align 2, 0
-_080EC928: .4byte gMain
-_080EC92C: .4byte gHeap
-_080EC930: .4byte 0x040000d4
-_080EC934: .4byte 0x8100c000
-_080EC938: .4byte 0x85000100
-_080EC93C: .4byte 0x81000200
-_080EC940: .4byte gUnknown_840BB80
-_080EC944:
- ldr r0, _080EC978 @ =gUnknown_8402630
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080EC97C @ =gUnknown_8402650
- movs r0, 0
- str r0, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080EC980 @ =gUnknown_8402668
- str r4, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r0, _080EC984 @ =gUnknown_840270C
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- b _080EC9B8
- .align 2, 0
-_080EC978: .4byte gUnknown_8402630
-_080EC97C: .4byte gUnknown_8402650
-_080EC980: .4byte gUnknown_8402668
-_080EC984: .4byte gUnknown_840270C
-_080EC988:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _080EC9C6
- bl sub_80ECA70
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, _080EC9B0 @ =sub_80EC9D4
- bl SetMainCallback2
- ldr r0, _080EC9B4 @ =sub_80EC9EC
- bl SetVBlankCallback
- b _080EC9C6
- .align 2, 0
-_080EC9B0: .4byte sub_80EC9D4
-_080EC9B4: .4byte sub_80EC9EC
-_080EC9B8:
- ldr r1, _080EC9D0 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EC9C6:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC9D0: .4byte gMain
- thumb_func_end sub_80EC870
-
- thumb_func_start sub_80EC9D4
-sub_80EC9D4: @ 80EC9D4
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80EC9D4
-
- thumb_func_start sub_80EC9EC
-sub_80EC9EC: @ 80EC9EC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80EC9EC
-
- thumb_func_start sub_80ECA00
-sub_80ECA00: @ 80ECA00
- push {lr}
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1E
- movs r1, 0
- bl SetGpuReg
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuRegBits
- pop {r0}
- bx r0
- thumb_func_end sub_80ECA00
-
- thumb_func_start sub_80ECA70
-sub_80ECA70: @ 80ECA70
- push {r4,lr}
- ldr r0, _080ECA9C @ =0x000028bc
- bl Alloc
- adds r4, r0, 0
- ldr r1, _080ECAA0 @ =sub_80ECAF0
- bl sub_80ECAA8
- ldr r0, _080ECAA4 @ =sub_80ECAB0
- movs r1, 0x3
- bl CreateTask
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x5]
- movs r1, 0
- adds r2, r4, 0
- bl SetWordTaskArg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECA9C: .4byte 0x000028bc
-_080ECAA0: .4byte sub_80ECAF0
-_080ECAA4: .4byte sub_80ECAB0
- thumb_func_end sub_80ECA70
-
- thumb_func_start sub_80ECAA8
-sub_80ECAA8: @ 80ECAA8
- str r1, [r0]
- movs r1, 0
- strb r1, [r0, 0x4]
- bx lr
- thumb_func_end sub_80ECAA8
-
- thumb_func_start sub_80ECAB0
-sub_80ECAB0: @ 80ECAB0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl GetWordTaskArg
- adds r4, r0, 0
- ldr r0, _080ECAE8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xD
- ands r0, r1
- cmp r0, 0
- beq _080ECAD8
- ldr r0, [r4]
- ldr r1, _080ECAEC @ =sub_80EDBE8
- cmp r0, r1
- beq _080ECAD8
- adds r0, r4, 0
- bl sub_80ECAA8
-_080ECAD8:
- ldr r1, [r4]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECAE8: .4byte gMain
-_080ECAEC: .4byte sub_80EDBE8
- thumb_func_end sub_80ECAB0
-
- thumb_func_start sub_80ECAF0
-sub_80ECAF0: @ 80ECAF0
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- ldrb r0, [r5, 0x4]
- cmp r0, 0
- beq _080ECB02
- cmp r0, 0x1
- beq _080ECB78
- b _080ECB8A
-_080ECB02:
- ldr r0, _080ECB68 @ =gUnknown_840BBA8
- bl InitWindows
- ldr r0, _080ECB6C @ =gUnknown_840272C
- ldr r1, _080ECB70 @ =0x0000043c
- adds r4, r5, r1
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _080ECB74 @ =gUnknown_84028F8
- adds r1, r5, 0
- adds r1, 0x3C
- bl LZ77UnCompWram
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x90
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x28
- bl BlitBitmapToWindow
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _080ECB8A
- .align 2, 0
-_080ECB68: .4byte gUnknown_840BBA8
-_080ECB6C: .4byte gUnknown_840272C
-_080ECB70: .4byte 0x0000043c
-_080ECB74: .4byte gUnknown_84028F8
-_080ECB78:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080ECB8A
- ldr r1, _080ECB94 @ =sub_80ECB98
- adds r0, r5, 0
- bl sub_80ECAA8
-_080ECB8A:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECB94: .4byte sub_80ECB98
- thumb_func_end sub_80ECAF0
-
- thumb_func_start sub_80ECB98
-sub_80ECB98: @ 80ECB98
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrb r5, [r4, 0x4]
- cmp r5, 0x1
- beq _080ECBE2
- cmp r5, 0x1
- bgt _080ECBAC
- cmp r5, 0
- beq _080ECBB2
- b _080ECC32
-_080ECBAC:
- cmp r5, 0x2
- beq _080ECBFC
- b _080ECC32
-_080ECBB2:
- movs r1, 0x80
- lsls r1, 7
- movs r0, 0
- bl SetGpuRegBits
- movs r1, 0xFC
- lsls r1, 6
- movs r0, 0x48
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x42
- movs r1, 0xF0
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0
- bl SetGpuReg
- strh r5, [r4, 0x12]
- b _080ECBF4
-_080ECBE2:
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- movs r2, 0
- bl BlendPalettes
-_080ECBF4:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080ECC32
-_080ECBFC:
- ldrh r0, [r4, 0x12]
- adds r0, 0x8
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2F
- bls _080ECC0E
- movs r0, 0x30
- strh r0, [r4, 0x12]
-_080ECC0E:
- ldrh r0, [r4, 0x12]
- movs r1, 0x50
- subs r1, r0
- lsls r1, 8
- adds r0, 0x50
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x46
- bl SetGpuReg
- ldrh r0, [r4, 0x12]
- cmp r0, 0x30
- bne _080ECC32
- ldr r1, _080ECC38 @ =sub_80ECC3C
- adds r0, r4, 0
- bl sub_80ECAA8
-_080ECC32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECC38: .4byte sub_80ECC3C
- thumb_func_end sub_80ECB98
-
- thumb_func_start sub_80ECC3C
-sub_80ECC3C: @ 80ECC3C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrb r5, [r4, 0x4]
- cmp r5, 0x1
- beq _080ECC68
- cmp r5, 0x1
- bgt _080ECC50
- cmp r5, 0
- beq _080ECC56
- b _080ECC9C
-_080ECC50:
- cmp r5, 0x2
- beq _080ECC86
- b _080ECC9C
-_080ECC56:
- ldr r0, _080ECC64 @ =0x00000141
- bl PlaySE
- bl sub_80EDC40
- strh r5, [r4, 0x12]
- b _080ECC7E
- .align 2, 0
-_080ECC64: .4byte 0x00000141
-_080ECC68:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bne _080ECC9C
- bl sub_80EDDF0
- movs r0, 0
- strh r0, [r4, 0x12]
-_080ECC7E:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080ECC9C
-_080ECC86:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bne _080ECC9C
- ldr r1, _080ECCA4 @ =sub_80ECCA8
- adds r0, r4, 0
- bl sub_80ECAA8
-_080ECC9C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECCA4: .4byte sub_80ECCA8
- thumb_func_end sub_80ECC3C
-
- thumb_func_start sub_80ECCA8
-sub_80ECCA8: @ 80ECCA8
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrb r0, [r4, 0x4]
- cmp r0, 0x5
- bhi _080ECD54
- lsls r0, 2
- ldr r1, _080ECCC0 @ =_080ECCC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECCC0: .4byte _080ECCC4
- .align 2, 0
-_080ECCC4:
- .4byte _080ECCDC
- .4byte _080ECCE6
- .4byte _080ECCF6
- .4byte _080ECD18
- .4byte _080ECD20
- .4byte _080ECD3E
-_080ECCDC:
- bl sub_80EDED8
- movs r0, 0
- strh r0, [r4, 0x12]
- b _080ECD36
-_080ECCE6:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- bls _080ECD54
- b _080ECD36
-_080ECCF6:
- ldr r1, _080ECD14 @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x30
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl StartBlendTask
- b _080ECD36
- .align 2, 0
-_080ECD14: .4byte 0x00003f44
-_080ECD18:
- movs r0, 0x2
- bl ShowBg
- b _080ECD36
-_080ECD20:
- bl IsBlendTaskActive
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080ECD54
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- strh r5, [r4, 0x12]
-_080ECD36:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080ECD54
-_080ECD3E:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x32
- bls _080ECD54
- ldr r1, _080ECD5C @ =sub_80ECD60
- adds r0, r4, 0
- bl sub_80ECAA8
-_080ECD54:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECD5C: .4byte sub_80ECD60
- thumb_func_end sub_80ECCA8
-
- thumb_func_start sub_80ECD60
-sub_80ECD60: @ 80ECD60
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- ldrb r0, [r6, 0x4]
- cmp r0, 0x7
- bls _080ECD6E
- b _080ECE96
-_080ECD6E:
- lsls r0, 2
- ldr r1, _080ECD78 @ =_080ECD7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECD78: .4byte _080ECD7C
- .align 2, 0
-_080ECD7C:
- .4byte _080ECD9C
- .4byte _080ECDC4
- .4byte _080ECDCC
- .4byte _080ECE10
- .4byte _080ECE26
- .4byte _080ECE52
- .4byte _080ECE64
- .4byte _080ECE78
-_080ECD9C:
- ldr r1, _080ECDC0 @ =0x00003f50
- movs r0, 0x50
- bl SetGpuReg
- movs r5, 0x10
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl StartBlendTask
- strh r4, [r6, 0x8]
- strh r5, [r6, 0xA]
- strh r4, [r6, 0x12]
- b _080ECE70
- .align 2, 0
-_080ECDC0: .4byte 0x00003f50
-_080ECDC4:
- bl sub_80EDF68
- str r0, [r6, 0x14]
- b _080ECE70
-_080ECDCC:
- bl IsBlendTaskActive
- lsls r0, 24
- cmp r0, 0
- bne _080ECE96
- adds r1, r6, 0
- adds r1, 0x3C
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- movs r0, 0
- movs r2, 0x38
- movs r3, 0x6
- bl BlitBitmapToWindow
- ldr r0, _080ECE0C @ =0x0000043c
- adds r1, r6, r0
- movs r0, 0x90
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0
- movs r2, 0
- movs r3, 0x28
- bl BlitBitmapToWindow
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- b _080ECE70
- .align 2, 0
-_080ECE0C: .4byte 0x0000043c
-_080ECE10:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080ECE96
- ldr r0, [r6, 0x14]
- bl DestroySprite
- strh r4, [r6, 0x12]
- b _080ECE70
-_080ECE26:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bls _080ECE96
- movs r0, 0x50
- movs r1, 0x4
- bl SetGpuRegBits
- movs r0, 0x14
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl StartBlendTask
- b _080ECE70
-_080ECE52:
- bl IsBlendTaskActive
- lsls r0, 24
- cmp r0, 0
- bne _080ECE96
- movs r0, 0x2
- bl HideBg
- b _080ECE70
-_080ECE64:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0
- strh r0, [r6, 0x12]
-_080ECE70:
- ldrb r0, [r6, 0x4]
- adds r0, 0x1
- strb r0, [r6, 0x4]
- b _080ECE96
-_080ECE78:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x14
- bls _080ECE96
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- ldr r1, _080ECEA0 @ =sub_80ECEA4
- adds r0, r6, 0
- bl sub_80ECAA8
-_080ECE96:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECEA0: .4byte sub_80ECEA4
- thumb_func_end sub_80ECD60
-
- thumb_func_start sub_80ECEA4
-sub_80ECEA4: @ 80ECEA4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrb r0, [r5, 0x4]
- cmp r0, 0x5
- bls _080ECEB2
- b _080ED094
-_080ECEB2:
- lsls r0, 2
- ldr r1, _080ECEBC @ =_080ECEC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECEBC: .4byte _080ECEC0
- .align 2, 0
-_080ECEC0:
- .4byte _080ECED8
- .4byte _080ECF64
- .4byte _080ECFA4
- .4byte _080ECFD8
- .4byte _080ED000
- .4byte _080ED064
-_080ECED8:
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _080ECF48 @ =gUnknown_8402D34
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080ECF4C @ =gUnknown_84048CC
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r2, _080ECF50 @ =0x00007fff
- movs r0, 0x6
- movs r1, 0x10
- bl BlendPalettes
- ldr r1, _080ECF54 @ =gUnknown_840BB88
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- ldr r1, _080ECF58 @ =gUnknown_84048EC
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ECF5C @ =gUnknown_8404F7C
- movs r0, 0x1
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- movs r0, 0x1
- bl ShowBg
- movs r0, 0
- bl HideBg
- movs r0, 0x2
- bl HideBg
- movs r0, 0x3
- bl HideBg
- bl sub_80EEBE4
- ldr r0, _080ECF60 @ =sub_80EC9EC
- bl SetVBlankCallback
- b _080ECFF0
- .align 2, 0
-_080ECF48: .4byte gUnknown_8402D34
-_080ECF4C: .4byte gUnknown_84048CC
-_080ECF50: .4byte 0x00007fff
-_080ECF54: .4byte gUnknown_840BB88
-_080ECF58: .4byte gUnknown_84048EC
-_080ECF5C: .4byte gUnknown_8404F7C
-_080ECF60: .4byte sub_80EC9EC
-_080ECF64:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080ECF72
- b _080ED094
-_080ECF72:
- ldr r1, _080ECF9C @ =gUnknown_8402D54
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ECFA0 @ =gUnknown_8403FE8
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- bl sub_80F6C14
- movs r0, 0x1
- bl ShowBg
- b _080ECFF0
- .align 2, 0
-_080ECF9C: .4byte gUnknown_8402D54
-_080ECFA0: .4byte gUnknown_8403FE8
-_080ECFA4:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _080ED094
- movs r0, 0
- bl ShowBg
- ldr r0, _080ECFD0 @ =sub_80ED0AC
- movs r1, 0
- bl CreateTask
- movs r1, 0x2
- negs r1, r1
- ldr r0, _080ECFD4 @ =0x00007fff
- str r0, [sp]
- movs r0, 0x6
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080ECFF0
- .align 2, 0
-_080ECFD0: .4byte sub_80ED0AC
-_080ECFD4: .4byte 0x00007fff
-_080ECFD8:
- ldr r0, _080ECFF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080ED094
- ldr r0, _080ECFFC @ =0x00000115
- bl m4aSongNumStart
- strh r4, [r5, 0x12]
-_080ECFF0:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _080ED094
- .align 2, 0
-_080ECFF8: .4byte gPaletteFade
-_080ECFFC: .4byte 0x00000115
-_080ED000:
- ldrh r0, [r5, 0x12]
- adds r0, 0x1
- strh r0, [r5, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x14
- bne _080ED01A
- ldr r0, _080ED054 @ =sub_80ED140
- movs r1, 0
- bl CreateTask
- bl sub_80ED118
-_080ED01A:
- ldrh r0, [r5, 0x12]
- cmp r0, 0x1D
- bls _080ED094
- movs r0, 0x2
- negs r0, r0
- ldr r2, _080ED058 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080ED05C @ =sub_80ED0AC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _080ED054 @ =sub_80ED140
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _080ED060 @ =sub_80ED188
- adds r0, r5, 0
- bl sub_80ECAA8
- b _080ED094
- .align 2, 0
-_080ED054: .4byte sub_80ED140
-_080ED058: .4byte 0x00007fff
-_080ED05C: .4byte sub_80ED0AC
-_080ED060: .4byte sub_80ED188
-_080ED064:
- ldr r0, _080ED09C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED094
- ldr r0, _080ED0A0 @ =sub_80ED0AC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _080ED0A4 @ =sub_80ED140
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _080ED0A8 @ =sub_80ED188
- adds r0, r5, 0
- bl sub_80ECAA8
-_080ED094:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED09C: .4byte gPaletteFade
-_080ED0A0: .4byte sub_80ED0AC
-_080ED0A4: .4byte sub_80ED140
-_080ED0A8: .4byte sub_80ED188
- thumb_func_end sub_80ECEA4
-
- thumb_func_start sub_80ED0AC
-sub_80ED0AC: @ 80ED0AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080ED114 @ =gTasks+0x8
- adds r4, r1, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080ED0EC
- movs r1, 0
- strh r1, [r4]
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080ED0DE
- strh r1, [r4, 0x2]
-_080ED0DE:
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r1, 15
- movs r0, 0
- movs r2, 0
- bl ChangeBgY
-_080ED0EC:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ED10C
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r4, 0x6]
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r0, 0
- movs r2, 0x2
- bl ChangeBgY
-_080ED10C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED114: .4byte gTasks+0x8
- thumb_func_end sub_80ED0AC
-
- thumb_func_start sub_80ED118
-sub_80ED118: @ 80ED118
- push {lr}
- ldr r0, _080ED138 @ =sub_80ED0AC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ED13C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0xC]
- pop {r0}
- bx r0
- .align 2, 0
-_080ED138: .4byte sub_80ED0AC
-_080ED13C: .4byte gTasks
- thumb_func_end sub_80ED118
-
- thumb_func_start sub_80ED140
-sub_80ED140: @ 80ED140
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080ED184 @ =gTasks+0x8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080ED17E
- movs r0, 0
- strh r0, [r1]
- ldrh r2, [r1, 0x2]
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- bgt _080ED170
- adds r0, r2, 0x1
- strh r0, [r1, 0x2]
-_080ED170:
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- lsls r1, 15
- movs r0, 0x1
- movs r2, 0
- bl ChangeBgY
-_080ED17E:
- pop {r0}
- bx r0
- .align 2, 0
-_080ED184: .4byte gTasks+0x8
- thumb_func_end sub_80ED140
-
- thumb_func_start sub_80ED188
-sub_80ED188: @ 80ED188
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- ldrb r0, [r7, 0x4]
- cmp r0, 0x6
- bls _080ED19A
- b _080ED3F6
-_080ED19A:
- lsls r0, 2
- ldr r1, _080ED1A4 @ =_080ED1A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED1A4: .4byte _080ED1A8
- .align 2, 0
-_080ED1A8:
- .4byte _080ED1C4
- .4byte _080ED214
- .4byte _080ED32C
- .4byte _080ED350
- .4byte _080ED360
- .4byte _080ED3BC
- .4byte _080ED3D2
-_080ED1C4:
- movs r0, 0x2
- negs r0, r0
- ldr r2, _080ED204 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- ldr r1, _080ED208 @ =gUnknown_840BB90
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r1, _080ED20C @ =gUnknown_8405414
- movs r0, 0
- str r0, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED210 @ =gUnknown_8405890
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- movs r0, 0x3
- bl ShowBg
- b _080ED3CA
- .align 2, 0
-_080ED204: .4byte 0x00007fff
-_080ED208: .4byte gUnknown_840BB90
-_080ED20C: .4byte gUnknown_8405414
-_080ED210: .4byte gUnknown_8405890
-_080ED214:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _080ED222
- b _080ED3F6
-_080ED222:
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _080ED2FC @ =gUnknown_84053B4
- movs r1, 0x10
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _080ED300 @ =gUnknown_8405DA4
- movs r1, 0x50
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080ED304 @ =gUnknown_8406634
- movs r1, 0x60
- movs r2, 0x20
- bl LoadPalette
- movs r5, 0x2
- negs r5, r5
- ldr r0, _080ED308 @ =0x00007fff
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0x10
- mov r2, r8
- bl BlendPalettes
- ldr r1, _080ED30C @ =gUnknown_8405B28
- str r6, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED310 @ =gUnknown_8405CDC
- movs r4, 0x1
- str r4, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED314 @ =gUnknown_8406654
- str r6, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED318 @ =gUnknown_84071D0
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED31C @ =gUnknown_8405DC4
- str r6, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED320 @ =gUnknown_840644C
- str r4, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- bl sub_80F6C14
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl HideBg
- movs r0, 0x2
- bl HideBg
- movs r1, 0xE7
- lsls r1, 9
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgY
- movs r1, 0xA0
- lsls r1, 6
- movs r0, 0x1
- movs r2, 0
- bl ChangeBgY
- ldr r0, _080ED324 @ =sub_80ED40C
- movs r1, 0
- bl CreateTask
- adds r0, r7, 0
- bl sub_80ED444
- adds r0, r5, 0
- movs r1, 0x10
- mov r2, r8
- bl BlendPalettes
- ldr r0, _080ED328 @ =sub_80EC9EC
- bl SetVBlankCallback
- b _080ED3CA
- .align 2, 0
-_080ED2FC: .4byte gUnknown_84053B4
-_080ED300: .4byte gUnknown_8405DA4
-_080ED304: .4byte gUnknown_8406634
-_080ED308: .4byte 0x00007fff
-_080ED30C: .4byte gUnknown_8405B28
-_080ED310: .4byte gUnknown_8405CDC
-_080ED314: .4byte gUnknown_8406654
-_080ED318: .4byte gUnknown_84071D0
-_080ED31C: .4byte gUnknown_8405DC4
-_080ED320: .4byte gUnknown_840644C
-_080ED324: .4byte sub_80ED40C
-_080ED328: .4byte sub_80EC9EC
-_080ED32C:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _080ED3F6
- movs r1, 0x2
- negs r1, r1
- ldr r0, _080ED34C @ =0x00007fff
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080ED3CA
- .align 2, 0
-_080ED34C: .4byte 0x00007fff
-_080ED350:
- ldr r0, _080ED35C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- b _080ED3C0
- .align 2, 0
-_080ED35C: .4byte gPaletteFade
-_080ED360:
- ldrh r0, [r7, 0x12]
- adds r0, 0x1
- strh r0, [r7, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3B
- bls _080ED3F6
- movs r0, 0
- strh r0, [r7, 0x12]
- ldr r0, _080ED3B4 @ =sub_80ED40C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- adds r0, r7, 0
- bl sub_80ED4A0
- ldr r0, _080ED3B8 @ =sub_80ED428
- movs r1, 0
- bl CreateTask
- movs r1, 0x80
- lsls r1, 9
- movs r0, 0x3
- movs r2, 0
- bl ChangeBgY
- movs r0, 0
- bl HideBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- b _080ED3CA
- .align 2, 0
-_080ED3B4: .4byte sub_80ED40C
-_080ED3B8: .4byte sub_80ED428
-_080ED3BC:
- bl IsDma3ManagerBusyWithBgCopy
-_080ED3C0:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080ED3F6
- strh r0, [r7, 0x12]
-_080ED3CA:
- ldrb r0, [r7, 0x4]
- adds r0, 0x1
- strb r0, [r7, 0x4]
- b _080ED3F6
-_080ED3D2:
- ldrh r0, [r7, 0x12]
- adds r0, 0x1
- strh r0, [r7, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3B
- bls _080ED3F6
- ldr r0, _080ED404 @ =sub_80ED428
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _080ED408 @ =sub_80ED4C0
- adds r0, r7, 0
- bl sub_80ECAA8
-_080ED3F6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED404: .4byte sub_80ED428
-_080ED408: .4byte sub_80ED4C0
- thumb_func_end sub_80ED188
-
- thumb_func_start sub_80ED40C
-sub_80ED40C: @ 80ED40C
- push {lr}
- movs r0, 0x3
- movs r1, 0xE0
- movs r2, 0x2
- bl ChangeBgX
- movs r1, 0x88
- lsls r1, 1
- movs r0, 0
- movs r2, 0x1
- bl ChangeBgX
- pop {r0}
- bx r0
- thumb_func_end sub_80ED40C
-
- thumb_func_start sub_80ED428
-sub_80ED428: @ 80ED428
- push {lr}
- movs r0, 0x2
- movs r1, 0x20
- movs r2, 0x1
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0x24
- movs r2, 0x2
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end sub_80ED428
-
- thumb_func_start sub_80ED444
-sub_80ED444: @ 80ED444
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- str r0, [r4, 0x1C]
- str r0, [r4, 0x20]
- ldr r0, _080ED494 @ =gUnknown_840BDA8
- movs r1, 0xA8
- movs r2, 0x50
- movs r3, 0xB
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080ED46E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080ED498 @ =gSprites
- adds r0, r1
- str r0, [r4, 0x20]
-_080ED46E:
- ldr r0, _080ED49C @ =gUnknown_840BDC0
- movs r1, 0x48
- movs r2, 0x50
- movs r3, 0xC
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080ED48E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080ED498 @ =gSprites
- adds r0, r1
- str r0, [r4, 0x1C]
-_080ED48E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED494: .4byte gUnknown_840BDA8
-_080ED498: .4byte gSprites
-_080ED49C: .4byte gUnknown_840BDC0
- thumb_func_end sub_80ED444
-
- thumb_func_start sub_80ED4A0
-sub_80ED4A0: @ 80ED4A0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x1C]
- cmp r0, 0
- beq _080ED4AE
- bl DestroySprite
-_080ED4AE:
- ldr r0, [r4, 0x20]
- cmp r0, 0
- beq _080ED4B8
- bl DestroySprite
-_080ED4B8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ED4A0
-
- thumb_func_start sub_80ED4C0
-sub_80ED4C0: @ 80ED4C0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrb r4, [r5, 0x4]
- cmp r4, 0x1
- beq _080ED59C
- cmp r4, 0x1
- bgt _080ED4D6
- cmp r4, 0
- beq _080ED4E4
- b _080ED68A
-_080ED4D6:
- cmp r4, 0x2
- bne _080ED4DC
- b _080ED5FC
-_080ED4DC:
- cmp r4, 0x3
- bne _080ED4E2
- b _080ED658
-_080ED4E2:
- b _080ED68A
-_080ED4E4:
- ldr r0, _080ED584 @ =gUnknown_8407430
- movs r1, 0x10
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _080ED588 @ =gUnknown_8405DA4
- movs r1, 0x50
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x2
- negs r0, r0
- ldr r2, _080ED58C @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- ldr r1, _080ED590 @ =gUnknown_840BBA0
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- ldr r1, _080ED594 @ =gUnknown_8407470
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED598 @ =gUnknown_8407A50
- movs r0, 0x1
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- movs r0, 0x1
- bl ShowBg
- movs r0, 0
- bl HideBg
- movs r0, 0x2
- bl HideBg
- movs r0, 0x3
- bl HideBg
- bl sub_80F6C14
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- movs r0, 0x48
- movs r1, 0x12
- bl SetGpuRegBits
- movs r0, 0x48
- movs r1, 0x1
- bl ClearGpuRegBits
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuRegBits
- movs r1, 0x82
- lsls r1, 6
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0x78
- bl SetGpuReg
- b _080ED68A
- .align 2, 0
-_080ED584: .4byte gUnknown_8407430
-_080ED588: .4byte gUnknown_8405DA4
-_080ED58C: .4byte 0x00007fff
-_080ED590: .4byte gUnknown_840BBA0
-_080ED594: .4byte gUnknown_8407470
-_080ED598: .4byte gUnknown_8407A50
-_080ED59C:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080ED68A
- ldr r1, _080ED5EC @ =gUnknown_8407B9C
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED5F0 @ =gUnknown_8408D98
- str r4, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, _080ED5F4 @ =gUnknown_203AB00
- movs r0, 0x4
- strh r0, [r1]
- ldr r1, _080ED5F8 @ =gUnknown_203AB02
- movs r0, 0x34
- strh r0, [r1]
- movs r1, 0xC0
- lsls r1, 5
- movs r0, 0
- movs r2, 0
- bl ChangeBgX
- movs r1, 0xF8
- lsls r1, 9
- movs r0, 0
- movs r2, 0
- bl ChangeBgY
- b _080ED642
- .align 2, 0
-_080ED5EC: .4byte gUnknown_8407B9C
-_080ED5F0: .4byte gUnknown_8408D98
-_080ED5F4: .4byte gUnknown_203AB00
-_080ED5F8: .4byte gUnknown_203AB02
-_080ED5FC:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080ED68A
- movs r0, 0x2
- negs r0, r0
- ldr r2, _080ED64C @ =0x00007fff
- movs r1, 0
- bl BlendPalettes
- movs r0, 0
- bl ShowBg
- ldr r0, _080ED650 @ =sub_80ED714
- movs r1, 0
- bl CreateTask
- adds r0, r5, 0
- bl sub_80EE4F8
- ldr r0, [r5, 0x18]
- movs r1, 0
- movs r2, 0xB4
- movs r3, 0x34
- bl sub_80EE528
- ldr r0, _080ED654 @ =sub_80EE200
- movs r1, 0
- bl CreateTask
- bl sub_80ED6D8
- strh r4, [r5, 0x12]
-_080ED642:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _080ED68A
- .align 2, 0
-_080ED64C: .4byte 0x00007fff
-_080ED650: .4byte sub_80ED714
-_080ED654: .4byte sub_80EE200
-_080ED658:
- ldrh r0, [r5, 0x12]
- adds r0, 0x1
- strh r0, [r5, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bne _080ED66C
- adds r0, r5, 0
- bl sub_80ED7D4
-_080ED66C:
- adds r0, r5, 0
- bl sub_80EE5C8
- cmp r0, 0
- bne _080ED68A
- ldr r0, _080ED694 @ =sub_80EE200
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080ED68A
- ldr r1, _080ED698 @ =sub_80ED898
- adds r0, r5, 0
- bl sub_80ECAA8
-_080ED68A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED694: .4byte sub_80EE200
-_080ED698: .4byte sub_80ED898
- thumb_func_end sub_80ED4C0
-
- thumb_func_start sub_80ED69C
-sub_80ED69C: @ 80ED69C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ED6C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080ED6C8
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0x1
- movs r2, 0x2
- bl ChangeBgX
- b _080ED6D2
- .align 2, 0
-_080ED6C4: .4byte gTasks
-_080ED6C8:
- movs r0, 0x1
- movs r1, 0x20
- movs r2, 0x2
- bl ChangeBgX
-_080ED6D2:
- pop {r0}
- bx r0
- thumb_func_end sub_80ED69C
-
- thumb_func_start sub_80ED6D8
-sub_80ED6D8: @ 80ED6D8
- push {lr}
- ldr r0, _080ED6E8 @ =sub_80ED69C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080ED6E8: .4byte sub_80ED69C
- thumb_func_end sub_80ED6D8
-
- thumb_func_start sub_80ED6EC
-sub_80ED6EC: @ 80ED6EC
- push {lr}
- ldr r0, _080ED70C @ =sub_80ED69C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ED710 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080ED70C: .4byte sub_80ED69C
-_080ED710: .4byte gTasks
- thumb_func_end sub_80ED6EC
-
- thumb_func_start sub_80ED714
-sub_80ED714: @ 80ED714
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080ED75C @ =gTasks+0x8
- adds r2, r1, r0
- movs r0, 0
- ldrsh r1, [r2, r0]
- cmp r1, 0
- bne _080ED758
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080ED758
- strh r1, [r2, 0x2]
- ldrh r0, [r2, 0x4]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r2, 0x4]
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- lsls r1, 15
- movs r0, 0xF8
- lsls r0, 9
- adds r1, r0
- movs r0, 0
- movs r2, 0
- bl ChangeBgY
-_080ED758:
- pop {r0}
- bx r0
- .align 2, 0
-_080ED75C: .4byte gTasks+0x8
- thumb_func_end sub_80ED714
-
- thumb_func_start sub_80ED760
-sub_80ED760: @ 80ED760
- push {lr}
- ldr r0, _080ED780 @ =sub_80ED714
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ED784 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080ED780: .4byte sub_80ED714
-_080ED784: .4byte gTasks
- thumb_func_end sub_80ED760
-
- thumb_func_start sub_80ED788
-sub_80ED788: @ 80ED788
- push {lr}
- ldr r0, _080ED7A8 @ =sub_80ED714
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ED7AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080ED7A8: .4byte sub_80ED714
-_080ED7AC: .4byte gTasks
- thumb_func_end sub_80ED788
-
- thumb_func_start sub_80ED7B0
-sub_80ED7B0: @ 80ED7B0
- push {lr}
- ldr r0, _080ED7CC @ =sub_80ED714
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ED7D0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0xC]
- pop {r1}
- bx r1
- .align 2, 0
-_080ED7CC: .4byte sub_80ED714
-_080ED7D0: .4byte gTasks
- thumb_func_end sub_80ED7B0
-
- thumb_func_start sub_80ED7D4
-sub_80ED7D4: @ 80ED7D4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080ED800 @ =gUnknown_840BDFC
- movs r1, 0x94
- lsls r1, 1
- movs r2, 0x70
- movs r3, 0x7
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080ED80C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080ED804 @ =gSprites
- adds r0, r1
- str r0, [r4, 0x24]
- ldr r1, _080ED808 @ =sub_80ED818
- str r1, [r0, 0x1C]
- b _080ED810
- .align 2, 0
-_080ED800: .4byte gUnknown_840BDFC
-_080ED804: .4byte gSprites
-_080ED808: .4byte sub_80ED818
-_080ED80C:
- movs r0, 0
- str r0, [r4, 0x24]
-_080ED810:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ED7D4
-
- thumb_func_start sub_80ED818
-sub_80ED818: @ 80ED818
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r2, 0
- adds r4, 0x2E
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080ED848
- cmp r0, 0x1
- bgt _080ED832
- cmp r0, 0
- beq _080ED838
- b _080ED892
-_080ED832:
- cmp r0, 0x2
- beq _080ED866
- b _080ED892
-_080ED838:
- ldrh r0, [r2, 0x20]
- lsls r0, 5
- strh r0, [r4, 0x2]
- movs r0, 0xA0
- strh r0, [r4, 0x4]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_080ED848:
- ldrh r0, [r4, 0x2]
- ldrh r1, [r4, 0x4]
- subs r0, r1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r2, 0x20]
- cmp r0, 0x34
- bgt _080ED892
- bl sub_80ED6EC
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080ED892
-_080ED866:
- ldrh r0, [r4, 0x2]
- subs r0, 0x20
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r2, 0x20]
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bgt _080ED892
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- adds r0, r2, 0
- bl DestroySprite
-_080ED892:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ED818
-
- thumb_func_start sub_80ED898
-sub_80ED898: @ 80ED898
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrb r0, [r4, 0x4]
- cmp r0, 0xF
- bls _080ED8A6
- b _080EDA98
-_080ED8A6:
- lsls r0, 2
- ldr r1, _080ED8B0 @ =_080ED8B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED8B0: .4byte _080ED8B4
- .align 2, 0
-_080ED8B4:
- .4byte _080ED8F4
- .4byte _080ED8F8
- .4byte _080ED910
- .4byte _080ED918
- .4byte _080ED936
- .4byte _080ED946
- .4byte _080ED95E
- .4byte _080ED97C
- .4byte _080ED998
- .4byte _080ED9A0
- .4byte _080ED9BA
- .4byte _080ED9D2
- .4byte _080ED9DC
- .4byte _080EDA1C
- .4byte _080EDA5C
- .4byte _080EDA7C
-_080ED8F4:
- movs r0, 0
- b _080EDA6C
-_080ED8F8:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bhi _080ED908
- b _080EDAC4
-_080ED908:
- adds r0, r4, 0
- bl sub_80EE5E4
- b _080EDA6E
-_080ED910:
- adds r0, r4, 0
- bl sub_80EE850
- b _080EDA64
-_080ED918:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bhi _080ED928
- b _080EDAC4
-_080ED928:
- bl sub_80ED760
- adds r0, r4, 0
- bl sub_80EDF94
- movs r0, 0
- b _080EDA6C
-_080ED936:
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _080ED93E
- b _080EDAC4
-_080ED93E:
- adds r0, r4, 0
- bl sub_80EE6A4
- b _080EDA6E
-_080ED946:
- adds r0, r4, 0
- bl sub_80EE850
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080ED956
- b _080EDAC4
-_080ED956:
- bl sub_80ED788
- strh r5, [r4, 0x12]
- b _080EDA6E
-_080ED95E:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bhi _080ED96E
- b _080EDAC4
-_080ED96E:
- ldr r0, [r4, 0x18]
- movs r1, 0x8
- movs r2, 0xC
- movs r3, 0x5
- bl sub_80EE970
- b _080EDA6E
-_080ED97C:
- adds r0, r4, 0
- bl sub_80EE850
- lsls r0, 24
- cmp r0, 0
- beq _080ED98A
- b _080EDAC4
-_080ED98A:
- ldr r0, [r4, 0x18]
- movs r1, 0x8
- movs r2, 0xC
- movs r3, 0x5
- bl sub_80EE970
- b _080EDA6E
-_080ED998:
- adds r0, r4, 0
- bl sub_80EE850
- b _080EDA64
-_080ED9A0:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x14
- bhi _080ED9B0
- b _080EDAC4
-_080ED9B0:
- adds r0, r4, 0
- bl sub_80EEA94
- movs r0, 0
- b _080EDA6C
-_080ED9BA:
- bl sub_80ED7B0
- lsls r0, 24
- cmp r0, 0
- beq _080ED9C6
- b _080EDAC4
-_080ED9C6:
- bl sub_80ED760
- adds r0, r4, 0
- bl sub_80EDAF0
- b _080EDA6E
-_080ED9D2:
- movs r0, 0
- bl HideBg
- movs r0, 0
- b _080EDA6C
-_080ED9DC:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bne _080ED9FA
- ldr r0, _080EDA18 @ =0x00007fff
- str r0, [sp]
- movs r0, 0x6
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080ED9FA:
- ldrh r0, [r4, 0x12]
- cmp r0, 0x78
- bls _080EDAC4
- adds r0, r4, 0
- bl sub_80EDB70
- adds r0, r4, 0
- bl sub_80EDBAC
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- movs r0, 0
- b _080EDAC2
- .align 2, 0
-_080EDA18: .4byte 0x00007fff
-_080EDA1C:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _080EDAC4
- add r1, sp, 0x4
- ldr r2, _080EDA50 @ =0x00007fff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080EDA54 @ =gPlttBufferUnfaded + 0x20
- ldr r2, _080EDA58 @ =0x01000020
- add r0, sp, 0x4
- bl CpuSet
- movs r1, 0x2
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EDA6E
- .align 2, 0
-_080EDA50: .4byte 0x00007fff
-_080EDA54: .4byte gPlttBufferUnfaded + 0x20
-_080EDA58: .4byte 0x01000020
-_080EDA5C:
- ldr r0, _080EDA78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
-_080EDA64:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080EDAC4
-_080EDA6C:
- strh r0, [r4, 0x12]
-_080EDA6E:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080EDAC4
- .align 2, 0
-_080EDA78: .4byte gPaletteFade
-_080EDA7C:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3C
- bls _080EDAC4
- ldr r1, _080EDA94 @ =sub_80EDBE8
- adds r0, r4, 0
- bl sub_80ECAA8
- b _080EDAC4
- .align 2, 0
-_080EDA94: .4byte sub_80EDBE8
-_080EDA98:
- ldr r0, _080EDACC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080EDAC4
- ldr r0, _080EDAD0 @ =0xffff0064
- ldr r2, _080EDAD4 @ =0x00007fff
- movs r1, 0
- bl BlendPalettes
- ldr r1, [r4, 0x18]
- movs r0, 0
- strh r0, [r1, 0x24]
- ldr r1, [r4, 0x18]
- movs r0, 0xB4
- strh r0, [r1, 0x20]
- movs r0, 0x1
- strb r0, [r4, 0x4]
- movs r0, 0x1E
-_080EDAC2:
- strh r0, [r4, 0x12]
-_080EDAC4:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDACC: .4byte gMain
-_080EDAD0: .4byte 0xffff0064
-_080EDAD4: .4byte 0x00007fff
- thumb_func_end sub_80ED898
-
- thumb_func_start sub_80EDAD8
-sub_80EDAD8: @ 80EDAD8
- push {lr}
- ldrb r3, [r0, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- bl CalcCenterToCornerVec
- pop {r0}
- bx r0
- thumb_func_end sub_80EDAD8
-
- thumb_func_start sub_80EDAF0
-sub_80EDAF0: @ 80EDAF0
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
-_080EDAF6:
- movs r6, 0x1
- ands r6, r5
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 20
- lsrs r2, r5, 31
- adds r2, r5, r2
- asrs r2, 1
- lsls r2, 22
- movs r0, 0xC4
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- movs r0, 0x90
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- ldr r0, _080EDB68 @ =gUnknown_840BE4C
- movs r3, 0x8
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080EDB5C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EDB6C @ =gSprites
- adds r4, r0, r1
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- lsls r1, r5, 2
- adds r0, r7, 0
- adds r0, 0x28
- adds r2, r0, r1
- str r4, [r2]
- cmp r6, 0
- beq _080EDB56
- ldrb r0, [r4, 0x1]
- movs r1, 0x3F
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080EDB56:
- ldr r0, [r2]
- bl sub_80EDAD8
-_080EDB5C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080EDAF6
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDB68: .4byte gUnknown_840BE4C
-_080EDB6C: .4byte gSprites
- thumb_func_end sub_80EDAF0
-
- thumb_func_start sub_80EDB70
-sub_80EDB70: @ 80EDB70
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x18]
- ldrh r0, [r1, 0x24]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldr r1, [r4, 0x18]
- ldrh r0, [r1, 0x26]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
- ldr r0, [r4, 0x18]
- movs r1, 0
- movs r2, 0x2A
- bl sub_8007FFC
- ldr r0, [r4, 0x18]
- ldr r1, _080EDBA4 @ =SpriteCallbackDummy
- str r1, [r0, 0x1C]
- movs r1, 0x1
- bl StartSpriteAffineAnim
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDBA4: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EDB70
-
- thumb_func_start nullsub_83
-nullsub_83: @ 80EDBA8
- bx lr
- thumb_func_end nullsub_83
-
- thumb_func_start sub_80EDBAC
-sub_80EDBAC: @ 80EDBAC
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r6, 0
- ldr r5, _080EDBE0 @ =gUnknown_840BBB8
-_080EDBB4:
- lsls r0, r6, 2
- adds r4, r7, 0
- adds r4, 0x28
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, [r4]
- ldr r1, _080EDBE4 @ =nullsub_83
- str r1, [r0, 0x1C]
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- bl sub_8007FFC
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080EDBB4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDBE0: .4byte gUnknown_840BBB8
-_080EDBE4: .4byte nullsub_83
- thumb_func_end sub_80EDBAC
-
- thumb_func_start sub_80EDBE8
-sub_80EDBE8: @ 80EDBE8
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080EDBF8
- cmp r0, 0x1
- beq _080EDC0C
- b _080EDC34
-_080EDBF8:
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0
- movs r1, 0
- bl FillPalette
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080EDC34
-_080EDC0C:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _080EDC34
- ldrb r0, [r4, 0x5]
- bl DestroyTask
- adds r0, r4, 0
- bl Free
- movs r0, 0x2
- bl DisableInterrupts
- movs r0, 0
- bl SetHBlankCallback
- ldr r0, _080EDC3C @ =CB2_InitTitleScreen
- bl SetMainCallback2
-_080EDC34:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDC3C: .4byte CB2_InitTitleScreen
- thumb_func_end sub_80EDBE8
-
- thumb_func_start sub_80EDC40
-sub_80EDC40: @ 80EDC40
- push {r4-r6,lr}
- movs r5, 0
- ldr r4, _080EDCE4 @ =gUnknown_840BBC0
-_080EDC46:
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, 0x4
- bls _080EDC46
- ldr r0, _080EDCE8 @ =gUnknown_840BBE8
- bl LoadSpritePalettes
- ldr r6, _080EDCEC @ =gUnknown_203AB0E
- movs r0, 0x60
- strh r0, [r6]
- ldr r5, _080EDCF0 @ =gUnknown_203AB10
- movs r0, 0x10
- strh r0, [r5]
- ldr r1, _080EDCF4 @ =gUnknown_203AB12
- movs r0, 0x7
- strh r0, [r1]
- ldr r0, _080EDCF8 @ =gUnknown_203AB14
- movs r2, 0x5
- strh r2, [r0]
- ldr r1, _080EDCFC @ =gUnknown_203AB16
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _080EDD00 @ =gUnknown_203AB18
- movs r0, 0x5A
- strh r0, [r1]
- ldr r1, _080EDD04 @ =gUnknown_203AB1A
- movs r0, 0x78
- strh r0, [r1]
- ldr r0, _080EDD08 @ =gUnknown_203AB1E
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _080EDD0C @ =gUnknown_203AB20
- strh r1, [r0]
- ldr r0, _080EDD10 @ =gUnknown_203AB22
- strh r2, [r0]
- ldr r0, _080EDD14 @ =gUnknown_203AB24
- strh r2, [r0]
- ldr r4, _080EDD18 @ =gUnknown_203AB28
- ldr r0, [r4]
- cmp r0, 0
- bne _080EDCA2
- ldr r0, _080EDD1C @ =0x151b9245
- str r0, [r4]
-_080EDCA2:
- ldr r0, _080EDD20 @ =gUnknown_840BC6C
- movs r1, 0xF8
- movs r2, 0x37
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080EDCDE
- ldr r0, _080EDD24 @ =gSprites
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r2, r3, r0
- movs r1, 0xF8
- lsls r1, 4
- strh r1, [r2, 0x2E]
- movs r1, 0xDC
- lsls r1, 2
- strh r1, [r2, 0x30]
- ldrh r1, [r6]
- strh r1, [r2, 0x32]
- ldrh r1, [r5]
- strh r1, [r2, 0x34]
- adds r0, r3
- adds r0, 0x3A
- ldr r1, [r4]
- bl StoreWordInTwoHalfwords
-_080EDCDE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDCE4: .4byte gUnknown_840BBC0
-_080EDCE8: .4byte gUnknown_840BBE8
-_080EDCEC: .4byte gUnknown_203AB0E
-_080EDCF0: .4byte gUnknown_203AB10
-_080EDCF4: .4byte gUnknown_203AB12
-_080EDCF8: .4byte gUnknown_203AB14
-_080EDCFC: .4byte gUnknown_203AB16
-_080EDD00: .4byte gUnknown_203AB18
-_080EDD04: .4byte gUnknown_203AB1A
-_080EDD08: .4byte gUnknown_203AB1E
-_080EDD0C: .4byte gUnknown_203AB20
-_080EDD10: .4byte gUnknown_203AB22
-_080EDD14: .4byte gUnknown_203AB24
-_080EDD18: .4byte gUnknown_203AB28
-_080EDD1C: .4byte 0x151b9245
-_080EDD20: .4byte gUnknown_840BC6C
-_080EDD24: .4byte gSprites
- thumb_func_end sub_80EDC40
-
- thumb_func_start sub_80EDD28
-sub_80EDD28: @ 80EDD28
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080EDDCC @ =gUnknown_203AB12
- ldrh r0, [r0]
- ands r2, r0
- adds r2, 0x2
- lsls r2, 16
- lsrs r4, r2, 16
- ldr r1, _080EDDD0 @ =gUnknown_203AB2C
- ldrh r0, [r1]
- adds r2, r0, 0
- adds r0, r2, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080EDD5C
- movs r6, 0x3
- negs r6, r6
- adds r0, r6, 0
- strh r0, [r1]
-_080EDD5C:
- lsls r1, r5, 16
- asrs r1, 16
- lsls r0, r4, 16
- asrs r7, r0, 16
- adds r1, r7
- lsls r0, r3, 16
- asrs r0, 16
- lsls r2, 16
- asrs r6, r2, 16
- adds r0, r6
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- ldr r0, _080EDDD4 @ =0xffff0000
- adds r1, r0
- lsrs r1, 16
- cmp r1, 0xEE
- bhi _080EDDC6
- ldr r0, _080EDDD8 @ =gUnknown_840BC84
- lsls r1, r3, 16
- asrs r5, r1, 16
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080EDDC6
- ldr r0, _080EDDDC @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _080EDDE0 @ =gUnknown_203AB22
- ldrh r0, [r0]
- lsls r4, r0
- strh r4, [r1, 0x2E]
- ldr r2, _080EDDE4 @ =gUnknown_203AB24
- adds r0, r5, 0
- ldrh r2, [r2]
- lsls r0, r2
- strh r0, [r1, 0x30]
- ldr r0, _080EDDE8 @ =gUnknown_203AB1E
- ldrh r0, [r0]
- muls r0, r7
- strh r0, [r1, 0x32]
- ldr r0, _080EDDEC @ =gUnknown_203AB20
- ldrh r0, [r0]
- muls r0, r6
- strh r0, [r1, 0x34]
-_080EDDC6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDDCC: .4byte gUnknown_203AB12
-_080EDDD0: .4byte gUnknown_203AB2C
-_080EDDD4: .4byte 0xffff0000
-_080EDDD8: .4byte gUnknown_840BC84
-_080EDDDC: .4byte gSprites
-_080EDDE0: .4byte gUnknown_203AB22
-_080EDDE4: .4byte gUnknown_203AB24
-_080EDDE8: .4byte gUnknown_203AB1E
-_080EDDEC: .4byte gUnknown_203AB20
- thumb_func_end sub_80EDD28
-
- thumb_func_start sub_80EDDF0
-sub_80EDDF0: @ 80EDDF0
- push {lr}
- ldr r0, _080EDE00 @ =sub_80EDE04
- movs r1, 0x1
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080EDE00: .4byte sub_80EDE04
- thumb_func_end sub_80EDDF0
-
- thumb_func_start sub_80EDE04
-sub_80EDE04: @ 80EDE04
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- ldr r1, _080EDEB0 @ =gTasks+0x8
- adds r0, r1
- mov r8, r0
- ldrh r1, [r0, 0x4]
- adds r1, 0x1
- strh r1, [r0, 0x4]
- ldrh r0, [r0, 0x6]
- adds r0, 0x1
- mov r2, r8
- strh r0, [r2, 0x6]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x6
- ble _080EDECA
- movs r0, 0
- strh r0, [r2, 0x4]
- ldrb r6, [r2]
- ldr r0, _080EDEB4 @ =gUnknown_840BC84
- ldr r1, _080EDEB8 @ =gUnknown_840BC08
- lsls r6, 2
- adds r6, r1
- movs r3, 0
- ldrsh r1, [r6, r3]
- movs r3, 0x2
- ldrsh r2, [r6, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _080EDEBC @ =gSprites
- adds r7, r4, r5
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080EDEC0 @ =sub_80EE40C
- str r0, [r4]
- ldrh r0, [r6, 0x2]
- lsls r0, 4
- strh r0, [r7, 0x30]
- movs r0, 0x78
- strh r0, [r7, 0x32]
- mov r1, r8
- ldrh r0, [r1, 0x2]
- strh r0, [r7, 0x34]
- lsls r0, 16
- cmp r0, 0
- bge _080EDE88
- movs r0, 0x1
- strh r0, [r7, 0x34]
-_080EDE88:
- mov r2, r8
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _080EDECA
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080EDEC4
- mov r0, r9
- bl DestroyTask
- b _080EDECA
- .align 2, 0
-_080EDEB0: .4byte gTasks+0x8
-_080EDEB4: .4byte gUnknown_840BC84
-_080EDEB8: .4byte gUnknown_840BC08
-_080EDEBC: .4byte gSprites
-_080EDEC0: .4byte sub_80EE40C
-_080EDEC4:
- movs r0, 0
- mov r3, r8
- strh r0, [r3]
-_080EDECA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EDE04
-
- thumb_func_start sub_80EDED8
-sub_80EDED8: @ 80EDED8
- push {lr}
- ldr r0, _080EDEE8 @ =sub_80EDEEC
- movs r1, 0x2
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080EDEE8: .4byte sub_80EDEEC
- thumb_func_end sub_80EDED8
-
- thumb_func_start sub_80EDEEC
-sub_80EDEEC: @ 80EDEEC
- 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, _080EDF5C @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080EDF44
- ldrh r1, [r4, 0x2]
- ldrb r2, [r4, 0x2]
- adds r0, r1, 0x4
- strh r0, [r4, 0x2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _080EDF1A
- subs r0, r1, 0x5
- strh r0, [r4, 0x2]
-_080EDF1A:
- ldr r0, _080EDF60 @ =gUnknown_840BCBC
- ldr r1, _080EDF64 @ =gUnknown_840BC08
- lsls r2, 2
- adds r2, r1
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- movs r3, 0x3
- bl CreateSprite
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080EDF44
- adds r0, r5, 0
- bl DestroyTask
-_080EDF44:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080EDF56
- movs r0, 0
- strh r0, [r4]
-_080EDF56:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDF5C: .4byte gTasks+0x8
-_080EDF60: .4byte gUnknown_840BCBC
-_080EDF64: .4byte gUnknown_840BC08
- thumb_func_end sub_80EDEEC
-
- thumb_func_start sub_80EDF68
-sub_80EDF68: @ 80EDF68
- push {lr}
- ldr r0, _080EDF8C @ =gUnknown_840BCDC
- movs r1, 0x78
- movs r2, 0x46
- movs r3, 0x4
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EDF90 @ =gSprites
- adds r0, r1
- pop {r1}
- bx r1
- .align 2, 0
-_080EDF8C: .4byte gUnknown_840BCDC
-_080EDF90: .4byte gSprites
- thumb_func_end sub_80EDF68
-
- thumb_func_start sub_80EDF94
-sub_80EDF94: @ 80EDF94
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0
- strb r0, [r4, 0x6]
- ldr r0, _080EDFD0 @ =sub_80EE024
- movs r1, 0x4
- bl CreateTask
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0x5
- adds r2, r4, 0
- bl SetWordTaskArg
- ldr r0, _080EDFD4 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0x40
- strh r0, [r4, 0xE]
- movs r0, 0
- bl GetBgX
- strh r0, [r4, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDFD0: .4byte sub_80EE024
-_080EDFD4: .4byte gTasks
- thumb_func_end sub_80EDF94
-
- thumb_func_start sub_80EDFD8
-sub_80EDFD8: @ 80EDFD8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r4, 15
- movs r0, 0xF8
- lsls r0, 9
- adds r4, r0
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0
- mov r1, r8
- movs r2, 0
- bl ChangeBgX
- lsls r5, 8
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl ChangeBgX
- lsls r6, 8
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- bl ChangeBgY
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80EDFD8
-
- thumb_func_start sub_80EE024
-sub_80EE024: @ 80EE024
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080EE048 @ =gTasks+0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bhi _080EE11C
- lsls r0, 2
- ldr r1, _080EE04C @ =_080EE050
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE048: .4byte gTasks+0x8
-_080EE04C: .4byte _080EE050
- .align 2, 0
-_080EE050:
- .4byte _080EE068
- .4byte _080EE07A
- .4byte _080EE094
- .4byte _080EE0BC
- .4byte _080EE0EE
- .4byte _080EE114
-_080EE068:
- movs r0, 0x2
- strh r0, [r5, 0xE]
- movs r0, 0
- strh r0, [r5, 0x2]
- movs r0, 0x6
- strh r0, [r5, 0x10]
- movs r0, 0x20
- strh r0, [r5, 0x12]
- b _080EE10C
-_080EE07A:
- ldrh r0, [r5, 0x6]
- subs r0, 0x2
- strh r0, [r5, 0x6]
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080EE11C
- movs r0, 0
- strh r0, [r5, 0x2]
- b _080EE10C
-_080EE094:
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _080EE0AE
- adds r0, r2, 0
- movs r1, 0x5
- bl GetWordTaskArg
- movs r1, 0x1
- strb r1, [r0, 0x6]
-_080EE0AE:
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0xF
- ble _080EE11C
- movs r0, 0
- strh r0, [r5, 0x2]
- b _080EE10C
-_080EE0BC:
- ldrh r0, [r5, 0x6]
- adds r0, 0x8
- strh r0, [r5, 0x6]
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080EE0E0
- bl sub_80EE160
- movs r0, 0x20
- strh r0, [r5, 0x10]
- movs r0, 0x30
- strh r0, [r5, 0x12]
- movs r0, 0x3
- strh r0, [r5, 0xE]
-_080EE0E0:
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r0, 0x7
- ble _080EE11C
- movs r0, 0
- strh r0, [r5, 0x2]
- b _080EE10C
-_080EE0EE:
- ldrh r0, [r5, 0x6]
- subs r0, 0x8
- strh r0, [r5, 0x6]
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080EE11C
- movs r1, 0
- strh r1, [r5, 0xE]
- movs r0, 0x40
- strh r0, [r5, 0x6]
- strh r1, [r5, 0x2]
-_080EE10C:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080EE11C
-_080EE114:
- adds r0, r2, 0
- bl DestroyTask
- b _080EE156
-_080EE11C:
- movs r4, 0x6
- ldrsh r3, [r5, r4]
- ldr r4, _080EE15C @ =gSineTable
- adds r0, r3, 0
- adds r0, 0x40
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x12
- ldrsh r0, [r5, r2]
- muls r1, r0
- asrs r1, 8
- negs r1, r1
- movs r0, 0x10
- ldrsh r2, [r5, r0]
- lsls r3, 1
- adds r3, r4
- movs r4, 0
- ldrsh r0, [r3, r4]
- muls r0, r2
- asrs r0, 8
- subs r2, r0
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- movs r4, 0x8
- ldrsh r3, [r5, r4]
- bl sub_80EDFD8
-_080EE156:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE15C: .4byte gSineTable
- thumb_func_end sub_80EE024
-
- thumb_func_start sub_80EE160
-sub_80EE160: @ 80EE160
- push {r4,lr}
- ldr r4, _080EE1BC @ =gUnknown_840BE8C
- adds r0, r4, 0
- movs r1, 0x84
- movs r2, 0x4E
- movs r3, 0x6
- bl CreateSprite
- adds r0, r4, 0
- movs r1, 0x84
- movs r2, 0x76
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080EE1B4
- ldr r0, _080EE1C0 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r2, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r4, 0x3]
- adds r0, r4, 0
- bl sub_80EDAD8
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080EE1B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE1BC: .4byte gUnknown_840BE8C
-_080EE1C0: .4byte gSprites
- thumb_func_end sub_80EE160
-
- thumb_func_start sub_80EE1C4
-sub_80EE1C4: @ 80EE1C4
- 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]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EE1FA
- adds r0, r3, 0
- bl DestroySprite
-_080EE1FA:
- pop {r0}
- bx r0
- thumb_func_end sub_80EE1C4
-
- thumb_func_start sub_80EE200
-sub_80EE200: @ 80EE200
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080EE220 @ =gTasks+0x8
- adds r1, r0, r1
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080EE224
- cmp r0, 0x1
- beq _080EE232
- b _080EE28A
- .align 2, 0
-_080EE220: .4byte gTasks+0x8
-_080EE224:
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1, 0x2]
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE232:
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _080EE250
- ldrh r2, [r1, 0x2]
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- cmp r0, 0x10
- ble _080EE250
- adds r0, r2, 0
- subs r0, 0x10
- strh r0, [r1, 0x2]
-_080EE250:
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- movs r0, 0
- movs r2, 0x1
- bl ChangeBgX
- ldr r5, _080EE290 @ =gUnknown_203AB30
- str r0, [r5]
- ldr r1, _080EE294 @ =0x00007fff
- cmp r0, r1
- bls _080EE270
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
-_080EE270:
- ldr r1, [r5]
- ldr r0, _080EE298 @ =0x0000eeff
- cmp r1, r0
- bls _080EE28A
- movs r1, 0xEF
- lsls r1, 8
- movs r0, 0
- movs r2, 0
- bl ChangeBgX
- adds r0, r4, 0
- bl DestroyTask
-_080EE28A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE290: .4byte gUnknown_203AB30
-_080EE294: .4byte 0x00007fff
-_080EE298: .4byte 0x0000eeff
- thumb_func_end sub_80EE200
-
- thumb_func_start sub_80EE29C
-sub_80EE29C: @ 80EE29C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x2E]
- ldrh r0, [r5, 0x32]
- subs r2, r0
- strh r2, [r5, 0x2E]
- ldrh r1, [r5, 0x34]
- ldrh r0, [r5, 0x30]
- adds r1, r0
- strh r1, [r5, 0x30]
- ldrh r0, [r5, 0x36]
- adds r0, 0x30
- strh r0, [r5, 0x36]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldr r1, _080EE340 @ =gSineTable
- lsls r0, 16
- asrs r0, 20
- adds r0, 0x40
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- strh r0, [r5, 0x38]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- ldr r1, _080EE344 @ =gUnknown_203AB16
- ldrh r1, [r1]
- bl __modsi3
- cmp r0, 0
- beq _080EE324
- adds r4, r5, 0
- adds r4, 0x3A
- adds r0, r4, 0
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r1, [sp]
- ldr r0, _080EE348 @ =0x41c64e6d
- muls r1, r0
- ldr r3, _080EE34C @ =0x00006073
- adds r1, r3
- str r1, [sp]
- adds r0, r4, 0
- bl StoreWordInTwoHalfwords
- ldr r2, [sp]
- lsrs r2, 16
- str r2, [sp]
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- ldrh r1, [r5, 0x26]
- ldrh r3, [r5, 0x22]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- bl sub_80EDD28
-_080EE324:
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- bge _080EE336
- adds r0, r5, 0
- bl DestroySprite
-_080EE336:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE340: .4byte gSineTable
-_080EE344: .4byte gUnknown_203AB16
-_080EE348: .4byte 0x41c64e6d
-_080EE34C: .4byte 0x00006073
- thumb_func_end sub_80EE29C
-
- thumb_func_start sub_80EE350
-sub_80EE350: @ 80EE350
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- strh r0, [r4, 0x2E]
- ldrh r2, [r4, 0x34]
- ldrh r1, [r4, 0x30]
- adds r0, r2, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r1, 0x1
- strh r1, [r4, 0x36]
- ldrh r0, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x2E]
- ldr r1, _080EE3F8 @ =gUnknown_203AB22
- ldrh r1, [r1]
- asrs r0, r1
- strh r0, [r4, 0x20]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldr r1, _080EE3FC @ =gUnknown_203AB24
- ldrh r1, [r1]
- asrs r0, r1
- strh r0, [r4, 0x22]
- ldr r1, _080EE400 @ =gUnknown_203AB1C
- ldrh r0, [r1]
- cmp r0, 0
- beq _080EE3A4
- lsls r0, r2, 16
- cmp r0, 0
- bge _080EE3A4
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- ldrh r1, [r1]
- asrs r0, r1
- strh r0, [r4, 0x26]
-_080EE3A4:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- ldr r0, _080EE404 @ =gUnknown_203AB18
- ldrh r0, [r0]
- cmp r1, r0
- ble _080EE3DC
- 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 r2, 0x3C
- ldrsh r1, [r4, r2]
- ldr r0, _080EE408 @ =gUnknown_203AB1A
- ldrh r0, [r0]
- cmp r1, r0
- ble _080EE3DC
- adds r0, r4, 0
- bl DestroySprite
-_080EE3DC:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- bls _080EE3F0
- adds r0, r4, 0
- bl DestroySprite
-_080EE3F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE3F8: .4byte gUnknown_203AB22
-_080EE3FC: .4byte gUnknown_203AB24
-_080EE400: .4byte gUnknown_203AB1C
-_080EE404: .4byte gUnknown_203AB18
-_080EE408: .4byte gUnknown_203AB1A
- thumb_func_end sub_80EE350
-
- thumb_func_start sub_80EE40C
-sub_80EE40C: @ 80EE40C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080EE490
- subs r0, r1, 0x1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x22]
- cmp r0, 0x56
- ble _080EE438
- movs r0, 0x4A
- strh r0, [r4, 0x22]
- movs r0, 0x94
- lsls r0, 3
- strh r0, [r4, 0x30]
-_080EE438:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EE4D4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080EE46C
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0
- adds r1, 0x1A
- strh r1, [r4, 0x20]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xBC
- ble _080EE486
- movs r2, 0xBC
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0x20]
- movs r0, 0x1
- b _080EE484
-_080EE46C:
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0
- subs r1, 0x1A
- strh r1, [r4, 0x20]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x33
- bgt _080EE486
- movs r0, 0x68
- subs r0, r1
- strh r0, [r4, 0x20]
- movs r0, 0
-_080EE484:
- strh r0, [r4, 0x2E]
-_080EE486:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _080EE4D4
-_080EE490:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080EE49E
- adds r0, r4, 0
- bl DestroySprite
-_080EE49E:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EE4B4
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_080EE4B4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080EE4D4
- adds r0, r4, 0
- bl DestroySprite
-_080EE4D4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80EE40C
-
- thumb_func_start sub_80EE4DC
-sub_80EE4DC: @ 80EE4DC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EE4F2
- adds r0, r2, 0
- bl DestroySprite
-_080EE4F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80EE4DC
-
- thumb_func_start sub_80EE4F8
-sub_80EE4F8: @ 80EE4F8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080EE520 @ =gUnknown_840BD88
- movs r1, 0
- movs r2, 0
- movs r3, 0x9
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080EE524 @ =gSprites
- adds r1, r0
- str r1, [r4, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE520: .4byte gUnknown_840BD88
-_080EE524: .4byte gSprites
- thumb_func_end sub_80EE4F8
-
- thumb_func_start sub_80EE528
-sub_80EE528: @ 80EE528
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r4, r0, 0
- adds r0, r2, 0
- adds r5, r3, 0
- lsls r1, 16
- lsls r0, 16
- lsls r5, 16
- lsrs r5, 16
- lsrs r2, r1, 16
- mov r9, r2
- asrs r1, 16
- lsls r2, r1, 4
- movs r3, 0
- mov r8, r3
- strh r2, [r4, 0x2E]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- adds r1, r5, 0
- bl __divsi3
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r6, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- mov r2, r9
- strh r2, [r4, 0x20]
- movs r0, 0x64
- strh r0, [r4, 0x22]
- ldr r0, _080EE57C @ =sub_80EE580
- str r0, [r4, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE57C: .4byte sub_80EE580
- thumb_func_end sub_80EE528
-
- thumb_func_start sub_80EE580
-sub_80EE580: @ 80EE580
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x36]
- adds r0, 0x1
- strh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _080EE5A0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- ble _080EE5A0
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
-_080EE5A0:
- ldrh r0, [r2, 0x30]
- ldrh r4, [r2, 0x2E]
- adds r0, r4
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- ldrh r3, [r2, 0x34]
- movs r4, 0x34
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _080EE5BE
- strh r3, [r2, 0x20]
- ldr r0, _080EE5C4 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_080EE5BE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE5C4: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EE580
-
- thumb_func_start sub_80EE5C8
-sub_80EE5C8: @ 80EE5C8
- push {lr}
- movs r2, 0
- ldr r0, [r0, 0x18]
- ldr r1, [r0, 0x1C]
- ldr r0, _080EE5E0 @ =sub_80EE580
- cmp r1, r0
- bne _080EE5D8
- movs r2, 0x1
-_080EE5D8:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080EE5E0: .4byte sub_80EE580
- thumb_func_end sub_80EE5C8
-
- thumb_func_start sub_80EE5E4
-sub_80EE5E4: @ 80EE5E4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x18]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r0, [r4, 0x18]
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r0, [r4, 0x18]
- strh r1, [r0, 0x30]
- ldr r1, [r4, 0x18]
- movs r0, 0x3
- strh r0, [r1, 0x26]
- ldr r1, [r4, 0x18]
- ldr r0, _080EE60C @ =sub_80EE610
- str r0, [r1, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE60C: .4byte sub_80EE610
- thumb_func_end sub_80EE5E4
-
- thumb_func_start sub_80EE610
-sub_80EE610: @ 80EE610
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080EE646
- cmp r5, 0x1
- bgt _080EE626
- cmp r5, 0
- beq _080EE62C
- b _080EE69A
-_080EE626:
- cmp r5, 0x2
- beq _080EE65C
- b _080EE69A
-_080EE62C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080EE69A
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r5, [r4, 0x26]
- b _080EE654
-_080EE646:
- movs r0, 0x21
- movs r1, 0x3F
- movs r2, 0x1
- bl PlayCry3
- movs r0, 0
- strh r0, [r4, 0x30]
-_080EE654:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080EE69A
-_080EE65C:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080EE67C
- movs r0, 0
- strh r0, [r4, 0x32]
- movs r1, 0
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080EE67A
- movs r1, 0x1
-_080EE67A:
- strh r1, [r4, 0x26]
-_080EE67C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _080EE69A
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r0, _080EE6A0 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080EE69A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE6A0: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EE610
-
- thumb_func_start sub_80EE6A4
-sub_80EE6A4: @ 80EE6A4
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080EE6F0 @ =gUnknown_203AB0A
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _080EE6F4 @ =gUnknown_203AB04
- movs r0, 0x3
- strh r0, [r1]
- ldr r1, _080EE6F8 @ =gUnknown_203AB08
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _080EE6FC @ =gUnknown_203AB06
- movs r0, 0
- strh r0, [r1]
- ldr r0, [r4, 0x18]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r0, [r4, 0x18]
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r0, [r4, 0x18]
- strh r1, [r0, 0x30]
- ldr r0, [r4, 0x18]
- strh r1, [r0, 0x32]
- ldr r0, [r4, 0x18]
- strh r1, [r0, 0x34]
- ldr r0, [r4, 0x18]
- strh r1, [r0, 0x36]
- ldr r1, [r4, 0x18]
- movs r0, 0x28
- strh r0, [r1, 0x3C]
- ldr r1, [r4, 0x18]
- ldr r0, _080EE700 @ =sub_80EE704
- str r0, [r1, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE6F0: .4byte gUnknown_203AB0A
-_080EE6F4: .4byte gUnknown_203AB04
-_080EE6F8: .4byte gUnknown_203AB08
-_080EE6FC: .4byte gUnknown_203AB06
-_080EE700: .4byte sub_80EE704
- thumb_func_end sub_80EE6A4
-
- thumb_func_start sub_80EE704
-sub_80EE704: @ 80EE704
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080EE740
- cmp r0, 0x1
- bgt _080EE71A
- cmp r0, 0
- beq _080EE726
- b _080EE846
-_080EE71A:
- cmp r0, 0x2
- beq _080EE7C4
- cmp r0, 0x3
- bne _080EE724
- b _080EE824
-_080EE724:
- b _080EE846
-_080EE726:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080EE736
- b _080EE846
-_080EE736:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- b _080EE818
-_080EE740:
- ldrh r2, [r4, 0x3C]
- ldrh r3, [r4, 0x32]
- adds r1, r2, r3
- movs r5, 0
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x8
- strh r0, [r4, 0x34]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x24]
- ldr r1, _080EE7B0 @ =gSineTable
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r0, _080EE7B4 @ =gUnknown_203AB04
- ldrh r0, [r0]
- muls r0, r1
- ldr r1, _080EE7B8 @ =gUnknown_203AB08
- ldrh r1, [r1]
- asrs r0, r1
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- ldr r0, _080EE7BC @ =gUnknown_203AB06
- ldrh r0, [r0]
- cmp r1, r0
- ble _080EE78C
- strh r5, [r4, 0x38]
- subs r0, r2, 0x1
- strh r0, [r4, 0x3C]
-_080EE78C:
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080EE846
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- strh r5, [r4, 0x30]
- ldr r0, _080EE7C0 @ =0x00004757
- strh r0, [r4, 0x3A]
- movs r0, 0x1C
- strh r0, [r4, 0x3C]
- b _080EE818
- .align 2, 0
-_080EE7B0: .4byte gSineTable
-_080EE7B4: .4byte gUnknown_203AB04
-_080EE7B8: .4byte gUnknown_203AB08
-_080EE7BC: .4byte gUnknown_203AB06
-_080EE7C0: .4byte 0x00004757
-_080EE7C4:
- ldrh r0, [r4, 0x3C]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r1, r0, 20
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080EE804
- ldrh r0, [r4, 0x20]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r3, 0x3A
- ldrsh r2, [r4, r3]
- bl sub_80EE864
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- ldr r0, _080EE820 @ =0x41c64e6d
- muls r0, r1
- strh r0, [r4, 0x3A]
-_080EE804:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- ble _080EE846
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0x30]
-_080EE818:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080EE846
- .align 2, 0
-_080EE820: .4byte 0x41c64e6d
-_080EE824:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080EE846
- ldr r0, _080EE84C @ =gUnknown_203AB0A
- ldrh r1, [r0]
- ldrh r2, [r4, 0x24]
- negs r2, r2
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0x4
- bl sub_80EE970
-_080EE846:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE84C: .4byte gUnknown_203AB0A
- thumb_func_end sub_80EE704
-
- thumb_func_start sub_80EE850
-sub_80EE850: @ 80EE850
- ldr r0, [r0, 0x18]
- ldr r1, [r0, 0x1C]
- ldr r0, _080EE860 @ =SpriteCallbackDummy
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .align 2, 0
-_080EE860: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EE850
-
- thumb_func_start sub_80EE864
-sub_80EE864: @ 80EE864
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r2, 16
- lsrs r5, r2, 16
- movs r6, 0
- lsls r0, 16
- ldr r2, _080EE8D4 @ =0xffea0000
- adds r2, r0
- mov r8, r2
- lsls r1, 16
- movs r0, 0xC0
- lsls r0, 13
- adds r7, r1, r0
-_080EE880:
- ldr r0, _080EE8D8 @ =gUnknown_840BEC4
- mov r2, r8
- asrs r1, r2, 16
- asrs r2, r7, 16
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080EE8C4
- ldr r0, _080EE8DC @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- lsls r5, 16
- asrs r5, 16
- adds r0, r5, 0
- movs r1, 0xD
- bl __modsi3
- adds r0, 0x8
- strh r0, [r4, 0x34]
- adds r0, r5, 0
- movs r1, 0x3
- bl __modsi3
- strh r0, [r4, 0x36]
- strh r6, [r4, 0x3C]
- ldr r0, _080EE8E0 @ =0x41c64e6d
- muls r0, r5
- lsls r0, 16
- lsrs r5, r0, 16
-_080EE8C4:
- adds r6, 0x1
- cmp r6, 0x1
- ble _080EE880
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE8D4: .4byte 0xffea0000
-_080EE8D8: .4byte gUnknown_840BEC4
-_080EE8DC: .4byte gSprites
-_080EE8E0: .4byte 0x41c64e6d
- thumb_func_end sub_80EE864
-
- thumb_func_start sub_80EE8E4
-sub_80EE8E4: @ 80EE8E4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x2E
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080EE8FA
- cmp r0, 0x1
- beq _080EE90C
- b _080EE93E
-_080EE8FA:
- ldrh r0, [r5, 0x20]
- lsls r0, 4
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x22]
- lsls r0, 4
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_080EE90C:
- ldrh r1, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- subs r1, r0
- strh r1, [r4, 0x2]
- ldrh r0, [r4, 0x8]
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r4, 0x4]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x20]
- ldrh r0, [r4, 0x4]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EE93E
- adds r0, r5, 0
- bl DestroySprite
-_080EE93E:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080EE96A
- movs r0, 0
- strh r0, [r4, 0xE]
- adds r3, r5, 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]
-_080EE96A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EE8E4
-
- thumb_func_start sub_80EE970
-sub_80EE970: @ 80EE970
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- adds r6, r3, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- movs r1, 0
- mov r8, r1
- mov r1, r8
- strh r1, [r4, 0x2E]
- strh r5, [r4, 0x30]
- ldrh r1, [r4, 0x24]
- lsls r1, 4
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 12
- adds r1, r5, 0
- bl __divsi3
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- movs r0, 0x80
- lsls r0, 4
- adds r1, r5, 0
- bl __divsi3
- strh r0, [r4, 0x38]
- mov r1, r8
- strh r1, [r4, 0x3A]
- strh r6, [r4, 0x3C]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r0, _080EE9D0 @ =sub_80EE9D4
- str r0, [r4, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE9D0: .4byte sub_80EE9D4
- thumb_func_end sub_80EE970
-
- thumb_func_start sub_80EE9D4
-sub_80EE9D4: @ 80EE9D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080EEA08
- cmp r5, 0x1
- bgt _080EE9EA
- cmp r5, 0
- beq _080EE9F0
- b _080EEA88
-_080EE9EA:
- cmp r5, 0x2
- beq _080EEA6E
- b _080EEA88
-_080EE9F0:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080EEA88
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- b _080EEA64
-_080EEA08:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0
- beq _080EEA4C
- ldrh r1, [r4, 0x34]
- ldrh r2, [r4, 0x32]
- adds r1, r2
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x24]
- ldr r1, _080EEA48 @ =gSineTable
- lsls r0, 16
- asrs r0, 20
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- asrs r0, r1
- negs r0, r0
- strh r0, [r4, 0x26]
- b _080EEA88
- .align 2, 0
-_080EEA48: .4byte gSineTable
-_080EEA4C:
- ldrh r0, [r4, 0x32]
- lsrs r0, 4
- strh r0, [r4, 0x24]
- strh r5, [r4, 0x26]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- beq _080EEA84
-_080EEA64:
- strh r5, [r4, 0x3A]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080EEA88
-_080EEA6E:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080EEA88
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_080EEA84:
- ldr r0, _080EEA90 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080EEA88:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EEA90: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EE9D4
-
- thumb_func_start sub_80EEA94
-sub_80EEA94: @ 80EEA94
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x18]
- movs r2, 0
- strh r2, [r0, 0x2E]
- ldr r0, [r4, 0x18]
- strh r2, [r0, 0x30]
- ldr r0, [r4, 0x18]
- strh r2, [r0, 0x32]
- ldr r0, [r4, 0x18]
- strh r2, [r0, 0x34]
- ldr r0, [r4, 0x18]
- strh r2, [r0, 0x36]
- ldr r0, [r4, 0x18]
- strh r2, [r0, 0x38]
- ldr r1, [r4, 0x18]
- ldrh r0, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- strh r0, [r1, 0x20]
- ldr r0, [r4, 0x18]
- strh r2, [r0, 0x24]
- ldr r1, _080EEAF4 @ =gUnknown_203AB0C
- movs r0, 0x24
- strh r0, [r1]
- ldr r1, _080EEAF8 @ =gUnknown_203AB06
- movs r0, 0x28
- strh r0, [r1]
- ldr r1, _080EEAFC @ =gUnknown_203AB04
- movs r0, 0x3
- strh r0, [r1]
- ldr r1, _080EEB00 @ =gUnknown_203AB08
- movs r0, 0x4
- strh r0, [r1]
- ldr r1, [r4, 0x18]
- movs r0, 0x24
- strh r0, [r1, 0x3C]
- ldr r0, [r4, 0x18]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r1, [r4, 0x18]
- ldr r0, _080EEB04 @ =sub_80EEB08
- str r0, [r1, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EEAF4: .4byte gUnknown_203AB0C
-_080EEAF8: .4byte gUnknown_203AB06
-_080EEAFC: .4byte gUnknown_203AB04
-_080EEB00: .4byte gUnknown_203AB08
-_080EEB04: .4byte sub_80EEB08
- thumb_func_end sub_80EEA94
-
- thumb_func_start sub_80EEB08
-sub_80EEB08: @ 80EEB08
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080EEB58
- cmp r0, 0x1
- bgt _080EEB1E
- cmp r0, 0
- beq _080EEB24
- b _080EEBCE
-_080EEB1E:
- cmp r0, 0x2
- beq _080EEB84
- b _080EEBCE
-_080EEB24:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EEB4A
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ands r0, r1
- cmp r0, 0
- beq _080EEB44
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- b _080EEB48
-_080EEB44:
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
-_080EEB48:
- strh r0, [r4, 0x24]
-_080EEB4A:
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x11
- ble _080EEBCE
- movs r0, 0
- strh r0, [r4, 0x30]
- b _080EEB78
-_080EEB58:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _080EEB80 @ =gUnknown_203AB06
- ldrh r1, [r1]
- cmp r0, r1
- blt _080EEBCE
- adds r0, r4, 0
- movs r1, 0x4
- bl StartSpriteAnim
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
-_080EEB78:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080EEBCE
- .align 2, 0
-_080EEB80: .4byte gUnknown_203AB06
-_080EEB84:
- ldrh r2, [r4, 0x3C]
- ldrh r1, [r4, 0x30]
- adds r0, r2, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 20
- negs r1, r0
- strh r1, [r4, 0x24]
- ldr r1, _080EEBD4 @ =gSineTable
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r0, _080EEBD8 @ =gUnknown_203AB04
- ldrh r0, [r0]
- muls r0, r1
- ldr r1, _080EEBDC @ =gUnknown_203AB08
- ldrh r1, [r1]
- asrs r0, r1
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080EEBC0
- subs r0, r2, 0x1
- strh r0, [r4, 0x3C]
-_080EEBC0:
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 20
- cmp r0, 0x3F
- ble _080EEBCE
- ldr r0, _080EEBE0 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080EEBCE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EEBD4: .4byte gSineTable
-_080EEBD8: .4byte gUnknown_203AB04
-_080EEBDC: .4byte gUnknown_203AB08
-_080EEBE0: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EEB08
-
- thumb_func_start sub_80EEBE4
-sub_80EEBE4: @ 80EEBE4
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _080EEC04 @ =gUnknown_840BEDC
-_080EEBEA:
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, 0x6
- bls _080EEBEA
- ldr r0, _080EEC08 @ =gUnknown_840BF14
- bl LoadSpritePalettes
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EEC04: .4byte gUnknown_840BEDC
-_080EEC08: .4byte gUnknown_840BF14
- thumb_func_end sub_80EEBE4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item.s b/asm/item.s
deleted file mode 100644
index ce20d4f8c..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 @ =gBagPockets
- 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 @ =gBagPockets
-_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 gBagPockets
- 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 @ =gBagPockets
- 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 gBagPockets
-_08099E88: .4byte gSaveBlock1Ptr
-_08099E8C: .4byte 0x0000054c
- thumb_func_end sub_8099E44
-
- thumb_func_start CopyItemName
-CopyItemName: @ 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 CopyItemName
-
- thumb_func_start sub_8099ECC
-sub_8099ECC: @ 8099ECC
- push {lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _08099EF0 @ =gBagPockets
- 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 gBagPockets
-_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 @ =gBagPockets
- 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 gBagPockets
-_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 CheckBagHasItem
-CheckBagHasItem: @ 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 @ =gBagPockets
- 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 gBagPockets
-_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 CheckBagHasItem
-
- thumb_func_start sub_8099FAC
-sub_8099FAC: @ 8099FAC
- push {r4,lr}
- ldr r0, _08099FC0 @ =0x0000016d
- movs r1, 0x1
- bl CheckBagHasItem
- 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 CheckBagHasItem
- 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 CheckBagHasSpace
-CheckBagHasSpace: @ 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 @ =gBagPockets
- 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 gBagPockets
-_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 CheckBagHasSpace
-
- thumb_func_start AddBagItem
-AddBagItem: @ 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 @ =gBagPockets
- 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 gBagPockets
-_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 CheckBagHasItem
- 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 @ =gBagPockets
- 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 CheckBagHasItem
- 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 @ =gBagPockets
- 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 @ =gBagPockets
- 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 gBagPockets
-_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 AddBagItem
-
- thumb_func_start RemoveBagItem
-RemoveBagItem: @ 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 @ =gBagPockets
- 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 gBagPockets
-_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 RemoveBagItem
-
- 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 @ =gBagPockets
-_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 gBagPockets
- 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 CheckPCHasItem
-CheckPCHasItem: @ 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 CheckPCHasItem
-
- thumb_func_start AddPCItem
-AddPCItem: @ 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 AddPCItem
-
- 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 BagGetItemIdByPocketPosition
-BagGetItemIdByPocketPosition: @ 809A798
- lsls r0, 24
- lsls r1, 16
- ldr r2, _0809A7B0 @ =gBagPockets
- 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 gBagPockets
- thumb_func_end BagGetItemIdByPocketPosition
-
- thumb_func_start BagGetQuantityByPocketPosition
-BagGetQuantityByPocketPosition: @ 809A7B4
- push {lr}
- lsls r0, 24
- lsls r1, 16
- ldr r2, _0809A7D8 @ =gBagPockets
- 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 gBagPockets
- thumb_func_end BagGetQuantityByPocketPosition
-
- 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 @ =gItems
- adds r0, r1
- pop {r1}
- bx r1
- .align 2, 0
-_0809A8D8: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0, 0xE]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A8FC: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0, 0x10]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A920: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x12]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A944: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x13]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A968: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x14
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A98C: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x18]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A9B0: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x19]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A9D4: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1A]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A9F8: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1B]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AA1C: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x1C
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AA40: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AA64: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x24
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AA88: .4byte gItems
- 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 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- adds r0, 0x28
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AAAC: .4byte gItems
- thumb_func_end ItemId_GetSecondaryId
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 46891fe94..e85f63872 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
@@ -170,7 +170,7 @@ sub_8107EE0: @ 8107EE0
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl UpdatePaletteFade
pop {r0}
bx r0
@@ -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,8 +253,8 @@ _08107F60:
.4byte _081080D8
.4byte _081080DE
_08107FB0:
- bl sub_80BF768
- bl clear_scheduled_bg_copies_to_vram
+ bl SetVBlankHBlankCallbacksToNull
+ bl ClearScheduledBgCopiesToVram
b _08108104
_08107FBA:
bl ScanlineEffect_Stop
@@ -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
@@ -520,7 +520,7 @@ _081081CC: .4byte gUnknown_203AD1C
thumb_func_start sub_81081D0
sub_81081D0: @ 81081D0
push {r4,r5,lr}
- bl sub_80BF7C8
+ bl ResetAllBgsCoordinatesAndBgCntRegs
ldr r5, _08108230 @ =gUnknown_203AD14
movs r4, 0x80
lsls r4, 4
@@ -542,7 +542,7 @@ sub_81081D0: @ 81081D0
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r1, 0xC1
lsls r1, 6
movs r0, 0
@@ -595,19 +595,19 @@ _08108264:
.4byte _08108340
.4byte _0810834C
_0810827C:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r1, _08108294 @ =gUnknown_8E830CC
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _08108352
.align 2, 0
_08108294: .4byte gUnknown_8E830CC
_08108298:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -676,20 +676,20 @@ _0810832C: .4byte gSaveBlock2Ptr
_08108330: .4byte gUnknown_83D41E4
_08108334:
ldr r0, _0810833C @ =gUnknown_83D41EC
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
b _08108352
.align 2, 0
_0810833C: .4byte gUnknown_83D41EC
_08108340:
ldr r0, _08108348 @ =gUnknown_83D41F4
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
b _08108352
.align 2, 0
_08108348: .4byte gUnknown_83D41F4
_0810834C:
- ldr r0, _08108360 @ =gUnknown_83D4240
+ ldr r0, _08108360 @ =gBagSwapSpriteSheet
_0810834E:
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
_08108352:
ldr r0, _08108364 @ =gUnknown_203AD10
ldr r1, [r0]
@@ -698,18 +698,18 @@ _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
- bl LoadCompressedObjectPalette
+ ldr r0, _08108378 @ =gBagSwapSpritePalette
+ bl LoadCompressedSpritePalette
ldr r1, [r4]
movs r0, 0
strb r0, [r1, 0x10]
movs r0, 0x1
b _0810837E
.align 2, 0
-_08108378: .4byte gUnknown_83D4248
+_08108378: .4byte gBagSwapSpritePalette
_0810837C:
movs r0, 0
_0810837E:
@@ -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]
@@ -1036,7 +1036,7 @@ _081085BA:
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]
@@ -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 DestroyListMenu
+ bl DestroyListMenuTask
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
@@ -2069,7 +2069,7 @@ sub_8108DC8: @ 8108DC8
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
@@ -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
@@ -2192,7 +2192,7 @@ sub_8108E70: @ 8108E70
movs r3, 0xD
bl DisplayMessageAndContinueTask
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3,r4}
mov r8, r3
@@ -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]
@@ -2341,7 +2341,7 @@ _08108FA0:
_08108FE0: .4byte gUnknown_203AD10
_08108FE4:
ldrb r0, [r7]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r4, r0, 0
ldrb r0, [r7]
ldr r5, _08109014 @ =gUnknown_203ACFC
@@ -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]
@@ -2514,9 +2514,9 @@ 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
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -2617,9 +2617,9 @@ sub_81091D0: @ 81091D0
adds r1, r2, r1
adds r3, 0x8
adds r2, r3
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _08109290 @ =gUnknown_203AD10
ldr r0, [r0]
ldrb r1, [r0, 0x5]
@@ -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
@@ -2640,7 +2640,7 @@ _08109242:
movs r3, 0x1
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0810928C @ =gUnknown_203ACFC
ldrb r0, [r0, 0x6]
adds r0, r6
@@ -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
@@ -2792,7 +2792,7 @@ _08109358:
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108888
bl sub_81088D8
adds r0, r6, 0
@@ -2830,12 +2830,12 @@ 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
movs r2, 0x1
- bl sub_8107BD0
+ bl ListMenuSetUnkIndicatorsStructField
mov r0, r8
strh r4, [r0, 0x2]
ldr r0, _08109498 @ =gUnknown_203AD10
@@ -2853,12 +2853,12 @@ sub_81093B8: @ 81093B8
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
@@ -2931,7 +2931,7 @@ sub_81094B0: @ 81094B0
cmp r0, 0x1
beq _0810959E
ldrb r0, [r4]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r5, r0, 0
ldrb r0, [r4]
ldr r3, _0810953C @ =gUnknown_203ACFC
@@ -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]
@@ -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 DestroyListMenu
+ bl DestroyListMenuTask
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r5
@@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C
adds r7, r5, 0
adds r7, 0x8
adds r2, r7
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r4
@@ -3374,7 +3374,7 @@ sub_8109854: @ 8109854
movs r2, 0xB
bl CopyToBgTilemapBufferRect
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -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
@@ -3551,7 +3551,7 @@ _081099EC:
strb r0, [r4]
ldr r0, _08109A10 @ =gSpecialVar_ItemId
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3715,7 +3715,7 @@ _08109AD4:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0x6
movs r1, 0
bl sub_810B9DC
@@ -3727,7 +3727,7 @@ _08109AD4:
ldr r1, _08109BAC @ =gStringVar1
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
@@ -3791,7 +3791,7 @@ sub_8109BE4: @ 8109BE4
lsrs r0, 24
cmp r0, 0x1
beq _08109C42
- bl ProcessMenuInputNoWrapAround
+ bl Menu_ProcessInputNoWrapAround
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@@ -3852,7 +3852,7 @@ sub_8109C50: @ 8109C50
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl CalculatePlayerPartyCount
lsls r0, 24
cmp r0, 0
@@ -4008,7 +4008,7 @@ sub_8109DB0: @ 8109DB0
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4035,7 +4035,7 @@ sub_8109DEC: @ 8109DEC
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4066,7 +4066,7 @@ _08109E20:
movs r0, 0
bl sub_810BA3C
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
adds r0, r5, 0
bl sub_8109D38
@@ -4089,7 +4089,7 @@ _08109E64:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4213,7 +4213,7 @@ _08109F6E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -4234,7 +4234,7 @@ _08109F6E:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r7]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4304,7 +4304,7 @@ _0810A052:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_810842C
ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate
@@ -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
@@ -4430,7 +4430,7 @@ sub_810A170: @ 810A170
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
@@ -4456,7 +4456,7 @@ sub_810A18C: @ 810A18C
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
- bl sub_8108E70
+ bl DisplayItemMessageInBag
pop {r4,r5}
pop {r0}
bx r0
@@ -4519,7 +4519,7 @@ sub_810A1F8: @ 810A1F8
adds r3, r4
mov r9, r3
add r2, r9
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -4538,7 +4538,7 @@ sub_810A1F8: @ 810A1F8
lsrs r0, 24
strh r0, [r5]
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r5]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -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]
@@ -4582,7 +4582,7 @@ sub_810A288: @ 810A288
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4611,7 +4611,7 @@ sub_810A2DC: @ 810A2DC
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0810A320 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -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
@@ -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
@@ -4817,7 +4817,7 @@ sub_810A468: @ 810A468
lsrs r4, r0, 16
adds r6, r4, 0
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -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
@@ -4848,9 +4848,9 @@ _0810A4D4:
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
@@ -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
@@ -4981,7 +4981,7 @@ _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
@@ -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}
@@ -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
@@ -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
@@ -5160,7 +5160,7 @@ sub_810A720: @ 810A720
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -5296,7 +5296,7 @@ sub_810A85C: @ 810A85C
adds r0, r5, 0
adds r0, 0x10
ldrh r1, [r5, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5339,7 +5339,7 @@ _0810A8BC:
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
adds r0, r4, 0
bl sub_810A690
@@ -5366,7 +5366,7 @@ _0810A8F0:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
ldrb r0, [r5]
movs r1, 0x1
@@ -5393,7 +5393,7 @@ sub_810A940: @ 810A940
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0810A9B8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0810A9BC @ =gStringVar1
@@ -5426,7 +5426,7 @@ sub_810A940: @ 810A940
adds r0, r5, 0
movs r1, 0x2
adds r2, r4, 0
- bl sub_8108E70
+ bl DisplayItemMessageInBag
pop {r4-r6}
pop {r0}
bx r0
@@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4
adds r3, r4
mov r9, r3
add r2, r9
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -5659,7 +5659,7 @@ sub_810AB88: @ 810AB88
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5690,7 +5690,7 @@ _0810ABBC:
movs r0, 0
bl sub_810BA3C
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
adds r0, r5, 0
bl sub_810AC40
@@ -5711,7 +5711,7 @@ _0810AC00:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -5753,7 +5753,7 @@ 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 CopyItemName
@@ -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}
@@ -6212,7 +6212,7 @@ _0810B01C:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6383,7 +6383,7 @@ 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 @ =CB2_ReturnToTeachyTV
@@ -6507,7 +6507,7 @@ _0810B290:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
- bl MoveMenuCursorNoWrapAround
+ bl Menu_MoveCursorNoWrapAround
b _0810B36C
_0810B29E:
movs r0, 0x5
@@ -6537,7 +6537,7 @@ _0810B29E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_810842C
ldr r0, _0810B328 @ =gMultiuseListMenuTemplate
@@ -6573,7 +6573,7 @@ _0810B32C:
movs r0, 0x80
strh r0, [r1, 0x30]
ldrb r0, [r7]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
b _0810B36C
.align 2, 0
_0810B340: .4byte gMain
@@ -6583,7 +6583,7 @@ _0810B344:
ldrb r0, [r7]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r6, 0
@@ -6701,7 +6701,7 @@ _0810B428:
_0810B430:
strh r0, [r1, 0x30]
ldrb r0, [r4]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
b _0810B4B0
.align 2, 0
_0810B43C: .4byte gMain
@@ -6738,7 +6738,7 @@ _0810B468:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6817,7 +6817,7 @@ _0810B528:
strh r6, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r5]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
b _0810B5C0
.align 2, 0
_0810B538: .4byte gMain
@@ -6854,13 +6854,13 @@ _0810B564:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
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
@@ -6950,7 +6950,7 @@ _0810B64E:
strh r5, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r6]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
b _0810B6E0
.align 2, 0
_0810B65C: .4byte gMain
@@ -6989,7 +6989,7 @@ _0810B68C:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_810AECC
ldr r0, _0810B6D4 @ =gUnknown_203AD10
ldr r1, [r0]
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 e7a9f8ee5..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 ScanlineEffect_Stop
- 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 @ =gMultiuseListMenuTemplate
- 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 gMultiuseListMenuTemplate
-_0810D600: .4byte gUnknown_203ADCC
-_0810D604: .4byte gTasks
-_0810D608:
- bl sub_810DB5C
- b _0810D674
-_0810D60E:
- movs r0, 0x1D
- bl HelpSystem_SetSomeVariable2
- 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 @ =gMultiuseListMenuTemplate
- 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 gMultiuseListMenuTemplate
-_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 @ =gText_TimesStrVar1
- 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 gText_TimesStrVar1
- 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 DestroyListMenu
- 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 DestroyListMenu
- 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 @ =gMultiuseListMenuTemplate
- 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 gMultiuseListMenuTemplate
-_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 DestroyListMenu
- 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 @ =gMultiuseListMenuTemplate
- 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 gMultiuseListMenuTemplate
-_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 ProgramAndPlaceMenuCursorOnWindow
- ldrh r0, [r6, 0x2]
- bl sub_810DD68
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E348 @ =gStringVar1
- bl CopyItemName
- 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 AddBagItem
- 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 CopyItemName
- 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 DestroyListMenu
- bl sub_810DDA4
- bl sub_810DBF0
- bl sub_810D878
- ldr r0, _0810E5DC @ =gMultiuseListMenuTemplate
- 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 gMultiuseListMenuTemplate
- 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 CopyItemName
- 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 @ =gText_TimesStrVar1
- 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 gText_TimesStrVar1
- 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 @ =gText_TimesStrVar1
- 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 gText_TimesStrVar1
- 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 @ =gText_ThereIsNoPokemon
- ldr r2, _0810E7D8 @ =sub_810E848
- adds r0, r4, 0
- bl sub_810EB30
- b _0810E7EA
- .align 2, 0
-_0810E7D4: .4byte gText_ThereIsNoPokemon
-_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 @ =gTMCaseMainWindowPalette
- 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 gTMCaseMainWindowPalette
-_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 GetTextSpeedSetting
- 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 67da30cf6..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 @ =gFieldCallback
- 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 gFieldCallback
-_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 ClearDialogWindowAndFrame
- 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 @ =gFieldCallback2
- ldr r0, _080A1190 @ =sub_80A1194
- str r0, [r1]
- bx lr
- .align 2, 0
-_080A118C: .4byte gFieldCallback2
-_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 MapGridIsImpassableAt
- 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 InitTMCase
- 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 CleanupOverworldWindowsAndTilemaps
- bl sub_80A1184
- ldr r1, _080A181C @ =CB2_ReturnToField
- movs r0, 0
- movs r2, 0x1
- bl InitTMCase
- adds r0, r4, 0
- bl DestroyTask
-_080A1812:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1818: .4byte gPaletteFade
-_080A181C: .4byte CB2_ReturnToField
- 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 CleanupOverworldWindowsAndTilemaps
- bl sub_80A1184
- ldr r1, _080A18B4 @ =CB2_ReturnToField
- 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 CB2_ReturnToField
- 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 CleanupOverworldWindowsAndTilemaps
- bl sub_80A1184
- ldr r1, _080A1994 @ =CB2_ReturnToField
- 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 CB2_ReturnToField
- 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 RemoveBagItem
- 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 CopyItemName
- 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 CopyItemName
- 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 CopyItemName
- 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 ResetInitialPlayerAvatarState
- 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 CleanupOverworldWindowsAndTilemaps
- bl sub_80A1184
- ldr r1, _080A1CF4 @ =CB2_ReturnToField
- 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 CB2_ReturnToField
- 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 CleanupOverworldWindowsAndTilemaps
- bl sub_80A1184
- ldr r0, _080A1D98 @ =CB2_ReturnToField
- bl UseFameChecker
- adds r0, r4, 0
- bl DestroyTask
-_080A1D8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D94: .4byte gPaletteFade
-_080A1D98: .4byte CB2_ReturnToField
- 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 RemoveBagItem
- 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 RemoveBagItem
- 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 e510252ab..8a2dec9de 100644
--- a/asm/itemfinder.s
+++ b/asm/itemfinder.s
@@ -1091,7 +1091,7 @@ _0813F470:
.4byte _0813F50C
.4byte _0813F52C
_0813F484:
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 92f6abfea..6684874bb 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -76,7 +76,7 @@ sub_80E469C: @ 80E469C
movs r0, 0
movs r2, 0x2
bl InitBgsFromTemplates
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r0, _080E4778 @ =gUnknown_83FFA44
bl InitWindows
lsls r0, 16
@@ -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
@@ -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]
@@ -1409,7 +1409,7 @@ sub_80E5204: @ 80E5204
ldr r1, _080E525C @ =0x00000263
adds r0, r1
ldrb r0, [r0]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
ldr r0, _080E5260 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
@@ -1568,7 +1568,7 @@ sub_80E5340: @ 80E5340
movs r0, 0x2
movs r2, 0x1
movs r3, 0x4
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bhi _080E5388
@@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444
movs r1, 0x13
movs r2, 0x1
movs r3, 0x4
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
movs r0, 0x1
movs r1, 0x14
movs r2, 0
movs r3, 0x4
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
movs r0, 0x1
movs r1, 0x15
movs r2, 0
movs r3, 0x13
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
movs r0, 0
movs r1, 0x16
movs r2, 0x1
movs r3, 0x13
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
movs r0, 0
movs r1, 0x17
movs r2, 0x1
movs r3, 0x22
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
@@ -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 6b89ed2db..7275ebbd2 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -3288,7 +3288,7 @@ _0800AD30:
cmp r0, 0
beq _0800ADD8
bl DeactivateAllTextPrinters
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
movs r0, 0x52
movs r1, 0
bl SetGpuReg
@@ -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
@@ -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 0e1a79b65..c6918f6ad 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 is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _080FEC70
_080FEC62:
@@ -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,7 +7851,7 @@ 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
@@ -9465,7 +9465,7 @@ sub_8101A90: @ 8101A90
ldr r4, _08101AC0 @ =gUnknown_843F938
_08101AA2:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index feb7c886f..2bfeaca50 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -9525,7 +9525,7 @@ sub_80FCEA8: @ 80FCEA8
cmp r0, r1
bne _080FCEC0
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
_080FCEC0:
ldr r0, _080FCEDC @ =gUnknown_843F27C
bl LoadSpritePalette
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index f2e88b619..17d761a3d 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -620,7 +620,7 @@ _08115DD4:
bl sub_81165E8
strb r0, [r5, 0x13]
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
b _0811610C
.align 2, 0
_08115DE4: .4byte gUnknown_203B058
@@ -783,7 +783,7 @@ _08115EF4:
movs r0, 0
strb r0, [r1, 0x1B]
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
ldrb r0, [r5, 0x13]
adds r0, 0x1
strb r0, [r5, 0x13]
@@ -870,7 +870,7 @@ _08115FB4:
ldr r0, [r5]
bl sub_81165E8
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
_08115FF0:
movs r0, 0x4
strb r0, [r5, 0xC]
@@ -1139,7 +1139,7 @@ sub_81161E4: @ 81161E4
ldrb r0, [r4, 0x12]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4, 0x10]
bl ClearWindowTilemap
ldrb r0, [r4, 0xF]
@@ -1400,7 +1400,7 @@ _08116460:
movs r0, 0x2
bl PlaySE
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
ldr r4, _081164A0 @ =gStringVar2
ldrb r0, [r5, 0x13]
lsls r0, 5
@@ -1433,7 +1433,7 @@ _081164AC:
movs r1, 0
bl sub_80FB9E4
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
strb r4, [r5, 0xC]
movs r0, 0x1
b _081164C2
@@ -1972,7 +1972,7 @@ _08116916:
b _08116BF6
_0811691E:
ldrb r0, [r6, 0xE]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r4, r0, 0
ldr r0, _0811696C @ =gMain
ldrh r1, [r0, 0x2E]
@@ -2301,7 +2301,7 @@ _08116BF4:
strb r0, [r6, 0x8]
_08116BF6:
ldrb r0, [r6, 0xE]
- bl sub_8107180
+ bl RedrawListMenu
b _08116D06
_08116BFE:
bl sub_80FB9F4
@@ -2322,7 +2322,7 @@ _08116C10:
ldrb r0, [r6, 0xE]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r6, 0xC]
bl ClearWindowTilemap
ldrb r0, [r6, 0xB]
@@ -2480,7 +2480,7 @@ sub_8116D60: @ 8116D60
movs r1, 0
bl sub_80FCD74
ldrb r0, [r4, 0xE]
- bl sub_8107180
+ bl RedrawListMenu
ldr r5, _08116DD4 @ =gStringVar1
ldrb r0, [r4, 0xF]
lsls r0, 5
@@ -3154,14 +3154,14 @@ _081172C0:
cmp r4, r0
bne _0811734A
movs r4, 0
- ldr r0, _081172E0 @ =gUnknown_2039624
+ ldr r0, _081172E0 @ =gTrainerCards
adds r7, r0, 0
adds r7, 0x38
ldr r6, _081172E4 @ =gLinkPlayers
adds r5, r0, 0
b _08117302
.align 2, 0
-_081172E0: .4byte gUnknown_2039624
+_081172E0: .4byte gTrainerCards
_081172E4: .4byte gLinkPlayers
_081172E8:
lsls r0, r4, 8
@@ -3367,7 +3367,7 @@ sub_8117440: @ 8117440
movs r0, 0
mov r3, r8
bl SetDynamicWarpWithCoords
- bl warp_in
+ bl WarpIntoMap
add sp, 0x8
pop {r3}
mov r8, r3
@@ -3424,7 +3424,7 @@ sub_81174B4: @ 81174B4
adds r1, r5, 0
mov r3, r8
bl Overworld_SetWarpDestination
- bl warp_in
+ bl WarpIntoMap
add sp, 0x4
pop {r3}
mov r8, r3
@@ -3763,21 +3763,21 @@ _08117890:
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
- ldr r1, _081178AC @ =sub_805671C
+ ldr r1, _081178AC @ =CB2_LoadMap
bl sub_8147AA8
b _081178E0
.align 2, 0
-_081178AC: .4byte sub_805671C
+_081178AC: .4byte CB2_LoadMap
_081178B0:
movs r0, 0x7
movs r1, 0x9
movs r2, 0x1
bl sub_8117440
- ldr r0, _081178C4 @ =sub_805671C
+ ldr r0, _081178C4 @ =CB2_LoadMap
bl sub_814B754
b _081178E0
.align 2, 0
-_081178C4: .4byte sub_805671C
+_081178C4: .4byte CB2_LoadMap
_081178C8:
movs r0, 0x8
movs r1, 0x5
@@ -3786,7 +3786,7 @@ _081178C8:
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
- ldr r1, _081178F8 @ =sub_805671C
+ ldr r1, _081178F8 @ =CB2_LoadMap
bl sub_81507FC
_081178E0:
adds r0, r4, 0
@@ -3800,7 +3800,7 @@ _081178E0:
pop {r0}
bx r0
.align 2, 0
-_081178F8: .4byte sub_805671C
+_081178F8: .4byte CB2_LoadMap
_081178FC: .4byte gSpecialVar_Result
thumb_func_end sub_81175BC
@@ -4151,7 +4151,7 @@ _08117BF4:
bl sub_81165E8
strb r0, [r5, 0x13]
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
_08117C02:
movs r0, 0x2
strb r0, [r5, 0xC]
@@ -4198,7 +4198,7 @@ _08117C42:
adds r1, r0
strb r4, [r1, 0x1B]
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
movs r0, 0x5
strb r0, [r5, 0x19]
ldrb r1, [r5, 0x13]
@@ -4268,7 +4268,7 @@ _08117CB2:
movs r0, 0
strb r0, [r1, 0x1B]
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
ldrb r0, [r5, 0x13]
adds r0, 0x1
strb r0, [r5, 0x13]
@@ -4327,7 +4327,7 @@ _08117D3C:
ldr r0, [r5]
bl sub_81165E8
ldrb r0, [r5, 0x12]
- bl sub_8107180
+ bl RedrawListMenu
movs r0, 0x2
strb r0, [r5, 0xC]
_08117D7C:
@@ -4398,7 +4398,7 @@ _08117DEE:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4457,7 +4457,7 @@ _08117E80:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4673,11 +4673,11 @@ _08118070:
bl PlaySE
_08118086:
ldrb r0, [r5, 0xE]
- bl sub_8107180
+ bl RedrawListMenu
b _08118288
_0811808E:
ldrb r0, [r5, 0xE]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r2, r0, 0
ldr r0, _08118128 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -4707,7 +4707,7 @@ _0811808E:
movs r1, 0
bl sub_80FCD74
ldrb r0, [r5, 0xE]
- bl sub_8107180
+ bl RedrawListMenu
ldr r4, _0811812C @ =gStringVar1
ldrb r0, [r5, 0xF]
lsls r0, 5
@@ -4842,7 +4842,7 @@ _081181EC:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xD]
@@ -5085,14 +5085,14 @@ _0811841E:
b _08118604
_08118426:
ldrb r0, [r5, 0xE]
- bl sub_8107180
+ bl RedrawListMenu
b _08118604
_0811842E:
ldrb r0, [r5, 0x13]
cmp r0, 0
beq _0811843A
ldrb r0, [r5, 0xE]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
_0811843A:
ldrb r0, [r5, 0x14]
cmp r0, 0x78
@@ -5242,7 +5242,7 @@ _08118564:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xB]
@@ -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
@@ -8491,7 +8491,7 @@ sub_811A0B4: @ 811A0B4
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0x1
- bl sub_80F6E54
+ bl AddTextPrinterWithCustomSpeedForMessage
movs r0, 0
pop {r4}
pop {r1}
@@ -8503,7 +8503,7 @@ _0811A0DC: .4byte gStringVar4
thumb_func_start sub_811A0E0
sub_811A0E0: @ 811A0E0
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
cmp r0, 0
beq _0811A0F0
@@ -8536,7 +8536,7 @@ _0811A10A:
adds r1, r5, 0
bl StringExpandPlaceholders
movs r0, 0x1
- bl sub_80F6E08
+ bl AddTextPrinterForMessage
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -8544,7 +8544,7 @@ _0811A10A:
.align 2, 0
_0811A12C: .4byte gStringVar4
_0811A130:
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -8578,7 +8578,7 @@ _0811A15E:
negs r0, r0
b _0811A1A4
_0811A168:
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -8586,7 +8586,7 @@ _0811A168:
_0811A174:
cmp r5, 0
beq _0811A186
- bl sub_81100E8
+ bl DestroyYesNoMenu
movs r0, 0
strb r0, [r4]
movs r0, 0x3
@@ -8715,7 +8715,7 @@ _0811A270: .4byte gMultiuseListMenuTemplate
_0811A274:
mov r3, r9
ldrb r0, [r3]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
mov r8, r0
ldr r0, _0811A2AC @ =gMain
ldrh r1, [r0, 0x2E]
@@ -8726,7 +8726,7 @@ _0811A274:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8747,7 +8747,7 @@ _0811A2B0:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8821,7 +8821,7 @@ _0811A350: .4byte gUnknown_8456F1C
_0811A354: .4byte gMultiuseListMenuTemplate
_0811A358:
ldrb r0, [r5]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r1, r0, 0
ldr r0, _0811A3A8 @ =gMain
ldrh r2, [r0, 0x2E]
@@ -8842,7 +8842,7 @@ _0811A37E:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8867,7 +8867,7 @@ _0811A3AC:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -9999,7 +9999,7 @@ _0811AC3C:
adds r0, r6, 0
movs r2, 0x44
adds r3, r5, 0
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
movs r0, 0xB
mov r2, r8
muls r2, r0
@@ -10537,14 +10537,14 @@ _0811B056:
lsls r0, r4, 24
lsrs r0, 24
adds r1, r5, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
adds r5, 0xB
adds r4, 0x1
cmp r4, 0x3
ble _0811B056
ldr r1, _0811B074 @ =gUnknown_8457D44
adds r0, r7, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _0811B080
.align 2, 0
_0811B074: .4byte gUnknown_8457D44
@@ -10949,10 +10949,10 @@ sub_811B31C: @ 811B31C
lsls r1, r0, 1
adds r1, r0
lsls r1, 5
- ldr r0, _0811B4B0 @ =gUnknown_2039624
+ ldr r0, _0811B4B0 @ =gTrainerCards
adds r1, r0
mov r8, r1
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
mov r6, r9
adds r6, 0xAC
bl sub_80447F0
@@ -10966,11 +10966,11 @@ sub_811B31C: @ 811B31C
bl StringCopy
movs r0, 0
adds r1, r6, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r1, r8
adds r1, 0x30
movs r0, 0x1
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r4, 0xB0
lsls r4, 1
add r4, r9
@@ -10984,7 +10984,7 @@ sub_811B31C: @ 811B31C
bl StringCopy
movs r0, 0x2
adds r1, r4, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r5, r9
adds r5, 0xCA
mov r0, r8
@@ -10995,7 +10995,7 @@ sub_811B31C: @ 811B31C
bl ConvertIntToDecimalStringN
movs r0, 0x3
adds r1, r5, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r2, 0xD9
add r2, r9
mov r10, r2
@@ -11015,16 +11015,16 @@ sub_811B31C: @ 811B31C
bl ConvertIntToDecimalStringN
movs r0, 0x4
mov r1, r10
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x5
adds r1, r4, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r4, 0xC8
lsls r4, 1
add r4, r9
ldr r1, _0811B4BC @ =gUnknown_84594C4
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, _0811B4C0 @ =gStringVar4
adds r1, r4, 0
bl StringCopy
@@ -11041,7 +11041,7 @@ _0811B40A:
bl ConvertIntToDecimalStringN
movs r0, 0
adds r1, r6, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r2, r8
ldrh r1, [r2, 0x16]
cmp r1, r4
@@ -11056,7 +11056,7 @@ _0811B426:
bl ConvertIntToDecimalStringN
movs r0, 0x2
adds r1, r4, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r0, r8
ldrh r1, [r0, 0x20]
adds r0, r5, 0
@@ -11065,7 +11065,7 @@ _0811B426:
bl ConvertIntToDecimalStringN
movs r0, 0x3
adds r1, r5, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r7, 0
movs r6, 0x80
lsls r6, 19
@@ -11078,7 +11078,7 @@ _0811B45E:
bl CopyEasyChatWord
lsrs r0, r6, 24
adds r1, r4, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r2, 0x80
lsls r2, 17
adds r6, r2
@@ -11092,7 +11092,7 @@ _0811B45E:
add r4, r9
ldr r1, _0811B4C8 @ =gUnknown_8459504
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r5, _0811B4C0 @ =gStringVar4
adds r0, r5, 0
adds r1, r4, 0
@@ -11102,13 +11102,13 @@ _0811B45E:
bne _0811B4D0
ldr r1, _0811B4CC @ =gUnknown_8459588
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
adds r0, r5, 0
adds r1, r4, 0
bl StringAppend
b _0811B4F0
.align 2, 0
-_0811B4B0: .4byte gUnknown_2039624
+_0811B4B0: .4byte gTrainerCards
_0811B4B4: .4byte gTrainerClassNames
_0811B4B8: .4byte gUnknown_84594B0
_0811B4BC: .4byte gUnknown_84594C4
@@ -11127,7 +11127,7 @@ _0811B4D0:
adds r1, r0
ldr r1, [r1]
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
adds r0, r5, 0
adds r1, r4, 0
bl StringAppend
@@ -11381,13 +11381,13 @@ sub_811B66C: @ 811B66C
ldr r1, _0811B6C0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0811B6D0
ldrb r1, [r5]
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0811B6C4
@@ -11440,7 +11440,7 @@ sub_811B6E8: @ 811B6E8
ldr r1, _0811B72C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _0811B730
@@ -12496,7 +12496,7 @@ sub_811BF00: @ 811BF00
b _0811BFEE
_0811BF1C:
ldr r4, _0811BF44 @ =gUnknown_8457116
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -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
@@ -12935,7 +12935,7 @@ _0811C2C0:
movs r0, 0
movs r2, 0x1
bl InitBgsFromTemplates
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r0, _0811C358 @ =gUnknown_8457198
bl InitWindows
lsls r0, 16
@@ -12966,8 +12966,8 @@ _0811C300:
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
- bl sub_814FF2C
- bl sub_80F77B8
+ bl TextWindow_SetStdFrame0_WithPal
+ bl Menu_LoadStdPal
ldr r0, _0811C35C @ =sub_811C1B4
bl SetVBlankCallback
ldr r1, _0811C360 @ =gMain
diff --git a/asm/list_menu.s b/asm/list_menu.s
deleted file mode 100644
index 4615e249b..000000000
--- a/asm/list_menu.s
+++ /dev/null
@@ -1,2019 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_90
-nullsub_90: @ 8106ECC
- bx lr
- thumb_func_end nullsub_90
-
- thumb_func_start DoMysteryGiftListMenu
-DoMysteryGiftListMenu: @ 8106ED0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r12, r0
- str r1, [sp]
- ldr r0, [sp, 0x28]
- lsls r2, 24
- lsrs r6, r2, 24
- mov r10, r6
- lsls r3, 16
- lsrs r7, r3, 16
- str r7, [sp, 0x4]
- lsls r0, 16
- mov r8, r0
- lsrs r0, 16
- mov r9, r0
- ldr r5, _08106F60 @ =gUnknown_203ACF4
- ldrb r4, [r5, 0x4]
- cmp r4, 0x1
- beq _08106F68
- cmp r4, 0x1
- ble _08106F06
- cmp r4, 0x2
- beq _08106FCC
-_08106F06:
- mov r0, r12
- bl AddWindow
- strb r0, [r5, 0x5]
- cmp r6, 0x1
- beq _08106F24
- cmp r6, 0x2
- bne _08106F34
- ldrb r0, [r5, 0x5]
- mov r1, r9
- lsls r2, r1, 24
- lsrs r2, 24
- adds r1, r7, 0
- bl sub_815001C
-_08106F24:
- ldrb r0, [r5, 0x5]
- mov r3, r8
- lsrs r2, r3, 20
- lsls r2, 24
- lsrs r2, 24
- ldr r1, [sp, 0x4]
- bl DrawTextBorderOuter
-_08106F34:
- ldr r0, _08106F64 @ =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, [sp]
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldr r4, _08106F60 @ =gUnknown_203ACF4
- ldrb r1, [r4, 0x5]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- strb r0, [r4, 0x6]
- ldrb r0, [r4, 0x5]
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0x1
- strb r0, [r4, 0x4]
- b _08106FE4
- .align 2, 0
-_08106F60: .4byte gUnknown_203ACF4
-_08106F64: .4byte gMultiuseListMenuTemplate
-_08106F68:
- ldrb r0, [r5, 0x6]
- bl ListMenuHandleInput
- str r0, [r5]
- ldr r1, _08106FA4 @ =gMain
- ldrh r0, [r1, 0x2E]
- ands r4, r0
- cmp r4, 0
- beq _08106F7E
- movs r0, 0x2
- strb r0, [r5, 0x4]
-_08106F7E:
- ldrh r1, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08106F92
- movs r0, 0x2
- negs r0, r0
- str r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x4]
-_08106F92:
- ldrb r0, [r5, 0x4]
- cmp r0, 0x2
- bne _08106FE4
- cmp r6, 0
- bne _08106FA8
- ldrb r0, [r5, 0x5]
- bl ClearWindowTilemap
- b _08106FBA
- .align 2, 0
-_08106FA4: .4byte gMain
-_08106FA8:
- mov r4, r10
- cmp r4, 0
- blt _08106FBA
- cmp r4, 0x2
- bgt _08106FBA
- ldrb r0, [r5, 0x5]
- movs r1, 0
- bl ClearStdWindowAndFrame
-_08106FBA:
- ldr r0, _08106FC8 @ =gUnknown_203ACF4
- ldrb r0, [r0, 0x5]
- movs r1, 0x1
- bl CopyWindowToVram
- b _08106FE4
- .align 2, 0
-_08106FC8: .4byte gUnknown_203ACF4
-_08106FCC:
- ldrb r0, [r5, 0x6]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenu
- ldrb r0, [r5, 0x5]
- bl RemoveWindow
- movs r0, 0
- strb r0, [r5, 0x4]
- ldr r0, [r5]
- b _08106FE8
-_08106FE4:
- movs r0, 0x1
- negs r0, r0
-_08106FE8:
- 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 DoMysteryGiftListMenu
-
- thumb_func_start ListMenuInit
-ListMenuInit: @ 8106FF8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- bl ListMenuInitInternal
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5, 0x10]
- bl PutWindowTilemap
- ldrb r0, [r5, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ListMenuInit
-
- thumb_func_start Unused_ListMenuInit2
-Unused_ListMenuInit2: @ 8107024
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- bl ListMenuInitInternal
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4, 0x4]
- cmp r0, 0xFF
- beq _08107064
- adds r5, r4, 0
-_08107048:
- ldrb r0, [r6, 0x10]
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- ldrb r3, [r5, 0x2]
- ldrb r4, [r5, 0x3]
- str r4, [sp]
- ldrb r4, [r5, 0x4]
- str r4, [sp, 0x4]
- bl PutWindowRectTilemapOverridePalette
- adds r5, 0x8
- ldrb r0, [r5, 0x4]
- cmp r0, 0xFF
- bne _08107048
-_08107064:
- ldrb r0, [r6, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r7, 0
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end Unused_ListMenuInit2
-
- thumb_func_start ListMenuHandleInput
-ListMenuHandleInput: @ 8107078
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081070A4 @ =gTasks+0x8
- adds r3, r1, r0
- ldr r2, _081070A8 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081070AC
- ldrh r0, [r3, 0x18]
- ldrh r1, [r3, 0x1A]
- adds r0, r1
- ldr r1, [r3]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _08107136
- .align 2, 0
-_081070A4: .4byte gTasks+0x8
-_081070A8: .4byte gMain
-_081070AC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081070BA
- movs r0, 0x2
- negs r0, r0
- b _08107136
-_081070BA:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081070CE
- adds r0, r3, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0
- b _0810712E
-_081070CE:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081070DE
- adds r0, r3, 0
- movs r1, 0x1
- movs r2, 0x1
- b _0810712C
-_081070DE:
- ldrb r0, [r3, 0x16]
- lsrs r0, 6
- cmp r0, 0x1
- beq _081070F4
- cmp r0, 0x1
- ble _081070EE
- cmp r0, 0x2
- beq _08107100
-_081070EE:
- movs r2, 0
- movs r0, 0
- b _08107114
-_081070F4:
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0x10
- b _0810710E
-_08107100:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0x80
- lsls r0, 1
-_0810710E:
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08107114:
- cmp r2, 0
- beq _08107122
- ldrb r2, [r3, 0xE]
- adds r0, r3, 0
- movs r1, 0x1
- movs r3, 0
- b _0810712E
-_08107122:
- cmp r0, 0
- beq _08107132
- ldrb r2, [r3, 0xE]
- adds r0, r3, 0
- movs r1, 0x1
-_0810712C:
- movs r3, 0x1
-_0810712E:
- bl ListMenuChangeSelection
-_08107132:
- movs r0, 0x1
- negs r0, r0
-_08107136:
- pop {r1}
- bx r1
- thumb_func_end ListMenuHandleInput
-
- thumb_func_start DestroyListMenu
-DestroyListMenu: @ 810713C
- push {r4,lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0810717C @ =gTasks+0x8
- adds r1, r0, r1
- cmp r3, 0
- beq _08107158
- ldrh r0, [r1, 0x18]
- strh r0, [r3]
-_08107158:
- cmp r2, 0
- beq _08107160
- ldrh r0, [r1, 0x1A]
- strh r0, [r2]
-_08107160:
- ldrb r0, [r1, 0x1E]
- cmp r0, 0xFF
- beq _08107170
- ldrb r1, [r1, 0x17]
- lsrs r1, 6
- subs r1, 0x2
- bl ListMenuRemoveCursorObject
-_08107170:
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810717C: .4byte gTasks+0x8
- thumb_func_end DestroyListMenu
-
- thumb_func_start sub_8107180
-sub_8107180: @ 8107180
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _081071C0 @ =gTasks+0x8
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldrb r2, [r4, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrh r1, [r4, 0x18]
- ldrh r3, [r4, 0xE]
- adds r0, r4, 0
- movs r2, 0
- bl ListMenuPrintEntries
- adds r0, r4, 0
- bl ListMenuDrawCursor
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081071C0: .4byte gTasks+0x8
- thumb_func_end sub_8107180
-
- thumb_func_start sub_81071C4
-sub_81071C4: @ 81071C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08107204 @ =gTasks+0x8
- adds r4, r0
- lsrs r1, 20
- ldrb r6, [r4, 0x14]
- movs r5, 0xF
- adds r0, r5, 0
- ands r0, r6
- orrs r0, r1
- strb r0, [r4, 0x14]
- ands r2, r5
- ldrb r1, [r4, 0x15]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- lsrs r3, 20
- ands r0, r5
- orrs r0, r3
- strb r0, [r4, 0x15]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08107204: .4byte gTasks+0x8
- thumb_func_end sub_81071C4
-
- thumb_func_start sub_8107208
-sub_8107208: @ 8107208
- push {r4,r5,lr}
- adds r3, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08107240 @ =gTasks+0x8
- adds r4, r0
- ldrb r0, [r4, 0x10]
- movs r1, 0x1
- adds r2, r3, 0
- bl SetWindowAttribute
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- adds r2, r5, 0
- bl SetWindowAttribute
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107240: .4byte gTasks+0x8
- thumb_func_end sub_8107208
-
- thumb_func_start sub_8107244
-sub_8107244: @ 8107244
- push {r4-r7,lr}
- sub sp, 0x20
- mov r12, r2
- ldr r5, [sp, 0x34]
- lsls r3, 16
- lsrs r3, 16
- adds r4, r3, 0
- mov r3, sp
- ldm r0!, {r2,r6,r7}
- stm r3!, {r2,r6,r7}
- ldm r0!, {r2,r6,r7}
- stm r3!, {r2,r6,r7}
- mov r0, sp
- movs r3, 0
- strh r1, [r0, 0x18]
- mov r1, r12
- strh r1, [r0, 0x1A]
- strb r3, [r0, 0x1C]
- strb r3, [r0, 0x1D]
- cmp r4, 0x40
- bne _08107278
- movs r1, 0
- movs r2, 0x1
- movs r3, 0
- bl ListMenuChangeSelection
-_08107278:
- cmp r4, 0x80
- bne _08107288
- mov r0, sp
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl ListMenuChangeSelection
-_08107288:
- cmp r5, 0
- beq _08107292
- mov r0, sp
- ldrh r0, [r0, 0x18]
- strh r0, [r5]
-_08107292:
- ldr r2, [sp, 0x38]
- cmp r2, 0
- beq _0810729E
- mov r0, sp
- ldrh r0, [r0, 0x1A]
- strh r0, [r2]
-_0810729E:
- movs r0, 0x1
- negs r0, r0
- add sp, 0x20
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8107244
-
- thumb_func_start sub_81072AC
-sub_81072AC: @ 81072AC
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081072D0 @ =gTasks+0x8
- adds r1, r0
- cmp r2, 0
- beq _081072CA
- ldrh r0, [r1, 0x1A]
- ldrh r1, [r1, 0x18]
- adds r0, r1
- strh r0, [r2]
-_081072CA:
- pop {r0}
- bx r0
- .align 2, 0
-_081072D0: .4byte gTasks+0x8
- thumb_func_end sub_81072AC
-
- thumb_func_start get_coro_args_x18_x1A
-get_coro_args_x18_x1A: @ 81072D4
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081072FC @ =gTasks+0x8
- adds r1, r0
- cmp r3, 0
- beq _081072EE
- ldrh r0, [r1, 0x18]
- strh r0, [r3]
-_081072EE:
- cmp r2, 0
- beq _081072F6
- ldrh r0, [r1, 0x1A]
- strh r0, [r2]
-_081072F6:
- pop {r0}
- bx r0
- .align 2, 0
-_081072FC: .4byte gTasks+0x8
- thumb_func_end get_coro_args_x18_x1A
-
- thumb_func_start ListMenuGetYCoordForPrintingArrowCursor
-ListMenuGetYCoordForPrintingArrowCursor: @ 8107300
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08107344 @ =gTasks+0x8
- adds r4, r0
- ldrb r0, [r4, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r4, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x1A]
- adds r2, r1, 0
- muls r2, r0
- adds r1, r2, 0
- ldrb r0, [r4, 0x14]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08107344: .4byte gTasks+0x8
- thumb_func_end ListMenuGetYCoordForPrintingArrowCursor
-
- thumb_func_start ListMenuInitInternal
-ListMenuInitInternal: @ 8107348
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _08107418 @ =nullsub_90
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _0810741C @ =gTasks+0x8
- adds r7, r0, r1
- adds r0, r7, 0
- ldm r4!, {r1-r3}
- stm r0!, {r1-r3}
- ldm r4!, {r1-r3}
- stm r0!, {r1-r3}
- movs r1, 0
- strh r5, [r7, 0x18]
- strh r6, [r7, 0x1A]
- strb r1, [r7, 0x1C]
- strb r1, [r7, 0x1D]
- movs r0, 0xFF
- strb r0, [r7, 0x1E]
- strb r1, [r7, 0x1F]
- ldr r3, _08107420 @ =gUnknown_3005E60
- ldrb r1, [r7, 0x14]
- movs r5, 0xF
- lsrs r1, 4
- ldrb r4, [r3]
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r7, 0x15]
- lsls r1, 28
- lsrs r1, 24
- ands r0, r5
- orrs r0, r1
- strb r0, [r3]
- ldrb r0, [r7, 0x15]
- lsrs r0, 4
- ands r5, r0
- ldrb r0, [r3, 0x1]
- ands r2, r0
- orrs r2, r5
- strb r2, [r3, 0x1]
- ldrb r1, [r7, 0x16]
- lsls r1, 29
- lsrs r1, 17
- ldr r0, [r3]
- ldr r2, _08107424 @ =0xfffc0fff
- ands r0, r2
- orrs r0, r1
- str r0, [r3]
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 26
- strb r0, [r3, 0x3]
- ldrh r0, [r7, 0xC]
- ldrh r1, [r7, 0xE]
- cmp r0, r1
- bcs _081073E0
- strh r0, [r7, 0xE]
-_081073E0:
- ldrb r0, [r7, 0x10]
- ldrb r2, [r7, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrh r1, [r7, 0x18]
- ldrh r3, [r7, 0xE]
- adds r0, r7, 0
- movs r2, 0
- bl ListMenuPrintEntries
- adds r0, r7, 0
- bl ListMenuDrawCursor
- adds r0, r7, 0
- movs r1, 0x1
- bl ListMenuCallSelectionChangedCallback
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08107418: .4byte nullsub_90
-_0810741C: .4byte gTasks+0x8
-_08107420: .4byte gUnknown_3005E60
-_08107424: .4byte 0xfffc0fff
- thumb_func_end ListMenuInitInternal
-
- thumb_func_start ListMenuPrint
-ListMenuPrint: @ 8107428
- push {r4-r7,lr}
- sub sp, 0x18
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- ldr r5, _08107490 @ =gUnknown_3005E60
- ldrb r1, [r5, 0x3]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08107494
- add r1, sp, 0x14
- ldr r2, [r5]
- lsls r0, r2, 24
- lsrs r0, 28
- movs r3, 0
- strb r0, [r1]
- lsls r0, r2, 28
- lsrs r0, 28
- strb r0, [r1, 0x1]
- lsls r0, r2, 20
- lsrs r0, 28
- strb r0, [r1, 0x2]
- ldrb r0, [r4, 0x10]
- lsls r1, r2, 1
- lsrs r1, 25
- lsls r2, 14
- lsrs r2, 26
- str r2, [sp]
- str r3, [sp, 0x4]
- add r2, sp, 0x14
- str r2, [sp, 0x8]
- movs r2, 0x1
- negs r2, r2
- str r2, [sp, 0xC]
- str r6, [sp, 0x10]
- adds r2, r7, 0
- mov r3, r12
- bl AddTextPrinterParametrized2
- ldrb r1, [r5, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5, 0x3]
- b _081074D2
- .align 2, 0
-_08107490: .4byte gUnknown_3005E60
-_08107494:
- add r2, sp, 0x14
- ldrb r1, [r4, 0x15]
- lsls r0, r1, 28
- lsrs r0, 28
- strb r0, [r2]
- ldrb r0, [r4, 0x14]
- lsrs r0, 4
- strb r0, [r2, 0x1]
- adds r0, r2, 0
- lsls r1, 24
- lsrs r1, 28
- strb r1, [r0, 0x2]
- ldrb r0, [r4, 0x10]
- ldrb r1, [r4, 0x17]
- lsls r1, 26
- lsrs r1, 26
- ldrb r2, [r4, 0x16]
- lsls r2, 29
- lsrs r2, 29
- str r2, [sp]
- str r3, [sp, 0x4]
- add r2, sp, 0x14
- str r2, [sp, 0x8]
- movs r2, 0x1
- negs r2, r2
- str r2, [sp, 0xC]
- str r6, [sp, 0x10]
- adds r2, r7, 0
- mov r3, r12
- bl AddTextPrinterParametrized2
-_081074D2:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuPrint
-
- thumb_func_start ListMenuPrintEntries
-ListMenuPrintEntries: @ 81074DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp]
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- ldrb r0, [r4, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r4, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r8, r0
- cmp r8, r10
- bge _08107584
-_0810751E:
- ldr r0, [r4]
- mov r2, r9
- lsls r1, r2, 3
- adds r0, r1, r0
- ldr r2, [r0, 0x4]
- movs r0, 0x3
- negs r0, r0
- adds r5, r1, 0
- cmp r2, r0
- beq _08107536
- ldrb r6, [r4, 0x12]
- b _08107538
-_08107536:
- ldrb r6, [r4, 0x11]
-_08107538:
- ldr r0, [sp]
- add r0, r8
- ldr r2, [sp, 0x4]
- adds r1, r0, 0
- muls r1, r2
- ldrb r0, [r4, 0x14]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r7, r2, 0
- ldr r3, [r4, 0x8]
- cmp r3, 0
- beq _08107562
- ldrb r0, [r4, 0x10]
- ldr r1, [r4]
- adds r1, r5, r1
- ldr r1, [r1, 0x4]
- bl _call_via_r3
-_08107562:
- ldr r0, [r4]
- adds r0, r5, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl ListMenuPrint
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x1
- add r8, r0
- cmp r8, r10
- blt _0810751E
-_08107584:
- 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 ListMenuPrintEntries
-
- thumb_func_start ListMenuDrawCursor
-ListMenuDrawCursor: @ 8107594
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r6, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x13]
- mov r8, r1
- ldrh r1, [r6, 0x1A]
- muls r1, r0
- ldrb r0, [r6, 0x14]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r6, 0x17]
- lsrs r0, 6
- cmp r0, 0x1
- beq _08107680
- cmp r0, 0x1
- bgt _081075DA
- cmp r0, 0
- beq _081075E4
- b _08107680
-_081075DA:
- cmp r0, 0x2
- beq _081075F8
- cmp r0, 0x3
- beq _08107640
- b _08107680
-_081075E4:
- ldr r1, _081075F4 @ =gFameCheckerText_ListMenuCursor
- adds r0, r6, 0
- mov r2, r8
- adds r3, r7, 0
- bl ListMenuPrint
- b _08107680
- .align 2, 0
-_081075F4: .4byte gFameCheckerText_ListMenuCursor
-_081075F8:
- ldrb r0, [r6, 0x1E]
- cmp r0, 0xFF
- bne _08107608
- adds r0, r6, 0
- movs r1, 0
- bl ListMenuAddCursorObject
- strb r0, [r6, 0x1E]
-_08107608:
- ldrb r5, [r6, 0x1E]
- ldrb r0, [r6, 0x10]
- movs r1, 0x1
- bl GetWindowAttribute
- adds r4, r0, 0
- lsls r4, 19
- ldr r0, _0810763C @ =0xffff0000
- adds r4, r0
- lsrs r4, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x2
- bl GetWindowAttribute
- adds r2, r0, 0
- lsls r2, 3
- adds r2, r7
- subs r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl ListMenuUpdateCursorObject
- b _08107680
- .align 2, 0
-_0810763C: .4byte 0xffff0000
-_08107640:
- ldrb r0, [r6, 0x1E]
- cmp r0, 0xFF
- bne _08107650
- adds r0, r6, 0
- movs r1, 0x1
- bl ListMenuAddCursorObject
- strb r0, [r6, 0x1E]
-_08107650:
- ldrb r5, [r6, 0x1E]
- ldrb r0, [r6, 0x10]
- movs r1, 0x1
- bl GetWindowAttribute
- adds r4, r0, 0
- lsls r4, 3
- add r4, r8
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x2
- bl GetWindowAttribute
- adds r2, r0, 0
- lsls r2, 3
- adds r2, r7
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl ListMenuUpdateCursorObject
-_08107680:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuDrawCursor
-
- thumb_func_start ListMenuAddCursorObject
-ListMenuAddCursorObject: @ 810768C
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- mov r1, sp
- movs r0, 0
- strb r0, [r1]
- movs r0, 0xA0
- strb r0, [r1, 0x1]
- ldrb r0, [r4, 0x10]
- movs r1, 0x3
- bl GetWindowAttribute
- mov r1, sp
- lsls r0, 3
- adds r0, 0x2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- mov r1, sp
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x2
- strh r0, [r1, 0x4]
- movs r0, 0x80
- lsls r0, 7
- strh r0, [r1, 0x6]
- ldr r0, _081076E8 @ =0x0000ffff
- strh r0, [r1, 0x8]
- movs r0, 0xF
- strb r0, [r1, 0xA]
- mov r0, sp
- adds r1, r5, 0
- bl ListMenuAddCursorObjectInternal
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081076E8: .4byte 0x0000ffff
- thumb_func_end ListMenuAddCursorObject
-
- thumb_func_start ListMenuErasePrintedCursor
-ListMenuErasePrintedCursor: @ 81076EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrb r1, [r7, 0x17]
- lsrs r0, r1, 6
- cmp r0, 0
- bne _08107768
- lsls r0, r1, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- adds r4, r0, 0
- ldrb r0, [r7, 0x16]
- lsls r0, 26
- lsrs r0, 29
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- ldrb r6, [r7, 0x10]
- ldrb r2, [r7, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- ldrb r2, [r7, 0x13]
- mov r3, r8
- muls r3, r4
- adds r4, r3, 0
- ldrb r3, [r7, 0x14]
- lsls r3, 28
- lsrs r3, 28
- adds r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r5, [sp]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- bl FillWindowPixelRect
-_08107768:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuErasePrintedCursor
-
- thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset
-ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 8107774
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- ldrh r3, [r4, 0x1A]
- ldrh r5, [r4, 0x18]
- cmp r1, 0
- bne _081077E8
- ldrh r0, [r4, 0xE]
- cmp r0, 0x1
- bne _0810778C
- movs r2, 0
- b _0810779E
-_0810778C:
- ldrh r0, [r4, 0xE]
- lsrs r2, r0, 1
- movs r1, 0x1
- ands r1, r0
- adds r2, r1
- subs r0, r2
- subs r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_0810779E:
- cmp r5, 0
- bne _081077C4
- cmp r3, 0
- beq _0810782A
- ldr r1, [r4]
- movs r2, 0x3
- negs r2, r2
-_081077AC:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- cmp r0, r2
- bne _0810782E
- cmp r3, 0
- bne _081077AC
- b _0810782A
-_081077C4:
- cmp r3, r2
- bls _081077E4
- ldr r1, [r4]
- movs r6, 0x3
- negs r6, r6
-_081077CE:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- cmp r0, r6
- bne _0810782E
- cmp r3, r2
- bhi _081077CE
-_081077E4:
- subs r0, r5, 0x1
- b _08107856
-_081077E8:
- ldrh r0, [r4, 0xE]
- cmp r0, 0x1
- bne _081077F2
- movs r2, 0
- b _081077FC
-_081077F2:
- ldrh r0, [r4, 0xE]
- lsrs r2, r0, 1
- movs r1, 0x1
- ands r1, r0
- adds r2, r1
-_081077FC:
- adds r1, r0, 0
- ldrh r0, [r4, 0xC]
- subs r0, r1
- cmp r5, r0
- bne _08107834
- subs r0, r1, 0x1
- cmp r3, r0
- bge _0810782A
- ldr r2, [r4]
- movs r6, 0x3
- negs r6, r6
- adds r1, r0, 0
-_08107814:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0, 0x4]
- cmp r0, r6
- bne _0810782E
- cmp r3, r1
- blt _08107814
-_0810782A:
- movs r0, 0
- b _0810785C
-_0810782E:
- strh r3, [r4, 0x1A]
- movs r0, 0x1
- b _0810785C
-_08107834:
- cmp r3, r2
- bcs _08107854
- ldr r1, [r4]
- movs r6, 0x3
- negs r6, r6
-_0810783E:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- cmp r0, r6
- bne _0810782E
- cmp r3, r2
- bcc _0810783E
-_08107854:
- adds r0, r5, 0x1
-_08107856:
- strh r2, [r4, 0x1A]
- strh r0, [r4, 0x18]
- movs r0, 0x2
-_0810785C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset
-
- thumb_func_start ListMenuScroll
-ListMenuScroll: @ 8107864
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldrh r0, [r6, 0xE]
- cmp r5, r0
- bcc _0810789E
- ldrb r0, [r6, 0x10]
- ldrb r2, [r6, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrh r1, [r6, 0x18]
- ldrh r3, [r6, 0xE]
- adds r0, r6, 0
- movs r2, 0
- bl ListMenuPrintEntries
- b _0810798E
-_0810789E:
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r6, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r8
- cmp r1, 0
- bne _08107930
- ldrb r0, [r6, 0x10]
- adds r2, r5, 0
- muls r2, r4
- lsls r2, 24
- lsrs r2, 24
- ldrb r1, [r6, 0x15]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0x1
- bl ScrollWindow
- ldrh r1, [r6, 0x18]
- adds r0, r6, 0
- movs r2, 0
- adds r3, r5, 0
- bl ListMenuPrintEntries
- ldrh r0, [r6, 0xE]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r1, 0
- ldrb r4, [r6, 0x14]
- lsls r4, 28
- lsrs r4, 28
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x3
- bl GetWindowAttribute
- adds r5, r0, 0
- lsls r5, 19
- lsrs r5, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x4
- bl GetWindowAttribute
- lsls r0, 3
- subs r0, r4
- lsls r0, 16
- lsrs r0, 16
- ldrb r3, [r6, 0x10]
- ldrb r2, [r6, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- str r5, [sp]
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r2, 0
- adds r3, r4, 0
- bl FillWindowPixelRect
- b _0810798E
-_08107930:
- ldrb r0, [r6, 0x10]
- adds r2, r7, 0
- muls r2, r4
- lsls r2, 24
- lsrs r2, 24
- ldrb r1, [r6, 0x15]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0
- bl ScrollWindow
- ldrh r2, [r6, 0xE]
- subs r2, r7
- ldrh r1, [r6, 0x18]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r3, r7, 0
- bl ListMenuPrintEntries
- ldrb r0, [r6, 0x10]
- movs r1, 0x3
- bl GetWindowAttribute
- lsls r0, 19
- lsrs r0, 16
- ldrb r3, [r6, 0x10]
- ldrb r2, [r6, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- str r0, [sp]
- ldrb r0, [r6, 0x14]
- lsls r0, 28
- lsrs r0, 28
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
-_0810798E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuScroll
-
- thumb_func_start ListMenuChangeSelection
-ListMenuChangeSelection: @ 810799C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- ldrh r0, [r4, 0x1A]
- mov r10, r0
- movs r7, 0
- movs r5, 0
- movs r0, 0
- cmp r7, r8
- bcs _08107A04
-_081079CA:
- adds r6, r0, 0x1
- b _081079EA
-_081079CE:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r4, 0x18]
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- ldr r1, [r4]
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0, 0x4]
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _081079FC
-_081079EA:
- adds r0, r4, 0
- mov r1, r9
- bl ListMenuUpdateSelectedRowIndexAndScrollOffset
- lsls r0, 24
- lsrs r0, 24
- orrs r5, r0
- cmp r0, 0x2
- beq _081079CE
-_081079FC:
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _081079CA
-_08107A04:
- ldr r0, [sp]
- cmp r0, 0
- beq _08107A62
- cmp r5, 0x1
- beq _08107A1A
- cmp r5, 0x1
- ble _08107A16
- cmp r5, 0x3
- ble _08107A3A
-_08107A16:
- movs r0, 0x1
- b _08107A64
-_08107A1A:
- adds r0, r4, 0
- mov r1, r10
- bl ListMenuErasePrintedCursor
- adds r0, r4, 0
- bl ListMenuDrawCursor
- adds r0, r4, 0
- movs r1, 0
- bl ListMenuCallSelectionChangedCallback
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- b _08107A62
-_08107A3A:
- adds r0, r4, 0
- mov r1, r10
- bl ListMenuErasePrintedCursor
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r9
- bl ListMenuScroll
- adds r0, r4, 0
- bl ListMenuDrawCursor
- adds r0, r4, 0
- movs r1, 0
- bl ListMenuCallSelectionChangedCallback
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
-_08107A62:
- movs r0, 0
-_08107A64:
- 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 ListMenuChangeSelection
-
- thumb_func_start ListMenuCallSelectionChangedCallback
-ListMenuCallSelectionChangedCallback: @ 8107A74
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r3, [r2, 0x4]
- cmp r3, 0
- beq _08107A96
- ldrh r0, [r2, 0x18]
- ldrh r1, [r2, 0x1A]
- adds r0, r1
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl _call_via_r3
-_08107A96:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ListMenuCallSelectionChangedCallback
-
- thumb_func_start sub_8107A9C
-sub_8107A9C: @ 8107A9C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r6, _08107AE8 @ =gUnknown_3005E60
- movs r5, 0xF
- ands r0, r5
- ldrb r3, [r6]
- mov r8, r3
- movs r4, 0x10
- negs r4, r4
- adds r3, r4, 0
- mov r7, r8
- ands r3, r7
- orrs r3, r0
- lsrs r1, 20
- ands r3, r5
- orrs r3, r1
- strb r3, [r6]
- ands r2, r5
- ldrb r0, [r6, 0x1]
- ands r4, r0
- orrs r4, r2
- strb r4, [r6, 0x1]
- ldrb r0, [r6, 0x3]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r6, 0x3]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08107AE8: .4byte gUnknown_3005E60
- thumb_func_end sub_8107A9C
-
- thumb_func_start ListMenuDefaultCursorMoveFunc
-ListMenuDefaultCursorMoveFunc: @ 8107AEC
- push {lr}
- lsls r1, 24
- cmp r1, 0
- bne _08107AFA
- movs r0, 0x5
- bl PlaySE
-_08107AFA:
- pop {r0}
- bx r0
- thumb_func_end ListMenuDefaultCursorMoveFunc
-
- thumb_func_start sub_8107B00
-sub_8107B00: @ 8107B00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08107B24 @ =gTasks+0x8
- adds r2, r1, r0
- cmp r3, 0x10
- bhi _08107BC8
- lsls r0, r3, 2
- ldr r1, _08107B28 @ =_08107B2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08107B24: .4byte gTasks+0x8
-_08107B28: .4byte _08107B2C
- .align 2, 0
-_08107B2C:
- .4byte _08107B70
- .4byte _08107B70
- .4byte _08107B74
- .4byte _08107B78
- .4byte _08107B7C
- .4byte _08107B80
- .4byte _08107B84
- .4byte _08107B88
- .4byte _08107B8C
- .4byte _08107B90
- .4byte _08107B96
- .4byte _08107B9E
- .4byte _08107BA4
- .4byte _08107BAC
- .4byte _08107BB4
- .4byte _08107BBA
- .4byte _08107BC2
-_08107B70:
- ldr r0, [r2, 0x4]
- b _08107BCC
-_08107B74:
- ldrh r0, [r2, 0xC]
- b _08107BCC
-_08107B78:
- ldrh r0, [r2, 0xE]
- b _08107BCC
-_08107B7C:
- ldrb r0, [r2, 0x10]
- b _08107BCC
-_08107B80:
- ldrb r0, [r2, 0x11]
- b _08107BCC
-_08107B84:
- ldrb r0, [r2, 0x12]
- b _08107BCC
-_08107B88:
- ldrb r0, [r2, 0x13]
- b _08107BCC
-_08107B8C:
- ldrb r0, [r2, 0x14]
- b _08107B98
-_08107B90:
- ldrb r0, [r2, 0x14]
- lsrs r0, 4
- b _08107BCC
-_08107B96:
- ldrb r0, [r2, 0x15]
-_08107B98:
- lsls r0, 28
- lsrs r0, 28
- b _08107BCC
-_08107B9E:
- ldrb r0, [r2, 0x15]
- lsrs r0, 4
- b _08107BCC
-_08107BA4:
- ldrb r0, [r2, 0x16]
- lsls r0, 29
- lsrs r0, 29
- b _08107BCC
-_08107BAC:
- ldrb r0, [r2, 0x16]
- lsls r0, 26
- lsrs r0, 29
- b _08107BCC
-_08107BB4:
- ldrb r0, [r2, 0x16]
- lsrs r0, 6
- b _08107BCC
-_08107BBA:
- ldrb r0, [r2, 0x17]
- lsls r0, 26
- lsrs r0, 26
- b _08107BCC
-_08107BC2:
- ldrb r0, [r2, 0x17]
- lsrs r0, 6
- b _08107BCC
-_08107BC8:
- movs r0, 0x1
- negs r0, r0
-_08107BCC:
- pop {r1}
- bx r1
- thumb_func_end sub_8107B00
-
- thumb_func_start sub_8107BD0
-sub_8107BD0: @ 8107BD0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08107BF4 @ =gTasks+0x8
- adds r3, r1, r0
- cmp r4, 0x10
- bhi _08107CD0
- lsls r0, r4, 2
- ldr r1, _08107BF8 @ =_08107BFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08107BF4: .4byte gTasks+0x8
-_08107BF8: .4byte _08107BFC
- .align 2, 0
-_08107BFC:
- .4byte _08107C40
- .4byte _08107C40
- .4byte _08107C44
- .4byte _08107C48
- .4byte _08107C4C
- .4byte _08107C50
- .4byte _08107C54
- .4byte _08107C58
- .4byte _08107C5C
- .4byte _08107C68
- .4byte _08107C76
- .4byte _08107C82
- .4byte _08107C90
- .4byte _08107C9C
- .4byte _08107CAA
- .4byte _08107CB8
- .4byte _08107CC4
-_08107C40:
- str r2, [r3, 0x4]
- b _08107CD0
-_08107C44:
- strh r2, [r3, 0xC]
- b _08107CD0
-_08107C48:
- strh r2, [r3, 0xE]
- b _08107CD0
-_08107C4C:
- strb r2, [r3, 0x10]
- b _08107CD0
-_08107C50:
- strb r2, [r3, 0x11]
- b _08107CD0
-_08107C54:
- strb r2, [r3, 0x12]
- b _08107CD0
-_08107C58:
- strb r2, [r3, 0x13]
- b _08107CD0
-_08107C5C:
- movs r0, 0xF
- ands r2, r0
- ldrb r1, [r3, 0x14]
- movs r0, 0x10
- negs r0, r0
- b _08107C6E
-_08107C68:
- lsls r2, 4
- ldrb r1, [r3, 0x14]
- movs r0, 0xF
-_08107C6E:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x14]
- b _08107CD0
-_08107C76:
- movs r0, 0xF
- ands r2, r0
- ldrb r1, [r3, 0x15]
- movs r0, 0x10
- negs r0, r0
- b _08107C88
-_08107C82:
- lsls r2, 4
- ldrb r1, [r3, 0x15]
- movs r0, 0xF
-_08107C88:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x15]
- b _08107CD0
-_08107C90:
- movs r0, 0x7
- ands r2, r0
- ldrb r1, [r3, 0x16]
- movs r0, 0x8
- negs r0, r0
- b _08107CB0
-_08107C9C:
- movs r0, 0x7
- ands r2, r0
- lsls r2, 3
- ldrb r1, [r3, 0x16]
- movs r0, 0x39
- negs r0, r0
- b _08107CB0
-_08107CAA:
- lsls r2, 6
- ldrb r1, [r3, 0x16]
- movs r0, 0x3F
-_08107CB0:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x16]
- b _08107CD0
-_08107CB8:
- movs r0, 0x3F
- ands r2, r0
- ldrb r1, [r3, 0x17]
- movs r0, 0x40
- negs r0, r0
- b _08107CCA
-_08107CC4:
- lsls r2, 6
- ldrb r1, [r3, 0x17]
- movs r0, 0x3F
-_08107CCA:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x17]
-_08107CD0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107BD0
-
- thumb_func_start sub_8107CD8
-sub_8107CD8: @ 8107CD8
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80971CC
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107CD8
-
- thumb_func_start sub_8107CF8
-sub_8107CF8: @ 8107CF8
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r4, r3, 0
- ldr r5, [sp, 0x18]
- lsls r6, 24
- lsrs r6, 24
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- movs r2, 0x1
- bl GetMonIconPtr
- adds r1, r0, 0
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl BlitBitmapToWindow
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8107CF8
-
- thumb_func_start sub_8107D38
-sub_8107D38: @ 8107D38
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _08107D4A
- cmp r1, 0x1
- beq _08107D54
-_08107D4A:
- ldr r0, _08107D50 @ =gUnknown_8E95D9C
- b _08107D56
- .align 2, 0
-_08107D50: .4byte gUnknown_8E95D9C
-_08107D54:
- ldr r0, _08107D64 @ =gUnknown_8E95DBC
-_08107D56:
- adds r1, r2, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08107D64: .4byte gUnknown_8E95DBC
- thumb_func_end sub_8107D38
-
- thumb_func_start blit_move_info_icon
-blit_move_info_icon: @ 8107D68
- push {r4,r5,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r4, _08107DAC @ =gUnknown_8452C94
- lsrs r1, 22
- adds r1, r4
- ldrh r5, [r1, 0x2]
- lsls r5, 5
- ldr r4, _08107DB0 @ =gUnknown_8E95DDC
- adds r5, r4
- movs r4, 0x80
- str r4, [sp]
- str r4, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- ldrb r2, [r1]
- str r2, [sp, 0x10]
- ldrb r1, [r1, 0x1]
- str r1, [sp, 0x14]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0
- bl BlitBitmapRectToWindow
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107DAC: .4byte gUnknown_8452C94
-_08107DB0: .4byte gUnknown_8E95DDC
- thumb_func_end blit_move_info_icon
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mail.s b/asm/mail.s
index dac4bf6f8..23aba36f6 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -240,7 +240,7 @@ _080BEDE0:
b _080BF0F4
_080BEDE6:
bl FreeAllSpritePalettes
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
movs r0, 0x10
movs r1, 0
bl SetGpuReg
@@ -318,13 +318,13 @@ _080BEE88:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _080BF0F4
.align 2, 0
_080BEEB0: .4byte gUnknown_83EE9C8
_080BEEB4: .4byte gUnknown_20399C4
_080BEEB8:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _080BEEC4
@@ -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/mail_data.s b/asm/mail_data.s
deleted file mode 100644
index 421aaf452..000000000
--- a/asm/mail_data.s
+++ /dev/null
@@ -1,626 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ClearMailData
-ClearMailData: @ 8097C84
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08097CAC @ =gSaveBlock1Ptr
-_08097C8A:
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _08097CB0 @ =0x00002cd0
- adds r1, r0
- ldr r0, [r5]
- adds r0, r1
- bl ClearMailStruct
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08097C8A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CAC: .4byte gSaveBlock1Ptr
-_08097CB0: .4byte 0x00002cd0
- thumb_func_end ClearMailData
-
- thumb_func_start ClearMailStruct
-ClearMailStruct: @ 8097CB4
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, _08097D04 @ =0x0000ffff
- adds r4, r0, 0
- adds r1, r3, 0
- movs r2, 0x8
-_08097CC0:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08097CC0
- movs r2, 0
- adds r6, r3, 0
- adds r6, 0x1A
- adds r4, r3, 0
- adds r4, 0x12
- movs r5, 0xFF
-_08097CDA:
- adds r1, r4, r2
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08097CDA
- adds r1, r6, 0
- movs r2, 0
- adds r0, r1, 0x3
-_08097CEE:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08097CEE
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08097D04: .4byte 0x0000ffff
- thumb_func_end ClearMailStruct
-
- thumb_func_start MonHasMail
-MonHasMail: @ 8097D08
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08097D30
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- cmp r0, 0xFF
- beq _08097D30
- movs r0, 0x1
- b _08097D32
-_08097D30:
- movs r0, 0
-_08097D32:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MonHasMail
-
- thumb_func_start sub_8097D38
-sub_8097D38: @ 8097D38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- lsls r1, 16
- lsrs r0, r1, 16
- str r0, [sp, 0x8]
- mov r0, sp
- movs r2, 0
- ldrb r3, [r0, 0x8]
- strb r3, [r0]
- lsrs r1, 24
- strb r1, [r0, 0x1]
- add r4, sp, 0x4
- strb r2, [r4]
- mov r12, r4
- mov r9, r4
- adds r5, r4, 0
-_08097D62:
- ldr r2, _08097EC0 @ =gSaveBlock1Ptr
- ldr r0, [r2]
- ldrb r3, [r5]
- lsls r1, r3, 3
- adds r1, r3
- lsls r1, 2
- adds r0, r1
- ldr r1, _08097EC4 @ =0x00002cf0
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _08097D7C
- b _08097EE0
-_08097D7C:
- movs r4, 0
- ldr r3, _08097EC8 @ =gSaveBlock2Ptr
- mov r10, r3
- adds r7, r2, 0
- mov r5, r12
- ldr r0, _08097ECC @ =0x0000ffff
- adds r6, r0, 0
-_08097D8A:
- ldr r2, [r7]
- lsls r3, r4, 1
- ldrb r1, [r5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r1, _08097ED0 @ =0x00002cd0
- adds r2, r1
- adds r2, r3
- ldrh r0, [r2]
- orrs r0, r6
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08097D8A
- movs r4, 0
- mov r2, r10
- ldr r0, [r2]
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08097DEE
- ldr r3, _08097EC8 @ =gSaveBlock2Ptr
-_08097DBC:
- ldr r0, _08097EC0 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- mov r0, r12
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldr r1, _08097ED4 @ =0x00002ce2
- adds r2, r1
- adds r2, r0
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bhi _08097DEE
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08097DBC
-_08097DEE:
- cmp r4, 0x5
- bhi _08097E16
- ldr r7, _08097EC0 @ =gSaveBlock1Ptr
- mov r3, r12
- ldr r6, _08097ED4 @ =0x00002ce2
- movs r5, 0
-_08097DFA:
- ldr r2, [r7]
- ldrb r1, [r3]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- adds r2, r6
- adds r2, r0
- strb r5, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08097DFA
-_08097E16:
- ldr r3, _08097EC0 @ =gSaveBlock1Ptr
- ldr r2, [r3]
- mov r0, r12
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldr r1, _08097ED4 @ =0x00002ce2
- adds r2, r1
- adds r2, r0
- movs r0, 0xFF
- strb r0, [r2]
- movs r4, 0
- adds r5, r3, 0
- mov r3, r12
-_08097E36:
- ldr r2, [r5]
- ldrb r1, [r3]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldr r1, _08097ED8 @ =0x00002cea
- adds r2, r1
- adds r2, r0
- mov r1, r10
- ldr r0, [r1]
- adds r0, 0xA
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08097E36
- mov r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl SpeciesToMailSpecies
- ldr r1, _08097EC0 @ =gSaveBlock1Ptr
- ldr r3, [r1]
- mov r4, r9
- ldrb r2, [r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r3, r1
- ldr r2, _08097EDC @ =0x00002cee
- adds r1, r2
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r4, _08097EC4 @ =0x00002cf0
- adds r3, r4
- mov r0, sp
- ldrh r0, [r0, 0x8]
- strh r0, [r3]
- mov r0, r8
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- mov r1, r9
- ldrb r0, [r1]
- b _08097EEE
- .align 2, 0
-_08097EC0: .4byte gSaveBlock1Ptr
-_08097EC4: .4byte 0x00002cf0
-_08097EC8: .4byte gSaveBlock2Ptr
-_08097ECC: .4byte 0x0000ffff
-_08097ED0: .4byte 0x00002cd0
-_08097ED4: .4byte 0x00002ce2
-_08097ED8: .4byte 0x00002cea
-_08097EDC: .4byte 0x00002cee
-_08097EE0:
- adds r0, r3, 0x1
- strb r0, [r4]
- ldrb r0, [r5]
- cmp r0, 0x5
- bhi _08097EEC
- b _08097D62
-_08097EEC:
- movs r0, 0xFF
-_08097EEE:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8097D38
-
- thumb_func_start SpeciesToMailSpecies
-SpeciesToMailSpecies: @ 8097F00
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _08097F18
- adds r0, r1, 0
- bl mon_icon_personality_to_unown_id
- lsls r0, 16
- ldr r1, _08097F1C @ =0x75300000
- adds r0, r1
- lsrs r0, 16
-_08097F18:
- pop {r1}
- bx r1
- .align 2, 0
-_08097F1C: .4byte 0x75300000
- thumb_func_end SpeciesToMailSpecies
-
- thumb_func_start MailSpeciesToSpecies
-MailSpeciesToSpecies: @ 8097F20
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _08097F38 @ =0xffff8ad0
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _08097F3C
- movs r0, 0xC9
- strh r2, [r1]
- b _08097F3E
- .align 2, 0
-_08097F38: .4byte 0xffff8ad0
-_08097F3C:
- adds r0, r3, 0
-_08097F3E:
- pop {r1}
- bx r1
- thumb_func_end MailSpeciesToSpecies
-
- thumb_func_start GiveMailToMon2
-GiveMailToMon2: @ 8097F44
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- ldrh r5, [r7, 0x20]
- adds r1, r5, 0
- bl sub_8097D38
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _08097FA8
- ldr r0, _08097FA0 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _08097FA4 @ =0x00002cd0
- adds r1, r0
- adds r0, r7, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- mov r0, sp
- strb r5, [r0]
- mov r1, sp
- lsrs r0, r5, 8
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _08097FAA
- .align 2, 0
-_08097FA0: .4byte gSaveBlock1Ptr
-_08097FA4: .4byte 0x00002cd0
-_08097FA8:
- movs r0, 0xFF
-_08097FAA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GiveMailToMon2
-
- thumb_func_start sub_8097FB4
-sub_8097FB4: @ 8097FB4
- movs r0, 0
- bx lr
- thumb_func_end sub_8097FB4
-
- thumb_func_start TakeMailFromMon
-TakeMailFromMon: @ 8097FB8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl MonHasMail
- lsls r0, 24
- cmp r0, 0
- beq _08098008
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r0, _08098010 @ =gSaveBlock1Ptr
- ldr r3, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r0, _08098014 @ =0x00002cf0
- adds r3, r0
- movs r1, 0
- movs r0, 0
- strh r0, [r3]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r1, [r0]
- strb r1, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_08098008:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08098010: .4byte gSaveBlock1Ptr
-_08098014: .4byte 0x00002cf0
- thumb_func_end TakeMailFromMon
-
- thumb_func_start sub_8098018
-sub_8098018: @ 8098018
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08098034 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- ldr r0, _08098038 @ =0x00002cf0
- adds r2, r0
- movs r0, 0
- strh r0, [r2]
- bx lr
- .align 2, 0
-_08098034: .4byte gSaveBlock1Ptr
-_08098038: .4byte 0x00002cf0
- thumb_func_end sub_8098018
-
- thumb_func_start sub_809803C
-sub_809803C: @ 809803C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- movs r7, 0x6
- mov r9, r1
- ldr r0, _080980D0 @ =gSaveBlock1Ptr
- mov r8, r0
- ldr r3, _080980D4 @ =0x00002cd0
-_08098060:
- mov r1, r8
- ldr r0, [r1]
- lsls r1, r7, 3
- adds r1, r7
- lsls r1, 2
- adds r4, r0, r1
- ldr r2, _080980D8 @ =0x00002cf0
- adds r0, r4, r2
- ldrh r6, [r0]
- cmp r6, 0
- bne _080980DC
- adds r4, r3
- adds r0, r5, 0
- movs r1, 0x40
- str r3, [sp, 0x8]
- bl GetMonData
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r3, [sp, 0x8]
- adds r1, r3
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- ldr r3, _080980D8 @ =0x00002cf0
- adds r2, r3
- strh r6, [r2]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r7, 0
- b _080980E8
- .align 2, 0
-_080980D0: .4byte gSaveBlock1Ptr
-_080980D4: .4byte 0x00002cd0
-_080980D8: .4byte 0x00002cf0
-_080980DC:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08098060
- movs r0, 0xFF
-_080980E8:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809803C
-
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80980F8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _0809810A
- cmp r0, 0x79
- blt _0809810A
- movs r0, 0x1
- b _0809810C
-_0809810A:
- movs r0, 0
-_0809810C:
- pop {r1}
- bx r1
- thumb_func_end itemid_is_mail
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s
index 5273d1357..7e792681f 100644
--- a/asm/mailbox_pc.s
+++ b/asm/mailbox_pc.s
@@ -60,7 +60,7 @@ sub_810EBAC: @ 810EBAC
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
_0810EBD0:
ldrb r0, [r4]
pop {r4}
@@ -81,7 +81,7 @@ sub_810EBE0: @ 810EBE0
adds r4, r0
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
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}
@@ -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 d7bf1e406..f88fea21a 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -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
@@ -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_preview_screen.s b/asm/map_preview_screen.s
index c8f063d5a..900b36d9c 100644
--- a/asm/map_preview_screen.s
+++ b/asm/map_preview_screen.s
@@ -123,7 +123,7 @@ sub_80F819C: @ 80F819C
lsrs r5, r0, 24
cmp r5, 0x1C
beq _080F8224
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r4, _080F8200 @ =gUnknown_843E9E8
lsls r5, 4
adds r0, r4, 0
@@ -141,7 +141,7 @@ sub_80F819C: @ 80F819C
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
movs r0, 0
bl GetBgTilemapBuffer
cmp r0, 0
@@ -206,7 +206,7 @@ _080F8254: .4byte gUnknown_203ABED
thumb_func_start sub_80F8258
sub_80F8258: @ 80F8258
push {lr}
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -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}
@@ -440,7 +440,7 @@ _080F8448:
lsls r0, 24
cmp r0, 0
beq _080F853C
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
b _080F84EA
_080F8458:
ldrh r0, [r4, 0x2]
diff --git a/asm/menu.s b/asm/menu.s
deleted file mode 100644
index 6341c2c32..000000000
--- a/asm/menu.s
+++ /dev/null
@@ -1,3455 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810EDC4
-sub_810EDC4: @ 810EDC4
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810EE00 @ =gUnknown_203ADF0
- strh r2, [r0]
- ldr r0, _0810EE04 @ =gUnknown_203ADF2
- strb r3, [r0]
- ldr r1, _0810EE08 @ =sub_810EE5C
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _0810EDFA
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0810EDFA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EE00: .4byte gUnknown_203ADF0
-_0810EE04: .4byte gUnknown_203ADF2
-_0810EE08: .4byte sub_810EE5C
- thumb_func_end sub_810EDC4
-
- thumb_func_start sub_810EE0C
-sub_810EE0C: @ 810EE0C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810EE50 @ =gUnknown_203ADF0
- strh r2, [r0]
- ldr r5, _0810EE54 @ =gUnknown_203ADF2
- adds r0, r6, 0
- movs r1, 0x5
- bl GetWindowAttribute
- strb r0, [r5]
- ldr r1, _0810EE58 @ =sub_810EE5C
- adds r0, r6, 0
- bl CallWindowFunction
- adds r0, r6, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r6, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _0810EE4A
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0810EE4A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EE50: .4byte gUnknown_203ADF0
-_0810EE54: .4byte gUnknown_203ADF2
-_0810EE58: .4byte sub_810EE5C
- thumb_func_end sub_810EE0C
-
- thumb_func_start sub_810EE5C
-sub_810EE5C: @ 810EE5C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r6, r0, 0
- adds r5, r2, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r0, r1, 24
- lsls r5, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- ldr r1, _0810F228 @ =gUnknown_203ADF0
- mov r9, r1
- ldrh r1, [r1]
- lsrs r2, r0, 24
- str r2, [sp, 0xC]
- movs r3, 0xFE
- lsls r3, 24
- adds r2, r0, r3
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsrs r0, r5, 24
- mov r10, r0
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- ldr r3, _0810F22C @ =gUnknown_203ADF2
- mov r8, r3
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r0, r9
- ldrh r1, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0xC]
- subs r0, 0x1
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0x2
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0x3
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r7, r0, r2
- lsls r2, r7, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r0, r9
- ldrh r1, [r0]
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- adds r0, r7, 0x1
- lsls r2, r0, 24
- lsrs r7, r2, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0x5
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- mov r3, r10
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0x6
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- mov r3, r10
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0x8
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x1C]
- mov r3, r10
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0x9
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- mov r3, r10
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0xA
- lsls r1, 16
- lsrs r1, 16
- mov r5, r10
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0xB
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0xC
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- mov r3, r9
- ldrh r1, [r3]
- adds r1, 0xD
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F230 @ =0x0000080a
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r5, r10
- adds r5, 0x2
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F234 @ =0x0000080b
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F238 @ =0x0000080c
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F23C @ =0x0000080d
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F240 @ =0x00000805
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r5, r10
- adds r5, 0x3
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F244 @ =0x00000806
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F248 @ =0x00000808
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, _0810F24C @ =0x00000809
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x4
- add r10, r2
- mov r3, r10
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- bl FillBgTilemapBufferRect
- ldr r3, _0810F250 @ =0x00000801
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r3, _0810F254 @ =0x00000802
- adds r1, r3, 0
- mov r0, r9
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x10]
- str r2, [sp]
- str r4, [sp, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0xC]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r0, _0810F258 @ =0x00000803
- adds r1, r0, 0
- mov r2, r9
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x1C]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r0, _0810F25C @ =0x00000804
- adds r1, r0, 0
- mov r2, r9
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- mov r3, r10
- bl FillBgTilemapBufferRect
- 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
-_0810F228: .4byte gUnknown_203ADF0
-_0810F22C: .4byte gUnknown_203ADF2
-_0810F230: .4byte 0x0000080a
-_0810F234: .4byte 0x0000080b
-_0810F238: .4byte 0x0000080c
-_0810F23C: .4byte 0x0000080d
-_0810F240: .4byte 0x00000805
-_0810F244: .4byte 0x00000806
-_0810F248: .4byte 0x00000808
-_0810F24C: .4byte 0x00000809
-_0810F250: .4byte 0x00000801
-_0810F254: .4byte 0x00000802
-_0810F258: .4byte 0x00000803
-_0810F25C: .4byte 0x00000804
- thumb_func_end sub_810EE5C
-
- thumb_func_start sub_810F260
-sub_810F260: @ 810F260
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810F294 @ =sub_810F298
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _0810F28E
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F28E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F294: .4byte sub_810F298
- thumb_func_end sub_810F260
-
- thumb_func_start sub_810F298
-sub_810F298: @ 810F298
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFE
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 19
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810F298
-
- thumb_func_start SetWindowBorderStyle
-SetWindowBorderStyle: @ 810F2E8
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810F324 @ =gUnknown_203ADF0
- strh r2, [r0]
- ldr r0, _0810F328 @ =gUnknown_203ADF2
- strb r3, [r0]
- ldr r1, _0810F32C @ =DrawWindowBorder
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _0810F31E
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F31E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F324: .4byte gUnknown_203ADF0
-_0810F328: .4byte gUnknown_203ADF2
-_0810F32C: .4byte DrawWindowBorder
- thumb_func_end SetWindowBorderStyle
-
- thumb_func_start sub_810F330
-sub_810F330: @ 810F330
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810F374 @ =gUnknown_203ADF0
- strh r2, [r0]
- ldr r5, _0810F378 @ =gUnknown_203ADF2
- adds r0, r6, 0
- movs r1, 0x5
- bl GetWindowAttribute
- strb r0, [r5]
- ldr r1, _0810F37C @ =DrawWindowBorder
- adds r0, r6, 0
- bl CallWindowFunction
- adds r0, r6, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r6, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _0810F36E
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F36E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F374: .4byte gUnknown_203ADF0
-_0810F378: .4byte gUnknown_203ADF2
-_0810F37C: .4byte DrawWindowBorder
- thumb_func_end sub_810F330
-
- thumb_func_start DrawWindowBorder
-DrawWindowBorder: @ 810F380
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r9, r0
- adds r6, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x38]
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r6, 24
- lsls r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r2, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r2]
- lsrs r0, r6, 24
- str r0, [sp, 0xC]
- movs r2, 0xFF
- lsls r2, 24
- adds r6, r2
- lsrs r6, 24
- lsrs r0, r4, 24
- mov r8, r0
- adds r4, r2
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- ldr r7, _0810F4D4 @ =gUnknown_203ADF2
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r2, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r2]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r2, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r2]
- adds r1, 0x2
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- str r5, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- mov r2, r10
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r0, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r0]
- adds r1, 0x3
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- ldr r2, [sp, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- adds r2, r6, 0
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r0, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r0]
- adds r1, 0x5
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- ldr r2, [sp, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- mov r2, r10
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r0, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r0]
- adds r1, 0x6
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x14]
- add r8, r2
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- str r5, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- adds r2, r6, 0
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r2, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r2]
- adds r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- ldr r2, [sp, 0xC]
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r2, _0810F4D0 @ =gUnknown_203ADF0
- ldrh r1, [r2]
- adds r1, 0x8
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- mov r2, r10
- mov r3, r8
- bl FillBgTilemapBufferRect
- 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
-_0810F4D0: .4byte gUnknown_203ADF0
-_0810F4D4: .4byte gUnknown_203ADF2
- thumb_func_end DrawWindowBorder
-
- thumb_func_start sub_810F4D8
-sub_810F4D8: @ 810F4D8
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810F50C @ =sub_810F510
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _0810F506
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F506:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F50C: .4byte sub_810F510
- thumb_func_end sub_810F4D8
-
- thumb_func_start sub_810F510
-sub_810F510: @ 810F510
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 18
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810F510
-
- thumb_func_start CreateWindow_SnapRight_StdPal
-CreateWindow_SnapRight_StdPal: @ 810F558
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- movs r1, 0
- movs r2, 0x8
- bl memset
- cmp r6, 0x3
- bls _0810F58E
- movs r1, 0
- mov r0, sp
- strb r1, [r0]
- b _0810F592
-_0810F58E:
- mov r0, sp
- strb r6, [r0]
-_0810F592:
- mov r1, sp
- mov r0, r8
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x4]
- movs r0, 0x1E
- subs r0, r7
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x3]
- strb r5, [r1, 0x5]
- strh r4, [r1, 0x6]
- ldr r4, _0810F5BC @ =gUnknown_203ADF4
- mov r0, sp
- bl AddWindow
- strb r0, [r4]
- cmp r5, 0xF
- bls _0810F5C0
- movs r5, 0xF0
- b _0810F5C4
- .align 2, 0
-_0810F5BC: .4byte gUnknown_203ADF4
-_0810F5C0:
- lsls r0, r5, 28
- lsrs r5, r0, 24
-_0810F5C4:
- movs r0, 0x2
- bl stdpal_get
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810F5E4 @ =gUnknown_203ADF4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F5E4: .4byte gUnknown_203ADF4
- thumb_func_end CreateWindow_SnapRight_StdPal
-
- thumb_func_start PrintTextOnRightSnappedWindow
-PrintTextOnRightSnappedWindow: @ 810F5E8
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r4, _0810F648 @ =gUnknown_203ADF4
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0810F63E
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0
- bl GetStringWidth
- ldrb r1, [r4]
- movs r3, 0x14
- negs r3, r3
- adds r2, r3, 0
- subs r2, r0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0810F64C @ =gUnknown_8456618
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0
- movs r3, 0x1
- bl box_print
- cmp r6, 0
- beq _0810F63E
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F63E:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F648: .4byte gUnknown_203ADF4
-_0810F64C: .4byte gUnknown_8456618
- thumb_func_end PrintTextOnRightSnappedWindow
-
- thumb_func_start Menu_PrintHelpSystemUIHeader
-Menu_PrintHelpSystemUIHeader: @ 810F650
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- mov r8, r0
- adds r5, r1, 0
- ldr r0, [sp, 0x30]
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0810F67C @ =gUnknown_203ADF4
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0xFF
- beq _0810F6F6
- cmp r2, 0
- beq _0810F680
- add r1, sp, 0x14
- movs r0, 0
- b _0810F684
- .align 2, 0
-_0810F67C: .4byte gUnknown_203ADF4
-_0810F680:
- add r1, sp, 0x14
- movs r0, 0xF
-_0810F684:
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- adds r4, r6, 0
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- cmp r5, 0
- beq _0810F6CE
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0
- bl GetStringWidth
- ldrb r1, [r4]
- movs r3, 0x14
- negs r3, r3
- adds r2, r3, 0
- subs r2, r0
- lsls r2, 24
- lsrs r2, 24
- add r0, sp, 0x14
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0
- movs r3, 0x1
- bl box_print
-_0810F6CE:
- ldrb r0, [r6]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- add r2, sp, 0x14
- str r2, [sp, 0x8]
- str r1, [sp, 0xC]
- mov r3, r8
- str r3, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0x4
- movs r3, 0x1
- bl AddTextPrinterParametrized2
- cmp r7, 0
- beq _0810F6F6
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F6F6:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Menu_PrintHelpSystemUIHeader
-
- thumb_func_start sub_810F704
-sub_810F704: @ 810F704
- push {lr}
- ldr r1, _0810F718 @ =gUnknown_203ADF4
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0810F714
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F714:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F718: .4byte gUnknown_203ADF4
- thumb_func_end sub_810F704
-
- thumb_func_start sub_810F71C
-sub_810F71C: @ 810F71C
- push {r4,lr}
- ldr r4, _0810F73C @ =gUnknown_203ADF4
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0810F734
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
-_0810F734:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F73C: .4byte gUnknown_203ADF4
- thumb_func_end sub_810F71C
-
- thumb_func_start sub_810F740
-sub_810F740: @ 810F740
- push {r4,lr}
- ldr r4, _0810F770 @ =gUnknown_203ADF4
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0810F768
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
-_0810F768:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F770: .4byte gUnknown_203ADF4
- thumb_func_end sub_810F740
-
- thumb_func_start sub_810F774
-sub_810F774: @ 810F774
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- mov r8, r4
- ldr r4, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- ldr r6, [sp, 0x24]
- mov r12, r6
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r7, r5, 24
- ldr r5, _0810F7B8 @ =gUnknown_203ADE4
- movs r6, 0
- strb r2, [r5]
- strb r3, [r5, 0x1]
- strb r6, [r5, 0x3]
- subs r4, 0x1
- strb r4, [r5, 0x4]
- strb r0, [r5, 0x5]
- strb r1, [r5, 0x6]
- mov r0, r8
- strb r0, [r5, 0x8]
- mov r4, r12
- strb r4, [r5, 0xB]
- cmp r7, 0
- blt _0810F7B4
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r7, r0
- ble _0810F7BC
-_0810F7B4:
- strb r6, [r5, 0x2]
- b _0810F7BE
- .align 2, 0
-_0810F7B8: .4byte gUnknown_203ADE4
-_0810F7BC:
- strb r7, [r5, 0x2]
-_0810F7BE:
- movs r0, 0
- bl MoveMenuCursor
- ldr r0, _0810F7D4 @ =gUnknown_203ADE4
- ldrb r0, [r0, 0x2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F7D4: .4byte gUnknown_203ADE4
- thumb_func_end sub_810F774
-
- thumb_func_start ProgramAndPlaceMenuCursorOnWindow
-ProgramAndPlaceMenuCursorOnWindow: @ 810F7D8
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r4, 0
- str r4, [sp, 0xC]
- bl sub_810F774
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ProgramAndPlaceMenuCursorOnWindow
-
- thumb_func_start sub_810F818
-sub_810F818: @ 810F818
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- mov r8, r0
- adds r6, r1, 0
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x1
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- mov r0, r8
- adds r1, r6, 0
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- bl ProgramAndPlaceMenuCursorOnWindow
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810F818
-
- thumb_func_start RedrawMenuCursor
-RedrawMenuCursor: @ 810F874
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r6, r0, 0
- mov r8, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r5, _0810F8FC @ =gUnknown_203ADE4
- ldrb r0, [r5, 0x6]
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5, 0x6]
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r5, 0x5]
- mov r9, r1
- ldrb r2, [r5]
- ldrb r1, [r5, 0x8]
- adds r3, r1, 0
- muls r3, r6
- ldrb r6, [r5, 0x1]
- adds r3, r6
- lsls r3, 16
- lsrs r3, 16
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r9
- movs r1, 0x1
- bl FillWindowPixelRect
- ldrb r0, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- ldr r2, _0810F900 @ =gFameCheckerText_ListMenuCursor
- ldrb r3, [r5]
- ldrb r4, [r5, 0x8]
- mov r6, r8
- muls r6, r4
- adds r4, r6, 0
- ldrb r5, [r5, 0x1]
- adds r4, r5
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F8FC: .4byte gUnknown_203ADE4
-_0810F900: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end RedrawMenuCursor
-
- thumb_func_start MoveMenuCursor
-MoveMenuCursor: @ 810F904
- push {r4,r5,lr}
- ldr r1, _0810F924 @ =gUnknown_203ADE4
- ldrb r5, [r1, 0x2]
- movs r2, 0x2
- ldrsb r2, [r1, r2]
- lsls r0, 24
- asrs r3, r0, 24
- adds r2, r3
- movs r0, 0x3
- ldrsb r0, [r1, r0]
- adds r4, r1, 0
- cmp r2, r0
- bge _0810F928
- ldrb r0, [r4, 0x4]
- b _0810F936
- .align 2, 0
-_0810F924: .4byte gUnknown_203ADE4
-_0810F928:
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r2, r0
- ble _0810F934
- ldrb r0, [r4, 0x3]
- b _0810F936
-_0810F934:
- adds r0, r3, r5
-_0810F936:
- strb r0, [r4, 0x2]
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl RedrawMenuCursor
- ldrb r0, [r4, 0x2]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end MoveMenuCursor
-
- thumb_func_start MoveMenuCursorNoWrapAround
-MoveMenuCursorNoWrapAround: @ 810F948
- push {r4,r5,lr}
- ldr r1, _0810F968 @ =gUnknown_203ADE4
- ldrb r5, [r1, 0x2]
- movs r2, 0x2
- ldrsb r2, [r1, r2]
- lsls r0, 24
- asrs r3, r0, 24
- adds r2, r3
- movs r0, 0x3
- ldrsb r0, [r1, r0]
- adds r4, r1, 0
- cmp r2, r0
- bge _0810F96C
- ldrb r0, [r4, 0x3]
- b _0810F97A
- .align 2, 0
-_0810F968: .4byte gUnknown_203ADE4
-_0810F96C:
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r2, r0
- ble _0810F978
- ldrb r0, [r4, 0x4]
- b _0810F97A
-_0810F978:
- adds r0, r3, r5
-_0810F97A:
- strb r0, [r4, 0x2]
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl RedrawMenuCursor
- ldrb r0, [r4, 0x2]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end MoveMenuCursorNoWrapAround
-
- thumb_func_start GetMenuCursorPos
-GetMenuCursorPos: @ 810F98C
- ldr r0, _0810F994 @ =gUnknown_203ADE4
- ldrb r0, [r0, 0x2]
- bx lr
- .align 2, 0
-_0810F994: .4byte gUnknown_203ADE4
- thumb_func_end GetMenuCursorPos
-
- thumb_func_start ProcessMenuInput
-ProcessMenuInput: @ 810F998
- push {r4,lr}
- ldr r0, _0810F9BC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810F9C4
- ldr r4, _0810F9C0 @ =gUnknown_203ADE4
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _0810F9B4
- movs r0, 0x5
- bl PlaySE
-_0810F9B4:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _0810F9FE
- .align 2, 0
-_0810F9BC: .4byte gMain
-_0810F9C0: .4byte gUnknown_203ADE4
-_0810F9C4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810F9D2
- movs r0, 0x1
- negs r0, r0
- b _0810F9FE
-_0810F9D2:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810F9E6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0810F9F6
-_0810F9E6:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810F9FA
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0810F9F6:
- bl MoveMenuCursor
-_0810F9FA:
- movs r0, 0x2
- negs r0, r0
-_0810F9FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInput
-
- thumb_func_start ProcessMenuInputNoWrapAround
-ProcessMenuInputNoWrapAround: @ 810FA04
- push {r4-r6,lr}
- ldr r4, _0810FA2C @ =gUnknown_203ADE4
- ldrb r5, [r4, 0x2]
- adds r6, r5, 0
- ldr r0, _0810FA30 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810FA34
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _0810FA24
- movs r0, 0x5
- bl PlaySE
-_0810FA24:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _0810FA7C
- .align 2, 0
-_0810FA2C: .4byte gUnknown_203ADE4
-_0810FA30: .4byte gMain
-_0810FA34:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810FA42
- movs r0, 0x1
- negs r0, r0
- b _0810FA7C
-_0810FA42:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810FA5C
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _0810FA78
- b _0810FA72
-_0810FA5C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810FA78
- movs r0, 0x1
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _0810FA78
-_0810FA72:
- movs r0, 0x5
- bl PlaySE
-_0810FA78:
- movs r0, 0x2
- negs r0, r0
-_0810FA7C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInputNoWrapAround
-
- thumb_func_start ProcessMenuInput_other
-ProcessMenuInput_other: @ 810FA84
- push {r4,lr}
- ldr r2, _0810FAA8 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810FAB0
- ldr r4, _0810FAAC @ =gUnknown_203ADE4
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _0810FAA0
- movs r0, 0x5
- bl PlaySE
-_0810FAA0:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _0810FAE8
- .align 2, 0
-_0810FAA8: .4byte gMain
-_0810FAAC: .4byte gUnknown_203ADE4
-_0810FAB0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810FABE
- movs r0, 0x1
- negs r0, r0
- b _0810FAE8
-_0810FABE:
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _0810FAD4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0810FAE0
-_0810FAD4:
- cmp r1, 0x80
- bne _0810FAE4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0810FAE0:
- bl MoveMenuCursor
-_0810FAE4:
- movs r0, 0x2
- negs r0, r0
-_0810FAE8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInput_other
-
- thumb_func_start ProcessMenuInputNoWrapAround_other
-ProcessMenuInputNoWrapAround_other: @ 810FAF0
- push {r4-r6,lr}
- ldr r4, _0810FB18 @ =gUnknown_203ADE4
- ldrb r5, [r4, 0x2]
- adds r6, r5, 0
- ldr r2, _0810FB1C @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810FB20
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _0810FB10
- movs r0, 0x5
- bl PlaySE
-_0810FB10:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _0810FB66
- .align 2, 0
-_0810FB18: .4byte gUnknown_203ADE4
-_0810FB1C: .4byte gMain
-_0810FB20:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810FB2E
- movs r0, 0x1
- negs r0, r0
- b _0810FB66
-_0810FB2E:
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _0810FB4A
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _0810FB62
- b _0810FB5C
-_0810FB4A:
- cmp r1, 0x80
- bne _0810FB62
- movs r0, 0x1
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _0810FB62
-_0810FB5C:
- movs r0, 0x5
- bl PlaySE
-_0810FB62:
- movs r0, 0x2
- negs r0, r0
-_0810FB66:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInputNoWrapAround_other
-
- thumb_func_start PrintTextArray
-PrintTextArray: @ 810FB6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810FBD0
-_0810FBA0:
- lsls r0, r4, 3
- ldr r1, [sp, 0x34]
- adds r0, r1
- ldr r2, [r0]
- adds r0, r7, 0
- muls r0, r4
- add r0, r8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- mov r1, r10
- mov r3, r9
- bl AddTextPrinterParameterized
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810FBA0
-_0810FBD0:
- adds r0, r6, 0
- movs r1, 0x2
- bl CopyWindowToVram
- 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 PrintTextArray
-
- thumb_func_start sub_810FBE8
-sub_810FBE8: @ 810FBE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r6, [sp, 0x4C]
- ldr r7, [sp, 0x50]
- mov r8, r7
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r9, r6
- mov r0, r8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810FC68
-_0810FC30:
- lsls r0, r4, 3
- ldr r1, [sp, 0x48]
- adds r0, r1
- ldr r2, [r0]
- mov r0, r10
- muls r0, r4
- ldr r1, [sp, 0x1C]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- str r6, [sp, 0x10]
- adds r0, r7, 0
- ldr r1, [sp, 0x14]
- ldr r3, [sp, 0x18]
- bl sub_812E62C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810FC30
-_0810FC68:
- adds r0, r7, 0
- movs r1, 0x2
- bl CopyWindowToVram
- 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_810FBE8
-
- thumb_func_start sub_810FC80
-sub_810FC80: @ 810FC80
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- mov r8, r0
- adds r6, r1, 0
- adds r4, r2, 0
- adds r5, r3, 0
- ldr r7, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r7, [sp, 0x8]
- mov r0, r8
- adds r1, r6, 0
- movs r3, 0
- bl PrintTextArray
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FC80
-
- thumb_func_start AddItemMenuActionTextPrinters
-AddItemMenuActionTextPrinters: @ 810FCD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r6, r1, 0
- mov r8, r2
- ldr r1, [sp, 0x38]
- mov r9, r1
- ldr r1, [sp, 0x3C]
- ldr r2, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r6, 24
- lsrs r6, 24
- mov r4, r8
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r7, r2, 24
- mov r0, sp
- ldrb r1, [r0, 0x10]
- strb r1, [r0, 0x4]
- strb r6, [r0, 0x5]
- adds r0, r6, 0
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r6, 0
- movs r1, 0x6
- bl GetFontAttribute
- mov r3, sp
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- mov r0, sp
- mov r2, r9
- strb r2, [r0, 0xA]
- adds r0, r6, 0
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xB]
- mov r0, sp
- mov r4, r8
- strb r4, [r0, 0x6]
- strb r4, [r0, 0x8]
- movs r4, 0
- cmp r4, r7
- bcs _0810FDCA
- mov r5, sp
-_0810FD9A:
- ldr r1, [sp, 0x48]
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r0, 3
- ldr r2, [sp, 0x44]
- adds r0, r2
- ldr r0, [r0]
- str r0, [sp]
- mov r0, r10
- muls r0, r4
- ldr r1, [sp, 0x14]
- adds r0, r1, r0
- strb r0, [r5, 0x7]
- strb r0, [r5, 0x9]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _0810FD9A
-_0810FDCA:
- ldr r0, [sp, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- 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 AddItemMenuActionTextPrinters
-
- thumb_func_start sub_810FDE4
-sub_810FDE4: @ 810FDE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x30]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetFontAttribute
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- movs r1, 0x2
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- str r7, [sp, 0xC]
- ldr r0, [sp, 0x34]
- str r0, [sp, 0x10]
- mov r0, r9
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl AddItemMenuActionTextPrinters
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FDE4
-
- thumb_func_start SetWindowTemplateFields
-SetWindowTemplateFields: @ 810FE50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- mov r12, r4
- ldr r4, [sp, 0x2C]
- mov r9, r4
- ldr r4, [sp, 0x30]
- mov r10, r4
- ldr r7, [sp, 0x34]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsls r3, 24
- mov r4, r9
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- mov r4, r10
- lsls r4, 24
- mov r10, r4
- ldr r4, _0810FEF0 @ =0xffffff00
- mov r8, r4
- mov r5, r8
- ldr r4, [sp]
- ands r5, r4
- orrs r5, r1
- str r5, [sp]
- lsrs r2, 16
- ldr r6, _0810FEF4 @ =0xffff00ff
- adds r4, r6, 0
- ands r4, r5
- orrs r4, r2
- str r4, [sp]
- lsrs r3, 8
- ldr r1, _0810FEF8 @ =0xff00ffff
- ands r1, r4
- orrs r1, r3
- str r1, [sp]
- mov r2, r12
- lsls r2, 24
- mov r12, r2
- ldr r2, _0810FEFC @ =0x00ffffff
- ands r1, r2
- mov r4, r12
- orrs r4, r1
- str r4, [sp]
- ldr r1, [sp, 0x4]
- mov r2, r8
- ands r1, r2
- mov r4, r9
- orrs r1, r4
- mov r8, r1
- str r1, [sp, 0x4]
- mov r1, r10
- lsrs r1, 16
- mov r2, r8
- ands r6, r2
- orrs r6, r1
- str r6, [sp, 0x4]
- lsls r2, r7, 16
- ldr r1, _0810FF00 @ =0x0000ffff
- ands r6, r1
- orrs r6, r2
- str r6, [sp, 0x4]
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- str r1, [r0]
- str r2, [r0, 0x4]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r2}
- bx r2
- .align 2, 0
-_0810FEF0: .4byte 0xffffff00
-_0810FEF4: .4byte 0xffff00ff
-_0810FEF8: .4byte 0xff00ffff
-_0810FEFC: .4byte 0x00ffffff
-_0810FF00: .4byte 0x0000ffff
- thumb_func_end SetWindowTemplateFields
-
- thumb_func_start sub_810FF04
-sub_810FF04: @ 810FF04
- push {r4-r6,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x30]
- ldr r1, [sp, 0x34]
- ldr r2, [sp, 0x38]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- str r3, [sp]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- add r0, sp, 0x10
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl SetWindowTemplateFields
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x20
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810FF04
-
- thumb_func_start CreateYesNoMenu
-CreateYesNoMenu: @ 810FF60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r6, r1, 0
- mov r8, r2
- mov r9, r3
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- ldr r1, [sp, 0x44]
- mov r10, r1
- lsls r6, 24
- lsrs r6, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r7, _0811009C @ =gUnknown_203ADF3
- bl AddWindow
- strb r0, [r7]
- ldrb r0, [r7]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r5, 0
- bl SetWindowBorderStyle
- ldr r0, _081100A0 @ =gUnknown_841623D
- str r0, [sp, 0xC]
- add r1, sp, 0xC
- ldrb r0, [r7]
- strb r0, [r1, 0x4]
- adds r0, r1, 0
- strb r6, [r0, 0x5]
- adds r0, r6, 0
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- add r1, sp, 0xC
- add r0, r8
- strb r0, [r1, 0x6]
- adds r0, r1, 0
- mov r1, r9
- strb r1, [r0, 0x7]
- adds r1, r0, 0
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x8]
- adds r0, r1, 0
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- adds r0, r6, 0
- movs r1, 0x5
- bl GetFontAttribute
- add r3, sp, 0xC
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r6, 0
- movs r1, 0x6
- bl GetFontAttribute
- add r3, sp, 0xC
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetFontAttribute
- add r3, sp, 0xC
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x4
- bl GetFontAttribute
- add r1, sp, 0xC
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- adds r0, r6, 0
- movs r1, 0x2
- bl GetFontAttribute
- add r1, sp, 0xC
- strb r0, [r1, 0xA]
- adds r0, r6, 0
- movs r1, 0x3
- bl GetFontAttribute
- add r1, sp, 0xC
- strb r0, [r1, 0xB]
- adds r0, r1, 0
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- adds r0, r6, 0
- movs r1, 0x1
- bl GetFontAttribute
- add r1, sp, 0xC
- ldrb r1, [r1, 0xB]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r7]
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r1, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r9
- bl ProgramAndPlaceMenuCursorOnWindow
- 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
-_0811009C: .4byte gUnknown_203ADF3
-_081100A0: .4byte gUnknown_841623D
- thumb_func_end CreateYesNoMenu
-
- thumb_func_start sub_81100A4
-sub_81100A4: @ 81100A4
- push {lr}
- sub sp, 0xC
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r3, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- movs r3, 0
- bl CreateYesNoMenu
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_81100A4
-
- thumb_func_start Menu_ProcessInputNoWrapClearOnChoose
-Menu_ProcessInputNoWrapClearOnChoose: @ 81100C8
- push {r4,lr}
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081100DE
- bl sub_81100E8
-_081100DE:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Menu_ProcessInputNoWrapClearOnChoose
-
- thumb_func_start sub_81100E8
-sub_81100E8: @ 81100E8
- push {r4,lr}
- ldr r4, _08110100 @ =gUnknown_203ADF3
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_810F4D8
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110100: .4byte gUnknown_203ADF3
- thumb_func_end sub_81100E8
-
- thumb_func_start sub_8110104
-sub_8110104: @ 8110104
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x18]
- mov r0, r9
- movs r1, 0
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- mov r0, r9
- movs r1, 0x1
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x10
- subs r1, r0
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x1C]
- movs r5, 0
- b _081101B8
-_08110164:
- movs r4, 0
- adds r1, r5, 0x1
- mov r8, r1
- cmp r4, r6
- bcs _081101B2
- ldr r1, [sp, 0x14]
- adds r0, r1, 0
- muls r0, r5
- ldr r1, [sp, 0x1C]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r7, r0, 24
-_0811017C:
- adds r0, r5, 0
- muls r0, r6
- adds r0, r4
- lsls r0, 3
- ldr r1, [sp, 0x48]
- adds r0, r1
- ldr r2, [r0]
- ldr r0, [sp, 0x10]
- adds r3, r0, 0
- muls r3, r4
- add r3, r10
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- ldr r0, [sp, 0xC]
- mov r1, r9
- bl AddTextPrinterParameterized
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _0811017C
-_081101B2:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
-_081101B8:
- ldr r0, [sp, 0x18]
- cmp r5, r0
- bcc _08110164
- ldr r0, [sp, 0xC]
- movs r1, 0x2
- bl CopyWindowToVram
- 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_8110104
-
- thumb_func_start sub_81101D8
-sub_81101D8: @ 81101D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x18]
- mov r0, r10
- movs r1, 0
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r5, 0
- b _08110272
-_0811021C:
- movs r4, 0
- adds r1, r5, 0x1
- mov r8, r1
- cmp r4, r6
- bcs _0811026C
- ldr r1, [sp, 0x14]
- adds r0, r1, 0
- muls r0, r5
- lsls r0, 24
- lsrs r7, r0, 24
-_08110230:
- adds r0, r5, 0
- muls r0, r6
- adds r0, r4
- ldr r1, [sp, 0x48]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, [sp, 0x44]
- adds r0, r1
- ldr r2, [r0]
- ldr r0, [sp, 0x10]
- adds r3, r0, 0
- muls r3, r4
- add r3, r9
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- ldr r0, [sp, 0xC]
- mov r1, r10
- bl AddTextPrinterParameterized
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08110230
-_0811026C:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
-_08110272:
- ldr r0, [sp, 0x18]
- cmp r5, r0
- bcc _0811021C
- ldr r0, [sp, 0xC]
- movs r1, 0x2
- bl CopyWindowToVram
- 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_81101D8
-
- thumb_func_start sub_8110290
-sub_8110290: @ 8110290
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- mov r12, r4
- ldr r4, [sp, 0x24]
- mov r8, r4
- ldr r4, [sp, 0x28]
- mov r9, r4
- ldr r4, [sp, 0x2C]
- mov r10, r4
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r7, r5, 24
- ldr r5, _081102E8 @ =gUnknown_203ADE4
- movs r6, 0
- strb r2, [r5]
- strb r3, [r5, 0x1]
- strb r6, [r5, 0x3]
- subs r4, 0x1
- strb r4, [r5, 0x4]
- strb r0, [r5, 0x5]
- strb r1, [r5, 0x6]
- mov r0, r12
- strb r0, [r5, 0x7]
- mov r4, r8
- strb r4, [r5, 0x8]
- mov r0, r9
- strb r0, [r5, 0x9]
- mov r4, r10
- strb r4, [r5, 0xA]
- cmp r7, 0
- blt _081102E4
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r7, r0
- ble _081102EC
-_081102E4:
- strb r6, [r5, 0x2]
- b _081102EE
- .align 2, 0
-_081102E8: .4byte gUnknown_203ADE4
-_081102EC:
- strb r7, [r5, 0x2]
-_081102EE:
- movs r0, 0
- movs r1, 0
- bl sub_8110450
- ldr r0, _08110308 @ =gUnknown_203ADE4
- ldrb r0, [r0, 0x2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08110308: .4byte gUnknown_203ADE4
- thumb_func_end sub_8110290
-
- thumb_func_start sub_811030C
-sub_811030C: @ 811030C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- ldr r6, [sp, 0x40]
- ldr r7, [sp, 0x44]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r7, 24
- adds r4, r7, 0
- lsrs r4, 24
- mov r9, r4
- movs r7, 0x10
- mov r10, r7
- adds r4, r5, 0
- muls r4, r6
- lsls r4, 24
- lsrs r4, 24
- mov r7, r8
- str r7, [sp]
- mov r7, r10
- str r7, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- str r4, [sp, 0x10]
- mov r4, r9
- str r4, [sp, 0x14]
- bl sub_8110290
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811030C
-
- thumb_func_start sub_811037C
-sub_811037C: @ 811037C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, r1, 24
- lsrs r7, r0, 24
- ldr r5, _08110448 @ =gUnknown_203ADE4
- ldrb r0, [r5, 0x6]
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldrb r0, [r5, 0x6]
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldrb r0, [r5, 0x9]
- mov r10, r0
- mov r0, r8
- mov r1, r10
- bl __umodsi3
- ldrb r1, [r5, 0x7]
- adds r4, r1, 0
- muls r4, r0
- ldrb r1, [r5]
- adds r4, r1
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- mov r1, r10
- bl __udivsi3
- ldrb r1, [r5, 0x8]
- adds r3, r1, 0
- muls r3, r0
- ldrb r0, [r5, 0x1]
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r5, 0x5]
- mov r1, r9
- str r1, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x11
- adds r2, r4, 0
- bl FillWindowPixelRect
- ldrb r6, [r5, 0x9]
- adds r0, r7, 0
- adds r1, r6, 0
- bl __umodsi3
- ldrb r1, [r5, 0x7]
- adds r4, r1, 0
- muls r4, r0
- ldrb r0, [r5]
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl __udivsi3
- ldrb r1, [r5, 0x8]
- adds r3, r1, 0
- muls r3, r0
- ldrb r1, [r5, 0x1]
- adds r3, r1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- ldr r2, _0811044C @ =gFameCheckerText_ListMenuCursor
- str r3, [sp]
- movs r3, 0
- str r3, [sp, 0x4]
- str r3, [sp, 0x8]
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- 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
-_08110448: .4byte gUnknown_203ADE4
-_0811044C: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end sub_811037C
-
- thumb_func_start sub_8110450
-sub_8110450: @ 8110450
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r1, _0811048C @ =gUnknown_203ADE4
- ldrb r2, [r1, 0x2]
- mov r8, r2
- lsls r0, 24
- asrs r6, r0, 24
- adds r5, r1, 0
- cmp r6, 0
- beq _081104A6
- movs r7, 0x2
- ldrsb r7, [r5, r7]
- ldrb r4, [r5, 0x9]
- adds r0, r7, 0
- adds r1, r4, 0
- bl __modsi3
- adds r0, r6
- cmp r0, 0
- bge _08110490
- adds r0, r4, 0
- adds r0, 0xFF
- add r0, r8
- b _081104A4
- .align 2, 0
-_0811048C: .4byte gUnknown_203ADE4
-_08110490:
- cmp r0, r4
- blt _081104A0
- adds r0, r7, 0
- adds r1, r4, 0
- bl __divsi3
- muls r0, r4
- b _081104A4
-_081104A0:
- mov r1, r8
- adds r0, r6, r1
-_081104A4:
- strb r0, [r5, 0x2]
-_081104A6:
- mov r2, r9
- lsls r0, r2, 24
- asrs r6, r0, 24
- cmp r6, 0
- beq _081104EA
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- ldrb r4, [r5, 0x9]
- adds r1, r4, 0
- bl __divsi3
- adds r1, r0, r6
- cmp r1, 0
- bge _081104CE
- ldrb r0, [r5, 0xA]
- subs r0, 0x1
- muls r0, r4
- ldrb r1, [r5, 0x2]
- adds r0, r1
- b _081104E8
-_081104CE:
- ldrb r0, [r5, 0xA]
- cmp r1, r0
- blt _081104E0
- subs r0, 0x1
- adds r1, r4, 0
- muls r1, r0
- ldrb r0, [r5, 0x2]
- subs r0, r1
- b _081104E8
-_081104E0:
- adds r0, r4, 0
- muls r0, r6
- ldrb r2, [r5, 0x2]
- adds r0, r2
-_081104E8:
- strb r0, [r5, 0x2]
-_081104EA:
- movs r1, 0x2
- ldrsb r1, [r5, r1]
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bgt _08110500
- ldrb r1, [r5, 0x2]
- mov r0, r8
- bl sub_811037C
- b _08110504
-_08110500:
- mov r0, r8
- strb r0, [r5, 0x2]
-_08110504:
- ldrb r0, [r5, 0x2]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8110450
-
- thumb_func_start sub_8110514
-sub_8110514: @ 8110514
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r1, _0811058C @ =gUnknown_203ADE4
- ldrb r7, [r1, 0x2]
- lsls r0, 24
- asrs r4, r0, 24
- adds r5, r1, 0
- cmp r4, 0
- beq _08110548
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- ldrb r6, [r5, 0x9]
- adds r1, r6, 0
- bl __modsi3
- adds r0, r4
- cmp r0, 0
- blt _08110548
- cmp r0, r6
- bge _08110548
- adds r0, r4, r7
- strb r0, [r5, 0x2]
-_08110548:
- mov r1, r8
- lsls r0, r1, 24
- asrs r4, r0, 24
- cmp r4, 0
- beq _08110574
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- ldrb r6, [r5, 0x9]
- adds r1, r6, 0
- bl __divsi3
- adds r0, r4
- cmp r0, 0
- blt _08110574
- ldrb r1, [r5, 0xA]
- cmp r0, r1
- bge _08110574
- adds r0, r6, 0
- muls r0, r4
- ldrb r1, [r5, 0x2]
- adds r0, r1
- strb r0, [r5, 0x2]
-_08110574:
- movs r1, 0x2
- ldrsb r1, [r5, r1]
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bgt _08110590
- ldrb r1, [r5, 0x2]
- adds r0, r7, 0
- bl sub_811037C
- b _08110592
- .align 2, 0
-_0811058C: .4byte gUnknown_203ADE4
-_08110590:
- strb r7, [r5, 0x2]
-_08110592:
- ldrb r0, [r5, 0x2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8110514
-
- thumb_func_start sub_81105A0
-sub_81105A0: @ 81105A0
- push {r4,lr}
- ldr r4, _081105C0 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081105C8
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081105C4 @ =gUnknown_203ADE4
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- b _08110648
- .align 2, 0
-_081105C0: .4byte gMain
-_081105C4: .4byte gUnknown_203ADE4
-_081105C8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081105D6
- movs r0, 0x1
- negs r0, r0
- b _08110648
-_081105D6:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081105EC
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _08110640
-_081105EC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08110600
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- b _08110640
-_08110600:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08110614
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08110620
-_08110614:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0811063E
-_08110620:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08110636
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08110644
-_08110636:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0811063E:
- movs r1, 0
-_08110640:
- bl sub_8110450
-_08110644:
- movs r0, 0x2
- negs r0, r0
-_08110648:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81105A0
-
- thumb_func_start sub_8110650
-sub_8110650: @ 8110650
- push {r4-r6,lr}
- ldr r5, _08110670 @ =gUnknown_203ADE4
- ldrb r4, [r5, 0x2]
- ldr r6, _08110674 @ =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08110678
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- b _081106EE
- .align 2, 0
-_08110670: .4byte gUnknown_203ADE4
-_08110674: .4byte gMain
-_08110678:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08110686
- movs r0, 0x1
- negs r0, r0
- b _081106EE
-_08110686:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08110696
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _081106D8
-_08110696:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081106A4
- movs r0, 0
- movs r1, 0x1
- b _081106D8
-_081106A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081106B8
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081106BE
-_081106B8:
- movs r0, 0x1
- negs r0, r0
- b _081106D6
-_081106BE:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081106D4
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _081106EA
-_081106D4:
- movs r0, 0x1
-_081106D6:
- movs r1, 0
-_081106D8:
- bl sub_8110514
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _081106EA
- movs r0, 0x5
- bl PlaySE
-_081106EA:
- movs r0, 0x2
- negs r0, r0
-_081106EE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8110650
-
- thumb_func_start sub_81106F4
-sub_81106F4: @ 81106F4
- push {r4,r5,lr}
- ldr r4, _08110714 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811071C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08110718 @ =gUnknown_203ADE4
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- b _08110798
- .align 2, 0
-_08110714: .4byte gMain
-_08110718: .4byte gUnknown_203ADE4
-_0811071C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811072A
- movs r0, 0x1
- negs r0, r0
- b _08110798
-_0811072A:
- ldrh r0, [r4, 0x30]
- movs r5, 0xF0
- adds r1, r5, 0
- ands r1, r0
- cmp r1, 0x40
- bne _08110744
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _08110790
-_08110744:
- cmp r1, 0x80
- bne _08110754
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- b _08110790
-_08110754:
- cmp r1, 0x20
- beq _08110764
- bl sub_80BF66C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08110770
-_08110764:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0811078E
-_08110770:
- ldrh r1, [r4, 0x30]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x10
- beq _08110786
- bl sub_80BF66C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08110794
-_08110786:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0811078E:
- movs r1, 0
-_08110790:
- bl sub_8110450
-_08110794:
- movs r0, 0x2
- negs r0, r0
-_08110798:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81106F4
-
- thumb_func_start sub_81107A0
-sub_81107A0: @ 81107A0
- push {r4-r6,lr}
- ldr r6, _081107C0 @ =gUnknown_203ADE4
- ldrb r4, [r6, 0x2]
- ldr r5, _081107C4 @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081107C8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- ldrsb r0, [r6, r0]
- b _0811083A
- .align 2, 0
-_081107C0: .4byte gUnknown_203ADE4
-_081107C4: .4byte gMain
-_081107C8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081107D6
- movs r0, 0x1
- negs r0, r0
- b _0811083A
-_081107D6:
- ldrh r0, [r5, 0x30]
- movs r6, 0xF0
- adds r1, r6, 0
- ands r1, r0
- cmp r1, 0x40
- bne _081107EA
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _08110824
-_081107EA:
- cmp r1, 0x80
- bne _081107F4
- movs r0, 0
- movs r1, 0x1
- b _08110824
-_081107F4:
- cmp r1, 0x20
- beq _08110804
- bl sub_80BF66C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0811080A
-_08110804:
- movs r0, 0x1
- negs r0, r0
- b _08110822
-_0811080A:
- ldrh r1, [r5, 0x30]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x10
- beq _08110820
- bl sub_80BF66C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08110836
-_08110820:
- movs r0, 0x1
-_08110822:
- movs r1, 0
-_08110824:
- bl sub_8110514
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _08110836
- movs r0, 0x5
- bl PlaySE
-_08110836:
- movs r0, 0x2
- negs r0, r0
-_0811083A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81107A0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
deleted file mode 100644
index 792bed5cf..000000000
--- a/asm/menu_helpers.s
+++ /dev/null
@@ -1,628 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start DisplayMessageAndContinueTask
-DisplayMessageAndContinueTask: @ 80BF474
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- adds r6, r1, 0
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080BF500 @ =gUnknown_20399D0
- strb r6, [r0]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_810EDC4
- ldr r4, _080BF504 @ =gStringVar4
- ldr r0, [sp, 0x30]
- cmp r0, r4
- beq _080BF4B8
- adds r0, r4, 0
- ldr r1, [sp, 0x30]
- bl StringExpandPlaceholders
-_080BF4B8:
- ldr r2, _080BF508 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- 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]
- adds r0, r6, 0
- adds r1, r7, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl AddTextPrinterParametrized
- ldr r1, _080BF50C @ =gUnknown_20399CC
- ldr r0, [sp, 0x34]
- str r0, [r1]
- ldr r1, _080BF510 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF514 @ =Task_ContinueTaskAfterMessagePrints
- str r1, [r0]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF500: .4byte gUnknown_20399D0
-_080BF504: .4byte gStringVar4
-_080BF508: .4byte gTextFlags
-_080BF50C: .4byte gUnknown_20399CC
-_080BF510: .4byte gTasks
-_080BF514: .4byte Task_ContinueTaskAfterMessagePrints
- thumb_func_end DisplayMessageAndContinueTask
-
- thumb_func_start sub_80BF518
-sub_80BF518: @ 80BF518
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl RunTextPrinters
- adds r0, r4, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF518
-
- thumb_func_start Task_ContinueTaskAfterMessagePrints
-Task_ContinueTaskAfterMessagePrints: @ 80BF534
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BF558 @ =gUnknown_20399D0
- ldrb r0, [r0]
- bl sub_80BF518
- lsls r0, 16
- cmp r0, 0
- bne _080BF552
- ldr r0, _080BF55C @ =gUnknown_20399CC
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080BF552:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF558: .4byte gUnknown_20399D0
-_080BF55C: .4byte gUnknown_20399CC
- thumb_func_end Task_ContinueTaskAfterMessagePrints
-
- thumb_func_start sub_80BF560
-sub_80BF560: @ 80BF560
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080BF586
- cmp r1, 0
- bgt _080BF580
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080BF5A8
- b _080BF5C0
-_080BF580:
- cmp r1, 0x1
- beq _080BF5A8
- b _080BF5C0
-_080BF586:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080BF5A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF5A4 @ =gUnknown_20399C8
- ldr r1, [r1]
- ldr r1, [r1]
- b _080BF5BE
- .align 2, 0
-_080BF5A0: .4byte gTasks
-_080BF5A4: .4byte gUnknown_20399C8
-_080BF5A8:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080BF5C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF5CC @ =gUnknown_20399C8
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
-_080BF5BE:
- str r1, [r0]
-_080BF5C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF5C8: .4byte gTasks
-_080BF5CC: .4byte gUnknown_20399C8
- thumb_func_end sub_80BF560
-
- thumb_func_start CreateYesNoMenuWithCallbacks
-CreateYesNoMenuWithCallbacks: @ 80BF5D0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r6, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- bl CreateYesNoMenu
- ldr r0, _080BF624 @ =gUnknown_20399C8
- str r7, [r0]
- ldr r1, _080BF628 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF62C @ =sub_80BF560
- str r1, [r0]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF624: .4byte gUnknown_20399C8
-_080BF628: .4byte gTasks
-_080BF62C: .4byte sub_80BF560
- thumb_func_end CreateYesNoMenuWithCallbacks
-
- thumb_func_start GetLRKeysState
-GetLRKeysState: @ 80BF630
- push {lr}
- ldr r0, _080BF650 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080BF666
- ldr r0, _080BF654 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BF658
- movs r0, 0x1
- b _080BF668
- .align 2, 0
-_080BF650: .4byte gSaveBlock2Ptr
-_080BF654: .4byte gMain
-_080BF658:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BF666
- movs r0, 0x2
- b _080BF668
-_080BF666:
- movs r0, 0
-_080BF668:
- pop {r1}
- bx r1
- thumb_func_end GetLRKeysState
-
- thumb_func_start sub_80BF66C
-sub_80BF66C: @ 80BF66C
- push {lr}
- ldr r0, _080BF68C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080BF6A2
- ldr r0, _080BF690 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BF694
- movs r0, 0x1
- b _080BF6A4
- .align 2, 0
-_080BF68C: .4byte gSaveBlock2Ptr
-_080BF690: .4byte gMain
-_080BF694:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BF6A2
- movs r0, 0x2
- b _080BF6A4
-_080BF6A2:
- movs r0, 0
-_080BF6A4:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF66C
-
- thumb_func_start sub_80BF6A8
-sub_80BF6A8: @ 80BF6A8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080BF6D0
- ldr r0, _080BF6CC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _080BF6C8
- bl InUnionRoom
- cmp r0, 0x1
- bne _080BF6D0
-_080BF6C8:
- movs r0, 0
- b _080BF6D2
- .align 2, 0
-_080BF6CC: .4byte gSaveBlock1Ptr
-_080BF6D0:
- movs r0, 0x1
-_080BF6D2:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF6A8
-
- thumb_func_start itemid_80BF6D8_mail_related
-itemid_80BF6D8_mail_related: @ 80BF6D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _080BF6EE
- bl InUnionRoom
- cmp r0, 0x1
- bne _080BF700
-_080BF6EE:
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BF700
- movs r0, 0
- b _080BF702
-_080BF700:
- movs r0, 0x1
-_080BF702:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end itemid_80BF6D8_mail_related
-
- thumb_func_start sub_80BF708
-sub_80BF708: @ 80BF708
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _080BF71A
- ldr r0, _080BF720 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BF724
-_080BF71A:
- movs r0, 0x1
- b _080BF726
- .align 2, 0
-_080BF720: .4byte gReceivedRemoteLinkPlayers
-_080BF724:
- movs r0, 0
-_080BF726:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF708
-
- thumb_func_start sub_80BF72C
-sub_80BF72C: @ 80BF72C
- push {lr}
- bl sub_80BF708
- lsls r0, 24
- cmp r0, 0
- beq _080BF742
- bl sub_8058244
- lsls r0, 24
- lsrs r0, 24
- b _080BF744
-_080BF742:
- movs r0, 0
-_080BF744:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF72C
-
- thumb_func_start sub_80BF748
-sub_80BF748: @ 80BF748
- push {lr}
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BF75E
- bl sub_800B270
- cmp r0, 0x1
- bne _080BF762
-_080BF75E:
- movs r0, 0x1
- b _080BF764
-_080BF762:
- movs r0, 0
-_080BF764:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF748
-
- thumb_func_start sub_80BF768
-sub_80BF768: @ 80BF768
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- pop {r0}
- bx r0
- thumb_func_end sub_80BF768
-
- thumb_func_start sub_80BF77C
-sub_80BF77C: @ 80BF77C
- push {r4,lr}
- sub sp, 0xC
- bl sub_80BF7C8
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _080BF7BC @ =0x0100c000
- mov r0, sp
- bl CpuSet
- movs r4, 0
- str r4, [sp, 0x4]
- add r0, sp, 0x4
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, _080BF7C0 @ =0x05000100
- bl CpuSet
- add r0, sp, 0x8
- strh r4, [r0]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _080BF7C4 @ =0x01000200
- bl CpuSet
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF7BC: .4byte 0x0100c000
-_080BF7C0: .4byte 0x05000100
-_080BF7C4: .4byte 0x01000200
- thumb_func_end sub_80BF77C
-
- thumb_func_start sub_80BF7C8
-sub_80BF7C8: @ 80BF7C8
- push {lr}
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xE
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xC
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xA
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x8
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 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_80BF7C8
-
- thumb_func_start sub_80BF848
-sub_80BF848: @ 80BF848
- push {r4-r6,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r5, r1, 0
- ldrh r4, [r2]
- adds r6, r4, 0
- ldr r0, _080BF87C @ =gMain
- ldrh r0, [r0, 0x30]
- movs r3, 0xF0
- ands r3, r0
- cmp r3, 0x40
- bne _080BF880
- adds r0, r4, 0x1
- strh r0, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, r1
- ble _080BF872
- movs r0, 0x1
- strh r0, [r2]
-_080BF872:
- movs r0, 0
- ldrsh r1, [r2, r0]
-_080BF876:
- lsls r0, r4, 16
- b _080BF8CA
- .align 2, 0
-_080BF87C: .4byte gMain
-_080BF880:
- cmp r3, 0x80
- bne _080BF896
- subs r0, r4, 0x1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080BF890
- strh r1, [r2]
-_080BF890:
- movs r3, 0
- ldrsh r1, [r2, r3]
- b _080BF876
-_080BF896:
- cmp r3, 0x10
- bne _080BF8B0
- adds r0, r4, 0
- adds r0, 0xA
- strh r0, [r2]
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, r5
- ble _080BF8AA
- strh r5, [r2]
-_080BF8AA:
- movs r3, 0
- ldrsh r1, [r2, r3]
- b _080BF876
-_080BF8B0:
- cmp r3, 0x20
- bne _080BF8DA
- adds r0, r4, 0
- subs r0, 0xA
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080BF8C4
- movs r0, 0x1
- strh r0, [r2]
-_080BF8C4:
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
-_080BF8CA:
- asrs r0, 16
- cmp r1, r0
- beq _080BF8DA
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _080BF8DC
-_080BF8DA:
- movs r0, 0
-_080BF8DC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF848
-
- thumb_func_start sub_80BF8E4
-sub_80BF8E4: @ 80BF8E4
- push {lr}
- bl sub_80CBE00
- lsls r0, 24
- cmp r0, 0
- beq _080BF8F4
- movs r0, 0x5
- b _080BF8F6
-_080BF8F4:
- movs r0, 0x4
-_080BF8F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF8E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s
deleted file mode 100644
index 5ae7a46c4..000000000
--- a/asm/menu_indicators.s
+++ /dev/null
@@ -1,1185 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8133904
-sub_8133904: @ 8133904
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08133916
- cmp r0, 0x1
- beq _0813392A
- b _08133984
-_08133916:
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08133984
-_0813392A:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813393A
- cmp r0, 0x1
- beq _08133960
- ldrh r2, [r4, 0x38]
- b _0813397E
-_0813393A:
- movs r0, 0x34
- ldrsh r3, [r4, r0]
- ldr r1, _0813395C @ =gSineTable
- ldrh r2, [r4, 0x38]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r3
- cmp r0, 0
- bge _08133954
- adds r0, 0xFF
-_08133954:
- asrs r0, 8
- strh r0, [r4, 0x24]
- b _0813397E
- .align 2, 0
-_0813395C: .4byte gSineTable
-_08133960:
- movs r0, 0x34
- ldrsh r3, [r4, r0]
- ldr r1, _0813398C @ =gSineTable
- ldrh r2, [r4, 0x38]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r3
- cmp r0, 0
- bge _0813397A
- adds r0, 0xFF
-_0813397A:
- asrs r0, 8
- strh r0, [r4, 0x26]
-_0813397E:
- ldrh r0, [r4, 0x36]
- adds r0, r2, r0
- strh r0, [r4, 0x38]
-_08133984:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813398C: .4byte gSineTable
- thumb_func_end sub_8133904
-
- thumb_func_start AddScrollIndicatorArrowObject
-AddScrollIndicatorArrowObject: @ 8133990
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- adds r6, r0, 0
- ldr r5, [sp, 0x30]
- lsls r6, 24
- lsrs r6, 24
- mov r8, r6
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- mov r12, r5
- mov r4, sp
- ldr r0, _08133A14 @ =gUnknown_84632A4
- ldm r0!, {r5-r7}
- stm r4!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r4!, {r5-r7}
- mov r0, sp
- movs r4, 0
- strh r3, [r0]
- mov r3, r12
- strh r3, [r0, 0x2]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08133A18 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r1
- adds r5, r3, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r5]
- strh r4, [r3, 0x2E]
- ldr r1, _08133A1C @ =gUnknown_846325C
- mov r5, r8
- lsls r6, r5, 2
- adds r6, r1
- ldrb r2, [r6]
- lsls r1, r2, 28
- lsrs r1, 28
- strh r1, [r3, 0x30]
- lsrs r2, 4
- strh r2, [r3, 0x32]
- ldrb r1, [r6, 0x1]
- strh r1, [r3, 0x34]
- ldrh r1, [r6, 0x2]
- strh r1, [r3, 0x36]
- strh r4, [r3, 0x38]
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08133A14: .4byte gUnknown_84632A4
-_08133A18: .4byte gSprites
-_08133A1C: .4byte gUnknown_846325C
- thumb_func_end AddScrollIndicatorArrowObject
-
- thumb_func_start AddScrollIndicatorArrowPair
-AddScrollIndicatorArrowPair: @ 8133A20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- adds r6, r0, 0
- mov r9, r1
- ldr r0, _08133A6C @ =gUnknown_8463328
- str r0, [sp, 0x4]
- ldr r5, _08133A70 @ =0xffff0000
- ldr r0, [sp, 0x8]
- ands r0, r5
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- ldr r4, _08133A74 @ =0x0000ffff
- ands r0, r4
- orrs r0, r1
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- bl LoadCompressedObjectPic
- ldrh r2, [r6, 0xC]
- cmp r2, r4
- bne _08133A7C
- ldr r0, _08133A78 @ =gUnknown_8463308
- ldrb r1, [r6, 0xE]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _08133A8E
- .align 2, 0
-_08133A6C: .4byte gUnknown_8463328
-_08133A70: .4byte 0xffff0000
-_08133A74: .4byte 0x0000ffff
-_08133A78: .4byte gUnknown_8463308
-_08133A7C:
- ldr r0, _08133B2C @ =gUnknown_8463308
- str r0, [sp, 0xC]
- add r0, sp, 0xC
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_08133A8E:
- ldr r0, _08133B30 @ =sub_8133BA4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _08133B34 @ =gTasks+0x8
- adds r7, r0, r1
- movs r0, 0
- strb r0, [r7]
- mov r0, r9
- str r0, [r7, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r7, 0x8]
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0xA]
- ldrh r0, [r6, 0xA]
- strh r0, [r7, 0xE]
- ldrh r0, [r6, 0xC]
- strh r0, [r7, 0x10]
- ldrb r0, [r6]
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrh r3, [r6, 0xA]
- ldrh r4, [r6, 0xC]
- str r4, [sp]
- bl AddScrollIndicatorArrowObject
- strb r0, [r7, 0xC]
- ldrb r0, [r6, 0x3]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x5]
- ldrh r3, [r6, 0xA]
- ldrh r4, [r6, 0xC]
- str r4, [sp]
- bl AddScrollIndicatorArrowObject
- strb r0, [r7, 0xD]
- ldrh r1, [r6, 0xC]
- ldr r0, _08133B38 @ =0x0000ffff
- cmp r1, r0
- bne _08133B1C
- ldr r5, _08133B3C @ =gSprites
- ldrb r0, [r7, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r6, 0xE]
- lsls r3, 4
- ldrb r4, [r1, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r7, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r6, 0xE]
- lsls r1, 4
- ldrb r3, [r0, 0x5]
- ands r2, r3
- orrs r2, r1
- strb r2, [r0, 0x5]
-_08133B1C:
- mov r0, r8
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08133B2C: .4byte gUnknown_8463308
-_08133B30: .4byte sub_8133BA4
-_08133B34: .4byte gTasks+0x8
-_08133B38: .4byte 0x0000ffff
-_08133B3C: .4byte gSprites
- thumb_func_end AddScrollIndicatorArrowPair
-
- thumb_func_start AddScrollIndicatorArrowPairParametrized
-AddScrollIndicatorArrowPairParametrized: @ 8133B40
- push {r4,lr}
- adds r4, r1, 0
- subs r0, 0x2
- cmp r0, 0x1
- bhi _08133B64
- ldr r0, _08133B60 @ =gUnknown_203B130
- movs r1, 0x2
- strb r1, [r0]
- strb r4, [r0, 0x1]
- strb r2, [r0, 0x2]
- movs r1, 0x3
- strb r1, [r0, 0x3]
- strb r4, [r0, 0x4]
- strb r3, [r0, 0x5]
- b _08133B76
- .align 2, 0
-_08133B60: .4byte gUnknown_203B130
-_08133B64:
- ldr r0, _08133BA0 @ =gUnknown_203B130
- movs r1, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r4, [r0, 0x2]
- movs r1, 0x1
- strb r1, [r0, 0x3]
- strb r3, [r0, 0x4]
- strb r4, [r0, 0x5]
-_08133B76:
- adds r2, r0, 0
- movs r1, 0
- movs r0, 0
- strh r0, [r2, 0x6]
- ldr r0, [sp, 0x8]
- strh r0, [r2, 0x8]
- ldr r0, [sp, 0xC]
- strh r0, [r2, 0xA]
- ldr r0, [sp, 0x10]
- strh r0, [r2, 0xC]
- strb r1, [r2, 0xE]
- adds r0, r2, 0
- ldr r1, [sp, 0x14]
- bl AddScrollIndicatorArrowPair
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133BA0: .4byte gUnknown_203B130
- thumb_func_end AddScrollIndicatorArrowPairParametrized
-
- thumb_func_start sub_8133BA4
-sub_8133BA4: @ 8133BA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08133BD4 @ =gTasks+0x8
- adds r4, r1, r0
- ldr r0, [r4, 0x4]
- ldrh r5, [r0]
- ldrh r0, [r4, 0x8]
- cmp r5, r0
- bne _08133BDC
- ldr r3, _08133BD8 @ =gSprites
- ldrb r1, [r4, 0xC]
- 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
- b _08133BF2
- .align 2, 0
-_08133BD4: .4byte gTasks+0x8
-_08133BD8: .4byte gSprites
-_08133BDC:
- ldr r3, _08133C10 @ =gSprites
- ldrb r1, [r4, 0xC]
- 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
-_08133BF2:
- strb r1, [r0]
- ldrh r0, [r4, 0xA]
- cmp r5, r0
- bne _08133C14
- ldrb r1, [r4, 0xD]
- 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
- b _08133C28
- .align 2, 0
-_08133C10: .4byte gSprites
-_08133C14:
- ldrb r1, [r4, 0xD]
- 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
-_08133C28:
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8133BA4
-
- thumb_func_start RemoveScrollIndicatorArrowPair
-RemoveScrollIndicatorArrowPair: @ 8133C30
- 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, _08133C84 @ =gTasks+0x8
- adds r5, r0, r1
- ldrh r0, [r5, 0xE]
- ldr r4, _08133C88 @ =0x0000ffff
- cmp r0, r4
- beq _08133C4E
- bl FreeSpriteTilesByTag
-_08133C4E:
- ldrh r0, [r5, 0x10]
- cmp r0, r4
- beq _08133C58
- bl FreeSpritePaletteByTag
-_08133C58:
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08133C8C @ =gSprites
- adds r0, r4
- bl DestroySprite
- ldrb r1, [r5, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r6, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08133C84: .4byte gTasks+0x8
-_08133C88: .4byte 0x0000ffff
-_08133C8C: .4byte gSprites
- thumb_func_end RemoveScrollIndicatorArrowPair
-
- thumb_func_start ListMenuAddCursorObjectInternal
-ListMenuAddCursorObjectInternal: @ 8133C90
- push {lr}
- cmp r1, 0
- beq _08133C9A
- cmp r1, 0x1
- beq _08133CA0
-_08133C9A:
- bl ListMenuAddRedOutlineCursorObject
- b _08133CA4
-_08133CA0:
- bl ListMenuAddRedArrowCursorObject
-_08133CA4:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ListMenuAddCursorObjectInternal
-
- thumb_func_start ListMenuUpdateCursorObject
-ListMenuUpdateCursorObject: @ 8133CAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r3, 0
- beq _08133CC4
- cmp r3, 0x1
- beq _08133CCA
- b _08133CCE
-_08133CC4:
- bl ListMenuUpdateRedOutlineCursorObject
- b _08133CCE
-_08133CCA:
- bl ListMenuUpdateRedArrowCursorObject
-_08133CCE:
- pop {r0}
- bx r0
- thumb_func_end ListMenuUpdateCursorObject
-
- thumb_func_start ListMenuRemoveCursorObject
-ListMenuRemoveCursorObject: @ 8133CD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r1, 0
- beq _08133CE4
- cmp r1, 0x1
- beq _08133CEA
- b _08133CEE
-_08133CE4:
- bl ListMenuRemoveRedOutlineCursorObject
- b _08133CEE
-_08133CEA:
- bl ListMenuRemoveRedArrowCursorObject
-_08133CEE:
- pop {r0}
- bx r0
- thumb_func_end ListMenuRemoveCursorObject
-
- thumb_func_start nullsub_94
-nullsub_94: @ 8133CF4
- bx lr
- thumb_func_end nullsub_94
-
- thumb_func_start ListMenuGetRedOutlineCursorSpriteCount
-ListMenuGetRedOutlineCursorSpriteCount: @ 8133CF8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0x4
- cmp r0, 0x10
- bls _08133D18
- movs r2, 0x8
- subs r0, 0x8
- cmp r2, r0
- bge _08133D18
-_08133D10:
- adds r3, 0x2
- adds r2, 0x8
- cmp r2, r0
- blt _08133D10
-_08133D18:
- cmp r1, 0x10
- bls _08133D2C
- movs r2, 0x8
- subs r1, 0x8
- cmp r2, r1
- bge _08133D2C
-_08133D24:
- adds r3, 0x2
- adds r2, 0x8
- cmp r2, r1
- blt _08133D24
-_08133D2C:
- lsls r0, r3, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ListMenuGetRedOutlineCursorSpriteCount
-
- thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable
-ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 8133D34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r3, r2, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r0, _08133E18 @ =gUnknown_84632BC
- ldr r0, [r0]
- str r0, [r3]
- movs r1, 0x88
- strb r1, [r3]
- strb r1, [r3, 0x1]
- ldr r0, _08133E1C @ =gUnknown_84632C0
- ldr r0, [r0]
- str r0, [r3, 0x4]
- mov r2, r8
- adds r2, 0x80
- strb r2, [r3, 0x4]
- strb r1, [r3, 0x5]
- ldr r0, _08133E20 @ =gUnknown_84632D4
- ldr r0, [r0]
- str r0, [r3, 0x8]
- strb r1, [r3, 0x8]
- mov r4, r9
- adds r4, 0x80
- strb r4, [r3, 0x9]
- ldr r0, _08133E24 @ =gUnknown_84632D8
- ldr r0, [r0]
- str r0, [r3, 0xC]
- strb r2, [r3, 0xC]
- strb r4, [r3, 0xD]
- movs r0, 0x4
- mov r12, r0
- mov r2, r8
- cmp r2, 0x10
- bls _08133DC8
- movs r2, 0x8
- mov r5, r8
- subs r5, 0x8
- cmp r2, r5
- bge _08133DC8
- ldr r0, _08133E28 @ =gUnknown_84632C4
- ldr r0, [r0]
- str r0, [sp]
- ldr r0, _08133E2C @ =gUnknown_84632D0
- ldr r6, [r0]
- adds r1, r3, 0
- adds r1, 0x10
- movs r7, 0x88
- mov r10, r7
-_08133DA6:
- ldr r0, [sp]
- str r0, [r1]
- adds r0, r2, 0
- subs r0, 0x78
- strb r0, [r1]
- mov r7, r10
- strb r7, [r1, 0x1]
- adds r1, 0x4
- str r6, [r1]
- strb r0, [r1]
- strb r4, [r1, 0x1]
- adds r1, 0x4
- movs r0, 0x2
- add r12, r0
- adds r2, 0x8
- cmp r2, r5
- blt _08133DA6
-_08133DC8:
- mov r2, r9
- cmp r2, 0x10
- bls _08133E06
- movs r1, 0x8
- mov r4, r9
- subs r4, 0x8
- cmp r1, r4
- bge _08133E06
- ldr r0, _08133E30 @ =gUnknown_84632C8
- ldr r6, [r0]
- ldr r0, _08133E34 @ =gUnknown_84632CC
- ldr r5, [r0]
- mov r7, r12
- lsls r0, r7, 2
- adds r2, r0, r3
- movs r7, 0x88
- mov r3, r8
- adds r3, 0x80
-_08133DEC:
- str r6, [r2]
- strb r7, [r2]
- adds r0, r1, 0
- subs r0, 0x78
- strb r0, [r2, 0x1]
- adds r2, 0x4
- str r5, [r2]
- strb r3, [r2]
- strb r0, [r2, 0x1]
- adds r2, 0x4
- adds r1, 0x8
- cmp r1, r4
- blt _08133DEC
-_08133E06:
- 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
-_08133E18: .4byte gUnknown_84632BC
-_08133E1C: .4byte gUnknown_84632C0
-_08133E20: .4byte gUnknown_84632D4
-_08133E24: .4byte gUnknown_84632D8
-_08133E28: .4byte gUnknown_84632C4
-_08133E2C: .4byte gUnknown_84632D0
-_08133E30: .4byte gUnknown_84632C8
-_08133E34: .4byte gUnknown_84632CC
- thumb_func_end ListMenuSetUpRedOutlineCursorSpriteOamTable
-
- thumb_func_start ListMenuAddRedOutlineCursorObject
-ListMenuAddRedOutlineCursorObject: @ 8133E38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- adds r6, r0, 0
- ldr r0, _08133E84 @ =gUnknown_8463398
- str r0, [sp, 0x18]
- ldr r5, _08133E88 @ =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r5
- movs r2, 0x80
- lsls r2, 1
- orrs r1, r2
- ldrh r2, [r6, 0x6]
- lsls r2, 16
- ldr r3, _08133E8C @ =0x0000ffff
- ands r1, r3
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
- ldrh r2, [r6, 0x8]
- ldr r7, _08133E8C @ =0x0000ffff
- cmp r2, r7
- bne _08133E94
- ldr r0, _08133E90 @ =gUnknown_8463308
- ldrb r1, [r6, 0xA]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _08133EA6
- .align 2, 0
-_08133E84: .4byte gUnknown_8463398
-_08133E88: .4byte 0xffff0000
-_08133E8C: .4byte 0x0000ffff
-_08133E90: .4byte gUnknown_8463308
-_08133E94:
- ldr r0, _08133F8C @ =gUnknown_8463308
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_08133EA6:
- ldr r0, _08133F90 @ =nullsub_94
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08133F94 @ =gTasks+0x8
- adds r5, r0, r1
- ldrh r0, [r6, 0x6]
- movs r3, 0
- mov r8, r3
- strh r0, [r5, 0xE]
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x10]
- ldrh r0, [r6, 0x2]
- ldrh r1, [r6, 0x4]
- bl ListMenuGetRedOutlineCursorSpriteCount
- strb r0, [r5]
- ldrb r0, [r5]
- lsls r0, 2
- bl Alloc
- adds r2, r0, 0
- str r2, [r5, 0x8]
- str r2, [r5, 0x4]
- ldrh r0, [r6, 0x2]
- ldrh r1, [r6, 0x4]
- bl ListMenuSetUpRedOutlineCursorSpriteOamTable
- mov r1, sp
- ldr r0, _08133F98 @ =gDummySpriteTemplate
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- mov r1, sp
- ldrh r0, [r6, 0x6]
- strh r0, [r1]
- ldrh r0, [r6, 0x8]
- strh r0, [r1, 0x2]
- ldrb r1, [r6]
- adds r1, 0x78
- ldrb r2, [r6, 0x1]
- adds r2, 0x78
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0xC]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r7, _08133F9C @ =gSprites
- adds r0, r7
- adds r1, r5, 0
- bl SetSubspriteTables
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x43
- mov r1, r8
- strb r1, [r0]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x42
- ldrb r2, [r0]
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r1, [r6, 0x8]
- ldr r0, _08133FA0 @ =0x0000ffff
- cmp r1, r0
- bne _08133F7E
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r6, 0xA]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08133F7E:
- adds r0, r4, 0
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08133F8C: .4byte gUnknown_8463308
-_08133F90: .4byte nullsub_94
-_08133F94: .4byte gTasks+0x8
-_08133F98: .4byte gDummySpriteTemplate
-_08133F9C: .4byte gSprites
-_08133FA0: .4byte 0x0000ffff
- thumb_func_end ListMenuAddRedOutlineCursorObject
-
- thumb_func_start ListMenuUpdateRedOutlineCursorObject
-ListMenuUpdateRedOutlineCursorObject: @ 8133FA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, _08133FE0 @ =gTasks+0x8
- adds r3, r0
- ldr r5, _08133FE4 @ =gSprites
- ldrb r4, [r3, 0xC]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- adds r1, 0x78
- strh r1, [r0, 0x20]
- ldrb r1, [r3, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r2, 0x78
- strh r2, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08133FE0: .4byte gTasks+0x8
-_08133FE4: .4byte gSprites
- thumb_func_end ListMenuUpdateRedOutlineCursorObject
-
- thumb_func_start ListMenuRemoveRedOutlineCursorObject
-ListMenuRemoveRedOutlineCursorObject: @ 8133FE8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08134034 @ =gTasks+0x8
- adds r4, r0, r1
- ldr r0, [r4, 0x8]
- bl Free
- ldrh r0, [r4, 0xE]
- ldr r6, _08134038 @ =0x0000ffff
- cmp r0, r6
- beq _0813400C
- bl FreeSpriteTilesByTag
-_0813400C:
- ldrh r0, [r4, 0x10]
- cmp r0, r6
- beq _08134016
- bl FreeSpritePaletteByTag
-_08134016:
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813403C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08134034: .4byte gTasks+0x8
-_08134038: .4byte 0x0000ffff
-_0813403C: .4byte gSprites
- thumb_func_end ListMenuRemoveRedOutlineCursorObject
-
- thumb_func_start ObjectCB_RedArrowCursor
-ObjectCB_RedArrowCursor: @ 8134040
- push {lr}
- adds r2, r0, 0
- ldr r1, _08134068 @ =gSineTable
- ldrh r3, [r2, 0x2E]
- lsls r0, r3, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _08134058
- adds r0, 0x3F
-_08134058:
- asrs r0, 6
- strh r0, [r2, 0x24]
- adds r0, r3, 0
- adds r0, 0x8
- strh r0, [r2, 0x2E]
- pop {r0}
- bx r0
- .align 2, 0
-_08134068: .4byte gSineTable
- thumb_func_end ObjectCB_RedArrowCursor
-
- thumb_func_start nullsub_95
-nullsub_95: @ 813406C
- bx lr
- thumb_func_end nullsub_95
-
- thumb_func_start ListMenuAddRedArrowCursorObject
-ListMenuAddRedArrowCursorObject: @ 8134070
- push {r4-r7,lr}
- sub sp, 0x28
- adds r5, r0, 0
- ldr r0, _081340B4 @ =gUnknown_84633D8
- str r0, [sp, 0x18]
- ldr r6, _081340B8 @ =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r6
- movs r2, 0x80
- orrs r1, r2
- ldrh r2, [r5, 0x6]
- lsls r2, 16
- ldr r4, _081340BC @ =0x0000ffff
- ands r1, r4
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
- ldrh r2, [r5, 0x8]
- cmp r2, r4
- bne _081340C4
- ldr r0, _081340C0 @ =gUnknown_8463308
- ldrb r1, [r5, 0xA]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _081340D6
- .align 2, 0
-_081340B4: .4byte gUnknown_84633D8
-_081340B8: .4byte 0xffff0000
-_081340BC: .4byte 0x0000ffff
-_081340C0: .4byte gUnknown_8463308
-_081340C4:
- ldr r0, _08134160 @ =gUnknown_8463308
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r6
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_081340D6:
- ldr r0, _08134164 @ =nullsub_95
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08134168 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x4]
- mov r1, sp
- ldr r0, _0813416C @ =gUnknown_84632F0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- mov r1, sp
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
- ldrh r0, [r5, 0x8]
- strh r0, [r1, 0x2]
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- ldr r3, _08134170 @ =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x8
- strh r2, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x26]
- ldrh r1, [r5, 0x8]
- ldr r0, _08134174 @ =0x0000ffff
- cmp r1, r0
- bne _08134156
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0xA]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08134156:
- adds r0, r6, 0
- add sp, 0x28
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08134160: .4byte gUnknown_8463308
-_08134164: .4byte nullsub_95
-_08134168: .4byte gTasks+0x8
-_0813416C: .4byte gUnknown_84632F0
-_08134170: .4byte gSprites
-_08134174: .4byte 0x0000ffff
- thumb_func_end ListMenuAddRedArrowCursorObject
-
- thumb_func_start ListMenuUpdateRedArrowCursorObject
-ListMenuUpdateRedArrowCursorObject: @ 8134178
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, _081341A8 @ =gTasks+0x8
- adds r3, r0
- ldr r5, _081341AC @ =gSprites
- ldrb r4, [r3]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- strh r1, [r0, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081341A8: .4byte gTasks+0x8
-_081341AC: .4byte gSprites
- thumb_func_end ListMenuUpdateRedArrowCursorObject
-
- thumb_func_start ListMenuRemoveRedArrowCursorObject
-ListMenuRemoveRedArrowCursorObject: @ 81341B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081341F4 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x2]
- ldr r6, _081341F8 @ =0x0000ffff
- cmp r0, r6
- beq _081341CE
- bl FreeSpriteTilesByTag
-_081341CE:
- ldrh r0, [r4, 0x4]
- cmp r0, r6
- beq _081341D8
- bl FreeSpritePaletteByTag
-_081341D8:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081341FC @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081341F4: .4byte gTasks+0x8
-_081341F8: .4byte 0x0000ffff
-_081341FC: .4byte gSprites
- thumb_func_end ListMenuRemoveRedArrowCursorObject
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/multiboot.s b/asm/multiboot.s
deleted file mode 100644
index 615995301..000000000
--- a/asm/multiboot.s
+++ /dev/null
@@ -1,924 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start MultiBootInit
-MultiBootInit: @ 800BC20
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2, 0x1E]
- strb r1, [r2, 0x18]
- strb r1, [r2, 0x1D]
- adds r3, r2, 0
- adds r3, 0x4A
- movs r0, 0xF
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x48
- strb r1, [r0]
- strh r1, [r2, 0x16]
- ldr r0, _0800BC4C @ =0x04000134
- strh r1, [r0]
- ldr r2, _0800BC50 @ =0x04000128
- ldr r3, _0800BC54 @ =0x00002003
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _0800BC58 @ =0x0400012a
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0800BC4C: .4byte 0x04000134
-_0800BC50: .4byte 0x04000128
-_0800BC54: .4byte 0x00002003
-_0800BC58: .4byte 0x0400012a
- thumb_func_end MultiBootInit
-
- thumb_func_start MultiBootMain
-MultiBootMain: @ 800BC5C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- bl MultiBootCheckComplete
- cmp r0, 0
- beq _0800BC72
- b _0800C03A
-_0800BC72:
- adds r0, r7, 0
- adds r0, 0x4A
- ldrb r1, [r0]
- mov r10, r0
- cmp r1, 0xF
- bls _0800BC86
- subs r0, r1, 0x1
- mov r1, r10
- strb r0, [r1]
- b _0800C03A
-_0800BC86:
- adds r1, r7, 0
- adds r1, 0x48
- ldrb r0, [r1]
- cmp r0, 0
- beq _0800BCB0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0800BCAC @ =0x04000128
- ldrh r0, [r0]
- movs r5, 0xFC
- ands r5, r0
- cmp r5, 0x8
- beq _0800BCB0
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x8
- eors r0, r5
- b _0800C03C
- .align 2, 0
-_0800BCAC: .4byte 0x04000128
-_0800BCB0:
- ldrb r0, [r7, 0x18]
- cmp r0, 0xDF
- bls _0800BD02
- adds r0, r7, 0
- bl MultiBootHandShake
- adds r5, r0, 0
- cmp r5, 0
- beq _0800BCC4
- b _0800C03C
-_0800BCC4:
- adds r0, r7, 0
- adds r0, 0x4B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800BCE0
- ldrb r0, [r7, 0x18]
- cmp r0, 0xE1
- bls _0800BCE0
- adds r0, r7, 0
- bl MultiBootCheckComplete
- cmp r0, 0
- bne _0800BCE0
- b _0800C02A
-_0800BCE0:
- adds r0, r7, 0
- bl MultiBootCheckComplete
- cmp r0, 0
- beq _0800BCEC
- b _0800C03A
-_0800BCEC:
- ldrh r0, [r7, 0x16]
- cmp r0, 0
- bne _0800BCFC
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x71
- b _0800C03C
-_0800BCFC:
- subs r0, 0x1
- strh r0, [r7, 0x16]
- b _0800C03A
-_0800BD02:
- ldrb r0, [r7, 0x18]
- cmp r0, 0x2
- bne _0800BD0A
- b _0800BE40
-_0800BD0A:
- cmp r0, 0x2
- bgt _0800BD18
- cmp r0, 0
- beq _0800BD26
- cmp r0, 0x1
- beq _0800BDE2
- b _0800BF78
-_0800BD18:
- cmp r0, 0xD0
- bne _0800BD1E
- b _0800BE8C
-_0800BD1E:
- cmp r0, 0xD1
- bne _0800BD24
- b _0800BF26
-_0800BD24:
- b _0800BF78
-_0800BD26:
- movs r3, 0xE
- movs r5, 0x3
- ldr r0, _0800BD6C @ =0x04000120
- ldrh r0, [r0, 0x6]
- adds r1, r0, 0
- ldr r0, _0800BD70 @ =0x0000ffff
- ldrb r2, [r7, 0x1E]
- adds r6, r2, 0
- cmp r1, r0
- bne _0800BD4E
- adds r4, r1, 0
- ldr r1, _0800BD74 @ =0x04000126
-_0800BD3E:
- asrs r3, 1
- subs r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- beq _0800BD4E
- ldrh r0, [r1]
- cmp r0, r4
- beq _0800BD3E
-_0800BD4E:
- movs r0, 0xE
- ands r3, r0
- strb r3, [r7, 0x1D]
- movs r5, 0x3
- ldr r0, _0800BD6C @ =0x04000120
- ldrh r0, [r0, 0x6]
- adds r4, r0, 0
- asrs r0, r2, 3
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800BD7C
- ldr r0, _0800BD78 @ =0x00007208
- b _0800BDA2
- .align 2, 0
-_0800BD6C: .4byte 0x04000120
-_0800BD70: .4byte 0x0000ffff
-_0800BD74: .4byte 0x04000126
-_0800BD78: .4byte 0x00007208
-_0800BD7C:
- subs r5, 0x1
- cmp r5, 0
- beq _0800BDA8
- lsls r0, r5, 1
- ldr r1, _0800BDD0 @ =0x04000120
- adds r0, r1
- ldrh r0, [r0]
- adds r4, r0, 0
- adds r0, r2, 0
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800BD7C
- adds r0, r1, 0
- lsls r0, r5
- movs r1, 0xE4
- lsls r1, 7
- orrs r0, r1
-_0800BDA2:
- cmp r4, r0
- beq _0800BD7C
- movs r3, 0
-_0800BDA8:
- adds r0, r3, 0
- ands r0, r6
- strb r0, [r7, 0x1E]
- cmp r3, 0
- bne _0800BDB8
- movs r0, 0xF
- mov r2, r10
- strb r0, [r2]
-_0800BDB8:
- mov r1, r10
- ldrb r0, [r1]
- cmp r0, 0
- bne _0800BDD4
- ldrb r0, [r7, 0x1D]
- ldrb r2, [r7, 0x1E]
- cmp r0, r2
- beq _0800BDDA
- adds r0, r7, 0
- bl MultiBootStartProbe
- b _0800BDE2
- .align 2, 0
-_0800BDD0: .4byte 0x04000120
-_0800BDD4:
- subs r0, 0x1
- mov r1, r10
- strb r0, [r1]
-_0800BDDA:
- ldrb r1, [r7, 0x1E]
- movs r2, 0xC4
- lsls r2, 7
- b _0800BEE2
-_0800BDE2:
- adds r1, r7, 0
- adds r1, 0x49
- movs r0, 0
- strb r0, [r1]
- movs r5, 0x3
- mov r12, r1
- ldr r3, _0800BE38 @ =gUnknown_3000E6C
-_0800BDF0:
- lsls r0, r5, 1
- ldr r2, _0800BE3C @ =0x04000120
- adds r0, r2
- ldrh r0, [r0]
- adds r4, r0, 0
- asrs r0, r4, 8
- subs r2, r5, 0x1
- cmp r0, 0x72
- bne _0800BE1A
- lsls r0, r2, 1
- adds r0, r3
- strh r4, [r0]
- movs r0, 0xFF
- ands r4, r0
- movs r0, 0x1
- lsls r0, r5
- cmp r4, r0
- bne _0800BE1A
- ldrb r0, [r1]
- orrs r4, r0
- strb r4, [r1]
-_0800BE1A:
- adds r5, r2, 0
- cmp r5, 0
- bne _0800BDF0
- ldrb r0, [r7, 0x1D]
- mov r1, r12
- ldrb r1, [r1]
- cmp r0, r1
- bne _0800BDDA
- movs r0, 0x2
- strb r0, [r7, 0x18]
- mov r2, r12
- ldrb r1, [r2]
- movs r2, 0xC2
- lsls r2, 7
- b _0800BEE2
- .align 2, 0
-_0800BE38: .4byte gUnknown_3000E6C
-_0800BE3C: .4byte 0x04000120
-_0800BE40:
- movs r5, 0x3
- movs r0, 0x49
- adds r0, r7
- mov r12, r0
- mov r4, r12
- movs r6, 0x1
- ldr r1, _0800BE84 @ =gUnknown_3000E6C
- mov r9, r1
- ldr r2, _0800BE88 @ =0x04000120
- mov r8, r2
-_0800BE54:
- ldrb r3, [r4]
- adds r0, r3, 0
- asrs r0, r5
- ands r0, r6
- subs r2, r5, 0x1
- cmp r0, 0
- beq _0800BE7A
- lsls r0, r5, 1
- add r0, r8
- ldrh r1, [r0]
- lsls r0, r2, 1
- add r0, r9
- ldrh r0, [r0]
- cmp r1, r0
- beq _0800BE7A
- adds r0, r6, 0
- lsls r0, r5
- eors r3, r0
- strb r3, [r4]
-_0800BE7A:
- adds r5, r2, 0
- cmp r5, 0
- bne _0800BE54
- b _0800BFE0
- .align 2, 0
-_0800BE84: .4byte gUnknown_3000E6C
-_0800BE88: .4byte 0x04000120
-_0800BE8C:
- movs r3, 0x1
- movs r5, 0x3
- movs r0, 0x49
- adds r0, r7
- mov r12, r0
- adds r6, r7, 0
- adds r6, 0x19
- ldr r1, _0800BEF0 @ =gUnknown_3000E6C
- mov r8, r1
-_0800BE9E:
- lsls r0, r5, 1
- ldr r2, _0800BEF4 @ =0x04000120
- adds r0, r2
- ldrh r0, [r0]
- adds r4, r0, 0
- subs r2, r5, 0x1
- adds r0, r6, r2
- strb r4, [r0]
- mov r0, r12
- ldrb r1, [r0]
- asrs r1, r5
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0800BED2
- asrs r0, r4, 8
- subs r0, 0x72
- cmp r0, 0x1
- bls _0800BEC6
- b _0800C030
-_0800BEC6:
- lsls r0, r2, 1
- add r0, r8
- ldrh r0, [r0]
- cmp r4, r0
- bne _0800BED2
- movs r3, 0
-_0800BED2:
- adds r5, r2, 0
- cmp r5, 0
- bne _0800BE9E
- cmp r3, 0
- bne _0800BEF8
- ldrb r1, [r7, 0x1C]
- movs r2, 0xC6
- lsls r2, 7
-_0800BEE2:
- adds r0, r2, 0
- orrs r1, r0
- adds r0, r7, 0
- bl MultiBootSend
- b _0800C03C
- .align 2, 0
-_0800BEF0: .4byte gUnknown_3000E6C
-_0800BEF4: .4byte 0x04000120
-_0800BEF8:
- movs r0, 0xD1
- strb r0, [r7, 0x18]
- movs r3, 0x11
- movs r5, 0x3
- adds r1, r6, 0x2
-_0800BF02:
- ldrb r0, [r1]
- adds r3, r0
- subs r1, 0x1
- subs r5, 0x1
- cmp r5, 0
- bne _0800BF02
- strb r3, [r7, 0x14]
- movs r0, 0xFF
- ands r3, r0
- movs r1, 0xC8
- lsls r1, 7
- adds r0, r1, 0
- orrs r3, r0
- adds r0, r7, 0
- adds r1, r3, 0
- bl MultiBootSend
- b _0800C03C
-_0800BF26:
- movs r5, 0x3
- movs r2, 0x49
- ldrb r1, [r2, r7]
- ldr r2, _0800BF64 @ =0x04000126
- movs r3, 0x1
-_0800BF30:
- ldrh r0, [r2]
- adds r4, r0, 0
- adds r0, r1, 0
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _0800BF44
- asrs r0, r4, 8
- cmp r0, 0x73
- bne _0800C030
-_0800BF44:
- subs r2, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _0800BF30
- adds r0, r7, 0
- bl MultiBoot
- adds r5, r0, 0
- cmp r5, 0
- bne _0800BF68
- movs r0, 0xE0
- strb r0, [r7, 0x18]
- adds r0, 0xB0
- strh r0, [r7, 0x16]
- b _0800C03A
- .align 2, 0
-_0800BF64: .4byte 0x04000126
-_0800BF68:
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x1E
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x70
- b _0800C03C
-_0800BF78:
- movs r5, 0x3
- movs r2, 0x49
- adds r2, r7
- mov r12, r2
- mov r8, r12
- movs r0, 0x1
- mov r9, r0
-_0800BF86:
- mov r1, r8
- ldrb r6, [r1]
- adds r0, r6, 0
- asrs r0, r5
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _0800BFC0
- lsls r0, r5, 1
- ldr r1, _0800BFDC @ =0x04000120
- adds r0, r1
- ldrh r0, [r0]
- adds r4, r0, 0
- asrs r2, r4, 8
- ldrb r0, [r7, 0x18]
- lsrs r0, 1
- movs r1, 0x62
- subs r1, r0
- mov r3, r9
- lsls r3, r5
- cmp r2, r1
- bne _0800BFBA
- movs r0, 0xFF
- ands r4, r0
- cmp r4, r3
- beq _0800BFC0
-_0800BFBA:
- eors r6, r3
- mov r2, r8
- strb r6, [r2]
-_0800BFC0:
- subs r5, 0x1
- cmp r5, 0
- bne _0800BF86
- ldrb r0, [r7, 0x18]
- cmp r0, 0xC4
- bne _0800BFE0
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0xE
- ands r0, r1
- strb r0, [r7, 0x1E]
- strb r5, [r7, 0x18]
- b _0800BDDA
- .align 2, 0
-_0800BFDC: .4byte 0x04000120
-_0800BFE0:
- mov r1, r12
- ldrb r0, [r1]
- cmp r0, 0
- bne _0800BFF2
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x50
- b _0800C03C
-_0800BFF2:
- ldrb r0, [r7, 0x18]
- adds r0, 0x2
- strb r0, [r7, 0x18]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC4
- bne _0800C002
- b _0800BDDA
-_0800C002:
- ldrb r0, [r7, 0x18]
- ldr r1, [r7, 0x28]
- adds r0, r1
- subs r1, r0, 0x3
- ldrb r2, [r1]
- lsls r2, 8
- subs r0, 0x4
- ldrb r1, [r0]
- orrs r1, r2
- adds r0, r7, 0
- bl MultiBootSend
- adds r5, r0, 0
- cmp r5, 0
- bne _0800C03C
- adds r0, r7, 0
- adds r0, 0x4B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800C03A
-_0800C02A:
- bl MultiBootWaitSendDone
- b _0800BC86
-_0800C030:
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x60
- b _0800C03C
-_0800C03A:
- movs r0, 0
-_0800C03C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MultiBootMain
-
- thumb_func_start MultiBootSend
-MultiBootSend: @ 800C04C
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _0800C078 @ =0x04000128
- ldrh r0, [r3]
- movs r4, 0x8C
- ands r4, r0
- cmp r4, 0x8
- bne _0800C084
- ldr r0, _0800C07C @ =0x0400012a
- strh r1, [r0]
- ldr r1, _0800C080 @ =0x00002083
- adds r0, r1, 0
- strh r0, [r3]
- adds r1, r2, 0
- adds r1, 0x48
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- b _0800C090
- .align 2, 0
-_0800C078: .4byte 0x04000128
-_0800C07C: .4byte 0x0400012a
-_0800C080: .4byte 0x00002083
-_0800C084:
- adds r0, r2, 0
- bl MultiBootInit
- movs r0, 0x8
- eors r4, r0
- adds r0, r4, 0
-_0800C090:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MultiBootSend
-
- thumb_func_start MultiBootStartProbe
-MultiBootStartProbe: @ 800C098
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- beq _0800C0AA
- adds r0, r1, 0
- bl MultiBootInit
- b _0800C0B6
-_0800C0AA:
- adds r2, r1, 0
- adds r2, 0x4A
- strb r0, [r2]
- strb r0, [r1, 0x1E]
- movs r0, 0x1
- strb r0, [r1, 0x18]
-_0800C0B6:
- pop {r0}
- bx r0
- thumb_func_end MultiBootStartProbe
-
- thumb_func_start MultiBootStartMaster
-MultiBootStartMaster: @ 800C0BC
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r0, [sp, 0x14]
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r0, 24
- lsrs r7, r0, 24
- movs r3, 0
- ldrb r0, [r4, 0x18]
- cmp r0, 0
- bne _0800C0F8
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _0800C0F8
- adds r0, r4, 0
- adds r0, 0x4A
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800C0F8
- str r6, [r4, 0x20]
- adds r2, 0xF
- movs r0, 0x10
- negs r0, r0
- ands r2, r0
- subs r0, 0xF0
- adds r1, r2, r0
- ldr r0, _0800C100 @ =0x0003ff00
- cmp r1, r0
- bls _0800C104
-_0800C0F8:
- adds r0, r4, 0
- bl MultiBootInit
- b _0800C178
- .align 2, 0
-_0800C100: .4byte 0x0003ff00
-_0800C104:
- adds r0, r6, r2
- str r0, [r4, 0x24]
- lsls r1, r7, 24
- movs r2, 0x80
- lsls r2, 19
- adds r0, r1, r2
- asrs r0, 24
- adds r2, r1, 0
- cmp r0, 0x8
- bhi _0800C164
- lsls r0, 2
- ldr r1, _0800C124 @ =_0800C128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800C124: .4byte _0800C128
- .align 2, 0
-_0800C128:
- .4byte _0800C14C
- .4byte _0800C14C
- .4byte _0800C14C
- .4byte _0800C14C
- .4byte _0800C156
- .4byte _0800C15C
- .4byte _0800C15C
- .4byte _0800C15C
- .4byte _0800C15C
-_0800C14C:
- lsls r3, r5, 3
- asrs r1, r2, 24
- movs r0, 0x3
- subs r0, r1
- b _0800C162
-_0800C156:
- movs r0, 0x38
- adds r3, r5, 0
- b _0800C162
-_0800C15C:
- lsls r3, r5, 3
- asrs r0, r2, 24
- subs r0, 0x1
-_0800C162:
- orrs r3, r0
-_0800C164:
- movs r0, 0x3F
- ands r3, r0
- lsls r0, r3, 1
- movs r2, 0x7F
- negs r2, r2
- adds r1, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x1C]
- movs r0, 0xD0
- strb r0, [r4, 0x18]
-_0800C178:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end MultiBootStartMaster
-
- thumb_func_start MultiBootCheckComplete
-MultiBootCheckComplete: @ 800C180
- push {lr}
- ldrb r0, [r0, 0x18]
- cmp r0, 0xE9
- beq _0800C18C
- movs r0, 0
- b _0800C18E
-_0800C18C:
- movs r0, 0x1
-_0800C18E:
- pop {r1}
- bx r1
- thumb_func_end MultiBootCheckComplete
-
- thumb_func_start MultiBootHandShake
-MultiBootHandShake: @ 800C194
- push {r4-r6,lr}
- adds r3, r0, 0
- ldrb r0, [r3, 0x18]
- cmp r0, 0xE0
- beq _0800C1B0
- cmp r0, 0xE0
- blt _0800C1C0
- cmp r0, 0xE8
- bgt _0800C1C0
- cmp r0, 0xE7
- blt _0800C1C0
- movs r4, 0x3
- ldrb r5, [r3, 0x1E]
- b _0800C220
-_0800C1B0:
- movs r1, 0
- movs r0, 0xE1
- strb r0, [r3, 0x18]
- str r1, [r3, 0x4]
- movs r0, 0x80
- lsls r0, 13
- str r0, [r3]
- b _0800C212
-_0800C1C0:
- movs r4, 0x3
- ldrb r5, [r3, 0x1E]
- movs r6, 0x1
- ldr r1, _0800C21C @ =0x04000126
-_0800C1C8:
- ldrh r0, [r1]
- adds r2, r0, 0
- adds r0, r5, 0
- asrs r0, r4
- ands r0, r6
- cmp r0, 0
- beq _0800C1DC
- ldr r0, [r3, 0x4]
- cmp r2, r0
- bne _0800C1B0
-_0800C1DC:
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bne _0800C1C8
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- strb r0, [r3, 0x18]
- ldr r1, [r3]
- ldrh r0, [r3]
- str r0, [r3, 0x4]
- cmp r1, 0
- bne _0800C20A
- ldr r0, [r3, 0x28]
- adds r1, r0, 0
- adds r1, 0xAC
- ldrb r1, [r1]
- adds r0, 0xAD
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- str r1, [r3, 0x4]
- lsls r1, 5
- str r1, [r3]
-_0800C20A:
- ldr r0, [r3]
- lsrs r0, 5
- str r0, [r3]
-_0800C210:
- ldrh r1, [r3]
-_0800C212:
- adds r0, r3, 0
- bl MultiBootSend
- b _0800C278
- .align 2, 0
-_0800C21C: .4byte 0x04000126
-_0800C220:
- lsls r0, r4, 1
- ldr r1, _0800C268 @ =0x04000120
- adds r0, r1
- ldrh r0, [r0]
- adds r2, r0, 0
- adds r0, r5, 0
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800C23C
- ldr r0, [r3, 0x4]
- cmp r2, r0
- bne _0800C26C
-_0800C23C:
- subs r4, 0x1
- cmp r4, 0
- bne _0800C220
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- strb r0, [r3, 0x18]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE9
- beq _0800C276
- ldr r0, [r3, 0x28]
- adds r1, r0, 0
- adds r1, 0xAE
- ldrb r1, [r1]
- adds r0, 0xAF
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- str r1, [r3]
- str r1, [r3, 0x4]
- b _0800C210
- .align 2, 0
-_0800C268: .4byte 0x04000120
-_0800C26C:
- adds r0, r3, 0
- bl MultiBootInit
- movs r0, 0x71
- b _0800C278
-_0800C276:
- movs r0, 0
-_0800C278:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end MultiBootHandShake
-
- thumb_func_start MultiBootWaitCycles
-MultiBootWaitCycles: @ 800C280
- mov r2, pc
- lsrs r2, 24
- movs r1, 0xC
- cmp r2, 0x2
- beq _0800C292
- movs r1, 0xD
- cmp r2, 0x8
- beq _0800C292
- movs r1, 0x4
-_0800C292:
- subs r0, r1
- bgt _0800C292
- bx lr
- thumb_func_end MultiBootWaitCycles
-
- thumb_func_start MultiBootWaitSendDone
-MultiBootWaitSendDone: @ 800C298
- push {r4,r5,lr}
- movs r2, 0
- ldr r3, _0800C2CC @ =0x04000128
- ldrh r1, [r3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0800C2BC
- ldr r5, _0800C2D0 @ =0x0000795c
- movs r4, 0x80
-_0800C2AC:
- adds r2, 0x1
- cmp r2, r5
- bgt _0800C2BC
- ldrh r1, [r3]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _0800C2AC
-_0800C2BC:
- movs r0, 0x96
- lsls r0, 2
- bl MultiBootWaitCycles
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C2CC: .4byte 0x04000128
-_0800C2D0: .4byte 0x0000795c
- thumb_func_end MultiBootWaitSendDone
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 01217d92f..ef692b052 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -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 63bfd9523..e2b9c876f 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -159,7 +159,7 @@ sub_80549F8: @ 80549F8
movs r1, 0x1
movs r3, 0x6
bl Overworld_SetWarpDestination
- bl warp_in
+ bl WarpIntoMap
add sp, 0x4
pop {r0}
bx r0
@@ -174,8 +174,8 @@ Sav2_ClearSetDefault: @ 8054A18
bx r0
thumb_func_end Sav2_ClearSetDefault
- thumb_func_start sub_8054A28
-sub_8054A28: @ 8054A28
+ thumb_func_start ResetMenuAndMonGlobals
+ResetMenuAndMonGlobals: @ 8054A28
push {lr}
ldr r1, _08054A5C @ =gUnknown_2031DB0
movs r0, 0
@@ -195,7 +195,7 @@ sub_8054A28: @ 8054A28
bx r0
.align 2, 0
_08054A5C: .4byte gUnknown_2031DB0
- thumb_func_end sub_8054A28
+ thumb_func_end ResetMenuAndMonGlobals
thumb_func_start sub_8054A60
sub_8054A60: @ 8054A60
@@ -262,7 +262,7 @@ sub_8054A60: @ 8054A60
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
deleted file mode 100644
index 7401398af..000000000
--- a/asm/new_menu_helpers.s
+++ /dev/null
@@ -1,2497 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start clear_scheduled_bg_copies_to_vram
-clear_scheduled_bg_copies_to_vram: @ 80F6790
- push {lr}
- ldr r0, _080F67A0 @ =gUnknown_203AB58
- movs r1, 0
- movs r2, 0x4
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080F67A0: .4byte gUnknown_203AB58
- thumb_func_end clear_scheduled_bg_copies_to_vram
-
- thumb_func_start schedule_bg_copy_tilemap_to_vram
-schedule_bg_copy_tilemap_to_vram: @ 80F67A4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080F67B4 @ =gUnknown_203AB58
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080F67B4: .4byte gUnknown_203AB58
- thumb_func_end schedule_bg_copy_tilemap_to_vram
-
- thumb_func_start do_scheduled_bg_tilemap_copies_to_vram
-do_scheduled_bg_tilemap_copies_to_vram: @ 80F67B8
- push {r4,lr}
- ldr r4, _080F6804 @ =gUnknown_203AB58
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080F67CC
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4]
-_080F67CC:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- bne _080F67DC
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x1]
-_080F67DC:
- ldrb r0, [r4, 0x2]
- cmp r0, 0x1
- bne _080F67EC
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x2]
-_080F67EC:
- ldrb r0, [r4, 0x3]
- cmp r0, 0x1
- bne _080F67FC
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x3]
-_080F67FC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6804: .4byte gUnknown_203AB58
- thumb_func_end do_scheduled_bg_tilemap_copies_to_vram
-
- thumb_func_start reset_temp_tile_data_buffers
-reset_temp_tile_data_buffers: @ 80F6808
- push {lr}
- ldr r3, _080F6824 @ =gUnknown_203AB5C
- ldr r1, _080F6828 @ =gUnknown_203AB60
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x7C
-_080F6814:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _080F6814
- movs r0, 0
- strh r0, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_080F6824: .4byte gUnknown_203AB5C
-_080F6828: .4byte gUnknown_203AB60
- thumb_func_end reset_temp_tile_data_buffers
-
- thumb_func_start free_temp_tile_data_buffers_if_possible
-free_temp_tile_data_buffers_if_possible: @ 80F682C
- push {r4-r6,lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080F6870
- ldr r1, _080F6868 @ =gUnknown_203AB5C
- ldrh r0, [r1]
- cmp r0, 0
- beq _080F6864
- movs r4, 0
- ldrh r1, [r1]
- cmp r4, r1
- bge _080F685E
- ldr r5, _080F686C @ =gUnknown_203AB60
- movs r6, 0
-_080F684C:
- ldr r0, [r5]
- bl Free
- stm r5!, {r6}
- adds r4, 0x1
- ldr r0, _080F6868 @ =gUnknown_203AB5C
- ldrh r0, [r0]
- cmp r4, r0
- blt _080F684C
-_080F685E:
- ldr r1, _080F6868 @ =gUnknown_203AB5C
- movs r0, 0
- strh r0, [r1]
-_080F6864:
- movs r0, 0
- b _080F6872
- .align 2, 0
-_080F6868: .4byte gUnknown_203AB5C
-_080F686C: .4byte gUnknown_203AB60
-_080F6870:
- movs r0, 0x1
-_080F6872:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end free_temp_tile_data_buffers_if_possible
-
- thumb_func_start decompress_and_copy_tile_data_to_vram
-decompress_and_copy_tile_data_to_vram: @ 80F6878
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r6, _080F68D8 @ =gUnknown_203AB5C
- ldrh r0, [r6]
- cmp r0, 0x1F
- bhi _080F68E0
- adds r0, r4, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r4, r0, 0
- cmp r5, 0
- bne _080F68B0
- ldr r5, [sp, 0x4]
-_080F68B0:
- cmp r4, 0
- beq _080F68D4
- lsls r2, r5, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r3, r9
- bl sub_80F6AD0
- ldr r2, _080F68DC @ =gUnknown_203AB60
- ldrh r0, [r6]
- adds r1, r0, 0x1
- strh r1, [r6]
- lsls r0, 16
- lsrs r0, 14
- adds r0, r2
- str r4, [r0]
-_080F68D4:
- adds r0, r4, 0
- b _080F68E2
- .align 2, 0
-_080F68D8: .4byte gUnknown_203AB5C
-_080F68DC: .4byte gUnknown_203AB60
-_080F68E0:
- movs r0, 0
-_080F68E2:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end decompress_and_copy_tile_data_to_vram
-
- thumb_func_start sub_80F68F0
-sub_80F68F0: @ 80F68F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r4, r1, 0
- adds r6, r2, 0
- ldr r1, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r5, _080F6954 @ =gUnknown_203AB5C
- ldrh r0, [r5]
- cmp r0, 0x1F
- bhi _080F695C
- adds r0, r4, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r4, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, r6
- bls _080F692A
- str r6, [sp, 0x4]
-_080F692A:
- cmp r4, 0
- beq _080F6950
- ldr r2, [sp, 0x4]
- lsls r2, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r3, r9
- bl sub_80F6AD0
- ldr r2, _080F6958 @ =gUnknown_203AB60
- ldrh r0, [r5]
- adds r1, r0, 0x1
- strh r1, [r5]
- lsls r0, 16
- lsrs r0, 14
- adds r0, r2
- str r4, [r0]
-_080F6950:
- adds r0, r4, 0
- b _080F695E
- .align 2, 0
-_080F6954: .4byte gUnknown_203AB5C
-_080F6958: .4byte gUnknown_203AB60
-_080F695C:
- movs r0, 0
-_080F695E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F68F0
-
- thumb_func_start DecompressAndLoadBgGfxUsingHeap
-DecompressAndLoadBgGfxUsingHeap: @ 80F696C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r5, r2, 0
- ldr r2, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r1, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r6, r0, 0
- cmp r5, 0
- bne _080F699A
- ldr r5, [sp, 0x4]
-_080F699A:
- cmp r6, 0
- beq _080F69D2
- ldr r0, _080F69E0 @ =task_free_buf_after_copying_tile_data_to_vram
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r5, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r6, 0
- mov r3, r9
- bl sub_80F6AD0
- ldr r2, _080F69E4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r6, 0
- bl SetWordTaskArg
-_080F69D2:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F69E0: .4byte task_free_buf_after_copying_tile_data_to_vram
-_080F69E4: .4byte gTasks
- thumb_func_end DecompressAndLoadBgGfxUsingHeap
-
- thumb_func_start sub_80F69E8
-sub_80F69E8: @ 80F69E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r2, 0
- ldr r2, [sp, 0x20]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- adds r0, r1, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r5, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, r4
- bls _080F6A14
- str r4, [sp, 0x4]
-_080F6A14:
- cmp r5, 0
- beq _080F6A4E
- ldr r0, _080F6A5C @ =task_free_buf_after_copying_tile_data_to_vram
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, [sp, 0x4]
- lsls r2, 16
- lsrs r2, 16
- str r6, [sp]
- adds r0, r7, 0
- adds r1, r5, 0
- mov r3, r8
- bl sub_80F6AD0
- ldr r2, _080F6A60 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r5, 0
- bl SetWordTaskArg
-_080F6A4E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6A5C: .4byte task_free_buf_after_copying_tile_data_to_vram
-_080F6A60: .4byte gTasks
- thumb_func_end sub_80F69E8
-
- thumb_func_start task_free_buf_after_copying_tile_data_to_vram
-task_free_buf_after_copying_tile_data_to_vram: @ 80F6A64
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080F6A9C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl CheckForSpaceForDma3Request
- lsls r0, 16
- cmp r0, 0
- bne _080F6A94
- adds r0, r4, 0
- movs r1, 0x1
- bl GetWordTaskArg
- bl Free
- adds r0, r4, 0
- bl DestroyTask
-_080F6A94:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6A9C: .4byte gTasks
- thumb_func_end task_free_buf_after_copying_tile_data_to_vram
-
- thumb_func_start malloc_and_decompress
-malloc_and_decompress: @ 80F6AA0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5, 0x1]
- strb r0, [r1]
- ldrb r0, [r5, 0x2]
- strb r0, [r1, 0x1]
- ldrb r0, [r5, 0x3]
- strb r0, [r1, 0x2]
- movs r0, 0
- strb r0, [r1, 0x3]
- ldr r0, [r1]
- bl Alloc
- adds r4, r0, 0
- cmp r4, 0
- beq _080F6AC8
- adds r0, r5, 0
- adds r1, r4, 0
- bl LZ77UnCompWram
-_080F6AC8:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end malloc_and_decompress
-
- thumb_func_start sub_80F6AD0
-sub_80F6AD0: @ 80F6AD0
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _080F6AEE
- cmp r1, 0x1
- beq _080F6AF6
-_080F6AEE:
- adds r1, r4, 0
- bl LoadBgTiles
- b _080F6AFC
-_080F6AF6:
- adds r1, r4, 0
- bl LoadBgTilemap
-_080F6AFC:
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6AD0
-
- thumb_func_start sub_80F6B08
-sub_80F6B08: @ 80F6B08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r2, 0
- ldr r4, [sp, 0x28]
- ldr r2, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- bl GetBgTilemapBuffer
- mov r8, r0
- adds r0, r5, r4
- cmp r5, r0
- bge _080F6B80
- mov r9, r0
-_080F6B46:
- ldr r3, [sp]
- ldr r1, [sp, 0x4]
- adds r0, r3, r1
- adds r7, r5, 0x1
- cmp r3, r0
- bge _080F6B78
- lsls r6, r5, 5
- ldr r1, _080F6B90 @ =0x00000fff
- mov r12, r1
- mov r1, r10
- lsls r5, r1, 12
- adds r4, r0, 0
-_080F6B5E:
- adds r1, r6, r3
- lsls r1, 1
- add r1, r8
- ldrh r2, [r1]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- blt _080F6B5E
-_080F6B78:
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, r9
- blt _080F6B46
-_080F6B80:
- 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
-_080F6B90: .4byte 0x00000fff
- thumb_func_end sub_80F6B08
-
- thumb_func_start sub_80F6B94
-sub_80F6B94: @ 80F6B94
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r1
- ldr r1, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- bl GetBgTilemapBuffer
- adds r7, r0, 0
- movs r0, 0
- cmp r0, r8
- bcs _080F6C02
-_080F6BCC:
- movs r2, 0
- adds r6, r0, 0x1
- cmp r2, r5
- bcs _080F6BFA
- adds r4, r0, 0
- muls r4, r5
- ldr r1, [sp]
- adds r0, r1
- lsls r3, r0, 5
-_080F6BDE:
- adds r1, r4, r2
- lsls r1, 1
- add r1, r10
- adds r0, r3, r2
- add r0, r9
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r5
- bcc _080F6BDE
-_080F6BFA:
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _080F6BCC
-_080F6C02:
- 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_80F6B94
-
- thumb_func_start sub_80F6C14
-sub_80F6C14: @ 80F6C14
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- 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 ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end sub_80F6C14
-
- thumb_func_start InitStandardTextBoxWindows
-InitStandardTextBoxWindows: @ 80F6C6C
- push {lr}
- ldr r0, _080F6C84 @ =gUnknown_841F42C
- bl InitWindows
- ldr r1, _080F6C88 @ =gUnknown_203ABE0
- movs r0, 0xFF
- strb r0, [r1]
- bl sub_8112EA8
- pop {r0}
- bx r0
- .align 2, 0
-_080F6C84: .4byte gUnknown_841F42C
-_080F6C88: .4byte gUnknown_203ABE0
- thumb_func_end InitStandardTextBoxWindows
-
- thumb_func_start sub_80F6C8C
-sub_80F6C8C: @ 80F6C8C
- push {lr}
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- thumb_func_end sub_80F6C8C
-
- thumb_func_start ResetBg0
-ResetBg0: @ 80F6C98
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- bl DeactivateAllTextPrinters
- bl sub_80F6E9C
- pop {r0}
- bx r0
- thumb_func_end ResetBg0
-
- thumb_func_start sub_80F6CBC
-sub_80F6CBC: @ 80F6CBC
- push {lr}
- bl RunTextPrinters
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80F6CBC
-
- thumb_func_start AddTextPrinterParametrized
-AddTextPrinterParametrized: @ 80F6CD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r7, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- mov r8, r4
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- str r2, [sp]
- mov r2, sp
- movs r4, 0
- strb r0, [r2, 0x4]
- mov r0, sp
- strb r1, [r0, 0x5]
- strb r4, [r0, 0x6]
- movs r1, 0x1
- strb r1, [r0, 0x7]
- strb r4, [r0, 0x8]
- strb r1, [r0, 0x9]
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r4, sp
- ldrb r2, [r4, 0xC]
- subs r1, 0x11
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r4, 0xC]
- mov r0, sp
- mov r2, r8
- lsls r2, 4
- movs r4, 0xF
- strb r2, [r0, 0xC]
- mov r2, sp
- ands r5, r4
- ldrb r0, [r2, 0xD]
- ands r1, r0
- orrs r1, r5
- strb r1, [r2, 0xD]
- mov r0, sp
- lsrs r6, 20
- ands r1, r4
- orrs r1, r6
- strb r1, [r0, 0xD]
- ldr r2, _080F6D58 @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, sp
- adds r1, r3, 0
- adds r2, r7, 0
- bl AddTextPrinter
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F6D58: .4byte gTextFlags
- thumb_func_end AddTextPrinterParametrized
-
- thumb_func_start sub_80F6D5C
-sub_80F6D5C: @ 80F6D5C
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r3, _080F6DA8 @ =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl sub_80CBE00
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080F6DB0
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6DAC @ =gStringVar4
- str r5, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
- b _080F6DFC
- .align 2, 0
-_080F6DA8: .4byte gTextFlags
-_080F6DAC: .4byte gStringVar4
-_080F6DB0:
- cmp r0, 0x1
- bne _080F6DDC
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6DD8 @ =gStringVar4
- str r5, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x5
- bl AddTextPrinterParametrized
- b _080F6DFC
- .align 2, 0
-_080F6DD8: .4byte gStringVar4
-_080F6DDC:
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6E04 @ =gStringVar4
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParametrized
-_080F6DFC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E04: .4byte gStringVar4
- thumb_func_end sub_80F6D5C
-
- thumb_func_start sub_80F6E08
-sub_80F6E08: @ 80F6E08
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F6E4C @ =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6E50 @ =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E4C: .4byte gTextFlags
-_080F6E50: .4byte gStringVar4
- thumb_func_end sub_80F6E08
-
- thumb_func_start sub_80F6E54
-sub_80F6E54: @ 80F6E54
- push {r4,r5,lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, _080F6E94 @ =gTextFlags
- movs r5, 0x1
- ands r0, r5
- ldrb r2, [r4]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4]
- ldr r2, _080F6E98 @ =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E94: .4byte gTextFlags
-_080F6E98: .4byte gStringVar4
- thumb_func_end sub_80F6E54
-
- thumb_func_start sub_80F6E9C
-sub_80F6E9C: @ 80F6E9C
- push {lr}
- ldr r0, _080F6EBC @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080F6EC4
- ldr r2, _080F6EC0 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl sub_814FF98
- b _080F6ED4
- .align 2, 0
-_080F6EBC: .4byte gUnknown_203ADFA
-_080F6EC0: .4byte gTextFlags
-_080F6EC4:
- bl sub_80F77B8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- movs r2, 0xF0
- bl sub_814FEAC
-_080F6ED4:
- movs r1, 0x85
- lsls r1, 2
- movs r0, 0
- movs r2, 0xE0
- bl sub_815001C
- pop {r0}
- bx r0
- thumb_func_end sub_80F6E9C
-
- thumb_func_start DrawDialogueFrame
-DrawDialogueFrame: @ 80F6EE4
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6F18 @ =sub_80F7124
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _080F6F12
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6F12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F18: .4byte sub_80F7124
- thumb_func_end DrawDialogueFrame
-
- thumb_func_start DrawStdWindowFrame
-DrawStdWindowFrame: @ 80F6F1C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6F50 @ =sub_80F6FD4
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _080F6F4A
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6F4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F50: .4byte sub_80F6FD4
- thumb_func_end DrawStdWindowFrame
-
- thumb_func_start ClearDialogWindowAndFrame
-ClearDialogWindowAndFrame: @ 80F6F54
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6F94 @ =sub_80F76CC
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _080F6F82
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6F82:
- ldr r0, _080F6F98 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080F6F8E
- bl sub_8111134
-_080F6F8E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F94: .4byte sub_80F76CC
-_080F6F98: .4byte gUnknown_203ADFA
- thumb_func_end ClearDialogWindowAndFrame
-
- thumb_func_start ClearStdWindowAndFrame
-ClearStdWindowAndFrame: @ 80F6F9C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6FD0 @ =sub_80F7684
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _080F6FCA
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6FCA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FD0: .4byte sub_80F7684
- thumb_func_end ClearStdWindowAndFrame
-
- thumb_func_start sub_80F6FD4
-sub_80F6FD4: @ 80F6FD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r4, r2, 0
- ldr r2, [sp, 0x3C]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsls r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- movs r3, 0x85
- lsls r3, 2
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- movs r2, 0xFF
- lsls r2, 24
- adds r2, r1
- mov r8, r2
- lsrs r2, 24
- lsrs r0, r4, 24
- mov r9, r0
- movs r0, 0xFF
- lsls r0, 24
- adds r4, r0
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r6, 0xE
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r3, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F710C @ =0x00000215
- ldr r2, [sp, 0x10]
- str r2, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7110 @ =0x00000216
- ldr r3, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r0, r3, r2
- lsls r0, 24
- mov r10, r0
- lsrs r2, r0, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- mov r5, r9
- ldr r0, [sp, 0x14]
- add r0, r9
- cmp r9, r0
- bge _080F70A8
- mov r3, r8
- str r3, [sp, 0x18]
- movs r6, 0x1
- movs r0, 0xE
- mov r8, r0
-_080F706E:
- lsls r4, r5, 24
- lsrs r4, 24
- str r6, [sp]
- str r6, [sp, 0x4]
- mov r2, r8
- str r2, [sp, 0x8]
- adds r0, r7, 0
- ldr r1, _080F7114 @ =0x00000217
- ldr r3, [sp, 0x18]
- lsrs r2, r3, 24
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- str r6, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r1, _080F7118 @ =0x00000219
- mov r3, r10
- lsrs r2, r3, 24
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- adds r5, 0x1
- ldr r0, [sp, 0x14]
- add r0, r9
- cmp r5, r0
- blt _080F706E
-_080F70A8:
- ldr r1, _080F711C @ =0x0000021a
- ldr r2, [sp, 0xC]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r4, [sp, 0x14]
- add r4, r9
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r6, 0xE
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7120 @ =0x0000021b
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x87
- lsls r1, 2
- ldr r3, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r2, r3, r0
- lsls r2, 24
- lsrs r2, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 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
- .align 2, 0
-_080F710C: .4byte 0x00000215
-_080F7110: .4byte 0x00000216
-_080F7114: .4byte 0x00000217
-_080F7118: .4byte 0x00000219
-_080F711C: .4byte 0x0000021a
-_080F7120: .4byte 0x0000021b
- thumb_func_end sub_80F6FD4
-
- thumb_func_start sub_80F7124
-sub_80F7124: @ 80F7124
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- bl sub_8069A38
- lsls r0, 24
- cmp r0, 0
- beq _080F715A
- ldr r0, _080F7390 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F715A
- b _080F73E8
-_080F715A:
- movs r1, 0x80
- lsls r1, 2
- ldr r0, [sp, 0xC]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r5, [sp, 0x10]
- subs r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r6, 0xF
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7394 @ =0x00000201
- ldr r2, [sp, 0xC]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7398 @ =0x00000202
- ldr r0, [sp, 0x14]
- str r0, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F739C @ =0x00000203
- ldr r2, [sp, 0xC]
- ldr r0, [sp, 0x14]
- adds r2, r0
- mov r8, r2
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x81
- lsls r1, 2
- add r8, r4
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73A0 @ =0x00000205
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F73A4 @ =0x00000206
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- movs r1, 0x82
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F73A8 @ =0x00000209
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F73AC @ =0x0000020a
- ldr r5, [sp, 0x10]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73B0 @ =0x0000020b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x83
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73B4 @ =0x0000020d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73B8 @ =0x00000a0a
- ldr r5, [sp, 0x10]
- adds r5, 0x2
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73BC @ =0x00000a0b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73C0 @ =0x00000a0c
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73C4 @ =0x00000a0d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73C8 @ =0x00000a05
- ldr r5, [sp, 0x10]
- adds r5, 0x3
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73CC @ =0x00000a06
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73D0 @ =0x00000a08
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73D4 @ =0x00000a09
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xA0
- lsls r1, 4
- ldr r5, [sp, 0x10]
- adds r5, 0x4
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73D8 @ =0x00000a01
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73DC @ =0x00000a02
- ldr r0, [sp, 0x14]
- str r0, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73E0 @ =0x00000a03
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73E4 @ =0x00000a04
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- b _080F761E
- .align 2, 0
-_080F7390: .4byte gUnknown_203ADFA
-_080F7394: .4byte 0x00000201
-_080F7398: .4byte 0x00000202
-_080F739C: .4byte 0x00000203
-_080F73A0: .4byte 0x00000205
-_080F73A4: .4byte 0x00000206
-_080F73A8: .4byte 0x00000209
-_080F73AC: .4byte 0x0000020a
-_080F73B0: .4byte 0x0000020b
-_080F73B4: .4byte 0x0000020d
-_080F73B8: .4byte 0x00000a0a
-_080F73BC: .4byte 0x00000a0b
-_080F73C0: .4byte 0x00000a0c
-_080F73C4: .4byte 0x00000a0d
-_080F73C8: .4byte 0x00000a05
-_080F73CC: .4byte 0x00000a06
-_080F73D0: .4byte 0x00000a08
-_080F73D4: .4byte 0x00000a09
-_080F73D8: .4byte 0x00000a01
-_080F73DC: .4byte 0x00000a02
-_080F73E0: .4byte 0x00000a03
-_080F73E4: .4byte 0x00000a04
-_080F73E8:
- movs r1, 0x80
- lsls r1, 2
- ldr r2, [sp, 0xC]
- subs r2, 0x2
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r5, [sp, 0x10]
- subs r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r6, 0xF
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7630 @ =0x00000201
- ldr r0, [sp, 0xC]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7634 @ =0x00000202
- ldr r2, [sp, 0x14]
- str r2, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7638 @ =0x00000203
- ldr r0, [sp, 0xC]
- ldr r2, [sp, 0x14]
- adds r0, r2
- mov r8, r0
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x81
- lsls r1, 2
- add r8, r4
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F763C @ =0x00000205
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F7640 @ =0x00000206
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- movs r1, 0x82
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F7644 @ =0x00000209
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F7648 @ =0x0000020a
- ldr r5, [sp, 0x10]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F764C @ =0x0000020b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x83
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7650 @ =0x0000020d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7654 @ =0x00000a05
- ldr r5, [sp, 0x10]
- adds r5, 0x2
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7658 @ =0x00000a06
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F765C @ =0x00000a08
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7660 @ =0x00000a09
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7664 @ =0x00000a0a
- ldr r5, [sp, 0x10]
- adds r5, 0x3
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7668 @ =0x00000a0b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F766C @ =0x00000a0c
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7670 @ =0x00000a0d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xA0
- lsls r1, 4
- ldr r5, [sp, 0x10]
- adds r5, 0x4
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7674 @ =0x00000a01
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7678 @ =0x00000a02
- ldr r2, [sp, 0x14]
- str r2, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F767C @ =0x00000a03
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7680 @ =0x00000a04
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
-_080F761E:
- 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
-_080F7630: .4byte 0x00000201
-_080F7634: .4byte 0x00000202
-_080F7638: .4byte 0x00000203
-_080F763C: .4byte 0x00000205
-_080F7640: .4byte 0x00000206
-_080F7644: .4byte 0x00000209
-_080F7648: .4byte 0x0000020a
-_080F764C: .4byte 0x0000020b
-_080F7650: .4byte 0x0000020d
-_080F7654: .4byte 0x00000a05
-_080F7658: .4byte 0x00000a06
-_080F765C: .4byte 0x00000a08
-_080F7660: .4byte 0x00000a09
-_080F7664: .4byte 0x00000a0a
-_080F7668: .4byte 0x00000a0b
-_080F766C: .4byte 0x00000a0c
-_080F7670: .4byte 0x00000a0d
-_080F7674: .4byte 0x00000a01
-_080F7678: .4byte 0x00000a02
-_080F767C: .4byte 0x00000a03
-_080F7680: .4byte 0x00000a04
- thumb_func_end sub_80F7124
-
- thumb_func_start sub_80F7684
-sub_80F7684: @ 80F7684
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 18
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0xE
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7684
-
- thumb_func_start sub_80F76CC
-sub_80F76CC: @ 80F76CC
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFE
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 19
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0xE
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F76CC
-
- thumb_func_start sub_80F771C
-sub_80F771C: @ 80F771C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- 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
- cmp r4, 0x1
- bne _080F7746
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_080F7746:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F771C
-
- thumb_func_start sub_80F7750
-sub_80F7750: @ 80F7750
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x85
- lsls r2, 2
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_80F7750
-
- thumb_func_start sub_80F7768
-sub_80F7768: @ 80F7768
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080F7790 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080F7798
- ldr r2, _080F7794 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl sub_814FF98
- b _080F77A4
- .align 2, 0
-_080F7790: .4byte gUnknown_203ADFA
-_080F7794: .4byte gTextFlags
-_080F7798:
- movs r1, 0x80
- lsls r1, 2
- adds r0, r4, 0
- movs r2, 0xF0
- bl sub_814FEAC
-_080F77A4:
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0xF
- bl sub_810EDC4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7768
-
- thumb_func_start sub_80F77B8
-sub_80F77B8: @ 80F77B8
- push {lr}
- ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette
- movs r1, 0xE0
- movs r2, 0x14
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080F77C8: .4byte gTMCaseMainWindowPalette
- thumb_func_end sub_80F77B8
-
- thumb_func_start Menu_LoadStdPalAt
-Menu_LoadStdPalAt: @ 80F77CC
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette
- movs r2, 0x14
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080F77E0: .4byte gTMCaseMainWindowPalette
- thumb_func_end Menu_LoadStdPalAt
-
- thumb_func_start sub_80F77E4
-sub_80F77E4: @ 80F77E4
- ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette
- bx lr
- .align 2, 0
-_080F77E8: .4byte gTMCaseMainWindowPalette
- thumb_func_end sub_80F77E4
-
- thumb_func_start sub_80F77EC
-sub_80F77EC: @ 80F77EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080F77F8
- movs r1, 0
-_080F77F8:
- ldr r0, _080F7804 @ =gTMCaseMainWindowPalette
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_080F7804: .4byte gTMCaseMainWindowPalette
- thumb_func_end sub_80F77EC
-
- thumb_func_start DisplayItemMessageOnField
-DisplayItemMessageOnField: @ 80F7808
- 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_80F6E9C
- bl GetTextSpeedSetting
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 2
- str r4, [sp]
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r3, 0xF
- bl DisplayMessageAndContinueTask
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end DisplayItemMessageOnField
-
- thumb_func_start sub_80F7858
-sub_80F7858: @ 80F7858
- push {lr}
- sub sp, 0xC
- ldr r0, _080F787C @ =gUnknown_841F43C
- movs r1, 0x85
- lsls r1, 2
- str r1, [sp]
- movs r1, 0xE
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl CreateYesNoMenu
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_080F787C: .4byte gUnknown_841F43C
- thumb_func_end sub_80F7858
-
- thumb_func_start sub_80F7880
-sub_80F7880: @ 80F7880
- push {lr}
- sub sp, 0xC
- ldr r0, _080F78A4 @ =gUnknown_841F43C
- movs r1, 0x85
- lsls r1, 2
- str r1, [sp]
- movs r1, 0xE
- str r1, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl CreateYesNoMenu
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_080F78A4: .4byte gUnknown_841F43C
- thumb_func_end sub_80F7880
-
- thumb_func_start GetTextSpeedSetting
-GetTextSpeedSetting: @ 80F78A8
- push {lr}
- ldr r3, _080F78D8 @ =gSaveBlock2Ptr
- ldr r2, [r3]
- ldrb r1, [r2, 0x14]
- lsls r0, r1, 29
- lsrs r0, 29
- cmp r0, 0x2
- bls _080F78C4
- movs r0, 0x8
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x14]
-_080F78C4:
- ldr r1, _080F78DC @ =gUnknown_841F428
- ldr r0, [r3]
- ldrb r0, [r0, 0x14]
- lsls r0, 29
- lsrs r0, 29
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_080F78D8: .4byte gSaveBlock2Ptr
-_080F78DC: .4byte gUnknown_841F428
- thumb_func_end GetTextSpeedSetting
-
- thumb_func_start sub_80F78E0
-sub_80F78E0: @ 80F78E0
- push {r4,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r4, _080F7934 @ =gUnknown_203ABE0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080F792A
- movs r0, 0x7
- str r0, [sp]
- lsls r0, r1, 25
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, _080F7938 @ =0x0000013d
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x16
- movs r3, 0x1
- bl SetWindowTemplateFields
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- bl PutWindowTilemap
-_080F792A:
- ldrb r0, [r4]
- add sp, 0x20
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F7934: .4byte gUnknown_203ABE0
-_080F7938: .4byte 0x0000013d
- thumb_func_end sub_80F78E0
-
- thumb_func_start GetStartMenuWindowId
-GetStartMenuWindowId: @ 80F793C
- ldr r0, _080F7944 @ =gUnknown_203ABE0
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080F7944: .4byte gUnknown_203ABE0
- thumb_func_end GetStartMenuWindowId
-
- thumb_func_start remove_start_menu_window_maybe
-remove_start_menu_window_maybe: @ 80F7948
- push {r4,lr}
- ldr r4, _080F7960 @ =gUnknown_203ABE0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F795A
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
-_080F795A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7960: .4byte gUnknown_203ABE0
- thumb_func_end remove_start_menu_window_maybe
-
- thumb_func_start sub_80F7964
-sub_80F7964: @ 80F7964
- movs r0, 0x80
- lsls r0, 2
- bx lr
- thumb_func_end sub_80F7964
-
- thumb_func_start sub_80F796C
-sub_80F796C: @ 80F796C
- movs r0, 0x85
- lsls r0, 2
- bx lr
- thumb_func_end sub_80F796C
-
- thumb_func_start sub_80F7974
-sub_80F7974: @ 80F7974
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8112EB4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 2
- movs r2, 0xF0
- bl sub_814FE6C
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8113018
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7974
-
- thumb_func_start sub_80F7998
-sub_80F7998: @ 80F7998
- push {lr}
- movs r0, 0x2
- bl sub_8112EDC
- pop {r0}
- bx r0
- thumb_func_end sub_80F7998
-
- thumb_func_start sub_80F79A4
-sub_80F79A4: @ 80F79A4
- push {lr}
- bl sub_80F77B8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- movs r2, 0xF0
- bl sub_814FEEC
- movs r1, 0x85
- lsls r1, 2
- movs r0, 0
- movs r2, 0xE0
- bl sub_815001C
- pop {r0}
- bx r0
- thumb_func_end sub_80F79A4
-
- thumb_func_start SetDefaultFontsPointer
-SetDefaultFontsPointer: @ 80F79C8
- push {lr}
- ldr r0, _080F79D4 @ =gUnknown_841F444
- bl SetFontsPointer
- pop {r0}
- bx r0
- .align 2, 0
-_080F79D4: .4byte gUnknown_841F444
- thumb_func_end SetDefaultFontsPointer
-
- thumb_func_start GetFontAttribute
-GetFontAttribute: @ 80F79D8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- cmp r1, 0x7
- bhi _080F7AB6
- lsls r0, r1, 2
- ldr r1, _080F79F4 @ =_080F79F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F79F4: .4byte _080F79F8
- .align 2, 0
-_080F79F8:
- .4byte _080F7A18
- .4byte _080F7A2C
- .4byte _080F7A40
- .4byte _080F7A54
- .4byte _080F7A68
- .4byte _080F7A7C
- .4byte _080F7A90
- .4byte _080F7AA8
-_080F7A18:
- ldr r1, _080F7A28 @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x4]
- b _080F7AB6
- .align 2, 0
-_080F7A28: .4byte gUnknown_841F444
-_080F7A2C:
- ldr r1, _080F7A3C @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- b _080F7AB6
- .align 2, 0
-_080F7A3C: .4byte gUnknown_841F444
-_080F7A40:
- ldr r1, _080F7A50 @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- b _080F7AB6
- .align 2, 0
-_080F7A50: .4byte gUnknown_841F444
-_080F7A54:
- ldr r1, _080F7A64 @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _080F7AB6
- .align 2, 0
-_080F7A64: .4byte gUnknown_841F444
-_080F7A68:
- ldr r0, _080F7A78 @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _080F7A9C
- .align 2, 0
-_080F7A78: .4byte gUnknown_841F444
-_080F7A7C:
- ldr r0, _080F7A8C @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _080F7AB4
- .align 2, 0
-_080F7A8C: .4byte gUnknown_841F444
-_080F7A90:
- ldr r0, _080F7AA4 @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x9]
-_080F7A9C:
- lsls r0, 28
- lsrs r0, 28
- b _080F7AB6
- .align 2, 0
-_080F7AA4: .4byte gUnknown_841F444
-_080F7AA8:
- ldr r0, _080F7ABC @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x9]
-_080F7AB4:
- lsrs r0, 4
-_080F7AB6:
- pop {r1}
- bx r1
- .align 2, 0
-_080F7ABC: .4byte gUnknown_841F444
- thumb_func_end GetFontAttribute
-
- thumb_func_start GetMenuCursorDimensionByFont
-GetMenuCursorDimensionByFont: @ 80F7AC0
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080F7AD4 @ =gUnknown_841F4A4
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_080F7AD4: .4byte gUnknown_841F4A4
- thumb_func_end GetMenuCursorDimensionByFont
-
- .align 2, 0 @ Don't pad with nop.
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/option_menu.s b/asm/option_menu.s
index 84cb85e6b..bf626caba 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -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
@@ -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
diff --git a/asm/overworld.s b/asm/overworld.s
index 103ed2c46..39fbe770a 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -22,7 +22,7 @@ sub_8054BC8: @ 8054BC8
bl sp000_heal_pokemon
bl sub_8054DD8
bl sub_80554BC
- bl warp_in
+ bl WarpIntoMap
pop {r4}
pop {r0}
bx r0
@@ -38,7 +38,7 @@ sub_8054C04: @ 8054C04
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80444F8
+ bl GetPlayerPartyHighestLevel
lsls r0, 24
lsrs r0, 24
ldr r1, _08054C40 @ =gUnknown_826D294
@@ -193,8 +193,8 @@ _08054D68: .4byte 0x00000808
_08054D6C: .4byte 0x0000404d
thumb_func_end Overworld_ResetStateAfterTeleport
- thumb_func_start sub_8054D70
-sub_8054D70: @ 8054D70
+ thumb_func_start Overworld_ResetStateAfterDigEscRope
+Overworld_ResetStateAfterDigEscRope: @ 8054D70
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
@@ -230,7 +230,7 @@ _08054DC8: .4byte 0x00000805
_08054DCC: .4byte 0x00000806
_08054DD0: .4byte 0x00000808
_08054DD4: .4byte 0x0000404d
- thumb_func_end sub_8054D70
+ thumb_func_end Overworld_ResetStateAfterDigEscRope
thumb_func_start sub_8054DD8
sub_8054DD8: @ 8054DD8
@@ -334,7 +334,7 @@ _08054EB0:
ldr r1, _08054EC0 @ =0x00ffffff
_08054EB2:
adds r0, r4, 0
- bl sub_8054F00
+ bl SetGameStat
_08054EB8:
pop {r4}
pop {r0}
@@ -376,8 +376,8 @@ _08054EFA:
bx r1
thumb_func_end GetGameStat
- thumb_func_start sub_8054F00
-sub_8054F00: @ 8054F00
+ thumb_func_start SetGameStat
+SetGameStat: @ 8054F00
push {lr}
adds r3, r1, 0
lsls r0, 24
@@ -405,7 +405,7 @@ _08054F2A:
.align 2, 0
_08054F30: .4byte gSaveBlock1Ptr
_08054F34: .4byte gSaveBlock2Ptr
- thumb_func_end sub_8054F00
+ thumb_func_end SetGameStat
thumb_func_start sub_8054F38
sub_8054F38: @ 8054F38
@@ -993,15 +993,15 @@ _0805536C:
_08055374: .4byte gMapHeader
thumb_func_end update_camera_pos_from_warpid
- thumb_func_start warp_in
-warp_in: @ 8055378
+ thumb_func_start WarpIntoMap
+WarpIntoMap: @ 8055378
push {lr}
bl warp_shift
bl set_current_map_header_from_sav1_save_old_name
bl update_camera_pos_from_warpid
pop {r0}
bx r0
- thumb_func_end warp_in
+ thumb_func_end WarpIntoMap
thumb_func_start Overworld_SetWarpDestination
Overworld_SetWarpDestination: @ 805538C
@@ -1257,7 +1257,7 @@ sub_805550C: @ 805550C
ldrh r0, [r0, 0x4]
cmp r0, 0x1
beq _08055590
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -1858,7 +1858,7 @@ _08055A04: .4byte gUnknown_2031DD4
thumb_func_start sub_8055A08
sub_8055A08: @ 8055A08
push {r4,lr}
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
ldr r4, _08055A24 @ =gUnknown_2031DD4
strb r0, [r4, 0x1]
movs r0, 0x2
@@ -2378,8 +2378,8 @@ sub_8055DB8: @ 8055DB8
bx r0
thumb_func_end sub_8055DB8
- thumb_func_start sub_8055DC4
-sub_8055DC4: @ 8055DC4
+ thumb_func_start Overworld_PlaySpecialMapMusic
+Overworld_PlaySpecialMapMusic: @ 8055DC4
push {r4,r5,lr}
sub sp, 0x4
ldr r0, _08055DD8 @ =gUnknown_2031DD8
@@ -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
@@ -2462,7 +2462,7 @@ _08055E6C:
bx r0
.align 2, 0
_08055E74: .4byte 0x00000131
- thumb_func_end sub_8055DC4
+ thumb_func_end Overworld_PlaySpecialMapMusic
thumb_func_start Overworld_SetSavedMusic
Overworld_SetSavedMusic: @ 8055E78
@@ -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
@@ -3199,7 +3199,7 @@ _080563EC: .4byte gUnknown_300501C
thumb_func_start CleanupOverworldWindowsAndTilemaps
CleanupOverworldWindowsAndTilemaps: @ 80563F0
push {lr}
- bl sub_80F6C8C
+ bl FreeAllOverworldWindowBuffers
ldr r0, _08056414 @ =gUnknown_300501C
ldr r0, [r0]
bl Free
@@ -3225,8 +3225,8 @@ sub_8056420: @ 8056420
bx r0
thumb_func_end sub_8056420
- thumb_func_start is_c1_link_related_active
-is_c1_link_related_active: @ 805642C
+ thumb_func_start IsUpdateLinkStateCBActive
+IsUpdateLinkStateCBActive: @ 805642C
push {lr}
ldr r0, _0805643C @ =gMain
ldr r1, [r0]
@@ -3243,7 +3243,7 @@ _08056444:
_08056446:
pop {r1}
bx r1
- thumb_func_end is_c1_link_related_active
+ thumb_func_end IsUpdateLinkStateCBActive
thumb_func_start sub_805644C
sub_805644C: @ 805644C
@@ -3393,7 +3393,7 @@ sub_8056578: @ 8056578
bl BuildOamBuffer
bl UpdatePaletteFade
bl sub_806FFBC
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
pop {r0}
bx r0
thumb_func_end sub_8056578
@@ -3571,8 +3571,8 @@ _08056714: .4byte sub_8056534
_08056718: .4byte sub_80565B4
thumb_func_end c2_whiteout
- thumb_func_start sub_805671C
-sub_805671C: @ 805671C
+ thumb_func_start CB2_LoadMap
+CB2_LoadMap: @ 805671C
push {lr}
bl sub_80569BC
bl ScriptContext1_Init
@@ -3590,7 +3590,7 @@ sub_805671C: @ 805671C
_08056740: .4byte sub_80C9BFC
_08056744: .4byte gMain
_08056748: .4byte sub_805674C
- thumb_func_end sub_805671C
+ thumb_func_end CB2_LoadMap
thumb_func_start sub_805674C
sub_805674C: @ 805674C
@@ -3662,7 +3662,7 @@ _080567D8: .4byte sub_80565B4
thumb_func_start CB2_ReturnToField
CB2_ReturnToField: @ 80567DC
push {lr}
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _080567F4
ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link
@@ -3784,8 +3784,8 @@ _080568D8: .4byte gFieldCallback
_080568DC: .4byte sub_807DD44
thumb_func_end sub_80568C4
- thumb_func_start c2_exit_to_overworld_1_continue_scripts_restart_music
-c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0
+ thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic
+CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 80568E0
push {lr}
bl sub_80569BC
ldr r1, _080568F4 @ =gFieldCallback
@@ -3797,10 +3797,10 @@ c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0
.align 2, 0
_080568F4: .4byte gFieldCallback
_080568F8: .4byte FieldCallback_ReturnToEventScript2
- thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_start sub_80568FC
-sub_80568FC: @ 80568FC
+ thumb_func_start CB2_Overworld
+CB2_Overworld: @ 80568FC
push {lr}
bl sub_80569BC
ldr r1, _08056910 @ =gFieldCallback
@@ -3812,7 +3812,7 @@ sub_80568FC: @ 80568FC
.align 2, 0
_08056910: .4byte gFieldCallback
_08056914: .4byte sub_807DF7C
- thumb_func_end sub_80568FC
+ thumb_func_end CB2_Overworld
thumb_func_start sub_8056918
sub_8056918: @ 8056918
@@ -3833,8 +3833,8 @@ _0805692C:
_08056934: .4byte gMapHeader
thumb_func_end sub_8056918
- thumb_func_start sub_8056938
-sub_8056938: @ 8056938
+ thumb_func_start CB2_ContinueSavedGame
+CB2_ContinueSavedGame: @ 8056938
push {lr}
bl sub_80569BC
bl StopMapMusic
@@ -3858,14 +3858,14 @@ sub_8056938: @ 8056938
bne _0805699C
bl sav2_x9_clear_bit1
bl warp1_set_to_sav1w
- bl warp_in
- ldr r0, _08056998 @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _08056998 @ =CB2_LoadMap
bl SetMainCallback2
b _080569AC
.align 2, 0
_08056990: .4byte gFieldCallback2
_08056994: .4byte gUnknown_2031DE0
-_08056998: .4byte sub_805671C
+_08056998: .4byte CB2_LoadMap
_0805699C:
ldr r0, _080569B0 @ =gFieldCallback
ldr r1, _080569B4 @ =sub_8056918
@@ -3880,7 +3880,7 @@ _080569AC:
_080569B0: .4byte gFieldCallback
_080569B4: .4byte sub_8056918
_080569B8: .4byte sub_8056534
- thumb_func_end sub_8056938
+ thumb_func_end CB2_ContinueSavedGame
thumb_func_start sub_80569BC
sub_80569BC: @ 80569BC
@@ -4036,7 +4036,7 @@ _08056B04:
.align 2, 0
_08056B10: .4byte gMapHeader
_08056B14:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4178,7 +4178,7 @@ _08056C40:
.align 2, 0
_08056C4C: .4byte gMapHeader
_08056C50:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4367,7 +4367,7 @@ _08056DE0:
.align 2, 0
_08056DEC: .4byte gMapHeader
_08056DF0:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4523,8 +4523,8 @@ sub_8056F08: @ 8056F08
thumb_func_start sub_8056F1C
sub_8056F1C: @ 8056F1C
push {r4,lr}
- bl clear_scheduled_bg_copies_to_vram
- bl reset_temp_tile_data_buffers
+ bl ClearScheduledBgCopiesToVram
+ bl ResetTempTileDataBuffers
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
@@ -4563,11 +4563,11 @@ sub_8056F1C: @ 8056F1C
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08057020 @ =0x00007060
movs r0, 0
bl SetGpuReg
@@ -5078,7 +5078,7 @@ _080573D8:
.align 2, 0
_080573E4: .4byte gMapHeader
_080573E8:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5139,14 +5139,14 @@ sub_8057430: @ 8057430
bne _08057490
bl sav2_x9_clear_bit1
bl warp1_set_to_sav1w
- bl warp_in
- ldr r0, _0805748C @ =sub_805671C
+ bl WarpIntoMap
+ ldr r0, _0805748C @ =CB2_LoadMap
bl SetMainCallback2
b _0805749A
.align 2, 0
_08057484: .4byte gUnknown_2036E28
_08057488: .4byte gUnknown_2031DE0
-_0805748C: .4byte sub_805671C
+_0805748C: .4byte CB2_LoadMap
_08057490:
ldr r0, _080574A0 @ =sub_8056534
bl sub_80565E0
@@ -5177,7 +5177,7 @@ _080574B8:
bl BuildOamBuffer
bl UpdatePaletteFade
bl sub_806FFBC
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
cmp r4, 0
beq _080574E0
bl SetFieldVBlankCallback
@@ -5304,7 +5304,7 @@ _08057560:
adds r0, r4
ldrh r0, [r0, 0x4]
strh r0, [r1]
- bl warp_in
+ bl WarpIntoMap
ldr r2, _08057610 @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
@@ -5427,7 +5427,7 @@ _080576E0:
.align 2, 0
_080576EC: .4byte gMapHeader
_080576F0:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5620,7 +5620,7 @@ sub_8057854: @ 8057854
cmp r0, 0
bne _08057876
bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _08057880 @ =sub_805671C
+ ldr r0, _08057880 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -5630,7 +5630,7 @@ _08057876:
bx r0
.align 2, 0
_0805787C: .4byte gPaletteFade
-_08057880: .4byte sub_805671C
+_08057880: .4byte CB2_LoadMap
thumb_func_end sub_8057854
thumb_func_start c1_link_related
@@ -6144,7 +6144,7 @@ _08057C72:
bl sub_805833C
cmp r0, 0x1
bls _08057CA8
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08057CA8
bl sub_800A00C
@@ -6976,7 +6976,7 @@ _08058240: .4byte gUnknown_81BB9F0
thumb_func_start sub_8058244
sub_8058244: @ 8058244
push {lr}
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _08058252
movs r0, 0
@@ -7009,7 +7009,7 @@ sub_8058274: @ 8058274
bl sub_800B248
cmp r0, 0x1
bls _080582D8
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _080582D8
bl sub_800A00C
@@ -7062,7 +7062,7 @@ sub_80582E0: @ 80582E0
bl sub_805833C
cmp r0, 0x1
bls _08058304
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08058304
bl sub_800A00C
@@ -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 2aaa52985..ace2e3554 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
@@ -189,7 +189,7 @@ sub_811EBA0: @ 811EBA0
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl UpdatePaletteFade
pop {r0}
bx r0
@@ -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,9 +276,9 @@ _0811EC24:
.4byte _0811EDD0
.4byte _0811EDDE
_0811EC80:
- bl sub_80BF768
- bl sub_80BF77C
- bl clear_scheduled_bg_copies_to_vram
+ bl SetVBlankHBlankCallbacksToNull
+ bl ClearVramOamPltt
+ bl ClearScheduledBgCopiesToVram
b _0811EDFC
_0811EC8E:
bl ScanlineEffect_Stop
@@ -299,7 +299,7 @@ _0811ECAE:
bl FreeAllSpritePalettes
b _0811EDFC
_0811ECB4:
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
beq _0811ECC0
@@ -565,7 +565,7 @@ _0811EEC8: .4byte gUnknown_203B0B8
thumb_func_start sub_811EECC
sub_811EECC: @ 811EECC
push {r4,r5,lr}
- bl sub_80BF7C8
+ bl ResetAllBgsCoordinatesAndBgCntRegs
ldr r5, _0811EF34 @ =gUnknown_203B0BC
movs r4, 0x80
lsls r4, 4
@@ -587,7 +587,7 @@ sub_811EECC: @ 811EECC
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r1, 0x82
lsls r1, 5
movs r0, 0
@@ -649,7 +649,7 @@ _0811EF8C:
ldr r4, _0811EFAC @ =gUnknown_203B0B8
ldr r0, _0811EFB0 @ =gFile_graphics_interface_party_menu_misc_sheet
mov r1, sp
- bl malloc_and_decompress
+ bl MallocAndDecompress
adds r1, r0, 0
str r1, [r4]
ldr r2, [sp]
@@ -883,7 +883,7 @@ sub_811F124: @ 811F124
ldrb r0, [r4, 0x8]
bl PutWindowTilemap
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
b _0811F22A
.align 2, 0
_0811F16C: .4byte gUnknown_203B0A0
@@ -973,7 +973,7 @@ _0811F218:
ldrb r0, [r0, 0x8]
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0811F22A:
pop {r4,r5}
pop {r0}
@@ -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]
@@ -1878,7 +1878,7 @@ _0811F926:
mov r1, r8
bl sub_81227B8
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0811F934:
add sp, 0x8
pop {r3}
@@ -2000,7 +2000,7 @@ sub_811F9DC: @ 811F9DC
movs r3, 0x12
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r4-r6}
pop {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
@@ -3218,7 +3218,7 @@ sub_8120328: @ 8120328
lsrs r4, r0, 24
adds r5, r4, 0
movs r0, 0x6
- bl sub_80BF518
+ bl RunTextPrinters_CheckActive
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -3234,7 +3234,7 @@ sub_8120328: @ 8120328
bne _0812035E
movs r0, 0x6
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
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 ClearStdWindowAndFrameToTransparent
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,7 +3376,7 @@ _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
@@ -3392,7 +3392,7 @@ _08120468:
adds r1, r6, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r6}
pop {r0}
bx r0
@@ -3418,7 +3418,7 @@ 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
@@ -3433,7 +3433,7 @@ sub_81204AC: @ 81204AC
adds r1, r5, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r6}
pop {r0}
bx r0
@@ -3467,7 +3467,7 @@ sub_812050C: @ 812050C
adds r1, r5, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4,r5}
pop {r0}
bx r0
@@ -3514,7 +3514,7 @@ sub_8120558: @ 8120558
adds r1, r6, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r6}
pop {r0}
bx r0
@@ -3536,14 +3536,14 @@ sub_81205C8: @ 81205C8
lsrs r4, r5, 16
adds r7, r4, 0
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081205F2
adds r0, r6, 0
adds r1, r4, 0
- bl sub_8097D38
+ bl GiveMailToMon
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -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
@@ -4121,7 +4121,7 @@ _08120A24:
movs r1, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08120A50 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -4149,7 +4149,7 @@ sub_8120A58: @ 8120A58
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08120A88 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -4529,7 +4529,7 @@ sub_8120D08: @ 8120D08
ldr r5, _08120D38 @ =gTasks+0x8
adds r0, r4, r5
ldrb r0, [r0]
- bl sub_80BF518
+ bl RunTextPrinters_CheckActive
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -4643,7 +4643,7 @@ sub_8120DE0: @ 8120DE0
ldr r6, _08120E14 @ =gTasks+0x8
adds r4, r5, r6
ldrb r0, [r4]
- bl sub_80BF518
+ bl RunTextPrinters_CheckActive
lsls r0, 16
lsrs r0, 16
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,7 +4878,7 @@ sub_8120FB0: @ 8120FB0
push {lr}
bl FreeRestoreBattleData
bl LoadPlayerParty
- bl sub_815AC20
+ bl SetTeachyTvControllerModeToResume
ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV
bl SetMainCallback2
pop {r0}
@@ -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
@@ -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
@@ -5180,7 +5180,7 @@ _08121224:
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_08121238:
add sp, 0x14
pop {r4-r6}
@@ -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}
@@ -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,13 +6507,13 @@ sub_8121CE4: @ 8121CE4
cmp r0, 0xFF
beq _08121D04
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0xFF
strb r0, [r4]
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_08121D04:
pop {r4}
pop {r0}
@@ -6608,7 +6608,7 @@ _08121DB0:
movs r1, 0
movs r2, 0x58
movs r3, 0xF
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
ldr r4, _08121DF0 @ =gStringVar4
ldr r1, _08121DF4 @ =gUnknown_845A2E8
lsls r0, r6, 2
@@ -6627,7 +6627,7 @@ _08121DB0:
movs r3, 0
bl AddTextPrinterParameterized
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_08121DE8:
add sp, 0xC
pop {r4-r6}
@@ -6770,7 +6770,7 @@ _08121ED2:
movs r1, 0
movs r2, 0x4F
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
cmp r4, 0x3
bne _08121F00
ldr r0, [r6]
@@ -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
@@ -6854,9 +6854,9 @@ _08121F7A:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F774
+ bl Menu_InitCursorInternal
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, [r4]
_08121FA2:
ldrb r0, [r0, 0xC]
@@ -6882,7 +6882,7 @@ sub_8121FC0: @ 8121FC0
movs r1, 0
movs r2, 0x4F
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
ldr r2, _08122008 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x1
@@ -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}
@@ -6947,7 +6947,7 @@ sub_8122034: @ 8122034
movs r1, 0
movs r2, 0x4F
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
ldr r0, [r4]
ldrb r0, [r0, 0xC]
pop {r4}
@@ -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,12 +7026,12 @@ sub_81220D4: @ 81220D4
adds r0, r4, 0
movs r1, 0x4F
movs r2, 0xE0
- bl sub_814FEAC
+ bl TextWindow_LoadResourcesStdFrame0
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x4F
movs r3, 0xE
- bl sub_810EDC4
+ bl DrawDialogFrameWithCustomTileAndPalette
ldr r1, _0812210C @ =gUnknown_8417457
adds r0, r4, 0
bl sub_8122084
@@ -7054,11 +7054,11 @@ sub_8122110: @ 8122110
bl ClearWindowTilemap
adds r0, r4, 0
movs r1, 0
- bl sub_810F260
+ bl ClearDialogWindowAndFrameToTransparent
adds r0, r4, 0
bl RemoveWindow
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4}
pop {r0}
bx r0
@@ -7084,7 +7084,7 @@ sub_8122138: @ 8122138
movs r0, 0xFF
strb r0, [r4, 0xE]
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
b _081221C0
.align 2, 0
_08122168: .4byte gUnknown_203B09C
@@ -7121,11 +7121,11 @@ _0812217A:
movs r1, 0x2
movs r2, 0x3
movs r3, 0x6
- bl AddTextPrinterParametrized2
+ bl AddTextPrinterParameterized4
ldrb r0, [r4, 0xE]
bl PutWindowTilemap
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_081221C0:
add sp, 0x14
pop {r4,r5}
@@ -7553,7 +7553,7 @@ sub_81224D0: @ 81224D0
.align 2, 0
_081224F4: .4byte gSprites
_081224F8:
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0812251C
@@ -7643,7 +7643,7 @@ _08122588:
adds r0, r7, r5
ldrb r4, [r0]
adds r0, r1, 0
- bl itemid_is_mail
+ bl ItemIsMail
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7676,7 +7676,7 @@ _081225CC:
adds r0, r5, r7
ldrb r4, [r0, 0x6]
adds r0, r1, 0
- bl itemid_is_mail
+ bl ItemIsMail
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -8013,11 +8013,11 @@ _0812285C: .4byte 0x0000fffc
sub_8122860: @ 8122860
push {lr}
ldr r0, _08122878 @ =gUnknown_845A474
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _0812287C @ =gUnknown_845A4EC
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _08122880 @ =gUnknown_845A47C
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
pop {r0}
bx r0
.align 2, 0
@@ -8164,9 +8164,9 @@ _0812297C: .4byte gSprites
sub_8122980: @ 8122980
push {lr}
ldr r0, _08122994 @ =gUnknown_845A574
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _08122998 @ =gUnknown_845A57C
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
pop {r0}
bx r0
.align 2, 0
@@ -8327,7 +8327,7 @@ _08122AB6:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08122AEC
@@ -8550,27 +8550,27 @@ sub_8122C5C: @ 8122C5C
ldrb r0, [r0, 0x17]
cmp r0, 0x3
bhi _08122CA0
- bl ProcessMenuInputNoWrapAround_other
+ bl Menu_ProcessInputNoWrapAround_other
b _08122CA4
.align 2, 0
_08122C94: .4byte gPaletteFade
_08122C98: .4byte gTasks+0x8
_08122C9C: .4byte gUnknown_203B09C
_08122CA0:
- bl ProcessMenuInput_other
+ bl Menu_ProcessInput_other
_08122CA4:
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
ldrsh r4, [r7, r0]
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 24
cmp r4, r0
beq _08122CCE
ldr r0, _08122D14 @ =gUnknown_203B09C
ldr r4, [r0]
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 24
adds r4, 0xF
@@ -8578,7 +8578,7 @@ _08122CA4:
ldrb r0, [r4]
bl sub_8122138
_08122CCE:
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 24
strh r0, [r7]
@@ -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
@@ -8914,7 +8914,7 @@ _08122F56:
ldrb r0, [r6, 0x6]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
ldr r1, [r5]
ldrb r2, [r6, 0x8]
ldrb r3, [r6, 0xA]
@@ -8923,7 +8923,7 @@ _08122F56:
ldrb r0, [r6, 0xE]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
add r0, sp, 0x8
ldrb r0, [r0]
bl ClearWindowTilemap
@@ -9276,7 +9276,7 @@ _08123228:
bl sub_8123068
_08123256:
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r4-r6}
pop {r0}
@@ -9369,7 +9369,7 @@ sub_8123270: @ 8123270
ldrb r0, [r6, 0x6]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
ldr r0, _08123380 @ =gUnknown_203B0CC
ldr r1, [r0]
ldrb r2, [r6, 0x8]
@@ -9379,7 +9379,7 @@ sub_8123270: @ 8123270
ldrb r0, [r6, 0xE]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
movs r0, 0x9
ldrsb r0, [r4, r0]
ldr r1, [r5]
@@ -9454,7 +9454,7 @@ sub_8123388: @ 8123388
ldrb r0, [r0, 0x8]
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
adds r0, r6, 0
bl sub_81235E8
b _08123418
@@ -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
@@ -9937,7 +9937,7 @@ _081237C4: .4byte gPlayerParty
_081237C8: .4byte sub_81238A4
_081237CC:
ldrh r0, [r6]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081237F8
@@ -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}
@@ -10165,7 +10165,7 @@ _081239A4: .4byte gTasks
_081239A8: .4byte sub_81203B8
_081239AC:
ldrh r0, [r5]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081239EC
@@ -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}
@@ -10537,7 +10537,7 @@ _08123CC8:
bl sub_81202F8
_08123CCE:
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _08123CEC @ =gTasks
lsls r1, r7, 2
adds r1, r7
@@ -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
@@ -10776,7 +10776,7 @@ _08123EB2:
muls r0, r1
ldr r1, _08123EE8 @ =gPlayerParty
adds r0, r1
- bl sub_809803C
+ bl TakeMailFromMon2
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -11600,7 +11600,7 @@ sub_81245A4: @ 81245A4
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
ldr r5, _08124610 @ =gUnknown_203B09C
ldr r1, [r5]
lsls r0, 24
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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}
@@ -13293,7 +13293,7 @@ _08125342:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0812537C @ =gTasks
lsls r0, r7, 2
adds r0, r7
@@ -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
@@ -13501,7 +13501,7 @@ _0812551C:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125550 @ =gTasks
mov r2, r9
lsls r0, r2, 2
@@ -13548,7 +13548,7 @@ sub_8125554: @ 8125554
movs r1, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_803539C
ldr r1, _081255B4 @ =gTasks
lsls r0, r5, 2
@@ -13684,9 +13684,9 @@ _08125680:
mov r1, r8
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -13706,7 +13706,7 @@ sub_81256C0: @ 81256C0
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x2
@@ -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
@@ -13813,7 +13813,7 @@ sub_8125790: @ 8125790
ldr r0, [r0]
adds r0, 0xC
bl sub_8121CE4
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
ldr r1, _081257C4 @ =gUnknown_203B0A0
lsls r0, 24
lsrs r0, 24
@@ -13897,7 +13897,7 @@ sub_812580C: @ 812580C
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125874 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -13958,7 +13958,7 @@ 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]
@@ -13984,7 +13984,7 @@ sub_8125898: @ 8125898
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125950 @ =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -14060,7 +14060,7 @@ _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
@@ -14086,7 +14086,7 @@ _081259F6:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125A34 @ =gTasks
lsls r0, r6, 2
adds r0, r6
@@ -14225,7 +14225,7 @@ sub_8125AF0: @ 8125AF0
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4}
pop {r0}
bx r0
@@ -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
@@ -14427,7 +14427,7 @@ _08125C84:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125CEC @ =gTasks
lsls r0, r7, 2
adds r0, r7
@@ -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
@@ -14956,7 +14956,7 @@ sub_81260D8: @ 81260D8
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126134 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -15197,7 +15197,7 @@ _081262F6:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0812632C @ =gTasks
lsls r0, r6, 2
adds r0, r6
@@ -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]
@@ -15298,7 +15298,7 @@ sub_8126350: @ 8126350
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126438 @ =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -15381,7 +15381,7 @@ _0812647C:
movs r1, 0x1
bl sub_811F818
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r7}
pop {r0}
bx r0
@@ -15502,7 +15502,7 @@ sub_8126570: @ 8126570
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r4,r5}
pop {r0}
@@ -15533,7 +15533,7 @@ sub_81265BC: @ 81265BC
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r4}
pop {r0}
@@ -15765,7 +15765,7 @@ sub_8126770: @ 8126770
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrh r0, [r6]
mov r1, r8
strh r0, [r1, 0xE]
@@ -15829,7 +15829,7 @@ sub_8126804: @ 8126804
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
mov r0, r8
strh r5, [r0, 0xE]
ldr r1, _0812688C @ =gTasks
@@ -16089,7 +16089,7 @@ _08126A4E:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
b _08126ABE
.align 2, 0
_08126A80: .4byte gUnknown_203B09C
@@ -16112,7 +16112,7 @@ _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]
@@ -16170,7 +16170,7 @@ sub_8126AFC: @ 8126AFC
movs r1, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126B58 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -16221,7 +16221,7 @@ sub_8126B60: @ 8126B60
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126BC4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -16266,7 +16266,7 @@ 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 RemoveBagItem
@@ -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]
@@ -16736,7 +16736,7 @@ _08126F84: .4byte gUnknown_203B0A0
_08126F88: .4byte gPlayerParty
_08126F8C:
ldrh r0, [r5]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08126FA0
@@ -16780,7 +16780,7 @@ sub_8126FD8: @ 8126FD8
lsrs r4, r0, 24
ldr r5, _08127004 @ =gUnknown_203B0A0
ldrh r0, [r5, 0xC]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08127010
@@ -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}
@@ -17135,7 +17135,7 @@ _081272C4: .4byte gUnknown_203B0D8
_081272C8: .4byte gStringVar4
_081272CC:
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081272F0
@@ -17205,7 +17205,7 @@ sub_812734C: @ 812734C
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0812737C @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -17233,7 +17233,7 @@ 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
@@ -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
@@ -17351,7 +17351,7 @@ _0812746C:
bl sub_81202F8
_08127482:
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _081274A0 @ =gTasks
lsls r1, r6, 2
adds r1, r6
@@ -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
@@ -17844,30 +17844,30 @@ sub_812781C: @ 812781C
str r0, [sp]
ldr r0, _08127848 @ =sub_811FB28
str r0, [sp, 0x4]
- ldr r0, _0812784C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _0812784C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0xC
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
b _08127870
.align 2, 0
_08127844: .4byte gSpecialVar_0x8005
_08127848: .4byte sub_811FB28
-_0812784C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_0812784C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08127850:
movs r0, 0x7F
str r0, [sp]
ldr r0, _08127878 @ =sub_8126DC8
str r0, [sp, 0x4]
- ldr r0, _0812787C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _0812787C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [sp, 0x8]
movs r0, 0
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]
@@ -17878,7 +17878,7 @@ _08127870:
bx r0
.align 2, 0
_08127878: .4byte sub_8126DC8
-_0812787C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_0812787C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08127880: .4byte gUnknown_203B0A0
_08127884: .4byte gSpecialVar_0x8007
thumb_func_end sub_812781C
@@ -17891,19 +17891,19 @@ sub_8127888: @ 8127888
str r0, [sp]
ldr r0, _081278AC @ =sub_811FB28
str r0, [sp, 0x4]
- ldr r0, _081278B0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _081278B0 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [sp, 0x8]
movs r0, 0xB
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_081278AC: .4byte sub_811FB28
-_081278B0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_081278B0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_8127888
thumb_func_start sub_81278B4
@@ -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
@@ -18182,7 +18182,7 @@ sub_8127AC0: @ 8127AC0
bne _08127B08
_08127AE6:
ldr r4, _08127AFC @ =gStringVar1
- bl sub_80444C4
+ bl GetTrainerPartnerName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
@@ -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
@@ -19314,7 +19314,7 @@ sub_8128370: @ 8128370
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
@@ -19343,7 +19343,7 @@ sub_81283A8: @ 81283A8
movs r1, 0
movs r2, 0xB
movs r3, 0
- bl sub_811EA44
+ bl PartyMenuInit
add sp, 0xC
pop {r0}
bx r0
diff --git a/asm/play_time.s b/asm/play_time.s
deleted file mode 100644
index 41d0f6239..000000000
--- a/asm/play_time.s
+++ /dev/null
@@ -1,137 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start PlayTimeCounter_Reset
-PlayTimeCounter_Reset: @ 8054814
- ldr r1, _08054830 @ =gUnknown_3000E7C
- movs r0, 0
- strb r0, [r1]
- ldr r2, _08054834 @ =gSaveBlock2Ptr
- ldr r3, [r2]
- movs r1, 0
- movs r0, 0
- strh r0, [r3, 0xE]
- strb r1, [r3, 0x10]
- ldr r0, [r2]
- strb r1, [r0, 0x11]
- ldr r0, [r2]
- strb r1, [r0, 0x12]
- bx lr
- .align 2, 0
-_08054830: .4byte gUnknown_3000E7C
-_08054834: .4byte gSaveBlock2Ptr
- thumb_func_end PlayTimeCounter_Reset
-
- thumb_func_start PlayTimeCounter_Start
-PlayTimeCounter_Start: @ 8054838
- push {lr}
- ldr r1, _08054854 @ =gUnknown_3000E7C
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _08054858 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0xE]
- ldr r0, _0805485C @ =0x000003e7
- cmp r1, r0
- bls _08054850
- bl PlayTimeCounter_SetToMax
-_08054850:
- pop {r0}
- bx r0
- .align 2, 0
-_08054854: .4byte gUnknown_3000E7C
-_08054858: .4byte gSaveBlock2Ptr
-_0805485C: .4byte 0x000003e7
- thumb_func_end PlayTimeCounter_Start
-
- thumb_func_start sub_8054860
-sub_8054860: @ 8054860
- ldr r1, _08054868 @ =gUnknown_3000E7C
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08054868: .4byte gUnknown_3000E7C
- thumb_func_end sub_8054860
-
- thumb_func_start PlayTimeCounter_Update
-PlayTimeCounter_Update: @ 805486C
- push {lr}
- ldr r0, _080548C8 @ =gUnknown_3000E7C
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080548C4
- ldr r2, _080548CC @ =gSaveBlock2Ptr
- ldr r0, [r2]
- ldrb r1, [r0, 0x12]
- adds r1, 0x1
- movs r3, 0
- strb r1, [r0, 0x12]
- ldr r1, [r2]
- ldrb r0, [r1, 0x12]
- cmp r0, 0x3B
- bls _080548C4
- strb r3, [r1, 0x12]
- ldr r0, [r2]
- ldrb r1, [r0, 0x11]
- adds r1, 0x1
- strb r1, [r0, 0x11]
- ldr r1, [r2]
- ldrb r0, [r1, 0x11]
- cmp r0, 0x3B
- bls _080548C4
- strb r3, [r1, 0x11]
- ldr r0, [r2]
- ldrb r1, [r0, 0x10]
- adds r1, 0x1
- strb r1, [r0, 0x10]
- ldr r1, [r2]
- ldrb r0, [r1, 0x10]
- cmp r0, 0x3B
- bls _080548C4
- strb r3, [r1, 0x10]
- ldr r0, [r2]
- ldrh r1, [r0, 0xE]
- adds r1, 0x1
- strh r1, [r0, 0xE]
- lsls r1, 16
- ldr r0, _080548D0 @ =0x03e70000
- cmp r1, r0
- bls _080548C4
- bl PlayTimeCounter_SetToMax
-_080548C4:
- pop {r0}
- bx r0
- .align 2, 0
-_080548C8: .4byte gUnknown_3000E7C
-_080548CC: .4byte gSaveBlock2Ptr
-_080548D0: .4byte 0x03e70000
- thumb_func_end PlayTimeCounter_Update
-
- thumb_func_start PlayTimeCounter_SetToMax
-PlayTimeCounter_SetToMax: @ 80548D4
- ldr r1, _080548F0 @ =gUnknown_3000E7C
- movs r0, 0x2
- strb r0, [r1]
- ldr r2, _080548F4 @ =gSaveBlock2Ptr
- ldr r3, [r2]
- ldr r0, _080548F8 @ =0x000003e7
- strh r0, [r3, 0xE]
- movs r1, 0x3B
- strb r1, [r3, 0x10]
- ldr r0, [r2]
- strb r1, [r0, 0x11]
- ldr r0, [r2]
- strb r1, [r0, 0x12]
- bx lr
- .align 2, 0
-_080548F0: .4byte gUnknown_3000E7C
-_080548F4: .4byte gSaveBlock2Ptr
-_080548F8: .4byte 0x000003e7
- thumb_func_end PlayTimeCounter_SetToMax
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/player_pc.s b/asm/player_pc.s
index b5149a435..32838be77 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
@@ -149,7 +149,7 @@ _080EB77E:
strh r0, [r7, 0x14]
ldrb r0, [r7, 0x14]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -187,9 +187,9 @@ _080EB77E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EB814 @ =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -223,7 +223,7 @@ sub_80EB81C: @ 80EB81C
lsls r6, r1, 3
ldr r7, _080EB870 @ =gTasks+0x8
adds r4, r6, r7
- bl ProcessMenuInputNoWrapAround
+ bl Menu_ProcessInputNoWrapAround
lsls r0, 24
asrs r5, r0, 24
movs r0, 0x2
@@ -237,13 +237,13 @@ sub_80EB81C: @ 80EB81C
bl PlaySE
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
bl RemoveWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
@@ -256,13 +256,13 @@ _080EB874: .4byte sub_80EB9B8
_080EB878:
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
bl RemoveWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
adds r2, r7, 0
subs r2, 0x8
adds r2, r6, r2
@@ -464,7 +464,7 @@ _080EBA1E:
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -488,9 +488,9 @@ _080EBA1E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EBA88 @ =gUnknown_84021DC
lsls r0, r7, 2
adds r0, r1
@@ -541,7 +541,7 @@ sub_80EBAB8: @ 80EBAB8
ands r0, r1
cmp r0, 0
beq _080EBAE8
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
cmp r0, 0
beq _080EBB64
@@ -557,7 +557,7 @@ _080EBAE8:
ands r0, r1
cmp r0, 0
beq _080EBB20
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -566,9 +566,9 @@ _080EBAE8:
bl PlaySE
movs r0, 0x1
_080EBB04:
- bl MoveMenuCursor
+ bl Menu_MoveCursor
ldr r4, _080EBB1C @ =gUnknown_84021DC
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 22
adds r0, r4
@@ -586,7 +586,7 @@ _080EBB20:
movs r0, 0x5
bl PlaySE
ldr r4, _080EBB48 @ =gUnknown_8402208
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 21
adds r4, 0x4
@@ -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]
@@ -752,7 +752,7 @@ _080EBC78: .4byte sub_80EBCAC
_080EBC7C:
ldrb r0, [r4, 0x14]
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -811,7 +811,7 @@ sub_80EBCD8: @ 80EBCD8
bl CleanupOverworldWindowsAndTilemaps
ldrb r0, [r5, 0xC]
ldr r1, _080EBD14 @ =CB2_ReturnToField
- bl sub_810D3F4
+ bl ItemPc_Init
adds r0, r4, 0
bl DestroyTask
_080EBD06:
@@ -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 ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14]
bl ClearWindowTilemap
ldrb r0, [r4, 0x14]
@@ -1084,7 +1084,7 @@ sub_80EBEB0: @ 80EBEB0
mov r2, r8
bl AddTextPrinterParameterized
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r4, _080EBF38 @ =gUnknown_203AAC4
adds r0, r4, 0
bl sub_810EC98
@@ -1134,7 +1134,7 @@ sub_80EBF40: @ 80EBF40
cmp r0, 0
bne _080EBFEA
ldrb r0, [r4, 0x16]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r6, r0, 0
ldrb r0, [r4, 0x16]
ldr r7, _080EBF9C @ =gUnknown_203AAC6
@@ -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,9 +1174,9 @@ _080EBFB6:
ldrb r0, [r4, 0x16]
adds r1, r7, 0
mov r2, r8
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
mov r1, r8
ldrb r0, [r1, 0xA]
bl RemoveScrollIndicatorArrowPair
@@ -1288,9 +1288,9 @@ sub_80EC094: @ 80EC094
ldrb r0, [r4, 0x16]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_810EDB0
adds r0, r5, 0
bl sub_80EB8BC
@@ -1341,9 +1341,9 @@ sub_80EC0D8: @ 80EC0D8
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EC154 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -1369,7 +1369,7 @@ sub_80EC15C: @ 80EC15C
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
- bl ProcessMenuInput_other
+ bl Menu_ProcessInput_other
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@@ -1578,7 +1578,7 @@ sub_80EC2FC: @ 80EC2FC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldr r1, _080EC31C @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1875,7 +1875,7 @@ sub_80EC53C: @ 80EC53C
adds r0, r4, 0
bl sub_80EBEB0
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EC56C @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1900,7 +1900,7 @@ sub_80EC574: @ 80EC574
movs r0, 0x2
bl sub_810EBE0
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EC59C @ =gTasks
lsls r0, r4, 2
adds r0, r4
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 58c9ac77c..85bfcb620 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
@@ -2029,9 +2029,9 @@ CreatePokeballSpriteToReleaseMon: @ 804B908
lsls r0, 24
lsrs r7, r0, 24
ldr r0, _0804B9D4 @ =gUnknown_826056C
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804B9D8 @ =gUnknown_82605CC
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, _0804B9DC @ =gUnknown_82606F4
mov r1, r9
mov r2, r10
@@ -2362,9 +2362,9 @@ sub_804BB98: @ 804BB98
lsrs r0, 24
mov r9, r0
ldr r0, _0804BC3C @ =gUnknown_826056C
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804BC40 @ =gUnknown_82605CC
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, _0804BC44 @ =gUnknown_82606F4
adds r1, r6, 0
mov r2, r8
@@ -2790,10 +2790,10 @@ LoadBallGfx: @ 804BEF4
cmp r0, r1
bne _0804BF1C
adds r0, r5, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804BF58 @ =gUnknown_82605CC
adds r0, r6, r0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_0804BF1C:
cmp r4, 0x6
beq _0804BF48
diff --git a/asm/pokedex.s b/asm/pokedex.s
index 279270fbb..69ca5adcf 100644
--- a/asm/pokedex.s
+++ b/asm/pokedex.s
@@ -220,8 +220,8 @@ _08088F7C:
bx r1
thumb_func_end sub_8088F58
- thumb_func_start sub_8088F84
-sub_8088F84: @ 8088F84
+ thumb_func_start HasAllKantoMons
+HasAllKantoMons: @ 8088F84
push {r4,r5,lr}
movs r0, 0
_08088F88:
@@ -277,6 +277,6 @@ _08088FE8:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_8088F84
+ thumb_func_end HasAllKantoMons
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokedex_area_markers.s b/asm/pokedex_area_markers.s
index 6062b95ee..d6ea7f251 100644
--- a/asm/pokedex_area_markers.s
+++ b/asm/pokedex_area_markers.s
@@ -66,7 +66,7 @@ sub_8134230: @ 8134230
ands r2, r5
orrs r2, r1
str r2, [r0, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _081343D0 @ =gUnknown_846341C
mov r3, r8
lsls r3, 4
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index 24094d9af..268b65fd8 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -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
@@ -621,13 +621,13 @@ _08102A10: .4byte gUnknown_203ACF0
_08102A14:
ldr r0, [r4]
ldrb r0, [r0, 0x17]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0xC]
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 DestroyListMenu
+ bl DestroyListMenuTask
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 DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -832,7 +832,7 @@ _08102BD8:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl DestroyListMenu
+ bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -1238,7 +1238,7 @@ _08102F60:
movs r0, 0x1
movs r1, 0
movs r2, 0x3
- bl sub_8107A9C
+ bl ListMenuOverrideSetColors
b _08102F7A
.align 2, 0
_08102F6C: .4byte gUnknown_203ACF0
@@ -1246,7 +1246,7 @@ _08102F70:
movs r0, 0xA
movs r1, 0
movs r2, 0xB
- bl sub_8107A9C
+ bl ListMenuOverrideSetColors
_08102F7A:
pop {r0}
bx r0
@@ -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
@@ -1379,13 +1379,13 @@ _08103098:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
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
@@ -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
@@ -1700,13 +1700,13 @@ _08103362:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
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
@@ -2433,7 +2433,7 @@ _08103964:
ldrh r3, [r0, 0x3C]
_0810396E:
adds r0, r5, 0
- bl Unused_ListMenuInit2
+ bl ListMenuInitInRect
ldr r1, [r4]
adds r1, 0x41
strb r0, [r1]
@@ -2467,7 +2467,7 @@ _0810399C:
adds r1, r2, 0
adds r1, 0x36
adds r2, 0x34
- bl DestroyListMenu
+ bl DestroyListMenuTask
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 DestroyListMenu
+ bl DestroyListMenuTask
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 DestroyListMenu
+ bl DestroyListMenuTask
_081039E8:
pop {r0}
bx r0
@@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40
movs r1, 0
movs r2, 0x28
adds r3, r6, 0
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
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 blit_move_info_icon
+ bl BlitMoveInfoIcon
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 blit_move_info_icon
+ bl BlitMoveInfoIcon
_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 blit_move_info_icon
+ bl BlitMoveInfoIcon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08106504
@@ -7765,7 +7765,7 @@ _08106478:
lsrs r1, 24
movs r2, 0x20
movs r3, 0x1
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
_08106504:
ldr r7, _081066B8 @ =gUnknown_203ACF0
ldr r0, [r7]
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
deleted file mode 100644
index 416c996bb..000000000
--- a/asm/pokemon_3.s
+++ /dev/null
@@ -1,1228 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80444F8
-sub_80444F8: @ 80444F8
- push {r4-r6,lr}
- movs r6, 0x1
- movs r5, 0
-_080444FE:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08044548 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- movs r2, 0
- bl GetMonData
- cmp r0, 0x1
- bne _08044538
- adds r0, r4, 0
- movs r1, 0x6
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08044538
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- bls _08044538
- adds r6, r0, 0
-_08044538:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080444FE
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08044548: .4byte gPlayerParty
- thumb_func_end sub_80444F8
-
- thumb_func_start sub_804454C
-sub_804454C: @ 804454C
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08044558 @ =gFacilityClassToPicIndex
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08044558: .4byte gFacilityClassToPicIndex
- thumb_func_end sub_804454C
-
- thumb_func_start sub_804455C
-sub_804455C: @ 804455C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x5
- bhi _08044632
- lsls r0, 2
- ldr r1, _08044574 @ =_08044578
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08044574: .4byte _08044578
- .align 2, 0
-_08044578:
- .4byte _08044632
- .4byte _08044590
- .4byte _08044664
- .4byte _080445BC
- .4byte _08044664
- .4byte _080445F4
-_08044590:
- ldr r0, _080445B0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08044632
- ldr r0, _080445B4 @ =gMain
- ldr r1, _080445B8 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08044632
- b _0804461A
- .align 2, 0
-_080445B0: .4byte gBattleTypeFlags
-_080445B4: .4byte gMain
-_080445B8: .4byte 0x00000439
-_080445BC:
- ldr r0, _080445E8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08044632
- ldr r0, _080445EC @ =gMain
- ldr r1, _080445F0 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08044632
- cmp r5, 0x1
- beq _08044664
- cmp r5, 0x4
- beq _08044664
- cmp r5, 0x5
- beq _08044664
- b _08044632
- .align 2, 0
-_080445E8: .4byte gBattleTypeFlags
-_080445EC: .4byte gMain
-_080445F0: .4byte 0x00000439
-_080445F4:
- ldr r0, _08044638 @ =gBattleTypeFlags
- ldr r2, [r0]
- movs r3, 0x2
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08044648
- ldr r0, _0804463C @ =gMain
- ldr r1, _08044640 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08044632
- movs r0, 0x40
- ands r2, r0
- cmp r2, 0
- beq _08044658
-_0804461A:
- ldr r4, _08044644 @ =gLinkPlayers
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x18]
- cmp r0, r5
- bne _08044664
-_08044632:
- movs r0, 0
- b _08044666
- .align 2, 0
-_08044638: .4byte gBattleTypeFlags
-_0804463C: .4byte gMain
-_08044640: .4byte 0x00000439
-_08044644: .4byte gLinkPlayers
-_08044648:
- ldr r0, _0804466C @ =gMain
- ldr r1, _08044670 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08044632
-_08044658:
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08044632
-_08044664:
- movs r0, 0x1
-_08044666:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804466C: .4byte gMain
-_08044670: .4byte 0x00000439
- thumb_func_end sub_804455C
-
- thumb_func_start GetDeoxysStat
-GetDeoxysStat: @ 8044674
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r0, _0804469C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08044698
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xCD
- lsls r1, 1
- cmp r0, r1
- beq _080446A0
-_08044698:
- movs r0, 0
- b _080446FE
- .align 2, 0
-_0804469C: .4byte gBattleTypeFlags
-_080446A0:
- adds r1, r6, 0
- adds r1, 0x27
- adds r0, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- adds r1, r6, 0
- adds r1, 0x1A
- adds r0, r5, 0
- movs r2, 0
- bl GetMonData
- ldr r2, _08044704 @ =gUnknown_825E026
- lsls r1, r6, 1
- adds r1, r2
- ldrh r1, [r1]
- lsls r1, 1
- adds r1, r4
- cmp r0, 0
- bge _080446CC
- adds r0, 0x3
-_080446CC:
- asrs r0, 2
- adds r0, r1, r0
- adds r1, r5, 0
- adds r1, 0x54
- ldrb r1, [r1]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r6, 24
- lsrs r2, 24
- adds r1, r4, 0
- bl nature_stat_mod
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
-_080446FE:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08044704: .4byte gUnknown_825E026
- thumb_func_end GetDeoxysStat
-
- thumb_func_start sub_8044708
-sub_8044708: @ 8044708
- push {r4,r5,lr}
- sub sp, 0x4
- movs r5, 0
-_0804470E:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080447A8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xCD
- lsls r1, 1
- cmp r0, r1
- bne _08044798
- adds r0, r4, 0
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x3B
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x3C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x3D
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x3E
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x3F
- mov r2, sp
- bl SetMonData
-_08044798:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804470E
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080447A8: .4byte gPlayerParty
- thumb_func_end sub_8044708
-
- thumb_func_start sub_80447AC
-sub_80447AC: @ 80447AC
- push {lr}
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080447E8 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r2, [r0]
- movs r0, 0x7
- ands r2, r0
- adds r1, r3
- ldrb r0, [r1, 0x13]
- lsls r0, 3
- orrs r2, r0
- ldr r0, _080447EC @ =gUnknown_825E032
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- bl sub_804454C
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_080447E8: .4byte gLinkPlayers
-_080447EC: .4byte gUnknown_825E032
- thumb_func_end sub_80447AC
-
- thumb_func_start sub_80447F0
-sub_80447F0: @ 80447F0
- push {lr}
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0804482C @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r2, [r0]
- movs r0, 0x7
- ands r2, r0
- adds r1, r3
- ldrb r0, [r1, 0x13]
- lsls r0, 3
- orrs r2, r0
- ldr r1, _08044830 @ =gFacilityClassToTrainerClass
- ldr r0, _08044834 @ =gUnknown_825E032
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_0804482C: .4byte gLinkPlayers
-_08044830: .4byte gFacilityClassToTrainerClass
-_08044834: .4byte gUnknown_825E032
- thumb_func_end sub_80447F0
-
- thumb_func_start sub_8044838
-sub_8044838: @ 8044838
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _08044888 @ =gSpecialVar_0x8004
- ldrh r5, [r0]
- ldr r0, _0804488C @ =gSpecialVar_0x8005
- ldrh r4, [r0]
- ldr r0, _08044890 @ =gSpecialVar_0x8006
- ldrh r6, [r0]
- bl ZeroEnemyPartyMons
- ldr r7, _08044894 @ =gEnemyParty
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x20
- bl CreateObedientMon
- cmp r6, 0
- beq _08044880
- add r0, sp, 0x10
- strb r6, [r0]
- adds r1, r0, 0
- asrs r0, r6, 8
- strb r0, [r1, 0x1]
- adds r0, r7, 0
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
-_08044880:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044888: .4byte gSpecialVar_0x8004
-_0804488C: .4byte gSpecialVar_0x8005
-_08044890: .4byte gSpecialVar_0x8006
-_08044894: .4byte gEnemyParty
- thumb_func_end sub_8044838
-
- thumb_func_start sub_8044898
-sub_8044898: @ 8044898
- push {r4-r7,lr}
- adds r7, r2, 0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0x2
- eors r0, r5
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- adds r0, r4, 0
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- bne _080448EE
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetSetPokedexFlag
- adds r0, r4, 0
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _080448D8
- ldr r0, _080448F4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- str r7, [r0, 0x1C]
-_080448D8:
- adds r0, r6, 0
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _080448EE
- ldr r0, _080448F4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- str r7, [r0, 0x20]
-_080448EE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080448F4: .4byte gSaveBlock2Ptr
- thumb_func_end sub_8044898
-
- thumb_func_start sub_80448F8
-sub_80448F8: @ 80448F8
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- ldr r0, _0804493C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _08044944
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08044944
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- mov r0, sp
- bl StringGetEnd10
- ldr r1, _08044940 @ =gUnknown_841D148
- mov r0, sp
- bl StringCompare
- cmp r0, 0
- bne _08044944
- movs r0, 0x1
- b _08044946
- .align 2, 0
-_0804493C: .4byte gBattleTypeFlags
-_08044940: .4byte gUnknown_841D148
-_08044944:
- movs r0, 0
-_08044946:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80448F8
-
- thumb_func_start sub_8044950
-sub_8044950: @ 8044950
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r6, 0
- cmp r1, 0x3
- bls _080449EC
- adds r5, r6, 0
- ldrb r0, [r4]
- lsls r0, 28
- lsrs r0, 28
- cmp r5, r0
- bge _08044A2C
-_08044972:
- ldr r1, [r4, 0x10]
- lsls r3, r5, 1
- adds r0, r3, r5
- lsls r0, 3
- ldr r2, _080449E8 @ =gUnknown_825DEF0
- adds r1, r0, r1
- adds r0, r2
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- movs r6, 0
- ldrb r2, [r4, 0x1]
- ldr r0, [r4, 0x10]
- mov r10, r0
- mov r8, r3
- ldr r7, [r4, 0x14]
- adds r1, r5, 0x1
- mov r9, r1
- cmp r6, r2
- bcs _080449C2
- mov r12, r7
- ldr r1, [r4, 0xC]
- lsls r0, r5, 2
- adds r0, r1
- ldr r3, [r0]
-_080449A6:
- adds r0, r5, 0
- muls r0, r2
- adds r0, r6
- lsls r0, 3
- add r0, r12
- lsls r1, r6, 11
- adds r1, r3, r1
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r2, [r4, 0x1]
- cmp r6, r2
- bcc _080449A6
-_080449C2:
- mov r2, r8
- adds r1, r2, r5
- lsls r1, 3
- add r1, r10
- ldrb r0, [r4, 0x1]
- muls r0, r5
- lsls r0, 3
- adds r0, r7, r0
- str r0, [r1, 0xC]
- mov r3, r9
- lsls r0, r3, 16
- lsrs r5, r0, 16
- ldrb r0, [r4]
- lsls r0, 28
- lsrs r0, 28
- cmp r5, r0
- blt _08044972
- b _08044A2C
- .align 2, 0
-_080449E8: .4byte gUnknown_825DEF0
-_080449EC:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r2, _08044A3C @ =gUnknown_825DEF0
- ldr r1, [r4, 0x10]
- adds r0, r2
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
- ldm r0!, {r3,r5,r7}
- stm r1!, {r3,r5,r7}
- ldr r0, [r4, 0x10]
- mov r10, r0
- ldr r7, [r4, 0x14]
- ldrb r1, [r4, 0x1]
- cmp r6, r1
- bcs _08044A28
- adds r3, r7, 0
- ldr r0, [r4, 0xC]
- ldr r2, [r0]
-_08044A12:
- lsls r0, r6, 3
- adds r0, r3
- lsls r1, r6, 11
- adds r1, r2, r1
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r5, [r4, 0x1]
- cmp r6, r5
- bcc _08044A12
-_08044A28:
- mov r6, r10
- str r7, [r6, 0xC]
-_08044A2C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044A3C: .4byte gUnknown_825DEF0
- thumb_func_end sub_8044950
-
- thumb_func_start sub_8044A40
-sub_8044A40: @ 8044A40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- ldrb r0, [r4]
- lsls r0, 28
- movs r3, 0
- cmp r0, 0
- beq _08044ADA
- ldr r0, _08044AE8 @ =gUnknown_825E05C
- mov r10, r0
-_08044A5A:
- ldr r0, [r4, 0x10]
- lsls r2, r3, 1
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r0
- mov r0, r10
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- movs r5, 0
- ldr r0, [r4, 0x10]
- mov r8, r0
- mov r12, r2
- ldr r7, [r4, 0x14]
- adds r1, r3, 0x1
- mov r9, r1
- ldrb r6, [r4, 0x1]
- cmp r5, r6
- bcs _08044AAE
- adds r6, r7, 0
- ldr r1, [r4, 0xC]
- lsls r0, r3, 2
- adds r0, r1
- ldr r2, [r0]
-_08044A8C:
- ldrb r0, [r4]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r3, 0
- muls r1, r0
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- lsls r0, r5, 11
- adds r0, r2, r0
- str r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r4, 0x1]
- cmp r5, r0
- bcc _08044A8C
-_08044AAE:
- mov r5, r12
- adds r1, r5, r3
- lsls r1, 3
- add r1, r8
- ldrb r0, [r4]
- lsls r0, 28
- lsrs r0, 28
- muls r0, r3
- lsls r0, 3
- adds r0, r7, r0
- str r0, [r1, 0xC]
- ldr r6, _08044AEC @ =gUnknown_82349BC
- str r6, [r1, 0x8]
- strh r3, [r1, 0x2]
- mov r7, r9
- lsls r0, r7, 16
- lsrs r3, r0, 16
- ldrb r0, [r4]
- lsls r0, 28
- lsrs r0, 28
- cmp r3, r0
- blt _08044A5A
-_08044ADA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044AE8: .4byte gUnknown_825E05C
-_08044AEC: .4byte gUnknown_82349BC
- thumb_func_end sub_8044A40
-
- thumb_func_start SetUpMonSpriteManagerMaybe
-SetUpMonSpriteManagerMaybe: @ 8044AF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0
- mov r8, r0
- ldr r4, _08044B34 @ =gUnknown_20244F4
- ldr r1, [r4]
- cmp r1, 0
- beq _08044B1E
- ldrb r0, [r1, 0x2]
- cmp r0, 0xA3
- beq _08044B2E
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0x18
- bl memset
- mov r1, r8
- str r1, [r4]
-_08044B1E:
- ldr r4, _08044B34 @ =gUnknown_20244F4
- movs r0, 0x18
- bl AllocZeroed
- adds r2, r0, 0
- str r2, [r4]
- cmp r2, 0
- bne _08044B38
-_08044B2E:
- movs r0, 0
- b _08044D70
- .align 2, 0
-_08044B34: .4byte gUnknown_20244F4
-_08044B38:
- cmp r5, 0
- beq _08044B94
- cmp r5, 0x1
- bne _08044B94
- cmp r6, 0x4
- bne _08044B5E
- ldrb r1, [r2]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r2, [r4]
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x40
- b _08044B7C
-_08044B5E:
- cmp r6, 0x4
- bls _08044B64
- movs r6, 0
-_08044B64:
- ldrb r1, [r2]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r2, [r4]
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x10
-_08044B7C:
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08044B90 @ =gUnknown_20244F4
- ldr r1, [r2]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x3]
- b _08044BD0
- .align 2, 0
-_08044B90: .4byte gUnknown_20244F4
-_08044B94:
- cmp r6, 0
- bne _08044B9A
- movs r6, 0x1
-_08044B9A:
- cmp r6, 0x8
- bls _08044BA0
- movs r6, 0x8
-_08044BA0:
- ldr r4, _08044C10 @ =gUnknown_20244F4
- ldr r3, [r4]
- movs r0, 0xF
- adds r1, r6, 0
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldr r2, [r4]
- lsls r3, r6, 4
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- ldr r1, [r4]
- movs r2, 0
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r0, [r4]
- strb r2, [r0, 0x3]
-_08044BD0:
- ldr r5, _08044C10 @ =gUnknown_20244F4
- ldr r0, [r5]
- ldrb r1, [r0, 0x1]
- lsls r1, 11
- str r1, [r0, 0x4]
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 28
- muls r0, r1
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0x8]
- ldrb r0, [r1]
- lsls r0, 28
- lsrs r0, 23
- bl AllocZeroed
- adds r2, r0, 0
- ldr r1, [r5]
- str r2, [r1, 0xC]
- ldr r0, [r1, 0x8]
- cmp r0, 0
- beq _08044C04
- cmp r2, 0
- bne _08044C14
-_08044C04:
- movs r0, 0x1
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- b _08044C44
- .align 2, 0
-_08044C10: .4byte gUnknown_20244F4
-_08044C14:
- ldrb r0, [r1]
- lsls r0, 28
- movs r4, 0
- adds r3, r5, 0
- cmp r0, 0
- beq _08044C44
-_08044C20:
- ldr r3, [r5]
- ldr r0, [r3, 0xC]
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r3, 0x4]
- adds r2, r0, 0
- muls r2, r4
- ldr r0, [r3, 0x8]
- adds r0, r2
- str r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r3]
- lsls r0, 28
- lsrs r0, 28
- cmp r4, r0
- blt _08044C20
-_08044C44:
- ldr r5, _08044C8C @ =gUnknown_20244F4
- ldr r0, [r5]
- ldrb r1, [r0]
- lsls r1, 28
- lsrs r1, 28
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- bl AllocZeroed
- ldr r2, [r5]
- str r0, [r2, 0x10]
- ldrb r1, [r2]
- lsls r1, 28
- lsrs r1, 28
- ldrb r0, [r2, 0x1]
- lsls r0, 3
- muls r0, r1
- bl AllocZeroed
- adds r2, r0, 0
- ldr r1, [r5]
- str r2, [r1, 0x14]
- ldr r0, [r1, 0x10]
- cmp r0, 0
- beq _08044C7C
- cmp r2, 0
- bne _08044C90
-_08044C7C:
- movs r0, 0x2
- mov r1, r8
- orrs r1, r0
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- b _08044CE2
- .align 2, 0
-_08044C8C: .4byte gUnknown_20244F4
-_08044C90:
- movs r4, 0
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1]
- lsls r1, 28
- lsrs r1, 28
- muls r0, r1
- adds r3, r5, 0
- cmp r4, r0
- bge _08044CC6
- adds r7, r3, 0
- movs r5, 0x80
- lsls r5, 4
-_08044CA8:
- ldr r2, [r7]
- ldr r1, [r2, 0x14]
- lsls r0, r4, 3
- adds r0, r1
- strh r5, [r0, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2]
- lsls r0, 28
- lsrs r0, 28
- muls r0, r1
- cmp r4, r0
- blt _08044CA8
-_08044CC6:
- ldr r0, [r3]
- ldrb r4, [r0, 0x3]
- cmp r4, 0
- beq _08044CDA
- cmp r4, 0x1
- bne _08044CDA
- adds r1, r6, 0
- bl sub_8044950
- b _08044CE2
-_08044CDA:
- ldr r0, _08044D60 @ =gUnknown_20244F4
- ldr r0, [r0]
- bl sub_8044A40
-_08044CE2:
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08044D12
- ldr r4, _08044D60 @ =gUnknown_20244F4
- ldr r0, [r4]
- ldr r0, [r0, 0x14]
- cmp r0, 0
- beq _08044D00
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x14]
-_08044D00:
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- cmp r0, 0
- beq _08044D12
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x10]
-_08044D12:
- movs r0, 0x1
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08044D42
- ldr r4, _08044D60 @ =gUnknown_20244F4
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- cmp r0, 0
- beq _08044D30
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0xC]
-_08044D30:
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- cmp r0, 0
- beq _08044D42
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x8]
-_08044D42:
- mov r0, r8
- cmp r0, 0
- beq _08044D64
- ldr r4, _08044D60 @ =gUnknown_20244F4
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x18
- bl memset
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- b _08044D6C
- .align 2, 0
-_08044D60: .4byte gUnknown_20244F4
-_08044D64:
- ldr r0, _08044D7C @ =gUnknown_20244F4
- ldr r1, [r0]
- movs r0, 0xA3
- strb r0, [r1, 0x2]
-_08044D6C:
- ldr r0, _08044D7C @ =gUnknown_20244F4
- ldr r0, [r0]
-_08044D70:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08044D7C: .4byte gUnknown_20244F4
- thumb_func_end SetUpMonSpriteManagerMaybe
-
- thumb_func_start sub_8044D80
-sub_8044D80: @ 8044D80
- push {r4,lr}
- ldr r4, _08044D9C @ =gUnknown_20244F4
- ldr r1, [r4]
- cmp r1, 0
- beq _08044DFA
- ldrb r0, [r1, 0x2]
- cmp r0, 0xA3
- beq _08044DA0
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0x18
- bl memset
- b _08044DF6
- .align 2, 0
-_08044D9C: .4byte gUnknown_20244F4
-_08044DA0:
- ldr r0, [r1, 0x14]
- cmp r0, 0
- beq _08044DB0
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x14]
-_08044DB0:
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- cmp r0, 0
- beq _08044DC2
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x10]
-_08044DC2:
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- cmp r0, 0
- beq _08044DD4
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0xC]
-_08044DD4:
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- cmp r0, 0
- beq _08044DE6
- bl Free
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x8]
-_08044DE6:
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x18
- bl memset
- ldr r0, [r4]
- bl Free
-_08044DF6:
- movs r0, 0
- str r0, [r4]
-_08044DFA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8044D80
-
- thumb_func_start sub_8044E00
-sub_8044E00: @ 8044E00
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08044E14 @ =gUnknown_20244F4
- ldr r2, [r0]
- ldrb r0, [r2, 0x2]
- cmp r0, 0xA3
- beq _08044E18
- movs r0, 0
- b _08044E2C
- .align 2, 0
-_08044E14: .4byte gUnknown_20244F4
-_08044E18:
- ldrb r0, [r2]
- lsls r0, 28
- lsrs r0, 28
- cmp r1, r0
- blt _08044E24
- movs r1, 0
-_08044E24:
- ldr r0, [r2, 0xC]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
-_08044E2C:
- pop {r1}
- bx r1
- thumb_func_end sub_8044E00
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s
index c269ce8a4..4eb654a50 100644
--- a/asm/pokemon_icon.s
+++ b/asm/pokemon_icon.s
@@ -166,7 +166,7 @@ mon_icon_convert_unown_species_id: @ 8096F5C
cmp r2, 0xC9
bne _08096F86
adds r0, r1, 0
- bl mon_icon_personality_to_unown_id
+ bl GetUnownLetterByPersonality
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -195,8 +195,8 @@ _08096F92:
bx r1
thumb_func_end mon_icon_convert_unown_species_id
- thumb_func_start mon_icon_personality_to_unown_id
-mon_icon_personality_to_unown_id: @ 8096F98
+ thumb_func_start GetUnownLetterByPersonality
+GetUnownLetterByPersonality: @ 8096F98
push {lr}
adds r2, r0, 0
cmp r2, 0
@@ -228,7 +228,7 @@ _08096FCE:
_08096FD0:
pop {r1}
bx r1
- thumb_func_end mon_icon_personality_to_unown_id
+ thumb_func_end GetUnownLetterByPersonality
thumb_func_start sub_8096FD4
sub_8096FD4: @ 8096FD4
@@ -519,8 +519,8 @@ _080971C0:
_080971C8: .4byte gUnknown_83D4038
thumb_func_end sub_8097198
- thumb_func_start sub_80971CC
-sub_80971CC: @ 80971CC
+ thumb_func_start GetValidMonIconPalettePtr
+GetValidMonIconPalettePtr: @ 80971CC
push {lr}
lsls r0, 16
lsrs r2, r0, 16
@@ -542,7 +542,7 @@ _080971DC:
.align 2, 0
_080971F0: .4byte gUnknown_83D4038
_080971F4: .4byte gUnknown_83D3E80
- thumb_func_end sub_80971CC
+ thumb_func_end GetValidMonIconPalettePtr
thumb_func_start sub_80971F8
sub_80971F8: @ 80971F8
diff --git a/asm/pokemon_jump.s b/asm/pokemon_jump.s
index c00c08f20..d94a5c8db 100644
--- a/asm/pokemon_jump.s
+++ b/asm/pokemon_jump.s
@@ -170,7 +170,7 @@ sub_81476E0: @ 81476E0
lsls r0, 3
ldr r1, _081477B0 @ =gUnknown_846B42C
adds r0, r1
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
movs r2, 0x8
ldrsh r0, [r4, r2]
lsls r0, 3
diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s
index dcdf8ad3b..8fc385744 100644
--- a/asm/pokemon_jump_2.s
+++ b/asm/pokemon_jump_2.s
@@ -4793,8 +4793,8 @@ _08149DF0:
bl InitBgsFromTemplates
ldr r0, _08149EEC @ =gUnknown_846D8E4
bl InitWindows
- bl sub_80F6C14
- bl reset_temp_tile_data_buffers
+ bl ResetBgPositions
+ bl ResetTempTileDataBuffers
ldr r0, [r6]
bl sub_814AD6C
bl sub_814A9C8
@@ -4807,14 +4807,14 @@ _08149DF0:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08149EF8 @ =gUnknown_846BA00
movs r4, 0x1
str r4, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08149EFC @ =gUnknown_846BBB0
movs r1, 0x30
movs r2, 0x20
@@ -4824,13 +4824,13 @@ _08149DF0:
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08149F04 @ =gUnknown_846C520
str r4, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08149F08 @ =gUnknown_846C8D8
movs r1, 0x10
movs r2, 0x20
@@ -4840,13 +4840,13 @@ _08149DF0:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08149F10 @ =gUnknown_846D3A8
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08149F14 @ =gUnknown_846B794
movs r1, 0x20
movs r2, 0x20
@@ -4897,7 +4897,7 @@ _08149F0C: .4byte gUnknown_846C8F8
_08149F10: .4byte gUnknown_846D3A8
_08149F14: .4byte gUnknown_846B794
_08149F18:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _08149F5A
@@ -5304,7 +5304,7 @@ sub_814A218: @ 814A218
_0814A22C: .4byte gUnknown_203F3D8
_0814A230:
bl sub_814A6CC
- bl sub_81100E8
+ bl DestroyYesNoMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r5]
@@ -5644,20 +5644,20 @@ sub_814A468: @ 814A468
ldr r1, _0814A530 @ =gUnknown_846D94C
bl StringAppend
_0814A4C2:
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r4, _0814A52C @ =gUnknown_203F3D8
ldr r1, [r4]
adds r1, 0x26
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, [r4]
adds r1, 0x66
movs r0, 0x1
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r4]
adds r0, 0xA6
ldr r1, _0814A534 @ =gUnknown_841CBA9
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x4
movs r1, 0x8
movs r2, 0x16
@@ -5706,15 +5706,15 @@ sub_814A53C: @ 814A53C
ldr r1, [r4]
adds r1, 0x26
bl CopyItemName
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r4]
adds r0, 0xA6
ldr r1, _0814A5B0 @ =gUnknown_841CBCA
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x4
movs r1, 0x8
movs r2, 0x16
@@ -5761,15 +5761,15 @@ sub_814A5B4: @ 814A5B4
ldr r1, [r4]
adds r1, 0x26
bl CopyItemName
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r4]
adds r0, 0xA6
ldr r1, _0814A628 @ =gUnknown_841CBE4
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x4
movs r1, 0x9
movs r2, 0x16
@@ -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
@@ -6777,7 +6777,7 @@ sub_814AD6C: @ 814AD6C
ldr r5, _0814ADAC @ =gUnknown_846E0B0
_0814AD74:
adds r0, r5, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r5, 0x8
adds r4, 0x1
cmp r4, 0x4
@@ -6881,7 +6881,7 @@ _0814AE2A:
adds r0, r1
ldr r3, [r7, 0x8]
mov r1, r8
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
mov r3, r8
str r3, [sp, 0x18]
adds r4, r6, 0
@@ -6903,7 +6903,7 @@ _0814AE2A:
ands r1, r5
orrs r1, r4
str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
mov r0, r8
bl Free
mov r0, r10
@@ -7930,7 +7930,7 @@ 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
@@ -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 56b077cef..c8906230b 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
@@ -1558,7 +1558,7 @@ sub_811D184: @ 811D184
lsls r5, r1, 16
lsrs r5, 16
bl FreeAllWindowBuffers
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
movs r0, 0
movs r1, 0
bl SetGpuReg
@@ -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
@@ -1654,7 +1654,7 @@ _0811D27C: .4byte 0x00001914
thumb_func_start sub_811D280
sub_811D280: @ 811D280
push {lr}
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
beq _0811D290
@@ -1703,7 +1703,7 @@ sub_811D2D0: @ 811D2D0
bl ClearWindowTilemap
movs r0, 0
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
movs r0, 0
movs r1, 0x1
bl CopyWindowToVram
@@ -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
@@ -1815,15 +1815,15 @@ _0811D3C0:
_0811D3D4: .4byte gUnknown_841B295
_0811D3D8: .4byte gUnknown_841B2A7
_0811D3DC:
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
bl sub_811D0F4
adds r1, r0, 0
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
bl sub_811D0D0
adds r1, r0, 0
movs r0, 0x1
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
adds r4, 0x14
ldr r1, _0811D400 @ =gUnknown_841B32E
b _0811D470
@@ -1866,20 +1866,20 @@ _0811D444: .4byte gUnknown_841B2F1
_0811D448: .4byte gUnknown_841B2ED
_0811D44C: .4byte gUnknown_8459998
_0811D450:
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
bl sub_811D0F4
adds r1, r0, 0
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
bl sub_811D0C4
adds r1, r0, 0
movs r0, 0x1
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
adds r4, 0x14
ldr r1, _0811D478 @ =gUnknown_841B306
_0811D470:
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _0811D4A2
.align 2, 0
_0811D478: .4byte gUnknown_841B306
@@ -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}
@@ -2353,7 +2353,7 @@ sub_811D7D4: @ 811D7D4
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
cmp r4, 0x4
beq _0811D818
ldr r0, _0811D814 @ =gUnknown_845963C
@@ -2446,7 +2446,7 @@ _0811D884:
adds r1, r6, 0
adds r2, r7, 0
mov r3, r10
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
mov r0, r8
bl GetMonFrontSpritePal
adds r1, r4, 0
@@ -3699,7 +3699,7 @@ sub_811E204: @ 811E204
sub sp, 0x8
mov r10, r0
ldr r0, _0811E2E0 @ =gUnknown_84599B8
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _0811E2E4 @ =gUnknown_84599C0
bl LoadSpritePalette
movs r0, 0
@@ -4148,7 +4148,7 @@ _0811E582:
sub_811E588: @ 811E588
push {lr}
ldr r0, _0811E59C @ =gUnknown_84599C8
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _0811E5A0 @ =gUnknown_84599D0
bl LoadSpritePalette
pop {r0}
@@ -4216,7 +4216,7 @@ sub_811E5B8: @ 811E5B8
str r1, [r4]
mov r1, r9
strh r1, [r4, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r0, r4, 0
bl LoadSpritePalette
ldr r0, _0811E674 @ =sub_811E694
@@ -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 848434a55..a7777c2ca 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]
@@ -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
@@ -1466,7 +1466,7 @@ _0808C454:
strh r0, [r5, 0x8]
b _0808C69C
_0808C45C:
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xC]
@@ -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
@@ -1665,8 +1665,8 @@ _0808C5D8:
_0808C5F4:
movs r0, 0x1
negs r0, r0
- bl MoveMenuCursor
- bl GetMenuCursorPos
+ bl Menu_MoveCursor
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xA]
@@ -1699,8 +1699,8 @@ _0808C624:
strh r6, [r5, 0xA]
_0808C63C:
movs r0, 0x1
- bl MoveMenuCursor
- bl GetMenuCursorPos
+ bl Menu_MoveCursor
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xA]
@@ -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
@@ -1861,7 +1861,7 @@ sub_808C72C: @ 808C72C
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
mov r0, r10
strh r5, [r0]
add sp, 0xC
@@ -2669,7 +2669,7 @@ _0808CDC0: .4byte gUnknown_20397B0
c2_Box: @ 808CDC4
push {lr}
bl RunTasks
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl sub_808EFC8
bl sub_808F99C
bl AnimateSprites
@@ -2835,7 +2835,7 @@ sub_808CF10: @ 808CF10
ldr r1, _0808CF88 @ =gKeyRepeatStartDelay
movs r0, 0x14
strh r0, [r1]
- bl clear_scheduled_bg_copies_to_vram
+ bl ClearScheduledBgCopiesToVram
movs r0, 0x3
bl sub_80F7AD8
ldr r2, _0808CF8C @ =gUnknown_83CE6F8
@@ -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
@@ -3377,7 +3377,7 @@ _0808D3DC:
ldr r1, _0808D40C @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808D404
@@ -3491,7 +3491,7 @@ _0808D4D8:
ldr r1, _0808D504 @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808D508
@@ -4109,7 +4109,7 @@ _0808DA20:
ldr r2, _0808DA54 @ =0x00000ce2
adds r0, r2
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _0808DAA0
@@ -4154,7 +4154,7 @@ _0808DA90:
ldr r2, _0808DAA8 @ =0x00000ce2
adds r0, r1, r2
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808DAAC
@@ -4971,7 +4971,7 @@ _0808E166:
ldr r1, _0808E17C @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _0808E180
@@ -5275,7 +5275,7 @@ _0808E3FC:
ldr r1, _0808E418 @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _0808E41C
@@ -6738,7 +6738,7 @@ sub_808EFE4: @ 808EFE4
movs r0, 0x1
bl ShowBg
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -6956,7 +6956,7 @@ sub_808F1D0: @ 808F1D0
bl sub_808F49C
bl sub_808F5E8
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r0}
bx r0
.align 2, 0
@@ -7233,7 +7233,7 @@ sub_808F3F8: @ 808F3F8
adds r0, r1
ldr r5, _0808F474 @ =0x000022bc
adds r1, r4, r5
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
ldr r1, [r6]
ldr r2, _0808F478 @ =0x00000cd8
adds r0, r1, r2
@@ -7526,7 +7526,7 @@ _0808F66E:
movs r0, 0
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r4}
pop {r0}
@@ -7608,7 +7608,7 @@ _0808F718:
bl sub_80F7E54
_0808F73A:
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0808F754 @ =gUnknown_20397B0
ldr r0, [r0]
ldr r1, _0808F758 @ =0x000002c7
@@ -7680,7 +7680,7 @@ sub_808F794: @ 808F794
movs r0, 0x1
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x8
bl sub_8090B98
ldr r1, [r4]
@@ -7800,7 +7800,7 @@ sub_808F850: @ 808F850
cmp r0, 0x14
beq _0808F8D4
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
b _0808F8FE
.align 2, 0
@@ -7822,7 +7822,7 @@ _0808F8D4:
movs r0, 0x2
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0808F8FC:
movs r0, 0
_0808F8FE:
@@ -7859,7 +7859,7 @@ _0808F934:
movs r0, 0x2
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r0}
bx r0
@@ -8068,7 +8068,7 @@ sub_808FAA8: @ 808FAA8
movs r0, 0x1
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r0}
bx r0
@@ -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
@@ -8190,7 +8190,7 @@ sub_808FBA4: @ 808FBA4
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r1, _0808FBC8 @ =gUnknown_83CEA88
lsls r0, r6, 3
adds r0, r1
@@ -8231,7 +8231,7 @@ _0808FC04:
adds r1, r2
_0808FC0C:
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
b _0808FC7C
.align 2, 0
_0808FC14: .4byte gUnknown_20397B0
@@ -8281,7 +8281,7 @@ _0808FC62:
ldr r0, _0808FCE0 @ =0x000021db
adds r1, r0
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
_0808FC7C:
ldr r5, _0808FCDC @ =gUnknown_20397B0
ldr r0, [r5]
@@ -8292,7 +8292,7 @@ _0808FC7C:
lsls r1, r6, 3
adds r1, r2
ldr r1, [r1]
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -8318,7 +8318,7 @@ _0808FC7C:
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -8349,7 +8349,7 @@ sub_808FCE8: @ 808FCE8
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
- bl MoveMenuCursorNoWrapAround
+ bl Menu_MoveCursorNoWrapAround
add sp, 0xC
pop {r4}
pop {r0}
@@ -8363,9 +8363,9 @@ sub_808FD20: @ 808FD20
push {lr}
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r0}
bx r0
thumb_func_end sub_808FD20
@@ -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
@@ -18314,7 +18314,7 @@ _08094A48: .4byte gUnknown_20397B0
_08094A4C: .4byte 0x00000ce2
_08094A50:
ldrh r0, [r1]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _08094A68
@@ -18344,7 +18344,7 @@ _08094A70:
_08094A8C: .4byte 0x00000ce2
_08094A90:
ldrh r0, [r1]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -18931,7 +18931,7 @@ sub_8094E88: @ 8094E88
movs r1, 0
movs r2, 0xB
movs r3, 0xE
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
ldr r2, [r5]
adds r0, r2, r4
ldrb r0, [r0]
@@ -18961,9 +18961,9 @@ sub_8094E88: @ 8094E88
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, [r5]
ldr r3, _08094F8C @ =0x00000caa
adds r0, r3
@@ -19023,7 +19023,7 @@ _08094FB6:
bl PlaySE
movs r0, 0x1
negs r0, r0
- bl MoveMenuCursor
+ bl Menu_MoveCursor
b _08094FF2
.align 2, 0
_08094FD0: .4byte gMain
@@ -19035,10 +19035,10 @@ _08094FD4:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
- bl MoveMenuCursor
+ bl Menu_MoveCursor
b _08094FF2
_08094FEA:
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r5, r0, 24
_08094FF2:
@@ -19077,7 +19077,7 @@ sub_8095024: @ 8095024
adds r0, r4
ldrb r0, [r0]
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -20609,7 +20609,7 @@ _08095B9C:
orrs r0, r1
str r0, [r2, 0x4]
mov r0, r9
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
mov r4, r9
ldrh r0, [r4, 0x6]
bl GetSpriteTileStartByTag
@@ -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}
@@ -22334,7 +22334,7 @@ _080968D0:
movs r3, 0x14
bl FillBgTilemapBufferRect
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r4-r7}
pop {r0}
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 7f5e31b7c..ce3a4dbc6 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -3197,7 +3197,7 @@ _08135FD8:
.align 2, 0
_08135FE0: .4byte gUnknown_84636C0
_08135FE4:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _08136020
_08135FEA:
ldr r1, _08135FFC @ =gUnknown_8E9A460
@@ -3206,12 +3206,12 @@ _08135FEA:
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _08136020
.align 2, 0
_08135FFC: .4byte gUnknown_8E9A460
_08136000:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -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}
@@ -5747,7 +5747,7 @@ _08137574:
sub_8137578: @ 8137578
push {r4-r7,lr}
sub sp, 0xD4
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r7, _081375E8 @ =gUnknown_203B140
ldr r0, [r7]
ldr r4, _081375EC @ =0x00003290
@@ -5760,7 +5760,7 @@ sub_8137578: @ 8137578
adds r0, r1
ldr r1, [r0]
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r7]
adds r0, r4
movs r1, 0x24
@@ -5777,7 +5777,7 @@ _081375B2:
bl ConvertIntToDecimalStringN
movs r0, 0x1
add r1, sp, 0x14
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r7]
adds r0, r4
movs r1, 0x23
@@ -5824,7 +5824,7 @@ _0813761C:
_08137626:
adds r1, r4, 0
movs r0, 0x2
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r4, _08137664 @ =gUnknown_203B140
ldr r0, [r4]
ldr r1, _08137668 @ =0x00003290
@@ -5901,7 +5901,7 @@ _081376C0:
ldr r1, _081376D8 @ =gUnknown_8419841
_081376CE:
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _081376E6
.align 2, 0
_081376D8: .4byte gUnknown_8419841
@@ -5909,7 +5909,7 @@ _081376DC:
add r4, sp, 0x3C
ldr r1, _08137714 @ =gUnknown_8419822
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_081376E6:
ldr r0, _08137718 @ =gUnknown_203B140
ldr r0, [r0]
@@ -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}
@@ -5944,7 +5944,7 @@ _08137720: .4byte gUnknown_8463FA4
sub_8137724: @ 8137724
push {r4-r6,lr}
sub sp, 0xD4
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r5, _081377A0 @ =gUnknown_203B140
ldr r0, [r5]
ldr r4, _081377A4 @ =0x00003290
@@ -5957,7 +5957,7 @@ sub_8137724: @ 8137724
adds r0, r1
ldr r1, [r0]
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r5]
adds r0, r4
movs r1, 0x24
@@ -5974,7 +5974,7 @@ _0813775E:
bl ConvertIntToDecimalStringN
movs r0, 0x1
add r1, sp, 0x14
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r5]
adds r0, r4
movs r1, 0x23
@@ -6025,7 +6025,7 @@ _081377D0:
ldr r1, _081377E8 @ =gUnknown_841979D
_081377DE:
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _081377F6
.align 2, 0
_081377E8: .4byte gUnknown_841979D
@@ -6033,7 +6033,7 @@ _081377EC:
add r4, sp, 0x3C
ldr r1, _08137820 @ =gUnknown_8419782
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_081377F6:
ldr r0, _08137824 @ =gUnknown_203B140
ldr r0, [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
@@ -6077,7 +6077,7 @@ _08137846:
_08137850:
adds r1, r4, 0
movs r0, 0x2
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r4, _08137890 @ =gUnknown_203B140
ldr r0, [r4]
ldr r1, _08137894 @ =0x00003290
@@ -6149,7 +6149,7 @@ _081378EA:
ldr r1, _081378F8 @ =gUnknown_841988A
_081378EE:
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _08137906
.align 2, 0
_081378F8: .4byte gUnknown_841988A
@@ -6157,7 +6157,7 @@ _081378FC:
add r4, sp, 0x3C
ldr r1, _08137934 @ =gUnknown_8419860
adds r0, r4, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_08137906:
ldr r0, _08137938 @ =gUnknown_203B140
ldr r0, [r0]
@@ -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 blit_move_info_icon
+ bl BlitMoveInfoIcon
_08137CDE:
adds r0, r4, 0x1
lsls r0, 24
@@ -6660,7 +6660,7 @@ _08137CDE:
lsrs r1, 24
movs r2, 0x3
movs r3, 0x75
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
_08137D0E:
pop {r4,r5}
pop {r0}
@@ -8325,7 +8325,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x2F
movs r3, 0x23
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
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 blit_move_info_icon
+ bl BlitMoveInfoIcon
b _08138B0E
.align 2, 0
_08138AB0: .4byte 0x00003003
@@ -8365,7 +8365,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0
movs r3, 0x3
- bl blit_move_info_icon
+ bl BlitMoveInfoIcon
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 blit_move_info_icon
+ bl BlitMoveInfoIcon
_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 is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _08138B84
bl sub_811FA20
@@ -9193,7 +9193,7 @@ sub_81390B0: @ 81390B0
mov r4, sp
adds r4, 0x6
strb r0, [r4]
- ldr r5, _081391E8 @ =gUnknown_825DEA1
+ ldr r5, _081391E8 @ =gPPUpGetMask
ldr r0, _081391E0 @ =gUnknown_203B16D
ldrb r1, [r0]
adds r0, r1, r5
@@ -9278,7 +9278,7 @@ _081391D8: .4byte gUnknown_203B140
_081391DC: .4byte 0x000032f4
_081391E0: .4byte gUnknown_203B16D
_081391E4: .4byte gUnknown_203B16E
-_081391E8: .4byte gUnknown_825DEA1
+_081391E8: .4byte gPPUpGetMask
thumb_func_end sub_81390B0
thumb_func_start sub_81391EC
@@ -9340,7 +9340,7 @@ sub_81391EC: @ 81391EC
mov r4, sp
adds r4, 0x6
strb r0, [r4]
- ldr r5, _08139324 @ =gUnknown_825DEA1
+ ldr r5, _08139324 @ =gPPUpGetMask
ldr r0, _0813931C @ =gUnknown_203B16D
ldrb r1, [r0]
adds r0, r1, r5
@@ -9425,7 +9425,7 @@ _08139314: .4byte gUnknown_203B140
_08139318: .4byte 0x000032f4
_0813931C: .4byte gUnknown_203B16D
_08139320: .4byte gUnknown_203B16E
-_08139324: .4byte gUnknown_825DEA1
+_08139324: .4byte gPPUpGetMask
thumb_func_end sub_81391EC
thumb_func_start sub_8139328
@@ -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]
@@ -10482,7 +10482,7 @@ _08139BA0:
bl __floatsidf
str r0, [sp]
str r1, [sp, 0x4]
- ldr r3, _08139BDC @ =0x9999999a
+ ldr r3, _08139BD8+4 @ =0x9999999a
ldr r2, _08139BD8 @ =0x3fe99999
bl __muldf3
adds r5, r1, 0
@@ -10503,11 +10503,10 @@ _08139BA0:
movs r0, 0x2
b _08139C16
.align 2, 0
-_08139BD8: .4byte 0x3fe99999
-_08139BDC: .4byte 0x9999999a
+_08139BD8: .double 0.8
_08139BE0: .4byte gUnknown_203B170
_08139BE4:
- ldr r3, _08139C08 @ =0x33333333
+ ldr r3, _08139C04+4 @ =0x33333333
ldr r2, _08139C04 @ =0x3fe33333
ldr r0, [sp]
ldr r1, [sp, 0x4]
@@ -10522,8 +10521,7 @@ _08139BE4:
movs r0, 0x1
b _08139C16
.align 2, 0
-_08139C04: .4byte 0x3fe33333
-_08139C08: .4byte 0x33333333
+_08139C04: .double 0.6
_08139C0C: .4byte gUnknown_203B170
_08139C10:
ldr r0, _08139C38 @ =gUnknown_203B170
@@ -13239,7 +13237,7 @@ _0813B16C:
_0813B190: .4byte 0x000032f4
_0813B194: .4byte 0x00003210
_0813B198:
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _0813B1C4
ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers
diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s
index 14703e26e..264ca380d 100644
--- a/asm/post_battle_event_funcs.s
+++ b/asm/post_battle_event_funcs.s
@@ -44,7 +44,7 @@ _080CA318:
ldrb r0, [r2, 0x11]
orrs r1, r0
movs r0, 0x1
- bl sub_8054F00
+ bl SetGameStat
_080CA33A:
bl sub_804C1AC
movs r0, 0x1
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 187da882f..01c5a71c7 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -595,7 +595,7 @@ _080C02F0: .4byte gUnknown_20399D4
_080C02F4: .4byte 0x00004796
_080C02F8: .4byte gUnknown_83EF25A
_080C02FC:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _080C03C8
_080C0302:
ldr r1, _080C0330 @ =gUnknown_83EF61C
@@ -604,7 +604,7 @@ _080C0302:
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _080C0334 @ =gUnknown_20399D4
ldr r0, [r0]
ldr r2, _080C0338 @ =0x00004796
@@ -617,7 +617,7 @@ _080C0302:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _080C03C8
.align 2, 0
_080C0330: .4byte gUnknown_83EF61C
@@ -625,7 +625,7 @@ _080C0334: .4byte gUnknown_20399D4
_080C0338: .4byte 0x00004796
_080C033C: .4byte gUnknown_83F1978
_080C0340:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -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
@@ -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
diff --git a/asm/reset_save_heap.s b/asm/reset_save_heap.s
deleted file mode 100644
index fb46afb94..000000000
--- a/asm/reset_save_heap.s
+++ /dev/null
@@ -1,68 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8079B7C
-sub_8079B7C: @ 8079B7C
- push {r4,r5,lr}
- ldr r5, _08079BEC @ =0x04000208
- ldrh r4, [r5]
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x1
- bl RegisterRamReset
- movs r0, 0
- movs r1, 0x80
- bl ClearGpuRegBits
- strh r4, [r5]
- ldr r1, _08079BF0 @ =gMain
- ldr r0, _08079BF4 @ =0x00000439
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl SetSaveBlocksPointers
- bl sub_8054A28
- bl Save_ResetSaveCounters
- movs r0, 0
- bl Save_LoadGameData
- ldr r0, _08079BF8 @ =gSaveFileStatus
- ldrh r0, [r0]
- cmp r0, 0
- beq _08079BC4
- cmp r0, 0x2
- bne _08079BC8
-_08079BC4:
- bl Sav2_ClearSetDefault
-_08079BC8:
- ldr r0, _08079BFC @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- lsls r0, 31
- lsrs r0, 31
- bl SetPokemonCryStereo
- ldr r0, _08079C00 @ =gHeap
- movs r1, 0xE0
- lsls r1, 9
- bl InitHeap
- ldr r0, _08079C04 @ =sub_8056938
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08079BEC: .4byte 0x04000208
-_08079BF0: .4byte gMain
-_08079BF4: .4byte 0x00000439
-_08079BF8: .4byte gSaveFileStatus
-_08079BFC: .4byte gSaveBlock2Ptr
-_08079C00: .4byte gHeap
-_08079C04: .4byte sub_8056938
- thumb_func_end sub_8079B7C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
index a9f23d1d4..9ec3e3580 100644
--- a/asm/reshow_battle_screen.s
+++ b/asm/reshow_battle_screen.s
@@ -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:
@@ -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/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
deleted file mode 100644
index 2ac2cc0a4..000000000
--- a/asm/rom6.s
+++ /dev/null
@@ -1,459 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start npc_before_player_of_type
-npc_before_player_of_type: @ 80C97A8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080C97E8 @ =gUnknown_2039A04
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C97EC @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x5]
- cmp r0, r5
- bne _080C97F4
- ldr r1, _080C97F0 @ =gSpecialVar_LastTalked
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- movs r0, 0x1
- b _080C97F6
- .align 2, 0
-_080C97E8: .4byte gUnknown_2039A04
-_080C97EC: .4byte gMapObjects
-_080C97F0: .4byte gSpecialVar_LastTalked
-_080C97F4:
- movs r0, 0
-_080C97F6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end npc_before_player_of_type
-
- thumb_func_start oei_task_add
-oei_task_add: @ 80C97FC
- push {lr}
- ldr r0, _080C9818 @ =gUnknown_2039A04
- adds r1, r0, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _080C981C @ =task08_080C9820
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C9818: .4byte gUnknown_2039A04
-_080C981C: .4byte task08_080C9820
- thumb_func_end oei_task_add
-
- thumb_func_start task08_080C9820
-task08_080C9820: @ 80C9820
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ScriptContext2_Enable
- ldr r1, _080C9874 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r1, [r1, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9878 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080C9856
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C98A2
-_080C9856:
- ldr r0, _080C987C @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _080C9888
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _080C9880 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C9884 @ =sub_80C98FC
- b _080C98A0
- .align 2, 0
-_080C9874: .4byte gPlayerAvatar
-_080C9878: .4byte gMapObjects
-_080C987C: .4byte gMapHeader
-_080C9880: .4byte gTasks
-_080C9884: .4byte sub_80C98FC
-_080C9888:
- bl sub_805CB70
- adds r0, r4, 0
- movs r1, 0x45
- bl sub_8063CA4
- ldr r0, _080C98A8 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C98AC @ =sub_80C98B0
-_080C98A0:
- str r0, [r1]
-_080C98A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C98A8: .4byte gTasks
-_080C98AC: .4byte sub_80C98B0
- thumb_func_end task08_080C9820
-
- thumb_func_start sub_80C98B0
-sub_80C98B0: @ 80C98B0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C98EC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C98F0 @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C98E4
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _080C98F4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C98F8 @ =sub_80C98FC
- str r0, [r1]
-_080C98E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C98EC: .4byte gPlayerAvatar
-_080C98F0: .4byte gMapObjects
-_080C98F4: .4byte gTasks
-_080C98F8: .4byte sub_80C98FC
- thumb_func_end sub_80C98B0
-
- thumb_func_start sub_80C98FC
-sub_80C98FC: @ 80C98FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080C9980
- bl player_get_direction_lower_nybble
- ldr r6, _080C9988 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r6, 0x4]
- cmp r0, 0x1
- bne _080C9922
- str r4, [r6, 0x8]
-_080C9922:
- ldr r1, [r6, 0x4]
- cmp r1, 0x2
- bne _080C992C
- movs r0, 0x1
- str r0, [r6, 0x8]
-_080C992C:
- cmp r1, 0x3
- bne _080C9934
- movs r0, 0x2
- str r0, [r6, 0x8]
-_080C9934:
- cmp r1, 0x4
- bne _080C993C
- movs r0, 0x3
- str r0, [r6, 0x8]
-_080C993C:
- ldr r5, _080C998C @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C9990 @ =gMapObjects
- adds r4, r0
- bl GetPlayerAvatarGraphicsIdByCurrentState
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805F060
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9994 @ =gSprites
- adds r0, r1
- ldrb r1, [r6, 0x8]
- bl StartSpriteAnim
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r1, _080C9998 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C999C @ =sub_80C99A0
- str r1, [r0]
-_080C9980:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9988: .4byte gFieldEffectArguments
-_080C998C: .4byte gPlayerAvatar
-_080C9990: .4byte gMapObjects
-_080C9994: .4byte gSprites
-_080C9998: .4byte gTasks
-_080C999C: .4byte sub_80C99A0
- thumb_func_end sub_80C98FC
-
- thumb_func_start sub_80C99A0
-sub_80C99A0: @ 80C99A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080C99D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x18]
- lsls r1, 16
- ldrh r0, [r0, 0x1A]
- orrs r1, r0
- bl _call_via_r1
- ldr r1, _080C99D4 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C99D0: .4byte gTasks
-_080C99D4: .4byte gPlayerAvatar
- thumb_func_end sub_80C99A0
-
- thumb_func_start SetUpFieldMove_RockSmash
-SetUpFieldMove_RockSmash: @ 80C99D8
- push {lr}
- movs r0, 0x60
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C99EC
- movs r0, 0
- b _080C99FA
-_080C99EC:
- ldr r1, _080C9A00 @ =gFieldCallback2
- ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080C9A08 @ =gPostMenuFieldCallback
- ldr r0, _080C9A0C @ =sub_80C9A10
- str r0, [r1]
- movs r0, 0x1
-_080C99FA:
- pop {r1}
- bx r1
- .align 2, 0
-_080C9A00: .4byte gFieldCallback2
-_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu
-_080C9A08: .4byte gPostMenuFieldCallback
-_080C9A0C: .4byte sub_80C9A10
- thumb_func_end SetUpFieldMove_RockSmash
-
- thumb_func_start sub_80C9A10
-sub_80C9A10: @ 80C9A10
- push {lr}
- bl GetCursorSelectionMonId
- ldr r1, _080C9A28 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- ldr r0, _080C9A2C @ =gUnknown_81BE064
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C9A28: .4byte gFieldEffectArguments
-_080C9A2C: .4byte gUnknown_81BE064
- thumb_func_end sub_80C9A10
-
- thumb_func_start oei_rocksmash
-oei_rocksmash: @ 80C9A30
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9A58 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C9A5C @ =sub_80C9A60
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x13
- bl IncrementGameStat
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C9A58: .4byte gTasks
-_080C9A5C: .4byte sub_80C9A60
- thumb_func_end oei_rocksmash
-
- thumb_func_start sub_80C9A60
-sub_80C9A60: @ 80C9A60
- push {lr}
- movs r0, 0x7C
- bl PlaySE
- movs r0, 0x25
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C9A60
-
- thumb_func_start SetUpFieldMove_Dig
-SetUpFieldMove_Dig: @ 80C9A78
- push {lr}
- bl sub_80A1B8C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9A8A
- movs r0, 0
- b _080C9A98
-_080C9A8A:
- ldr r1, _080C9A9C @ =gFieldCallback2
- ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080C9AA4 @ =gPostMenuFieldCallback
- ldr r0, _080C9AA8 @ =hm2_dig
- str r0, [r1]
- movs r0, 0x1
-_080C9A98:
- pop {r1}
- bx r1
- .align 2, 0
-_080C9A9C: .4byte gFieldCallback2
-_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu
-_080C9AA4: .4byte gPostMenuFieldCallback
-_080C9AA8: .4byte hm2_dig
- thumb_func_end SetUpFieldMove_Dig
-
- thumb_func_start hm2_dig
-hm2_dig: @ 80C9AAC
- push {lr}
- bl sub_8054D70
- movs r0, 0x26
- bl FieldEffectStart
- bl GetCursorSelectionMonId
- ldr r1, _080C9AC8 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C9AC8: .4byte gFieldEffectArguments
- thumb_func_end hm2_dig
-
- thumb_func_start sub_80C9ACC
-sub_80C9ACC: @ 80C9ACC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9AF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C9AF8 @ =sub_80C9AFC
- 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
-_080C9AF4: .4byte gTasks
-_080C9AF8: .4byte sub_80C9AFC
- thumb_func_end sub_80C9ACC
-
- thumb_func_start sub_80C9AFC
-sub_80C9AFC: @ 80C9AFC
- push {lr}
- movs r0, 0x26
- bl FieldEffectActiveListRemove
- ldr r0, _080C9B24 @ =sub_80A1C44
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9B28 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080C9B24: .4byte sub_80A1C44
-_080C9B28: .4byte gTasks
- thumb_func_end sub_80C9AFC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/safari_zone.s b/asm/safari_zone.s
deleted file mode 100644
index 48103dc9c..000000000
--- a/asm/safari_zone.s
+++ /dev/null
@@ -1,167 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetSafariZoneFlag
-GetSafariZoneFlag: @ 80A0E90
- push {lr}
- movs r0, 0x80
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetSafariZoneFlag
-
- thumb_func_start sub_80A0EA4
-sub_80A0EA4: @ 80A0EA4
- push {lr}
- movs r0, 0x80
- lsls r0, 4
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_80A0EA4
-
- thumb_func_start ResetSafariZoneFlag
-ResetSafariZoneFlag: @ 80A0EB4
- push {lr}
- movs r0, 0x80
- lsls r0, 4
- bl FlagClear
- pop {r0}
- bx r0
- thumb_func_end ResetSafariZoneFlag
-
- thumb_func_start sub_80A0EC4
-sub_80A0EC4: @ 80A0EC4
- push {lr}
- movs r0, 0x11
- bl IncrementGameStat
- bl sub_80A0EA4
- ldr r1, _080A0EE4 @ =gUnknown_2039994
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _080A0EE8 @ =gUnknown_2039996
- movs r2, 0x96
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A0EE4: .4byte gUnknown_2039994
-_080A0EE8: .4byte gUnknown_2039996
- thumb_func_end sub_80A0EC4
-
- thumb_func_start sub_80A0EEC
-sub_80A0EEC: @ 80A0EEC
- push {lr}
- bl ResetSafariZoneFlag
- ldr r1, _080A0F04 @ =gUnknown_2039994
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080A0F08 @ =gUnknown_2039996
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A0F04: .4byte gUnknown_2039994
-_080A0F08: .4byte gUnknown_2039996
- thumb_func_end sub_80A0EEC
-
- thumb_func_start sub_80A0F0C
-sub_80A0F0C: @ 80A0F0C
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _080A0F24
- ldr r1, _080A0F28 @ =gUnknown_2039996
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _080A0F2C
-_080A0F24:
- movs r0, 0
- b _080A0F34
- .align 2, 0
-_080A0F28: .4byte gUnknown_2039996
-_080A0F2C:
- ldr r0, _080A0F38 @ =gUnknown_81BFBC5
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_080A0F34:
- pop {r1}
- bx r1
- .align 2, 0
-_080A0F38: .4byte gUnknown_81BFBC5
- thumb_func_end sub_80A0F0C
-
- thumb_func_start sub_80A0F3C
-sub_80A0F3C: @ 80A0F3C
- push {lr}
- ldr r0, _080A0F48 @ =gUnknown_81BFBAA
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080A0F48: .4byte gUnknown_81BFBAA
- thumb_func_end sub_80A0F3C
-
- thumb_func_start sub_80A0F4C
-sub_80A0F4C: @ 80A0F4C
- push {lr}
- ldr r0, _080A0F60 @ =gUnknown_2039994
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A0F68
- ldr r0, _080A0F64 @ =CB2_ReturnToField
- bl SetMainCallback2
- b _080A0FB0
- .align 2, 0
-_080A0F60: .4byte gUnknown_2039994
-_080A0F64: .4byte CB2_ReturnToField
-_080A0F68:
- ldr r0, _080A0F88 @ =gUnknown_2023E8A
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080A0F9C
- ldr r0, _080A0F8C @ =gUnknown_81BFB87
- bl ScriptContext2_RunNewScript
- bl warp_in
- 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
-_080A0F8C: .4byte gUnknown_81BFB87
-_080A0F90: .4byte gFieldCallback
-_080A0F94: .4byte sub_807E3EC
-_080A0F98: .4byte sub_805671C
-_080A0F9C:
- cmp r0, 0x7
- bne _080A0FB0
- ldr r0, _080A0FB4 @ =gUnknown_81BFBD7
- bl ScriptContext1_SetupScript
- bl ScriptContext1_Stop
- ldr r0, _080A0FB8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_080A0FB0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0FB4: .4byte gUnknown_81BFBD7
-_080A0FB8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80A0F4C
-
- .align 2, 0 @ Don't pad with nop.
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/save_location.s b/asm/save_location.s
deleted file mode 100644
index 8a1031963..000000000
--- a/asm/save_location.s
+++ /dev/null
@@ -1,222 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start IsCurMapInLocationList
-IsCurMapInLocationList: @ 810B6F4
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _0810B724 @ =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, _0810B728 @ =0x0000ffff
- cmp r0, r1
- beq _0810B734
- adds r4, r1, 0
- adds r1, r2, 0
-_0810B71A:
- ldrh r0, [r1]
- cmp r0, r3
- bne _0810B72C
- movs r0, 0x1
- b _0810B736
- .align 2, 0
-_0810B724: .4byte gSaveBlock1Ptr
-_0810B728: .4byte 0x0000ffff
-_0810B72C:
- adds r1, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _0810B71A
-_0810B734:
- movs r0, 0
-_0810B736:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsCurMapInLocationList
-
- thumb_func_start IsCurMapPokeCenter
-IsCurMapPokeCenter: @ 810B73C
- push {lr}
- ldr r0, _0810B748 @ =gUnknown_845303C
- bl IsCurMapInLocationList
- pop {r1}
- bx r1
- .align 2, 0
-_0810B748: .4byte gUnknown_845303C
- thumb_func_end IsCurMapPokeCenter
-
- thumb_func_start IsCurMapReloadLocation
-IsCurMapReloadLocation: @ 810B74C
- push {lr}
- ldr r0, _0810B758 @ =gUnknown_8453092
- bl IsCurMapInLocationList
- pop {r1}
- bx r1
- .align 2, 0
-_0810B758: .4byte gUnknown_8453092
- thumb_func_end IsCurMapReloadLocation
-
- thumb_func_start sub_810B75C
-sub_810B75C: @ 810B75C
- push {lr}
- ldr r0, _0810B768 @ =gUnknown_8453094
- bl IsCurMapInLocationList
- pop {r1}
- bx r1
- .align 2, 0
-_0810B768: .4byte gUnknown_8453094
- thumb_func_end sub_810B75C
-
- thumb_func_start TrySetPokeCenterWarpStatus
-TrySetPokeCenterWarpStatus: @ 810B76C
- push {lr}
- bl IsCurMapPokeCenter
- cmp r0, 0
- bne _0810B788
- ldr r0, _0810B784 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xFD
- ands r0, r1
- b _0810B792
- .align 2, 0
-_0810B784: .4byte gSaveBlock2Ptr
-_0810B788:
- ldr r0, _0810B798 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- orrs r0, r1
-_0810B792:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B798: .4byte gSaveBlock2Ptr
- thumb_func_end TrySetPokeCenterWarpStatus
-
- thumb_func_start TrySetReloadWarpStatus
-TrySetReloadWarpStatus: @ 810B79C
- push {lr}
- bl IsCurMapReloadLocation
- cmp r0, 0
- bne _0810B7B8
- ldr r0, _0810B7B4 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xFB
- ands r0, r1
- b _0810B7C2
- .align 2, 0
-_0810B7B4: .4byte gSaveBlock2Ptr
-_0810B7B8:
- ldr r0, _0810B7C8 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x4
- orrs r0, r1
-_0810B7C2:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B7C8: .4byte gSaveBlock2Ptr
- thumb_func_end TrySetReloadWarpStatus
-
- thumb_func_start sub_810B7CC
-sub_810B7CC: @ 810B7CC
- push {lr}
- bl sub_810B75C
- cmp r0, 0
- bne _0810B7E8
- ldr r0, _0810B7E4 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xF7
- ands r0, r1
- b _0810B7F2
- .align 2, 0
-_0810B7E4: .4byte gSaveBlock2Ptr
-_0810B7E8:
- ldr r0, _0810B7F8 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x8
- orrs r0, r1
-_0810B7F2:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B7F8: .4byte gSaveBlock2Ptr
- thumb_func_end sub_810B7CC
-
- thumb_func_start TrySetMapSaveWarpStatus
-TrySetMapSaveWarpStatus: @ 810B7FC
- push {lr}
- bl TrySetPokeCenterWarpStatus
- bl TrySetReloadWarpStatus
- bl sub_810B7CC
- pop {r0}
- bx r0
- thumb_func_end TrySetMapSaveWarpStatus
-
- thumb_func_start sub_810B810
-sub_810B810: @ 810B810
- ldr r0, _0810B828 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xA8
- ldr r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_0810B828: .4byte gSaveBlock2Ptr
- thumb_func_end sub_810B810
-
- thumb_func_start sub_810B82C
-sub_810B82C: @ 810B82C
- ldr r3, _0810B854 @ =gSaveBlock2Ptr
- ldr r2, [r3]
- ldrb r1, [r2, 0x9]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r2, [r3]
- adds r2, 0xA8
- ldr r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_0810B854: .4byte gSaveBlock2Ptr
- thumb_func_end sub_810B82C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index d917b5d5b..59af843f1 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -249,7 +249,7 @@ _0809CB02:
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
mov r2, r10
cmp r2, 0x1E
beq _0809CB32
@@ -271,7 +271,7 @@ _0809CB32:
movs r1, 0x2
movs r2, 0x8
movs r3, 0x2
- bl sub_810FBE8
+ bl MultichoiceList_PrintItems
b _0809CB7A
.align 2, 0
_0809CB54: .4byte sub_809D6D4
@@ -290,7 +290,7 @@ _0809CB5C:
movs r1, 0x2
movs r2, 0x8
movs r3, 0x2
- bl sub_810FBE8
+ bl MultichoiceList_PrintItems
_0809CB7A:
movs r0, 0xE
str r0, [sp]
@@ -301,14 +301,14 @@ _0809CB7A:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
ldr r0, [sp, 0x18]
adds r1, r7, 0
adds r2, r5, 0
mov r3, r10
bl sub_809CC18
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809CBA2:
add sp, 0x20
pop {r3-r5}
@@ -475,10 +475,10 @@ _0809CCD0:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0809CCDE
- bl ProcessMenuInputNoWrapAround
+ bl Menu_ProcessInputNoWrapAround
b _0809CCE2
_0809CCDE:
- bl ProcessMenuInput
+ bl Menu_ProcessInput
_0809CCE2:
lsls r0, 24
lsrs r4, r0, 24
@@ -562,7 +562,7 @@ _0809CD78:
bl FillWindowPixelBuffer
ldr r4, _0809CDAC @ =gUnknown_83E0738
_0809CD82:
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 22
adds r0, r4
@@ -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
@@ -587,7 +587,7 @@ _0809CDB0:
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r4, _0809CDE8 @ =gUnknown_83E0748
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 22
adds r0, r4
@@ -603,7 +603,7 @@ _0809CDB0:
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
_0809CDE0:
add sp, 0x10
pop {r4}
@@ -636,7 +636,7 @@ _0809CE08:
lsls r0, 24
cmp r0, 0
bne _0809CE26
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
adds r0, r4, 0
movs r1, 0x50
bl CreateTask
@@ -822,7 +822,7 @@ _0809CF08:
lsrs r0, 24
strh r0, [r4, 0x14]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldrb r0, [r4, 0x14]
lsls r5, 27
lsrs r5, 24
@@ -833,7 +833,7 @@ _0809CF08:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x10
- bl sub_8110104
+ bl MultichoiceGrid_PrintItems
ldrb r0, [r4, 0x14]
str r5, [sp]
str r7, [sp, 0x4]
@@ -843,9 +843,9 @@ _0809CF08:
movs r1, 0x1
movs r2, 0
movs r3, 0x1
- bl sub_811030C
+ bl MultichoiceGrid_InitCursor
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809CFB8:
movs r0, 0x1
_0809CFBA:
@@ -874,7 +874,7 @@ sub_809CFDC: @ 809CFDC
lsls r0, 3
ldr r1, _0809D018 @ =gTasks+0x8
adds r5, r0, r1
- bl sub_8110650
+ bl Menu_ProcessInputGridLayout
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x2
@@ -914,8 +914,8 @@ _0809D034:
_0809D03C: .4byte gSpecialVar_Result
thumb_func_end sub_809CFDC
- thumb_func_start sp109_CreatePCMenu
-sp109_CreatePCMenu: @ 809D040
+ thumb_func_start ScrSpecial_CreatePCMenu
+ScrSpecial_CreatePCMenu: @ 809D040
push {lr}
ldr r0, _0809D060 @ =sub_809CC98
bl FuncIsActiveTask
@@ -937,7 +937,7 @@ _0809D068:
_0809D06A:
pop {r1}
bx r1
- thumb_func_end sp109_CreatePCMenu
+ thumb_func_end ScrSpecial_CreatePCMenu
thumb_func_start sub_809D070
sub_809D070: @ 809D070
@@ -989,7 +989,7 @@ _0809D0B0:
lsrs r6, r0, 24
adds r0, r6, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldr r2, _0809D128 @ =gUnknown_8417BD3
movs r0, 0x22
str r0, [sp]
@@ -1050,7 +1050,7 @@ _0809D14C:
lsrs r6, r0, 24
adds r0, r6, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
mov r0, r8
bl FlagGet
lsls r0, 24
@@ -1138,14 +1138,14 @@ _0809D1FA:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0
mov r1, r9
adds r2, r6, 0
movs r3, 0xFF
bl sub_809CC18
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r3,r4}
mov r8, r3
@@ -1159,8 +1159,8 @@ _0809D24C: .4byte gStringVar4
_0809D250: .4byte gUnknown_8417BB6
thumb_func_end sub_809D070
- thumb_func_start sub_809D254
-sub_809D254: @ 809D254
+ thumb_func_start ScriptMenu_DisplayPCStartupPrompt
+ScriptMenu_DisplayPCStartupPrompt: @ 809D254
push {lr}
sub sp, 0x10
movs r0, 0
@@ -1178,13 +1178,13 @@ sub_809D254: @ 809D254
movs r0, 0
movs r1, 0x2
movs r3, 0
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r0}
bx r0
.align 2, 0
_0809D284: .4byte gUnknown_81A508A
- thumb_func_end sub_809D254
+ thumb_func_end ScriptMenu_DisplayPCStartupPrompt
thumb_func_start sub_809D288
sub_809D288: @ 809D288
@@ -1326,9 +1326,9 @@ _0809D31C:
strb r0, [r1, 0x5]
ldrb r0, [r3, 0x12]
movs r1, 0x1
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
b _0809D3C2
.align 2, 0
@@ -1613,9 +1613,9 @@ _0809D572:
strh r2, [r1, 0x8]
strh r5, [r1, 0xC]
movs r1, 0x1
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809D5F2:
movs r0, 0x1
_0809D5F4:
@@ -1721,7 +1721,7 @@ sub_809D6B0: @ 809D6B0
bl ClearWindowTilemap
adds r0, r4, 0
movs r1, 0x1
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
adds r0, r4, 0
bl RemoveWindow
pop {r4}
@@ -1859,7 +1859,7 @@ _0809D7B8:
lsrs r7, r0, 24
adds r0, r7, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r6, 0
mov r5, r9
subs r5, 0x2
@@ -1946,14 +1946,14 @@ _0809D844:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0
mov r1, r9
adds r2, r7, 0
movs r3, 0xFF
bl sub_809CC18
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809D8A8:
add sp, 0xC
pop {r3,r4}
diff --git a/asm/script_movement.s b/asm/script_movement.s
index 826d6d6bd..a2d48d44a 100644
--- a/asm/script_movement.s
+++ b/asm/script_movement.s
@@ -565,7 +565,7 @@ sub_80977F0: @ 80977F0
cmp r0, 0
beq _08097838
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0809786A
@@ -583,7 +583,7 @@ _08097838:
_08097850: .4byte gMapObjects
_08097854:
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0809786A
diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s
index 60f416b48..6b4cdd1a8 100644
--- a/asm/script_pokemon_util_80A0058.s
+++ b/asm/script_pokemon_util_80A0058.s
@@ -411,13 +411,13 @@ _080A0368:
movs r0, 0x1
strh r0, [r1]
_080A036E:
- ldr r0, _080A037C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _080A037C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_080A0378: .4byte gSpecialVar_Result
-_080A037C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_080A037C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80A0350
thumb_func_start sub_80A0380
@@ -455,14 +455,14 @@ _080A03B8:
movs r0, 0x1
strh r0, [r1]
_080A03C2:
- ldr r0, _080A03D4 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ ldr r0, _080A03D4 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A03D0: .4byte gSpecialVar_Result
-_080A03D4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_080A03D4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80A039C
thumb_func_start sub_80A03D8
diff --git a/asm/script_pokemon_util_80BF8FC.s b/asm/script_pokemon_util_80BF8FC.s
index 26c113dfd..b5ef5f090 100644
--- a/asm/script_pokemon_util_80BF8FC.s
+++ b/asm/script_pokemon_util_80BF8FC.s
@@ -269,7 +269,7 @@ sub_80BFAA8: @ 80BFAA8
mov r6, sp
adds r6, 0x6
strb r0, [r6]
- ldr r1, _080BFBA4 @ =gUnknown_825DEA1
+ ldr r1, _080BFBA4 @ =gPPUpGetMask
adds r0, r5, r1
ldrb r0, [r0]
mov r9, r0
@@ -330,7 +330,7 @@ sub_80BFAA8: @ 80BFAA8
pop {r0}
bx r0
.align 2, 0
-_080BFBA4: .4byte gUnknown_825DEA1
+_080BFBA4: .4byte gPPUpGetMask
thumb_func_end sub_80BFAA8
thumb_func_start sub_80BFBA8
diff --git a/asm/shop.s b/asm/shop.s
index 525fbbc45..c0f4779b7 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -23,7 +23,7 @@ sub_809AAB0: @ 809AAB0
strb r0, [r4, 0x16]
movs r0, 0
strh r0, [r4, 0xC]
- bl sub_80CBE00
+ bl ContextNpcGetTextColor
lsls r0, 24
cmp r0, 0
bne _0809AAF0
@@ -49,7 +49,7 @@ _0809AAF8:
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -74,7 +74,7 @@ _0809AAF8:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
ldrb r0, [r4]
bl PutWindowTilemap
ldrb r0, [r4]
@@ -194,7 +194,7 @@ sub_809AC10: @ 809AC10
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl ProcessMenuInputNoWrapAround
+ bl Menu_ProcessInputNoWrapAround
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x2
@@ -211,7 +211,7 @@ sub_809AC10: @ 809AC10
b _0809AC52
_0809AC3C:
ldr r4, _0809AC58 @ =gUnknown_83DF09C
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r0, 21
adds r4, 0x4
@@ -332,7 +332,7 @@ sub_809AD24: @ 809AD24
ldr r4, _0809AD3C @ =gUnknown_2039950
ldrb r0, [r4]
movs r1, 0x2
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -435,7 +435,7 @@ sub_809ADE4: @ 809ADE4
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
pop {r0}
bx r0
thumb_func_end sub_809ADE4
@@ -515,7 +515,7 @@ _0809AEA0: .4byte gTasks
_0809AEA4: .4byte sub_809AE00
_0809AEA8: .4byte sub_809ADE4
_0809AEAC:
- bl sub_80BF768
+ bl SetVBlankHBlankCallbacksToNull
str r4, [sp, 0x8]
movs r1, 0xE0
lsls r1, 19
@@ -523,13 +523,13 @@ _0809AEAC:
add r0, sp, 0x8
bl CpuFastSet
bl ScanlineEffect_Stop
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
bl FreeAllSpritePalettes
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
- bl clear_scheduled_bg_copies_to_vram
- bl sub_80984D8
+ bl ClearScheduledBgCopiesToVram
+ bl ResetItemMenuIconState
bl sub_809AF6C
lsls r0, 24
cmp r0, 0
@@ -572,14 +572,14 @@ _0809AEAC:
ldrb r0, [r0, 0x16]
lsls r0, 28
lsrs r0, 28
- bl sub_813F66C
+ bl BuyMenuInitWindows
bl sub_809B080
b _0809AF5E
.align 2, 0
_0809AF4C: .4byte 0x01000100
_0809AF50: .4byte gUnknown_2039934
_0809AF54:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _0809AF64
@@ -721,7 +721,7 @@ sub_809B080: @ 809B080
movs r0, 0
str r0, [sp]
movs r0, 0x1
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _0809B0B4 @ =gUnknown_2039934
ldrb r1, [r0, 0x16]
movs r0, 0xF
@@ -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,10 +805,10 @@ _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
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -819,15 +819,15 @@ sub_809B15C: @ 809B15C
push {lr}
bl sub_809B764
bl sub_809BAFC
- bl sub_813F6D0
+ bl BuyMenuDrawMoneyBox
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r0}
bx r0
thumb_func_end sub_809B15C
@@ -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]
@@ -1116,7 +1116,7 @@ _0809B398:
movs r1, 0x2
adds r2, r7, 0
movs r3, 0
- bl sub_813F6F4
+ bl BuyMenuPrint
b _0809B400
.align 2, 0
_0809B3D0: .4byte 0x00000177
@@ -1138,7 +1138,7 @@ _0809B3D8:
movs r1, 0x2
adds r2, r7, 0
movs r3, 0x2
- bl sub_813F6F4
+ bl BuyMenuPrint
_0809B400:
add sp, 0x14
pop {r4-r7}
@@ -1204,7 +1204,7 @@ _0809B45C:
adds r0, r6, 0
movs r1, 0
movs r3, 0x69
- bl sub_813F6F4
+ bl BuyMenuPrint
_0809B480:
add sp, 0x14
pop {r4-r6}
@@ -1251,7 +1251,7 @@ sub_809B494: @ 809B494
movs r1, 0
adds r2, r5, 0
movs r3, 0
- bl sub_813F6F4
+ bl BuyMenuPrint
lsls r0, r7, 16
lsrs r0, 16
bl ItemIdToBattleMoveId
@@ -1273,7 +1273,7 @@ sub_809B494: @ 809B494
movs r1, 0x2
adds r2, r5, 0
movs r3, 0
- bl sub_813F6F4
+ bl BuyMenuPrint
b _0809B55C
.align 2, 0
_0809B514: .4byte gStringVar1
@@ -1294,7 +1294,7 @@ _0809B528:
movs r0, 0x6
movs r1, 0
movs r3, 0
- bl sub_813F6F4
+ bl BuyMenuPrint
ldr r2, _0809B568 @ =gUnknown_8416217
movs r0, 0x10
str r0, [sp]
@@ -1305,7 +1305,7 @@ _0809B528:
movs r0, 0x6
movs r1, 0x2
movs r3, 0
- bl sub_813F6F4
+ bl BuyMenuPrint
_0809B55C:
add sp, 0x14
pop {r4-r7}
@@ -1388,7 +1388,7 @@ _0809B5E0:
movs r0, 0x4
movs r1, 0x2
movs r3, 0x1
- bl sub_813F6F4
+ bl BuyMenuPrint
_0809B5F8:
add sp, 0x14
pop {r4,r5}
@@ -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
@@ -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
@@ -2134,7 +2134,7 @@ sub_809BB44: @ 809BB44
movs r1, 0
adds r2, r4, 0
movs r3, 0x2
- bl sub_813F6F4
+ bl BuyMenuPrint
add sp, 0x14
pop {r4}
pop {r0}
@@ -2164,13 +2164,13 @@ sub_809BBC0: @ 809BBC0
cmp r0, 0
bne _0809BC8E
ldrb r0, [r5, 0xE]
- bl ListMenuHandleInput
+ bl ListMenu_ProcessInput
adds r4, r0, 0
ldrb r0, [r5, 0xE]
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
@@ -2223,7 +2223,7 @@ _0809BC1A:
ldr r1, _0809BC74 @ =gUnknown_8416842
ldr r2, _0809BC78 @ =sub_809BF98
adds r0, r6, 0
- bl sub_813F75C
+ bl BuyMenuDisplayMessage
b _0809BC8E
.align 2, 0
_0809BC70: .4byte gSaveBlock1Ptr
@@ -2236,7 +2236,7 @@ _0809BC7C:
ldr r1, _0809BC98 @ =gUnknown_8416766
ldr r2, _0809BC9C @ =sub_809BCA0
adds r0, r6, 0
- bl sub_813F75C
+ bl BuyMenuDisplayMessage
_0809BC8E:
pop {r4-r7}
pop {r0}
@@ -2259,13 +2259,13 @@ 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
movs r0, 0x1
movs r1, 0
- bl sub_813F7C0
+ bl BuyMenuQuantityBoxThinBorder
ldr r0, _0809BD44 @ =gStringVar1
adds r1, r4, 0
movs r2, 0x1
@@ -2287,15 +2287,15 @@ sub_809BCA0: @ 809BCA0
movs r1, 0x2
adds r2, r6, 0
movs r3, 0
- bl sub_813F6F4
+ bl BuyMenuPrint
strh r4, [r5, 0x2]
movs r0, 0x3
movs r1, 0
- bl sub_813F7A8
+ bl BuyMenuQuantityBoxNormalBorder
adds r0, r7, 0
bl sub_809BB44
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0809BD50 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
@@ -2365,7 +2365,7 @@ sub_809BD8C: @ 809BD8C
adds r0, r4, 0x2
ldr r6, _0809BDD0 @ =gUnknown_2039934
ldrh r1, [r6, 0x14]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2396,10 +2396,10 @@ _0809BDD4:
bl sub_809B73C
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
@@ -2423,7 +2423,7 @@ _0809BDD4:
ldr r1, _0809BE4C @ =gUnknown_841678E
ldr r2, _0809BE50 @ =sub_809BE90
adds r0, r5, 0
- bl sub_813F75C
+ bl BuyMenuDisplayMessage
b _0809BE88
.align 2, 0
_0809BE3C: .4byte gMain
@@ -2442,10 +2442,10 @@ _0809BE54:
bl sub_809B73C
movs r0, 0x3
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
movs r0, 0x1
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
@@ -2464,7 +2464,7 @@ sub_809BE90: @ 809BE90
lsls r0, 24
lsrs r0, 24
ldr r1, _0809BEA0 @ =gUnknown_83DF0B4
- bl sub_813F7D8
+ bl BuyMenuConfirmPurchase
pop {r0}
bx r0
.align 2, 0
@@ -2493,7 +2493,7 @@ sub_809BEA4: @ 809BEA4
ldr r1, _0809BEEC @ =gUnknown_84167E7
ldr r2, _0809BEF0 @ =sub_809BF0C
adds r0, r5, 0
- bl sub_813F75C
+ bl BuyMenuDisplayMessage
adds r0, r5, 0
bl nullsub_52
ldrh r0, [r4, 0xA]
@@ -2509,7 +2509,7 @@ _0809BEF4:
ldr r1, _0809BF04 @ =gUnknown_8416861
ldr r2, _0809BF08 @ =sub_809BF98
adds r0, r5, 0
- bl sub_813F75C
+ bl BuyMenuDisplayMessage
_0809BEFE:
pop {r4,r5}
pop {r0}
@@ -2601,7 +2601,7 @@ sub_809BF98: @ 809BF98
adds r4, r5, r6
movs r0, 0x2
movs r1, 0
- bl sub_810F260
+ bl ClearDialogWindowAndFrameToTransparent
ldrb r0, [r4, 0xE]
movs r1, 0x1
bl sub_809B57C
@@ -2621,7 +2621,7 @@ sub_809BF98: @ 809BF98
bl PutWindowTilemap
_0809BFDC:
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_809B690
adds r0, r6, 0
subs r0, 0x8
@@ -2691,7 +2691,7 @@ sub_809C04C: @ 809C04C
ldrb r0, [r2, 0xE]
movs r1, 0
movs r2, 0
- bl DestroyListMenu
+ bl DestroyListMenuTask
bl sub_809B604
ldr r0, _0809C090 @ =CB2_ReturnToField
bl SetMainCallback2
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 028457d86..e5aa4ff05 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -249,7 +249,7 @@ sub_8141AD8: @ 8141AD8
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
- bl MoveMenuCursorNoWrapAround
+ bl Menu_MoveCursorNoWrapAround
bl sub_814112C
movs r1, 0x1
str r1, [r0, 0x28]
@@ -269,7 +269,7 @@ sub_8141B18: @ 8141B18
ldr r0, [r4, 0x28]
cmp r0, 0
beq _08141B2E
- bl sub_81100E8
+ bl DestroyYesNoMenu
movs r0, 0
str r0, [r4, 0x28]
_08141B2E:
diff --git a/asm/smokescreen.s b/asm/smokescreen.s
index 1768a5ea4..2a350c911 100644
--- a/asm/smokescreen.s
+++ b/asm/smokescreen.s
@@ -26,9 +26,9 @@ sub_804A76C: @ 804A76C
cmp r0, r1
bne _0804A79E
adds r0, r5, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804A8AC @ =gUnknown_8250994
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_0804A79E:
ldr r0, _0804A8B0 @ =sub_804A8C0
bl CreateInvisibleSpriteWithCallback
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 3fc08e41a..f7ea9a712 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 is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _0806ED70
bl sub_806EE34
@@ -160,7 +160,7 @@ sub_806EE7C: @ 806EE7C
movs r1, 0
bl DrawStdWindowFrame
ldr r0, _0806EEFC @ =gStringVar1
- ldr r1, _0806EF00 @ =gUnknown_2039996
+ ldr r1, _0806EF00 @ =gSafariZoneStepCounter
ldrh r1, [r1]
movs r2, 0x1
movs r3, 0x3
@@ -172,7 +172,7 @@ sub_806EE7C: @ 806EE7C
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r0, _0806EF08 @ =gStringVar3
- ldr r1, _0806EF0C @ =gUnknown_2039994
+ ldr r1, _0806EF0C @ =gNumSafariBalls
ldrb r1, [r1]
movs r2, 0x1
movs r3, 0x2
@@ -203,10 +203,10 @@ sub_806EE7C: @ 806EE7C
_0806EEF4: .4byte gUnknown_2037101
_0806EEF8: .4byte gUnknown_83A738C
_0806EEFC: .4byte gStringVar1
-_0806EF00: .4byte gUnknown_2039996
+_0806EF00: .4byte gSafariZoneStepCounter
_0806EF04: .4byte gStringVar2
_0806EF08: .4byte gStringVar3
-_0806EF0C: .4byte gUnknown_2039994
+_0806EF0C: .4byte gNumSafariBalls
_0806EF10: .4byte gStringVar4
_0806EF14: .4byte gUnknown_84162A9
thumb_func_end sub_806EE7C
@@ -220,7 +220,7 @@ sub_806EF18: @ 806EF18
ldr r4, _0806EF40 @ =gUnknown_2037101
ldrb r0, [r4]
movs r1, 0
- bl sub_810F4D8
+ bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4]
movs r1, 0x2
bl CopyWindowToVram
@@ -438,9 +438,9 @@ _0806F0C4:
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F118
@@ -634,7 +634,7 @@ _0806F254: .4byte gUnknown_20370F0
thumb_func_start ShowStartMenu
ShowStartMenu: @ 806F258
push {lr}
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _0806F26E
bl player_bitmagic
@@ -663,10 +663,10 @@ sub_806F280: @ 806F280
bl PlaySE
movs r0, 0x1
negs r0, r0
- bl MoveMenuCursor
+ bl Menu_MoveCursor
ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F2D2
@@ -698,10 +698,10 @@ _0806F2D2:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
- bl MoveMenuCursor
+ bl Menu_MoveCursor
ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4]
- bl sub_80BF708
+ bl MenuHelpers_LinkSomething
lsls r0, 24
cmp r0, 0
bne _0806F320
@@ -911,14 +911,14 @@ _0806F498:
bl PlayRainStoppingSoundEffect
bl sub_806EF18
bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu
+ 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
@@ -1009,7 +1009,7 @@ sub_806F554: @ 806F554
bl sub_806EF18
bl sub_80F7998
bl sub_806FEA0
- bl sub_80A0F3C
+ bl SafariZoneRetirePrompt
movs r0, 0x1
pop {r1}
bx r1
@@ -1080,7 +1080,7 @@ sub_806F5C8: @ 806F5C8
_0806F5E4:
movs r0, 0
movs r1, 0
- bl sub_810F260
+ bl ClearDialogWindowAndFrameToTransparent
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 ClearDialogWindowAndFrameToTransparent
bl sub_80696C0
bl ScriptContext2_Disable
bl sub_812B248
@@ -1127,7 +1127,7 @@ _0806F644: .4byte gUnknown_3000FA9
thumb_func_start sub_806F648
sub_806F648: @ 806F648
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -1179,7 +1179,7 @@ sub_806F69C: @ 806F69C
movs r1, 0x1
bl sub_80F7768
movs r0, 0x1
- bl sub_80F6E08
+ bl AddTextPrinterForMessage
ldr r1, _0806F6CC @ =gUnknown_3000FA9
movs r0, 0x1
strb r0, [r1]
@@ -1329,7 +1329,7 @@ sub_806F7A8: @ 806F7A8
lsrs r0, 24
movs r1, 0
bl ClearStdWindowAndFrame
- bl remove_start_menu_window_maybe
+ bl RemoveStartMenuWindow
movs r0, 0
bl sub_8112EDC
bl sub_806FCF4
@@ -1347,7 +1347,7 @@ _0806F7D8: .4byte sub_806F7DC
thumb_func_start sub_806F7DC
sub_806F7DC: @ 806F7DC
push {lr}
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldr r1, _0806F7F0 @ =gUnknown_3000FA4
ldr r0, _0806F7F4 @ =sub_806F7F8
str r0, [r1]
@@ -1451,7 +1451,7 @@ _0806F8A0: .4byte sub_806F8A4
thumb_func_start sub_806F8A4
sub_806F8A4: @ 806F8A4
push {lr}
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldr r1, _0806F8B8 @ =gUnknown_3000FA4
ldr r0, _0806F8BC @ =sub_806F8DC
str r0, [r1]
@@ -1466,7 +1466,7 @@ _0806F8BC: .4byte sub_806F8DC
thumb_func_start sub_806F8C0
sub_806F8C0: @ 806F8C0
push {lr}
- bl sub_80F7880
+ bl DisplayYesNoMenuDefaultNo
ldr r1, _0806F8D4 @ =gUnknown_3000FA4
ldr r0, _0806F8D8 @ =sub_806F8DC
str r0, [r1]
@@ -1596,7 +1596,7 @@ _0806F9B4: .4byte sub_806FA04
thumb_func_start sub_806F9B8
sub_806F9B8: @ 806F9B8
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
cmp r0, 0
bne _0806F9D0
@@ -1638,7 +1638,7 @@ _0806FA00:
thumb_func_start sub_806FA04
sub_806FA04: @ 806FA04
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
cmp r0, 0
bne _0806FA1C
@@ -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,7 +1908,7 @@ _0806FC14:
movs r0, 0
movs r1, 0x2
movs r3, 0xFF
- bl AddTextPrinterParametrized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x8
movs r2, 0xF
@@ -2014,12 +2014,12 @@ 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
movs r3, 0xD
- bl SetWindowBorderStyle
+ bl DrawStdFrameWithCustomTileAndPalette
ldr r4, _0806FE60 @ =gStringVar4
movs r0, 0x3
adds r1, 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
@@ -2198,7 +2198,7 @@ sub_806FEA0: @ 806FEA0
lsrs r0, 24
movs r1, 0x1
bl ClearStdWindowAndFrame
- bl remove_start_menu_window_maybe
+ bl RemoveStartMenuWindow
bl sub_80696C0
bl ScriptContext2_Disable
pop {r0}
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
deleted file mode 100644
index 482b5da60..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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
-_0815ABF8: .4byte sub_815AC2C
- thumb_func_end sub_815ABC4
-
- thumb_func_start CB2_ReturnToTeachyTV
-CB2_ReturnToTeachyTV: @ 815ABFC
- push {lr}
- ldr r1, _0815AC10 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
-_0815AC14:
- ldr r1, [r1]
- movs r0, 0x2
- bl sub_815ABC4
-_0815AC1C:
- pop {r0}
- bx r0
- thumb_func_end CB2_ReturnToTeachyTV
-
- thumb_func_start sub_815AC20
-sub_815AC20: @ 815AC20
- ldr r1, _0815AC28 @ =gTeachyTV_StaticResources
- movs r0, 0x1
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_0815AC28: .4byte gTeachyTV_StaticResources
- 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 ScanlineEffect_Stop
- 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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
-_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 @ =gMultiuseListMenuTemplate
- 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 CheckBagHasItem
- 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 @ =gTeachyTV_StaticResources
- 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 gMultiuseListMenuTemplate
-_0815AF4C: .4byte gUnknown_8479368
-_0815AF50: .4byte sub_815AFD8
-_0815AF54: .4byte gUnknown_8479340
-_0815AF58: .4byte gTeachyTV_StaticResources
- 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 CheckBagHasItem
- 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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
-_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 GetTextSpeedSetting
- 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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
- 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 @ =gTeachyTV_StaticResources
- movs r4, 0
- strb r5, [r2, 0x5]
- ldrb r0, [r6]
- adds r1, r2, 0x6
- adds r2, 0x8
- bl DestroyListMenu
- 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 gTeachyTV_StaticResources
-_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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
- 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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
- 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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
- 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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
-_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 @ =gTeachyTV_StaticResources
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- bne _0815BA48
- movs r0, 0xA
- bl sub_810B108
- b _0815BA4E
- .align 2, 0
-_0815BA44: .4byte gTeachyTV_StaticResources
-_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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
-_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 @ =gTeachyTV_StaticResources
- 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 gTeachyTV_StaticResources
-_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 CB2_ReturnToTeachyTV
- 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 @ =Route1_Layout
- 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 Route1_Layout
-_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/title_screen.s b/asm/title_screen.s
index a60bc959c..e62cc9a9f 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -113,13 +113,13 @@ _080789F0:
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078A9C @ =gUnknown_8EAD390
str r6, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08078AA0 @ =gUnknown_8EAD5E8
movs r1, 0xD0
movs r2, 0x20
@@ -129,13 +129,13 @@ _080789F0:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078AA8 @ =gUnknown_8EADEE4
str r6, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r5, _08078AAC @ =gUnknown_8EAE094
adds r0, r5, 0
movs r1, 0xF0
@@ -146,13 +146,13 @@ _080789F0:
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078AB4 @ =gUnknown_8EAE374
str r6, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
adds r0, r5, 0
movs r1, 0xE0
movs r2, 0x20
@@ -162,13 +162,13 @@ _080789F0:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078ABC @ =gUnknown_83BF5A8
str r6, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
bl sub_8079708
b _08078B18
.align 2, 0
@@ -184,7 +184,7 @@ _08078AB4: .4byte gUnknown_8EAE374
_08078AB8: .4byte gUnknown_83BF58C
_08078ABC: .4byte gUnknown_83BF5A8
_08078AC0:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _08078B26
@@ -1056,7 +1056,11 @@ _080791DE:
lsrs r5, r0, 24
cmp r5, 0
bne _080792A6
- movs r0, 0x6
+ .ifdef FIRERED
+ movs r0, 0x6 @ CHARIZARD
+ .else
+ movs r0, 0x3 @ VENUSAUR
+ .endif
movs r1, 0
bl PlayCry1
ldrb r0, [r4, 0xC]
@@ -1106,7 +1110,7 @@ _08079248:
bne _080792A6
bl SeedRngAndSetTrainerId
bl SetSaveBlocksPointers
- bl sub_8054A28
+ bl ResetMenuAndMonGlobals
bl Save_ResetSaveCounters
movs r0, 0
bl Save_LoadGameData
@@ -1641,7 +1645,7 @@ _0807965C:
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
- bl sub_80F6C14
+ bl ResetBgPositions
movs r1, 0xE0
lsls r1, 8
movs r0, 0
@@ -1688,13 +1692,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
@@ -1704,7 +1708,7 @@ sub_8079708: @ 8079708
ldr r4, _08079728 @ =gUnknown_83BFB9C
_0807970E:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
diff --git a/asm/trade.s b/asm/trade.s
index 1c6dd00a8..61328d618 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -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]
@@ -1909,7 +1909,7 @@ sub_804D638: @ 804D638
lsrs r1, 24
movs r0, 0x1C
bl SetGpuReg
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
@@ -3379,7 +3379,7 @@ _0804E208:
movs r1, 0x3
movs r2, 0x10
movs r3, 0x2
- bl sub_810FC80
+ bl UnionRoomAndTradeMenuPrintOptions
movs r0, 0x10
str r0, [sp]
movs r0, 0x2
@@ -3390,7 +3390,7 @@ _0804E208:
movs r1, 0x3
movs r2, 0
movs r3, 0
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
@@ -3533,7 +3533,7 @@ _0804E384: .4byte 0x06010000
sub_804E388: @ 804E388
push {lr}
sub sp, 0x4
- bl ProcessMenuInputNoWrapAround
+ bl Menu_ProcessInputNoWrapAround
lsls r0, 24
asrs r0, 24
movs r1, 0x1
@@ -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
@@ -7292,7 +7292,7 @@ _08050040:
ldr r1, [r1, 0x8]
adds r2, r5, 0
adds r3, r7, 0
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
movs r4, 0
b _0805009A
.align 2, 0
@@ -7316,7 +7316,7 @@ _0805007C:
_0805009A:
mov r0, r8
bl GetMonSpritePalStruct
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
ldr r0, _080500C4 @ =gUnknown_2031DAC
ldr r1, [r0]
adds r0, r1, 0
@@ -8135,7 +8135,7 @@ sub_80507A0: @ 80507A0
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
- bl sub_8044898
+ bl HandleSetPokedexFlag
_080507F4:
pop {r4,r5}
pop {r0}
@@ -10813,7 +10813,7 @@ _08052042:
ldr r1, [r1]
ldr r1, [r1, 0x10]
ldr r3, [r3, 0x6C]
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
ldr r1, [r7]
b _080522AC
.align 2, 0
@@ -13038,7 +13038,7 @@ _0805349E:
ldr r1, [r1]
ldr r1, [r1, 0x10]
ldr r3, [r3, 0x6C]
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
ldr r1, [r7]
b _08053708
.align 2, 0
@@ -13984,7 +13984,7 @@ sub_8053B48: @ 8053B48
ldrh r0, [r5, 0x28]
cmp r0, 0
beq _08053CC0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08053CB4
@@ -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 1dcdc4849..85797d38f 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -1070,7 +1070,7 @@ _080898BE:
adds r0, 0x1
strb r0, [r5, 0x1]
_080898CE:
- bl sub_8088F84
+ bl HasAllKantoMons
lsls r0, 16
cmp r0, 0
beq _080898DE
@@ -1117,7 +1117,7 @@ _08089918:
_0808991C:
bl sub_8088F58
strb r0, [r5, 0x3]
- bl sub_8088F84
+ bl HasAllKantoMons
adds r6, r5, 0
adds r6, 0x4D
strb r0, [r6]
@@ -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}
@@ -4090,7 +4090,7 @@ _0808B1B8: .4byte 0x00007bce
sub_808B1BC: @ 808B1BC
lsls r0, 24
lsrs r0, 24
- ldr r2, _0808B1D0 @ =gUnknown_2039624
+ ldr r2, _0808B1D0 @ =gTrainerCards
lsls r1, r0, 1
adds r1, r0
lsls r1, 5
@@ -4098,7 +4098,7 @@ sub_808B1BC: @ 808B1BC
ldrb r0, [r1, 0x1]
bx lr
.align 2, 0
-_0808B1D0: .4byte gUnknown_2039624
+_0808B1D0: .4byte gTrainerCards
thumb_func_end sub_808B1BC
thumb_func_start sub_808B1D4
@@ -4792,7 +4792,7 @@ sub_808B700: @ 808B700
ldr r0, [r5]
ldr r1, _0808B760 @ =0x0000045c
adds r0, r1
- ldr r2, _0808B764 @ =gUnknown_2039624
+ ldr r2, _0808B764 @ =gTrainerCards
lsls r1, r4, 1
adds r1, r4
lsls r1, 5
@@ -4818,7 +4818,7 @@ sub_808B700: @ 808B700
_0808B758: .4byte gUnknown_20397A4
_0808B75C: .4byte 0x00007bd0
_0808B760: .4byte 0x0000045c
-_0808B764: .4byte gUnknown_2039624
+_0808B764: .4byte gTrainerCards
_0808B768: .4byte gLinkPlayers
_0808B76C: .4byte 0x00007bcf
_0808B770: .4byte sub_80895B8
@@ -4955,7 +4955,7 @@ sub_808B838: @ 808B838
adds r0, r1
ldrb r4, [r0]
adds r0, r4, 0
- bl sub_804454C
+ bl FacilityClassToPicIndex
lsls r0, 16
lsrs r0, 16
ldr r4, _0808B8A0 @ =gUnknown_83CD8EC
@@ -4982,7 +4982,7 @@ _0808B8A4:
cmp r0, 0
beq _0808B8FC
adds r0, r4, 0
- bl sub_804454C
+ bl FacilityClassToPicIndex
lsls r0, 16
lsrs r0, 16
ldr r4, _0808B8F4 @ =gUnknown_83CD8EC
@@ -5070,7 +5070,7 @@ _0808B95C: .4byte sub_80895B8
sub_808B960: @ 808B960
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0808B984 @ =gUnknown_2039624
+ ldr r0, _0808B984 @ =gTrainerCards
ldr r1, _0808B988 @ =gUnknown_83CD960
movs r2, 0x60
bl memcpy
@@ -5083,7 +5083,7 @@ sub_808B960: @ 808B960
pop {r0}
bx r0
.align 2, 0
-_0808B984: .4byte gUnknown_2039624
+_0808B984: .4byte gTrainerCards
_0808B988: .4byte gUnknown_83CD960
_0808B98C: .4byte sub_80895B8
thumb_func_end sub_808B960
@@ -5092,7 +5092,7 @@ _0808B98C: .4byte sub_80895B8
sub_808B990: @ 808B990
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0808B9B4 @ =gUnknown_2039624
+ ldr r0, _0808B9B4 @ =gTrainerCards
ldr r1, _0808B9B8 @ =gUnknown_83CD9C0
movs r2, 0x60
bl memcpy
@@ -5105,7 +5105,7 @@ sub_808B990: @ 808B990
pop {r0}
bx r0
.align 2, 0
-_0808B9B4: .4byte gUnknown_2039624
+_0808B9B4: .4byte gTrainerCards
_0808B9B8: .4byte gUnknown_83CD9C0
_0808B9BC: .4byte sub_80895B8
thumb_func_end sub_808B990
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index 6cc322609..c52229215 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -601,7 +601,7 @@ _08081F54:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
_08081F82:
@@ -658,12 +658,12 @@ sub_8081FD0: @ 8081FD0
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08081FEE
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08082022
@@ -680,7 +680,7 @@ _08081FEE:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0xE]
subs r0, 0x1
strh r0, [r5, 0xE]
@@ -688,7 +688,7 @@ _08081FEE:
_08082014:
adds r0, r4, 0
movs r1, 0x4A
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -705,12 +705,12 @@ sub_808202C: @ 808202C
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808204A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820AC
@@ -743,12 +743,12 @@ _0808204A:
ldr r1, _080820B8 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080820A2
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820AC
@@ -780,12 +780,12 @@ sub_80820BC: @ 80820BC
ldr r1, _080820FC @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080820E8
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820EE
@@ -808,19 +808,19 @@ sub_8082100: @ 8082100
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808211E
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808212C
_0808211E:
adds r0, r4, 0
movs r1, 0x67
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -836,7 +836,7 @@ sub_8082134: @ 8082134
push {r4,lr}
adds r4, r1, 0
adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08082148
@@ -855,19 +855,19 @@ sub_8082150: @ 8082150
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808216E
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808217C
_0808216E:
adds r0, r4, 0
movs r1, 0x4A
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -884,7 +884,7 @@ sub_8082184: @ 8082184
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _080821CA
@@ -961,7 +961,7 @@ sub_80821DC: @ 80821DC
orrs r1, r2
strb r1, [r0, 0x5]
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
@@ -970,7 +970,7 @@ sub_80821DC: @ 80821DC
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -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
@@ -1069,7 +1069,7 @@ sub_80822CC: @ 80822CC
lsls r0, 2
ldr r4, _0808234C @ =gMapObjects
adds r0, r4
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08082312
@@ -1079,7 +1079,7 @@ sub_80822CC: @ 80822CC
adds r0, r1
lsls r0, 2
adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808236E
@@ -1104,7 +1104,7 @@ _08082312:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x12]
adds r0, 0x1
strh r0, [r5, 0x12]
@@ -1160,7 +1160,7 @@ sub_808237C: @ 808237C
lsls r0, 2
ldr r4, _08082408 @ =gMapObjects
adds r0, r4
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080823CC
@@ -1170,7 +1170,7 @@ sub_808237C: @ 808237C
adds r0, r1
lsls r0, 2
adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808242E
@@ -1195,7 +1195,7 @@ _080823CC:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x12]
adds r0, 0x1
strh r0, [r5, 0x12]
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index c3c305d7d..9f8d7da11 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -499,7 +499,7 @@ _081287FE:
.align 2, 0
_0812880C: .4byte gUnknown_203B0E0
_08128810:
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r0, 8
lsrs r6, r0, 16
@@ -534,7 +534,7 @@ _08128848:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
- bl MoveMenuCursor
+ bl Menu_MoveCursor
b _081288CE
.align 2, 0
_08128864: .4byte gMain
@@ -2362,10 +2362,10 @@ _08129664:
ldrb r1, [r4, 0x8]
cmp r0, r1
beq _081296EC
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, _08129684 @ =gUnknown_841B3AA
b _081296D8
.align 2, 0
@@ -2404,14 +2404,14 @@ _081296BE:
ldrb r5, [r5]
cmp r0, r5
beq _081296EC
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, _081296E8 @ =gUnknown_841B3BE
_081296D8:
adds r0, r6, 0
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x1
b _081296EE
.align 2, 0
@@ -2999,7 +2999,7 @@ sub_8129B14: @ 8129B14
bl InitBgsFromTemplates
ldr r0, _08129B6C @ =gUnknown_845AA94
bl InitWindows
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
bl sub_812AD50
ldr r0, [r4]
bl sub_8129BB8
@@ -3199,7 +3199,7 @@ _08129C9C: .4byte gUnknown_203B0E4
sub_8129CA0: @ 8129CA0
push {r4,lr}
adds r4, r0, 0
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3957,11 +3957,11 @@ sub_812A240: @ 812A240
beq _0812A280
b _0812A28A
_0812A250:
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
bl sub_8129814
adds r1, r0, 0
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x5
movs r1, 0
bl sub_812A578
@@ -4122,11 +4122,11 @@ sub_812A378: @ 812A378
beq _0812A3BC
b _0812A3C6
_0812A388:
- bl UnkTextUtil_Reset
+ bl DynamicPlaceholderTextUtil_Reset
ldr r0, _0812A3B4 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
- bl UnkTextUtil_SetPtrI
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x9
movs r1, 0
bl sub_812A578
@@ -4299,7 +4299,7 @@ sub_812A424: @ 812A424
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
_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 ClearStdWindowAndFrameToTransparent
ldr r0, [r4]
ldrb r0, [r0, 0x18]
bl ClearWindowTilemap
@@ -4366,7 +4366,7 @@ _0812A564: .4byte gUnknown_203B0E4
thumb_func_start sub_812A568
sub_812A568: @ 812A568
push {lr}
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r0, 24
pop {r1}
@@ -4455,7 +4455,7 @@ _0812A5F8:
adds r0, r1, 0
adds r0, 0x22
ldr r1, [r4]
- bl UnkTextUtil_StringExpandPlaceholders
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, [r5]
adds r6, r0, 0
adds r6, 0x22
@@ -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
@@ -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 ClearStdWindowAndFrameToTransparent
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
@@ -4987,7 +4987,7 @@ sub_812AA10: @ 812AA10
movs r1, 0x2
movs r2, 0xE
movs r3, 0x5
- bl sub_810FC80
+ bl UnionRoomAndTradeMenuPrintOptions
bl sub_81296F4
lsls r0, 24
lsrs r0, 24
@@ -5000,7 +5000,7 @@ sub_812AA10: @ 812AA10
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl ProgramAndPlaceMenuCursorOnWindow
+ bl Menu_InitCursor
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 ClearStdWindowAndFrameToTransparent
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}
@@ -5224,7 +5224,7 @@ sub_812AC08: @ 812AC08
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _0812AC54 @ =gUnknown_8EAAA6C
movs r0, 0x1
movs r2, 0
@@ -5256,7 +5256,7 @@ sub_812AC58: @ 812AC58
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _0812AC98 @ =gUnknown_8EA1958
movs r0, 0x2
movs r2, 0
@@ -5350,11 +5350,11 @@ 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
+ bl TextWindow_SetStdFrame0_WithPal
ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x20
@@ -5510,7 +5510,7 @@ sub_812AE70: @ 812AE70
ldr r4, _0812AE9C @ =gUnknown_845AF58
_0812AE76:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x4
diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s
deleted file mode 100644
index 16db54083..000000000
--- a/asm/unk_815EDDC.s
+++ /dev/null
@@ -1,407 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- 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 3a1d49e81..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 @ =gSineTable
- 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 gSineTable
-_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 @ =gSineTable
- 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 gSineTable
-_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/unk_text_util.s b/asm/unk_text_util.s
deleted file mode 100644
index 15d21c95a..000000000
--- a/asm/unk_text_util.s
+++ /dev/null
@@ -1,130 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start UnkTextUtil_Reset
-UnkTextUtil_Reset: @ 813CC90
- push {lr}
- ldr r1, _0813CCA8 @ =gUnknown_203F34C
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1C
-_0813CC9A:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _0813CC9A
- pop {r0}
- bx r0
- .align 2, 0
-_0813CCA8: .4byte gUnknown_203F34C
- thumb_func_end UnkTextUtil_Reset
-
- thumb_func_start UnkTextUtil_SetPtrI
-UnkTextUtil_SetPtrI: @ 813CCAC
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _0813CCC0
- ldr r1, _0813CCC4 @ =gUnknown_203F34C
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
-_0813CCC0:
- pop {r0}
- bx r0
- .align 2, 0
-_0813CCC4: .4byte gUnknown_203F34C
- thumb_func_end UnkTextUtil_SetPtrI
-
- thumb_func_start UnkTextUtil_StringExpandPlaceholders
-UnkTextUtil_StringExpandPlaceholders: @ 813CCC8
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _0813CD08
- ldr r5, _0813CCE4 @ =gUnknown_203F34C
-_0813CCD8:
- cmp r1, 0xF7
- beq _0813CCE8
- strb r1, [r2]
- adds r4, 0x1
- adds r2, 0x1
- b _0813CD00
- .align 2, 0
-_0813CCE4: .4byte gUnknown_203F34C
-_0813CCE8:
- adds r4, 0x1
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- cmp r1, 0
- beq _0813CCFE
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
-_0813CCFE:
- adds r4, 0x1
-_0813CD00:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _0813CCD8
-_0813CD08:
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r2, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end UnkTextUtil_StringExpandPlaceholders
-
- thumb_func_start UnkTextUtil_GetPtrI
-UnkTextUtil_GetPtrI: @ 813CD14
- lsls r0, 24
- ldr r1, _0813CD20 @ =gUnknown_203F34C
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0813CD20: .4byte gUnknown_203F34C
- thumb_func_end UnkTextUtil_GetPtrI
-
- thumb_func_start sub_813CD24
-sub_813CD24: @ 813CD24
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- lsrs r2, r0, 17
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- cmp r2, 0x4B
- bhi _0813CD48
- ldr r0, _0813CD44 @ =gUnknown_8464300
- adds r0, r2, r0
- ldrb r0, [r0]
- asrs r0, r1
- movs r1, 0xF
- ands r0, r1
- b _0813CD4A
- .align 2, 0
-_0813CD44: .4byte gUnknown_8464300
-_0813CD48:
- movs r0, 0x3
-_0813CD4A:
- pop {r1}
- bx r1
- thumb_func_end sub_813CD24
-
- .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 21b97c942..e9fb8a630 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 GetUnownLetterByPersonality
+ bl GetUnownLetterByPersonalityLoByte
lsls r0, 24
lsrs r0, 24
cmp r0, r5
@@ -493,8 +493,8 @@ _08082A8E:
bx r1
thumb_func_end sub_8082A88
- thumb_func_start GetUnownLetterByPersonality
-GetUnownLetterByPersonality: @ 8082AB8
+ thumb_func_start GetUnownLetterByPersonalityLoByte
+GetUnownLetterByPersonalityLoByte: @ 8082AB8
push {lr}
adds r2, r0, 0
movs r0, 0xC0
@@ -520,7 +520,7 @@ GetUnownLetterByPersonality: @ 8082AB8
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end GetUnownLetterByPersonality
+ thumb_func_end GetUnownLetterByPersonalityLoByte
thumb_func_start sub_8082AEC
sub_8082AEC: @ 8082AEC
@@ -1020,8 +1020,8 @@ _08082EB6:
_08082EBC: .4byte gSpecialVar_Result
thumb_func_end sub_8082E54
- thumb_func_start sub_8082EC0
-sub_8082EC0: @ 8082EC0
+ thumb_func_start SweetScentWildEncounter
+SweetScentWildEncounter: @ 8082EC0
push {r4,r5,lr}
sub sp, 0x4
mov r4, sp
@@ -1108,7 +1108,7 @@ _08082F6E:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_8082EC0
+ thumb_func_end SweetScentWildEncounter
thumb_func_start sub_8082F78
sub_8082F78: @ 8082F78