summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_811DA74.s34
-rw-r--r--asm/battle_ai.s10
-rw-r--r--asm/battle_anim.s4729
-rw-r--r--asm/battle_anim_807B69C.s960
-rw-r--r--asm/battle_anim_80A7E7C.s2589
-rw-r--r--asm/battle_anim_80CA710.s1676
-rw-r--r--asm/battle_anim_813F0F4.s5740
-rw-r--r--asm/battle_message.s84
-rw-r--r--asm/battle_party_menu.s1263
-rw-r--r--asm/battle_records.s28
-rw-r--r--asm/berry_blender.s12
-rw-r--r--asm/berry_tag_screen.s1115
-rw-r--r--asm/bike.s6
-rw-r--r--asm/braille_puzzles.s606
-rw-r--r--asm/cable_club.s85
-rw-r--r--asm/calculate_base_damage.s1165
-rw-r--r--asm/choose_party.s60
-rw-r--r--asm/contest.s284
-rw-r--r--asm/contest_ai.s52
-rw-r--r--asm/contest_link_80C2020.s102
-rw-r--r--asm/contest_link_80C857C.s40
-rw-r--r--asm/contest_painting.s1293
-rw-r--r--asm/credits.s2713
-rw-r--r--asm/daycare.s66
-rw-r--r--asm/decoration.s57
-rw-r--r--asm/easy_chat.s2
-rw-r--r--asm/egg_hatch.s4
-rw-r--r--asm/evolution_graphics.s (renamed from asm/rom_8148B8C.s)1538
-rw-r--r--asm/evolution_scene.s12
-rw-r--r--asm/field_control_avatar.s (renamed from asm/rom_8065394.s)296
-rw-r--r--asm/field_effect.s (renamed from asm/rom_80859BC.s)4125
-rw-r--r--asm/field_effect_helpers.s2
-rw-r--r--asm/field_ground_effect.s588
-rw-r--r--asm/field_map_obj.s6
-rw-r--r--asm/field_player_avatar.s4636
-rw-r--r--asm/field_region_map.s274
-rw-r--r--asm/field_tasks.s (renamed from asm/rom_806936C.s)428
-rw-r--r--asm/fieldmap.s1998
-rw-r--r--asm/fldeff_80C5CD4.s6
-rw-r--r--asm/fldeff_cut.s797
-rw-r--r--asm/fldeff_strength.s152
-rw-r--r--asm/fldeff_teleport.s93
-rw-r--r--asm/hall_of_fame.s3402
-rw-r--r--asm/intro_credits_graphics.s1166
-rw-r--r--asm/item_menu.s52
-rw-r--r--asm/item_use.s985
-rw-r--r--asm/load_save.s444
-rw-r--r--asm/macros/battle_anim.inc24
-rw-r--r--asm/mail.s892
-rw-r--r--asm/mail_data.s574
-rw-r--r--asm/map_name_popup.s248
-rw-r--r--asm/matuda_debug_menu.s2877
-rw-r--r--asm/mauville_old_man.s2
-rw-r--r--asm/metatile_behavior.s2345
-rw-r--r--asm/money.s480
-rw-r--r--asm/mystery_event_menu.s581
-rw-r--r--asm/mystery_event_script.s189
-rw-r--r--asm/name_string_util.s76
-rw-r--r--asm/naming_screen.s2
-rw-r--r--asm/party_menu.s6689
-rw-r--r--asm/player_pc.s1185
-rw-r--r--asm/pokeball.s2787
-rw-r--r--asm/pokeblock.s2675
-rw-r--r--asm/pokeblock_feed.s (renamed from asm/rom_81473B8.s)599
-rw-r--r--asm/pokedex.s24
-rw-r--r--asm/pokemon_3.s2826
-rw-r--r--asm/pokemon_icon.s788
-rw-r--r--asm/pokemon_item_effect.s1970
-rw-r--r--asm/pokemon_menu.s3438
-rw-r--r--asm/pokemon_storage_system.s15417
-rw-r--r--asm/pokemon_summary_screen.s8776
-rw-r--r--asm/pokenav.s40
-rw-r--r--asm/record_mixing.s4
-rw-r--r--asm/region_map.s6
-rw-r--r--asm/reset_rtc_screen.s6
-rw-r--r--asm/rom3.s46
-rw-r--r--asm/rom5.s973
-rw-r--r--asm/rom6.s9397
-rw-r--r--asm/rom_800D42C.s1052
-rw-r--r--asm/rom_803D1FC.s5839
-rw-r--r--asm/rom_804373C.s3063
-rw-r--r--asm/rom_806D7F8.s6917
-rw-r--r--asm/rom_8077ABC.s (renamed from asm/rom_8074BAC.s)4836
-rw-r--r--asm/rom_8080874.s76
-rw-r--r--asm/rom_8094928.s28744
-rw-r--r--asm/rom_810CBB4.s6732
-rw-r--r--asm/rom_81258BC.s316
-rw-r--r--asm/rom_813BA94.s20259
-rw-r--r--asm/roulette.s4
-rw-r--r--asm/save_failed_screen.s779
-rw-r--r--asm/script_menu.s1237
-rw-r--r--asm/script_movement.s596
-rw-r--r--asm/script_pokemon_util_80C4BF0.s36
-rw-r--r--asm/script_pokemon_util_80F99CC.s20
-rw-r--r--asm/secret_base.s4
-rw-r--r--asm/shop.s2
-rw-r--r--asm/slot_machine.s30
-rw-r--r--asm/smokescreen.s226
-rw-r--r--asm/trade.s48
-rw-r--r--asm/trainer_card.s2755
-rw-r--r--asm/tv.s756
-rw-r--r--asm/unknown_debug_menu.s133
-rw-r--r--asm/unknown_task.s645
-rw-r--r--asm/util.s (renamed from asm/rom_8040EB4.s)44
-rw-r--r--asm/weather.s888
105 files changed, 78677 insertions, 119071 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
index dc3cd456f..13a7f974e 100644
--- a/asm/battle_811DA74.s
+++ b/asm/battle_811DA74.s
@@ -182,15 +182,15 @@ _0811DBBC: .4byte 0x02017810
sub_811DBC0: @ 811DBC0
push {r4-r6,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0811DBE4
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0811DC18
- ldr r0, _0811DC04 @ =gUnknown_020239F8
+ ldr r0, _0811DC04 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -214,7 +214,7 @@ _0811DBE4:
bne _0811DC50
b _0811DC4E
.align 2, 0
-_0811DC04: .4byte gUnknown_020239F8
+_0811DC04: .4byte gBattleTypeFlags
_0811DC08: .4byte gSprites
_0811DC0C: .4byte gUnknown_03004340
_0811DC10: .4byte gUnknown_02024A60
@@ -330,11 +330,11 @@ sub_811DCA0: @ 811DCA0
lsls r1, 2
adds r1, r4
strb r2, [r1, 0x9]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0811DD56
- ldr r0, _0811DDC4 @ =gUnknown_020239F8
+ ldr r0, _0811DDC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -426,7 +426,7 @@ _0811DDB4:
.align 2, 0
_0811DDBC: .4byte gUnknown_02024A60
_0811DDC0: .4byte 0x02017810
-_0811DDC4: .4byte gUnknown_020239F8
+_0811DDC4: .4byte gBattleTypeFlags
_0811DDC8: .4byte gUnknown_0300434C
_0811DDCC: .4byte gSprites
_0811DDD0: .4byte gUnknown_03004340
@@ -1021,7 +1021,7 @@ sub_811E29C: @ 811E29C
ands r0, r1
cmp r0, 0
bne _0811E302
- ldr r0, _0811E2D0 @ =gUnknown_020239F8
+ ldr r0, _0811E2D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1038,7 +1038,7 @@ sub_811E29C: @ 811E29C
b _0811E302
.align 2, 0
_0811E2CC: .4byte gPaletteFade
-_0811E2D0: .4byte gUnknown_020239F8
+_0811E2D0: .4byte gBattleTypeFlags
_0811E2D4: .4byte gUnknown_03004330
_0811E2D8: .4byte gUnknown_02024A60
_0811E2DC: .4byte sub_811E258
@@ -1078,7 +1078,7 @@ dp01_tbl3_exec_completed: @ 811E314
adds r0, r1
ldr r1, _0811E35C @ =sub_811DA94
str r1, [r0]
- ldr r0, _0811E360 @ =gUnknown_020239F8
+ ldr r0, _0811E360 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1102,7 +1102,7 @@ dp01_tbl3_exec_completed: @ 811E314
_0811E354: .4byte gUnknown_03004330
_0811E358: .4byte gUnknown_02024A60
_0811E35C: .4byte sub_811DA94
-_0811E360: .4byte gUnknown_020239F8
+_0811E360: .4byte gBattleTypeFlags
_0811E364: .4byte gUnknown_02023A60
_0811E368:
ldr r2, _0811E384 @ =gUnknown_02024A64
@@ -3628,7 +3628,7 @@ sub_811F864: @ 811F864
lsrs r0, 16
mov r8, r0
ldr r0, _0811F9B4 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _0811F9B8 @ =gUnknown_0300434C
mov r9, r1
add r9, r6
@@ -3900,7 +3900,7 @@ sub_811FAE4: @ 811FAE4
push {r4-r6,lr}
mov r6, r8
push {r6}
- ldr r0, _0811FB14 @ =gUnknown_020239F8
+ ldr r0, _0811FB14 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -3921,7 +3921,7 @@ _0811FB0A:
bl sub_803FC34
b _0811FB34
.align 2, 0
-_0811FB14: .4byte gUnknown_020239F8
+_0811FB14: .4byte gBattleTypeFlags
_0811FB18: .4byte gUnknown_02024A60
_0811FB1C: .4byte 0x0000fff0
_0811FB20: .4byte gLinkPlayers
@@ -5467,11 +5467,11 @@ _08120748:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08120768
- ldr r0, _0812078C @ =gUnknown_020239F8
+ ldr r0, _0812078C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -5494,7 +5494,7 @@ _08120768:
b _081207EC
.align 2, 0
_08120788: .4byte gUnknown_02024A60
-_0812078C: .4byte gUnknown_020239F8
+_0812078C: .4byte gBattleTypeFlags
_08120790: .4byte gUnknown_02023A60
_08120794: .4byte gUnknown_02024A6A
_08120798:
diff --git a/asm/battle_ai.s b/asm/battle_ai.s
index 78e928ac7..829768e17 100644
--- a/asm/battle_ai.s
+++ b/asm/battle_ai.s
@@ -5,7 +5,7 @@
.syntax unified
.text
-
+
thumb_func_start BattleAICmd_if_status_in_party
BattleAICmd_if_status_in_party: @ 8108964
push {r4-r7,lr}
@@ -212,7 +212,7 @@ _08108AE8: .4byte gAIScriptPtr
thumb_func_start BattleAICmd_unk_36
BattleAICmd_unk_36: @ 8108AEC
push {lr}
- ldr r2, _08108B3C @ =word_2024DB8
+ ldr r2, _08108B3C @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x7
ands r0, r1
@@ -255,7 +255,7 @@ _08108B2E:
pop {r0}
bx r0
.align 2, 0
-_08108B3C: .4byte word_2024DB8
+_08108B3C: .4byte gBattleWeather
_08108B40: .4byte 0x02016800
_08108B44: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_36
@@ -1649,7 +1649,7 @@ _08109598: .4byte gUnknown_02024CA8
thumb_func_start BattleAICmd_unk_4C
BattleAICmd_unk_4C: @ 810959C
ldr r2, _081095B4 @ =0x02016800
- ldr r0, _081095B8 @ =gUnknown_020239F8
+ ldr r0, _081095B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -1661,7 +1661,7 @@ BattleAICmd_unk_4C: @ 810959C
bx lr
.align 2, 0
_081095B4: .4byte 0x02016800
-_081095B8: .4byte gUnknown_020239F8
+_081095B8: .4byte gBattleTypeFlags
_081095BC: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_4C
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
new file mode 100644
index 000000000..a64d0414a
--- /dev/null
+++ b/asm/battle_anim.s
@@ -0,0 +1,4729 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8075624
+sub_8075624: @ 8075624
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080756B8 @ =gUnknown_0202F7B0
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080756BC @ =gUnknown_0202F7B1
+ strb r1, [r0]
+ ldr r0, _080756C0 @ =gUnknown_0202F7B2
+ strb r1, [r0]
+ ldr r0, _080756C4 @ =gUnknown_0202F7B3
+ strb r1, [r0]
+ ldr r0, _080756C8 @ =gUnknown_0202F7B4
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _080756CC @ =gUnknown_0202F7B8
+ str r1, [r0]
+ ldr r0, _080756D0 @ =gUnknown_0202F7BC
+ movs r2, 0
+ strh r1, [r0]
+ ldr r0, _080756D4 @ =gUnknown_0202F7BE
+ strb r2, [r0]
+ ldr r4, _080756D8 @ =gUnknown_0202F7C2
+ ldr r5, _080756DC @ =gUnknown_0202F7C4
+ ldr r6, _080756E0 @ =gUnknown_0202F7C5
+ ldr r7, _080756E4 @ =gUnknown_0202F7C6
+ ldr r0, _080756E8 @ =gUnknown_0202F7C8
+ mov r12, r0
+ ldr r1, _080756EC @ =gUnknown_0202F7C9
+ mov r8, r1
+ ldr r0, _080756F0 @ =gUnknown_0202F7D2
+ mov r9, r0
+ ldr r1, _080756F4 @ =0x0000ffff
+ adds r3, r1, 0
+ ldr r1, _080756F8 @ =gUnknown_03004B10
+ movs r2, 0x7
+_0807566E:
+ ldrh r0, [r1]
+ orrs r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0807566E
+ ldr r1, _080756FC @ =gBattleAnimArgs
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0xE
+_08075684:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _08075684
+ movs r1, 0
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4, 0x1]
+ strb r1, [r5]
+ strb r1, [r6]
+ movs r0, 0
+ strh r1, [r7]
+ mov r1, r12
+ strb r0, [r1]
+ mov r1, r8
+ strb r0, [r1]
+ mov r1, r9
+ strb r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080756B8: .4byte gUnknown_0202F7B0
+_080756BC: .4byte gUnknown_0202F7B1
+_080756C0: .4byte gUnknown_0202F7B2
+_080756C4: .4byte gUnknown_0202F7B3
+_080756C8: .4byte gUnknown_0202F7B4
+_080756CC: .4byte gUnknown_0202F7B8
+_080756D0: .4byte gUnknown_0202F7BC
+_080756D4: .4byte gUnknown_0202F7BE
+_080756D8: .4byte gUnknown_0202F7C2
+_080756DC: .4byte gUnknown_0202F7C4
+_080756E0: .4byte gUnknown_0202F7C5
+_080756E4: .4byte gUnknown_0202F7C6
+_080756E8: .4byte gUnknown_0202F7C8
+_080756EC: .4byte gUnknown_0202F7C9
+_080756F0: .4byte gUnknown_0202F7D2
+_080756F4: .4byte 0x0000ffff
+_080756F8: .4byte gUnknown_03004B10
+_080756FC: .4byte gBattleAnimArgs
+ thumb_func_end sub_8075624
+
+ thumb_func_start move_anim_start_t1
+move_anim_start_t1: @ 8075700
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _08075724 @ =gUnknown_0202F7C8
+ ldr r0, _08075728 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, _0807572C @ =gUnknown_0202F7C9
+ ldr r0, _08075730 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08075734 @ =gBattleAnims_Moves
+ movs r2, 0x1
+ bl move_something
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075724: .4byte gUnknown_0202F7C8
+_08075728: .4byte gUnknown_02024C07
+_0807572C: .4byte gUnknown_0202F7C9
+_08075730: .4byte gUnknown_02024C08
+_08075734: .4byte gBattleAnims_Moves
+ thumb_func_end move_anim_start_t1
+
+ thumb_func_start move_something
+move_something: @ 8075738
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080757D8
+ bl sub_8079E24
+ movs r0, 0
+ bl sub_8043EB4
+ movs r4, 0
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r6, _0807578C @ =gUnknown_02024A6A
+ movs r7, 0x64
+ ldr r5, _08075790 @ =gUnknown_0202F7CA
+_08075774:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075798
+ ldrh r0, [r6]
+ muls r0, r7
+ ldr r1, _08075794 @ =gEnemyParty
+ b _0807579E
+ .align 2, 0
+_0807578C: .4byte gUnknown_02024A6A
+_08075790: .4byte gUnknown_0202F7CA
+_08075794: .4byte gEnemyParty
+_08075798:
+ ldrh r0, [r6]
+ muls r0, r7
+ ldr r1, _080757C0 @ =gPlayerParty
+_0807579E:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ strh r0, [r5]
+ adds r6, 0x2
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08075774
+ ldr r3, _080757C4 @ =gUnknown_0202F7C6
+ ldr r5, _080757C8 @ =gUnknown_0202F7C2
+ ldr r1, _080757CC @ =gUnknown_0202F7B1
+ mov r12, r1
+ ldr r7, _080757D0 @ =gUnknown_0202F7AC
+ ldr r6, _080757D4 @ =sub_80759D0
+ b _080757FC
+ .align 2, 0
+_080757C0: .4byte gPlayerParty
+_080757C4: .4byte gUnknown_0202F7C6
+_080757C8: .4byte gUnknown_0202F7C2
+_080757CC: .4byte gUnknown_0202F7B1
+_080757D0: .4byte gUnknown_0202F7AC
+_080757D4: .4byte sub_80759D0
+_080757D8:
+ ldr r3, _08075808 @ =gUnknown_0202F7C6
+ ldr r5, _0807580C @ =gUnknown_0202F7C2
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r1, _08075810 @ =gUnknown_0202F7B1
+ mov r12, r1
+ ldr r7, _08075814 @ =gUnknown_0202F7AC
+ ldr r6, _08075818 @ =sub_80759D0
+ ldr r2, _0807581C @ =0x02019348
+ ldr r1, _08075820 @ =gUnknown_0202F7CA
+ movs r4, 0x3
+_080757F0:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080757F0
+_080757FC:
+ mov r0, r9
+ cmp r0, 0
+ bne _08075824
+ strh r0, [r3]
+ b _08075828
+ .align 2, 0
+_08075808: .4byte gUnknown_0202F7C6
+_0807580C: .4byte gUnknown_0202F7C2
+_08075810: .4byte gUnknown_0202F7B1
+_08075814: .4byte gUnknown_0202F7AC
+_08075818: .4byte sub_80759D0
+_0807581C: .4byte 0x02019348
+_08075820: .4byte gUnknown_0202F7CA
+_08075824:
+ mov r1, r8
+ strh r1, [r3]
+_08075828:
+ ldr r1, _0807587C @ =gBattleAnimArgs
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0xE
+_08075830:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _08075830
+ movs r0, 0xFF
+ strb r0, [r5]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r5, 0x1]
+ ldr r0, [sp]
+ add r0, r10
+ ldr r0, [r0]
+ ldr r1, _08075880 @ =gUnknown_0202F7A4
+ str r0, [r1]
+ movs r0, 0x1
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ ldr r1, _08075884 @ =gUnknown_0202F7B0
+ strb r0, [r1]
+ str r6, [r7]
+ ldr r0, _08075888 @ =0x0000ffff
+ adds r2, r0, 0
+ ldr r1, _0807588C @ =gUnknown_03004B10
+ movs r4, 0x7
+_08075862:
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08075862
+ mov r1, r9
+ cmp r1, 0
+ beq _080758AE
+ movs r4, 0
+ ldr r2, _08075890 @ =gUnknown_081C7160
+ b _08075896
+ .align 2, 0
+_0807587C: .4byte gBattleAnimArgs
+_08075880: .4byte gUnknown_0202F7A4
+_08075884: .4byte gUnknown_0202F7B0
+_08075888: .4byte 0x0000ffff
+_0807588C: .4byte gUnknown_03004B10
+_08075890: .4byte gUnknown_081C7160
+_08075894:
+ adds r4, 0x1
+_08075896:
+ lsls r0, r4, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r1, _080758D0 @ =0x0000ffff
+ cmp r0, r1
+ beq _080758AE
+ cmp r8, r0
+ bne _08075894
+ ldr r0, _080758D4 @ =gMPlay_BGM
+ movs r2, 0x80
+ bl m4aMPlayVolumeControl
+_080758AE:
+ ldr r0, _080758D8 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080758DC @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r0, _080758E0 @ =gUnknown_03004200
+ strh r1, [r0]
+ ldr r0, _080758E4 @ =gUnknown_03004244
+ strh r1, [r0]
+ 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
+_080758D0: .4byte 0x0000ffff
+_080758D4: .4byte gMPlay_BGM
+_080758D8: .4byte gUnknown_030042C4
+_080758DC: .4byte gUnknown_03004240
+_080758E0: .4byte gUnknown_03004200
+_080758E4: .4byte gUnknown_03004244
+ thumb_func_end move_something
+
+ thumb_func_start move_anim_8072740
+move_anim_8072740: @ 80758E8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _08075904 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075904: .4byte gUnknown_0202F7B2
+ thumb_func_end move_anim_8072740
+
+ thumb_func_start move_anim_task_del
+move_anim_task_del: @ 8075908
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r1, _08075920 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075920: .4byte gUnknown_0202F7B2
+ thumb_func_end move_anim_task_del
+
+ thumb_func_start move_anim_related_task_del
+move_anim_related_task_del: @ 8075924
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r1, _0807593C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807593C: .4byte gUnknown_0202F7B3
+ thumb_func_end move_anim_related_task_del
+
+ thumb_func_start sub_8075940
+sub_8075940: @ 8075940
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r4, _08075958 @ =0x0000ffff
+ ldr r1, _0807595C @ =gUnknown_03004B10
+_0807594C:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08075960
+ strh r3, [r1]
+ b _08075968
+ .align 2, 0
+_08075958: .4byte 0x0000ffff
+_0807595C: .4byte gUnknown_03004B10
+_08075960:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0807594C
+_08075968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075940
+
+ thumb_func_start sub_8075970
+sub_8075970: @ 8075970
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r0, _0807598C @ =0x0000ffff
+ adds r4, r0, 0
+ ldr r1, _08075990 @ =gUnknown_03004B10
+_0807597E:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08075994
+ orrs r0, r4
+ strh r0, [r1]
+ b _0807599C
+ .align 2, 0
+_0807598C: .4byte 0x0000ffff
+_08075990: .4byte gUnknown_03004B10
+_08075994:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0807597E
+_0807599C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075970
+
+ thumb_func_start move_anim_waiter
+move_anim_waiter: @ 80759A4
+ push {lr}
+ ldr r2, _080759BC @ =gUnknown_0202F7B0
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ bgt _080759C8
+ ldr r0, _080759C0 @ =gUnknown_0202F7AC
+ ldr r1, _080759C4 @ =sub_80759D0
+ str r1, [r0]
+ movs r0, 0
+ b _080759CA
+ .align 2, 0
+_080759BC: .4byte gUnknown_0202F7B0
+_080759C0: .4byte gUnknown_0202F7AC
+_080759C4: .4byte sub_80759D0
+_080759C8:
+ subs r0, r1, 0x1
+_080759CA:
+ strb r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end move_anim_waiter
+
+ thumb_func_start sub_80759D0
+sub_80759D0: @ 80759D0
+ push {r4,lr}
+ ldr r4, _08075A00 @ =gUnknown_0837F4B8
+_080759D4:
+ ldr r0, _08075A04 @ =gUnknown_0202F7A4
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08075A08 @ =gUnknown_0202F7B0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080759F8
+ ldr r0, _08075A0C @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080759D4
+_080759F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075A00: .4byte gUnknown_0837F4B8
+_08075A04: .4byte gUnknown_0202F7A4
+_08075A08: .4byte gUnknown_0202F7B0
+_08075A0C: .4byte gUnknown_0202F7B1
+ thumb_func_end sub_80759D0
+
+ thumb_func_start ma00_load_graphics
+ma00_load_graphics: @ 8075A10
+ push {r4-r6,lr}
+ ldr r6, _08075A5C @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ lsls r5, r4, 3
+ ldr r0, _08075A60 @ =gBattleAnimPicTable - (10000 * 8)
+ adds r0, r5, r0
+ bl LoadCompressedObjectPic
+ ldr r0, _08075A64 @ =gBattleAnimPaletteTable - (10000 * 8)
+ adds r5, r0
+ adds r0, r5, 0
+ bl LoadCompressedObjectPalette
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ ldr r0, _08075A68 @ =0xffffd8f0
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_8075940
+ ldr r1, _08075A6C @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08075A70 @ =gUnknown_0202F7AC
+ ldr r0, _08075A74 @ =move_anim_waiter
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075A5C: .4byte gUnknown_0202F7A4
+_08075A60: .4byte gBattleAnimPicTable - (10000 * 8)
+_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8)
+_08075A68: .4byte 0xffffd8f0
+_08075A6C: .4byte gUnknown_0202F7B0
+_08075A70: .4byte gUnknown_0202F7AC
+_08075A74: .4byte move_anim_waiter
+ thumb_func_end ma00_load_graphics
+
+ thumb_func_start ma01_080728D0
+ma01_080728D0: @ 8075A78
+ push {r4-r6,lr}
+ ldr r6, _08075AB8 @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ ldr r1, _08075ABC @ =gBattleAnimPicTable
+ ldr r0, _08075AC0 @ =0xffffd8f0
+ adds r4, r0
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrh r5, [r0, 0x6]
+ adds r0, r5, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r5, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_8075970
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075AB8: .4byte gUnknown_0202F7A4
+_08075ABC: .4byte gBattleAnimPicTable
+_08075AC0: .4byte 0xffffd8f0
+ thumb_func_end ma01_080728D0
+
+ thumb_func_start ma02_instanciate_template
+ma02_instanciate_template: @ 8075AC4
+ push {r4-r7,lr}
+ ldr r5, _08075B2C @ =gUnknown_0202F7A4
+ ldr r1, [r5]
+ adds r3, r1, 0x1
+ str r3, [r5]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r7, r2, r0
+ adds r0, r1, 0x5
+ str r0, [r5]
+ ldrb r4, [r1, 0x5]
+ adds r0, r1, 0x6
+ str r0, [r5]
+ ldrb r0, [r1, 0x6]
+ adds r1, 0x7
+ str r1, [r5]
+ cmp r0, 0
+ beq _08075B14
+ adds r6, r5, 0
+ ldr r5, _08075B30 @ =gBattleAnimArgs
+ adds r3, r0, 0
+_08075AFC:
+ ldr r2, [r6]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r5]
+ adds r2, 0x2
+ str r2, [r6]
+ adds r5, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08075AFC
+_08075B14:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _08075B44
+ movs r0, 0x80
+ eors r4, r0
+ cmp r4, 0x3F
+ bls _08075B34
+ adds r0, r4, 0
+ subs r0, 0x40
+ b _08075B36
+ .align 2, 0
+_08075B2C: .4byte gUnknown_0202F7A4
+_08075B30: .4byte gBattleAnimArgs
+_08075B34:
+ negs r0, r4
+_08075B36:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08075B40 @ =gUnknown_0202F7C9
+ b _08075B56
+ .align 2, 0
+_08075B40: .4byte gUnknown_0202F7C9
+_08075B44:
+ cmp r4, 0x3F
+ bls _08075B4E
+ adds r0, r4, 0
+ subs r0, 0x40
+ b _08075B50
+_08075B4E:
+ negs r0, r4
+_08075B50:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08075BAC @ =gUnknown_0202F7C8
+_08075B56:
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 24
+ asrs r1, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bgt _08075B74
+ movs r6, 0x3
+_08075B74:
+ ldr r5, _08075BB0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, r6, 24
+ lsrs r3, 24
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl CreateSpriteAndAnimate
+ ldr r1, _08075BB4 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075BAC: .4byte gUnknown_0202F7C8
+_08075BB0: .4byte gUnknown_0202F7C9
+_08075BB4: .4byte gUnknown_0202F7B2
+ thumb_func_end ma02_instanciate_template
+
+ thumb_func_start sub_8075BB8
+sub_8075BB8: @ 8075BB8
+ push {r4-r7,lr}
+ ldr r4, _08075C28 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r3, r1, 0x1
+ str r3, [r4]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r6, r2, r0
+ adds r0, r1, 0x5
+ str r0, [r4]
+ ldrb r7, [r1, 0x5]
+ adds r0, r1, 0x6
+ str r0, [r4]
+ ldrb r0, [r1, 0x6]
+ adds r1, 0x7
+ str r1, [r4]
+ cmp r0, 0
+ beq _08075C08
+ adds r5, r4, 0
+ ldr r4, _08075C2C @ =gBattleAnimArgs
+ adds r3, r0, 0
+_08075BF0:
+ ldr r2, [r5]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r4]
+ adds r2, 0x2
+ str r2, [r5]
+ adds r4, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08075BF0
+_08075C08:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r6
+ ldr r1, _08075C30 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075C28: .4byte gUnknown_0202F7A4
+_08075C2C: .4byte gBattleAnimArgs
+_08075C30: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_8075BB8
+
+ thumb_func_start ma04_wait_countdown
+ma04_wait_countdown: @ 8075C34
+ push {r4,lr}
+ ldr r1, _08075C64 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r2, r0, 0x1
+ str r2, [r1]
+ ldr r3, _08075C68 @ =gUnknown_0202F7B0
+ ldrb r0, [r0, 0x1]
+ strb r0, [r3]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075C52
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ strb r0, [r3]
+_08075C52:
+ adds r0, r2, 0x1
+ str r0, [r1]
+ ldr r1, _08075C6C @ =gUnknown_0202F7AC
+ ldr r0, _08075C70 @ =move_anim_waiter
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075C64: .4byte gUnknown_0202F7A4
+_08075C68: .4byte gUnknown_0202F7B0
+_08075C6C: .4byte gUnknown_0202F7AC
+_08075C70: .4byte move_anim_waiter
+ thumb_func_end ma04_wait_countdown
+
+ thumb_func_start sub_8075C74
+sub_8075C74: @ 8075C74
+ push {lr}
+ ldr r0, _08075C8C @ =gUnknown_0202F7B2
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _08075C98
+ ldr r0, _08075C90 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ ldr r0, _08075C94 @ =gUnknown_0202F7B0
+ strb r2, [r0]
+ b _08075C9E
+ .align 2, 0
+_08075C8C: .4byte gUnknown_0202F7B2
+_08075C90: .4byte gUnknown_0202F7A4
+_08075C94: .4byte gUnknown_0202F7B0
+_08075C98:
+ ldr r1, _08075CA4 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+_08075C9E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075CA4: .4byte gUnknown_0202F7B0
+ thumb_func_end sub_8075C74
+
+ thumb_func_start nullsub_53
+nullsub_53: @ 8075CA8
+ bx lr
+ thumb_func_end nullsub_53
+
+ thumb_func_start nullsub_88
+nullsub_88: @ 8075CAC
+ bx lr
+ thumb_func_end nullsub_88
+
+ thumb_func_start sub_8075CB0
+sub_8075CB0: @ 8075CB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08075CE0 @ =gUnknown_0202F7B2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08075CD8
+ ldr r0, _08075CE4 @ =gUnknown_0202F7B3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08075CD8
+ ldr r1, _08075CE8 @ =gUnknown_0202F7C2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _08075CD8
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ beq _08075CF0
+_08075CD8:
+ ldr r1, _08075CEC @ =gUnknown_03004AF0
+ movs r0, 0
+ strh r0, [r1]
+ b _08075D0A
+ .align 2, 0
+_08075CE0: .4byte gUnknown_0202F7B2
+_08075CE4: .4byte gUnknown_0202F7B3
+_08075CE8: .4byte gUnknown_0202F7C2
+_08075CEC: .4byte gUnknown_03004AF0
+_08075CF0:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075D28
+ ldr r1, _08075D14 @ =gUnknown_03004AF0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5A
+ bhi _08075D1C
+_08075D0A:
+ ldr r1, _08075D18 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08075D8E
+ .align 2, 0
+_08075D14: .4byte gUnknown_03004AF0
+_08075D18: .4byte gUnknown_0202F7B0
+_08075D1C:
+ ldr r0, _08075D98 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _08075D9C @ =gMPlay_SE2
+ bl m4aMPlayStop
+_08075D28:
+ ldr r1, _08075DA0 @ =gUnknown_03004AF0
+ movs r0, 0
+ strh r0, [r1]
+ movs r5, 0
+ ldr r7, _08075DA4 @ =0x0000ffff
+ ldr r6, _08075DA8 @ =gBattleAnimPicTable
+ ldr r4, _08075DAC @ =gUnknown_03004B10
+_08075D36:
+ ldrh r0, [r4]
+ cmp r0, r7
+ beq _08075D5A
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldrh r0, [r4]
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x6]
+ bl FreeSpritePaletteByTag
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ orrs r0, r1
+ strh r0, [r4]
+_08075D5A:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08075D36
+ mov r1, r8
+ cmp r1, 0
+ bne _08075D8E
+ ldr r0, _08075DB0 @ =gMPlay_BGM
+ ldr r1, _08075DA4 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075D88
+ bl sub_8079E24
+ movs r0, 0x1
+ bl sub_8043EB4
+_08075D88:
+ ldr r0, _08075DB4 @ =gUnknown_0202F7B1
+ mov r1, r8
+ strb r1, [r0]
+_08075D8E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075D98: .4byte gMPlay_SE1
+_08075D9C: .4byte gMPlay_SE2
+_08075DA0: .4byte gUnknown_03004AF0
+_08075DA4: .4byte 0x0000ffff
+_08075DA8: .4byte gBattleAnimPicTable
+_08075DAC: .4byte gUnknown_03004B10
+_08075DB0: .4byte gMPlay_BGM
+_08075DB4: .4byte gUnknown_0202F7B1
+ thumb_func_end sub_8075CB0
+
+ thumb_func_start ma09_play_sound
+ma09_play_sound: @ 8075DB8
+ push {r4,lr}
+ ldr r4, _08075DDC @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ adds r1, r0, 0x1
+ str r1, [r4]
+ ldrb r0, [r0, 0x1]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlaySE
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075DDC: .4byte gUnknown_0202F7A4
+ thumb_func_end ma09_play_sound
+
+ thumb_func_start sub_8075DE0
+sub_8075DE0: @ 8075DE0
+ push {r4-r7,lr}
+ ldr r0, _08075DF4 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r6, [r2, 0x1]
+ cmp r6, 0
+ bne _08075DF8
+ movs r6, 0x2
+ b _08075E02
+ .align 2, 0
+_08075DF4: .4byte gUnknown_0202F7A4
+_08075DF8:
+ cmp r6, 0x1
+ bne _08075DFE
+ movs r6, 0x3
+_08075DFE:
+ cmp r6, 0
+ beq _08075E06
+_08075E02:
+ cmp r6, 0x2
+ bne _08075E10
+_08075E06:
+ ldr r0, _08075E0C @ =gUnknown_0202F7C8
+ b _08075E12
+ .align 2, 0
+_08075E0C: .4byte gUnknown_0202F7C8
+_08075E10:
+ ldr r0, _08075E44 @ =gUnknown_0202F7C9
+_08075E12:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075ECE
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08075E3E
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075E48
+_08075E3E:
+ movs r7, 0
+ b _08075E4A
+ .align 2, 0
+_08075E44: .4byte gUnknown_0202F7C9
+_08075E48:
+ movs r7, 0x1
+_08075E4A:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8076034
+ ldr r0, _08075E98 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ ldr r0, _08075E9C @ =task_pA_ma0A_obj_to_bg_pal
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08075EA0 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ strh r4, [r2, 0x8]
+ ldr r1, _08075EA4 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x24]
+ ldrh r4, [r0, 0x20]
+ adds r1, r4
+ strh r1, [r2, 0xA]
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r2, 0xC]
+ cmp r7, 0
+ bne _08075EB0
+ ldr r0, _08075EA8 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075EAC @ =gUnknown_030041B4
+ b _08075EB8
+ .align 2, 0
+_08075E98: .4byte gUnknown_02024BE0
+_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal
+_08075EA0: .4byte gTasks
+_08075EA4: .4byte gSprites
+_08075EA8: .4byte gUnknown_030042C0
+_08075EAC: .4byte gUnknown_030041B4
+_08075EB0:
+ ldr r0, _08075F04 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075F08 @ =gUnknown_03004280
+_08075EB8:
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ ldr r0, _08075F0C @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r7, [r1, 0x12]
+ strh r5, [r1, 0x14]
+ ldr r0, _08075F10 @ =gUnknown_0202F7C2
+ strb r3, [r0]
+_08075ECE:
+ movs r0, 0x2
+ eors r5, r0
+ cmp r6, 0x1
+ bls _08075F9A
+ adds r0, r5, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075F9A
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08075F00
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075F14
+_08075F00:
+ movs r7, 0
+ b _08075F16
+ .align 2, 0
+_08075F04: .4byte gUnknown_03004288
+_08075F08: .4byte gUnknown_03004280
+_08075F0C: .4byte gTasks
+_08075F10: .4byte gUnknown_0202F7C2
+_08075F14:
+ movs r7, 0x1
+_08075F16:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8076034
+ ldr r0, _08075F64 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ ldr r0, _08075F68 @ =task_pA_ma0A_obj_to_bg_pal
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08075F6C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ strh r4, [r2, 0x8]
+ ldr r1, _08075F70 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x24]
+ ldrh r4, [r0, 0x20]
+ adds r1, r4
+ strh r1, [r2, 0xA]
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r2, 0xC]
+ cmp r7, 0
+ bne _08075F7C
+ ldr r0, _08075F74 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075F78 @ =gUnknown_030041B4
+ b _08075F84
+ .align 2, 0
+_08075F64: .4byte gUnknown_02024BE0
+_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal
+_08075F6C: .4byte gTasks
+_08075F70: .4byte gSprites
+_08075F74: .4byte gUnknown_030042C0
+_08075F78: .4byte gUnknown_030041B4
+_08075F7C:
+ ldr r0, _08075FA8 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075FAC @ =gUnknown_03004280
+_08075F84:
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ ldr r0, _08075FB0 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r7, [r1, 0x12]
+ strh r5, [r1, 0x14]
+ ldr r0, _08075FB4 @ =gUnknown_0202F7C2
+ strb r3, [r0, 0x1]
+_08075F9A:
+ ldr r1, _08075FB8 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075FA8: .4byte gUnknown_03004288
+_08075FAC: .4byte gUnknown_03004280
+_08075FB0: .4byte gTasks
+_08075FB4: .4byte gUnknown_0202F7C2
+_08075FB8: .4byte gUnknown_0202F7A4
+ thumb_func_end sub_8075DE0
+
+ thumb_func_start b_side_obj__get_some_boolean
+b_side_obj__get_some_boolean: @ 8075FBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075FDC
+ ldr r0, _08075FD8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0807601C
+ b _0807602C
+ .align 2, 0
+_08075FD8: .4byte gUnknown_0202F7C8
+_08075FDC:
+ adds r0, r4, 0
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807602C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807601C
+ lsls r0, r5, 2
+ ldr r1, _08076020 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807601C
+ ldr r2, _08076024 @ =gSprites
+ ldr r0, _08076028 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _0807602C
+_0807601C:
+ movs r0, 0x1
+ b _0807602E
+ .align 2, 0
+_08076020: .4byte 0x02017800
+_08076024: .4byte gSprites
+_08076028: .4byte gUnknown_02024BE0
+_0807602C:
+ movs r0, 0
+_0807602E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end b_side_obj__get_some_boolean
+
+ thumb_func_start sub_8076034
+sub_8076034: @ 8076034
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ cmp r1, 0
+ beq _0807604E
+ b _08076220
+_0807604E:
+ add r4, sp, 0x10
+ adds r0, r4, 0
+ bl sub_8078914
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x1C
+ add r0, sp, 0x20
+ mov r10, r0
+ mov r1, r9
+ lsls r1, 5
+ str r1, [sp, 0x24]
+ movs r5, 0
+ ldr r1, _08076194 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r6
+ ldr r7, _08076198 @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_0807607A:
+ str r5, [sp, 0x1C]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0807607A
+ str r5, [sp, 0x1C]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0xC
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, [sp, 0x14]
+ movs r0, 0xFF
+ mov r3, r10
+ strh r0, [r3]
+ ldr r0, _08076194 @ =0x040000d4
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0807619C @ =0x81000800
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r2, _080761A0 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _080761A4 @ =gUnknown_02024BE0
+ add r0, r9
+ ldrb r4, [r0]
+ ldr r5, _080761A8 @ =gUnknown_030042C0
+ ldr r0, _080761AC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r5]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807611C
+ ldr r0, _080761B0 @ =0x02019348
+ ldrh r0, [r0]
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807611C
+ ldrh r0, [r5]
+ subs r0, 0x1
+ strh r0, [r5]
+_0807611C:
+ ldr r3, _080761B4 @ =gUnknown_030041B4
+ ldr r2, _080761AC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x26]
+ ldrh r1, [r1, 0x22]
+ adds r0, r1
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r3]
+ ldr r0, _080761A4 @ =gUnknown_02024BE0
+ add r0, r9
+ 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]
+ ldr r1, _080761B8 @ =REG_BG1HOFS
+ ldr r0, _080761A8 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r3]
+ strh r0, [r1]
+ ldr r4, _080761BC @ =gPlttBufferUnfaded + 0x200
+ ldr r0, [sp, 0x24]
+ adds r4, r0, r4
+ mov r2, sp
+ ldrb r1, [r2, 0x18]
+ lsls r1, 4
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ mov r3, sp
+ ldrb r0, [r3, 0x18]
+ lsls r0, 5
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ ldr r1, _08076194 @ =0x040000d4
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _080761C0 @ =0x84000008
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080761C4
+ movs r2, 0
+ b _080761CE
+ .align 2, 0
+_08076194: .4byte 0x040000d4
+_08076198: .4byte 0x85000400
+_0807619C: .4byte 0x81000800
+_080761A0: .4byte REG_BG1CNT
+_080761A4: .4byte gUnknown_02024BE0
+_080761A8: .4byte gUnknown_030042C0
+_080761AC: .4byte gSprites
+_080761B0: .4byte 0x02019348
+_080761B4: .4byte gUnknown_030041B4
+_080761B8: .4byte REG_BG1HOFS
+_080761BC: .4byte gPlttBufferUnfaded + 0x200
+_080761C0: .4byte 0x84000008
+_080761C4:
+ mov r0, r9
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080761CE:
+ mov r0, sp
+ ldrb r3, [r0, 0x18]
+ ldr r0, [sp, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ ldr r4, [sp, 0x14]
+ movs r1, 0xFA
+ lsls r1, 24
+ adds r0, r4, r1
+ cmp r0, 0
+ bge _080761EA
+ ldr r1, _08076218 @ =0xfa0007ff
+ adds r0, r4, r1
+_080761EA:
+ asrs r0, 11
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _0807621C @ =REG_BG1CNT
+ ldr r0, [r0]
+ lsls r0, 28
+ lsrs r0, 30
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80E4EF8
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076210
+ b _08076338
+_08076210:
+ bl sub_8076380
+ b _08076338
+ .align 2, 0
+_08076218: .4byte 0xfa0007ff
+_0807621C: .4byte REG_BG1CNT
+_08076220:
+ ldr r3, _08076348 @ =0x06006000
+ movs r5, 0x80
+ lsls r5, 6
+ add r6, sp, 0x1C
+ ldr r2, _0807634C @ =gSprites
+ mov r10, r2
+ mov r0, r9
+ lsls r0, 5
+ str r0, [sp, 0x24]
+ movs r4, 0
+ ldr r1, _08076350 @ =0x040000d4
+ movs r2, 0x80
+ lsls r2, 5
+ mov r12, r6
+ ldr r7, _08076354 @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_08076244:
+ str r4, [sp, 0x1C]
+ mov r0, r12
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08076244
+ str r4, [sp, 0x1C]
+ str r6, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r5, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0xC
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, _08076358 @ =0x0600f000
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ ldr r5, _08076350 @ =0x040000d4
+ str r6, [r5]
+ str r1, [r5, 0x4]
+ ldr r0, _0807635C @ =0x85000200
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ ldr r6, _08076360 @ =REG_BG2CNT
+ ldrb r1, [r6]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrb r1, [r6, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ ldrb r1, [r6, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r6, 0x1]
+ ldr r2, _08076364 @ =gUnknown_02024BE0
+ add r2, r9
+ ldrb r4, [r2]
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ add r1, r10
+ ldrh r0, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r0, r3
+ negs r0, r0
+ adds r0, 0x20
+ ldr r3, _08076368 @ =gUnknown_03004288
+ strh r0, [r3]
+ ldrh r0, [r1, 0x26]
+ ldrh r1, [r1, 0x22]
+ adds r0, r1
+ negs r0, r0
+ adds r0, 0x20
+ ldr r1, _0807636C @ =gUnknown_03004280
+ strh r0, [r1]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _08076370 @ =REG_BG2HOFS
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0807636C @ =gUnknown_03004280
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r3, [sp, 0x24]
+ ldr r0, _08076374 @ =gPlttBufferUnfaded + 0x200
+ adds r4, r3, r0
+ adds r0, r4, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08076378 @ =0x05000120
+ str r4, [r5]
+ str r0, [r5, 0x4]
+ ldr r0, _0807637C @ =0x84000008
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ mov r0, r9
+ bl battle_get_per_side_status
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0xC0
+ lsls r0, 7
+ str r0, [sp]
+ movs r0, 0x1E
+ str r0, [sp, 0x4]
+ ldr r0, [r6]
+ lsls r0, 28
+ lsrs r0, 30
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x9
+ bl sub_80E4EF8
+_08076338:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076348: .4byte 0x06006000
+_0807634C: .4byte gSprites
+_08076350: .4byte 0x040000d4
+_08076354: .4byte 0x85000400
+_08076358: .4byte 0x0600f000
+_0807635C: .4byte 0x85000200
+_08076360: .4byte REG_BG2CNT
+_08076364: .4byte gUnknown_02024BE0
+_08076368: .4byte gUnknown_03004288
+_0807636C: .4byte gUnknown_03004280
+_08076370: .4byte REG_BG2HOFS
+_08076374: .4byte gPlttBufferUnfaded + 0x200
+_08076378: .4byte 0x05000120
+_0807637C: .4byte 0x84000008
+ thumb_func_end sub_8076034
+
+ thumb_func_start sub_8076380
+sub_8076380: @ 8076380
+ push {r4-r7,lr}
+ sub sp, 0xC
+ ldr r0, _080763F8 @ =0x02019348
+ ldrh r0, [r0]
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080763EE
+ mov r0, sp
+ bl sub_8078914
+ ldr r6, [sp, 0x4]
+ movs r5, 0
+ movs r0, 0x7
+ mov r12, r0
+ movs r7, 0
+_080763A2:
+ movs r4, 0
+ adds r3, r7, r6
+ mov r1, r12
+ lsls r0, r1, 1
+ adds r2, r0, r6
+_080763AC:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ strh r1, [r2]
+ adds r3, 0x2
+ subs r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080763AC
+ movs r0, 0x20
+ add r12, r0
+ adds r7, 0x40
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _080763A2
+ movs r5, 0
+ movs r1, 0x80
+ lsls r1, 3
+ adds r3, r1, 0
+_080763D2:
+ adds r2, r5, 0x1
+ lsls r0, r5, 6
+ adds r1, r0, r6
+ movs r4, 0x7
+_080763DA:
+ ldrh r0, [r1]
+ eors r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080763DA
+ adds r5, r2, 0
+ cmp r5, 0x7
+ ble _080763D2
+_080763EE:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080763F8: .4byte 0x02019348
+ thumb_func_end sub_8076380
+
+ thumb_func_start sub_80763FC
+sub_80763FC: @ 80763FC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r12, r1
+ adds r7, r2, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r3, 24
+ movs r0, 0x40
+ mov r9, r0
+ cmp r3, 0
+ bne _0807641A
+ movs r1, 0x20
+ mov r9, r1
+_0807641A:
+ lsls r0, r6, 28
+ lsrs r6, r0, 16
+ movs r0, 0
+ cmp r0, r9
+ bcs _08076452
+ ldr r1, _08076460 @ =0x00000fff
+ mov r8, r1
+_08076428:
+ movs r3, 0
+ adds r5, r0, 0x1
+ lsls r4, r0, 5
+_0807642E:
+ adds r1, r4, r3
+ lsls r1, 1
+ add r1, r12
+ ldrh r2, [r1]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r6
+ adds r0, r7
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _0807642E
+ lsls r0, r5, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bcc _08076428
+_08076452:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076460: .4byte 0x00000fff
+ thumb_func_end sub_80763FC
+
+ thumb_func_start sub_8076464
+sub_8076464: @ 8076464
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ add r5, sp, 0x4
+ adds r0, r5, 0
+ bl sub_8078914
+ cmp r4, 0
+ beq _0807648C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080764F0
+_0807648C:
+ ldr r2, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0x10
+ ldr r0, _080764E0 @ =gUnknown_030042C0
+ mov r9, r0
+ ldr r0, _080764E4 @ =gUnknown_030041B4
+ mov r10, r0
+ movs r6, 0
+ ldr r1, _080764E8 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r5
+ ldr r7, _080764EC @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_080764AE:
+ str r6, [sp, 0x10]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080764AE
+ str r6, [sp, 0x10]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, [sp, 0x8]
+ b _08076540
+ .align 2, 0
+_080764E0: .4byte gUnknown_030042C0
+_080764E4: .4byte gUnknown_030041B4
+_080764E8: .4byte 0x040000d4
+_080764EC: .4byte 0x85000400
+_080764F0:
+ ldr r2, _08076568 @ =0x06006000
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0x10
+ ldr r0, _0807656C @ =gUnknown_03004288
+ mov r9, r0
+ ldr r0, _08076570 @ =gUnknown_03004280
+ mov r10, r0
+ movs r6, 0
+ ldr r1, _08076574 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r5
+ ldr r7, _08076578 @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_08076512:
+ str r6, [sp, 0x10]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _08076512
+ str r6, [sp, 0x10]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, _0807657C @ =0x0600f000
+_08076540:
+ movs r2, 0
+ str r2, [sp, 0x10]
+ ldr r0, _08076574 @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _08076580 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r9
+ strh r2, [r0]
+ mov r0, r10
+ strh r2, [r0]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076568: .4byte 0x06006000
+_0807656C: .4byte gUnknown_03004288
+_08076570: .4byte gUnknown_03004280
+_08076574: .4byte 0x040000d4
+_08076578: .4byte 0x85000400
+_0807657C: .4byte 0x0600f000
+_08076580: .4byte 0x85000200
+ thumb_func_end sub_8076464
+
+ thumb_func_start task_pA_ma0A_obj_to_bg_pal
+task_pA_ma0A_obj_to_bg_pal: @ 8076584
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080765FC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrb r4, [r5, 0x8]
+ ldrb r6, [r5, 0x14]
+ mov r0, sp
+ bl sub_8078914
+ ldr r0, _08076600 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x24]
+ ldrh r0, [r1, 0x20]
+ adds r2, r0
+ ldrh r0, [r5, 0xA]
+ subs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrh r2, [r1, 0x26]
+ ldrh r1, [r1, 0x22]
+ adds r2, r1
+ ldrh r0, [r5, 0xC]
+ subs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x12
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08076614
+ ldr r1, _08076604 @ =gUnknown_030042C0
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0xE]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, _08076608 @ =gUnknown_030041B4
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r5, [r5, 0x10]
+ adds r0, r5
+ strh r0, [r1]
+ lsls r2, r6, 5
+ ldr r1, _0807660C @ =gPlttBufferFaded + 0x200
+ adds r2, r1
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 5
+ ldr r3, _08076610 @ =0xfffffe00
+ adds r1, r3
+ adds r0, r1
+ b _08076634
+ .align 2, 0
+_080765FC: .4byte gTasks
+_08076600: .4byte gSprites
+_08076604: .4byte gUnknown_030042C0
+_08076608: .4byte gUnknown_030041B4
+_0807660C: .4byte gPlttBufferFaded + 0x200
+_08076610: .4byte 0xfffffe00
+_08076614:
+ ldr r1, _08076648 @ =gUnknown_03004288
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0xE]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, _0807664C @ =gUnknown_03004280
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r5, [r5, 0x10]
+ adds r0, r5
+ strh r0, [r1]
+ lsls r2, r6, 5
+ ldr r0, _08076650 @ =gPlttBufferFaded + 0x200
+ adds r2, r0
+ subs r0, 0xE0
+_08076634:
+ ldr r1, _08076654 @ =0x040000d4
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _08076658 @ =0x84000008
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076648: .4byte gUnknown_03004288
+_0807664C: .4byte gUnknown_03004280
+_08076650: .4byte gPlttBufferFaded + 0x200
+_08076654: .4byte 0x040000d4
+_08076658: .4byte 0x84000008
+ thumb_func_end task_pA_ma0A_obj_to_bg_pal
+
+ thumb_func_start ma0B_0807324C
+ma0B_0807324C: @ 807665C
+ push {r4,r5,lr}
+ ldr r0, _08076670 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r4, [r2, 0x1]
+ cmp r4, 0
+ bne _08076674
+ movs r4, 0x2
+ b _0807667E
+ .align 2, 0
+_08076670: .4byte gUnknown_0202F7A4
+_08076674:
+ cmp r4, 0x1
+ bne _0807667A
+ movs r4, 0x3
+_0807667A:
+ cmp r4, 0
+ beq _08076682
+_0807667E:
+ cmp r4, 0x2
+ bne _0807668C
+_08076682:
+ ldr r0, _08076688 @ =gUnknown_0202F7C8
+ b _0807668E
+ .align 2, 0
+_08076688: .4byte gUnknown_0202F7C8
+_0807668C:
+ ldr r0, _080766E4 @ =gUnknown_0202F7C9
+_0807668E:
+ ldrb r5, [r0]
+ ldr r3, _080766E8 @ =gUnknown_0202F7C2
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080766B4
+ ldr r2, _080766EC @ =gSprites
+ ldr r0, _080766F0 @ =gUnknown_02024BE0
+ adds r0, r5, 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]
+_080766B4:
+ cmp r4, 0x1
+ bls _080766F4
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0xFF
+ beq _080766F4
+ ldr r3, _080766EC @ =gSprites
+ ldr r2, _080766F0 @ =gUnknown_02024BE0
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ adds r0, r2
+ ldrb r1, [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]
+ b _080766F6
+ .align 2, 0
+_080766E4: .4byte gUnknown_0202F7C9
+_080766E8: .4byte gUnknown_0202F7C2
+_080766EC: .4byte gSprites
+_080766F0: .4byte gUnknown_02024BE0
+_080766F4:
+ movs r4, 0
+_080766F6:
+ ldr r0, _08076720 @ =sub_807672C
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08076724 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xC]
+ ldr r1, _08076728 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076720: .4byte sub_807672C
+_08076724: .4byte gTasks
+_08076728: .4byte gUnknown_0202F7A4
+ thumb_func_end ma0B_0807324C
+
+ thumb_func_start sub_807672C
+sub_807672C: @ 807672C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0807676C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080767B6
+ ldrb r0, [r1, 0xC]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08076768
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076770
+_08076768:
+ movs r4, 0
+ b _08076772
+ .align 2, 0
+_0807676C: .4byte gTasks
+_08076770:
+ movs r4, 0x1
+_08076772:
+ ldr r6, _080767BC @ =gUnknown_0202F7C2
+ ldrb r0, [r6]
+ cmp r0, 0xFF
+ beq _0807678A
+ adds r0, r4, 0
+ bl sub_8076464
+ ldrb r0, [r6]
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r6]
+_0807678A:
+ ldr r0, _080767C0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ ble _080767B0
+ movs r0, 0x1
+ eors r4, r0
+ adds r0, r4, 0
+ bl sub_8076464
+ ldrb r0, [r6, 0x1]
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r6, 0x1]
+_080767B0:
+ adds r0, r5, 0
+ bl DestroyTask
+_080767B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080767BC: .4byte gUnknown_0202F7C2
+_080767C0: .4byte gTasks
+ thumb_func_end sub_807672C
+
+ thumb_func_start sub_80767C4
+sub_80767C4: @ 80767C4
+ push {r4,r5,lr}
+ ldr r0, _080767D8 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r5, [r2, 0x1]
+ cmp r5, 0
+ bne _080767DC
+ movs r5, 0x2
+ b _080767E6
+ .align 2, 0
+_080767D8: .4byte gUnknown_0202F7A4
+_080767DC:
+ cmp r5, 0x1
+ bne _080767E2
+ movs r5, 0x3
+_080767E2:
+ cmp r5, 0
+ beq _080767EA
+_080767E6:
+ cmp r5, 0x2
+ bne _080767F4
+_080767EA:
+ ldr r0, _080767F0 @ =gUnknown_0202F7C8
+ b _080767F6
+ .align 2, 0
+_080767F0: .4byte gUnknown_0202F7C8
+_080767F4:
+ ldr r0, _08076828 @ =gUnknown_0202F7C9
+_080767F6:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076850
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08076822
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807682C
+_08076822:
+ movs r1, 0
+ b _0807682E
+ .align 2, 0
+_08076828: .4byte gUnknown_0202F7C9
+_0807682C:
+ movs r1, 0x1
+_0807682E:
+ adds r0, r4, 0
+ bl sub_8076034
+ ldr r2, _08076888 @ =gSprites
+ ldr r0, _0807688C @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08076850:
+ movs r0, 0x2
+ eors r4, r0
+ cmp r5, 0x1
+ bls _080768B4
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080768B4
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08076882
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076890
+_08076882:
+ movs r1, 0
+ b _08076892
+ .align 2, 0
+_08076888: .4byte gSprites
+_0807688C: .4byte gUnknown_02024BE0
+_08076890:
+ movs r1, 0x1
+_08076892:
+ adds r0, r4, 0
+ bl sub_8076034
+ ldr r2, _080768C4 @ =gSprites
+ ldr r0, _080768C8 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080768B4:
+ ldr r1, _080768CC @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080768C4: .4byte gSprites
+_080768C8: .4byte gUnknown_02024BE0
+_080768CC: .4byte gUnknown_0202F7A4
+ thumb_func_end sub_80767C4
+
+ thumb_func_start ma23_8073484
+ma23_8073484: @ 80768D0
+ push {r4-r6,lr}
+ ldr r0, _080768E4 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r5, [r2, 0x1]
+ cmp r5, 0
+ bne _080768E8
+ movs r5, 0x2
+ b _080768F2
+ .align 2, 0
+_080768E4: .4byte gUnknown_0202F7A4
+_080768E8:
+ cmp r5, 0x1
+ bne _080768EE
+ movs r5, 0x3
+_080768EE:
+ cmp r5, 0
+ beq _080768F6
+_080768F2:
+ cmp r5, 0x2
+ bne _08076900
+_080768F6:
+ ldr r0, _080768FC @ =gUnknown_0202F7C8
+ b _08076902
+ .align 2, 0
+_080768FC: .4byte gUnknown_0202F7C8
+_08076900:
+ ldr r0, _08076960 @ =gUnknown_0202F7C9
+_08076902:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807692C
+ ldr r2, _08076964 @ =gSprites
+ ldr r0, _08076968 @ =gUnknown_02024BE0
+ adds r0, r6, 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]
+_0807692C:
+ cmp r5, 0x1
+ bls _0807696C
+ movs r0, 0x2
+ adds r4, r6, 0
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807696C
+ ldr r2, _08076964 @ =gSprites
+ ldr r0, _08076968 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ b _0807696E
+ .align 2, 0
+_08076960: .4byte gUnknown_0202F7C9
+_08076964: .4byte gSprites
+_08076968: .4byte gUnknown_02024BE0
+_0807696C:
+ movs r5, 0
+_0807696E:
+ ldr r0, _08076998 @ =sub_80769A4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807699C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ strh r6, [r1, 0xC]
+ ldr r1, _080769A0 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076998: .4byte sub_80769A4
+_0807699C: .4byte gTasks
+_080769A0: .4byte gUnknown_0202F7A4
+ thumb_func_end ma23_8073484
+
+ thumb_func_start sub_80769A4
+sub_80769A4: @ 80769A4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080769E8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _08076A32
+ ldrb r4, [r1, 0xC]
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080769E2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080769EC
+_080769E2:
+ movs r5, 0
+ b _080769EE
+ .align 2, 0
+_080769E8: .4byte gTasks
+_080769EC:
+ movs r5, 0x1
+_080769EE:
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076A00
+ adds r0, r5, 0
+ bl sub_8076464
+_08076A00:
+ ldr r0, _08076A38 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ ble _08076A2C
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076A2C
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_08076A2C:
+ adds r0, r6, 0
+ bl DestroyTask
+_08076A32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076A38: .4byte gTasks
+ thumb_func_end sub_80769A4
+
+ thumb_func_start sub_8076A3C
+sub_8076A3C: @ 8076A3C
+ push {r4,lr}
+ ldr r2, _08076A6C @ =gUnknown_0202F7A4
+ ldr r0, [r2]
+ adds r1, r0, 0x1
+ str r1, [r2]
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0x1
+ str r0, [r2]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ adds r0, 0x1
+ str r0, [r2]
+ ldr r2, _08076A70 @ =REG_BLDCNT
+ movs r4, 0xFD
+ lsls r4, 6
+ adds r0, r4, 0
+ strh r0, [r2]
+ ldr r0, _08076A74 @ =REG_BLDALPHA
+ orrs r3, r1
+ strh r3, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076A6C: .4byte gUnknown_0202F7A4
+_08076A70: .4byte REG_BLDCNT
+_08076A74: .4byte REG_BLDALPHA
+ thumb_func_end sub_8076A3C
+
+ thumb_func_start sub_8076A78
+sub_8076A78: @ 8076A78
+ ldr r2, _08076A98 @ =gUnknown_0202F7A4
+ ldr r0, [r2]
+ adds r1, r0, 0x1
+ str r1, [r2]
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0x1
+ str r0, [r2]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ adds r0, 0x1
+ str r0, [r2]
+ ldr r0, _08076A9C @ =REG_BLDCNT
+ orrs r3, r1
+ strh r3, [r0]
+ bx lr
+ .align 2, 0
+_08076A98: .4byte gUnknown_0202F7A4
+_08076A9C: .4byte REG_BLDCNT
+ thumb_func_end sub_8076A78
+
+ thumb_func_start sub_8076AA0
+sub_8076AA0: @ 8076AA0
+ ldr r1, _08076AB4 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08076AB8 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08076AB4: .4byte gUnknown_0202F7A4
+_08076AB8: .4byte REG_BLDCNT
+ thumb_func_end sub_8076AA0
+
+ thumb_func_start ma0E_call
+ma0E_call: @ 8076ABC
+ push {r4,lr}
+ ldr r4, _08076AE8 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r3, r1, 0x1
+ str r3, [r4]
+ ldr r2, _08076AEC @ =gUnknown_0202F7A8
+ adds r0, r1, 0x5
+ str r0, [r2]
+ ldrb r1, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076AE8: .4byte gUnknown_0202F7A4
+_08076AEC: .4byte gUnknown_0202F7A8
+ thumb_func_end ma0E_call
+
+ thumb_func_start sub_8076AF0
+sub_8076AF0: @ 8076AF0
+ ldr r0, _08076AFC @ =gUnknown_0202F7A4
+ ldr r1, _08076B00 @ =gUnknown_0202F7A8
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08076AFC: .4byte gUnknown_0202F7A4
+_08076B00: .4byte gUnknown_0202F7A8
+ thumb_func_end sub_8076AF0
+
+ thumb_func_start ma10_080736AC
+ma10_080736AC: @ 8076B04
+ push {r4,r5,lr}
+ ldr r5, _08076B30 @ =gUnknown_0202F7A4
+ ldr r1, [r5]
+ adds r0, r1, 0x1
+ str r0, [r5]
+ ldrb r2, [r1, 0x1]
+ adds r3, r0, 0x1
+ str r3, [r5]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ adds r1, 0x4
+ str r1, [r5]
+ ldr r0, _08076B34 @ =gBattleAnimArgs
+ lsls r2, 1
+ adds r2, r0
+ strh r4, [r2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076B30: .4byte gUnknown_0202F7A4
+_08076B34: .4byte gBattleAnimArgs
+ thumb_func_end ma10_080736AC
+
+ thumb_func_start ma11_if_else
+ma11_if_else: @ 8076B38
+ push {lr}
+ ldr r3, _08076B70 @ =gUnknown_0202F7A4
+ ldr r2, [r3]
+ adds r0, r2, 0x1
+ str r0, [r3]
+ ldr r0, _08076B74 @ =gUnknown_0202F7C4
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08076B52
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08076B52:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076B70: .4byte gUnknown_0202F7A4
+_08076B74: .4byte gUnknown_0202F7C4
+ thumb_func_end ma11_if_else
+
+ thumb_func_start ma12_cond_if
+ma12_cond_if: @ 8076B78
+ push {r4,r5,lr}
+ ldr r5, _08076BA8 @ =gUnknown_0202F7A4
+ ldr r4, [r5]
+ adds r2, r4, 0x1
+ str r2, [r5]
+ ldrb r1, [r4, 0x1]
+ adds r3, r2, 0x1
+ str r3, [r5]
+ ldr r0, _08076BAC @ =gUnknown_0202F7C4
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08076BB0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r5]
+ b _08076BB4
+ .align 2, 0
+_08076BA8: .4byte gUnknown_0202F7A4
+_08076BAC: .4byte gUnknown_0202F7C4
+_08076BB0:
+ adds r0, r4, 0x6
+ str r0, [r5]
+_08076BB4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ma12_cond_if
+
+ thumb_func_start sub_8076BBC
+sub_8076BBC: @ 8076BBC
+ ldr r3, _08076BDC @ =gUnknown_0202F7A4
+ ldr r0, [r3]
+ adds r2, r0, 0x1
+ str r2, [r3]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08076BDC: .4byte gUnknown_0202F7A4
+ thumb_func_end sub_8076BBC
+
+ thumb_func_start sub_8076BE0
+sub_8076BE0: @ 8076BE0
+ push {lr}
+ ldr r0, _08076BF8 @ =gMain
+ ldr r1, _08076BFC @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08076C00
+ movs r0, 0
+ b _08076C02
+ .align 2, 0
+_08076BF8: .4byte gMain
+_08076BFC: .4byte 0x0000043d
+_08076C00:
+ movs r0, 0x1
+_08076C02:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8076BE0
+
+ thumb_func_start ma14_load_background
+ma14_load_background: @ 8076C08
+ push {r4,lr}
+ ldr r1, _08076C3C @ =gUnknown_0202F7A4
+ ldr r2, [r1]
+ adds r0, r2, 0x1
+ str r0, [r1]
+ ldrb r4, [r2, 0x1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08076C44 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ ldr r1, _08076C48 @ =gUnknown_0202F7C5
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076C3C: .4byte gUnknown_0202F7A4
+_08076C40: .4byte task_p5_load_battle_screen_elements
+_08076C44: .4byte gTasks
+_08076C48: .4byte gUnknown_0202F7C5
+ thumb_func_end ma14_load_background
+
+ thumb_func_start sub_8076C4C
+sub_8076C4C: @ 8076C4C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _08076C8C @ =gUnknown_0202F7A4
+ ldr r1, [r2]
+ adds r0, r1, 0x1
+ str r0, [r2]
+ ldrb r3, [r1, 0x1]
+ mov r8, r3
+ ldrb r7, [r0, 0x1]
+ ldrb r6, [r0, 0x2]
+ adds r1, 0x4
+ str r1, [r2]
+ ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076C98
+ ldr r1, _08076C94 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x8]
+ b _08076CCA
+ .align 2, 0
+_08076C8C: .4byte gUnknown_0202F7A4
+_08076C90: .4byte task_p5_load_battle_screen_elements
+_08076C94: .4byte gTasks
+_08076C98:
+ ldr r0, _08076CB4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076CBC
+ ldr r1, _08076CB8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0x8]
+ b _08076CCA
+ .align 2, 0
+_08076CB4: .4byte gUnknown_0202F7C9
+_08076CB8: .4byte gTasks
+_08076CBC:
+ ldr r1, _08076CDC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0, 0x8]
+_08076CCA:
+ ldr r1, _08076CE0 @ =gUnknown_0202F7C5
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076CDC: .4byte gTasks
+_08076CE0: .4byte gUnknown_0202F7C5
+ thumb_func_end sub_8076C4C
+
+ thumb_func_start task_p5_load_battle_screen_elements
+task_p5_load_battle_screen_elements: @ 8076CE4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08076D18 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r6, [r4, 0x1C]
+ movs r0, 0x1C
+ ldrsh r3, [r4, r0]
+ adds r7, r1, 0
+ cmp r3, 0
+ bne _08076D1C
+ str r3, [sp]
+ movs r0, 0xE8
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ b _08076DAC
+ .align 2, 0
+_08076D18: .4byte gTasks
+_08076D1C:
+ ldr r2, _08076D38 @ =gPaletteFade
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08076DAC
+ cmp r3, 0x1
+ bne _08076D40
+ adds r0, r6, 0x1
+ strh r0, [r4, 0x1C]
+ ldr r1, _08076D3C @ =gUnknown_0202F7C5
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08076D84
+ .align 2, 0
+_08076D38: .4byte gPaletteFade
+_08076D3C: .4byte gUnknown_0202F7C5
+_08076D40:
+ cmp r3, 0x2
+ bne _08076D84
+ ldrh r0, [r4, 0x8]
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08076D58
+ bl dp01t_11_3_message_for_player_only
+ b _08076D5E
+_08076D58:
+ lsrs r0, r2, 16
+ bl sub_8076DB8
+_08076D5E:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xE8
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r1, _08076D80 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ adds r1, 0x1
+ strh r1, [r0, 0x1C]
+ b _08076DAC
+ .align 2, 0
+_08076D80: .4byte gTasks
+_08076D84:
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08076DAC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x1C
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3
+ bne _08076DAC
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, _08076DB4 @ =gUnknown_0202F7C5
+ strb r4, [r0]
+_08076DAC:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076DB4: .4byte gUnknown_0202F7C5
+ thumb_func_end task_p5_load_battle_screen_elements
+
+ thumb_func_start sub_8076DB8
+sub_8076DB8: @ 8076DB8
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076E70
+ ldr r7, _08076E54 @ =gBattleAnimBackgroundTable
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r4, r0, 2
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r0, r4, r0
+ ldr r5, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r1, _08076E58 @ =0x02018000
+ cmp r0, 0
+ beq _08076DE8
+ ldr r0, _08076E5C @ =0xffffc800
+ adds r1, r0
+_08076DE8:
+ adds r0, r5, 0
+ bl sub_800D238
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r1, _08076E58 @ =0x02018000
+ cmp r0, 0
+ beq _08076E06
+ ldr r0, _08076E5C @ =0xffffc800
+ adds r1, r0
+_08076E06:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80763FC
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r2, _08076E58 @ =0x02018000
+ cmp r0, 0
+ beq _08076E22
+ ldr r0, _08076E5C @ =0xffffc800
+ adds r2, r0
+_08076E22:
+ ldr r1, _08076E60 @ =0x0600d000
+ ldr r0, _08076E64 @ =0x040000d4
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _08076E68 @ =0x84000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ adds r0, r4, r7
+ ldr r0, [r0]
+ ldr r1, _08076E6C @ =0x06002000
+ bl LZDecompressVram
+ adds r0, r7, 0x4
+ adds r0, r4, r0
+ ldr r4, [r0]
+ bl sub_80789BC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 20
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _08076E9E
+ .align 2, 0
+_08076E54: .4byte gBattleAnimBackgroundTable
+_08076E58: .4byte 0x02018000
+_08076E5C: .4byte 0xffffc800
+_08076E60: .4byte 0x0600d000
+_08076E64: .4byte 0x040000d4
+_08076E68: .4byte 0x84000200
+_08076E6C: .4byte 0x06002000
+_08076E70:
+ ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable
+ lsls r4, r6, 1
+ adds r4, r6
+ lsls r4, 2
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r4, r0
+ ldr r0, [r0]
+ ldr r1, _08076EA8 @ =0x0600d000
+ bl LZDecompressVram
+ adds r0, r4, r5
+ ldr r0, [r0]
+ ldr r1, _08076EAC @ =0x06008000
+ bl LZDecompressVram
+ adds r5, 0x4
+ adds r4, r5
+ ldr r0, [r4]
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_08076E9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076EA4: .4byte gBattleAnimBackgroundTable
+_08076EA8: .4byte 0x0600d000
+_08076EAC: .4byte 0x06008000
+ thumb_func_end sub_8076DB8
+
+ thumb_func_start dp01t_11_3_message_for_player_only
+dp01t_11_3_message_for_player_only: @ 8076EB0
+ push {lr}
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076EC2
+ bl sub_80AB2AC
+ b _08076EC6
+_08076EC2:
+ bl sub_800D7B8
+_08076EC6:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_3_message_for_player_only
+
+ thumb_func_start ma15_load_battle_screen_elements
+ma15_load_battle_screen_elements: @ 8076ECC
+ push {lr}
+ ldr r1, _08076EFC @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08076F04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _08076F08 @ =0x0000ffff
+ strh r0, [r1, 0x8]
+ ldr r1, _08076F0C @ =gUnknown_0202F7C5
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076EFC: .4byte gUnknown_0202F7A4
+_08076F00: .4byte task_p5_load_battle_screen_elements
+_08076F04: .4byte gTasks
+_08076F08: .4byte 0x0000ffff
+_08076F0C: .4byte gUnknown_0202F7C5
+ thumb_func_end ma15_load_battle_screen_elements
+
+ thumb_func_start ma16_wait_for_battle_screen_elements_s2
+ma16_wait_for_battle_screen_elements_s2: @ 8076F10
+ push {lr}
+ ldr r0, _08076F28 @ =gUnknown_0202F7C5
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08076F34
+ ldr r1, _08076F2C @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r1, _08076F30 @ =gUnknown_0202F7B0
+ movs r0, 0
+ b _08076F38
+ .align 2, 0
+_08076F28: .4byte gUnknown_0202F7C5
+_08076F2C: .4byte gUnknown_0202F7A4
+_08076F30: .4byte gUnknown_0202F7B0
+_08076F34:
+ ldr r1, _08076F40 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+_08076F38:
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076F40: .4byte gUnknown_0202F7B0
+ thumb_func_end ma16_wait_for_battle_screen_elements_s2
+
+ thumb_func_start sub_8076F44
+sub_8076F44: @ 8076F44
+ push {lr}
+ ldr r0, _08076F5C @ =gUnknown_0202F7C5
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _08076F68
+ ldr r0, _08076F60 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ ldr r0, _08076F64 @ =gUnknown_0202F7B0
+ strb r2, [r0]
+ b _08076F6E
+ .align 2, 0
+_08076F5C: .4byte gUnknown_0202F7C5
+_08076F60: .4byte gUnknown_0202F7A4
+_08076F64: .4byte gUnknown_0202F7B0
+_08076F68:
+ ldr r1, _08076F74 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+_08076F6E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076F74: .4byte gUnknown_0202F7B0
+ thumb_func_end sub_8076F44
+
+ thumb_func_start ma18_load_background_probably
+ma18_load_background_probably: @ 8076F78
+ push {r4,lr}
+ ldr r4, _08076F94 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r0, r1, 0x1
+ str r0, [r4]
+ ldrb r0, [r1, 0x1]
+ bl sub_8076DB8
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076F94: .4byte gUnknown_0202F7A4
+ thumb_func_end ma18_load_background_probably
+
+ thumb_func_start sub_8076F98
+sub_8076F98: @ 8076F98
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076FDC
+ ldr r0, _08076FD4 @ =gUnknown_0202F7C8
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08076FD8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08076FDC
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r4, 0xC0
+ cmp r0, 0
+ beq _0807706E
+ movs r4, 0x3F
+ b _0807706E
+ .align 2, 0
+_08076FD4: .4byte gUnknown_0202F7C8
+_08076FD8: .4byte 0x02017810
+_08076FDC:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08077004
+ ldr r0, _08076FFC @ =gUnknown_0202F7C8
+ ldr r1, _08077000 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08077068
+ cmp r0, 0x2
+ bne _08077068
+ cmp r4, 0x3F
+ beq _0807707A
+ b _08077068
+ .align 2, 0
+_08076FFC: .4byte gUnknown_0202F7C8
+_08077000: .4byte gUnknown_0202F7C9
+_08077004:
+ ldr r0, _0807702C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08077042
+ ldr r0, _08077030 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807706E
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ cmp r1, 0x3F
+ bne _08077034
+ movs r4, 0xC0
+ b _0807706E
+ .align 2, 0
+_0807702C: .4byte gUnknown_0202F7C8
+_08077030: .4byte gUnknown_0202F7C9
+_08077034:
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ beq _0807706E
+ negs r0, r1
+ lsls r0, 24
+ b _0807706C
+_08077042:
+ ldr r0, _08077064 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08077068
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x40
+ negs r1, r1
+ cmp r0, r1
+ bne _0807706E
+ movs r4, 0x3F
+ b _0807706E
+ .align 2, 0
+_08077064: .4byte gUnknown_0202F7C9
+_08077068:
+ lsls r0, r4, 24
+ negs r0, r0
+_0807706C:
+ lsrs r4, r0, 24
+_0807706E:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x3F
+ ble _0807707A
+ movs r4, 0x3F
+ b _08077088
+_0807707A:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x40
+ negs r1, r1
+ cmp r0, r1
+ bge _08077088
+ movs r4, 0xC0
+_08077088:
+ lsls r0, r4, 24
+ asrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8076F98
+
+ thumb_func_start sub_8077094
+sub_8077094: @ 8077094
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080770D8
+ ldr r0, _080770D0 @ =gUnknown_0202F7C8
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080770D4 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080770D8
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r4, 0xC0
+ cmp r0, 0
+ beq _080770F6
+ movs r4, 0x3F
+ b _080770F6
+ .align 2, 0
+_080770D0: .4byte gUnknown_0202F7C8
+_080770D4: .4byte 0x02017810
+_080770D8:
+ ldr r0, _08077100 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080770F0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080770F6
+_080770F0:
+ lsls r0, r4, 24
+ negs r0, r0
+ lsrs r4, r0, 24
+_080770F6:
+ lsls r0, r4, 24
+ asrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08077100: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_8077094
+
+ thumb_func_start sub_8077104
+sub_8077104: @ 8077104
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0x3F
+ ble _08077114
+ movs r1, 0x3F
+ b _0807711E
+_08077114:
+ movs r0, 0x40
+ negs r0, r0
+ cmp r2, r0
+ bge _0807711E
+ ldr r1, _08077128 @ =0x0000ffc0
+_0807711E:
+ lsls r0, r1, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08077128: .4byte 0x0000ffc0
+ thumb_func_end sub_8077104
+
+ thumb_func_start sub_807712C
+sub_807712C: @ 807712C
+ push {lr}
+ lsls r2, 16
+ lsrs r2, 16
+ adds r3, r2, 0
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bge _0807714A
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0807715A
+ b _08077158
+_0807714A:
+ cmp r0, r1
+ ble _08077160
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08077158
+ negs r0, r0
+_08077158:
+ negs r0, r0
+_0807715A:
+ lsls r0, 16
+ lsrs r0, 16
+ b _08077162
+_08077160:
+ movs r0, 0
+_08077162:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807712C
+
+ thumb_func_start ma19_08073BC8
+ma19_08073BC8: @ 807716C
+ push {r4,r5,lr}
+ ldr r5, _080771A0 @ =gUnknown_0202F7A4
+ ldr r0, [r5]
+ adds r1, r0, 0x1
+ str r1, [r5]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ bl PlaySE12WithPanning
+ ldr r0, [r5]
+ adds r0, 0x3
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080771A0: .4byte gUnknown_0202F7A4
+ thumb_func_end ma19_08073BC8
+
+ thumb_func_start ma1A_8073C00
+ma1A_8073C00: @ 80771A4
+ push {r4,lr}
+ ldr r4, _080771CC @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r0, r1, 0x1
+ str r0, [r4]
+ movs r0, 0x1
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080771CC: .4byte gUnknown_0202F7A4
+ thumb_func_end ma1A_8073C00
+
+ thumb_func_start ma1B_8073C2C
+ma1B_8073C2C: @ 80771D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08077280 @ =gUnknown_0202F7A4
+ mov r10, r0
+ ldr r0, [r0]
+ adds r1, r0, 0x1
+ mov r2, r10
+ str r1, [r2]
+ ldrb r0, [r0, 0x1]
+ mov r9, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+ ldrb r4, [r1, 0x3]
+ ldrb r6, [r1, 0x4]
+ ldrb r7, [r1, 0x5]
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl sub_8076F98
+ mov r8, r0
+ lsls r5, 24
+ asrs r5, 24
+ mov r0, r8
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r5, 0
+ mov r1, r8
+ adds r2, r6, 0
+ bl sub_807712C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08077284 @ =c3_08073CEC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08077288 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ mov r2, r8
+ strh r2, [r1, 0xA]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xC]
+ strh r7, [r1, 0xE]
+ strh r5, [r1, 0x10]
+ mov r0, r9
+ adds r1, r5, 0
+ bl PlaySE12WithPanning
+ ldr r1, _0807728C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077280: .4byte gUnknown_0202F7A4
+_08077284: .4byte c3_08073CEC
+_08077288: .4byte gTasks
+_0807728C: .4byte gUnknown_0202F7B3
+ thumb_func_end ma1B_8073C2C
+
+ thumb_func_start c3_08073CEC
+c3_08073CEC: @ 8077290
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ ldr r1, _080772D4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x18]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0xE
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08077314
+ strh r7, [r2, 0x18]
+ ldrh r6, [r2, 0x8]
+ ldrh r3, [r2, 0xA]
+ movs r4, 0x10
+ ldrsh r0, [r2, r4]
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strh r4, [r2, 0x10]
+ cmp r1, 0
+ bne _080772D8
+ lsls r2, r3, 16
+ b _080772FC
+ .align 2, 0
+_080772D4: .4byte gTasks
+_080772D8:
+ lsls r1, r6, 16
+ lsls r0, r3, 16
+ asrs r3, r0, 16
+ adds r2, r0, 0
+ cmp r1, r2
+ bge _080772EE
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r3
+ blt _080772F8
+ b _080772FC
+_080772EE:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r3
+ bgt _080772F8
+ movs r7, 0x1
+_080772F8:
+ cmp r7, 0
+ beq _0807730C
+_080772FC:
+ lsrs r4, r2, 16
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, _0807731C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0807730C:
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+_08077314:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807731C: .4byte gUnknown_0202F7B3
+ thumb_func_end c3_08073CEC
+
+ thumb_func_start sub_8077320
+sub_8077320: @ 8077320
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ ldr r0, _080773A4 @ =gUnknown_0202F7A4
+ mov r9, r0
+ ldr r0, [r0]
+ adds r1, r0, 0x1
+ mov r2, r9
+ str r1, [r2]
+ ldrb r0, [r0, 0x1]
+ mov r8, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ mov r2, r8
+ orrs r2, r0
+ mov r8, r2
+ ldrb r4, [r1, 0x2]
+ ldrb r5, [r1, 0x3]
+ ldrb r6, [r1, 0x4]
+ ldrb r1, [r1, 0x5]
+ mov r10, r1
+ ldr r0, _080773A8 @ =c3_08073CEC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080773AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ lsls r5, 24
+ asrs r5, 24
+ strh r5, [r1, 0xA]
+ lsls r6, 24
+ asrs r6, 24
+ strh r6, [r1, 0xC]
+ mov r0, r10
+ strh r0, [r1, 0xE]
+ strh r4, [r1, 0x10]
+ mov r0, r8
+ adds r1, r4, 0
+ bl PlaySE12WithPanning
+ ldr r1, _080773B0 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080773A4: .4byte gUnknown_0202F7A4
+_080773A8: .4byte c3_08073CEC
+_080773AC: .4byte gTasks
+_080773B0: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_8077320
+
+ thumb_func_start sub_80773B4
+sub_80773B4: @ 80773B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08077464 @ =gUnknown_0202F7A4
+ mov r10, r0
+ ldr r0, [r0]
+ adds r1, r0, 0x1
+ mov r2, r10
+ str r1, [r2]
+ ldrb r0, [r0, 0x1]
+ mov r9, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+ ldrb r4, [r1, 0x3]
+ ldrb r0, [r1, 0x4]
+ mov r8, r0
+ ldrb r7, [r1, 0x5]
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8077094
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl sub_8077094
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ mov r0, r8
+ bl sub_8077094
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08077468 @ =c3_08073CEC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807746C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r6, 24
+ asrs r6, 24
+ strh r6, [r1, 0x8]
+ lsls r5, 24
+ asrs r5, 24
+ strh r5, [r1, 0xA]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xC]
+ strh r7, [r1, 0xE]
+ strh r6, [r1, 0x10]
+ mov r0, r9
+ adds r1, r6, 0
+ bl PlaySE12WithPanning
+ ldr r1, _08077470 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r2, r10
+ ldr r0, [r2]
+ adds r0, 0x6
+ str r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077464: .4byte gUnknown_0202F7A4
+_08077468: .4byte c3_08073CEC
+_0807746C: .4byte gTasks
+_08077470: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_80773B4
+
+ thumb_func_start ma1C_8073ED0
+ma1C_8073ED0: @ 8077474
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r6, _080774EC @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r5, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r5, r0
+ ldrb r0, [r1, 0x3]
+ mov r8, r0
+ ldrb r2, [r1, 0x4]
+ mov r9, r2
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080774F0 @ =sub_80774FC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080774F4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xA]
+ mov r2, r8
+ strh r2, [r1, 0xC]
+ mov r2, r9
+ strh r2, [r1, 0xE]
+ mov r2, r8
+ strh r2, [r1, 0x18]
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r1, _080774F8 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x5
+ str r0, [r6]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080774EC: .4byte gUnknown_0202F7A4
+_080774F0: .4byte sub_80774FC
+_080774F4: .4byte gTasks
+_080774F8: .4byte gUnknown_0202F7B3
+ thumb_func_end ma1C_8073ED0
+
+ thumb_func_start sub_80774FC
+sub_80774FC: @ 80774FC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08077550 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x18]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _0807754A
+ movs r0, 0
+ strh r0, [r2, 0x18]
+ ldrh r0, [r2, 0x8]
+ ldrb r1, [r2, 0xA]
+ ldrh r4, [r2, 0xE]
+ subs r4, 0x1
+ strh r4, [r2, 0xE]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ cmp r4, 0
+ bne _0807754A
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, _08077554 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0807754A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077550: .4byte gTasks
+_08077554: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_80774FC
+
+ thumb_func_start ma1D_08073FB4
+ma1D_08073FB4: @ 8077558
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r6, _080775BC @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r5, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r5, r0
+ ldrb r0, [r1, 0x3]
+ mov r8, r0
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080775C0 @ =sub_80775CC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080775C4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xA]
+ mov r0, r8
+ strh r0, [r1, 0xC]
+ ldr r1, _080775C8 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x4
+ str r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080775BC: .4byte gUnknown_0202F7A4
+_080775C0: .4byte sub_80775CC
+_080775C4: .4byte gTasks
+_080775C8: .4byte gUnknown_0202F7B3
+ thumb_func_end ma1D_08073FB4
+
+ thumb_func_start sub_80775CC
+sub_80775CC: @ 80775CC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08077608 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xC]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08077600
+ ldrh r0, [r2, 0x8]
+ movs r1, 0xA
+ ldrsb r1, [r2, r1]
+ bl PlaySE12WithPanning
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r1, _0807760C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08077600:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077608: .4byte gTasks
+_0807760C: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_80775CC
+
+ thumb_func_start sub_8077610
+sub_8077610: @ 8077610
+ push {r4-r6,lr}
+ ldr r4, _08077678 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r3, r1, 0x1
+ str r3, [r4]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r6, r2, r0
+ adds r0, r1, 0x5
+ str r0, [r4]
+ ldrb r0, [r1, 0x5]
+ adds r1, 0x6
+ str r1, [r4]
+ cmp r0, 0
+ beq _0807765A
+ adds r5, r4, 0
+ ldr r4, _0807767C @ =gBattleAnimArgs
+ adds r3, r0, 0
+_08077642:
+ ldr r2, [r5]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r4]
+ adds r2, 0x2
+ str r2, [r5]
+ adds r4, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08077642
+_0807765A:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r6
+ ldr r1, _08077680 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077678: .4byte gUnknown_0202F7A4
+_0807767C: .4byte gBattleAnimArgs
+_08077680: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_8077610
+
+ thumb_func_start ma20_wait_for_something
+ma20_wait_for_something: @ 8077684
+ push {r4,r5,lr}
+ ldr r0, _080776BC @ =gUnknown_0202F7B3
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080776CC
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080776E4
+ ldr r4, _080776C0 @ =gUnknown_03004AF0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5A
+ bls _080776D2
+ ldr r0, _080776C4 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _080776C8 @ =gMPlay_SE2
+ bl m4aMPlayStop
+ strh r5, [r4]
+ b _080776F6
+ .align 2, 0
+_080776BC: .4byte gUnknown_0202F7B3
+_080776C0: .4byte gUnknown_03004AF0
+_080776C4: .4byte gMPlay_SE1
+_080776C8: .4byte gMPlay_SE2
+_080776CC:
+ ldr r1, _080776DC @ =gUnknown_03004AF0
+ movs r0, 0
+ strh r0, [r1]
+_080776D2:
+ ldr r1, _080776E0 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080776F6
+ .align 2, 0
+_080776DC: .4byte gUnknown_03004AF0
+_080776E0: .4byte gUnknown_0202F7B0
+_080776E4:
+ ldr r0, _080776FC @ =gUnknown_03004AF0
+ movs r2, 0
+ strh r1, [r0]
+ ldr r1, _08077700 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08077704 @ =gUnknown_0202F7B0
+ strb r2, [r0]
+_080776F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080776FC: .4byte gUnknown_03004AF0
+_08077700: .4byte gUnknown_0202F7A4
+_08077704: .4byte gUnknown_0202F7B0
+ thumb_func_end ma20_wait_for_something
+
+ thumb_func_start ma21_08074164
+ma21_08074164: @ 8077708
+ push {r4-r6,lr}
+ ldr r5, _08077748 @ =gUnknown_0202F7A4
+ ldr r4, [r5]
+ adds r3, r4, 0x1
+ str r3, [r5]
+ ldrb r2, [r4, 0x1]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _0807774C @ =gBattleAnimArgs
+ lsls r2, 1
+ adds r2, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ cmp r1, r0
+ bne _08077750
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r5]
+ b _08077756
+ .align 2, 0
+_08077748: .4byte gUnknown_0202F7A4
+_0807774C: .4byte gBattleAnimArgs
+_08077750:
+ adds r0, r4, 0
+ adds r0, 0x8
+ str r0, [r5]
+_08077756:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end ma21_08074164
+
+ thumb_func_start sub_807775C
+sub_807775C: @ 807775C
+ push {r4,lr}
+ ldr r4, _0807778C @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08077790
+ ldr r2, [r4]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r4]
+ b _08077796
+ .align 2, 0
+_0807778C: .4byte gUnknown_0202F7A4
+_08077790:
+ ldr r0, [r4]
+ adds r0, 0x4
+ str r0, [r4]
+_08077796:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807775C
+
+ thumb_func_start sub_807779C
+sub_807779C: @ 807779C
+ push {r4,lr}
+ ldr r0, _080777B0 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x1]
+ adds r1, 0x2
+ str r1, [r0]
+ cmp r2, 0
+ beq _080777B8
+ ldr r0, _080777B4 @ =gUnknown_0202F7C9
+ b _080777BA
+ .align 2, 0
+_080777B0: .4byte gUnknown_0202F7A4
+_080777B4: .4byte gUnknown_0202F7C9
+_080777B8:
+ ldr r0, _080777FC @ =gUnknown_0202F7C8
+_080777BA:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080777F4
+ cmp r4, 0
+ beq _080777D6
+ cmp r4, 0x3
+ bne _080777F4
+_080777D6:
+ ldr r3, _08077800 @ =REG_BG1CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r2, _08077804 @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+_080777F4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080777FC: .4byte gUnknown_0202F7C8
+_08077800: .4byte REG_BG1CNT
+_08077804: .4byte REG_BG2CNT
+ thumb_func_end sub_807779C
+
+ thumb_func_start sub_8077808
+sub_8077808: @ 8077808
+ push {lr}
+ ldr r0, _08077840 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807783A
+ ldr r3, _08077844 @ =REG_BG1CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r2, _08077848 @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+_0807783A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077840: .4byte gUnknown_0202F7A4
+_08077844: .4byte REG_BG1CNT
+_08077848: .4byte REG_BG2CNT
+ thumb_func_end sub_8077808
+
+ thumb_func_start sub_807784C
+sub_807784C: @ 807784C
+ push {r4-r7,lr}
+ ldr r1, _0807787C @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ ldrb r6, [r0, 0x1]
+ adds r0, 0x2
+ str r0, [r1]
+ ldr r7, _08077880 @ =gUnknown_0202F7C8
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _08077884 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080778C2
+ cmp r6, 0
+ beq _08077888
+ ldrb r0, [r5]
+ b _0807788A
+ .align 2, 0
+_0807787C: .4byte gUnknown_0202F7A4
+_08077880: .4byte gUnknown_0202F7C8
+_08077884: .4byte gUnknown_0202F7C9
+_08077888:
+ ldrb r0, [r7]
+_0807788A:
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080778C2
+ cmp r4, 0
+ beq _080778A4
+ cmp r4, 0x3
+ bne _080778C2
+_080778A4:
+ ldr r3, _080778C8 @ =REG_BG1CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r2, _080778CC @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+_080778C2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080778C8: .4byte REG_BG1CNT
+_080778CC: .4byte REG_BG2CNT
+ thumb_func_end sub_807784C
+
+ thumb_func_start ma2B_make_side_invisible
+ma2B_make_side_invisible: @ 80778D0
+ push {r4,lr}
+ ldr r4, _08077904 @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080778F8
+ ldr r1, _08077908 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080778F8:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077904: .4byte gUnknown_0202F7A4
+_08077908: .4byte gSprites
+ thumb_func_end ma2B_make_side_invisible
+
+ thumb_func_start ma2C_make_side_visible
+ma2C_make_side_visible: @ 807790C
+ push {r4,lr}
+ ldr r4, _08077944 @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _08077936
+ ldr r1, _08077948 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08077936:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077944: .4byte gUnknown_0202F7A4
+_08077948: .4byte gSprites
+ thumb_func_end ma2C_make_side_visible
+
+ thumb_func_start sub_807794C
+sub_807794C: @ 807794C
+ push {r4-r7,lr}
+ ldr r1, _08077998 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ ldrb r7, [r0, 0x1]
+ adds r0, 0x2
+ str r0, [r1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080779F6
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080779F6
+ ldr r6, _0807799C @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _080779A0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080779F6
+ cmp r7, 0
+ bne _080779A4
+ ldrb r0, [r6]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ b _080779B0
+ .align 2, 0
+_08077998: .4byte gUnknown_0202F7A4
+_0807799C: .4byte gUnknown_0202F7C8
+_080779A0: .4byte gUnknown_0202F7C9
+_080779A4:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+_080779B0:
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080779F6
+ ldr r1, _080779EC @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ cmp r4, 0x2
+ bne _080779E0
+ ldrb r0, [r2, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080779E0:
+ cmp r4, 0x1
+ bne _080779F0
+ movs r0, 0
+ bl sub_8076464
+ b _080779F6
+ .align 2, 0
+_080779EC: .4byte gSprites
+_080779F0:
+ movs r0, 0x1
+ bl sub_8076464
+_080779F6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807794C
+
+ thumb_func_start sub_80779FC
+sub_80779FC: @ 80779FC
+ push {r4-r7,lr}
+ ldr r1, _08077A48 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ ldrb r7, [r0, 0x1]
+ adds r0, 0x2
+ str r0, [r1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08077A88
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08077A88
+ ldr r6, _08077A4C @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _08077A50 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _08077A88
+ cmp r7, 0
+ bne _08077A54
+ ldrb r0, [r6]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ b _08077A60
+ .align 2, 0
+_08077A48: .4byte gUnknown_0202F7A4
+_08077A4C: .4byte gUnknown_0202F7C8
+_08077A50: .4byte gUnknown_0202F7C9
+_08077A54:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+_08077A60:
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _08077A88
+ cmp r4, 0x2
+ bne _08077A88
+ ldr r1, _08077A90 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_08077A88:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077A90: .4byte gSprites
+ thumb_func_end sub_80779FC
+
+ thumb_func_start ma2F_stop_music
+ma2F_stop_music: @ 8077A94
+ push {lr}
+ ldr r0, _08077AB0 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _08077AB4 @ =gMPlay_SE2
+ bl m4aMPlayStop
+ ldr r1, _08077AB8 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077AB0: .4byte gMPlay_SE1
+_08077AB4: .4byte gMPlay_SE2
+_08077AB8: .4byte gUnknown_0202F7A4
+ thumb_func_end ma2F_stop_music
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s
new file mode 100644
index 000000000..cef472d03
--- /dev/null
+++ b/asm/battle_anim_807B69C.s
@@ -0,0 +1,960 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_807B69C
+unref_sub_807B69C: @ 807B69C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0807B740 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r6, [r0]
+ ldr r0, _0807B744 @ =sub_807B7E0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
+ bl LoadCompressedObjectPalette
+ ldr r1, _0807B750 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ strh r4, [r1, 0x8]
+ cmp r5, 0
+ beq _0807B75C
+ movs r0, 0x1F
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B754 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B6F0:
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r6, 0x22]
+ adds r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0xFF
+ lsls r0, 8
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B734
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B734:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B6F0
+ b _0807B7BC
+ .align 2, 0
+_0807B740: .4byte gUnknown_02024BE0
+_0807B744: .4byte sub_807B7E0
+_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
+_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
+_0807B750: .4byte gTasks
+_0807B754: .4byte gSprites
+_0807B758: .4byte gSpriteTemplate_83931F8
+_0807B75C:
+ movs r0, 0xF8
+ lsls r0, 7
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B7D8 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B76E:
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ ldrh r2, [r6, 0x22]
+ subs r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B7B2
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B7B2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B76E
+_0807B7BC:
+ ldr r0, _0807B7D8 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807B7D8: .4byte gSprites
+_0807B7DC: .4byte gSpriteTemplate_83931F8
+ thumb_func_end unref_sub_807B69C
+
+ thumb_func_start sub_807B7E0
+sub_807B7E0: @ 807B7E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0807B838 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x2
+ bne _0807B866
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x10]
+ ldrh r3, [r4, 0xA]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r2, [r4, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0807B83C
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0807B86A
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ b _0807B86A
+ .align 2, 0
+_0807B838: .4byte gTasks
+_0807B83C:
+ ldrh r1, [r4, 0x10]
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0807B86A
+ strh r1, [r4, 0x10]
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807B86A
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0807B86A
+_0807B866:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_0807B86A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B7E0
+
+ thumb_func_start sub_807B870
+sub_807B870: @ 807B870
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0807B89C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldr r1, _0807B898 @ =sub_807B8A4
+ str r1, [r2, 0x1C]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _0807B8A0
+ .align 2, 0
+_0807B898: .4byte sub_807B8A4
+_0807B89C:
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+_0807B8A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B870
+
+ thumb_func_start sub_807B8A4
+sub_807B8A4: @ 807B8A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _0807B8D0
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _0807B8D6
+_0807B8D0:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_0807B8D6:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ 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
+ cmp r0, 0x34
+ bne _0807B918
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0807B912
+ adds r0, r4, 0
+ bl DestroySpriteAndFreeResources
+ b _0807B918
+_0807B912:
+ adds r0, r4, 0
+ bl DestroySprite
+_0807B918:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B8A4
+
+ thumb_func_start sub_807B920
+sub_807B920: @ 807B920
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _0807B9B0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _0807B9B4 @ =0xffe00000
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r2, _0807B9B8 @ =0xffdc0000
+ adds r0, r2
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B95E
+ lsls r0, r5, 16
+ ldr r1, _0807B9BC @ =0xfffa0000
+ adds r0, r1
+ lsrs r5, r0, 16
+_0807B95E:
+ ldr r1, _0807B9C0 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r4, 16
+ asrs r2, 16
+ movs r3, 0x4
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0807B9C8 @ =gSprites
+ adds r0, r1
+ ldr r1, _0807B9CC @ =gSubspriteTables_83931D8
+ bl SetSubspriteTables
+ ldr r1, _0807B9D0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x26]
+ ldr r1, _0807B9D4 @ =sub_807B9D8
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B9B0: .4byte gUnknown_0202F7C9
+_0807B9B4: .4byte 0xffe00000
+_0807B9B8: .4byte 0xffdc0000
+_0807B9BC: .4byte 0xfffa0000
+_0807B9C0: .4byte REG_BLDCNT
+_0807B9C4: .4byte gSpriteTemplate_83931E0
+_0807B9C8: .4byte gSprites
+_0807B9CC: .4byte gSubspriteTables_83931D8
+_0807B9D0: .4byte gTasks
+_0807B9D4: .4byte sub_807B9D8
+ thumb_func_end sub_807B920
+
+ thumb_func_start sub_807B9D8
+sub_807B9D8: @ 807B9D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BA04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ adds r2, r0, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0807BA0C
+ ldr r0, _0807BA08 @ =sub_807BA24
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _0807BA1C
+ .align 2, 0
+_0807BA04: .4byte gTasks
+_0807BA08: .4byte sub_807BA24
+_0807BA0C:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ ldr r2, _0807BA20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BA1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BA20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807B9D8
+
+ thumb_func_start sub_807BA24
+sub_807BA24: @ 807BA24
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0807BABC @ =0x0000271a
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0807BAC0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0807BAB4
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ ldr r3, _0807BAC4 @ =gPlttBufferFaded
+ lsls r2, 4
+ mov r12, r2
+ ldr r1, _0807BAC8 @ =0x0000010d
+ add r1, r12
+ lsls r1, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ movs r2, 0x87
+ lsls r2, 1
+ add r2, r12
+ lsls r2, 1
+ adds r2, r3
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r0, _0807BACC @ =0x0000010f
+ add r0, r12
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ strh r1, [r2]
+ strh r4, [r0]
+ strh r6, [r5, 0xC]
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ strh r6, [r5, 0xE]
+ strh r6, [r5, 0xA]
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807BAB4
+ movs r0, 0x9
+ strh r0, [r5, 0xA]
+ ldr r0, _0807BAD0 @ =sub_807BAD4
+ str r0, [r5]
+_0807BAB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BABC: .4byte 0x0000271a
+_0807BAC0: .4byte gTasks
+_0807BAC4: .4byte gPlttBufferFaded
+_0807BAC8: .4byte 0x0000010d
+_0807BACC: .4byte 0x0000010f
+_0807BAD0: .4byte sub_807BAD4
+ thumb_func_end sub_807BA24
+
+ thumb_func_start sub_807BAD4
+sub_807BAD4: @ 807BAD4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BB04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ adds r3, r0, 0
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0807BB0C
+ ldr r0, _0807BB08 @ =sub_807BB24
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ b _0807BB1C
+ .align 2, 0
+_0807BB04: .4byte gTasks
+_0807BB08: .4byte sub_807BB24
+_0807BB0C:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldr r2, _0807BB20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BB1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807BAD4
+
+ thumb_func_start sub_807BB24
+sub_807BB24: @ 807BB24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, _0807BB64 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x25
+ bne _0807BB6C
+ ldrh r0, [r1, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807BB68 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0807BB7E
+ .align 2, 0
+_0807BB64: .4byte gTasks
+_0807BB68: .4byte gSprites
+_0807BB6C:
+ cmp r0, 0x27
+ bne _0807BB7E
+ ldr r0, _0807BB84 @ =REG_BLDCNT
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0807BB7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB84: .4byte REG_BLDCNT
+ thumb_func_end sub_807BB24
+
+ thumb_func_start sub_807BB88
+sub_807BB88: @ 807BB88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _0807BBA8 @ =0x02017840
+ ldrh r0, [r0]
+ subs r0, 0xF
+ cmp r0, 0x2B
+ bls _0807BB9C
+ b _0807BD20
+_0807BB9C:
+ lsls r0, 2
+ ldr r1, _0807BBAC @ =_0807BBB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807BBA8: .4byte 0x02017840
+_0807BBAC: .4byte _0807BBB0
+ .align 2, 0
+_0807BBB0:
+ .4byte _0807BC60
+ .4byte _0807BC66
+ .4byte _0807BC6C
+ .4byte _0807BC72
+ .4byte _0807BC78
+ .4byte _0807BC7E
+ .4byte _0807BC84
+ .4byte _0807BC8A
+ .4byte _0807BC90
+ .4byte _0807BC96
+ .4byte _0807BC9C
+ .4byte _0807BCA2
+ .4byte _0807BCA8
+ .4byte _0807BCAE
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BCB4
+ .4byte _0807BCB8
+ .4byte _0807BCBC
+ .4byte _0807BCC0
+ .4byte _0807BCC4
+ .4byte _0807BCC8
+ .4byte _0807BCCC
+ .4byte _0807BCD0
+ .4byte _0807BCD8
+ .4byte _0807BCE0
+ .4byte _0807BCE8
+ .4byte _0807BCF0
+ .4byte _0807BCF8
+ .4byte _0807BD00
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD08
+ .4byte _0807BD0C
+ .4byte _0807BD10
+ .4byte _0807BD18
+_0807BC60:
+ movs r5, 0
+ movs r2, 0
+ b _0807BD28
+_0807BC66:
+ movs r5, 0
+ movs r2, 0x1
+ b _0807BD28
+_0807BC6C:
+ movs r5, 0
+ movs r2, 0x3
+ b _0807BD28
+_0807BC72:
+ movs r5, 0
+ movs r2, 0x5
+ b _0807BD28
+_0807BC78:
+ movs r5, 0
+ movs r2, 0x6
+ b _0807BD28
+_0807BC7E:
+ movs r5, 0
+ movs r2, 0x2
+ b _0807BD28
+_0807BC84:
+ movs r5, 0
+ movs r2, 0x4
+ b _0807BD28
+_0807BC8A:
+ movs r5, 0x1
+ movs r2, 0
+ b _0807BD28
+_0807BC90:
+ movs r5, 0x1
+ movs r2, 0x1
+ b _0807BD28
+_0807BC96:
+ movs r5, 0x1
+ movs r2, 0x3
+ b _0807BD28
+_0807BC9C:
+ movs r5, 0x1
+ movs r2, 0x5
+ b _0807BD28
+_0807BCA2:
+ movs r5, 0x1
+ movs r2, 0x6
+ b _0807BD28
+_0807BCA8:
+ movs r5, 0x1
+ movs r2, 0x2
+ b _0807BD28
+_0807BCAE:
+ movs r5, 0x1
+ movs r2, 0x4
+ b _0807BD28
+_0807BCB4:
+ movs r5, 0
+ b _0807BCD2
+_0807BCB8:
+ movs r5, 0
+ b _0807BCDA
+_0807BCBC:
+ movs r5, 0
+ b _0807BCE2
+_0807BCC0:
+ movs r5, 0
+ b _0807BCEA
+_0807BCC4:
+ movs r5, 0
+ b _0807BCF2
+_0807BCC8:
+ movs r5, 0
+ b _0807BCFA
+_0807BCCC:
+ movs r5, 0
+ b _0807BD02
+_0807BCD0:
+ movs r5, 0x1
+_0807BCD2:
+ movs r2, 0
+ movs r3, 0x1
+ b _0807BD28
+_0807BCD8:
+ movs r5, 0x1
+_0807BCDA:
+ movs r2, 0x1
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE0:
+ movs r5, 0x1
+_0807BCE2:
+ movs r2, 0x3
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE8:
+ movs r5, 0x1
+_0807BCEA:
+ movs r2, 0x5
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF0:
+ movs r5, 0x1
+_0807BCF2:
+ movs r2, 0x6
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF8:
+ movs r5, 0x1
+_0807BCFA:
+ movs r2, 0x2
+ movs r3, 0x1
+ b _0807BD28
+_0807BD00:
+ movs r5, 0x1
+_0807BD02:
+ movs r2, 0x4
+ movs r3, 0x1
+ b _0807BD28
+_0807BD08:
+ movs r5, 0
+ b _0807BD12
+_0807BD0C:
+ movs r5, 0
+ b _0807BD1A
+_0807BD10:
+ movs r5, 0x1
+_0807BD12:
+ movs r2, 0xFF
+ movs r3, 0
+ b _0807BD28
+_0807BD18:
+ movs r5, 0x1
+_0807BD1A:
+ movs r2, 0xFF
+ movs r3, 0x1
+ b _0807BD28
+_0807BD20:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _0807BD4A
+_0807BD28:
+ ldr r0, _0807BD50 @ =gBattleAnimArgs
+ movs r1, 0
+ strh r5, [r0]
+ strh r2, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r3, [r0, 0x8]
+ ldr r1, _0807BD54 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0807BD58 @ =sub_80E32E0
+ str r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_0807BD4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD50: .4byte gBattleAnimArgs
+_0807BD54: .4byte gTasks
+_0807BD58: .4byte sub_80E32E0
+ thumb_func_end sub_807BB88
+
+ thumb_func_start move_anim_start_t2
+move_anim_start_t2: @ 807BD5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _0807BD98 @ =gUnknown_0202F7C8
+ strb r4, [r0]
+ ldr r0, _0807BD9C @ =gUnknown_0202F7C9
+ strb r4, [r0]
+ ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
+ movs r2, 0
+ bl move_something
+ ldr r0, _0807BDA4 @ =sub_807BDAC
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BDA8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD98: .4byte gUnknown_0202F7C8
+_0807BD9C: .4byte gUnknown_0202F7C9
+_0807BDA0: .4byte gBattleAnims_StatusConditions
+_0807BDA4: .4byte sub_807BDAC
+_0807BDA8: .4byte gTasks
+ thumb_func_end move_anim_start_t2
+
+ thumb_func_start sub_807BDAC
+sub_807BDAC: @ 807BDAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807BDF0 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0807BDF4 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807BDEA
+ ldr r1, _0807BDF8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0807BDFC @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0807BDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BDF0: .4byte gUnknown_0202F7AC
+_0807BDF4: .4byte gUnknown_0202F7B1
+_0807BDF8: .4byte gTasks
+_0807BDFC: .4byte 0x02017810
+ thumb_func_end sub_807BDAC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80A7E7C.s b/asm/battle_anim_80A7E7C.s
deleted file mode 100644
index 362acec8b..000000000
--- a/asm/battle_anim_80A7E7C.s
+++ /dev/null
@@ -1,2589 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A7E7C
-sub_80A7E7C: @ 80A7E7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A7E9C @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080A7EA0
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A7EDC
- .align 2, 0
-_080A7E9C: .4byte gUnknown_03004B00
-_080A7EA0:
- ldr r1, _080A7EE4 @ =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, _080A7EE8 @ =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, _080A7EEC @ =sub_80A7EF0
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A7EDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7EE4: .4byte gSprites
-_080A7EE8: .4byte gTasks
-_080A7EEC: .4byte sub_80A7EF0
- thumb_func_end sub_80A7E7C
-
- thumb_func_start sub_80A7EF0
-sub_80A7EF0: @ 80A7EF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A7F2C @ =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 _080A7F96
- ldr r2, _080A7F30 @ =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 _080A7F34
- ldrh r0, [r3, 0x10]
- strh r0, [r1, 0x24]
- b _080A7F36
- .align 2, 0
-_080A7F2C: .4byte gTasks
-_080A7F30: .4byte gSprites
-_080A7F34:
- strh r5, [r1, 0x24]
-_080A7F36:
- 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 _080A7F56
- ldrh r0, [r3, 0x12]
- b _080A7F58
-_080A7F56:
- movs r0, 0
-_080A7F58:
- 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 _080A7F9A
- 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 move_anim_task_del
- b _080A7F9A
-_080A7F96:
- subs r0, 0x1
- strh r0, [r3, 0xE]
-_080A7F9A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7EF0
-
- thumb_func_start sub_80A7FA0
-sub_80A7FA0: @ 80A7FA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080A7FC8 @ =gUnknown_03004B00
- ldrh r0, [r2]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x3
- bgt _080A7FCC
- lsls r0, 24
- lsrs r0, 24
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8022
- b _080A8026
- .align 2, 0
-_080A7FC8: .4byte gUnknown_03004B00
-_080A7FCC:
- cmp r1, 0x8
- beq _080A8018
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x5
- beq _080A7FEC
- cmp r0, 0x5
- bgt _080A7FE2
- cmp r0, 0x4
- beq _080A7FE8
- b _080A7FF4
-_080A7FE2:
- cmp r0, 0x6
- beq _080A7FF0
- b _080A7FF4
-_080A7FE8:
- movs r0, 0
- b _080A7FF6
-_080A7FEC:
- movs r0, 0x2
- b _080A7FF6
-_080A7FF0:
- movs r0, 0x1
- b _080A7FF6
-_080A7FF4:
- movs r0, 0x3
-_080A7FF6:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080A800C
- movs r6, 0x1
-_080A800C:
- ldr r0, _080A8014 @ =gUnknown_02024BE0
- adds r0, r4, r0
- b _080A8020
- .align 2, 0
-_080A8014: .4byte gUnknown_02024BE0
-_080A8018:
- ldr r1, _080A8030 @ =gUnknown_02024BE0
- ldr r0, _080A8034 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
-_080A8020:
- ldrb r3, [r0]
-_080A8022:
- cmp r6, 0
- beq _080A8038
-_080A8026:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A8076
- .align 2, 0
-_080A8030: .4byte gUnknown_02024BE0
-_080A8034: .4byte gUnknown_0202F7C8
-_080A8038:
- ldr r1, _080A807C @ =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldr r2, _080A8080 @ =gUnknown_03004B00
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _080A8084 @ =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, _080A8088 @ =sub_80A808C
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A8076:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A807C: .4byte gSprites
-_080A8080: .4byte gUnknown_03004B00
-_080A8084: .4byte gTasks
-_080A8088: .4byte sub_80A808C
- thumb_func_end sub_80A7FA0
-
- thumb_func_start sub_80A808C
-sub_80A808C: @ 80A808C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A80D0 @ =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 _080A8144
- ldr r2, _080A80D4 @ =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 _080A80D8
- negs r0, r5
- strh r0, [r4, 0x24]
- b _080A80DA
- .align 2, 0
-_080A80D0: .4byte gTasks
-_080A80D4: .4byte gSprites
-_080A80D8:
- strh r5, [r4, 0x24]
-_080A80DA:
- 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 _080A8104
- negs r0, r5
- strh r0, [r4, 0x26]
- b _080A8106
-_080A8104:
- strh r5, [r4, 0x26]
-_080A8106:
- 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 _080A8148
- 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 move_anim_task_del
- b _080A8148
-_080A8144:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080A8148:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A808C
-
- thumb_func_start sub_80A8154
-sub_80A8154: @ 80A8154
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8174 @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8178
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A81C6
- .align 2, 0
-_080A8174: .4byte gUnknown_03004B00
-_080A8178:
- ldr r0, _080A81CC @ =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, _080A81D0 @ =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, _080A81D4 @ =sub_80A81D8
- str r2, [r1]
- adds r0, r5, 0
- bl _call_via_r2
-_080A81C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A81CC: .4byte gSprites
-_080A81D0: .4byte gTasks
-_080A81D4: .4byte sub_80A81D8
- thumb_func_end sub_80A8154
-
- thumb_func_start sub_80A81D8
-sub_80A81D8: @ 80A81D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A8230 @ =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 _080A81F6
- b _080A8308
-_080A81F6:
- ldrh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8238
- ldr r2, _080A8234 @ =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 _080A8262
- .align 2, 0
-_080A8230: .4byte gTasks
-_080A8234: .4byte gSprites
-_080A8238:
- ldr r3, _080A82C4 @ =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]
-_080A8262:
- 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 _080A830C
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080A82C8
- 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 _080A8300
- .align 2, 0
-_080A82C4: .4byte gSprites
-_080A82C8:
- 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]
-_080A8300:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A830C
-_080A8308:
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
-_080A830C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A81D8
-
- thumb_func_start sub_80A8314
-sub_80A8314: @ 80A8314
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080A8364 @ =gUnknown_03004B00
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8368 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r5, 0x2]
- strh r2, [r1, 0x24]
- ldr r2, _080A836C @ =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, _080A8370 @ =sub_80A8374
- str r2, [r1]
- adds r0, r4, 0
- bl _call_via_r2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8364: .4byte gUnknown_03004B00
-_080A8368: .4byte gSprites
-_080A836C: .4byte gTasks
-_080A8370: .4byte sub_80A8374
- thumb_func_end sub_80A8314
-
- thumb_func_start sub_80A8374
-sub_80A8374: @ 80A8374
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080A8400 @ =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, _080A8404 @ =gSprites
- cmp r0, r1
- bne _080A83C6
- 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 _080A83BE
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080A83BE:
- lsls r0, r4, 16
- asrs r0, 16
- adds r0, r3
- strh r0, [r1, 0x24]
-_080A83C6:
- 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 _080A83F8
- adds r0, r6, 0
- bl move_anim_task_del
-_080A83F8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8400: .4byte gTasks
-_080A8404: .4byte gSprites
- thumb_func_end sub_80A8374
-
- thumb_func_start sub_80A8408
-sub_80A8408: @ 80A8408
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x1
- ldr r4, _080A847C @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080A842C
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_080A842C:
- movs r1, 0
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- adds r3, r4, 0
- ldr r2, _080A8480 @ =gTasks
- mov r12, r2
- lsls r4, r5, 2
- ldr r2, _080A8484 @ =sub_80A8488
- mov r8, r2
- cmp r1, r0
- bge _080A8452
- adds r2, r0, 0
-_080A8444:
- lsls r0, r6, 25
- lsrs r6, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- blt _080A8444
-_080A8452:
- 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
-_080A847C: .4byte gUnknown_03004B00
-_080A8480: .4byte gTasks
-_080A8484: .4byte sub_80A8488
- thumb_func_end sub_80A8408
-
- thumb_func_start sub_80A8488
-sub_80A8488: @ 80A8488
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A84F8 @ =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, _080A84FC @ =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 _080A84E0
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
-_080A84E0:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080A84F2
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A84F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84F8: .4byte gTasks
-_080A84FC: .4byte gSprites
- thumb_func_end sub_80A8488
-
- thumb_func_start sub_80A8500
-sub_80A8500: @ 80A8500
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8528 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A851C
- ldr r1, _080A852C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A851C:
- adds r0, r4, 0
- bl sub_80A8408
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8528: .4byte gUnknown_0202F7C8
-_080A852C: .4byte gUnknown_03004B00
- thumb_func_end sub_80A8500
-
- thumb_func_start sub_80A8530
-sub_80A8530: @ 80A8530
- 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, _080A8558 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8560
- ldr r1, _080A855C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- b _080A8564
- .align 2, 0
-_080A8558: .4byte gUnknown_0202F7C8
-_080A855C: .4byte gUnknown_03004B00
-_080A8560:
- ldr r1, _080A8590 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
-_080A8564:
- strh r0, [r4, 0x30]
- ldrh r2, [r1]
- movs r0, 0
- strh r2, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r1, _080A8594 @ =gUnknown_02024BE0
- ldr r0, _080A8598 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _080A859C @ =sub_80A85A4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A85A0 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8590: .4byte gUnknown_03004B00
-_080A8594: .4byte gUnknown_02024BE0
-_080A8598: .4byte gUnknown_0202F7C8
-_080A859C: .4byte sub_80A85A4
-_080A85A0: .4byte sub_8078458
- thumb_func_end sub_80A8530
-
- thumb_func_start sub_80A85A4
-sub_80A85A4: @ 80A85A4
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x30]
- negs r1, r1
- strh r1, [r0, 0x30]
- ldr r1, _080A85C0 @ =sub_8078458
- str r1, [r0, 0x1C]
- ldr r1, _080A85C4 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A85C0: .4byte sub_8078458
-_080A85C4: .4byte move_anim_8072740
- thumb_func_end sub_80A85A4
-
- thumb_func_start sub_80A85C8
-sub_80A85C8: @ 80A85C8
- 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, _080A8608 @ =gUnknown_03004B00
- ldrb r0, [r5, 0x4]
- bl obj_id_for_side_relative_to_move
- 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, _080A860C @ =sub_80A8614
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8610 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8608: .4byte gUnknown_03004B00
-_080A860C: .4byte sub_80A8614
-_080A8610: .4byte sub_8078458
- thumb_func_end sub_80A85C8
-
- thumb_func_start sub_80A8614
-sub_80A8614: @ 80A8614
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x32]
- negs r1, r1
- strh r1, [r0, 0x32]
- ldr r1, _080A8630 @ =sub_8078458
- str r1, [r0, 0x1C]
- ldr r1, _080A8634 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A8630: .4byte sub_8078458
-_080A8634: .4byte move_anim_8072740
- thumb_func_end sub_80A8614
-
- thumb_func_start sub_80A8638
-sub_80A8638: @ 80A8638
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _080A8650 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A865C
- ldr r1, _080A8654 @ =gUnknown_02024BE0
- ldr r0, _080A8658 @ =gUnknown_0202F7C8
- b _080A8660
- .align 2, 0
-_080A8650: .4byte gUnknown_03004B00
-_080A8654: .4byte gUnknown_02024BE0
-_080A8658: .4byte gUnknown_0202F7C8
-_080A865C:
- ldr r1, _080A86C0 @ =gUnknown_02024BE0
- ldr r0, _080A86C4 @ =gUnknown_0202F7C9
-_080A8660:
- ldrb r0, [r0]
- adds r0, r1
- ldrb r7, [r0]
- ldr r5, _080A86C8 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x4]
- movs r3, 0
- strh r0, [r6, 0x2E]
- ldr r0, _080A86CC @ =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_8078A5C
- 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 _080A86D0
- strh r3, [r6, 0x32]
- b _080A86D6
- .align 2, 0
-_080A86C0: .4byte gUnknown_02024BE0
-_080A86C4: .4byte gUnknown_0202F7C9
-_080A86C8: .4byte gUnknown_03004B00
-_080A86CC: .4byte gSprites
-_080A86D0:
- cmp r0, 0x2
- bne _080A86D6
- strh r3, [r6, 0x30]
-_080A86D6:
- ldr r0, _080A86EC @ =gUnknown_03004B00
- ldrh r1, [r0, 0x2]
- lsls r0, r7, 8
- orrs r0, r1
- strh r0, [r6, 0x3C]
- ldr r0, _080A86F0 @ =sub_80A86F4
- str r0, [r6, 0x1C]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A86EC: .4byte gUnknown_03004B00
-_080A86F0: .4byte sub_80A86F4
- thumb_func_end sub_80A8638
-
- thumb_func_start sub_80A86F4
-sub_80A86F4: @ 80A86F4
- 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, _080A8730 @ =gSprites
- adds r3, r1, r0
- ldrh r0, [r2, 0x2E]
- movs r6, 0x2E
- ldrsh r1, [r2, r6]
- cmp r1, 0
- bne _080A8734
- cmp r4, 0x1
- bhi _080A871E
- strh r1, [r3, 0x24]
-_080A871E:
- cmp r5, 0x2
- beq _080A8726
- cmp r5, 0
- bne _080A8728
-_080A8726:
- strh r1, [r3, 0x26]
-_080A8728:
- adds r0, r2, 0
- bl move_anim_8072740
- b _080A875E
- .align 2, 0
-_080A8730: .4byte gSprites
-_080A8734:
- 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]
-_080A875E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A86F4
-
- thumb_func_start sub_80A8764
-sub_80A8764: @ 80A8764
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A8778 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8780
- ldr r0, _080A877C @ =gUnknown_0202F7C8
- b _080A8782
- .align 2, 0
-_080A8778: .4byte gUnknown_03004B00
-_080A877C: .4byte gUnknown_0202F7C8
-_080A8780:
- ldr r0, _080A8800 @ =gUnknown_0202F7C9
-_080A8782:
- ldrb r2, [r0]
- ldr r0, _080A8804 @ =gUnknown_02024BE0
- adds r0, r2, r0
- ldrb r6, [r0]
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A87AC
- ldr r1, _080A8808 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A87AC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A87AC:
- ldr r2, _080A8808 @ =gUnknown_03004B00
- ldrh r0, [r2, 0x8]
- movs r4, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A880C @ =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_8078A5C
- 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, _080A8810 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8814 @ =sub_80784A8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8800: .4byte gUnknown_0202F7C9
-_080A8804: .4byte gUnknown_02024BE0
-_080A8808: .4byte gUnknown_03004B00
-_080A880C: .4byte gSprites
-_080A8810: .4byte move_anim_8072740
-_080A8814: .4byte sub_80784A8
- thumb_func_end sub_80A8764
-
- thumb_func_start sub_80A8818
-sub_80A8818: @ 80A8818
- 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, _080A8838 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8840
- ldr r0, _080A883C @ =gUnknown_0202F7C8
- b _080A8842
- .align 2, 0
-_080A8838: .4byte gUnknown_03004B00
-_080A883C: .4byte gUnknown_0202F7C8
-_080A8840:
- ldr r0, _080A88C0 @ =gUnknown_0202F7C9
-_080A8842:
- ldrb r1, [r0]
- ldr r0, _080A88C4 @ =gUnknown_02024BE0
- adds r0, r1, r0
- ldrb r7, [r0]
- adds r0, r1, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A886C
- ldr r1, _080A88C8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A886C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A886C:
- ldr r5, _080A88C8 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r0, _080A88CC @ =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_8078A5C
- 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 _080A88D4
- ldr r1, _080A88D0 @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- b _080A88DC
- .align 2, 0
-_080A88C0: .4byte gUnknown_0202F7C9
-_080A88C4: .4byte gUnknown_02024BE0
-_080A88C8: .4byte gUnknown_03004B00
-_080A88CC: .4byte gSprites
-_080A88D0: .4byte move_anim_8072740
-_080A88D4:
- ldr r1, _080A88E8 @ =sub_80A88F0
- adds r0, r6, 0
- bl oamt_set_x3A_32
-_080A88DC:
- ldr r0, _080A88EC @ =sub_80784A8
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A88E8: .4byte sub_80A88F0
-_080A88EC: .4byte sub_80784A8
- thumb_func_end sub_80A8818
-
- thumb_func_start sub_80A88F0
-sub_80A88F0: @ 80A88F0
- push {r4,lr}
- ldr r4, _080A891C @ =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 move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A891C: .4byte gSprites
- thumb_func_end sub_80A88F0
-
- thumb_func_start sub_80A8920
-sub_80A8920: @ 80A8920
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080A89A4 @ =gUnknown_03004B00
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080A89A8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8952
- ldrh r0, [r5, 0x2]
- negs r0, r0
- strh r0, [r5, 0x2]
- ldrh r0, [r5, 0xA]
- negs r0, r0
- strh r0, [r5, 0xA]
-_080A8952:
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- ldr r1, _080A89AC @ =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, _080A89B0 @ =sub_80A89B4
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A89A4: .4byte gUnknown_03004B00
-_080A89A8: .4byte gUnknown_0202F7C8
-_080A89AC: .4byte gTasks
-_080A89B0: .4byte sub_80A89B4
- thumb_func_end sub_80A8920
-
- thumb_func_start sub_80A89B4
-sub_80A89B4: @ 80A89B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8A0C @ =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, _080A8A10 @ =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 _080A8A04
- ldr r0, _080A8A14 @ =sub_80A8A18
- str r0, [r5]
-_080A8A04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A0C: .4byte gTasks
-_080A8A10: .4byte gSprites
-_080A8A14: .4byte sub_80A8A18
- thumb_func_end sub_80A89B4
-
- thumb_func_start sub_80A8A18
-sub_80A8A18: @ 80A8A18
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8A3C @ =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 _080A8A40
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- b _080A8A74
- .align 2, 0
-_080A8A3C: .4byte gTasks
-_080A8A40:
- ldrb r0, [r4, 0x8]
- ldrh r2, [r4, 0x12]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldr r3, _080A8A7C @ =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 _080A8A74
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8A74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A7C: .4byte gSprites
- thumb_func_end sub_80A8A18
-
- thumb_func_start sub_80A8A80
-sub_80A8A80: @ 80A8A80
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8AA4 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _080A8AAE
- cmp r0, 0x2
- bgt _080A8AA8
- cmp r0, 0
- blt _080A8AE0
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- b _080A8AE8
- .align 2, 0
-_080A8AA4: .4byte gUnknown_03004B00
-_080A8AA8:
- cmp r0, 0x3
- beq _080A8AB8
- b _080A8AE0
-_080A8AAE:
- ldr r5, _080A8AB4 @ =gUnknown_0202F7C8
- b _080A8ABA
- .align 2, 0
-_080A8AB4: .4byte gUnknown_0202F7C8
-_080A8AB8:
- ldr r5, _080A8AD8 @ =gUnknown_0202F7C9
-_080A8ABA:
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A8AE0
- ldr r1, _080A8ADC @ =gUnknown_02024BE0
- ldrb r0, [r5]
- eors r0, r4
- adds r0, r1
- ldrb r2, [r0]
- b _080A8AE8
- .align 2, 0
-_080A8AD8: .4byte gUnknown_0202F7C9
-_080A8ADC: .4byte gUnknown_02024BE0
-_080A8AE0:
- adds r0, r6, 0
- bl move_anim_task_del
- b _080A8B28
-_080A8AE8:
- ldr r1, _080A8B08 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- strh r2, [r5, 0x8]
- ldr r0, _080A8B0C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8B14
- ldr r0, _080A8B10 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- b _080A8B1A
- .align 2, 0
-_080A8B08: .4byte gTasks
-_080A8B0C: .4byte gUnknown_0202F7C9
-_080A8B10: .4byte gUnknown_03004B00
-_080A8B14:
- ldr r0, _080A8B30 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- negs r0, r0
-_080A8B1A:
- strh r0, [r5, 0xA]
- ldr r0, _080A8B34 @ =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8B38 @ =sub_80A8B3C
- str r0, [r1]
-_080A8B28:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B30: .4byte gUnknown_03004B00
-_080A8B34: .4byte gTasks
-_080A8B38: .4byte sub_80A8B3C
- thumb_func_end sub_80A8A80
-
- thumb_func_start sub_80A8B3C
-sub_80A8B3C: @ 80A8B3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8B80 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r2, [r1, 0x8]
- ldr r3, _080A8B84 @ =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 _080A8B7A
- adds r0, r4, 0
- bl move_anim_task_del
-_080A8B7A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B80: .4byte gTasks
-_080A8B84: .4byte gSprites
- thumb_func_end sub_80A8B3C
-
- thumb_func_start sub_80A8B88
-sub_80A8B88: @ 80A8B88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _080A8BD8 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8BA4
- ldr r1, _080A8BDC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A8BA4:
- ldr r4, _080A8BDC @ =gUnknown_03004B00
- ldrb r0, [r4, 0x8]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8BE0 @ =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 _080A8BE4
- ldrb r0, [r6]
- b _080A8BE8
- .align 2, 0
-_080A8BD8: .4byte gUnknown_0202F7C8
-_080A8BDC: .4byte gUnknown_03004B00
-_080A8BE0: .4byte gTasks
-_080A8BE4:
- ldr r0, _080A8C00 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
-_080A8BE8:
- strh r0, [r2, 0x12]
- ldr r1, _080A8C04 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r1, _080A8C08 @ =sub_80A8C0C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8C00: .4byte gUnknown_0202F7C9
-_080A8C04: .4byte gTasks
-_080A8C08: .4byte sub_80A8C0C
- thumb_func_end sub_80A8B88
-
- thumb_func_start sub_80A8C0C
-sub_80A8C0C: @ 80A8C0C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8C5C @ =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 _080A8C64
- ldr r0, _080A8C60 @ =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 _080A8CAA
- .align 2, 0
-_080A8C5C: .4byte gTasks
-_080A8C60: .4byte gSprites
-_080A8C64:
- ldrb r0, [r4, 0x12]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080A8C8C
- ldr r1, _080A8C88 @ =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 _080A8CA8
- b _080A8CA6
- .align 2, 0
-_080A8C88: .4byte gSprites
-_080A8C8C:
- ldr r1, _080A8D2C @ =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 _080A8CA6
- negs r0, r0
-_080A8CA6:
- negs r0, r0
-_080A8CA8:
- strh r0, [r3, 0x26]
-_080A8CAA:
- mov r5, r8
- cmp r5, 0x7F
- bls _080A8CCC
- ldr r1, _080A8D30 @ =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 _080A8CCC
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080A8CEE
-_080A8CCC:
- mov r2, r8
- cmp r2, 0x7E
- bhi _080A8D20
- ldr r1, _080A8D30 @ =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 _080A8D20
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080A8D20
-_080A8CEE:
- 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 _080A8D20
- adds r0, r4, r7
- lsls r0, 2
- add r0, r9
- strh r3, [r0, 0x24]
- strh r3, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A8D20:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D2C: .4byte gSprites
-_080A8D30: .4byte gTasks
- thumb_func_end sub_80A8C0C
-
- thumb_func_start sub_80A8D34
-sub_80A8D34: @ 80A8D34
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _080A8D80 @ =gUnknown_03004B00
- ldrb r0, [r6, 0x6]
- bl obj_id_for_side_relative_to_move
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r1, [r6, 0x8]
- adds r0, r5, 0
- bl sub_8078E70
- ldr r1, _080A8D84 @ =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, _080A8D88 @ =sub_80A8D8C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D80: .4byte gUnknown_03004B00
-_080A8D84: .4byte gTasks
-_080A8D88: .4byte sub_80A8D8C
- thumb_func_end sub_80A8D34
-
- thumb_func_start sub_80A8D8C
-sub_80A8D8C: @ 80A8D8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8DEC @ =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 _080A8DFC
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- ble _080A8DF0
- 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 _080A8DFC
- .align 2, 0
-_080A8DEC: .4byte gTasks
-_080A8DF0:
- adds r0, r6, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8DFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8D8C
-
- thumb_func_start sub_80A8E04
-sub_80A8E04: @ 80A8E04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _080A8E40 @ =gUnknown_03004B00
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8E44 @ =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 _080A8E48
- strh r1, [r2, 0xE]
- b _080A8E54
- .align 2, 0
-_080A8E40: .4byte gUnknown_03004B00
-_080A8E44: .4byte gTasks
-_080A8E48:
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r3, r0, 0
- muls r3, r1
- adds r0, r3, 0
- strh r0, [r2, 0xE]
-_080A8E54:
- ldr r1, _080A8E80 @ =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r6, _080A8E84 @ =gUnknown_03004B00
- 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_8076BE0
- lsls r0, 24
- mov r8, r4
- cmp r0, 0
- beq _080A8E88
- movs r0, 0x1
- strh r0, [r5, 0x16]
- b _080A8EAC
- .align 2, 0
-_080A8E80: .4byte gTasks
-_080A8E84: .4byte gUnknown_03004B00
-_080A8E88:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A8E98
- ldr r0, _080A8E94 @ =gUnknown_0202F7C8
- b _080A8E9A
- .align 2, 0
-_080A8E94: .4byte gUnknown_0202F7C8
-_080A8E98:
- ldr r0, _080A8EF0 @ =gUnknown_0202F7C9
-_080A8E9A:
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080A8EAA
- movs r1, 0x1
-_080A8EAA:
- strh r1, [r5, 0x16]
-_080A8EAC:
- ldr r0, _080A8EF4 @ =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 _080A8ED8
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080A8ED8
- 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]
-_080A8ED8:
- ldr r0, _080A8EF4 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8EF8 @ =sub_80A8FD8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8EF0: .4byte gUnknown_0202F7C9
-_080A8EF4: .4byte gTasks
-_080A8EF8: .4byte sub_80A8FD8
- thumb_func_end sub_80A8E04
-
- thumb_func_start sub_80A8EFC
-sub_80A8EFC: @ 80A8EFC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8F38 @ =gUnknown_03004B00
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8F3C @ =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 _080A8F44
- ldr r0, _080A8F40 @ =gUnknown_0202F7C8
- b _080A8F46
- .align 2, 0
-_080A8F38: .4byte gUnknown_03004B00
-_080A8F3C: .4byte gTasks
-_080A8F40: .4byte gUnknown_0202F7C8
-_080A8F44:
- ldr r0, _080A8F74 @ =gUnknown_0202F7C9
-_080A8F46:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8F58
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080A8F58:
- ldr r0, _080A8F78 @ =gUnknown_03004B00
- movs r2, 0x6
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0x1
- beq _080A8F80
- ldr r2, _080A8F7C @ =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0xE]
- b _080A8F9A
- .align 2, 0
-_080A8F74: .4byte gUnknown_0202F7C9
-_080A8F78: .4byte gUnknown_03004B00
-_080A8F7C: .4byte gTasks
-_080A8F80:
- ldr r3, _080A8FD0 @ =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
-_080A8F9A:
- 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, _080A8FD4 @ =sub_80A8FD8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8FD0: .4byte gTasks
-_080A8FD4: .4byte sub_80A8FD8
- thumb_func_end sub_80A8EFC
-
- thumb_func_start sub_80A8FD8
-sub_80A8FD8: @ 80A8FD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9030 @ =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 _080A900C
- ldrb r0, [r4, 0x12]
- bl sub_8078F9C
-_080A900C:
- 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 _080A9052
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080A9034
- cmp r0, 0x1
- ble _080A903A
- cmp r0, 0x2
- beq _080A9042
- b _080A903A
- .align 2, 0
-_080A9030: .4byte gTasks
-_080A9034:
- ldrb r0, [r4, 0x12]
- bl sub_8078F40
-_080A903A:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A9052
-_080A9042:
- 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]
-_080A9052:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8FD8
-
- thumb_func_start sub_80A9058
-sub_80A9058: @ 80A9058
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080A9084 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r8, r0
- cmp r1, 0
- bne _080A9090
- ldr r4, _080A9088 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A908C @ =gUnknown_0202F7BC
- ldrh r0, [r0]
- movs r1, 0xC
- bl __udivsi3
- b _080A90A4
- .align 2, 0
-_080A9084: .4byte gUnknown_03004B00
-_080A9088: .4byte gTasks
-_080A908C: .4byte gUnknown_0202F7BC
-_080A9090:
- ldr r4, _080A912C @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A9130 @ =gUnknown_0202F7B8
- ldr r0, [r0]
- movs r1, 0xC
- bl __divsi3
-_080A90A4:
- strh r0, [r6, 0x26]
- lsls r0, 16
- adds r1, r4, 0
- cmp r0, 0
- bgt _080A90B2
- movs r0, 0x1
- strh r0, [r6, 0x26]
-_080A90B2:
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- cmp r0, 0x10
- ble _080A90BE
- movs r0, 0x10
- strh r0, [r6, 0x26]
-_080A90BE:
- 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 obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r2, _080A9134 @ =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, _080A9138 @ =sub_80A913C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A912C: .4byte gTasks
-_080A9130: .4byte gUnknown_0202F7B8
-_080A9134: .4byte gSprites
-_080A9138: .4byte sub_80A913C
- thumb_func_end sub_80A9058
-
- thumb_func_start sub_80A913C
-sub_80A913C: @ 80A913C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9190 @ =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 _080A921A
- 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 _080A91AE
- cmp r1, 0
- beq _080A9198
- ldr r2, _080A9194 @ =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 _080A91AC
- .align 2, 0
-_080A9190: .4byte gTasks
-_080A9194: .4byte gSprites
-_080A9198:
- ldr r2, _080A91D4 @ =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
-_080A91AC:
- strh r1, [r0, 0x24]
-_080A91AE:
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080A91E8
- movs r2, 0x20
- ldrsh r4, [r3, r2]
- cmp r4, 0
- beq _080A91D8
- ldr r2, _080A91D4 @ =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 _080A91E8
- .align 2, 0
-_080A91D4: .4byte gSprites
-_080A91D8:
- ldr r2, _080A9220 @ =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]
-_080A91E8:
- ldrh r0, [r3, 0xC]
- subs r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- bne _080A921A
- ldr r2, _080A9220 @ =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 move_anim_task_del
-_080A921A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9220: .4byte gSprites
- thumb_func_end sub_80A913C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
index d784aa4b7..ae6709650 100644
--- a/asm/battle_anim_80CA710.s
+++ b/asm/battle_anim_80CA710.s
@@ -10,7 +10,7 @@
sub_80CA710: @ 80CA710
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CA744 @ =gUnknown_03004B00
+ ldr r5, _080CA744 @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -33,13 +33,13 @@ sub_80CA710: @ 80CA710
negs r0, r0
b _080CA74E
.align 2, 0
-_080CA744: .4byte gUnknown_03004B00
+_080CA744: .4byte gBattleAnimArgs
_080CA748: .4byte gUnknown_0202F7C8
_080CA74C:
ldrh r0, [r5, 0x8]
_080CA74E:
strh r0, [r4, 0x34]
- ldr r0, _080CA760 @ =gUnknown_03004B00
+ ldr r0, _080CA760 @ =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r4, 0x36]
ldr r0, _080CA764 @ =sub_80CA768
@@ -48,7 +48,7 @@ _080CA74E:
pop {r0}
bx r0
.align 2, 0
-_080CA760: .4byte gUnknown_03004B00
+_080CA760: .4byte gBattleAnimArgs
_080CA764: .4byte sub_80CA768
thumb_func_end sub_80CA710
@@ -98,7 +98,7 @@ sub_80CA7B0: @ 80CA7B0
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CA7F0 @ =gUnknown_03004B00
+ ldr r0, _080CA7F0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r5, _080CA7F4 @ =gUnknown_0202F7C8
@@ -123,7 +123,7 @@ sub_80CA7B0: @ 80CA7B0
pop {r0}
bx r0
.align 2, 0
-_080CA7F0: .4byte gUnknown_03004B00
+_080CA7F0: .4byte gBattleAnimArgs
_080CA7F4: .4byte gUnknown_0202F7C8
_080CA7F8: .4byte sub_8078B34
_080CA7FC: .4byte move_anim_8074EE0
@@ -135,7 +135,7 @@ sub_80CA800: @ 80CA800
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080CA848 @ =gUnknown_03004B00
+ ldr r5, _080CA848 @ =gBattleAnimArgs
ldrb r1, [r5, 0x6]
adds r0, r4, 0
bl StartSpriteAnim
@@ -163,7 +163,7 @@ sub_80CA800: @ 80CA800
pop {r0}
bx r0
.align 2, 0
-_080CA848: .4byte gUnknown_03004B00
+_080CA848: .4byte gBattleAnimArgs
_080CA84C: .4byte gUnknown_0202F7C9
_080CA850: .4byte sub_8078B34
_080CA854: .4byte move_anim_8072740
@@ -175,7 +175,7 @@ sub_80CA858: @ 80CA858
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080CA8A8 @ =gUnknown_03004B00
+ ldr r6, _080CA8A8 @ =gBattleAnimArgs
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -207,7 +207,7 @@ sub_80CA858: @ 80CA858
pop {r0}
bx r0
.align 2, 0
-_080CA8A8: .4byte gUnknown_03004B00
+_080CA8A8: .4byte gBattleAnimArgs
_080CA8AC: .4byte gUnknown_0202F7C9
_080CA8B0: .4byte sub_80CA8B4
thumb_func_end sub_80CA858
@@ -297,7 +297,7 @@ sub_80CA928: @ 80CA928
strh r0, [r5, 0xA]
movs r0, 0x6
strh r0, [r5, 0x8]
- ldr r1, _080CA99C @ =gUnknown_03004B00
+ ldr r1, _080CA99C @ =gBattleAnimArgs
movs r0, 0xF
strh r0, [r1]
strh r2, [r1, 0x2]
@@ -329,7 +329,7 @@ _080CA990:
bx r0
.align 2, 0
_080CA998: .4byte gTasks
-_080CA99C: .4byte gUnknown_03004B00
+_080CA99C: .4byte gBattleAnimArgs
_080CA9A0: .4byte gSpriteTemplate_83D631C
_080CA9A4: .4byte gUnknown_0202F7C9
thumb_func_end sub_80CA928
@@ -340,7 +340,7 @@ sub_80CA9A8: @ 80CA9A8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r6, _080CA9EC @ =gUnknown_03004B00
+ ldr r6, _080CA9EC @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
ldr r5, _080CA9F0 @ =gUnknown_0202F7C8
@@ -366,7 +366,7 @@ sub_80CA9A8: @ 80CA9A8
pop {r0}
bx r0
.align 2, 0
-_080CA9EC: .4byte gUnknown_03004B00
+_080CA9EC: .4byte gBattleAnimArgs
_080CA9F0: .4byte gUnknown_0202F7C8
_080CA9F4: .4byte sub_80CA9F8
thumb_func_end sub_80CA9A8
@@ -528,12 +528,12 @@ sub_80CAB18: @ 80CAB18
lsls r0, 24
cmp r0, 0
beq _080CAB38
- ldr r1, _080CAB7C @ =gUnknown_03004B00
+ ldr r1, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080CAB38:
- ldr r4, _080CAB7C @ =gUnknown_03004B00
+ ldr r4, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _080CAB80 @ =gUnknown_0202F7C9
@@ -564,7 +564,7 @@ _080CAB38:
bx r0
.align 2, 0
_080CAB78: .4byte gUnknown_0202F7C8
-_080CAB7C: .4byte gUnknown_03004B00
+_080CAB7C: .4byte gBattleAnimArgs
_080CAB80: .4byte gUnknown_0202F7C9
_080CAB84: .4byte sub_80CAB88
thumb_func_end sub_80CAB18
@@ -634,7 +634,7 @@ sub_80CABF8: @ 80CABF8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r5, _080CAC3C @ =gUnknown_03004B00
+ ldr r5, _080CAC3C @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
adds r0, r4, 0
bl StartSpriteAnim
@@ -662,7 +662,7 @@ _080CAC22:
pop {r0}
bx r0
.align 2, 0
-_080CAC3C: .4byte gUnknown_03004B00
+_080CAC3C: .4byte gBattleAnimArgs
_080CAC40: .4byte sub_80CAC44
thumb_func_end sub_80CABF8
@@ -761,7 +761,7 @@ sub_80CACEC: @ 80CACEC
lsls r0, 24
cmp r0, 0
bne _080CAD06
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080CAD0E
@@ -812,7 +812,7 @@ sub_80CAD54: @ 80CAD54
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r5, _080CAD9C @ =gUnknown_03004B00
+ ldr r5, _080CAD9C @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -841,7 +841,7 @@ sub_80CAD54: @ 80CAD54
pop {r0}
bx r0
.align 2, 0
-_080CAD9C: .4byte gUnknown_03004B00
+_080CAD9C: .4byte gBattleAnimArgs
_080CADA0: .4byte gUnknown_0202F7C8
_080CADA4: .4byte sub_80CADA8
thumb_func_end sub_80CAD54
@@ -914,7 +914,7 @@ sub_80CAE20: @ 80CAE20
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080CAE68 @ =gUnknown_03004B00
+ ldr r5, _080CAE68 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -943,7 +943,7 @@ sub_80CAE20: @ 80CAE20
pop {r0}
bx r0
.align 2, 0
-_080CAE68: .4byte gUnknown_03004B00
+_080CAE68: .4byte gBattleAnimArgs
_080CAE6C: .4byte gUnknown_0202F7C8
_080CAE70: .4byte sub_80CAE74
thumb_func_end sub_80CAE20
@@ -1020,7 +1020,7 @@ sub_80CAED8: @ 80CAED8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r1, _080CAF18 @ =gUnknown_03004B00
+ ldr r1, _080CAF18 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -1034,7 +1034,7 @@ sub_80CAED8: @ 80CAED8
bx r0
.align 2, 0
_080CAF14: .4byte gUnknown_0202F7C8
-_080CAF18: .4byte gUnknown_03004B00
+_080CAF18: .4byte gBattleAnimArgs
_080CAF1C: .4byte sub_80CAF20
thumb_func_end sub_80CAED8
@@ -1148,12 +1148,12 @@ sub_80CAFD0: @ 80CAFD0
lsls r0, 24
cmp r0, 0
beq _080CAFF0
- ldr r1, _080CB028 @ =gUnknown_03004B00
+ ldr r1, _080CB028 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080CAFF0:
- ldr r6, _080CB028 @ =gUnknown_03004B00
+ ldr r6, _080CB028 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
movs r1, 0xC
@@ -1179,7 +1179,7 @@ _080CAFF0:
b _080CB050
.align 2, 0
_080CB024: .4byte gUnknown_0202F7C8
-_080CB028: .4byte gUnknown_03004B00
+_080CB028: .4byte gBattleAnimArgs
_080CB02C: .4byte gUnknown_0202F7C9
_080CB030:
ldr r0, _080CB07C @ =gUnknown_0202F7C9
@@ -1199,7 +1199,7 @@ _080CB030:
adds r0, r1
_080CB050:
strh r0, [r5, 0x36]
- ldr r0, _080CB080 @ =gUnknown_03004B00
+ ldr r0, _080CB080 @ =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r5, 0x38]
adds r0, r5, 0
@@ -1219,7 +1219,7 @@ _080CB050:
b _080CB08A
.align 2, 0
_080CB07C: .4byte gUnknown_0202F7C9
-_080CB080: .4byte gUnknown_03004B00
+_080CB080: .4byte gBattleAnimArgs
_080CB084: .4byte gUnknown_0202F7C8
_080CB088:
movs r0, 0
@@ -1333,7 +1333,7 @@ sub_80CB144: @ 80CB144
lsls r0, 24
cmp r0, 0
bne _080CB170
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1350,7 +1350,7 @@ _080CB170:
ldrh r0, [r4, 0x22]
adds r0, 0x20
strh r0, [r4, 0x22]
- ldr r1, _080CB19C @ =gUnknown_03004B00
+ ldr r1, _080CB19C @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -1368,7 +1368,7 @@ _080CB170:
bx r0
.align 2, 0
_080CB198: .4byte gUnknown_0202F7C9
-_080CB19C: .4byte gUnknown_03004B00
+_080CB19C: .4byte gBattleAnimArgs
_080CB1A0: .4byte sub_80CB1A4
thumb_func_end sub_80CB144
@@ -1480,7 +1480,7 @@ sub_80CB25C: @ 80CB25C
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r4, _080CB290 @ =gUnknown_03004B00
+ ldr r4, _080CB290 @ =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAffineAnim
@@ -1494,7 +1494,7 @@ sub_80CB25C: @ 80CB25C
pop {r0}
bx r0
.align 2, 0
-_080CB290: .4byte gUnknown_03004B00
+_080CB290: .4byte gBattleAnimArgs
_080CB294: .4byte sub_80CB298
thumb_func_end sub_80CB25C
@@ -1502,7 +1502,7 @@ _080CB294: .4byte sub_80CB298
sub_80CB298: @ 80CB298
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CB2C8 @ =gUnknown_03004B00
+ ldr r0, _080CB2C8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CB2CC @ =0x0000ffff
cmp r1, r0
@@ -1525,7 +1525,7 @@ _080CB2C2:
pop {r0}
bx r0
.align 2, 0
-_080CB2C8: .4byte gUnknown_03004B00
+_080CB2C8: .4byte gBattleAnimArgs
_080CB2CC: .4byte 0x0000ffff
_080CB2D0: .4byte sub_80CB2D4
thumb_func_end sub_80CB298
@@ -1623,7 +1623,7 @@ _080CB370:
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r2, _080CB3A0 @ =gUnknown_03004B00
+ ldr r2, _080CB3A0 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x8]
ldrh r1, [r2, 0x2]
@@ -1639,7 +1639,7 @@ _080CB396:
bx r0
.align 2, 0
_080CB39C: .4byte gTasks
-_080CB3A0: .4byte gUnknown_03004B00
+_080CB3A0: .4byte gBattleAnimArgs
_080CB3A4: .4byte sub_80CB3A8
thumb_func_end sub_80CB340
@@ -1718,7 +1718,7 @@ sub_80CB438: @ 80CB438
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _080CB484 @ =gUnknown_03004B00
+ ldr r0, _080CB484 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CB488 @ =0x0000ffff
cmp r1, r0
@@ -1752,7 +1752,7 @@ sub_80CB438: @ 80CB438
strh r0, [r6, 0x8]
b _080CB4C2
.align 2, 0
-_080CB484: .4byte gUnknown_03004B00
+_080CB484: .4byte gBattleAnimArgs
_080CB488: .4byte 0x0000ffff
_080CB48C: .4byte gTasks
_080CB490: .4byte gSprites
@@ -1806,7 +1806,7 @@ _080CB4DE:
lsls r0, 24
cmp r0, 0
bne _080CB4F6
- ldr r1, _080CB534 @ =gUnknown_03004B00
+ ldr r1, _080CB534 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
@@ -1816,7 +1816,7 @@ _080CB4F6:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CB534 @ =gUnknown_03004B00
+ ldr r4, _080CB534 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -1841,7 +1841,7 @@ _080CB4F6:
b _080CB58A
.align 2, 0
_080CB530: .4byte gUnknown_0202F7C9
-_080CB534: .4byte gUnknown_03004B00
+_080CB534: .4byte gBattleAnimArgs
_080CB538:
adds r2, r5, 0
adds r2, 0x3E
@@ -1911,7 +1911,7 @@ sub_80CB59C: @ 80CB59C
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080CB618 @ =gUnknown_03004B00
+ ldr r4, _080CB618 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x24]
ldrh r0, [r4, 0x2]
@@ -1951,7 +1951,7 @@ _080CB608:
bx r0
.align 2, 0
_080CB614: .4byte gUnknown_0202F7C8
-_080CB618: .4byte gUnknown_03004B00
+_080CB618: .4byte gBattleAnimArgs
_080CB61C: .4byte sub_80CB710
thumb_func_end sub_80CB59C
@@ -2001,7 +2001,7 @@ sub_80CB620: @ 80CB620
lsrs r3, r4, 16
mov r10, r3
asrs r4, 16
- ldr r6, _080CB704 @ =gUnknown_03004B00
+ ldr r6, _080CB704 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
muls r0, r4
@@ -2062,7 +2062,7 @@ sub_80CB620: @ 80CB620
.align 2, 0
_080CB6FC: .4byte gUnknown_0202F7C8
_080CB700: .4byte gUnknown_0202F7C9
-_080CB704: .4byte gUnknown_03004B00
+_080CB704: .4byte gBattleAnimArgs
_080CB708: .4byte sub_80CB710
_080CB70C: .4byte gUnknown_03000728
thumb_func_end sub_80CB620
@@ -2128,7 +2128,7 @@ sub_80CB768: @ 80CB768
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CB7E8 @ =gUnknown_03004B00
+ ldr r4, _080CB7E8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r4]
adds r0, r2
@@ -2179,7 +2179,7 @@ _080CB7DE:
bx r0
.align 2, 0
_080CB7E4: .4byte gUnknown_0202F7C8
-_080CB7E8: .4byte gUnknown_03004B00
+_080CB7E8: .4byte gBattleAnimArgs
thumb_func_end sub_80CB768
thumb_func_start sub_80CB7EC
@@ -2556,7 +2556,7 @@ sub_80CBAA4: @ 80CBAA4
adds r0, r4, 0
movs r1, 0
bl sub_8078764
- ldr r0, _080CBAE4 @ =gUnknown_03004B00
+ ldr r0, _080CBAE4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x30]
_080CBABE:
@@ -2580,7 +2580,7 @@ _080CBADE:
pop {r0}
bx r0
.align 2, 0
-_080CBAE4: .4byte gUnknown_03004B00
+_080CBAE4: .4byte gBattleAnimArgs
thumb_func_end sub_80CBAA4
thumb_func_start sub_80CBAE8
@@ -2725,7 +2725,7 @@ sub_80CBBF0: @ 80CBBF0
lsls r0, 24
cmp r0, 0
bne _080CBC18
- ldr r0, _080CBC14 @ =gUnknown_03004B00
+ ldr r0, _080CBC14 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
strh r1, [r4, 0x30]
movs r1, 0x78
@@ -2733,9 +2733,9 @@ sub_80CBBF0: @ 80CBBF0
adds r5, r0, 0
b _080CBC3A
.align 2, 0
-_080CBC14: .4byte gUnknown_03004B00
+_080CBC14: .4byte gBattleAnimArgs
_080CBC18:
- ldr r0, _080CBC74 @ =gUnknown_03004B00
+ ldr r0, _080CBC74 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r3, [r0, r1]
adds r1, r3, 0
@@ -2782,7 +2782,7 @@ _080CBC3A:
movs r0, 0x1F
b _080CBC82
.align 2, 0
-_080CBC74: .4byte gUnknown_03004B00
+_080CBC74: .4byte gBattleAnimArgs
_080CBC78: .4byte sub_80CBC8C
_080CBC7C:
adds r1, r4, 0
@@ -3827,7 +3827,7 @@ _080CC470: .4byte gTasks
sub_80CC474: @ 80CC474
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080CC488 @ =gUnknown_03004B00
+ ldr r0, _080CC488 @ =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3835,7 +3835,7 @@ sub_80CC474: @ 80CC474
ldr r0, _080CC48C @ =gUnknown_0202F7C8
b _080CC492
.align 2, 0
-_080CC488: .4byte gUnknown_03004B00
+_080CC488: .4byte gBattleAnimArgs
_080CC48C: .4byte gUnknown_0202F7C8
_080CC490:
ldr r0, _080CC4B0 @ =gUnknown_0202F7C9
@@ -3848,19 +3848,19 @@ _080CC492:
beq _080CC4BC
movs r0, 0
strh r0, [r4, 0x36]
- ldr r1, _080CC4B4 @ =gUnknown_03004B00
+ ldr r1, _080CC4B4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x32]
ldr r0, _080CC4B8 @ =0x0000fff0
b _080CC4CC
.align 2, 0
_080CC4B0: .4byte gUnknown_0202F7C9
-_080CC4B4: .4byte gUnknown_03004B00
+_080CC4B4: .4byte gBattleAnimArgs
_080CC4B8: .4byte 0x0000fff0
_080CC4BC:
movs r0, 0x1
strh r0, [r4, 0x36]
- ldr r1, _080CC4F0 @ =gUnknown_03004B00
+ ldr r1, _080CC4F0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r4, 0x32]
@@ -3886,7 +3886,7 @@ _080CC4CC:
beq _080CC4FE
b _080CC56C
.align 2, 0
-_080CC4F0: .4byte gUnknown_03004B00
+_080CC4F0: .4byte gBattleAnimArgs
_080CC4F4:
cmp r0, 0x2
beq _080CC508
@@ -4111,7 +4111,7 @@ _080CC650:
bne _080CC6AA
strh r7, [r5, 0x1E]
_080CC6AA:
- ldr r0, _080CC6C8 @ =gUnknown_03004B00
+ ldr r0, _080CC6C8 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -4126,7 +4126,7 @@ _080CC6BE:
bx r0
.align 2, 0
_080CC6C4: .4byte gUnknown_083D6984
-_080CC6C8: .4byte gUnknown_03004B00
+_080CC6C8: .4byte gBattleAnimArgs
thumb_func_end sub_80CC5F8
thumb_func_start sub_80CC6CC
@@ -4134,7 +4134,7 @@ sub_80CC6CC: @ 80CC6CC
push {r4-r7,lr}
sub sp, 0x4
adds r6, r0, 0
- ldr r1, _080CC6E4 @ =gUnknown_03004B00
+ ldr r1, _080CC6E4 @ =gBattleAnimArgs
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
@@ -4143,7 +4143,7 @@ sub_80CC6CC: @ 80CC6CC
bl move_anim_8072740
b _080CC7C2
.align 2, 0
-_080CC6E4: .4byte gUnknown_03004B00
+_080CC6E4: .4byte gBattleAnimArgs
_080CC6E8:
movs r3, 0
ldrsh r0, [r1, r3]
@@ -4166,7 +4166,7 @@ _080CC6FA:
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CC738 @ =gUnknown_03004B00
+ ldr r0, _080CC738 @ =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r6, 0x2E]
movs r3, 0x2
@@ -4185,7 +4185,7 @@ _080CC6FA:
b _080CC74C
.align 2, 0
_080CC734: .4byte gUnknown_0202F7C9
-_080CC738: .4byte gUnknown_03004B00
+_080CC738: .4byte gBattleAnimArgs
_080CC73C:
strh r5, [r6, 0x20]
strh r2, [r6, 0x22]
@@ -4323,7 +4323,7 @@ sub_80CC82C: @ 80CC82C
lsls r0, 24
cmp r0, 0
beq _080CC854
- ldr r2, _080CC850 @ =gUnknown_03004B00
+ ldr r2, _080CC850 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -4332,9 +4332,9 @@ sub_80CC82C: @ 80CC82C
b _080CC860
.align 2, 0
_080CC84C: .4byte gUnknown_0202F7C8
-_080CC850: .4byte gUnknown_03004B00
+_080CC850: .4byte gBattleAnimArgs
_080CC854:
- ldr r0, _080CC878 @ =gUnknown_03004B00
+ ldr r0, _080CC878 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -4353,7 +4353,7 @@ _080CC860:
pop {r0}
bx r0
.align 2, 0
-_080CC878: .4byte gUnknown_03004B00
+_080CC878: .4byte gBattleAnimArgs
_080CC87C: .4byte sub_8078600
_080CC880: .4byte move_anim_8072740
thumb_func_end sub_80CC82C
@@ -4374,7 +4374,7 @@ sub_80CC884: @ 80CC884
_080CC89E:
ldr r0, _080CC8C0 @ =sub_80CC810
str r0, [r5, 0x1C]
- ldr r4, _080CC8C4 @ =gUnknown_03004B00
+ ldr r4, _080CC8C4 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -4389,14 +4389,14 @@ _080CC89E:
.align 2, 0
_080CC8BC: .4byte gUnknown_0202F7C8
_080CC8C0: .4byte sub_80CC810
-_080CC8C4: .4byte gUnknown_03004B00
+_080CC8C4: .4byte gBattleAnimArgs
thumb_func_end sub_80CC884
thumb_func_start sub_80CC8C8
sub_80CC8C8: @ 80CC8C8
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080CC908 @ =gUnknown_03004B00
+ ldr r1, _080CC908 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -4425,7 +4425,7 @@ sub_80CC8C8: @ 80CC8C8
pop {r0}
bx r0
.align 2, 0
-_080CC908: .4byte gUnknown_03004B00
+_080CC908: .4byte gBattleAnimArgs
_080CC90C: .4byte move_anim_8074EE0
_080CC910: .4byte sub_8078504
thumb_func_end sub_80CC8C8
@@ -4458,7 +4458,7 @@ sub_80CC914: @ 80CC914
_080CC948:
ldr r0, _080CC968 @ =sub_80CCB00
str r0, [r5, 0x1C]
- ldr r0, _080CC96C @ =gUnknown_03004B00
+ ldr r0, _080CC96C @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -4472,7 +4472,7 @@ _080CC948:
.align 2, 0
_080CC964: .4byte gUnknown_0202F7C9
_080CC968: .4byte sub_80CCB00
-_080CC96C: .4byte gUnknown_03004B00
+_080CC96C: .4byte gBattleAnimArgs
_080CC970:
ldrh r0, [r5, 0x20]
ldrh r1, [r3]
@@ -4522,7 +4522,7 @@ sub_80CC9BC: @ 80CC9BC
mov r7, r8
push {r7}
adds r6, r0, 0
- ldr r0, _080CC9D8 @ =gUnknown_03004B00
+ ldr r0, _080CC9D8 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -4533,7 +4533,7 @@ sub_80CC9BC: @ 80CC9BC
beq _080CC9FC
b _080CCA58
.align 2, 0
-_080CC9D8: .4byte gUnknown_03004B00
+_080CC9D8: .4byte gBattleAnimArgs
_080CC9DC:
ldr r5, _080CC9F8 @ =gUnknown_0202F7C9
ldrb r0, [r5]
@@ -4619,7 +4619,7 @@ _080CCA72:
_080CCA8A:
ldr r0, _080CCAA8 @ =sub_80CCB00
str r0, [r6, 0x1C]
- ldr r0, _080CCAAC @ =gUnknown_03004B00
+ ldr r0, _080CCAAC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -4633,7 +4633,7 @@ _080CCA8A:
.align 2, 0
_080CCAA4: .4byte gUnknown_0202F7C9
_080CCAA8: .4byte sub_80CCB00
-_080CCAAC: .4byte gUnknown_03004B00
+_080CCAAC: .4byte gBattleAnimArgs
_080CCAB0:
ldrh r0, [r6, 0x20]
ldrh r1, [r3]
@@ -4858,7 +4858,7 @@ _080CCC4C: .4byte gSprites
sub_80CCC50: @ 80CCC50
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080CCC70 @ =gUnknown_03004B00
+ ldr r4, _080CCC70 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080CCC74 @ =gUnknown_0202F7C8
@@ -4872,7 +4872,7 @@ sub_80CCC50: @ 80CCC50
subs r0, r1
b _080CCC7E
.align 2, 0
-_080CCC70: .4byte gUnknown_03004B00
+_080CCC70: .4byte gBattleAnimArgs
_080CCC74: .4byte gUnknown_0202F7C8
_080CCC78:
ldrh r0, [r4]
@@ -4880,7 +4880,7 @@ _080CCC78:
adds r0, r1
_080CCC7E:
strh r0, [r5, 0x20]
- ldr r4, _080CCCAC @ =gUnknown_03004B00
+ ldr r4, _080CCCAC @ =gBattleAnimArgs
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl StartSpriteAnim
@@ -4901,7 +4901,7 @@ _080CCC7E:
pop {r0}
bx r0
.align 2, 0
-_080CCCAC: .4byte gUnknown_03004B00
+_080CCCAC: .4byte gBattleAnimArgs
_080CCCB0: .4byte sub_80CCCB4
thumb_func_end sub_80CCC50
@@ -4972,7 +4972,7 @@ sub_80CCD24: @ 80CCD24
lsls r0, 24
cmp r0, 0
beq _080CCD3A
- ldr r1, _080CCD98 @ =gUnknown_03004B00
+ ldr r1, _080CCD98 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
adds r0, 0x8
strh r0, [r1, 0x2]
@@ -4982,7 +4982,7 @@ _080CCD3A:
movs r1, 0
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080CCD98 @ =gUnknown_03004B00
+ ldr r4, _080CCD98 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -5021,7 +5021,7 @@ _080CCD78:
strb r1, [r5, 0x5]
b _080CCDB8
.align 2, 0
-_080CCD98: .4byte gUnknown_03004B00
+_080CCD98: .4byte gBattleAnimArgs
_080CCD9C: .4byte gUnknown_0202F7C8
_080CCDA0:
ldrb r0, [r6]
@@ -5036,7 +5036,7 @@ _080CCDA0:
orrs r0, r1
strb r0, [r5, 0x5]
_080CCDB8:
- ldr r0, _080CCDF8 @ =gUnknown_03004B00
+ ldr r0, _080CCDF8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080CCDFC @ =0x00002828
@@ -5067,7 +5067,7 @@ _080CCDB8:
pop {r0}
bx r0
.align 2, 0
-_080CCDF8: .4byte gUnknown_03004B00
+_080CCDF8: .4byte gBattleAnimArgs
_080CCDFC: .4byte 0x00002828
_080CCE00: .4byte REG_BLDCNT
_080CCE04: .4byte REG_BLDALPHA
@@ -5507,7 +5507,7 @@ _080CD138:
sub_80CD140: @ 80CD140
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CD184 @ =gUnknown_03004B00
+ ldr r5, _080CD184 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -5538,7 +5538,7 @@ _080CD154:
pop {r0}
bx r0
.align 2, 0
-_080CD184: .4byte gUnknown_03004B00
+_080CD184: .4byte gBattleAnimArgs
_080CD188: .4byte move_anim_8072740
_080CD18C: .4byte sub_8078394
thumb_func_end sub_80CD140
@@ -5547,7 +5547,7 @@ _080CD18C: .4byte sub_8078394
sub_80CD190: @ 80CD190
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, _080CD1A4 @ =gUnknown_03004B00
+ ldr r0, _080CD1A4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -5555,13 +5555,13 @@ sub_80CD190: @ 80CD190
ldr r0, _080CD1A8 @ =gUnknown_0202F7C8
b _080CD1AE
.align 2, 0
-_080CD1A4: .4byte gUnknown_03004B00
+_080CD1A4: .4byte gBattleAnimArgs
_080CD1A8: .4byte gUnknown_0202F7C8
_080CD1AC:
ldr r0, _080CD1F0 @ =gUnknown_0202F7C9
_080CD1AE:
ldrb r6, [r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080CD1F8
@@ -5572,7 +5572,7 @@ _080CD1AE:
lsls r0, 24
cmp r0, 0
beq _080CD1F8
- ldr r4, _080CD1F4 @ =gUnknown_03004B00
+ ldr r4, _080CD1F4 @ =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r2, r5, 0
adds r2, 0x20
@@ -5591,9 +5591,9 @@ _080CD1AE:
b _080CD248
.align 2, 0
_080CD1F0: .4byte gUnknown_0202F7C9
-_080CD1F4: .4byte gUnknown_03004B00
+_080CD1F4: .4byte gBattleAnimArgs
_080CD1F8:
- ldr r4, _080CD218 @ =gUnknown_03004B00
+ ldr r4, _080CD218 @ =gBattleAnimArgs
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0
@@ -5608,7 +5608,7 @@ _080CD1F8:
movs r1, 0x1
b _080CD22E
.align 2, 0
-_080CD218: .4byte gUnknown_03004B00
+_080CD218: .4byte gBattleAnimArgs
_080CD21C:
adds r0, r6, 0
movs r1, 0x2
@@ -5625,13 +5625,13 @@ _080CD22E:
ldrh r4, [r4, 0x2]
adds r0, r4
strh r0, [r5, 0x22]
- ldr r0, _080CD268 @ =gUnknown_03004B00
+ ldr r0, _080CD268 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r5, 0
bl sub_807867C
_080CD248:
- ldr r1, _080CD268 @ =gUnknown_03004B00
+ ldr r1, _080CD268 @ =gBattleAnimArgs
ldrh r0, [r1, 0xA]
strh r0, [r5, 0x2E]
ldrh r0, [r1, 0x6]
@@ -5647,7 +5647,7 @@ _080CD248:
pop {r0}
bx r0
.align 2, 0
-_080CD268: .4byte gUnknown_03004B00
+_080CD268: .4byte gBattleAnimArgs
_080CD26C: .4byte move_anim_8072740
_080CD270: .4byte sub_8078394
thumb_func_end sub_80CD190
@@ -5663,7 +5663,7 @@ sub_80CD274: @ 80CD274
lsls r0, 24
cmp r0, 0
bne _080CD2A8
- ldr r0, _080CD2A4 @ =gUnknown_03004B00
+ ldr r0, _080CD2A4 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -5675,9 +5675,9 @@ sub_80CD274: @ 80CD274
b _080CD2C2
.align 2, 0
_080CD2A0: .4byte gUnknown_0202F7C8
-_080CD2A4: .4byte gUnknown_03004B00
+_080CD2A4: .4byte gBattleAnimArgs
_080CD2A8:
- ldr r2, _080CD2CC @ =gUnknown_03004B00
+ ldr r2, _080CD2CC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5696,7 +5696,7 @@ _080CD2C2:
pop {r0}
bx r0
.align 2, 0
-_080CD2CC: .4byte gUnknown_03004B00
+_080CD2CC: .4byte gBattleAnimArgs
_080CD2D0: .4byte sub_80CD2D4
thumb_func_end sub_80CD274
@@ -5755,7 +5755,7 @@ sub_80CD328: @ 80CD328
lsls r0, 24
cmp r0, 0
bne _080CD360
- ldr r1, _080CD35C @ =gUnknown_03004B00
+ ldr r1, _080CD35C @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -5769,9 +5769,9 @@ sub_80CD328: @ 80CD328
b _080CD37E
.align 2, 0
_080CD358: .4byte gUnknown_0202F7C8
-_080CD35C: .4byte gUnknown_03004B00
+_080CD35C: .4byte gBattleAnimArgs
_080CD360:
- ldr r2, _080CD388 @ =gUnknown_03004B00
+ ldr r2, _080CD388 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5792,7 +5792,7 @@ _080CD37E:
pop {r0}
bx r0
.align 2, 0
-_080CD388: .4byte gUnknown_03004B00
+_080CD388: .4byte gBattleAnimArgs
_080CD38C: .4byte 0x0000ffff
_080CD390: .4byte sub_80CD394
thumb_func_end sub_80CD328
@@ -6165,7 +6165,7 @@ _080CD650: .4byte sub_80CD654
sub_80CD654: @ 80CD654
push {lr}
adds r2, r0, 0
- ldr r0, _080CD670 @ =gUnknown_03004B00
+ ldr r0, _080CD670 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CD674 @ =0x0000ffff
cmp r1, r0
@@ -6179,7 +6179,7 @@ _080CD66C:
pop {r0}
bx r0
.align 2, 0
-_080CD670: .4byte gUnknown_03004B00
+_080CD670: .4byte gBattleAnimArgs
_080CD674: .4byte 0x0000ffff
_080CD678: .4byte sub_80CD67C
thumb_func_end sub_80CD654
@@ -6231,7 +6231,7 @@ _080CD6C4:
sub_80CD6CC: @ 80CD6CC
push {r4,lr}
adds r3, r0, 0
- ldr r0, _080CD6EC @ =gUnknown_03004B00
+ ldr r0, _080CD6EC @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r3, 0x6]
lsls r0, 16
@@ -6246,7 +6246,7 @@ sub_80CD6CC: @ 80CD6CC
strh r0, [r3, 0x22]
b _080CD742
.align 2, 0
-_080CD6EC: .4byte gUnknown_03004B00
+_080CD6EC: .4byte gBattleAnimArgs
_080CD6F0:
cmp r0, 0x2
bne _080CD70C
@@ -6329,7 +6329,7 @@ sub_80CD774: @ 80CD774
strb r0, [r2]
movs r0, 0
strh r0, [r3, 0x2E]
- ldr r0, _080CD79C @ =gUnknown_03004B00
+ ldr r0, _080CD79C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -6340,7 +6340,7 @@ sub_80CD774: @ 80CD774
beq _080CD7A6
b _080CD7C0
.align 2, 0
-_080CD79C: .4byte gUnknown_03004B00
+_080CD79C: .4byte gBattleAnimArgs
_080CD7A0:
cmp r0, 0x2
beq _080CD7B8
@@ -6785,7 +6785,7 @@ sub_80CDAC8: @ 80CDAC8
lsrs r2, r0, 24
strh r2, [r5, 0xA]
strh r4, [r5, 0xC]
- ldr r0, _080CDB18 @ =gUnknown_03004B00
+ ldr r0, _080CDB18 @ =gBattleAnimArgs
movs r3, 0
ldrsh r1, [r0, r3]
cmp r1, 0
@@ -6799,7 +6799,7 @@ sub_80CDAC8: @ 80CDAC8
_080CDB0C: .4byte gTasks
_080CDB10: .4byte gUnknown_02024BE0
_080CDB14: .4byte gUnknown_0202F7C8
-_080CDB18: .4byte gUnknown_03004B00
+_080CDB18: .4byte gBattleAnimArgs
_080CDB1C:
strh r1, [r5, 0xC]
movs r0, 0x8
@@ -7129,7 +7129,7 @@ _080CDD6C:
sub_80CDD74: @ 80CDD74
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CDD88 @ =gUnknown_03004B00
+ ldr r6, _080CDD88 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -7137,7 +7137,7 @@ sub_80CDD74: @ 80CDD74
ldr r4, _080CDD8C @ =gUnknown_0202F7C8
b _080CDD92
.align 2, 0
-_080CDD88: .4byte gUnknown_03004B00
+_080CDD88: .4byte gBattleAnimArgs
_080CDD8C: .4byte gUnknown_0202F7C8
_080CDD90:
ldr r4, _080CDDD0 @ =gUnknown_0202F7C9
@@ -7219,7 +7219,7 @@ sub_80CDE24: @ 80CDE24
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r1, _080CDE6C @ =gUnknown_03004B00
+ ldr r1, _080CDE6C @ =gBattleAnimArgs
ldr r2, _080CDE70 @ =0x0000ffd0
adds r0, r2
ldrh r1, [r1]
@@ -7244,7 +7244,7 @@ sub_80CDE24: @ 80CDE24
bx r0
.align 2, 0
_080CDE68: .4byte gUnknown_0202F7C9
-_080CDE6C: .4byte gUnknown_03004B00
+_080CDE6C: .4byte gBattleAnimArgs
_080CDE70: .4byte 0x0000ffd0
_080CDE74: .4byte sub_80CDEC0
thumb_func_end sub_80CDE24
@@ -7338,7 +7338,7 @@ _080CDF08:
sub_80CDF0C: @ 80CDF0C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CDF20 @ =gUnknown_03004B00
+ ldr r6, _080CDF20 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -7346,7 +7346,7 @@ sub_80CDF0C: @ 80CDF0C
ldr r4, _080CDF24 @ =gUnknown_0202F7C8
b _080CDF2A
.align 2, 0
-_080CDF20: .4byte gUnknown_03004B00
+_080CDF20: .4byte gBattleAnimArgs
_080CDF24: .4byte gUnknown_0202F7C8
_080CDF28:
ldr r4, _080CDF64 @ =gUnknown_0202F7C9
@@ -7369,7 +7369,7 @@ _080CDF2A:
strh r0, [r5, 0x22]
movs r0, 0
strh r0, [r5, 0x2E]
- ldr r0, _080CDF68 @ =gUnknown_03004B00
+ ldr r0, _080CDF68 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x30]
ldr r0, _080CDF6C @ =sub_80CDF70
@@ -7379,7 +7379,7 @@ _080CDF2A:
bx r0
.align 2, 0
_080CDF64: .4byte gUnknown_0202F7C9
-_080CDF68: .4byte gUnknown_03004B00
+_080CDF68: .4byte gBattleAnimArgs
_080CDF6C: .4byte sub_80CDF70
thumb_func_end sub_80CDF0C
@@ -7556,7 +7556,7 @@ sub_80CE09C: @ 80CE09C
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r5, _080CE100 @ =gUnknown_03004B00
+ ldr r5, _080CE100 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
@@ -7581,7 +7581,7 @@ _080CE0E0:
adds r0, 0x1
strh r0, [r6, 0x2E]
_080CE0E6:
- ldr r0, _080CE100 @ =gUnknown_03004B00
+ ldr r0, _080CE100 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CE104 @ =0x0000ffff
cmp r1, r0
@@ -7594,7 +7594,7 @@ _080CE0F6:
bx r0
.align 2, 0
_080CE0FC: .4byte gUnknown_0202F7C8
-_080CE100: .4byte gUnknown_03004B00
+_080CE100: .4byte gBattleAnimArgs
_080CE104: .4byte 0x0000ffff
thumb_func_end sub_80CE09C
@@ -7612,13 +7612,13 @@ sub_80CE108: @ 80CE108
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080CE134
- ldr r1, _080CE12C @ =gUnknown_03004B00
+ ldr r1, _080CE12C @ =gBattleAnimArgs
ldr r0, _080CE130 @ =0x0000ffff
strh r0, [r1, 0xE]
b _080CE16C
.align 2, 0
_080CE128: .4byte gTasks
-_080CE12C: .4byte gUnknown_03004B00
+_080CE12C: .4byte gBattleAnimArgs
_080CE130: .4byte 0x0000ffff
_080CE134:
cmp r0, 0x2
@@ -7673,7 +7673,7 @@ sub_80CE17C: @ 80CE17C
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, _080CE1A4 @ =gUnknown_03004B00
+ ldr r0, _080CE1A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080CE1A8 @ =sub_80CE1AC
@@ -7682,7 +7682,7 @@ sub_80CE17C: @ 80CE17C
pop {r0}
bx r0
.align 2, 0
-_080CE1A4: .4byte gUnknown_03004B00
+_080CE1A4: .4byte gBattleAnimArgs
_080CE1A8: .4byte sub_80CE1AC
thumb_func_end sub_80CE17C
@@ -7789,7 +7789,7 @@ unref_sub_80CE260: @ 80CE260
ldrb r0, [r0]
cmp r4, r0
bcs _080CE2BC
- ldr r6, _080CE2CC @ =gUnknown_03004B00
+ ldr r6, _080CE2CC @ =gBattleAnimArgs
ldr r5, _080CE2D0 @ =gUnknown_03004340
_080CE274:
movs r1, 0
@@ -7834,7 +7834,7 @@ _080CE2BC:
bx r0
.align 2, 0
_080CE2C8: .4byte gUnknown_02024A68
-_080CE2CC: .4byte gUnknown_03004B00
+_080CE2CC: .4byte gBattleAnimArgs
_080CE2D0: .4byte gUnknown_03004340
thumb_func_end unref_sub_80CE260
@@ -7881,7 +7881,7 @@ sub_80CE30C: @ 80CE30C
movs r0, 0x28
b _080CE32A
_080CE322:
- ldr r0, _080CE34C @ =gUnknown_03004B00
+ ldr r0, _080CE34C @ =gBattleAnimArgs
ldrh r1, [r0]
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
@@ -7903,7 +7903,7 @@ _080CE32A:
pop {r0}
bx r0
.align 2, 0
-_080CE34C: .4byte gUnknown_03004B00
+_080CE34C: .4byte gBattleAnimArgs
_080CE350: .4byte sub_80CE354
thumb_func_end sub_80CE30C
@@ -7931,7 +7931,7 @@ sub_80CE36C: @ 80CE36C
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r2, _080CE3A8 @ =gUnknown_03004B00
+ ldr r2, _080CE3A8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r2]
adds r0, r1
@@ -7952,7 +7952,7 @@ sub_80CE36C: @ 80CE36C
bx r0
.align 2, 0
_080CE3A4: .4byte gUnknown_0202F7C8
-_080CE3A8: .4byte gUnknown_03004B00
+_080CE3A8: .4byte gBattleAnimArgs
_080CE3AC: .4byte sub_80CE3B0
thumb_func_end sub_80CE36C
@@ -8320,7 +8320,7 @@ _080CE66C: .4byte gPaletteFade
sub_80CE670: @ 80CE670
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CE6F4 @ =gUnknown_03004B00
+ ldr r6, _080CE6F4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r0, 0x1
@@ -8383,7 +8383,7 @@ _080CE68E:
ldr r0, _080CE6FC @ =0xffffec00
b _080CE726
.align 2, 0
-_080CE6F4: .4byte gUnknown_03004B00
+_080CE6F4: .4byte gBattleAnimArgs
_080CE6F8: .4byte gUnknown_0202F7C9
_080CE6FC: .4byte 0xffffec00
_080CE700:
@@ -8923,7 +8923,7 @@ sub_80CEB0C: @ 80CEB0C
sub sp, 0x4
adds r5, r0, 0
bl sub_8078650
- ldr r4, _080CEB64 @ =gUnknown_03004B00
+ ldr r4, _080CEB64 @ =gBattleAnimArgs
ldrb r1, [r4]
adds r0, r5, 0
bl StartSpriteAnim
@@ -8961,7 +8961,7 @@ _080CEB48:
movs r3, 0x28
b _080CEB86
.align 2, 0
-_080CEB64: .4byte gUnknown_03004B00
+_080CEB64: .4byte gBattleAnimArgs
_080CEB68: .4byte gUnknown_083D712C
_080CEB6C:
ldr r4, _080CEBBC @ =gUnknown_0202F7C9
@@ -9172,7 +9172,7 @@ sub_80CECE8: @ 80CECE8
lsrs r0, 24
cmp r0, 0x1
bne _080CED06
- ldr r1, _080CED70 @ =gUnknown_03004B00
+ ldr r1, _080CED70 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -9182,7 +9182,7 @@ _080CED06:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CED70 @ =gUnknown_03004B00
+ ldr r4, _080CED70 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -9226,7 +9226,7 @@ _080CED06:
bx r0
.align 2, 0
_080CED6C: .4byte gUnknown_0202F7C8
-_080CED70: .4byte gUnknown_03004B00
+_080CED70: .4byte gBattleAnimArgs
_080CED74: .4byte sub_80CED78
thumb_func_end sub_80CECE8
@@ -9297,7 +9297,7 @@ _080CEDEA:
sub_80CEDF0: @ 80CEDF0
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, _080CEE10 @ =gUnknown_03004B00
+ ldr r0, _080CEE10 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -9312,7 +9312,7 @@ sub_80CEDF0: @ 80CEDF0
movs r6, 0x10
b _080CEE16
.align 2, 0
-_080CEE10: .4byte gUnknown_03004B00
+_080CEE10: .4byte gBattleAnimArgs
_080CEE14:
ldr r6, _080CEE50 @ =0x0000fff0
_080CEE16:
@@ -9356,7 +9356,7 @@ sub_80CEE60: @ 80CEE60
ldrh r0, [r4, 0x22]
adds r0, 0x8
strh r0, [r4, 0x22]
- ldr r5, _080CEED8 @ =gUnknown_03004B00
+ ldr r5, _080CEED8 @ =gBattleAnimArgs
ldrb r1, [r5, 0x2]
adds r0, r4, 0
bl StartSpriteAnim
@@ -9409,7 +9409,7 @@ _080CEEAC:
pop {r0}
bx r0
.align 2, 0
-_080CEED8: .4byte gUnknown_03004B00
+_080CEED8: .4byte gBattleAnimArgs
_080CEEDC: .4byte gUnknown_083D712C
_080CEEE0: .4byte 0x0000ffe0
_080CEEE4: .4byte sub_80CEEE8
@@ -9514,7 +9514,7 @@ _080CEF90:
sub_80CEF9C: @ 80CEF9C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CEFB0 @ =gUnknown_03004B00
+ ldr r0, _080CEFB0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9522,7 +9522,7 @@ sub_80CEF9C: @ 80CEF9C
ldr r0, _080CEFB4 @ =gUnknown_0202F7C8
b _080CEFBA
.align 2, 0
-_080CEFB0: .4byte gUnknown_03004B00
+_080CEFB0: .4byte gBattleAnimArgs
_080CEFB4: .4byte gUnknown_0202F7C8
_080CEFB8:
ldr r0, _080CEFF8 @ =gUnknown_0202F7C9
@@ -9538,7 +9538,7 @@ _080CEFBA:
negs r1, r0
orrs r1, r0
lsrs r1, 31
- ldr r0, _080CEFFC @ =gUnknown_03004B00
+ ldr r0, _080CEFFC @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
strh r0, [r5, 0x2E]
adds r0, r1, 0x2
@@ -9555,7 +9555,7 @@ _080CEFBA:
bx r0
.align 2, 0
_080CEFF8: .4byte gUnknown_0202F7C9
-_080CEFFC: .4byte gUnknown_03004B00
+_080CEFFC: .4byte gBattleAnimArgs
_080CF000: .4byte sub_80CF008
_080CF004: .4byte sub_8078600
thumb_func_end sub_80CEF9C
@@ -9593,7 +9593,7 @@ _080CF03C: .4byte sub_8078600
sub_80CF040: @ 80CF040
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CF054 @ =gUnknown_03004B00
+ ldr r0, _080CF054 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9601,7 +9601,7 @@ sub_80CF040: @ 80CF040
ldr r0, _080CF058 @ =gUnknown_0202F7C8
b _080CF05E
.align 2, 0
-_080CF054: .4byte gUnknown_03004B00
+_080CF054: .4byte gBattleAnimArgs
_080CF058: .4byte gUnknown_0202F7C8
_080CF05C:
ldr r0, _080CF07C @ =gUnknown_0202F7C9
@@ -9657,7 +9657,7 @@ _080CF0B8: .4byte sub_80785E4
sub_80CF0BC: @ 80CF0BC
push {r4-r6,lr}
adds r4, r0, 0
- ldr r0, _080CF0D0 @ =gUnknown_03004B00
+ ldr r0, _080CF0D0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9665,7 +9665,7 @@ sub_80CF0BC: @ 80CF0BC
ldr r0, _080CF0D4 @ =gUnknown_0202F7C8
b _080CF0DA
.align 2, 0
-_080CF0D0: .4byte gUnknown_03004B00
+_080CF0D0: .4byte gBattleAnimArgs
_080CF0D4: .4byte gUnknown_0202F7C8
_080CF0D8:
ldr r0, _080CF12C @ =gUnknown_0202F7C9
@@ -9803,7 +9803,7 @@ _080CF1C4: .4byte gSineTable
sub_80CF1C8: @ 80CF1C8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CF1DC @ =gUnknown_03004B00
+ ldr r0, _080CF1DC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9811,7 +9811,7 @@ sub_80CF1C8: @ 80CF1C8
ldr r0, _080CF1E0 @ =gUnknown_0202F7C8
b _080CF1E6
.align 2, 0
-_080CF1DC: .4byte gUnknown_03004B00
+_080CF1DC: .4byte gBattleAnimArgs
_080CF1E0: .4byte gUnknown_0202F7C8
_080CF1E4:
ldr r0, _080CF208 @ =gUnknown_0202F7C9
@@ -9903,7 +9903,7 @@ sub_80CF280: @ 80CF280
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _080CF2C4 @ =gUnknown_03004B00
+ ldr r5, _080CF2C4 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -9931,7 +9931,7 @@ sub_80CF280: @ 80CF280
pop {r0}
bx r0
.align 2, 0
-_080CF2C4: .4byte gUnknown_03004B00
+_080CF2C4: .4byte gBattleAnimArgs
_080CF2C8: .4byte move_anim_8074EE0
_080CF2CC: .4byte sub_8078278
thumb_func_end sub_80CF280
@@ -9940,7 +9940,7 @@ _080CF2CC: .4byte sub_8078278
sub_80CF2D0: @ 80CF2D0
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CF2E4 @ =gUnknown_03004B00
+ ldr r0, _080CF2E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9948,7 +9948,7 @@ sub_80CF2D0: @ 80CF2D0
ldr r0, _080CF2E8 @ =gUnknown_0202F7C8
b _080CF2EE
.align 2, 0
-_080CF2E4: .4byte gUnknown_03004B00
+_080CF2E4: .4byte gBattleAnimArgs
_080CF2E8: .4byte gUnknown_0202F7C8
_080CF2EC:
ldr r0, _080CF308 @ =gUnknown_0202F7C9
@@ -10098,7 +10098,7 @@ sub_80CF3C4: @ 80CF3C4
lsls r0, 24
cmp r0, 0
beq _080CF41C
- ldr r0, _080CF418 @ =gUnknown_03004B00
+ ldr r0, _080CF418 @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -10109,9 +10109,9 @@ sub_80CF3C4: @ 80CF3C4
_080CF40C: .4byte gUnknown_0202F7C8
_080CF410: .4byte gUnknown_02024BE0
_080CF414: .4byte gUnknown_0202F7C9
-_080CF418: .4byte gUnknown_03004B00
+_080CF418: .4byte gBattleAnimArgs
_080CF41C:
- ldr r1, _080CF450 @ =gUnknown_03004B00
+ ldr r1, _080CF450 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -10138,7 +10138,7 @@ _080CF426:
pop {r0}
bx r0
.align 2, 0
-_080CF450: .4byte gUnknown_03004B00
+_080CF450: .4byte gBattleAnimArgs
_080CF454: .4byte sub_80CF374
thumb_func_end sub_80CF3C4
@@ -10148,7 +10148,7 @@ sub_80CF458: @ 80CF458
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080CF484 @ =gUnknown_03004B00
+ ldr r1, _080CF484 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -10164,7 +10164,7 @@ sub_80CF458: @ 80CF458
pop {r0}
bx r0
.align 2, 0
-_080CF484: .4byte gUnknown_03004B00
+_080CF484: .4byte gBattleAnimArgs
_080CF488: .4byte sub_80782D8
_080CF48C: .4byte sub_80CF490
thumb_func_end sub_80CF458
@@ -10373,7 +10373,7 @@ sub_80CF610: @ 80CF610
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _080CF658 @ =gUnknown_03004B00
+ ldr r5, _080CF658 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -10403,7 +10403,7 @@ sub_80CF610: @ 80CF610
strb r1, [r2]
b _080CF674
.align 2, 0
-_080CF658: .4byte gUnknown_03004B00
+_080CF658: .4byte gBattleAnimArgs
_080CF65C: .4byte gUnknown_0202F7C8
_080CF660:
movs r1, 0x4
@@ -10481,13 +10481,13 @@ sub_80CF6DC: @ 80CF6DC
lsls r0, 24
cmp r0, 0
beq _080CF700
- ldr r1, _080CF6FC @ =gUnknown_03004B00
+ ldr r1, _080CF6FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _080CF722
.align 2, 0
-_080CF6FC: .4byte gUnknown_03004B00
+_080CF6FC: .4byte gBattleAnimArgs
_080CF700:
ldr r0, _080CF7C8 @ =gUnknown_0202F7C8
ldrb r0, [r0]
@@ -10495,7 +10495,7 @@ _080CF700:
lsls r0, 24
cmp r0, 0
beq _080CF722
- ldr r1, _080CF7CC @ =gUnknown_03004B00
+ ldr r1, _080CF7CC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -10514,7 +10514,7 @@ _080CF722:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r6, _080CF7CC @ =gUnknown_03004B00
+ ldr r6, _080CF7CC @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
@@ -10584,7 +10584,7 @@ _080CF794:
bx r0
.align 2, 0
_080CF7C8: .4byte gUnknown_0202F7C8
-_080CF7CC: .4byte gUnknown_03004B00
+_080CF7CC: .4byte gBattleAnimArgs
_080CF7D0: .4byte gUnknown_0202F7C9
_080CF7D4: .4byte 0xffffa000
_080CF7D8: .4byte sub_8078B34
@@ -11043,7 +11043,7 @@ sub_80CFB04: @ 80CFB04
adds r0, r1
movs r1, 0x2
strh r1, [r0, 0x10]
- ldr r3, _080CFB64 @ =gUnknown_03004B00
+ ldr r3, _080CFB64 @ =gBattleAnimArgs
ldrh r0, [r3]
negs r0, r0
strh r0, [r3]
@@ -11060,7 +11060,7 @@ sub_80CFB04: @ 80CFB04
b _080CFBCA
.align 2, 0
_080CFB60: .4byte gTasks
-_080CFB64: .4byte gUnknown_03004B00
+_080CFB64: .4byte gBattleAnimArgs
_080CFB68:
movs r0, 0x1
orrs r0, r1
@@ -11084,7 +11084,7 @@ _080CFB70:
lsls r0, 3
adds r0, r1
strh r3, [r0, 0x10]
- ldr r2, _080CFBC0 @ =gUnknown_03004B00
+ ldr r2, _080CFBC0 @ =gBattleAnimArgs
ldrh r0, [r2]
negs r0, r0
strh r0, [r2]
@@ -11104,7 +11104,7 @@ _080CFB70:
_080CFBB4: .4byte gUnknown_02024A72
_080CFBB8: .4byte gUnknown_0202F7C9
_080CFBBC: .4byte gTasks
-_080CFBC0: .4byte gUnknown_03004B00
+_080CFBC0: .4byte gBattleAnimArgs
_080CFBC4:
movs r0, 0x1
orrs r0, r1
@@ -11131,7 +11131,7 @@ _080CFBCA:
lsrs r0, 24
strh r0, [r4, 0x1C]
mov r9, r0
- ldr r0, _080CFC2C @ =gUnknown_020239F8
+ ldr r0, _080CFC2C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -11154,7 +11154,7 @@ _080CFBCA:
.align 2, 0
_080CFC24: .4byte gUnknown_0202F7C8
_080CFC28: .4byte gTasks
-_080CFC2C: .4byte gUnknown_020239F8
+_080CFC2C: .4byte gBattleTypeFlags
_080CFC30: .4byte gUnknown_0202F7C9
_080CFC34:
mov r5, sp
@@ -11180,7 +11180,7 @@ _080CFC56:
lsls r1, 3
adds r1, r0
mov r2, sp
- ldr r3, _080CFC98 @ =gUnknown_03004B00
+ ldr r3, _080CFC98 @ =gBattleAnimArgs
ldrh r0, [r3]
ldrh r2, [r2]
adds r0, r2
@@ -11205,7 +11205,7 @@ _080CFC56:
.align 2, 0
_080CFC90: .4byte gUnknown_0202F7C9
_080CFC94: .4byte gTasks
-_080CFC98: .4byte gUnknown_03004B00
+_080CFC98: .4byte gBattleAnimArgs
_080CFC9C:
subs r0, r1, r2
_080CFC9E:
@@ -11213,7 +11213,7 @@ _080CFC9E:
lsrs r0, 16
lsls r4, r0, 16
asrs r4, 16
- ldr r5, _080CFD14 @ =gUnknown_03004B00
+ ldr r5, _080CFD14 @ =gBattleAnimArgs
ldrh r1, [r5, 0x4]
movs r0, 0x2
negs r0, r0
@@ -11263,7 +11263,7 @@ _080CFC9E:
strh r1, [r6, 0x18]
b _080CFD3C
.align 2, 0
-_080CFD14: .4byte gUnknown_03004B00
+_080CFD14: .4byte gBattleAnimArgs
_080CFD18: .4byte gTasks
_080CFD1C:
subs r4, r1
@@ -11286,7 +11286,7 @@ _080CFD3C:
adds r0, r3, r7
lsls r0, 3
adds r5, r0, r1
- ldr r4, _080CFD80 @ =gUnknown_03004B00
+ ldr r4, _080CFD80 @ =gBattleAnimArgs
ldrh r0, [r4, 0x6]
strh r0, [r5, 0xE]
ldrh r1, [r4, 0x8]
@@ -11314,7 +11314,7 @@ _080CFD3C:
b _080CFDC4
.align 2, 0
_080CFD7C: .4byte gTasks
-_080CFD80: .4byte gUnknown_03004B00
+_080CFD80: .4byte gBattleAnimArgs
_080CFD84: .4byte gUnknown_0202F7C9
_080CFD88: .4byte 0x0000ffc0
_080CFD8C:
@@ -11476,7 +11476,7 @@ sub_80CFE9C: @ 80CFE9C
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CFF40 @ =gUnknown_03004B00
+ ldr r4, _080CFF40 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
@@ -11537,7 +11537,7 @@ _080CFEE0:
bx r0
.align 2, 0
_080CFF3C: .4byte gUnknown_0202F7C9
-_080CFF40: .4byte gUnknown_03004B00
+_080CFF40: .4byte gBattleAnimArgs
_080CFF44: .4byte gUnknown_0202F7C8
_080CFF48: .4byte sub_8078C00
_080CFF4C: .4byte move_anim_8072740
@@ -11791,7 +11791,7 @@ sub_80D0118: @ 80D0118
adds r0, 0x10
strh r0, [r4, 0x22]
_080D0136:
- ldr r1, _080D016C @ =gUnknown_03004B00
+ ldr r1, _080D016C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
@@ -11815,7 +11815,7 @@ _080D0136:
bx r0
.align 2, 0
_080D0168: .4byte gUnknown_0202F7C8
-_080D016C: .4byte gUnknown_03004B00
+_080D016C: .4byte gBattleAnimArgs
_080D0170: .4byte sub_8078114
_080D0174: .4byte move_anim_8072740
thumb_func_end sub_80D0118
@@ -11831,7 +11831,7 @@ sub_80D0178: @ 80D0178
movs r0, 0x10
mov r8, r0
ldr r6, _080D01F8 @ =0x0000fff0
- ldr r0, _080D01FC @ =gUnknown_03004B00
+ ldr r0, _080D01FC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -11884,7 +11884,7 @@ _080D01A4:
.align 2, 0
_080D01F4: .4byte 0x0000ffe0
_080D01F8: .4byte 0x0000fff0
-_080D01FC: .4byte gUnknown_03004B00
+_080D01FC: .4byte gBattleAnimArgs
_080D0200: .4byte gUnknown_0202F7C9
_080D0204: .4byte sub_8078B34
_080D0208: .4byte sub_80D020C
@@ -11920,7 +11920,7 @@ sub_80D0228: @ 80D0228
movs r2, 0x10
mov r9, r2
ldr r6, _080D02C0 @ =0x0000fff0
- ldr r7, _080D02C4 @ =gUnknown_03004B00
+ ldr r7, _080D02C4 @ =gBattleAnimArgs
ldrh r1, [r7]
movs r2, 0
ldrsh r0, [r7, r2]
@@ -11983,7 +11983,7 @@ _080D025C:
.align 2, 0
_080D02BC: .4byte 0x0000ffe0
_080D02C0: .4byte 0x0000fff0
-_080D02C4: .4byte gUnknown_03004B00
+_080D02C4: .4byte gBattleAnimArgs
_080D02C8: .4byte gUnknown_0202F7C9
_080D02CC: .4byte sub_80D02D0
thumb_func_end sub_80D0228
@@ -12580,7 +12580,7 @@ sub_80D074C: @ 80D074C
lsls r0, 3
ldr r1, _080D0770 @ =gTasks
adds r4, r0, r1
- ldr r5, _080D0774 @ =gUnknown_03004B00
+ ldr r5, _080D0774 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -12590,7 +12590,7 @@ sub_80D074C: @ 80D074C
b _080D079E
.align 2, 0
_080D0770: .4byte gTasks
-_080D0774: .4byte gUnknown_03004B00
+_080D0774: .4byte gBattleAnimArgs
_080D0778:
ldrb r0, [r5]
bl obj_id_for_side_relative_to_move
@@ -12887,7 +12887,7 @@ _080D09BC: .4byte sub_8078394
sub_80D09C0: @ 80D09C0
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080D09D4 @ =gUnknown_03004B00
+ ldr r0, _080D09D4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -12895,7 +12895,7 @@ sub_80D09C0: @ 80D09C0
ldr r0, _080D09D8 @ =gUnknown_0202F7C8
b _080D09DE
.align 2, 0
-_080D09D4: .4byte gUnknown_03004B00
+_080D09D4: .4byte gBattleAnimArgs
_080D09D8: .4byte gUnknown_0202F7C8
_080D09DC:
ldr r0, _080D0A3C @ =gUnknown_0202F7C9
@@ -12907,7 +12907,7 @@ _080D09DE:
lsrs r0, 24
cmp r0, 0x1
bne _080D09F8
- ldr r1, _080D0A40 @ =gUnknown_03004B00
+ ldr r1, _080D0A40 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -12917,7 +12917,7 @@ _080D09F8:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D0A40 @ =gUnknown_03004B00
+ ldr r4, _080D0A40 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -12947,7 +12947,7 @@ _080D0A2A:
bx r0
.align 2, 0
_080D0A3C: .4byte gUnknown_0202F7C9
-_080D0A40: .4byte gUnknown_03004B00
+_080D0A40: .4byte gBattleAnimArgs
_080D0A44: .4byte move_anim_8074EE0
_080D0A48: .4byte sub_80785E4
thumb_func_end sub_80D09C0
@@ -13702,7 +13702,7 @@ sub_80D0FD8: @ 80D0FD8
mov r1, sp
adds r1, 0x2
strh r5, [r1]
- ldr r0, _080D0FFC @ =gUnknown_03004B00
+ ldr r0, _080D0FFC @ =gBattleAnimArgs
movs r3, 0x4
ldrsh r2, [r0, r3]
adds r7, r1, 0
@@ -13712,7 +13712,7 @@ sub_80D0FD8: @ 80D0FD8
ldr r0, _080D1000 @ =gUnknown_0202F7C8
b _080D1006
.align 2, 0
-_080D0FFC: .4byte gUnknown_03004B00
+_080D0FFC: .4byte gBattleAnimArgs
_080D1000: .4byte gUnknown_0202F7C8
_080D1004:
ldr r0, _080D1040 @ =gUnknown_0202F7C9
@@ -13722,7 +13722,7 @@ _080D1006:
movs r0, 0x1
adds r4, r0, 0
eors r4, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080D107E
@@ -13757,7 +13757,7 @@ _080D1048:
lsls r0, 24
cmp r0, 0
beq _080D1074
- ldr r2, _080D1070 @ =gUnknown_03004B00
+ ldr r2, _080D1070 @ =gBattleAnimArgs
mov r0, sp
ldrh r1, [r0]
subs r1, r4
@@ -13767,9 +13767,9 @@ _080D1048:
strh r0, [r2]
b _080D107E
.align 2, 0
-_080D1070: .4byte gUnknown_03004B00
+_080D1070: .4byte gBattleAnimArgs
_080D1074:
- ldr r1, _080D1090 @ =gUnknown_03004B00
+ ldr r1, _080D1090 @ =gBattleAnimArgs
mov r0, sp
ldrh r0, [r0]
subs r0, r4
@@ -13784,7 +13784,7 @@ _080D107E:
pop {r0}
bx r0
.align 2, 0
-_080D1090: .4byte gUnknown_03004B00
+_080D1090: .4byte gBattleAnimArgs
_080D1094: .4byte sub_80793C4
thumb_func_end sub_80D0FD8
@@ -13821,7 +13821,7 @@ sub_80D10B8: @ 80D10B8
mov r1, sp
adds r1, 0x2
strh r6, [r1]
- ldr r0, _080D10E4 @ =gUnknown_03004B00
+ ldr r0, _080D10E4 @ =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
@@ -13831,7 +13831,7 @@ sub_80D10B8: @ 80D10B8
ldr r0, _080D10EC @ =gUnknown_0202F7C9
b _080D10F6
.align 2, 0
-_080D10E4: .4byte gUnknown_03004B00
+_080D10E4: .4byte gBattleAnimArgs
_080D10E8: .4byte gUnknown_0202F7C8
_080D10EC: .4byte gUnknown_0202F7C9
_080D10F0:
@@ -13841,7 +13841,7 @@ _080D10F0:
_080D10F6:
ldrb r0, [r0]
mov r8, r0
- ldr r0, _080D1118 @ =gUnknown_03004B00
+ ldr r0, _080D1118 @ =gBattleAnimArgs
movs r3, 0xC
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -13854,7 +13854,7 @@ _080D10F6:
.align 2, 0
_080D1110: .4byte gUnknown_0202F7C9
_080D1114: .4byte gUnknown_0202F7C8
-_080D1118: .4byte gUnknown_03004B00
+_080D1118: .4byte gBattleAnimArgs
_080D111C:
movs r2, 0x2
mov r10, r2
@@ -13870,7 +13870,7 @@ _080D1124:
mov r1, r10
bl sub_8077ABC
lsls r0, 24
- ldr r1, _080D1164 @ =gUnknown_03004B00
+ ldr r1, _080D1164 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r1]
adds r0, r1
@@ -13890,7 +13890,7 @@ _080D1124:
adds r0, r4, r0
b _080D120A
.align 2, 0
-_080D1164: .4byte gUnknown_03004B00
+_080D1164: .4byte gBattleAnimArgs
_080D1168: .4byte gSprites
_080D116C: .4byte gUnknown_02024BE0
_080D1170:
@@ -13907,7 +13907,7 @@ _080D1180:
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r1, _080D11EC @ =gUnknown_03004B00
+ ldr r1, _080D11EC @ =gBattleAnimArgs
ldrh r1, [r1]
subs r0, r1
lsls r0, 16
@@ -13955,7 +13955,7 @@ _080D1180:
adds r0, 0x1
b _080D121A
.align 2, 0
-_080D11EC: .4byte gUnknown_03004B00
+_080D11EC: .4byte gBattleAnimArgs
_080D11F0: .4byte gMain
_080D11F4: .4byte 0x0000043d
_080D11F8: .4byte gSprites
@@ -13985,7 +13985,7 @@ _080D121A:
ldr r1, [sp, 0x4]
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D1270 @ =gUnknown_03004B00
+ ldr r4, _080D1270 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -14016,7 +14016,7 @@ _080D121A:
.align 2, 0
_080D1268: .4byte gSprites
_080D126C: .4byte gUnknown_02024BE0
-_080D1270: .4byte gUnknown_03004B00
+_080D1270: .4byte gBattleAnimArgs
_080D1274: .4byte gMain
_080D1278: .4byte 0x0000043d
_080D127C:
@@ -14042,7 +14042,7 @@ _080D129C:
beq _080D12C0
mov r3, sp
mov r2, sp
- ldr r1, _080D12BC @ =gUnknown_03004B00
+ ldr r1, _080D12BC @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
ldrh r2, [r2]
adds r0, r2
@@ -14050,11 +14050,11 @@ _080D129C:
adds r2, r1, 0
b _080D12CE
.align 2, 0
-_080D12BC: .4byte gUnknown_03004B00
+_080D12BC: .4byte gBattleAnimArgs
_080D12C0:
mov r3, sp
mov r0, sp
- ldr r2, _080D1310 @ =gUnknown_03004B00
+ ldr r2, _080D1310 @ =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r2, 0x6]
subs r0, r1
@@ -14092,7 +14092,7 @@ _080D12CE:
pop {r0}
bx r0
.align 2, 0
-_080D1310: .4byte gUnknown_03004B00
+_080D1310: .4byte gBattleAnimArgs
_080D1314: .4byte sub_80D1098
thumb_func_end sub_80D10B8
@@ -14110,7 +14110,7 @@ sub_80D1318: @ 80D1318
ldr r1, _080D135C @ =0x01010000
adds r0, r1
lsrs r0, 16
- ldr r1, _080D1360 @ =gUnknown_03004B00
+ ldr r1, _080D1360 @ =gBattleAnimArgs
ldrb r2, [r1, 0xA]
ldrh r3, [r1, 0x8]
movs r1, 0xF
@@ -14129,7 +14129,7 @@ _080D133E:
.align 2, 0
_080D1358: .4byte 0x000027db
_080D135C: .4byte 0x01010000
-_080D1360: .4byte gUnknown_03004B00
+_080D1360: .4byte gBattleAnimArgs
_080D1364: .4byte sub_80793C4
thumb_func_end sub_80D1318
@@ -14152,7 +14152,7 @@ _080D1384:
lsls r0, 2
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
- ldr r0, _080D13A4 @ =gUnknown_03004B00
+ ldr r0, _080D13A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, _080D13A8 @ =sub_80D13AC
@@ -14163,7 +14163,7 @@ _080D1384:
.align 2, 0
_080D139C: .4byte gUnknown_0202F7C8
_080D13A0: .4byte 0x0000ff60
-_080D13A4: .4byte gUnknown_03004B00
+_080D13A4: .4byte gBattleAnimArgs
_080D13A8: .4byte sub_80D13AC
thumb_func_end sub_80D1368
@@ -14391,7 +14391,7 @@ _080D1548: .4byte sub_80D154C
sub_80D154C: @ 80D154C
push {lr}
adds r3, r0, 0
- ldr r0, _080D1574 @ =gUnknown_03004B00
+ ldr r0, _080D1574 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D1578 @ =0x0000ffff
cmp r1, r0
@@ -14409,7 +14409,7 @@ sub_80D154C: @ 80D154C
ldr r0, _080D157C @ =sub_80D158C
b _080D1582
.align 2, 0
-_080D1574: .4byte gUnknown_03004B00
+_080D1574: .4byte gBattleAnimArgs
_080D1578: .4byte 0x0000ffff
_080D157C: .4byte sub_80D158C
_080D1580:
@@ -15299,12 +15299,12 @@ sub_80D1C08: @ 80D1C08
lsls r0, 24
cmp r0, 0
beq _080D1C28
- ldr r1, _080D1C74 @ =gUnknown_03004B00
+ ldr r1, _080D1C74 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D1C28:
- ldr r4, _080D1C74 @ =gUnknown_03004B00
+ ldr r4, _080D1C74 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
ldrb r0, [r6]
@@ -15337,7 +15337,7 @@ _080D1C28:
bx r0
.align 2, 0
_080D1C70: .4byte gUnknown_0202F7C8
-_080D1C74: .4byte gUnknown_03004B00
+_080D1C74: .4byte gBattleAnimArgs
_080D1C78: .4byte sub_8078B34
_080D1C7C: .4byte move_anim_8072740
thumb_func_end sub_80D1C08
@@ -15776,7 +15776,7 @@ sub_80D1FDC: @ 80D1FDC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2000
- ldr r1, _080D1FFC @ =gUnknown_03004B00
+ ldr r1, _080D1FFC @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
@@ -15785,7 +15785,7 @@ sub_80D1FDC: @ 80D1FDC
strh r0, [r4, 0x2E]
b _080D205C
.align 2, 0
-_080D1FFC: .4byte gUnknown_03004B00
+_080D1FFC: .4byte gBattleAnimArgs
_080D2000:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -15841,7 +15841,7 @@ _080D205C:
thumb_func_start sub_80D2064
sub_80D2064: @ 80D2064
push {lr}
- ldr r2, _080D2088 @ =gUnknown_03004B00
+ ldr r2, _080D2088 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
movs r1, 0xA0
@@ -15857,7 +15857,7 @@ sub_80D2064: @ 80D2064
pop {r0}
bx r0
.align 2, 0
-_080D2088: .4byte gUnknown_03004B00
+_080D2088: .4byte gBattleAnimArgs
_080D208C: .4byte sub_80782D8
_080D2090: .4byte sub_80D2094
thumb_func_end sub_80D2064
@@ -16640,7 +16640,7 @@ sub_80D26A4: @ 80D26A4
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r1, _080D26FC @ =gUnknown_03004B00
+ ldr r1, _080D26FC @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -16659,7 +16659,7 @@ sub_80D26A4: @ 80D26A4
bx r0
.align 2, 0
_080D26F8: .4byte gUnknown_0202F7C8
-_080D26FC: .4byte gUnknown_03004B00
+_080D26FC: .4byte gBattleAnimArgs
_080D2700: .4byte sub_80D2704
thumb_func_end sub_80D26A4
@@ -16759,7 +16759,7 @@ _080D2790:
movs r0, 0x1
strh r0, [r4, 0x38]
_080D27C0:
- ldr r0, _080D27D8 @ =gUnknown_03004B00
+ ldr r0, _080D27D8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D27DC @ =0x0000ffff
cmp r1, r0
@@ -16771,7 +16771,7 @@ _080D27D0:
pop {r0}
bx r0
.align 2, 0
-_080D27D8: .4byte gUnknown_03004B00
+_080D27D8: .4byte gBattleAnimArgs
_080D27DC: .4byte 0x0000ffff
thumb_func_end sub_80D2704
@@ -16792,7 +16792,7 @@ sub_80D27E0: @ 80D27E0
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080D282C @ =gUnknown_03004B00
+ ldr r4, _080D282C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -16810,7 +16810,7 @@ sub_80D27E0: @ 80D27E0
bx r0
.align 2, 0
_080D2828: .4byte gUnknown_0202F7C8
-_080D282C: .4byte gUnknown_03004B00
+_080D282C: .4byte gBattleAnimArgs
_080D2830: .4byte sub_80D2834
thumb_func_end sub_80D27E0
@@ -16900,7 +16900,7 @@ sub_80D28AC: @ 80D28AC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080D28FC @ =gUnknown_03004B00
+ ldr r4, _080D28FC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -16920,7 +16920,7 @@ sub_80D28AC: @ 80D28AC
bx r0
.align 2, 0
_080D28F8: .4byte gUnknown_0202F7C8
-_080D28FC: .4byte gUnknown_03004B00
+_080D28FC: .4byte gBattleAnimArgs
_080D2900: .4byte sub_80D287C
thumb_func_end sub_80D28AC
@@ -16964,7 +16964,7 @@ sub_80D2938: @ 80D2938
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2956
- ldr r0, _080D29C8 @ =gUnknown_03004B00
+ ldr r0, _080D29C8 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -17032,7 +17032,7 @@ _080D29C2:
pop {r0}
bx r0
.align 2, 0
-_080D29C8: .4byte gUnknown_03004B00
+_080D29C8: .4byte gBattleAnimArgs
thumb_func_end sub_80D2938
thumb_func_start sub_80D29CC
@@ -17101,7 +17101,7 @@ sub_80D2A38: @ 80D2A38
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2A5C
- ldr r1, _080D2A58 @ =gUnknown_03004B00
+ ldr r1, _080D2A58 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
@@ -17110,7 +17110,7 @@ sub_80D2A38: @ 80D2A38
strh r0, [r4, 0x2E]
b _080D2AB0
.align 2, 0
-_080D2A58: .4byte gUnknown_03004B00
+_080D2A58: .4byte gBattleAnimArgs
_080D2A5C:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -17167,7 +17167,7 @@ sub_80D2ABC: @ 80D2ABC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2AF6
- ldr r1, _080D2BB8 @ =gUnknown_03004B00
+ ldr r1, _080D2BB8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -17290,7 +17290,7 @@ _080D2B80:
strb r0, [r3]
b _080D2BD2
.align 2, 0
-_080D2BB8: .4byte gUnknown_03004B00
+_080D2BB8: .4byte gBattleAnimArgs
_080D2BBC: .4byte gUnknown_0202F7C9
_080D2BC0: .4byte 0x0000ffff
_080D2BC4:
@@ -17322,7 +17322,7 @@ sub_80D2BE8: @ 80D2BE8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2C1C
- ldr r1, _080D2C18 @ =gUnknown_03004B00
+ ldr r1, _080D2C18 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -17339,7 +17339,7 @@ sub_80D2BE8: @ 80D2BE8
strh r0, [r4, 0x2E]
b _080D2C30
.align 2, 0
-_080D2C18: .4byte gUnknown_03004B00
+_080D2C18: .4byte gBattleAnimArgs
_080D2C1C:
adds r0, r4, 0
adds r0, 0x3F
@@ -17360,7 +17360,7 @@ _080D2C30:
sub_80D2C38: @ 80D2C38
push {r4,r5,lr}
adds r5, r0, 0
- ldr r1, _080D2C50 @ =gUnknown_03004B00
+ ldr r1, _080D2C50 @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r0, 0
@@ -17369,7 +17369,7 @@ sub_80D2C38: @ 80D2C38
bl move_anim_8072740
b _080D2CB8
.align 2, 0
-_080D2C50: .4byte gUnknown_03004B00
+_080D2C50: .4byte gBattleAnimArgs
_080D2C54:
movs r2, 0
ldrsh r0, [r1, r2]
@@ -17394,7 +17394,7 @@ _080D2C66:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D2C98 @ =gUnknown_03004B00
+ ldr r0, _080D2C98 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -17405,7 +17405,7 @@ _080D2C66:
b _080D2CA0
.align 2, 0
_080D2C94: .4byte gUnknown_0202F7C9
-_080D2C98: .4byte gUnknown_03004B00
+_080D2C98: .4byte gBattleAnimArgs
_080D2C9C:
ldrh r0, [r5, 0x20]
subs r0, 0x20
@@ -17465,7 +17465,7 @@ sub_80D2CF8: @ 80D2CF8
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, _080D2D2C @ =gUnknown_03004B00
+ ldr r0, _080D2D2C @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -17485,7 +17485,7 @@ sub_80D2CF8: @ 80D2CF8
pop {r0}
bx r0
.align 2, 0
-_080D2D2C: .4byte gUnknown_03004B00
+_080D2D2C: .4byte gBattleAnimArgs
_080D2D30: .4byte gTasks
_080D2D34: .4byte gUnknown_083D7CA8
_080D2D38: .4byte sub_80D2D3C
@@ -17519,7 +17519,7 @@ _080D2D64: .4byte gTasks
sub_80D2D68: @ 80D2D68
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080D2D7C @ =gUnknown_03004B00
+ ldr r0, _080D2D7C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -17527,7 +17527,7 @@ sub_80D2D68: @ 80D2D68
ldr r0, _080D2D80 @ =gUnknown_0202F7C8
b _080D2D86
.align 2, 0
-_080D2D7C: .4byte gUnknown_03004B00
+_080D2D7C: .4byte gBattleAnimArgs
_080D2D80: .4byte gUnknown_0202F7C8
_080D2D84:
ldr r0, _080D2E1C @ =gUnknown_0202F7C9
@@ -17539,7 +17539,7 @@ _080D2D86:
lsrs r0, 24
cmp r0, 0x1
bne _080D2DA0
- ldr r1, _080D2E20 @ =gUnknown_03004B00
+ ldr r1, _080D2E20 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -17549,7 +17549,7 @@ _080D2DA0:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r7, _080D2E20 @ =gUnknown_03004B00
+ ldr r7, _080D2E20 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r3, [r7, 0x2]
adds r0, r3
@@ -17608,7 +17608,7 @@ _080D2DF0:
bx r0
.align 2, 0
_080D2E1C: .4byte gUnknown_0202F7C9
-_080D2E20: .4byte gUnknown_03004B00
+_080D2E20: .4byte gBattleAnimArgs
_080D2E24: .4byte 0x000003ff
_080D2E28: .4byte 0xfffffc00
_080D2E2C: .4byte sub_80D2E30
@@ -17654,7 +17654,7 @@ sub_80D2E68: @ 80D2E68
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2E8A
- ldr r0, _080D2EC4 @ =gUnknown_03004B00
+ ldr r0, _080D2EC4 @ =gBattleAnimArgs
ldrh r1, [r0]
movs r0, 0x78
subs r0, r1
@@ -17695,7 +17695,7 @@ _080D2EBC:
pop {r0}
bx r0
.align 2, 0
-_080D2EC4: .4byte gUnknown_03004B00
+_080D2EC4: .4byte gBattleAnimArgs
thumb_func_end sub_80D2E68
thumb_func_start sub_80D2EC8
@@ -17708,7 +17708,7 @@ sub_80D2EC8: @ 80D2EC8
bne _080D2EF6
movs r5, 0x78
strh r5, [r6, 0x20]
- ldr r4, _080D2F78 @ =gUnknown_03004B00
+ ldr r4, _080D2F78 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r4, r2]
lsrs r1, r0, 31
@@ -17785,7 +17785,7 @@ _080D2F72:
pop {r0}
bx r0
.align 2, 0
-_080D2F78: .4byte gUnknown_03004B00
+_080D2F78: .4byte gBattleAnimArgs
_080D2F7C: .4byte sub_80D2F80
thumb_func_end sub_80D2EC8
@@ -17876,7 +17876,7 @@ _080D300E:
sub_80D3014: @ 80D3014
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D3058 @ =gUnknown_020239F8
+ ldr r0, _080D3058 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -17905,7 +17905,7 @@ sub_80D3014: @ 80D3014
bl StartSpriteAffineAnim
b _080D3080
.align 2, 0
-_080D3058: .4byte gUnknown_020239F8
+_080D3058: .4byte gBattleTypeFlags
_080D305C: .4byte gUnknown_0202F7C8
_080D3060:
ldr r4, _080D30A0 @ =gUnknown_0202F7C8
@@ -17949,7 +17949,7 @@ sub_80D30AC: @ 80D30AC
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, _080D30C8 @ =gUnknown_03004B00
+ ldr r3, _080D30C8 @ =gBattleAnimArgs
ldr r1, _080D30CC @ =gUnknown_0202F7B4
ldr r1, [r1]
ldrb r2, [r1, 0x10]
@@ -17960,7 +17960,7 @@ sub_80D30AC: @ 80D30AC
pop {r0}
bx r0
.align 2, 0
-_080D30C8: .4byte gUnknown_03004B00
+_080D30C8: .4byte gBattleAnimArgs
_080D30CC: .4byte gUnknown_0202F7B4
thumb_func_end sub_80D30AC
@@ -17969,7 +17969,7 @@ update_fury_cutter_counter_copy: @ 80D30D0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080D30E8 @ =gUnknown_03004B00
+ ldr r2, _080D30E8 @ =gBattleAnimArgs
ldr r1, _080D30EC @ =gUnknown_0202F7B4
ldr r1, [r1]
ldrb r1, [r1, 0x10]
@@ -17978,7 +17978,7 @@ update_fury_cutter_counter_copy: @ 80D30D0
pop {r0}
bx r0
.align 2, 0
-_080D30E8: .4byte gUnknown_03004B00
+_080D30E8: .4byte gBattleAnimArgs
_080D30EC: .4byte gUnknown_0202F7B4
thumb_func_end update_fury_cutter_counter_copy
@@ -17997,7 +17997,7 @@ sub_80D30F0: @ 80D30F0
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080D3118
- ldr r1, _080D317C @ =gUnknown_03004B00
+ ldr r1, _080D317C @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r5, 0xA]
ldrh r0, [r1, 0x2]
@@ -18050,7 +18050,7 @@ _080D3172:
bx r0
.align 2, 0
_080D3178: .4byte gTasks
-_080D317C: .4byte gUnknown_03004B00
+_080D317C: .4byte gBattleAnimArgs
_080D3180: .4byte gSpriteTemplate_83D9130
thumb_func_end sub_80D30F0
@@ -18110,19 +18110,19 @@ sub_80D31C8: @ 80D31C8
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r4, _080D31F4 @ =gUnknown_03004B00
+ ldr r4, _080D31F4 @ =gBattleAnimArgs
ldrh r1, [r4]
subs r0, r1
b _080D320A
.align 2, 0
_080D31F0: .4byte gUnknown_0202F7C8
-_080D31F4: .4byte gUnknown_03004B00
+_080D31F4: .4byte gBattleAnimArgs
_080D31F8:
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D32D0 @ =gUnknown_03004B00
+ ldr r4, _080D32D0 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -18148,12 +18148,12 @@ _080D320A:
lsls r0, 24
cmp r0, 0
beq _080D3240
- ldr r1, _080D32D0 @ =gUnknown_03004B00
+ ldr r1, _080D32D0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D3240:
- ldr r5, _080D32D0 @ =gUnknown_03004B00
+ ldr r5, _080D32D0 @ =gBattleAnimArgs
ldrh r0, [r5, 0xC]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
@@ -18176,7 +18176,7 @@ _080D3240:
adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, _080D32DC @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -18219,7 +18219,7 @@ _080D3240:
pop {r0}
bx r0
.align 2, 0
-_080D32D0: .4byte gUnknown_03004B00
+_080D32D0: .4byte gBattleAnimArgs
_080D32D4: .4byte gUnknown_0202F7C8
_080D32D8: .4byte gUnknown_0202F7C9
_080D32DC: .4byte SpriteCallbackDummy
@@ -18345,7 +18345,7 @@ sub_80D33B4: @ 80D33B4
lsls r0, 24
cmp r0, 0
beq _080D33E4
- ldr r1, _080D33E0 @ =gUnknown_03004B00
+ ldr r1, _080D33E0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
lsls r0, 16
@@ -18354,9 +18354,9 @@ sub_80D33B4: @ 80D33B4
b _080D33EA
.align 2, 0
_080D33DC: .4byte gUnknown_0202F7C8
-_080D33E0: .4byte gUnknown_03004B00
+_080D33E0: .4byte gBattleAnimArgs
_080D33E4:
- ldr r0, _080D3440 @ =gUnknown_03004B00
+ ldr r0, _080D3440 @ =gBattleAnimArgs
ldrh r6, [r0, 0x4]
adds r7, r0, 0
_080D33EA:
@@ -18399,7 +18399,7 @@ _080D33EA:
pop {r0}
bx r0
.align 2, 0
-_080D3440: .4byte gUnknown_03004B00
+_080D3440: .4byte gBattleAnimArgs
_080D3444: .4byte gUnknown_0202F7C9
_080D3448: .4byte sub_80D344C
thumb_func_end sub_80D33B4
@@ -18408,7 +18408,7 @@ _080D3448: .4byte sub_80D344C
sub_80D344C: @ 80D344C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D3488 @ =gUnknown_03004B00
+ ldr r0, _080D3488 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D348C @ =0x0000ffff
cmp r1, r0
@@ -18435,7 +18435,7 @@ _080D3480:
pop {r0}
bx r0
.align 2, 0
-_080D3488: .4byte gUnknown_03004B00
+_080D3488: .4byte gBattleAnimArgs
_080D348C: .4byte 0x0000ffff
thumb_func_end sub_80D344C
@@ -18449,7 +18449,7 @@ sub_80D3490: @ 80D3490
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r0, _080D34C8 @ =gUnknown_03004B00
+ ldr r0, _080D34C8 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x8]
ldr r0, _080D34CC @ =0x0000279c
@@ -18467,7 +18467,7 @@ sub_80D3490: @ 80D3490
bx r0
.align 2, 0
_080D34C4: .4byte gTasks
-_080D34C8: .4byte gUnknown_03004B00
+_080D34C8: .4byte gBattleAnimArgs
_080D34CC: .4byte 0x0000279c
_080D34D0: .4byte sub_80D34D4
thumb_func_end sub_80D3490
@@ -18574,7 +18574,7 @@ sub_80D3554: @ 80D3554
lsls r0, 8
bl __divsi3
strh r0, [r5, 0x38]
- ldr r0, _080D35C0 @ =gUnknown_03004B00
+ ldr r0, _080D35C0 @ =gBattleAnimArgs
ldrh r2, [r0, 0x6]
strh r2, [r5, 0x3C]
ldrh r1, [r0, 0xE]
@@ -18591,7 +18591,7 @@ sub_80D3554: @ 80D3554
b _080D35C8
.align 2, 0
_080D35BC: .4byte gUnknown_0202F7C9
-_080D35C0: .4byte gUnknown_03004B00
+_080D35C0: .4byte gBattleAnimArgs
_080D35C4:
lsls r0, r1, 8
strh r0, [r5, 0x3A]
@@ -18661,7 +18661,7 @@ sub_80D3630: @ 80D3630
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r3, _080D3654 @ =gUnknown_03004B00
+ ldr r3, _080D3654 @ =gBattleAnimArgs
ldrh r0, [r3]
movs r2, 0
strh r0, [r1, 0x8]
@@ -18671,7 +18671,7 @@ sub_80D3630: @ 80D3630
bx lr
.align 2, 0
_080D3650: .4byte gTasks
-_080D3654: .4byte gUnknown_03004B00
+_080D3654: .4byte gBattleAnimArgs
_080D3658: .4byte sub_80D365C
thumb_func_end sub_80D3630
@@ -18680,7 +18680,7 @@ sub_80D365C: @ 80D365C
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080D3690 @ =gUnknown_03004B00
+ ldr r2, _080D3690 @ =gBattleAnimArgs
ldrh r0, [r2, 0xE]
adds r0, 0x3
movs r1, 0xFF
@@ -18703,7 +18703,7 @@ _080D368A:
pop {r0}
bx r0
.align 2, 0
-_080D3690: .4byte gUnknown_03004B00
+_080D3690: .4byte gBattleAnimArgs
_080D3694: .4byte gTasks
thumb_func_end sub_80D365C
@@ -18798,7 +18798,7 @@ sub_80D3728: @ 80D3728
lsls r0, 24
cmp r4, r0
bne _080D3772
- ldr r4, _080D37F0 @ =gUnknown_03004B00
+ ldr r4, _080D37F0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
negs r0, r0
@@ -18820,7 +18820,7 @@ _080D376A:
negs r0, r0
strh r0, [r4]
_080D3772:
- ldr r5, _080D37F0 @ =gUnknown_03004B00
+ ldr r5, _080D37F0 @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r5, r1]
movs r1, 0xFF
@@ -18879,7 +18879,7 @@ _080D37AA:
.align 2, 0
_080D37E8: .4byte gUnknown_0202F7C8
_080D37EC: .4byte gUnknown_0202F7C9
-_080D37F0: .4byte gUnknown_03004B00
+_080D37F0: .4byte gBattleAnimArgs
_080D37F4: .4byte sub_8078B34
_080D37F8: .4byte move_anim_8072740
thumb_func_end sub_80D3728
@@ -18890,7 +18890,7 @@ sub_80D37FC: @ 80D37FC
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D382C @ =gUnknown_03004B00
+ ldr r0, _080D382C @ =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r4, 0x2E]
ldrh r0, [r0, 0x4]
@@ -18909,7 +18909,7 @@ sub_80D37FC: @ 80D37FC
pop {r0}
bx r0
.align 2, 0
-_080D382C: .4byte gUnknown_03004B00
+_080D382C: .4byte gBattleAnimArgs
_080D3830: .4byte sub_8078B34
_080D3834: .4byte move_anim_8072740
thumb_func_end sub_80D37FC
@@ -18918,7 +18918,7 @@ _080D3834: .4byte move_anim_8072740
sub_80D3838: @ 80D3838
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D3850 @ =gUnknown_03004B00
+ ldr r0, _080D3850 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -18928,13 +18928,13 @@ sub_80D3838: @ 80D3838
bl sub_8078764
b _080D385C
.align 2, 0
-_080D3850: .4byte gUnknown_03004B00
+_080D3850: .4byte gBattleAnimArgs
_080D3854:
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
_080D385C:
- ldr r0, _080D386C @ =gUnknown_03004B00
+ ldr r0, _080D386C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, _080D3870 @ =sub_80D3874
@@ -18943,7 +18943,7 @@ _080D385C:
pop {r0}
bx r0
.align 2, 0
-_080D386C: .4byte gUnknown_03004B00
+_080D386C: .4byte gBattleAnimArgs
_080D3870: .4byte sub_80D3874
thumb_func_end sub_80D3838
@@ -19119,7 +19119,7 @@ _080D39CE:
ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf
ldr r1, [sp]
bl LZDecompressVram
- ldr r0, _080D39F8 @ =gUnknown_03004B00
+ ldr r0, _080D39F8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -19134,7 +19134,7 @@ _080D39CE:
.align 2, 0
_080D39F0: .4byte gUnknown_08E70F0C
_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
-_080D39F8: .4byte gUnknown_03004B00
+_080D39F8: .4byte gBattleAnimArgs
_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
_080D3A00:
ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal
@@ -20761,7 +20761,7 @@ _080D467A:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D46F4
- ldr r5, _080D4708 @ =gUnknown_03004B00
+ ldr r5, _080D4708 @ =gBattleAnimArgs
movs r1, 0x1
mov r8, r1
mov r2, r8
@@ -20824,7 +20824,7 @@ _080D46F4:
strh r0, [r4, 0x8]
b _080D4722
.align 2, 0
-_080D4708: .4byte gUnknown_03004B00
+_080D4708: .4byte gBattleAnimArgs
_080D470C: .4byte sub_80E1864
_080D4710: .4byte gUnknown_0202F7B2
_080D4714:
@@ -21456,7 +21456,7 @@ _080D4BEC: .4byte sub_80D4988
thumb_func_start sub_80D4BF0
sub_80D4BF0: @ 80D4BF0
- ldr r2, _080D4C10 @ =gUnknown_03004B00
+ ldr r2, _080D4C10 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
ldrh r1, [r2, 0x2]
@@ -21473,7 +21473,7 @@ sub_80D4BF0: @ 80D4BF0
str r1, [r0, 0x1C]
bx lr
.align 2, 0
-_080D4C10: .4byte gUnknown_03004B00
+_080D4C10: .4byte gBattleAnimArgs
_080D4C14: .4byte sub_80D4C18
thumb_func_end sub_80D4BF0
@@ -21569,7 +21569,7 @@ sub_80D4CA4: @ 80D4CA4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r1, _080D4CE4 @ =gUnknown_03004B00
+ ldr r1, _080D4CE4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0x6]
@@ -21581,7 +21581,7 @@ sub_80D4CA4: @ 80D4CA4
bx r0
.align 2, 0
_080D4CE0: .4byte gUnknown_0202F7C9
-_080D4CE4: .4byte gUnknown_03004B00
+_080D4CE4: .4byte gBattleAnimArgs
_080D4CE8: .4byte sub_80D4CEC
thumb_func_end sub_80D4CA4
@@ -21833,7 +21833,7 @@ _080D4EBA:
sub_80D4ED8: @ 80D4ED8
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D4F0C @ =gUnknown_03004B00
+ ldr r0, _080D4F0C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
@@ -21856,7 +21856,7 @@ sub_80D4ED8: @ 80D4ED8
pop {r0}
bx r0
.align 2, 0
-_080D4F0C: .4byte gUnknown_03004B00
+_080D4F0C: .4byte gBattleAnimArgs
_080D4F10: .4byte move_anim_8072740
_080D4F14: .4byte sub_8078174
thumb_func_end sub_80D4ED8
@@ -21865,7 +21865,7 @@ _080D4F14: .4byte sub_8078174
sub_80D4F18: @ 80D4F18
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D4F50 @ =gUnknown_03004B00
+ ldr r5, _080D4F50 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -21889,7 +21889,7 @@ sub_80D4F18: @ 80D4F18
pop {r0}
bx r0
.align 2, 0
-_080D4F50: .4byte gUnknown_03004B00
+_080D4F50: .4byte gBattleAnimArgs
_080D4F54: .4byte sub_8078394
_080D4F58: .4byte move_anim_8072740
thumb_func_end sub_80D4F18
@@ -21905,7 +21905,7 @@ sub_80D4F5C: @ 80D4F5C
lsls r0, 24
cmp r0, 0
beq _080D4F98
- ldr r2, _080D4F94 @ =gUnknown_03004B00
+ ldr r2, _080D4F94 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -21921,9 +21921,9 @@ sub_80D4F5C: @ 80D4F5C
b _080D4FAE
.align 2, 0
_080D4F90: .4byte gUnknown_0202F7C8
-_080D4F94: .4byte gUnknown_03004B00
+_080D4F94: .4byte gBattleAnimArgs
_080D4F98:
- ldr r1, _080D4FC4 @ =gUnknown_03004B00
+ ldr r1, _080D4FC4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -21947,7 +21947,7 @@ _080D4FAE:
pop {r0}
bx r0
.align 2, 0
-_080D4FC4: .4byte gUnknown_03004B00
+_080D4FC4: .4byte gBattleAnimArgs
_080D4FC8: .4byte sub_80D5038
thumb_func_end sub_80D4F5C
@@ -21961,7 +21961,7 @@ sub_80D4FCC: @ 80D4FCC
lsls r0, 24
cmp r0, 0
beq _080D5000
- ldr r2, _080D4FFC @ =gUnknown_03004B00
+ ldr r2, _080D4FFC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -21976,9 +21976,9 @@ sub_80D4FCC: @ 80D4FCC
b _080D5018
.align 2, 0
_080D4FF8: .4byte gUnknown_0202F7C8
-_080D4FFC: .4byte gUnknown_03004B00
+_080D4FFC: .4byte gBattleAnimArgs
_080D5000:
- ldr r1, _080D5030 @ =gUnknown_03004B00
+ ldr r1, _080D5030 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -22003,7 +22003,7 @@ _080D5018:
pop {r0}
bx r0
.align 2, 0
-_080D5030: .4byte gUnknown_03004B00
+_080D5030: .4byte gBattleAnimArgs
_080D5034: .4byte sub_80D5038
thumb_func_end sub_80D4FCC
@@ -22053,7 +22053,7 @@ sub_80D5074: @ 80D5074
lsls r0, 24
cmp r0, 0
beq _080D50A0
- ldr r0, _080D509C @ =gUnknown_03004B00
+ ldr r0, _080D509C @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -22061,9 +22061,9 @@ sub_80D5074: @ 80D5074
b _080D50B2
.align 2, 0
_080D5098: .4byte gUnknown_0202F7C8
-_080D509C: .4byte gUnknown_03004B00
+_080D509C: .4byte gBattleAnimArgs
_080D50A0:
- ldr r0, _080D50E0 @ =gUnknown_03004B00
+ ldr r0, _080D50E0 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -22096,7 +22096,7 @@ _080D50B2:
pop {r0}
bx r0
.align 2, 0
-_080D50E0: .4byte gUnknown_03004B00
+_080D50E0: .4byte gBattleAnimArgs
_080D50E4: .4byte sub_80D50E8
thumb_func_end sub_80D5074
@@ -22232,7 +22232,7 @@ sub_80D51A8: @ 80D51A8
cmp r1, r0
bne _080D51EE
_080D51E6:
- ldr r1, _080D5208 @ =gUnknown_03004B00
+ ldr r1, _080D5208 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -22247,13 +22247,13 @@ _080D51EE:
.align 2, 0
_080D5200: .4byte gUnknown_0202F7C8
_080D5204: .4byte gUnknown_0202F7C9
-_080D5208: .4byte gUnknown_03004B00
+_080D5208: .4byte gBattleAnimArgs
_080D520C: .4byte sub_8079534
thumb_func_end sub_80D51A8
thumb_func_start sub_80D5210
sub_80D5210: @ 80D5210
- ldr r2, _080D5224 @ =gUnknown_03004B00
+ ldr r2, _080D5224 @ =gBattleAnimArgs
ldrh r1, [r2]
negs r1, r1
strh r1, [r2]
@@ -22264,7 +22264,7 @@ sub_80D5210: @ 80D5210
str r1, [r0, 0x1C]
bx lr
.align 2, 0
-_080D5224: .4byte gUnknown_03004B00
+_080D5224: .4byte gBattleAnimArgs
_080D5228: .4byte sub_8079534
thumb_func_end sub_80D5210
@@ -22274,7 +22274,7 @@ sub_80D522C: @ 80D522C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D524C @ =gUnknown_03004B00
+ ldr r0, _080D524C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
movs r1, 0
strh r0, [r4, 0x3C]
@@ -22285,7 +22285,7 @@ sub_80D522C: @ 80D522C
pop {r0}
bx r0
.align 2, 0
-_080D524C: .4byte gUnknown_03004B00
+_080D524C: .4byte gBattleAnimArgs
_080D5250: .4byte sub_80D5254
thumb_func_end sub_80D522C
@@ -22440,7 +22440,7 @@ sub_80D5348: @ 80D5348
sub_80D5374: @ 80D5374
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080D53A8 @ =gUnknown_03004B00
+ ldr r1, _080D53A8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -22464,7 +22464,7 @@ sub_80D5374: @ 80D5374
pop {r0}
bx r0
.align 2, 0
-_080D53A8: .4byte gUnknown_03004B00
+_080D53A8: .4byte gBattleAnimArgs
_080D53AC: .4byte move_anim_8072740
_080D53B0: .4byte sub_8078364
thumb_func_end sub_80D5374
@@ -22475,7 +22475,7 @@ sub_80D53B4: @ 80D53B4
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080D53E8 @ =gUnknown_03004B00
+ ldr r1, _080D53E8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
@@ -22495,7 +22495,7 @@ sub_80D53B4: @ 80D53B4
pop {r0}
bx r0
.align 2, 0
-_080D53E8: .4byte gUnknown_03004B00
+_080D53E8: .4byte gBattleAnimArgs
_080D53EC: .4byte sub_80782D8
_080D53F0: .4byte sub_80D53F4
thumb_func_end sub_80D53B4
@@ -23313,7 +23313,7 @@ _080D5A1C:
thumb_func_start sub_80D5A20
sub_80D5A20: @ 80D5A20
push {r4,r5,lr}
- ldr r3, _080D5A64 @ =gUnknown_03004B00
+ ldr r3, _080D5A64 @ =gBattleAnimArgs
ldrh r1, [r3]
movs r2, 0
strh r1, [r0, 0x20]
@@ -23346,7 +23346,7 @@ sub_80D5A20: @ 80D5A20
pop {r0}
bx r0
.align 2, 0
-_080D5A64: .4byte gUnknown_03004B00
+_080D5A64: .4byte gBattleAnimArgs
_080D5A68: .4byte 0x000003ff
_080D5A6C: .4byte 0xfffffc00
_080D5A70: .4byte sub_80D5A74
@@ -23460,7 +23460,7 @@ _080D5B28:
adds r0, r5, 0
movs r1, 0
bl sub_80787B0
- ldr r4, _080D5B50 @ =gUnknown_03004B00
+ ldr r4, _080D5B50 @ =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAnim
@@ -23475,7 +23475,7 @@ _080D5B28:
movs r0, 0x4
b _080D5B5A
.align 2, 0
-_080D5B50: .4byte gUnknown_03004B00
+_080D5B50: .4byte gBattleAnimArgs
_080D5B54: .4byte gUnknown_0202F7C8
_080D5B58:
ldr r0, _080D5B78 @ =0x0000fffc
@@ -23668,7 +23668,7 @@ sub_80D5CC0: @ 80D5CC0
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D5CD8
- ldr r0, _080D5D4C @ =gUnknown_03004B00
+ ldr r0, _080D5D4C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x30]
adds r0, r1, 0x1
@@ -23729,7 +23729,7 @@ _080D5CD8:
strb r0, [r4, 0x5]
b _080D5DA0
.align 2, 0
-_080D5D4C: .4byte gUnknown_03004B00
+_080D5D4C: .4byte gBattleAnimArgs
_080D5D50: .4byte gMain
_080D5D54: .4byte 0x0000043d
_080D5D58: .4byte gUnknown_0202F7C9
@@ -24173,7 +24173,7 @@ sub_80D6080: @ 80D6080
mov r0, sp
ldrb r0, [r0, 0x8]
lsls r0, 4
- ldr r1, _080D60B0 @ =gUnknown_03004B00
+ ldr r1, _080D60B0 @ =gBattleAnimArgs
ldrb r2, [r1]
ldrh r3, [r1, 0x2]
movs r1, 0x10
@@ -24185,7 +24185,7 @@ sub_80D6080: @ 80D6080
pop {r0}
bx r0
.align 2, 0
-_080D60B0: .4byte gUnknown_03004B00
+_080D60B0: .4byte gBattleAnimArgs
thumb_func_end sub_80D6080
thumb_func_start sub_80D60B4
@@ -24205,7 +24205,7 @@ sub_80D60B4: @ 80D60B4
movs r3, 0x8
ldrsh r0, [r2, r3]
mov r9, r1
- ldr r4, _080D6110 @ =gUnknown_03004B00
+ ldr r4, _080D6110 @ =gBattleAnimArgs
mov r8, r4
cmp r0, 0
bne _080D60EA
@@ -24236,7 +24236,7 @@ _080D60EA:
b _080D6126
.align 2, 0
_080D610C: .4byte gTasks
-_080D6110: .4byte gUnknown_03004B00
+_080D6110: .4byte gBattleAnimArgs
_080D6114: .4byte gUnknown_02024BE0
_080D6118: .4byte gUnknown_0202F7C9
_080D611C: .4byte gUnknown_083D9794
@@ -24337,7 +24337,7 @@ sub_80D61C8: @ 80D61C8
lsls r0, 24
cmp r0, 0
beq _080D61F0
- ldr r0, _080D61EC @ =gUnknown_03004B00
+ ldr r0, _080D61EC @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -24345,9 +24345,9 @@ sub_80D61C8: @ 80D61C8
b _080D61FC
.align 2, 0
_080D61E8: .4byte gUnknown_0202F7C8
-_080D61EC: .4byte gUnknown_03004B00
+_080D61EC: .4byte gBattleAnimArgs
_080D61F0:
- ldr r1, _080D6210 @ =gUnknown_03004B00
+ ldr r1, _080D6210 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -24364,7 +24364,7 @@ _080D61FC:
pop {r0}
bx r0
.align 2, 0
-_080D6210: .4byte gUnknown_03004B00
+_080D6210: .4byte gBattleAnimArgs
_080D6214: .4byte sub_80D6218
thumb_func_end sub_80D61C8
@@ -24395,7 +24395,7 @@ sub_80D6234: @ 80D6234
lsls r0, 24
cmp r0, 0
beq _080D625C
- ldr r0, _080D6258 @ =gUnknown_03004B00
+ ldr r0, _080D6258 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r0, [r0]
subs r1, r0
@@ -24403,9 +24403,9 @@ sub_80D6234: @ 80D6234
b _080D6266
.align 2, 0
_080D6254: .4byte gUnknown_0202F7C8
-_080D6258: .4byte gUnknown_03004B00
+_080D6258: .4byte gBattleAnimArgs
_080D625C:
- ldr r0, _080D6270 @ =gUnknown_03004B00
+ ldr r0, _080D6270 @ =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -24417,7 +24417,7 @@ _080D6266:
pop {r0}
bx r0
.align 2, 0
-_080D6270: .4byte gUnknown_03004B00
+_080D6270: .4byte gBattleAnimArgs
_080D6274: .4byte sub_80D6278
thumb_func_end sub_80D6234
@@ -24461,7 +24461,7 @@ sub_80D6294: @ 80D6294
lsls r0, 24
cmp r0, 0
beq _080D62E4
- ldr r2, _080D62E0 @ =gUnknown_03004B00
+ ldr r2, _080D62E0 @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -24474,9 +24474,9 @@ sub_80D6294: @ 80D6294
.align 2, 0
_080D62D8: .4byte gUnknown_0202F7C9
_080D62DC: .4byte gUnknown_0202F7C8
-_080D62E0: .4byte gUnknown_03004B00
+_080D62E0: .4byte gBattleAnimArgs
_080D62E4:
- ldr r0, _080D631C @ =gUnknown_03004B00
+ ldr r0, _080D631C @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r5, 0x20]
adds r1, r2
@@ -24504,7 +24504,7 @@ _080D62F8:
pop {r0}
bx r0
.align 2, 0
-_080D631C: .4byte gUnknown_03004B00
+_080D631C: .4byte gBattleAnimArgs
_080D6320: .4byte move_anim_8074EE0
_080D6324: .4byte sub_8078114
thumb_func_end sub_80D6294
@@ -24513,7 +24513,7 @@ _080D6324: .4byte sub_8078114
sub_80D6328: @ 80D6328
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080D6340 @ =gUnknown_03004B00
+ ldr r0, _080D6340 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -24524,7 +24524,7 @@ sub_80D6328: @ 80D6328
beq _080D634E
b _080D63A0
.align 2, 0
-_080D6340: .4byte gUnknown_03004B00
+_080D6340: .4byte gBattleAnimArgs
_080D6344:
cmp r0, 0x2
beq _080D6358
@@ -24575,7 +24575,7 @@ _080D63A0:
_080D63A2:
ldrb r4, [r0]
_080D63A4:
- ldr r0, _080D63C8 @ =gUnknown_03004B00
+ ldr r0, _080D63C8 @ =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
@@ -24591,7 +24591,7 @@ _080D63A4:
b _080D63DE
.align 2, 0
_080D63C4: .4byte gUnknown_0202F7C9
-_080D63C8: .4byte gUnknown_03004B00
+_080D63C8: .4byte gBattleAnimArgs
_080D63CC:
adds r0, r4, 0
movs r1, 0x2
@@ -24607,7 +24607,7 @@ _080D63DE:
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r7, _080D647C @ =gSineTable
- ldr r6, _080D6480 @ =gUnknown_03004B00
+ ldr r6, _080D6480 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
lsls r0, 1
@@ -24682,7 +24682,7 @@ _080D6442:
bx r0
.align 2, 0
_080D647C: .4byte gSineTable
-_080D6480: .4byte gUnknown_03004B00
+_080D6480: .4byte gBattleAnimArgs
_080D6484: .4byte gOamMatrices
_080D6488: .4byte sub_80DA48C
thumb_func_end sub_80D6328
@@ -24693,7 +24693,7 @@ sub_80D648C: @ 80D648C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080D6500 @ =gUnknown_03004B00
+ ldr r5, _080D6500 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -24743,7 +24743,7 @@ sub_80D648C: @ 80D648C
pop {r0}
bx r0
.align 2, 0
-_080D6500: .4byte gUnknown_03004B00
+_080D6500: .4byte gBattleAnimArgs
_080D6504: .4byte gUnknown_0202F7C9
_080D6508: .4byte 0x000003ff
_080D650C: .4byte 0xfffffc00
@@ -24873,7 +24873,7 @@ sub_80D65DC: @ 80D65DC
cmp r0, 0
bne _080D6606
_080D65FE:
- ldr r1, _080D6650 @ =gUnknown_03004B00
+ ldr r1, _080D6650 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -24883,7 +24883,7 @@ _080D6606:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D6650 @ =gUnknown_03004B00
+ ldr r4, _080D6650 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -24910,7 +24910,7 @@ _080D6606:
_080D6644: .4byte gMain
_080D6648: .4byte 0x0000043d
_080D664C: .4byte gUnknown_0202F7C9
-_080D6650: .4byte gUnknown_03004B00
+_080D6650: .4byte gBattleAnimArgs
_080D6654: .4byte sub_80D658C
thumb_func_end sub_80D65DC
@@ -24918,7 +24918,7 @@ _080D6654: .4byte sub_80D658C
sub_80D6658: @ 80D6658
push {r4-r6,lr}
adds r5, r0, 0
- ldr r1, _080D6674 @ =gUnknown_03004B00
+ ldr r1, _080D6674 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
movs r2, 0xE
@@ -24931,7 +24931,7 @@ sub_80D6658: @ 80D6658
ldr r0, _080D6678 @ =gUnknown_0202F7C9
b _080D667E
.align 2, 0
-_080D6674: .4byte gUnknown_03004B00
+_080D6674: .4byte gBattleAnimArgs
_080D6678: .4byte gUnknown_0202F7C9
_080D667C:
ldr r0, _080D670C @ =gUnknown_0202F7C8
@@ -24951,7 +24951,7 @@ _080D667E:
cmp r0, 0
bne _080D66A4
_080D669C:
- ldr r1, _080D6718 @ =gUnknown_03004B00
+ ldr r1, _080D6718 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -24960,7 +24960,7 @@ _080D66A4:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D6718 @ =gUnknown_03004B00
+ ldr r4, _080D6718 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -25008,7 +25008,7 @@ _080D66A4:
_080D670C: .4byte gUnknown_0202F7C8
_080D6710: .4byte gMain
_080D6714: .4byte 0x0000043d
-_080D6718: .4byte gUnknown_03004B00
+_080D6718: .4byte gBattleAnimArgs
_080D671C: .4byte 0x00007fff
_080D6720: .4byte 0x000003ff
_080D6724: .4byte 0xfffffc00
@@ -25081,7 +25081,7 @@ sub_80D679C: @ 80D679C
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
- ldr r3, _080D67D8 @ =gUnknown_03004B00
+ ldr r3, _080D67D8 @ =gBattleAnimArgs
movs r5, 0x6
ldrsh r0, [r3, r5]
lsls r0, 2
@@ -25104,7 +25104,7 @@ sub_80D679C: @ 80D679C
movs r0, 0x10
b _080D67F2
.align 2, 0
-_080D67D8: .4byte gUnknown_03004B00
+_080D67D8: .4byte gBattleAnimArgs
_080D67DC: .4byte 0x000003ff
_080D67E0: .4byte 0xfffffc00
_080D67E4:
@@ -25119,7 +25119,7 @@ _080D67F2:
orrs r1, r0
strb r1, [r4, 0x3]
_080D67F6:
- ldr r0, _080D6810 @ =gUnknown_03004B00
+ ldr r0, _080D6810 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080D6814 @ =sub_80782D8
@@ -25131,7 +25131,7 @@ _080D67F6:
pop {r0}
bx r0
.align 2, 0
-_080D6810: .4byte gUnknown_03004B00
+_080D6810: .4byte gBattleAnimArgs
_080D6814: .4byte sub_80782D8
_080D6818: .4byte move_anim_8072740
thumb_func_end sub_80D679C
@@ -25152,7 +25152,7 @@ sub_80D681C: @ 80D681C
lsls r4, 3
adds r4, r1
lsls r0, 24
- ldr r5, _080D686C @ =gUnknown_03004B00
+ ldr r5, _080D686C @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
@@ -25175,7 +25175,7 @@ sub_80D681C: @ 80D681C
.align 2, 0
_080D6864: .4byte gUnknown_0202F7C9
_080D6868: .4byte gTasks
-_080D686C: .4byte gUnknown_03004B00
+_080D686C: .4byte gBattleAnimArgs
_080D6870: .4byte sub_80D6874
thumb_func_end sub_80D681C
@@ -25439,7 +25439,7 @@ _080D6A66:
sub_80D6A6C: @ 80D6A6C
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080D6AD4 @ =gUnknown_03004B00
+ ldr r0, _080D6AD4 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -25489,7 +25489,7 @@ sub_80D6A6C: @ 80D6A6C
pop {r0}
bx r0
.align 2, 0
-_080D6AD4: .4byte gUnknown_03004B00
+_080D6AD4: .4byte gBattleAnimArgs
_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
_080D6ADC: .4byte gSprites
_080D6AE0: .4byte 0x000003ff
@@ -25551,7 +25551,7 @@ sub_80D6B3C: @ 80D6B3C
lsls r1, 3
ldr r0, _080D6B5C @ =gTasks
adds r5, r1, r0
- ldr r0, _080D6B60 @ =gUnknown_03004B00
+ ldr r0, _080D6B60 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -25560,7 +25560,7 @@ sub_80D6B3C: @ 80D6B3C
b _080D6B6A
.align 2, 0
_080D6B5C: .4byte gTasks
-_080D6B60: .4byte gUnknown_03004B00
+_080D6B60: .4byte gBattleAnimArgs
_080D6B64: .4byte gUnknown_0202F7C8
_080D6B68:
ldr r4, _080D6BAC @ =gUnknown_0202F7C9
@@ -25577,7 +25577,7 @@ _080D6B6A:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x26]
- ldr r2, _080D6BB0 @ =gUnknown_03004B00
+ ldr r2, _080D6BB0 @ =gBattleAnimArgs
ldrh r0, [r2, 0x2]
movs r1, 0
strh r0, [r5, 0x14]
@@ -25597,7 +25597,7 @@ _080D6B6A:
bx r0
.align 2, 0
_080D6BAC: .4byte gUnknown_0202F7C9
-_080D6BB0: .4byte gUnknown_03004B00
+_080D6BB0: .4byte gBattleAnimArgs
_080D6BB4: .4byte sub_80D6BB8
thumb_func_end sub_80D6B3C
@@ -25785,7 +25785,7 @@ _080D6D14: .4byte sub_80D6CCC
sub_80D6D18: @ 80D6D18
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D6D2C @ =gUnknown_03004B00
+ ldr r0, _080D6D2C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -25793,7 +25793,7 @@ sub_80D6D18: @ 80D6D18
ldr r4, _080D6D30 @ =gUnknown_0202F7C8
b _080D6D36
.align 2, 0
-_080D6D2C: .4byte gUnknown_03004B00
+_080D6D2C: .4byte gBattleAnimArgs
_080D6D30: .4byte gUnknown_0202F7C8
_080D6D34:
ldr r4, _080D6D64 @ =gUnknown_0202F7C9
@@ -25828,7 +25828,7 @@ _080D6D6C: .4byte sub_80785E4
sub_80D6D70: @ 80D6D70
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D6D84 @ =gUnknown_03004B00
+ ldr r0, _080D6D84 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -25836,7 +25836,7 @@ sub_80D6D70: @ 80D6D70
ldr r4, _080D6D88 @ =gUnknown_0202F7C8
b _080D6D8E
.align 2, 0
-_080D6D84: .4byte gUnknown_03004B00
+_080D6D84: .4byte gBattleAnimArgs
_080D6D88: .4byte gUnknown_0202F7C8
_080D6D8C:
ldr r4, _080D6DC8 @ =gUnknown_0202F7C9
@@ -25853,7 +25853,7 @@ _080D6D8E:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D6DCC @ =gUnknown_03004B00
+ ldr r1, _080D6DCC @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x24]
ldrh r0, [r1, 0x4]
@@ -25868,7 +25868,7 @@ _080D6D8E:
bx r0
.align 2, 0
_080D6DC8: .4byte gUnknown_0202F7C9
-_080D6DCC: .4byte gUnknown_03004B00
+_080D6DCC: .4byte gBattleAnimArgs
_080D6DD0: .4byte move_anim_8072740
_080D6DD4: .4byte sub_8078600
thumb_func_end sub_80D6D70
@@ -26206,7 +26206,7 @@ _080D703C:
_080D7052:
movs r6, 0
strh r1, [r5, 0xA]
- ldr r0, _080D7080 @ =gUnknown_03004B00
+ ldr r0, _080D7080 @ =gBattleAnimArgs
movs r1, 0
ldrsh r2, [r0, r1]
adds r3, r0, 0
@@ -26226,7 +26226,7 @@ _080D7052:
b _080D70F0
.align 2, 0
_080D707C: .4byte gUnknown_0202F7C8
-_080D7080: .4byte gUnknown_03004B00
+_080D7080: .4byte gBattleAnimArgs
_080D7084: .4byte 0x0000fff0
_080D7088:
ldrb r0, [r4]
@@ -27146,7 +27146,7 @@ sub_80D7704: @ 80D7704
bl sub_8077ABC
lsls r0, 24
lsrs r6, r0, 24
- ldr r1, _080D781C @ =gUnknown_03004B00
+ ldr r1, _080D781C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r1]
@@ -27223,7 +27223,7 @@ _080D77DE:
movs r2, 0x98
lsls r2, 1
mov r12, r2
- ldr r1, _080D781C @ =gUnknown_03004B00
+ ldr r1, _080D781C @ =gBattleAnimArgs
mov r10, r1
cmp r0, r12
bhi _080D784A
@@ -27237,7 +27237,7 @@ _080D780C: .4byte 0x000003ff
_080D7810: .4byte 0xfffffc00
_080D7814: .4byte gUnknown_0202F7C9
_080D7818: .4byte gUnknown_0202F7C8
-_080D781C: .4byte gUnknown_03004B00
+_080D781C: .4byte gBattleAnimArgs
_080D7820:
lsls r1, r3, 16
asrs r1, 16
@@ -27351,7 +27351,7 @@ _080D78E6:
sub_80D78EC: @ 80D78EC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D7920 @ =gUnknown_03004B00
+ ldr r0, _080D7920 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
@@ -27374,7 +27374,7 @@ sub_80D78EC: @ 80D78EC
pop {r0}
bx r0
.align 2, 0
-_080D7920: .4byte gUnknown_03004B00
+_080D7920: .4byte gBattleAnimArgs
_080D7924: .4byte move_anim_8072740
_080D7928: .4byte sub_8078174
thumb_func_end sub_80D78EC
@@ -27398,7 +27398,7 @@ sub_80D792C: @ 80D792C
lsls r0, 24
cmp r0, 0
beq _080D796C
- ldr r0, _080D7968 @ =gUnknown_03004B00
+ ldr r0, _080D7968 @ =gBattleAnimArgs
ldrh r1, [r4, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
@@ -27407,9 +27407,9 @@ sub_80D792C: @ 80D792C
.align 2, 0
_080D7960: .4byte gUnknown_0202F7C9
_080D7964: .4byte gUnknown_0202F7C8
-_080D7968: .4byte gUnknown_03004B00
+_080D7968: .4byte gBattleAnimArgs
_080D796C:
- ldr r0, _080D79A4 @ =gUnknown_03004B00
+ ldr r0, _080D79A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r1, [r4, 0x32]
adds r0, r1
@@ -27420,7 +27420,7 @@ _080D7976:
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r1, _080D79A4 @ =gUnknown_03004B00
+ ldr r1, _080D79A4 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r1, 0x6]
adds r0, r2
@@ -27436,7 +27436,7 @@ _080D7976:
pop {r0}
bx r0
.align 2, 0
-_080D79A4: .4byte gUnknown_03004B00
+_080D79A4: .4byte gBattleAnimArgs
_080D79A8: .4byte gUnknown_0202F7C9
_080D79AC: .4byte move_anim_8072740
_080D79B0: .4byte sub_8078B34
@@ -27446,7 +27446,7 @@ _080D79B0: .4byte sub_8078B34
sub_80D79B4: @ 80D79B4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D79CC @ =gUnknown_03004B00
+ ldr r5, _080D79CC @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -27456,7 +27456,7 @@ sub_80D79B4: @ 80D79B4
bl sub_8078764
b _080D7A06
.align 2, 0
-_080D79CC: .4byte gUnknown_03004B00
+_080D79CC: .4byte gBattleAnimArgs
_080D79D0:
ldr r0, _080D7A18 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -27540,7 +27540,7 @@ sub_80D7A64: @ 80D7A64
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080D7AAC @ =gUnknown_03004B00
+ ldr r6, _080D7AAC @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -27568,7 +27568,7 @@ sub_80D7A64: @ 80D7A64
strh r0, [r5, 0x36]
b _080D7AC6
.align 2, 0
-_080D7AAC: .4byte gUnknown_03004B00
+_080D7AAC: .4byte gBattleAnimArgs
_080D7AB0: .4byte gUnknown_0202F7C9
_080D7AB4:
ldr r0, _080D7AE0 @ =gUnknown_0202F7C9
@@ -27586,7 +27586,7 @@ _080D7AC6:
lsls r0, 24
cmp r0, 0
beq _080D7AEC
- ldr r0, _080D7AE8 @ =gUnknown_03004B00
+ ldr r0, _080D7AE8 @ =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
@@ -27595,9 +27595,9 @@ _080D7AC6:
.align 2, 0
_080D7AE0: .4byte gUnknown_0202F7C9
_080D7AE4: .4byte gUnknown_0202F7C8
-_080D7AE8: .4byte gUnknown_03004B00
+_080D7AE8: .4byte gBattleAnimArgs
_080D7AEC:
- ldr r0, _080D7B94 @ =gUnknown_03004B00
+ ldr r0, _080D7B94 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
@@ -27684,7 +27684,7 @@ _080D7B76:
pop {r0}
bx r0
.align 2, 0
-_080D7B94: .4byte gUnknown_03004B00
+_080D7B94: .4byte gBattleAnimArgs
_080D7B98: .4byte sub_8078D8C
_080D7B9C: .4byte sub_80D7BA0
thumb_func_end sub_80D7A64
@@ -27855,7 +27855,7 @@ sub_80D7CD4: @ 80D7CD4
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080D7D18 @ =gUnknown_03004B00
+ ldr r1, _080D7D18 @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -27881,7 +27881,7 @@ sub_80D7CD4: @ 80D7CD4
strh r0, [r5, 0x36]
b _080D7D32
.align 2, 0
-_080D7D18: .4byte gUnknown_03004B00
+_080D7D18: .4byte gBattleAnimArgs
_080D7D1C: .4byte gUnknown_0202F7C9
_080D7D20:
ldr r0, _080D7D50 @ =gUnknown_0202F7C9
@@ -27899,7 +27899,7 @@ _080D7D32:
lsls r0, 24
cmp r0, 0
beq _080D7D5C
- ldr r0, _080D7D58 @ =gUnknown_03004B00
+ ldr r0, _080D7D58 @ =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r2, [r0, 0x4]
subs r1, r2
@@ -27909,9 +27909,9 @@ _080D7D32:
.align 2, 0
_080D7D50: .4byte gUnknown_0202F7C9
_080D7D54: .4byte gUnknown_0202F7C8
-_080D7D58: .4byte gUnknown_03004B00
+_080D7D58: .4byte gBattleAnimArgs
_080D7D5C:
- ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
@@ -27981,7 +27981,7 @@ _080D7DCE:
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
- ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
ldr r6, _080D7E14 @ =sub_80D7E18
mov r3, sp
adds r2, r7, 0
@@ -28004,7 +28004,7 @@ _080D7DEE:
pop {r0}
bx r0
.align 2, 0
-_080D7E10: .4byte gUnknown_03004B00
+_080D7E10: .4byte gBattleAnimArgs
_080D7E14: .4byte sub_80D7E18
thumb_func_end sub_80D7CD4
@@ -28076,7 +28076,7 @@ sub_80D7E88: @ 80D7E88
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D7EF4
- ldr r5, _080D7EA8 @ =gUnknown_03004B00
+ ldr r5, _080D7EA8 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -28086,7 +28086,7 @@ sub_80D7E88: @ 80D7E88
bl sub_8078764
b _080D7EE2
.align 2, 0
-_080D7EA8: .4byte gUnknown_03004B00
+_080D7EA8: .4byte gBattleAnimArgs
_080D7EAC:
ldr r0, _080D7EEC @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -28142,7 +28142,7 @@ _080D7F08:
sub_80D7F10: @ 80D7F10
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080D7F30 @ =gUnknown_03004B00
+ ldr r6, _080D7F30 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -28156,7 +28156,7 @@ sub_80D7F10: @ 80D7F10
bl sub_80787B0
b _080D7F72
.align 2, 0
-_080D7F30: .4byte gUnknown_03004B00
+_080D7F30: .4byte gBattleAnimArgs
_080D7F34:
ldr r4, _080D7F5C @ =gUnknown_0202F7C8
ldrb r0, [r4]
@@ -28183,7 +28183,7 @@ _080D7F60:
adds r0, r1
_080D7F66:
strh r0, [r5, 0x20]
- ldr r0, _080D7F78 @ =gUnknown_03004B00
+ ldr r0, _080D7F78 @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
@@ -28192,7 +28192,7 @@ _080D7F72:
ldr r0, _080D7F7C @ =gUnknown_0202F7C8
b _080D7FD0
.align 2, 0
-_080D7F78: .4byte gUnknown_03004B00
+_080D7F78: .4byte gBattleAnimArgs
_080D7F7C: .4byte gUnknown_0202F7C8
_080D7F80:
movs r1, 0xA
@@ -28229,7 +28229,7 @@ _080D7FBC:
adds r0, r1
_080D7FC2:
strh r0, [r5, 0x20]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
@@ -28239,12 +28239,12 @@ _080D7FCE:
_080D7FD0:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080D7FE8
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080D7FF4
@@ -28252,7 +28252,7 @@ _080D7FE8:
movs r0, 0x20
b _080D7FF6
.align 2, 0
-_080D7FEC: .4byte gUnknown_03004B00
+_080D7FEC: .4byte gBattleAnimArgs
_080D7FF0: .4byte gUnknown_0202F7C9
_080D7FF4:
movs r0, 0x40
@@ -28268,7 +28268,7 @@ _080D7FF6:
adds r0, 0x8
strh r0, [r5, 0x22]
_080D800C:
- ldr r1, _080D8040 @ =gUnknown_03004B00
+ ldr r1, _080D8040 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -28292,7 +28292,7 @@ _080D800C:
bx r0
.align 2, 0
_080D803C: .4byte gUnknown_0202F7C9
-_080D8040: .4byte gUnknown_03004B00
+_080D8040: .4byte gBattleAnimArgs
_080D8044: .4byte sub_80D8048
thumb_func_end sub_80D7F10
@@ -29126,7 +29126,7 @@ sub_80D8700: @ 80D8700
mov r7, r8
push {r7}
adds r5, r0, 0
- ldr r6, _080D87E8 @ =gUnknown_03004B00
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
ldr r0, _080D87EC @ =gUnknown_0202F7C8
@@ -29209,7 +29209,7 @@ _080D8794:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r6, _080D87E8 @ =gUnknown_03004B00
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -29235,7 +29235,7 @@ _080D8794:
movs r1, 0x3
b _080D8824
.align 2, 0
-_080D87E8: .4byte gUnknown_03004B00
+_080D87E8: .4byte gBattleAnimArgs
_080D87EC: .4byte gUnknown_0202F7C8
_080D87F0: .4byte gUnknown_0202F7C9
_080D87F4: .4byte gUnknown_02024A72
@@ -30086,7 +30086,7 @@ _080D8E6A:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080D8ED0 @ =gUnknown_03004B00
+ ldr r6, _080D8ED0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080D8ED4 @ =gUnknown_0202F7C8
@@ -30127,7 +30127,7 @@ _080D8E92:
bx r0
.align 2, 0
_080D8ECC: .4byte gUnknown_0202F7B4
-_080D8ED0: .4byte gUnknown_03004B00
+_080D8ED0: .4byte gBattleAnimArgs
_080D8ED4: .4byte gUnknown_0202F7C8
_080D8ED8: .4byte gUnknown_0202F7C9
_080D8EDC: .4byte sub_80D8EE0
@@ -30256,7 +30256,7 @@ sub_80D8FC0: @ 80D8FC0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, _080D8FE8 @ =gUnknown_03004B00
+ ldr r1, _080D8FE8 @ =gBattleAnimArgs
ldrb r3, [r1]
lsls r3, 1
adds r3, r1
@@ -30273,7 +30273,7 @@ sub_80D8FC0: @ 80D8FC0
pop {r0}
bx r0
.align 2, 0
-_080D8FE8: .4byte gUnknown_03004B00
+_080D8FE8: .4byte gBattleAnimArgs
_080D8FEC: .4byte gUnknown_0202F7B4
thumb_func_end sub_80D8FC0
@@ -30281,7 +30281,7 @@ _080D8FEC: .4byte gUnknown_0202F7B4
unc_080B08A0: @ 80D8FF0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9020 @ =gUnknown_03004B00
+ ldr r5, _080D9020 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -30301,7 +30301,7 @@ unc_080B08A0: @ 80D8FF0
pop {r0}
bx r0
.align 2, 0
-_080D9020: .4byte gUnknown_03004B00
+_080D9020: .4byte gBattleAnimArgs
_080D9024: .4byte sub_80782D8
_080D9028: .4byte move_anim_8072740
thumb_func_end unc_080B08A0
@@ -30310,7 +30310,7 @@ _080D9028: .4byte move_anim_8072740
sub_80D902C: @ 80D902C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9070 @ =gUnknown_03004B00
+ ldr r4, _080D9070 @ =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x1
@@ -30328,7 +30328,7 @@ sub_80D902C: @ 80D902C
negs r0, r0
strh r0, [r4, 0x6]
_080D9054:
- ldr r4, _080D9070 @ =gUnknown_03004B00
+ ldr r4, _080D9070 @ =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r0, r5, 0
bl StartSpriteAnim
@@ -30340,7 +30340,7 @@ _080D9054:
pop {r0}
bx r0
.align 2, 0
-_080D9070: .4byte gUnknown_03004B00
+_080D9070: .4byte gBattleAnimArgs
_080D9074: .4byte gUnknown_0202F7C8
thumb_func_end sub_80D902C
@@ -30352,7 +30352,7 @@ sub_80D9078: @ 80D9078
lsls r0, 24
cmp r0, 0
beq _080D9094
- ldr r0, _080D90A0 @ =gUnknown_03004B00
+ ldr r0, _080D90A0 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -30366,14 +30366,14 @@ _080D9094:
pop {r0}
bx r0
.align 2, 0
-_080D90A0: .4byte gUnknown_03004B00
+_080D90A0: .4byte gBattleAnimArgs
thumb_func_end sub_80D9078
thumb_func_start sub_80D90A4
sub_80D90A4: @ 80D90A4
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D90C4 @ =gUnknown_03004B00
+ ldr r4, _080D90C4 @ =gBattleAnimArgs
ldrb r1, [r4, 0x8]
bl StartSpriteAnim
movs r1, 0x6
@@ -30385,13 +30385,13 @@ sub_80D90A4: @ 80D90A4
bl sub_80787B0
b _080D90D0
.align 2, 0
-_080D90C4: .4byte gUnknown_03004B00
+_080D90C4: .4byte gBattleAnimArgs
_080D90C8:
adds r0, r5, 0
movs r1, 0x1
bl sub_8078764
_080D90D0:
- ldr r0, _080D90E8 @ =gUnknown_03004B00
+ ldr r0, _080D90E8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080D90EC @ =sub_80782D8
@@ -30403,7 +30403,7 @@ _080D90D0:
pop {r0}
bx r0
.align 2, 0
-_080D90E8: .4byte gUnknown_03004B00
+_080D90E8: .4byte gBattleAnimArgs
_080D90EC: .4byte sub_80782D8
_080D90F0: .4byte move_anim_8072740
thumb_func_end sub_80D90A4
@@ -30415,7 +30415,7 @@ sub_80D90F4: @ 80D90F4
mov r6, r8
push {r6,r7}
adds r5, r0, 0
- ldr r0, _080D9110 @ =gUnknown_03004B00
+ ldr r0, _080D9110 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
mov r9, r0
@@ -30424,7 +30424,7 @@ sub_80D90F4: @ 80D90F4
ldr r0, _080D9114 @ =gUnknown_0202F7C8
b _080D911A
.align 2, 0
-_080D9110: .4byte gUnknown_03004B00
+_080D9110: .4byte gBattleAnimArgs
_080D9114: .4byte gUnknown_0202F7C8
_080D9118:
ldr r0, _080D9260 @ =gUnknown_0202F7C9
@@ -30646,7 +30646,7 @@ sub_80D92D0: @ 80D92D0
bl sub_8078764
movs r0, 0x1E
strh r0, [r4, 0x2E]
- ldr r0, _080D92F0 @ =gUnknown_03004B00
+ ldr r0, _080D92F0 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -30656,7 +30656,7 @@ sub_80D92D0: @ 80D92D0
strh r0, [r4, 0x32]
b _080D9306
.align 2, 0
-_080D92F0: .4byte gUnknown_03004B00
+_080D92F0: .4byte gBattleAnimArgs
_080D92F4:
ldrh r0, [r4, 0x20]
adds r0, 0x14
@@ -30744,7 +30744,7 @@ sub_80D9378: @ 80D9378
lsrs r0, 24
cmp r0, 0x1
bhi _080D93A4
- ldr r1, _080D93FC @ =gUnknown_03004B00
+ ldr r1, _080D93FC @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
@@ -30759,12 +30759,12 @@ _080D93A4:
lsls r0, 24
cmp r0, 0
beq _080D93C2
- ldr r1, _080D93FC @ =gUnknown_03004B00
+ ldr r1, _080D93FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D93C2:
- ldr r4, _080D93FC @ =gUnknown_03004B00
+ ldr r4, _080D93FC @ =gBattleAnimArgs
ldrh r0, [r4, 0x6]
movs r5, 0
strh r0, [r6, 0x2E]
@@ -30791,7 +30791,7 @@ _080D93C2:
.align 2, 0
_080D93F4: .4byte gUnknown_0202F7C8
_080D93F8: .4byte gUnknown_0202F7C9
-_080D93FC: .4byte gUnknown_03004B00
+_080D93FC: .4byte gBattleAnimArgs
_080D9400: .4byte sub_80D9404
thumb_func_end sub_80D9378
@@ -30832,7 +30832,7 @@ sub_80D943C: @ 80D943C
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r5, _080D9468 @ =gUnknown_03004B00
+ ldr r5, _080D9468 @ =gBattleAnimArgs
ldrb r1, [r5, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
@@ -30847,7 +30847,7 @@ sub_80D943C: @ 80D943C
pop {r0}
bx r0
.align 2, 0
-_080D9468: .4byte gUnknown_03004B00
+_080D9468: .4byte gBattleAnimArgs
_080D946C: .4byte sub_80782D8
_080D9470: .4byte sub_80D9474
thumb_func_end sub_80D943C
@@ -30885,7 +30885,7 @@ sub_80D94A8: @ 80D94A8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D94C4 @ =gUnknown_03004B00
+ ldr r0, _080D94C4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080D94C8 @ =sub_80D94CC
@@ -30894,7 +30894,7 @@ sub_80D94A8: @ 80D94A8
pop {r0}
bx r0
.align 2, 0
-_080D94C4: .4byte gUnknown_03004B00
+_080D94C4: .4byte gBattleAnimArgs
_080D94C8: .4byte sub_80D94CC
thumb_func_end sub_80D94A8
@@ -30968,7 +30968,7 @@ sub_80D9540: @ 80D9540
adds r0, r4, 0
movs r1, 0x1
bl sub_8078764
- ldr r1, _080D9568 @ =gUnknown_03004B00
+ ldr r1, _080D9568 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
@@ -30978,7 +30978,7 @@ sub_80D9540: @ 80D9540
strh r0, [r4, 0x2E]
b _080D95C8
.align 2, 0
-_080D9568: .4byte gUnknown_03004B00
+_080D9568: .4byte gBattleAnimArgs
_080D956C:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -31035,7 +31035,7 @@ _080D95C8:
sub_80D95D0: @ 80D95D0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D95E4 @ =gUnknown_03004B00
+ ldr r0, _080D95E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31043,7 +31043,7 @@ sub_80D95D0: @ 80D95D0
ldr r4, _080D95E8 @ =gUnknown_0202F7C8
b _080D95EE
.align 2, 0
-_080D95E4: .4byte gUnknown_03004B00
+_080D95E4: .4byte gBattleAnimArgs
_080D95E8: .4byte gUnknown_0202F7C8
_080D95EC:
ldr r4, _080D9634 @ =gUnknown_0202F7C9
@@ -31060,7 +31060,7 @@ _080D95EE:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D9638 @ =gUnknown_03004B00
+ ldr r1, _080D9638 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -31083,7 +31083,7 @@ _080D95EE:
bx r0
.align 2, 0
_080D9634: .4byte gUnknown_0202F7C9
-_080D9638: .4byte gUnknown_03004B00
+_080D9638: .4byte gBattleAnimArgs
_080D963C: .4byte sub_80D9640
thumb_func_end sub_80D95D0
@@ -31160,7 +31160,7 @@ _080D96B4: .4byte 0x0000fffe
sub_80D96B8: @ 80D96B8
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080D96DC @ =gUnknown_03004B00
+ ldr r6, _080D96DC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -31175,7 +31175,7 @@ sub_80D96B8: @ 80D96B8
adds r0, r2
b _080D96F6
.align 2, 0
-_080D96DC: .4byte gUnknown_03004B00
+_080D96DC: .4byte gBattleAnimArgs
_080D96E0: .4byte gUnknown_0202F7C8
_080D96E4:
ldr r4, _080D9740 @ =gUnknown_0202F7C9
@@ -31199,7 +31199,7 @@ _080D96F6:
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
- ldr r3, _080D9744 @ =gUnknown_03004B00
+ ldr r3, _080D9744 @ =gBattleAnimArgs
movs r4, 0x2
ldrsh r0, [r3, r4]
lsls r0, 4
@@ -31225,7 +31225,7 @@ _080D96F6:
b _080D978A
.align 2, 0
_080D9740: .4byte gUnknown_0202F7C9
-_080D9744: .4byte gUnknown_03004B00
+_080D9744: .4byte gBattleAnimArgs
_080D9748: .4byte 0x000003ff
_080D974C: .4byte 0xfffffc00
_080D9750:
@@ -31304,7 +31304,7 @@ _080D97C8:
sub_80D97CC: @ 80D97CC
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D9818 @ =gUnknown_03004B00
+ ldr r0, _080D9818 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31337,7 +31337,7 @@ sub_80D97CC: @ 80D97CC
ldr r0, _080D9824 @ =gUnknown_0202F7C9
b _080D9844
.align 2, 0
-_080D9818: .4byte gUnknown_03004B00
+_080D9818: .4byte gBattleAnimArgs
_080D981C: .4byte gUnknown_02024C07
_080D9820: .4byte gUnknown_0202F7C8
_080D9824: .4byte gUnknown_0202F7C9
@@ -31432,7 +31432,7 @@ _080D98D4: .4byte sub_8078BB8
sub_80D98D8: @ 80D98D8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9924 @ =gUnknown_03004B00
+ ldr r4, _080D9924 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x20]
movs r2, 0x78
@@ -31467,7 +31467,7 @@ sub_80D98D8: @ 80D98D8
pop {r0}
bx r0
.align 2, 0
-_080D9924: .4byte gUnknown_03004B00
+_080D9924: .4byte gBattleAnimArgs
_080D9928: .4byte 0x000003ff
_080D992C: .4byte 0xfffffc00
_080D9930: .4byte sub_80D9934
@@ -31609,7 +31609,7 @@ _080D9A34:
sub_80D9A38: @ 80D9A38
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D9A6C @ =gUnknown_03004B00
+ ldr r0, _080D9A6C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31632,7 +31632,7 @@ sub_80D9A38: @ 80D9A38
ldr r0, _080D9A78 @ =gUnknown_0202F7C8
b _080D9A82
.align 2, 0
-_080D9A6C: .4byte gUnknown_03004B00
+_080D9A6C: .4byte gBattleAnimArgs
_080D9A70: .4byte gUnknown_02024C07
_080D9A74: .4byte gUnknown_0202F7C9
_080D9A78: .4byte gUnknown_0202F7C8
@@ -31756,7 +31756,7 @@ sub_80D9B48: @ 80D9B48
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D9BC8 @ =gUnknown_03004B00
+ ldr r1, _080D9BC8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x30]
ldrh r0, [r1]
@@ -31803,7 +31803,7 @@ _080D9BA6:
bx r0
.align 2, 0
_080D9BC4: .4byte gUnknown_0202F7C9
-_080D9BC8: .4byte gUnknown_03004B00
+_080D9BC8: .4byte gBattleAnimArgs
_080D9BCC: .4byte gUnknown_0202F7C4
_080D9BD0: .4byte sub_80D9B24
thumb_func_end sub_80D9B48
@@ -31812,7 +31812,7 @@ _080D9BD0: .4byte sub_80D9B24
sub_80D9BD4: @ 80D9BD4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D9BEC @ =gUnknown_03004B00
+ ldr r0, _080D9BEC @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31822,7 +31822,7 @@ sub_80D9BD4: @ 80D9BD4
bl sub_80787B0
b _080D9BF8
.align 2, 0
-_080D9BEC: .4byte gUnknown_03004B00
+_080D9BEC: .4byte gBattleAnimArgs
_080D9BF0:
adds r0, r4, 0
movs r1, 0
@@ -31916,13 +31916,13 @@ sub_80D9C80: @ 80D9C80
bne _080D9CD2
movs r0, 0
bl sub_80789D4
- ldr r0, _080D9CB4 @ =gUnknown_03004B00
+ ldr r0, _080D9CB4 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x18]
b _080D9CCA
.align 2, 0
_080D9CB0: .4byte gTasks
-_080D9CB4: .4byte gUnknown_03004B00
+_080D9CB4: .4byte gBattleAnimArgs
_080D9CB8:
ldrh r0, [r4, 0x18]
subs r0, 0x1
@@ -31993,7 +31993,7 @@ _080D9D24:
strh r1, [r4, 0x1A]
ands r0, r2
strh r0, [r4, 0x1C]
- ldr r0, _080D9D6C @ =gUnknown_03004B00
+ ldr r0, _080D9D6C @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -32013,14 +32013,14 @@ _080D9D5C:
.align 2, 0
_080D9D64: .4byte gUnknown_030041B0
_080D9D68: .4byte gUnknown_030041B8
-_080D9D6C: .4byte gUnknown_03004B00
+_080D9D6C: .4byte gBattleAnimArgs
thumb_func_end sub_80D9C80
thumb_func_start sub_80D9D70
sub_80D9D70: @ 80D9D70
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9DC4 @ =gUnknown_03004B00
+ ldr r4, _080D9DC4 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -32057,7 +32057,7 @@ _080D9D86:
pop {r0}
bx r0
.align 2, 0
-_080D9DC4: .4byte gUnknown_03004B00
+_080D9DC4: .4byte gBattleAnimArgs
_080D9DC8: .4byte gUnknown_0202F7C9
_080D9DCC: .4byte 0x0000ffe2
_080D9DD0: .4byte sub_80D9DD4
@@ -32084,7 +32084,7 @@ sub_80D9DF0: @ 80D9DF0
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
- ldr r5, _080D9E64 @ =gUnknown_03004B00
+ ldr r5, _080D9E64 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -32136,7 +32136,7 @@ _080D9E36:
pop {r0}
bx r0
.align 2, 0
-_080D9E64: .4byte gUnknown_03004B00
+_080D9E64: .4byte gBattleAnimArgs
_080D9E68: .4byte gUnknown_0202F7C9
_080D9E6C: .4byte gUnknown_0202F7C8
_080D9E70: .4byte 0x0000ffe2
@@ -32163,7 +32163,7 @@ _080D9E8C:
sub_80D9E94: @ 80D9E94
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9EE0 @ =gUnknown_03004B00
+ ldr r5, _080D9EE0 @ =gBattleAnimArgs
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -32196,7 +32196,7 @@ sub_80D9E94: @ 80D9E94
pop {r0}
bx r0
.align 2, 0
-_080D9EE0: .4byte gUnknown_03004B00
+_080D9EE0: .4byte gBattleAnimArgs
_080D9EE4: .4byte sub_80D9EE8
thumb_func_end sub_80D9E94
@@ -32243,12 +32243,12 @@ sub_80D9F14: @ 80D9F14
lsls r0, 24
cmp r0, 0
beq _080D9F40
- ldr r1, _080D9F7C @ =gUnknown_03004B00
+ ldr r1, _080D9F7C @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_080D9F40:
- ldr r0, _080D9F7C @ =gUnknown_03004B00
+ ldr r0, _080D9F7C @ =gBattleAnimArgs
ldrh r2, [r0]
ldrh r1, [r4, 0x20]
adds r2, r1
@@ -32275,7 +32275,7 @@ _080D9F40:
.align 2, 0
_080D9F74: .4byte gUnknown_0202F7C9
_080D9F78: .4byte gUnknown_0202F7C8
-_080D9F7C: .4byte gUnknown_03004B00
+_080D9F7C: .4byte gBattleAnimArgs
_080D9F80: .4byte sub_8078B34
_080D9F84: .4byte move_anim_8072740
thumb_func_end sub_80D9F14
@@ -32284,7 +32284,7 @@ _080D9F84: .4byte move_anim_8072740
sub_80D9F88: @ 80D9F88
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9FA0 @ =gUnknown_03004B00
+ ldr r5, _080D9FA0 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -32294,7 +32294,7 @@ sub_80D9F88: @ 80D9F88
bl sub_8078764
b _080D9FDA
.align 2, 0
-_080D9FA0: .4byte gUnknown_03004B00
+_080D9FA0: .4byte gBattleAnimArgs
_080D9FA4:
ldr r0, _080D9FE4 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -32436,7 +32436,7 @@ sub_80DA09C: @ 80DA09C
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r1, _080DA0D0 @ =gUnknown_03004B00
+ ldr r1, _080DA0D0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r1]
@@ -32453,7 +32453,7 @@ sub_80DA09C: @ 80DA09C
bx r0
.align 2, 0
_080DA0CC: .4byte gTasks
-_080DA0D0: .4byte gUnknown_03004B00
+_080DA0D0: .4byte gBattleAnimArgs
_080DA0D4: .4byte 0x00002719
_080DA0D8: .4byte sub_80DA0DC
thumb_func_end sub_80DA09C
@@ -32544,12 +32544,12 @@ sub_80DA16C: @ 80DA16C
lsls r0, 24
cmp r0, 0
beq _080DA18C
- ldr r1, _080DA1DC @ =gUnknown_03004B00
+ ldr r1, _080DA1DC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080DA18C:
- ldr r4, _080DA1DC @ =gUnknown_03004B00
+ ldr r4, _080DA1DC @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
@@ -32585,7 +32585,7 @@ _080DA18C:
bx r0
.align 2, 0
_080DA1D8: .4byte gUnknown_0202F7C8
-_080DA1DC: .4byte gUnknown_03004B00
+_080DA1DC: .4byte gBattleAnimArgs
_080DA1E0: .4byte gUnknown_0202F7C9
_080DA1E4: .4byte sub_80785E4
_080DA1E8: .4byte sub_80DA1EC
@@ -32617,7 +32617,7 @@ sub_80DA208: @ 80DA208
lsls r0, 24
cmp r0, 0
beq _080DA234
- ldr r1, _080DA2A8 @ =gUnknown_03004B00
+ ldr r1, _080DA2A8 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -32635,7 +32635,7 @@ _080DA234:
lsls r0, 24
cmp r0, 0
beq _080DA24C
- ldr r0, _080DA2A8 @ =gUnknown_03004B00
+ ldr r0, _080DA2A8 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -32653,7 +32653,7 @@ _080DA24C:
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r2, _080DA2A8 @ =gUnknown_03004B00
+ ldr r2, _080DA2A8 @ =gBattleAnimArgs
ldrh r1, [r2]
ldrh r3, [r5, 0x20]
adds r1, r3
@@ -32684,7 +32684,7 @@ _080DA24C:
b _080DA2C2
.align 2, 0
_080DA2A4: .4byte gUnknown_0202F7C8
-_080DA2A8: .4byte gUnknown_03004B00
+_080DA2A8: .4byte gBattleAnimArgs
_080DA2AC: .4byte gUnknown_0202F7C9
_080DA2B0:
ldr r0, _080DA2F0 @ =gUnknown_0202F7C9
@@ -32696,7 +32696,7 @@ _080DA2B0:
movs r1, 0x1
bl sub_807A3FC
_080DA2C2:
- ldr r4, _080DA2F4 @ =gUnknown_03004B00
+ ldr r4, _080DA2F4 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
ldrh r1, [r5, 0x32]
adds r0, r1
@@ -32718,7 +32718,7 @@ _080DA2C2:
bx r0
.align 2, 0
_080DA2F0: .4byte gUnknown_0202F7C9
-_080DA2F4: .4byte gUnknown_03004B00
+_080DA2F4: .4byte gBattleAnimArgs
_080DA2F8: .4byte sub_8078B34
_080DA2FC: .4byte move_anim_8072740
thumb_func_end sub_80DA208
@@ -32729,7 +32729,7 @@ sub_80DA300: @ 80DA300
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DA33C @ =gUnknown_03004B00
+ ldr r1, _080DA33C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -32754,7 +32754,7 @@ sub_80DA300: @ 80DA300
pop {r0}
bx r0
.align 2, 0
-_080DA33C: .4byte gUnknown_03004B00
+_080DA33C: .4byte gBattleAnimArgs
_080DA340: .4byte sub_80DA348
_080DA344: .4byte gSprites
thumb_func_end sub_80DA300
@@ -32825,7 +32825,7 @@ _080DA3BC:
strh r0, [r5, 0x20]
strh r0, [r5, 0x22]
_080DA3C2:
- ldr r0, _080DA404 @ =gUnknown_03004B00
+ ldr r0, _080DA404 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -32854,7 +32854,7 @@ _080DA3C2:
bx r0
.align 2, 0
_080DA400: .4byte 0x0000ffe0
-_080DA404: .4byte gUnknown_03004B00
+_080DA404: .4byte gBattleAnimArgs
_080DA408: .4byte gUnknown_0202F7C9
_080DA40C: .4byte sub_80DA410
thumb_func_end sub_80DA38C
@@ -32973,7 +32973,7 @@ sub_80DA4D8: @ 80DA4D8
adds r7, r0, 0
adds r5, r7, 0
adds r5, 0x2E
- ldr r0, _080DA4F8 @ =gUnknown_03004B00
+ ldr r0, _080DA4F8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
movs r0, 0x80
lsls r0, 1
@@ -32983,7 +32983,7 @@ sub_80DA4D8: @ 80DA4D8
ldr r0, _080DA4FC @ =gUnknown_0202F7C8
b _080DA502
.align 2, 0
-_080DA4F8: .4byte gUnknown_03004B00
+_080DA4F8: .4byte gBattleAnimArgs
_080DA4FC: .4byte gUnknown_0202F7C8
_080DA500:
ldr r0, _080DA5B0 @ =gUnknown_0202F7C9
@@ -32994,7 +32994,7 @@ _080DA502:
lsls r0, 24
cmp r0, 0
bne _080DA518
- ldr r1, _080DA5B4 @ =gUnknown_03004B00
+ ldr r1, _080DA5B4 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -33003,7 +33003,7 @@ _080DA518:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080DA5B4 @ =gUnknown_03004B00
+ ldr r4, _080DA5B4 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -33074,7 +33074,7 @@ _080DA518:
b _080DA5D8
.align 2, 0
_080DA5B0: .4byte gUnknown_0202F7C9
-_080DA5B4: .4byte gUnknown_03004B00
+_080DA5B4: .4byte gBattleAnimArgs
_080DA5B8: .4byte gMain
_080DA5BC: .4byte 0x0000043d
_080DA5C0:
@@ -34121,7 +34121,7 @@ _080DAD80: .4byte sub_807941C
sub_80DAD84: @ 80DAD84
push {r4-r7,lr}
adds r4, r0, 0
- ldr r5, _080DADCC @ =gUnknown_03004B00
+ ldr r5, _080DADCC @ =gBattleAnimArgs
ldrh r0, [r5]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x2]
@@ -34154,7 +34154,7 @@ sub_80DAD84: @ 80DAD84
adds r0, r5
b _080DADEE
.align 2, 0
-_080DADCC: .4byte gUnknown_03004B00
+_080DADCC: .4byte gBattleAnimArgs
_080DADD0: .4byte gMain
_080DADD4: .4byte 0x0000043d
_080DADD8: .4byte gUnknown_02024A72
@@ -34168,7 +34168,7 @@ _080DADE0:
adds r0, 0x28
_080DADEE:
strh r0, [r4, 0x3C]
- ldr r0, _080DAE1C @ =gUnknown_03004B00
+ ldr r0, _080DAE1C @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -34190,7 +34190,7 @@ _080DADEE:
strb r1, [r4, 0x5]
b _080DAE58
.align 2, 0
-_080DAE1C: .4byte gUnknown_03004B00
+_080DAE1C: .4byte gBattleAnimArgs
_080DAE20: .4byte gUnknown_0202F7C9
_080DAE24:
ldr r0, _080DAE40 @ =gUnknown_0202F7C9
@@ -34442,7 +34442,7 @@ _080DAFFC: .4byte sub_80DA6F0
sub_80DB000: @ 80DB000
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DB018 @ =gUnknown_03004B00
+ ldr r0, _080DB018 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -34452,13 +34452,13 @@ sub_80DB000: @ 80DB000
bl sub_80787B0
b _080DB024
.align 2, 0
-_080DB018: .4byte gUnknown_03004B00
+_080DB018: .4byte gBattleAnimArgs
_080DB01C:
adds r0, r5, 0
movs r1, 0
bl sub_8078764
_080DB024:
- ldr r4, _080DB08C @ =gUnknown_03004B00
+ ldr r4, _080DB08C @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r4, r2]
cmp r0, 0
@@ -34485,7 +34485,7 @@ _080DB052:
adds r0, 0x8
strh r0, [r5, 0x20]
_080DB058:
- ldr r4, _080DB08C @ =gUnknown_03004B00
+ ldr r4, _080DB08C @ =gBattleAnimArgs
ldrb r1, [r4, 0x8]
adds r0, r5, 0
bl SeekSpriteAnim
@@ -34511,7 +34511,7 @@ _080DB058:
pop {r0}
bx r0
.align 2, 0
-_080DB08C: .4byte gUnknown_03004B00
+_080DB08C: .4byte gBattleAnimArgs
_080DB090: .4byte gUnknown_0202F7C8
_080DB094: .4byte gUnknown_0202F7C9
_080DB098: .4byte 0x00000ccc
@@ -34586,7 +34586,7 @@ sub_80DB0E8: @ 80DB0E8
negs r5, r5
adds r1, r5, 0
bl Sin
- ldr r4, _080DB188 @ =gUnknown_03004B00
+ ldr r4, _080DB188 @ =gBattleAnimArgs
strh r0, [r4]
movs r1, 0x8
ldrsh r0, [r7, r1]
@@ -34635,7 +34635,7 @@ _080DB176:
.align 2, 0
_080DB180: .4byte gTasks
_080DB184: .4byte gUnknown_0202F7B2
-_080DB188: .4byte gUnknown_03004B00
+_080DB188: .4byte gBattleAnimArgs
_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
_080DB190: .4byte gUnknown_0202F7C9
thumb_func_end sub_80DB0E8
@@ -34778,7 +34778,7 @@ sub_80DB288: @ 80DB288
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DB2C4 @ =gUnknown_03004B00
+ ldr r1, _080DB2C4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -34803,7 +34803,7 @@ sub_80DB288: @ 80DB288
pop {r0}
bx r0
.align 2, 0
-_080DB2C4: .4byte gUnknown_03004B00
+_080DB2C4: .4byte gBattleAnimArgs
_080DB2C8: .4byte sub_80DB2D0
_080DB2CC: .4byte gSprites
thumb_func_end sub_80DB288
@@ -34914,7 +34914,7 @@ sub_80DB374: @ 80DB374
beq _080DB3E0
b _080DB44C
_080DB388:
- ldr r0, _080DB398 @ =gUnknown_03004B00
+ ldr r0, _080DB398 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
@@ -34922,7 +34922,7 @@ _080DB388:
ldr r4, _080DB39C @ =gUnknown_0202F7C8
b _080DB3A2
.align 2, 0
-_080DB398: .4byte gUnknown_03004B00
+_080DB398: .4byte gBattleAnimArgs
_080DB39C: .4byte gUnknown_0202F7C8
_080DB3A0:
ldr r4, _080DB3DC @ =gUnknown_0202F7C9
@@ -35061,7 +35061,7 @@ _080DB49C:
subs r0, r1
_080DB4A4:
strh r0, [r5, 0x30]
- ldr r2, _080DB4CC @ =gUnknown_03004B00
+ ldr r2, _080DB4CC @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r5, 0x32]
lsls r0, 16
@@ -35082,7 +35082,7 @@ _080DB4C0:
ldr r4, _080DB4D0 @ =gUnknown_0202F7C8
b _080DB4D6
.align 2, 0
-_080DB4CC: .4byte gUnknown_03004B00
+_080DB4CC: .4byte gBattleAnimArgs
_080DB4D0: .4byte gUnknown_0202F7C8
_080DB4D4:
ldr r4, _080DB500 @ =gUnknown_0202F7C9
@@ -35369,7 +35369,7 @@ unref_sub_80DB6E4: @ 80DB6E4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080DB714 @ =gUnknown_03004B00
+ ldr r0, _080DB714 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -35389,7 +35389,7 @@ unref_sub_80DB6E4: @ 80DB6E4
orrs r0, r2
b _080DB73A
.align 2, 0
-_080DB714: .4byte gUnknown_03004B00
+_080DB714: .4byte gBattleAnimArgs
_080DB718: .4byte gSprites
_080DB71C:
movs r0, 0
@@ -35489,7 +35489,7 @@ _080DB7DA:
lsls r0, 24
cmp r0, 0
bne _080DB810
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080DB810
@@ -35517,7 +35517,7 @@ _080DB810:
lsls r0, 24
cmp r0, 0
beq _080DB826
- ldr r1, _080DB884 @ =gUnknown_03004B00
+ ldr r1, _080DB884 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -35526,7 +35526,7 @@ _080DB826:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080DB884 @ =gUnknown_03004B00
+ ldr r4, _080DB884 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -35548,7 +35548,7 @@ _080DB84A:
adds r0, 0x9
strh r0, [r6, 0x22]
_080DB85C:
- ldr r0, _080DB884 @ =gUnknown_03004B00
+ ldr r0, _080DB884 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -35566,7 +35566,7 @@ _080DB85C:
bx r0
.align 2, 0
_080DB880: .4byte gUnknown_0202F7C8
-_080DB884: .4byte gUnknown_03004B00
+_080DB884: .4byte gBattleAnimArgs
_080DB888: .4byte sub_80DB88C
thumb_func_end sub_80DB74C
@@ -35808,7 +35808,7 @@ sub_80DBA4C: @ 80DBA4C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080DBAD8
- ldr r5, _080DBA98 @ =gUnknown_03004B00
+ ldr r5, _080DBA98 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
movs r6, 0
@@ -35820,7 +35820,7 @@ _080DBA66:
lsls r0, 24
cmp r0, 0
bne _080DBAAE
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080DBAAE
@@ -35839,7 +35839,7 @@ _080DBA66:
strh r0, [r4, 0x22]
b _080DBAD0
.align 2, 0
-_080DBA98: .4byte gUnknown_03004B00
+_080DBA98: .4byte gBattleAnimArgs
_080DBA9C: .4byte gUnknown_0202F7C8
_080DBAA0:
ldrh r0, [r5]
@@ -35850,7 +35850,7 @@ _080DBAA0:
strh r0, [r4, 0x22]
b _080DBAD0
_080DBAAE:
- ldr r0, _080DBAC4 @ =gUnknown_03004B00
+ ldr r0, _080DBAC4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -35860,7 +35860,7 @@ _080DBAAE:
bl sub_80787B0
b _080DBAD0
.align 2, 0
-_080DBAC4: .4byte gUnknown_03004B00
+_080DBAC4: .4byte gBattleAnimArgs
_080DBAC8:
adds r0, r4, 0
adds r1, r6, 0
@@ -36609,7 +36609,7 @@ _080DC05C:
sub_80DC068: @ 80DC068
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DC0A4 @ =gUnknown_03004B00
+ ldr r6, _080DC0A4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -36636,7 +36636,7 @@ _080DC094:
pop {r0}
bx r0
.align 2, 0
-_080DC0A4: .4byte gUnknown_03004B00
+_080DC0A4: .4byte gBattleAnimArgs
_080DC0A8: .4byte gUnknown_0202F7C8
_080DC0AC: .4byte sub_80DC020
thumb_func_end sub_80DC068
@@ -36655,7 +36655,7 @@ sub_80DC0B0: @ 80DC0B0
lsls r0, 24
cmp r0, 0
beq _080DC154
- ldr r0, _080DC110 @ =gUnknown_03004B00
+ ldr r0, _080DC110 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -36686,7 +36686,7 @@ sub_80DC0B0: @ 80DC0B0
b _080DC1DE
.align 2, 0
_080DC10C: .4byte gTasks
-_080DC110: .4byte gUnknown_03004B00
+_080DC110: .4byte gBattleAnimArgs
_080DC114: .4byte 0x0000fff6
_080DC118: .4byte gUnknown_0202F7C9
_080DC11C: .4byte gUnknown_0202F7C8
@@ -36714,7 +36714,7 @@ _080DC120:
_080DC14C: .4byte gUnknown_0202F7C8
_080DC150: .4byte gUnknown_0202F7C9
_080DC154:
- ldr r0, _080DC198 @ =gUnknown_03004B00
+ ldr r0, _080DC198 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -36744,7 +36744,7 @@ _080DC154:
adds r0, 0x8
b _080DC1DE
.align 2, 0
-_080DC198: .4byte gUnknown_03004B00
+_080DC198: .4byte gBattleAnimArgs
_080DC19C: .4byte 0x0000fff6
_080DC1A0: .4byte gUnknown_0202F7C9
_080DC1A4: .4byte gUnknown_0202F7C8
@@ -36917,7 +36917,7 @@ sub_80DC2D4: @ 80DC2D4
adds r0, r1, 0
subs r0, 0x20
strh r0, [r4, 0x24]
- ldr r0, _080DC314 @ =gUnknown_03004B00
+ ldr r0, _080DC314 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
@@ -36930,7 +36930,7 @@ sub_80DC2D4: @ 80DC2D4
.align 2, 0
_080DC30C: .4byte gTasks
_080DC310: .4byte gUnknown_0202F7C9
-_080DC314: .4byte gUnknown_03004B00
+_080DC314: .4byte gBattleAnimArgs
_080DC318:
cmp r0, 0x2
beq _080DC336
@@ -37213,7 +37213,7 @@ sub_80DC4F4: @ 80DC4F4
.align 2, 0
_080DC528: .4byte gTasks
_080DC52C:
- ldr r1, _080DC550 @ =gUnknown_03004B00
+ ldr r1, _080DC550 @ =gBattleAnimArgs
ldrb r0, [r1]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
lsls r0, 16
@@ -37228,7 +37228,7 @@ _080DC52C:
bl move_anim_task_del
b _080DC5D6
.align 2, 0
-_080DC550: .4byte gUnknown_03004B00
+_080DC550: .4byte gBattleAnimArgs
_080DC554:
ldr r2, _080DC5E4 @ =gSprites
lsls r4, r0, 4
@@ -37280,7 +37280,7 @@ _080DC554:
lsrs r3, 30
adds r0, r4, 0
bl CalcCenterToCornerVec
- ldr r1, _080DC5EC @ =gUnknown_03004B00
+ ldr r1, _080DC5EC @ =gBattleAnimArgs
ldrb r0, [r1]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -37303,7 +37303,7 @@ _080DC5D6:
.align 2, 0
_080DC5E4: .4byte gSprites
_080DC5E8: .4byte SpriteCallbackDummy
-_080DC5EC: .4byte gUnknown_03004B00
+_080DC5EC: .4byte gBattleAnimArgs
_080DC5F0: .4byte sub_80DC5F4
thumb_func_end sub_80DC4F4
@@ -37601,7 +37601,7 @@ sub_80DC824: @ 80DC824
adds r0, r6, 0
movs r1, 0x2
bl StartSpriteAffineAnim
- ldr r0, _080DC84C @ =gUnknown_03004B00
+ ldr r0, _080DC84C @ =gBattleAnimArgs
ldrh r1, [r0, 0x4]
negs r1, r1
strh r1, [r0, 0x4]
@@ -37610,7 +37610,7 @@ sub_80DC824: @ 80DC824
strh r1, [r0]
b _080DC880
.align 2, 0
-_080DC84C: .4byte gUnknown_03004B00
+_080DC84C: .4byte gBattleAnimArgs
_080DC850:
ldr r0, _080DC8E4 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -37621,7 +37621,7 @@ _080DC850:
adds r0, r6, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r1, _080DC8E8 @ =gUnknown_03004B00
+ ldr r1, _080DC8E8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -37640,7 +37640,7 @@ _080DC880:
movs r1, 0x2
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080DC8E8 @ =gUnknown_03004B00
+ ldr r4, _080DC8E8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -37681,7 +37681,7 @@ _080DC880:
bx r0
.align 2, 0
_080DC8E4: .4byte gUnknown_0202F7C9
-_080DC8E8: .4byte gUnknown_03004B00
+_080DC8E8: .4byte gBattleAnimArgs
_080DC8EC: .4byte sub_8078B34
_080DC8F0: .4byte move_anim_8072740
thumb_func_end sub_80DC824
@@ -37694,7 +37694,7 @@ sub_80DC8F4: @ 80DC8F4
lsls r0, 24
cmp r0, 0
beq _080DC918
- ldr r1, _080DC914 @ =gUnknown_03004B00
+ ldr r1, _080DC914 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -37703,7 +37703,7 @@ sub_80DC8F4: @ 80DC8F4
bl StartSpriteAffineAnim
b _080DC934
.align 2, 0
-_080DC914: .4byte gUnknown_03004B00
+_080DC914: .4byte gBattleAnimArgs
_080DC918:
ldr r0, _080DC990 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -37711,7 +37711,7 @@ _080DC918:
lsls r0, 24
cmp r0, 0
bne _080DC934
- ldr r0, _080DC994 @ =gUnknown_03004B00
+ ldr r0, _080DC994 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -37724,7 +37724,7 @@ _080DC934:
movs r1, 0x2
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080DC994 @ =gUnknown_03004B00
+ ldr r4, _080DC994 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -37761,7 +37761,7 @@ _080DC934:
bx r0
.align 2, 0
_080DC990: .4byte gUnknown_0202F7C9
-_080DC994: .4byte gUnknown_03004B00
+_080DC994: .4byte gBattleAnimArgs
_080DC998: .4byte sub_8078B34
_080DC99C: .4byte move_anim_8072740
thumb_func_end sub_80DC8F4
@@ -37774,7 +37774,7 @@ sub_80DC9A0: @ 80DC9A0
lsls r0, 24
cmp r0, 0
beq _080DC9BC
- ldr r0, _080DC9FC @ =gUnknown_03004B00
+ ldr r0, _080DC9FC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
lsrs r2, r1, 31
@@ -37785,7 +37785,7 @@ _080DC9BC:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DC9FC @ =gUnknown_03004B00
+ ldr r1, _080DC9FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -37811,7 +37811,7 @@ _080DC9BC:
strh r0, [r5, 0x36]
b _080DCA16
.align 2, 0
-_080DC9FC: .4byte gUnknown_03004B00
+_080DC9FC: .4byte gBattleAnimArgs
_080DCA00: .4byte gUnknown_0202F7C9
_080DCA04:
ldr r0, _080DCA2C @ =gUnknown_0202F7C9
@@ -37825,7 +37825,7 @@ _080DCA04:
_080DCA16:
adds r0, r5, 0
bl sub_8078BD4
- ldr r0, _080DCA30 @ =gUnknown_03004B00
+ ldr r0, _080DCA30 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x38]
ldr r0, _080DCA34 @ =sub_80DCA38
@@ -37835,7 +37835,7 @@ _080DCA16:
bx r0
.align 2, 0
_080DCA2C: .4byte gUnknown_0202F7C9
-_080DCA30: .4byte gUnknown_03004B00
+_080DCA30: .4byte gBattleAnimArgs
_080DCA34: .4byte sub_80DCA38
thumb_func_end sub_80DC9A0
@@ -37888,7 +37888,7 @@ sub_80DCA70: @ 80DCA70
lsls r0, 24
cmp r0, 0
beq _080DCAAC
- ldr r0, _080DCAA8 @ =gUnknown_03004B00
+ ldr r0, _080DCAA8 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -37897,9 +37897,9 @@ sub_80DCA70: @ 80DCA70
.align 2, 0
_080DCAA0: .4byte gUnknown_0202F7C9
_080DCAA4: .4byte gUnknown_0202F7C8
-_080DCAA8: .4byte gUnknown_03004B00
+_080DCAA8: .4byte gBattleAnimArgs
_080DCAAC:
- ldr r1, _080DCAE0 @ =gUnknown_03004B00
+ ldr r1, _080DCAE0 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -37926,7 +37926,7 @@ _080DCAD4:
pop {r0}
bx r0
.align 2, 0
-_080DCAE0: .4byte gUnknown_03004B00
+_080DCAE0: .4byte gBattleAnimArgs
_080DCAE4: .4byte gUnknown_0202F7C9
_080DCAE8: .4byte sub_80DCAEC
thumb_func_end sub_80DCA70
@@ -38067,13 +38067,13 @@ sub_80DCBCC: @ 80DCBCC
lsls r0, 24
cmp r0, 0
beq _080DCBEC
- ldr r1, _080DCBE8 @ =gUnknown_03004B00
+ ldr r1, _080DCBE8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _080DCC0E
.align 2, 0
-_080DCBE8: .4byte gUnknown_03004B00
+_080DCBE8: .4byte gBattleAnimArgs
_080DCBEC:
ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
ldrb r0, [r0]
@@ -38081,7 +38081,7 @@ _080DCBEC:
lsls r0, 24
cmp r0, 0
beq _080DCC0E
- ldr r1, _080DCCEC @ =gUnknown_03004B00
+ ldr r1, _080DCCEC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -38119,7 +38119,7 @@ _080DCC0E:
cmp r0, 0x1
bne _080DCC5E
_080DCC4C:
- ldr r0, _080DCCEC @ =gUnknown_03004B00
+ ldr r0, _080DCCEC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
negs r1, r1
@@ -38138,7 +38138,7 @@ _080DCC5E:
bl sub_8077ABC
adds r4, r0, 0
lsls r4, 24
- ldr r6, _080DCCEC @ =gUnknown_03004B00
+ ldr r6, _080DCCEC @ =gBattleAnimArgs
lsrs r4, 24
ldrh r0, [r6, 0x4]
adds r4, r0
@@ -38193,7 +38193,7 @@ _080DCC5E:
bx r0
.align 2, 0
_080DCCE8: .4byte gUnknown_0202F7C8
-_080DCCEC: .4byte gUnknown_03004B00
+_080DCCEC: .4byte gBattleAnimArgs
_080DCCF0: .4byte gUnknown_0202F7C9
_080DCCF4: .4byte sub_8078B34
_080DCCF8: .4byte move_anim_8072740
@@ -38211,12 +38211,12 @@ sub_80DCCFC: @ 80DCCFC
lsls r0, 24
cmp r0, 0
beq _080DCD1C
- ldr r1, _080DCD6C @ =gUnknown_03004B00
+ ldr r1, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080DCD1C:
- ldr r4, _080DCD6C @ =gUnknown_03004B00
+ ldr r4, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _080DCD70 @ =gUnknown_0202F7C9
@@ -38253,7 +38253,7 @@ _080DCD1C:
bx r0
.align 2, 0
_080DCD68: .4byte gUnknown_0202F7C8
-_080DCD6C: .4byte gUnknown_03004B00
+_080DCD6C: .4byte gBattleAnimArgs
_080DCD70: .4byte gUnknown_0202F7C9
_080DCD74: .4byte sub_80DCD78
thumb_func_end sub_80DCCFC
@@ -38365,7 +38365,7 @@ _080DCE34:
sub_80DCE40: @ 80DCE40
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DCE54 @ =gUnknown_03004B00
+ ldr r0, _080DCE54 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -38373,7 +38373,7 @@ sub_80DCE40: @ 80DCE40
ldr r4, _080DCE58 @ =gUnknown_0202F7C8
b _080DCE5E
.align 2, 0
-_080DCE54: .4byte gUnknown_03004B00
+_080DCE54: .4byte gBattleAnimArgs
_080DCE58: .4byte gUnknown_0202F7C8
_080DCE5C:
ldr r4, _080DCE90 @ =gUnknown_0202F7C9
@@ -38409,7 +38409,7 @@ _080DCE98: .4byte sub_80785E4
sub_80DCE9C: @ 80DCE9C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DCF08 @ =gUnknown_03004B00
+ ldr r6, _080DCF08 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -38457,7 +38457,7 @@ _080DCEBC:
pop {r0}
bx r0
.align 2, 0
-_080DCF08: .4byte gUnknown_03004B00
+_080DCF08: .4byte gBattleAnimArgs
_080DCF0C: .4byte gUnknown_0202F7C9
_080DCF10: .4byte 0x0000ffba
_080DCF14: .4byte sub_80DCF1C
@@ -38501,7 +38501,7 @@ _080DCF5C: .4byte sub_8078278
sub_80DCF60: @ 80DCF60
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DCF88 @ =gUnknown_03004B00
+ ldr r4, _080DCF88 @ =gBattleAnimArgs
ldrb r1, [r4, 0xA]
bl StartSpriteAnim
adds r0, r5, 0
@@ -38517,7 +38517,7 @@ sub_80DCF60: @ 80DCF60
subs r0, r1
b _080DCF96
.align 2, 0
-_080DCF88: .4byte gUnknown_03004B00
+_080DCF88: .4byte gBattleAnimArgs
_080DCF8C: .4byte gUnknown_0202F7C8
_080DCF90:
ldrh r0, [r4]
@@ -38525,7 +38525,7 @@ _080DCF90:
adds r0, r1
_080DCF96:
strh r0, [r5, 0x20]
- ldr r3, _080DCFD8 @ =gUnknown_03004B00
+ ldr r3, _080DCFD8 @ =gBattleAnimArgs
ldrh r2, [r3, 0x2]
ldrh r0, [r5, 0x22]
adds r2, r0
@@ -38555,7 +38555,7 @@ _080DCF96:
pop {r0}
bx r0
.align 2, 0
-_080DCFD8: .4byte gUnknown_03004B00
+_080DCFD8: .4byte gBattleAnimArgs
_080DCFDC: .4byte sub_8078394
_080DCFE0: .4byte move_anim_8074EE0
thumb_func_end sub_80DCF60
@@ -38564,7 +38564,7 @@ _080DCFE0: .4byte move_anim_8074EE0
sub_80DCFE4: @ 80DCFE4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DCFFC @ =gUnknown_03004B00
+ ldr r0, _080DCFFC @ =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -38574,13 +38574,13 @@ sub_80DCFE4: @ 80DCFE4
bl sub_80787B0
b _080DD008
.align 2, 0
-_080DCFFC: .4byte gUnknown_03004B00
+_080DCFFC: .4byte gBattleAnimArgs
_080DD000:
adds r0, r4, 0
movs r1, 0
bl sub_8078764
_080DD008:
- ldr r1, _080DD024 @ =gUnknown_03004B00
+ ldr r1, _080DD024 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
@@ -38595,7 +38595,7 @@ _080DD008:
pop {r0}
bx r0
.align 2, 0
-_080DD024: .4byte gUnknown_03004B00
+_080DD024: .4byte gBattleAnimArgs
_080DD028: .4byte sub_80DD02C
thumb_func_end sub_80DCFE4
@@ -38721,7 +38721,7 @@ _080DD0C4:
movs r3, 0
bl sub_80763FC
_080DD120:
- ldr r0, _080DD180 @ =gUnknown_03004B00
+ ldr r0, _080DD180 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -38758,7 +38758,7 @@ _080DD170: .4byte 0x85000400
_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
_080DD17C: .4byte gBattleAnimSpritePalette_261
-_080DD180: .4byte gUnknown_03004B00
+_080DD180: .4byte gBattleAnimArgs
_080DD184: .4byte gUnknown_0202F7C8
_080DD188: .4byte gTasks
_080DD18C: .4byte sub_80DD190
@@ -39039,7 +39039,7 @@ sub_80DD3AC: @ 80DD3AC
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080DD428
- ldr r4, _080DD3F0 @ =gUnknown_03004B00
+ ldr r4, _080DD3F0 @ =gBattleAnimArgs
movs r2, 0x6
ldrsh r0, [r4, r2]
cmp r0, 0
@@ -39066,13 +39066,13 @@ sub_80DD3AC: @ 80DD3AC
strb r0, [r5, 0x3]
b _080DD3FC
.align 2, 0
-_080DD3F0: .4byte gUnknown_03004B00
+_080DD3F0: .4byte gBattleAnimArgs
_080DD3F4: .4byte gUnknown_0202F7C8
_080DD3F8:
ldr r0, _080DD41C @ =0x0000ffc0
strh r0, [r5, 0x20]
_080DD3FC:
- ldr r4, _080DD420 @ =gUnknown_03004B00
+ ldr r4, _080DD420 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x22]
ldr r1, _080DD424 @ =gUnknown_083DAD10
@@ -39088,7 +39088,7 @@ _080DD3FC:
b _080DD484
.align 2, 0
_080DD41C: .4byte 0x0000ffc0
-_080DD420: .4byte gUnknown_03004B00
+_080DD420: .4byte gBattleAnimArgs
_080DD424: .4byte gUnknown_083DAD10
_080DD428:
ldrh r1, [r5, 0x30]
@@ -39151,7 +39151,7 @@ _080DD48C: .4byte move_anim_8072740
sub_80DD490: @ 80DD490
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD4C8 @ =gUnknown_03004B00
+ ldr r5, _080DD4C8 @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
adds r0, r4, 0
@@ -39174,7 +39174,7 @@ sub_80DD490: @ 80DD490
pop {r0}
bx r0
.align 2, 0
-_080DD4C8: .4byte gUnknown_03004B00
+_080DD4C8: .4byte gBattleAnimArgs
_080DD4CC: .4byte sub_8078B34
_080DD4D0: .4byte move_anim_8072740
thumb_func_end sub_80DD490
@@ -39709,7 +39709,7 @@ _080DD8E4: .4byte gUnknown_0202F7B4
sub_80DD8E8: @ 80DD8E8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD920 @ =gUnknown_03004B00
+ ldr r5, _080DD920 @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
ldrh r0, [r5]
@@ -39735,7 +39735,7 @@ sub_80DD8E8: @ 80DD8E8
pop {r0}
bx r0
.align 2, 0
-_080DD920: .4byte gUnknown_03004B00
+_080DD920: .4byte gBattleAnimArgs
_080DD924: .4byte sub_80DD928
thumb_func_end sub_80DD8E8
@@ -39823,7 +39823,7 @@ sub_80DD9A4: @ 80DD9A4
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r2, _080DD9F4 @ =gUnknown_03004B00
+ ldr r2, _080DD9F4 @ =gBattleAnimArgs
ldrh r3, [r2]
ldrh r5, [r4, 0x20]
adds r1, r3, r5
@@ -39845,7 +39845,7 @@ sub_80DD9A4: @ 80DD9A4
bx r0
.align 2, 0
_080DD9F0: .4byte gUnknown_0202F7C9
-_080DD9F4: .4byte gUnknown_03004B00
+_080DD9F4: .4byte gBattleAnimArgs
_080DD9F8: .4byte sub_80DD9FC
thumb_func_end sub_80DD9A4
@@ -39900,7 +39900,7 @@ sub_80DDA4C: @ 80DDA4C
ldr r0, [r2]
cmp r0, 0x20
bgt _080DDA60
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_080DDA60:
@@ -39909,13 +39909,13 @@ _080DDA60:
subs r0, 0x21
cmp r0, 0x20
bhi _080DDA70
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_080DDA70:
cmp r2, 0x41
ble _080DDA7A
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0x2
strh r0, [r1, 0xE]
_080DDA7A:
@@ -39925,7 +39925,7 @@ _080DDA7A:
bx r0
.align 2, 0
_080DDA84: .4byte gUnknown_0202F7B8
-_080DDA88: .4byte gUnknown_03004B00
+_080DDA88: .4byte gBattleAnimArgs
thumb_func_end sub_80DDA4C
thumb_func_start sub_80DDA8C
@@ -40015,7 +40015,7 @@ _080DDB1C:
ldrh r4, [r4, 0xC]
adds r0, r4
strh r0, [r6]
- ldr r0, _080DDB64 @ =gUnknown_03004B00
+ ldr r0, _080DDB64 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
ldr r0, _080DDB68 @ =0x00000fff
@@ -40034,7 +40034,7 @@ _080DDB54:
.align 2, 0
_080DDB5C: .4byte gTasks
_080DDB60: .4byte gUnknown_030041B8
-_080DDB64: .4byte gUnknown_03004B00
+_080DDB64: .4byte gBattleAnimArgs
_080DDB68: .4byte 0x00000fff
thumb_func_end sub_80DDAF0
@@ -40044,7 +40044,7 @@ sub_80DDB6C: @ 80DDB6C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DDBC8 @ =gUnknown_03004B00
+ ldr r0, _080DDBC8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -40082,7 +40082,7 @@ sub_80DDB6C: @ 80DDB6C
pop {r0}
bx r0
.align 2, 0
-_080DDBC8: .4byte gUnknown_03004B00
+_080DDBC8: .4byte gBattleAnimArgs
_080DDBCC: .4byte gUnknown_0202F7C9
_080DDBD0: .4byte sub_80DDBD8
_080DDBD4: .4byte REG_BLDCNT
@@ -40420,7 +40420,7 @@ sub_80DDDF0: @ 80DDDF0
movs r2, 0
movs r1, 0x80
strh r1, [r0, 0x8]
- ldr r1, _080DDE74 @ =gUnknown_03004B00
+ ldr r1, _080DDE74 @ =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0xA]
strh r2, [r0, 0xC]
@@ -40435,7 +40435,7 @@ sub_80DDDF0: @ 80DDDF0
_080DDE68: .4byte REG_BLDCNT
_080DDE6C: .4byte gSprites
_080DDE70: .4byte gTasks
-_080DDE74: .4byte gUnknown_03004B00
+_080DDE74: .4byte gBattleAnimArgs
_080DDE78: .4byte sub_80DDE7C
thumb_func_end sub_80DDDF0
@@ -40570,7 +40570,7 @@ sub_80DDF40: @ 80DDF40
strh r0, [r4, 0x22]
mov r1, r9
strh r1, [r4, 0x2E]
- ldr r2, _080DDFE0 @ =gUnknown_03004B00
+ ldr r2, _080DDFE0 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r4, 0x30]
ldrh r1, [r2, 0x2]
@@ -40619,7 +40619,7 @@ sub_80DDF40: @ 80DDF40
bx r0
.align 2, 0
_080DDFDC: .4byte gUnknown_0202F7C8
-_080DDFE0: .4byte gUnknown_03004B00
+_080DDFE0: .4byte gBattleAnimArgs
_080DDFE4: .4byte sub_80DDFE8
thumb_func_end sub_80DDF40
@@ -41643,7 +41643,7 @@ sub_80DE7B8: @ 80DE7B8
mov r5, r8
push {r5-r7}
adds r7, r0, 0
- ldr r0, _080DE7F4 @ =gUnknown_03004B00
+ ldr r0, _080DE7F4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -41666,7 +41666,7 @@ sub_80DE7B8: @ 80DE7B8
ldr r4, _080DE7FC @ =gUnknown_0202F7C9
b _080DE824
.align 2, 0
-_080DE7F4: .4byte gUnknown_03004B00
+_080DE7F4: .4byte gBattleAnimArgs
_080DE7F8: .4byte gUnknown_0202F7C8
_080DE7FC: .4byte gUnknown_0202F7C9
_080DE800:
@@ -41715,7 +41715,7 @@ _080DE824:
mov r1, r10
subs r0, r1, r6
lsls r0, 4
- ldr r5, _080DE8D0 @ =gUnknown_03004B00
+ ldr r5, _080DE8D0 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r5, r2]
bl __divsi3
@@ -41767,7 +41767,7 @@ _080DE824:
.align 2, 0
_080DE8C8: .4byte gUnknown_0202F7C9
_080DE8CC: .4byte gUnknown_0202F7C8
-_080DE8D0: .4byte gUnknown_03004B00
+_080DE8D0: .4byte gBattleAnimArgs
_080DE8D4: .4byte sub_80DE8D8
thumb_func_end sub_80DE7B8
@@ -41841,7 +41841,7 @@ sub_80DE918: @ 80DE918
strh r0, [r1, 0x18]
movs r0, 0x10
strh r0, [r1, 0x1A]
- ldr r2, _080DEA70 @ =gUnknown_03004B00
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
ldr r4, _080DEA74 @ =gUnknown_0202F7C8
@@ -41922,7 +41922,7 @@ _080DE98A:
mov r2, r10
subs r0, r2, r6
lsls r0, 4
- ldr r3, _080DEA70 @ =gUnknown_03004B00
+ ldr r3, _080DEA70 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
@@ -41932,12 +41932,12 @@ _080DE98A:
asrs r0, 16
subs r0, r7
lsls r0, 4
- ldr r2, _080DEA70 @ =gUnknown_03004B00
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
- ldr r1, _080DEA70 @ =gUnknown_03004B00
+ ldr r1, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
@@ -41974,7 +41974,7 @@ _080DEA56:
.align 2, 0
_080DEA68: .4byte gTasks
_080DEA6C: .4byte REG_BLDCNT
-_080DEA70: .4byte gUnknown_03004B00
+_080DEA70: .4byte gBattleAnimArgs
_080DEA74: .4byte gUnknown_0202F7C8
_080DEA78: .4byte gSpriteTemplate_83DAF08
_080DEA7C: .4byte gSprites
@@ -42013,7 +42013,7 @@ _080DEA88:
strh r0, [r4, 0x30]
subs r0, r3, r7
lsls r0, 4
- ldr r3, _080DEB2C @ =gUnknown_03004B00
+ ldr r3, _080DEB2C @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
@@ -42022,12 +42022,12 @@ _080DEA88:
ldr r1, [sp, 0xC]
subs r0, r3, r1
lsls r0, 4
- ldr r2, _080DEB2C @ =gUnknown_03004B00
+ ldr r2, _080DEB2C @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
- ldr r1, _080DEB2C @ =gUnknown_03004B00
+ ldr r1, _080DEB2C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
@@ -42059,7 +42059,7 @@ _080DEB0C:
.align 2, 0
_080DEB24: .4byte gSpriteTemplate_83DAF08
_080DEB28: .4byte gSprites
-_080DEB2C: .4byte gUnknown_03004B00
+_080DEB2C: .4byte gBattleAnimArgs
_080DEB30: .4byte sub_80DE8D8
_080DEB34: .4byte sub_80DEB38
thumb_func_end sub_80DE918
@@ -43298,7 +43298,7 @@ sub_80DF49C: @ 80DF49C
strh r1, [r0, 0x2E]
movs r1, 0xA
strh r1, [r0, 0x30]
- ldr r2, _080DF4E8 @ =gUnknown_03004B00
+ ldr r2, _080DF4E8 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x32]
ldrh r1, [r2, 0x2]
@@ -43319,7 +43319,7 @@ sub_80DF49C: @ 80DF49C
.align 2, 0
_080DF4E0: .4byte gUnknown_02024BE0
_080DF4E4: .4byte gUnknown_0202F7C8
-_080DF4E8: .4byte gUnknown_03004B00
+_080DF4E8: .4byte gBattleAnimArgs
_080DF4EC: .4byte sub_80DF4F4
_080DF4F0: .4byte gSprites
thumb_func_end sub_80DF49C
@@ -43433,7 +43433,7 @@ sub_80DF5A0: @ 80DF5A0
lsls r0, 24
cmp r0, 0
beq _080DF5F0
- ldr r2, _080DF5EC @ =gUnknown_03004B00
+ ldr r2, _080DF5EC @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -43448,9 +43448,9 @@ sub_80DF5A0: @ 80DF5A0
b _080DF5FA
.align 2, 0
_080DF5E8: .4byte gUnknown_0202F7C8
-_080DF5EC: .4byte gUnknown_03004B00
+_080DF5EC: .4byte gBattleAnimArgs
_080DF5F0:
- ldr r1, _080DF630 @ =gUnknown_03004B00
+ ldr r1, _080DF630 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -43483,7 +43483,7 @@ _080DF5FA:
pop {r0}
bx r0
.align 2, 0
-_080DF630: .4byte gUnknown_03004B00
+_080DF630: .4byte gBattleAnimArgs
_080DF634: .4byte move_anim_8074EE0
_080DF638: .4byte sub_8078504
thumb_func_end sub_80DF5A0
@@ -43512,7 +43512,7 @@ sub_80DF63C: @ 80DF63C
lsls r0, 24
cmp r0, 0
beq _080DF6A0
- ldr r2, _080DF69C @ =gUnknown_03004B00
+ ldr r2, _080DF69C @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2, 0x2]
subs r0, r1
@@ -43532,9 +43532,9 @@ sub_80DF63C: @ 80DF63C
.align 2, 0
_080DF694: .4byte gUnknown_0202F7C9
_080DF698: .4byte gUnknown_0202F7C8
-_080DF69C: .4byte gUnknown_03004B00
+_080DF69C: .4byte gBattleAnimArgs
_080DF6A0:
- ldr r1, _080DF6E4 @ =gUnknown_03004B00
+ ldr r1, _080DF6E4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -43555,7 +43555,7 @@ _080DF6A0:
movs r1, 0x1
bl StartSpriteAnim
_080DF6CA:
- ldr r0, _080DF6E4 @ =gUnknown_03004B00
+ ldr r0, _080DF6E4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080DF6E8 @ =sub_8078B34
@@ -43567,7 +43567,7 @@ _080DF6CA:
pop {r0}
bx r0
.align 2, 0
-_080DF6E4: .4byte gUnknown_03004B00
+_080DF6E4: .4byte gBattleAnimArgs
_080DF6E8: .4byte sub_8078B34
_080DF6EC: .4byte move_anim_8074EE0
thumb_func_end sub_80DF63C
@@ -43576,7 +43576,7 @@ _080DF6EC: .4byte move_anim_8074EE0
sub_80DF6F0: @ 80DF6F0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DF704 @ =gUnknown_03004B00
+ ldr r0, _080DF704 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -43584,7 +43584,7 @@ sub_80DF6F0: @ 80DF6F0
ldr r4, _080DF708 @ =gUnknown_0202F7C8
b _080DF70E
.align 2, 0
-_080DF704: .4byte gUnknown_03004B00
+_080DF704: .4byte gBattleAnimArgs
_080DF708: .4byte gUnknown_0202F7C8
_080DF70C:
ldr r4, _080DF750 @ =gUnknown_0202F7C9
@@ -43601,7 +43601,7 @@ _080DF70E:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080DF754 @ =gUnknown_03004B00
+ ldr r4, _080DF754 @ =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -43620,7 +43620,7 @@ _080DF70E:
bx r0
.align 2, 0
_080DF750: .4byte gUnknown_0202F7C9
-_080DF754: .4byte gUnknown_03004B00
+_080DF754: .4byte gBattleAnimArgs
_080DF758: .4byte sub_8078600
_080DF75C: .4byte move_anim_8074EE0
thumb_func_end sub_80DF6F0
@@ -43669,7 +43669,7 @@ sub_80DF78C: @ 80DF78C
strh r5, [r6, 0x36]
movs r0, 0x1
strh r0, [r6, 0x38]
- ldr r0, _080DF7E4 @ =gUnknown_03004B00
+ ldr r0, _080DF7E4 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r6, 0x3A]
ldr r4, _080DF7E8 @ =gUnknown_02024C07
@@ -43689,7 +43689,7 @@ sub_80DF78C: @ 80DF78C
b _080DF7EE
.align 2, 0
_080DF7E0: .4byte gUnknown_0202F7C8
-_080DF7E4: .4byte gUnknown_03004B00
+_080DF7E4: .4byte gBattleAnimArgs
_080DF7E8: .4byte gUnknown_02024C07
_080DF7EC:
lsrs r0, r1, 17
@@ -44120,7 +44120,7 @@ sub_80DFB28: @ 80DFB28
mov r6, r8
push {r6}
adds r4, r0, 0
- ldr r5, _080DFBC8 @ =gUnknown_03004B00
+ ldr r5, _080DFBC8 @ =gBattleAnimArgs
movs r0, 0x4
ldrsh r1, [r5, r0]
lsls r0, r1, 1
@@ -44193,7 +44193,7 @@ _080DFBB0:
pop {r0}
bx r0
.align 2, 0
-_080DFBC8: .4byte gUnknown_03004B00
+_080DFBC8: .4byte gBattleAnimArgs
_080DFBCC: .4byte gUnknown_0202F7C8
_080DFBD0: .4byte sub_80DFBD8
_080DFBD4: .4byte gUnknown_03000730
@@ -44248,7 +44248,7 @@ sub_80DFC24: @ 80DFC24
adds r1, r4
lsls r1, 3
adds r1, r0
- ldr r0, _080DFC5C @ =gUnknown_03004B00
+ ldr r0, _080DFC5C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
ldr r0, _080DFC60 @ =gUnknown_0202F7C8
@@ -44267,7 +44267,7 @@ sub_80DFC24: @ 80DFC24
b _080DFC74
.align 2, 0
_080DFC58: .4byte gTasks
-_080DFC5C: .4byte gUnknown_03004B00
+_080DFC5C: .4byte gBattleAnimArgs
_080DFC60: .4byte gUnknown_0202F7C8
_080DFC64: .4byte REG_BLDALPHA
_080DFC68: .4byte REG_BLDCNT
@@ -44372,7 +44372,7 @@ sub_80DFD24: @ 80DFD24
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _080DFD4C @ =gUnknown_03004B00
+ ldr r0, _080DFD4C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
movs r2, 0x80
@@ -44385,7 +44385,7 @@ sub_80DFD24: @ 80DFD24
bx lr
.align 2, 0
_080DFD48: .4byte gTasks
-_080DFD4C: .4byte gUnknown_03004B00
+_080DFD4C: .4byte gBattleAnimArgs
_080DFD50: .4byte sub_80DFD58
_080DFD54: .4byte REG_BLDALPHA
thumb_func_end sub_80DFD24
@@ -44619,7 +44619,7 @@ _080DFF14:
sub_80DFF1C: @ 80DFF1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DFF50 @ =gUnknown_03004B00
+ ldr r5, _080DFF50 @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -44643,7 +44643,7 @@ sub_80DFF1C: @ 80DFF1C
pop {r0}
bx r0
.align 2, 0
-_080DFF50: .4byte gUnknown_03004B00
+_080DFF50: .4byte gBattleAnimArgs
_080DFF54: .4byte sub_80DFF58
thumb_func_end sub_80DFF1C
@@ -44718,7 +44718,7 @@ _080DFFCA:
sub_80DFFD0: @ 80DFFD0
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080DFFE4 @ =gUnknown_03004B00
+ ldr r0, _080DFFE4 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -44727,7 +44727,7 @@ sub_80DFFD0: @ 80DFFD0
ldr r0, _080DFFE8 @ =gUnknown_0202F7C8
b _080DFFEE
.align 2, 0
-_080DFFE4: .4byte gUnknown_03004B00
+_080DFFE4: .4byte gBattleAnimArgs
_080DFFE8: .4byte gUnknown_0202F7C8
_080DFFEC:
ldr r0, _080E001C @ =gUnknown_0202F7C9
@@ -46016,7 +46016,7 @@ _080E0A0C: .4byte gUnknown_0202F7C8
sub_80E0A10: @ 80E0A10
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080E0A40 @ =gUnknown_03004B00
+ ldr r1, _080E0A40 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -46037,7 +46037,7 @@ sub_80E0A10: @ 80E0A10
pop {r0}
bx r0
.align 2, 0
-_080E0A40: .4byte gUnknown_03004B00
+_080E0A40: .4byte gBattleAnimArgs
_080E0A44: .4byte sub_8078600
_080E0A48: .4byte move_anim_8072740
thumb_func_end sub_80E0A10
@@ -46104,7 +46104,7 @@ sub_80E0A4C: @ 80E0A4C
orrs r1, r0
strb r1, [r5]
_080E0AC4:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E0B40
@@ -46274,7 +46274,7 @@ _080E0BCC:
lsrs r0, 4
adds r0, 0x10
adds r1, r0, 0
- ldr r2, _080E0C84 @ =gUnknown_03004B00
+ ldr r2, _080E0C84 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r0, [r2, r3]
cmp r0, 0
@@ -46295,7 +46295,7 @@ _080E0C74: .4byte gUnknown_08D1D54C
_080E0C78: .4byte gUnknown_030042C0
_080E0C7C: .4byte gSprites
_080E0C80: .4byte gUnknown_030041B4
-_080E0C84: .4byte gUnknown_03004B00
+_080E0C84: .4byte gBattleAnimArgs
_080E0C88:
lsls r0, r1, 4
ldrh r3, [r2, 0x4]
@@ -46310,7 +46310,7 @@ _080E0C94:
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
- ldr r2, _080E0CC8 @ =gUnknown_03004B00
+ ldr r2, _080E0CC8 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0xA]
ldrh r1, [r2, 0x2]
@@ -46329,7 +46329,7 @@ _080E0C94:
bx r0
.align 2, 0
_080E0CC4: .4byte gTasks
-_080E0CC8: .4byte gUnknown_03004B00
+_080E0CC8: .4byte gBattleAnimArgs
_080E0CCC: .4byte sub_80E0CD0
thumb_func_end sub_80E0A4C
@@ -46498,7 +46498,7 @@ sub_80E0E24: @ 80E0E24
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r0, _080E0E44 @ =gUnknown_03004B00
+ ldr r0, _080E0E44 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -46510,7 +46510,7 @@ sub_80E0E24: @ 80E0E24
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E0E44: .4byte gUnknown_03004B00
+_080E0E44: .4byte gBattleAnimArgs
_080E0E48: .4byte _080E0E4C
.align 2, 0
_080E0E4C:
@@ -46575,7 +46575,7 @@ _080E0EB6:
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
- ldr r1, _080E0EE4 @ =gUnknown_03004B00
+ ldr r1, _080E0EE4 @ =gBattleAnimArgs
ldrb r1, [r1, 0x2]
bl sub_8079108
_080E0ED2:
@@ -46586,7 +46586,7 @@ _080E0ED2:
bx r0
.align 2, 0
_080E0EE0: .4byte gSprites
-_080E0EE4: .4byte gUnknown_03004B00
+_080E0EE4: .4byte gBattleAnimArgs
thumb_func_end sub_80E0E24
thumb_func_start sub_80E0EE8
@@ -46598,14 +46598,14 @@ sub_80E0EE8: @ 80E0EE8
ldrb r0, [r2]
cmp r0, 0x1
bhi _080E0EFC
- ldr r1, _080E0F18 @ =gUnknown_03004B00
+ ldr r1, _080E0F18 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_080E0EFC:
ldrb r0, [r2]
cmp r0, 0x2
bne _080E0F08
- ldr r1, _080E0F18 @ =gUnknown_03004B00
+ ldr r1, _080E0F18 @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_080E0F08:
@@ -46615,7 +46615,7 @@ _080E0F08:
bx r0
.align 2, 0
_080E0F14: .4byte gUnknown_0202F7C4
-_080E0F18: .4byte gUnknown_03004B00
+_080E0F18: .4byte gBattleAnimArgs
thumb_func_end sub_80E0EE8
thumb_func_start sub_80E0F1C
@@ -46743,12 +46743,12 @@ sub_80E1004: @ 80E1004
lsls r0, 24
cmp r0, 0
beq _080E1024
- ldr r1, _080E1068 @ =gUnknown_03004B00
+ ldr r1, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080E1024:
- ldr r4, _080E1068 @ =gUnknown_03004B00
+ ldr r4, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _080E106C @ =gUnknown_0202F7C9
@@ -46778,7 +46778,7 @@ _080E1024:
bx r0
.align 2, 0
_080E1064: .4byte gUnknown_0202F7C8
-_080E1068: .4byte gUnknown_03004B00
+_080E1068: .4byte gBattleAnimArgs
_080E106C: .4byte gUnknown_0202F7C9
_080E1070: .4byte sub_8078B34
_080E1074: .4byte move_anim_8072740
@@ -46827,7 +46827,7 @@ _080E10C0:
lsls r0, 16
lsrs r4, r0, 16
_080E10D0:
- ldr r0, _080E10FC @ =gUnknown_03004B00
+ ldr r0, _080E10FC @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r6, 0x2E]
mov r1, r8
@@ -46847,7 +46847,7 @@ _080E10D0:
bx r0
.align 2, 0
_080E10F8: .4byte gUnknown_0202F7C9
-_080E10FC: .4byte gUnknown_03004B00
+_080E10FC: .4byte gBattleAnimArgs
_080E1100: .4byte sub_8078B34
_080E1104: .4byte move_anim_8074EE0
thumb_func_end sub_80E1078
@@ -46867,7 +46867,7 @@ sub_80E1108: @ 80E1108
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r6, _080E1170 @ =gUnknown_03004B00
+ ldr r6, _080E1170 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -46904,7 +46904,7 @@ _080E1162:
.align 2, 0
_080E1168: .4byte 0x000003ff
_080E116C: .4byte 0xfffffc00
-_080E1170: .4byte gUnknown_03004B00
+_080E1170: .4byte gBattleAnimArgs
_080E1174: .4byte gUnknown_0202F7C8
_080E1178: .4byte sub_80E1198
_080E117C:
@@ -47029,7 +47029,7 @@ sub_80E1244: @ 80E1244
lsls r0, 3
ldr r1, _080E1264 @ =gTasks
adds r1, r0, r1
- ldr r0, _080E1268 @ =gUnknown_03004B00
+ ldr r0, _080E1268 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -47038,7 +47038,7 @@ sub_80E1244: @ 80E1244
b _080E1272
.align 2, 0
_080E1264: .4byte gTasks
-_080E1268: .4byte gUnknown_03004B00
+_080E1268: .4byte gBattleAnimArgs
_080E126C: .4byte sub_80E1284
_080E1270:
ldr r0, _080E1280 @ =sub_80E143C
@@ -47334,7 +47334,7 @@ sub_80E149C: @ 80E149C
lsls r0, 3
ldr r1, _080E14BC @ =gTasks
adds r1, r0, r1
- ldr r0, _080E14C0 @ =gUnknown_03004B00
+ ldr r0, _080E14C0 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -47343,7 +47343,7 @@ sub_80E149C: @ 80E149C
b _080E14CA
.align 2, 0
_080E14BC: .4byte gTasks
-_080E14C0: .4byte gUnknown_03004B00
+_080E14C0: .4byte gBattleAnimArgs
_080E14C4: .4byte sub_80E14DC
_080E14C8:
ldr r0, _080E14D8 @ =sub_80E1560
@@ -47662,7 +47662,7 @@ _080E1724: .4byte 0xa2600001
sub_80E1728: @ 80E1728
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080E173C @ =gUnknown_03004B00
+ ldr r0, _080E173C @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r7, r0, 0
@@ -47671,7 +47671,7 @@ sub_80E1728: @ 80E1728
ldr r0, _080E1740 @ =gUnknown_0202F7C8
b _080E1746
.align 2, 0
-_080E173C: .4byte gUnknown_03004B00
+_080E173C: .4byte gBattleAnimArgs
_080E1740: .4byte gUnknown_0202F7C8
_080E1744:
ldr r0, _080E17A8 @ =gUnknown_0202F7C9
@@ -47747,7 +47747,7 @@ _080E17C4:
sub_80E17CC: @ 80E17CC
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080E17E0 @ =gUnknown_03004B00
+ ldr r0, _080E17E0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -47755,7 +47755,7 @@ sub_80E17CC: @ 80E17CC
ldr r0, _080E17E4 @ =gUnknown_0202F7C8
b _080E17EA
.align 2, 0
-_080E17E0: .4byte gUnknown_03004B00
+_080E17E0: .4byte gBattleAnimArgs
_080E17E4: .4byte gUnknown_0202F7C8
_080E17E8:
ldr r0, _080E1848 @ =gUnknown_0202F7C9
@@ -47768,7 +47768,7 @@ _080E17EA:
lsrs r0, 24
ldr r2, _080E184C @ =0x0000fff0
adds r0, r2
- ldr r4, _080E1850 @ =gUnknown_03004B00
+ ldr r4, _080E1850 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r4, r3]
lsls r1, 5
@@ -47807,7 +47807,7 @@ _080E17EA:
.align 2, 0
_080E1848: .4byte gUnknown_0202F7C9
_080E184C: .4byte 0x0000fff0
-_080E1850: .4byte gUnknown_03004B00
+_080E1850: .4byte gBattleAnimArgs
_080E1854: .4byte 0x000003ff
_080E1858: .4byte 0xfffffc00
_080E185C: .4byte move_anim_8072740
@@ -47824,7 +47824,7 @@ sub_80E1864: @ 80E1864
lsls r0, 3
ldr r1, _080E1888 @ =gTasks
adds r4, r0, r1
- ldr r0, _080E188C @ =gUnknown_03004B00
+ ldr r0, _080E188C @ =gBattleAnimArgs
ldrh r2, [r0, 0x2]
movs r3, 0x2
ldrsh r1, [r0, r3]
@@ -47835,7 +47835,7 @@ sub_80E1864: @ 80E1864
b _080E189C
.align 2, 0
_080E1888: .4byte gTasks
-_080E188C: .4byte gUnknown_03004B00
+_080E188C: .4byte gBattleAnimArgs
_080E1890:
ldr r0, _080E18BC @ =gUnknown_0202F7BC
ldrh r0, [r0]
@@ -48252,7 +48252,7 @@ sub_80E1B88: @ 80E1B88
push {lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r3, _080E1BA8 @ =gUnknown_03004B00
+ ldr r3, _080E1BA8 @ =gBattleAnimArgs
movs r2, 0
ldr r0, _080E1BAC @ =gUnknown_0202F7BC
ldrh r0, [r0]
@@ -48266,7 +48266,7 @@ _080E1B9C:
pop {r0}
bx r0
.align 2, 0
-_080E1BA8: .4byte gUnknown_03004B00
+_080E1BA8: .4byte gBattleAnimArgs
_080E1BAC: .4byte gUnknown_0202F7BC
thumb_func_end sub_80E1B88
@@ -48275,7 +48275,7 @@ sub_80E1BB0: @ 80E1BB0
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
- ldr r2, _080E1BC8 @ =gUnknown_03004B00
+ ldr r2, _080E1BC8 @ =gBattleAnimArgs
ldrh r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -48285,7 +48285,7 @@ sub_80E1BB0: @ 80E1BB0
ldr r0, _080E1BCC @ =gUnknown_0202F7C9
b _080E1BD2
.align 2, 0
-_080E1BC8: .4byte gUnknown_03004B00
+_080E1BC8: .4byte gBattleAnimArgs
_080E1BCC: .4byte gUnknown_0202F7C9
_080E1BD0:
ldr r0, _080E1C40 @ =gUnknown_0202F7C8
@@ -48361,7 +48361,7 @@ sub_80E1C58: @ 80E1C58
lsls r0, 3
ldr r1, _080E1C88 @ =gTasks
adds r2, r0, r1
- ldr r0, _080E1C8C @ =gUnknown_03004B00
+ ldr r0, _080E1C8C @ =gBattleAnimArgs
movs r4, 0xE
ldrsh r1, [r0, r4]
movs r4, 0xE
@@ -48378,7 +48378,7 @@ sub_80E1C58: @ 80E1C58
b _080E1CA4
.align 2, 0
_080E1C88: .4byte gTasks
-_080E1C8C: .4byte gUnknown_03004B00
+_080E1C8C: .4byte gBattleAnimArgs
_080E1C90: .4byte gUnknown_030041B0
_080E1C94: .4byte gUnknown_030041B8
_080E1C98:
@@ -48401,7 +48401,7 @@ _080E1CB0: .4byte gUnknown_030041B8
sub_80E1CB4: @ 80E1CB4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E1CEC @ =gUnknown_03004B00
+ ldr r5, _080E1CEC @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -48426,7 +48426,7 @@ sub_80E1CB4: @ 80E1CB4
strh r0, [r4, 0x36]
b _080E1D02
.align 2, 0
-_080E1CEC: .4byte gUnknown_03004B00
+_080E1CEC: .4byte gBattleAnimArgs
_080E1CF0: .4byte gUnknown_0202F7C8
_080E1CF4:
ldrh r0, [r5, 0x6]
@@ -48436,7 +48436,7 @@ _080E1CF4:
movs r1, 0x1
bl StartSpriteAnim
_080E1D02:
- ldr r0, _080E1D18 @ =gUnknown_03004B00
+ ldr r0, _080E1D18 @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r4, 0x34]
ldr r1, _080E1D1C @ =sub_80E1D20
@@ -48447,7 +48447,7 @@ _080E1D02:
pop {r0}
bx r0
.align 2, 0
-_080E1D18: .4byte gUnknown_03004B00
+_080E1D18: .4byte gBattleAnimArgs
_080E1D1C: .4byte sub_80E1D20
thumb_func_end sub_80E1CB4
@@ -48510,7 +48510,7 @@ sub_80E1D84: @ 80E1D84
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, _080E1DBC @ =gUnknown_03004B00
+ ldr r4, _080E1DBC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80E1DC4
@@ -48534,7 +48534,7 @@ sub_80E1D84: @ 80E1D84
pop {r0}
bx r0
.align 2, 0
-_080E1DBC: .4byte gUnknown_03004B00
+_080E1DBC: .4byte gBattleAnimArgs
_080E1DC0: .4byte sub_80E1E0C
thumb_func_end sub_80E1D84
@@ -48600,7 +48600,7 @@ _080E1E28: .4byte gPaletteFade
sub_80E1E2C: @ 80E1E2C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E1E78 @ =gUnknown_03004B00
+ ldr r4, _080E1E78 @ =gBattleAnimArgs
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x2E]
strh r0, [r5, 0x30]
@@ -48634,7 +48634,7 @@ sub_80E1E2C: @ 80E1E2C
pop {r0}
bx r0
.align 2, 0
-_080E1E78: .4byte gUnknown_03004B00
+_080E1E78: .4byte gBattleAnimArgs
_080E1E7C: .4byte sub_80E1E80
thumb_func_end sub_80E1E2C
@@ -48741,7 +48741,7 @@ _080E1F38: .4byte gPaletteFade
sub_80E1F3C: @ 80E1F3C
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080E1F80 @ =gUnknown_03004B00
+ ldr r1, _080E1F80 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -48772,7 +48772,7 @@ sub_80E1F3C: @ 80E1F3C
pop {r0}
bx r0
.align 2, 0
-_080E1F80: .4byte gUnknown_03004B00
+_080E1F80: .4byte gBattleAnimArgs
_080E1F84: .4byte move_anim_8074EE0
_080E1F88: .4byte sub_8078174
thumb_func_end sub_80E1F3C
@@ -48787,7 +48787,7 @@ sub_80E1F8C: @ 80E1F8C
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r3, _080E1FD4 @ =gUnknown_03004B00
+ ldr r3, _080E1FD4 @ =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
@@ -48813,7 +48813,7 @@ sub_80E1F8C: @ 80E1F8C
bx r0
.align 2, 0
_080E1FD0: .4byte gTasks
-_080E1FD4: .4byte gUnknown_03004B00
+_080E1FD4: .4byte gBattleAnimArgs
_080E1FD8: .4byte sub_80E202C
thumb_func_end sub_80E1F8C
@@ -48927,7 +48927,7 @@ sub_80E2094: @ 80E2094
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r3, _080E20DC @ =gUnknown_03004B00
+ ldr r3, _080E20DC @ =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
@@ -48953,7 +48953,7 @@ sub_80E2094: @ 80E2094
bx r0
.align 2, 0
_080E20D8: .4byte gTasks
-_080E20DC: .4byte gUnknown_03004B00
+_080E20DC: .4byte gBattleAnimArgs
_080E20E0: .4byte sub_80E2140
thumb_func_end sub_80E2094
@@ -49073,7 +49073,7 @@ sub_80E21A8: @ 80E21A8
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r5, _080E220C @ =gUnknown_03004B00
+ ldr r5, _080E220C @ =gBattleAnimArgs
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r5, 0x2]
@@ -49112,7 +49112,7 @@ sub_80E21A8: @ 80E21A8
bx r0
.align 2, 0
_080E2208: .4byte gTasks
-_080E220C: .4byte gUnknown_03004B00
+_080E220C: .4byte gBattleAnimArgs
_080E2210: .4byte sub_80E2214
thumb_func_end sub_80E21A8
@@ -49269,7 +49269,7 @@ sub_80E2324: @ 80E2324
ldrb r6, [r0]
ldr r0, _080E23A0 @ =gUnknown_0202F7C9
ldrb r7, [r0]
- ldr r4, _080E23A4 @ =gUnknown_03004B00
+ ldr r4, _080E23A4 @ =gBattleAnimArgs
ldrh r1, [r4]
movs r5, 0x80
lsls r5, 1
@@ -49319,7 +49319,7 @@ _080E2382:
.align 2, 0
_080E239C: .4byte gUnknown_0202F7C8
_080E23A0: .4byte gUnknown_0202F7C9
-_080E23A4: .4byte gUnknown_03004B00
+_080E23A4: .4byte gBattleAnimArgs
thumb_func_end sub_80E2324
thumb_func_start unref_sub_80E23A8
@@ -49342,7 +49342,7 @@ unref_sub_80E23A8: @ 80E23A8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080E23EA
- ldr r1, _080E24A0 @ =gUnknown_03004B00
+ ldr r1, _080E24A0 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0xC]
ldrh r0, [r1, 0x2]
@@ -49450,7 +49450,7 @@ _080E248E:
bx r0
.align 2, 0
_080E249C: .4byte gTasks
-_080E24A0: .4byte gUnknown_03004B00
+_080E24A0: .4byte gBattleAnimArgs
_080E24A4: .4byte gUnknown_0202F7C8
_080E24A8: .4byte gUnknown_0202F7C9
_080E24AC: .4byte 0x0000ffff
@@ -49468,7 +49468,7 @@ sub_80E24B8: @ 80E24B8
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r1, _080E24EC @ =gUnknown_03004B00
+ ldr r1, _080E24EC @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r4, 0x2E]
@@ -49487,7 +49487,7 @@ sub_80E24B8: @ 80E24B8
beq _080E24F6
b _080E2518
.align 2, 0
-_080E24EC: .4byte gUnknown_03004B00
+_080E24EC: .4byte gBattleAnimArgs
_080E24F0:
cmp r0, 0x2
beq _080E2508
@@ -49523,7 +49523,7 @@ _080E2520:
orrs r1, r0
ldr r0, [r1]
strh r0, [r4, 0x36]
- ldr r0, _080E2554 @ =gUnknown_03004B00
+ ldr r0, _080E2554 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x38]
subs r0, 0x2
@@ -49540,7 +49540,7 @@ _080E2544:
bx r0
.align 2, 0
_080E2550: .4byte gSpriteCoordOffsetY
-_080E2554: .4byte gUnknown_03004B00
+_080E2554: .4byte gBattleAnimArgs
_080E2558: .4byte sub_80E255C
thumb_func_end sub_80E24B8
@@ -49670,7 +49670,7 @@ sub_80E260C: @ 80E260C
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
- ldr r0, _080E2690 @ =gUnknown_03004B00
+ ldr r0, _080E2690 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x2
@@ -49702,7 +49702,7 @@ _080E2680: .4byte gSprites
_080E2684: .4byte gUnknown_02024BE0
_080E2688: .4byte gUnknown_0202F7C8
_080E268C: .4byte gUnknown_0202F7C9
-_080E2690: .4byte gUnknown_03004B00
+_080E2690: .4byte gBattleAnimArgs
_080E2694:
cmp r0, 0
bne _080E269C
@@ -49738,7 +49738,7 @@ sub_80E26BC: @ 80E26BC
adds r2, r0
lsls r2, 3
adds r2, r1
- ldr r3, _080E2700 @ =gUnknown_03004B00
+ ldr r3, _080E2700 @ =gBattleAnimArgs
ldrh r1, [r3]
strh r1, [r2, 0x8]
ldrh r1, [r3, 0x2]
@@ -49763,7 +49763,7 @@ sub_80E26BC: @ 80E26BC
bx r0
.align 2, 0
_080E26FC: .4byte gTasks
-_080E2700: .4byte gUnknown_03004B00
+_080E2700: .4byte gBattleAnimArgs
_080E2704: .4byte gUnknown_030041B0
_080E2708: .4byte gUnknown_030041B8
_080E270C: .4byte sub_80E2710
@@ -49852,7 +49852,7 @@ _080E279A:
sub_80E27A0: @ 80E27A0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E27C0 @ =gUnknown_03004B00
+ ldr r4, _080E27C0 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -49864,7 +49864,7 @@ sub_80E27A0: @ 80E27A0
bl sub_80787B0
b _080E27CC
.align 2, 0
-_080E27C0: .4byte gUnknown_03004B00
+_080E27C0: .4byte gBattleAnimArgs
_080E27C4:
adds r0, r5, 0
movs r1, 0x1
@@ -49887,7 +49887,7 @@ _080E27E4: .4byte move_anim_8072740
sub_80E27E8: @ 80E27E8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E2808 @ =gUnknown_03004B00
+ ldr r4, _080E2808 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -49899,13 +49899,13 @@ sub_80E27E8: @ 80E27E8
bl sub_80787B0
b _080E2814
.align 2, 0
-_080E2808: .4byte gUnknown_03004B00
+_080E2808: .4byte gBattleAnimArgs
_080E280C:
adds r0, r5, 0
movs r1, 0x1
bl sub_8078764
_080E2814:
- ldr r0, _080E282C @ =gUnknown_03004B00
+ ldr r0, _080E282C @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080E2830 @ =sub_80785E4
@@ -49917,7 +49917,7 @@ _080E2814:
pop {r0}
bx r0
.align 2, 0
-_080E282C: .4byte gUnknown_03004B00
+_080E282C: .4byte gBattleAnimArgs
_080E2830: .4byte sub_80785E4
_080E2834: .4byte sub_80DA48C
thumb_func_end sub_80E27E8
@@ -49936,7 +49936,7 @@ sub_80E2838: @ 80E2838
lsls r0, 24
cmp r0, 0
bne _080E285C
- ldr r1, _080E286C @ =gUnknown_03004B00
+ ldr r1, _080E286C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -49948,14 +49948,14 @@ _080E285C:
bx r0
.align 2, 0
_080E2868: .4byte gUnknown_0202F7C8
-_080E286C: .4byte gUnknown_03004B00
+_080E286C: .4byte gBattleAnimArgs
thumb_func_end sub_80E2838
thumb_func_start sub_80E2870
sub_80E2870: @ 80E2870
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E28A8 @ =gUnknown_03004B00
+ ldr r5, _080E28A8 @ =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r5, r0]
movs r0, 0x1
@@ -49979,7 +49979,7 @@ _080E288C:
bl sub_80787B0
b _080E28B4
.align 2, 0
-_080E28A8: .4byte gUnknown_03004B00
+_080E28A8: .4byte gBattleAnimArgs
_080E28AC:
adds r0, r4, 0
movs r1, 0
@@ -50024,7 +50024,7 @@ _080E2904: .4byte sub_80785E4
sub_80E2908: @ 80E2908
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E2968 @ =gUnknown_03004B00
+ ldr r5, _080E2968 @ =gBattleAnimArgs
ldrb r0, [r5]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -50067,7 +50067,7 @@ sub_80E2908: @ 80E2908
pop {r0}
bx r0
.align 2, 0
-_080E2968: .4byte gUnknown_03004B00
+_080E2968: .4byte gBattleAnimArgs
_080E296C: .4byte gSprites
_080E2970: .4byte move_anim_8074EE0
_080E2974: .4byte sub_80785E4
@@ -50077,7 +50077,7 @@ _080E2974: .4byte sub_80785E4
sub_80E2978: @ 80E2978
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E2990 @ =gUnknown_03004B00
+ ldr r0, _080E2990 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -50087,13 +50087,13 @@ sub_80E2978: @ 80E2978
bl sub_80787B0
b _080E299C
.align 2, 0
-_080E2990: .4byte gUnknown_03004B00
+_080E2990: .4byte gBattleAnimArgs
_080E2994:
adds r0, r4, 0
movs r1, 0x1
bl sub_8078764
_080E299C:
- ldr r0, _080E29B4 @ =gUnknown_03004B00
+ ldr r0, _080E29B4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x2E]
ldr r1, _080E29B8 @ =move_anim_8072740
@@ -50105,7 +50105,7 @@ _080E299C:
pop {r0}
bx r0
.align 2, 0
-_080E29B4: .4byte gUnknown_03004B00
+_080E29B4: .4byte gBattleAnimArgs
_080E29B8: .4byte move_anim_8072740
_080E29BC: .4byte sub_80782D8
thumb_func_end sub_80E2978
@@ -50114,7 +50114,7 @@ _080E29BC: .4byte sub_80782D8
sub_80E29C0: @ 80E29C0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E29E0 @ =gUnknown_03004B00
+ ldr r4, _080E29E0 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -50126,7 +50126,7 @@ sub_80E29C0: @ 80E29C0
bl sub_80787B0
b _080E29EC
.align 2, 0
-_080E29E0: .4byte gUnknown_03004B00
+_080E29E0: .4byte gBattleAnimArgs
_080E29E4:
adds r0, r5, 0
movs r1, 0x1
@@ -50180,7 +50180,7 @@ sub_80E2A38: @ 80E2A38
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _080E2A78 @ =gUnknown_03004B00
+ ldr r4, _080E2A78 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80E1DC4
@@ -50205,7 +50205,7 @@ sub_80E2A38: @ 80E2A38
pop {r0}
bx r0
.align 2, 0
-_080E2A78: .4byte gUnknown_03004B00
+_080E2A78: .4byte gBattleAnimArgs
thumb_func_end sub_80E2A38
thumb_func_start sub_80E2A7C
@@ -50220,7 +50220,7 @@ sub_80E2A7C: @ 80E2A7C
movs r0, 0x1
bl sub_80E1DC4
adds r5, r0, 0
- ldr r0, _080E2AA8 @ =gUnknown_03004B00
+ ldr r0, _080E2AA8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x7
@@ -50231,7 +50231,7 @@ sub_80E2A7C: @ 80E2A7C
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E2AA8: .4byte gUnknown_03004B00
+_080E2AA8: .4byte gBattleAnimArgs
_080E2AAC: .4byte _080E2AB0
.align 2, 0
_080E2AB0:
@@ -50340,12 +50340,12 @@ sub_80E2B74: @ 80E2B74
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E2B98 @ =gUnknown_03004B00
+ ldr r0, _080E2B98 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80E1DC4
adds r2, r0, 0
- ldr r0, _080E2B9C @ =gUnknown_0300428C
+ ldr r0, _080E2B9C @ =gBattleTerrain
ldrb r0, [r0]
cmp r0, 0x9
bhi _080E2C4A
@@ -50355,8 +50355,8 @@ sub_80E2B74: @ 80E2B74
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E2B98: .4byte gUnknown_03004B00
-_080E2B9C: .4byte gUnknown_0300428C
+_080E2B98: .4byte gBattleAnimArgs
+_080E2B9C: .4byte gBattleTerrain
_080E2BA0: .4byte _080E2BA4
.align 2, 0
_080E2BA4:
@@ -50371,63 +50371,63 @@ _080E2BA4:
.4byte _080E2C44
.4byte _080E2C44
_080E2BCC:
- ldr r1, _080E2BD4 @ =gUnknown_03004B00
+ ldr r1, _080E2BD4 @ =gBattleAnimArgs
ldr r0, _080E2BD8 @ =0x00000b0c
b _080E2C48
.align 2, 0
-_080E2BD4: .4byte gUnknown_03004B00
+_080E2BD4: .4byte gBattleAnimArgs
_080E2BD8: .4byte 0x00000b0c
_080E2BDC:
- ldr r1, _080E2BE4 @ =gUnknown_03004B00
+ ldr r1, _080E2BE4 @ =gBattleAnimArgs
movs r0, 0x9E
lsls r0, 4
b _080E2C48
.align 2, 0
-_080E2BE4: .4byte gUnknown_03004B00
+_080E2BE4: .4byte gBattleAnimArgs
_080E2BE8:
- ldr r1, _080E2BF0 @ =gUnknown_03004B00
+ ldr r1, _080E2BF0 @ =gBattleAnimArgs
ldr r0, _080E2BF4 @ =0x00002f1e
b _080E2C48
.align 2, 0
-_080E2BF0: .4byte gUnknown_03004B00
+_080E2BF0: .4byte gBattleAnimArgs
_080E2BF4: .4byte 0x00002f1e
_080E2BF8:
- ldr r1, _080E2C00 @ =gUnknown_03004B00
+ ldr r1, _080E2C00 @ =gBattleAnimArgs
movs r0, 0x90
lsls r0, 7
b _080E2C48
.align 2, 0
-_080E2C00: .4byte gUnknown_03004B00
+_080E2C00: .4byte gBattleAnimArgs
_080E2C04:
- ldr r1, _080E2C0C @ =gUnknown_03004B00
+ ldr r1, _080E2C0C @ =gBattleAnimArgs
ldr r0, _080E2C10 @ =0x00007ecb
b _080E2C48
.align 2, 0
-_080E2C0C: .4byte gUnknown_03004B00
+_080E2C0C: .4byte gBattleAnimArgs
_080E2C10: .4byte 0x00007ecb
_080E2C14:
- ldr r1, _080E2C1C @ =gUnknown_03004B00
+ ldr r1, _080E2C1C @ =gBattleAnimArgs
ldr r0, _080E2C20 @ =0x00007ecb
b _080E2C48
.align 2, 0
-_080E2C1C: .4byte gUnknown_03004B00
+_080E2C1C: .4byte gBattleAnimArgs
_080E2C20: .4byte 0x00007ecb
_080E2C24:
- ldr r1, _080E2C2C @ =gUnknown_03004B00
+ ldr r1, _080E2C2C @ =gBattleAnimArgs
ldr r0, _080E2C30 @ =0x00002a16
b _080E2C48
.align 2, 0
-_080E2C2C: .4byte gUnknown_03004B00
+_080E2C2C: .4byte gBattleAnimArgs
_080E2C30: .4byte 0x00002a16
_080E2C34:
- ldr r1, _080E2C3C @ =gUnknown_03004B00
+ ldr r1, _080E2C3C @ =gBattleAnimArgs
ldr r0, _080E2C40 @ =0x00000d2e
b _080E2C48
.align 2, 0
-_080E2C3C: .4byte gUnknown_03004B00
+_080E2C3C: .4byte gBattleAnimArgs
_080E2C40: .4byte 0x00000d2e
_080E2C44:
- ldr r1, _080E2C58 @ =gUnknown_03004B00
+ ldr r1, _080E2C58 @ =gBattleAnimArgs
ldr r0, _080E2C5C @ =0x00007fff
_080E2C48:
strh r0, [r1, 0x8]
@@ -50439,7 +50439,7 @@ _080E2C4A:
pop {r0}
bx r0
.align 2, 0
-_080E2C58: .4byte gUnknown_03004B00
+_080E2C58: .4byte gBattleAnimArgs
_080E2C5C: .4byte 0x00007fff
thumb_func_end sub_80E2B74
@@ -50449,7 +50449,7 @@ sub_80E2C60: @ 80E2C60
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E2C88 @ =gUnknown_03004B00
+ ldr r0, _080E2C88 @ =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -50463,7 +50463,7 @@ sub_80E2C60: @ 80E2C60
pop {r0}
bx r0
.align 2, 0
-_080E2C88: .4byte gUnknown_03004B00
+_080E2C88: .4byte gBattleAnimArgs
thumb_func_end sub_80E2C60
thumb_func_start sub_80E2C8C
@@ -50479,7 +50479,7 @@ sub_80E2C8C: @ 80E2C8C
strh r1, [r2, 0x8]
lsrs r1, 16
strh r1, [r2, 0xA]
- ldr r3, _080E2CC8 @ =gUnknown_03004B00
+ ldr r3, _080E2CC8 @ =gBattleAnimArgs
ldrh r1, [r3, 0x2]
strh r1, [r2, 0xC]
ldrh r1, [r3, 0x4]
@@ -50497,7 +50497,7 @@ sub_80E2C8C: @ 80E2C8C
bx r0
.align 2, 0
_080E2CC4: .4byte gTasks
-_080E2CC8: .4byte gUnknown_03004B00
+_080E2CC8: .4byte gBattleAnimArgs
_080E2CCC: .4byte sub_80E2CD0
thumb_func_end sub_80E2C8C
@@ -50601,7 +50601,7 @@ sub_80E2D78: @ 80E2D78
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _080E2DAC @ =gUnknown_03004B00
+ ldr r4, _080E2DAC @ =gBattleAnimArgs
ldrb r0, [r4]
ldrb r1, [r4, 0x2]
ldrb r2, [r4, 0x4]
@@ -50621,7 +50621,7 @@ sub_80E2D78: @ 80E2D78
pop {r0}
bx r0
.align 2, 0
-_080E2DAC: .4byte gUnknown_03004B00
+_080E2DAC: .4byte gBattleAnimArgs
_080E2DB0: .4byte gTasks
_080E2DB4: .4byte sub_80E2DB8
thumb_func_end sub_80E2D78
@@ -50655,7 +50655,7 @@ sub_80E2DD8: @ 80E2DD8
lsls r1, 3
ldr r0, _080E2E04 @ =gTasks
adds r1, r0
- ldr r2, _080E2E08 @ =gUnknown_03004B00
+ ldr r2, _080E2E08 @ =gBattleAnimArgs
ldrh r0, [r2]
movs r3, 0
strh r0, [r1, 0x8]
@@ -50672,7 +50672,7 @@ sub_80E2DD8: @ 80E2DD8
bx lr
.align 2, 0
_080E2E04: .4byte gTasks
-_080E2E08: .4byte gUnknown_03004B00
+_080E2E08: .4byte gBattleAnimArgs
_080E2E0C: .4byte sub_80E2E10
thumb_func_end sub_80E2DD8
@@ -50892,7 +50892,7 @@ sub_80E2F2C: @ 80E2F2C
orrs r1, r0
strb r1, [r4]
_080E2FAC:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E3028
@@ -51274,7 +51274,7 @@ sub_80E32E0: @ 80E32E0
mov r7, r12
adds r7, 0x8
adds r5, r1, 0
- ldr r6, _080E3334 @ =gUnknown_03004B00
+ ldr r6, _080E3334 @ =gBattleAnimArgs
_080E3302:
lsls r0, r2, 1
adds r1, r0, r4
@@ -51300,7 +51300,7 @@ _080E3302:
.align 2, 0
_080E332C: .4byte gTasks
_080E3330: .4byte sub_80E3338
-_080E3334: .4byte gUnknown_03004B00
+_080E3334: .4byte gBattleAnimArgs
thumb_func_end sub_80E32E0
thumb_func_start sub_80E3338
@@ -51432,7 +51432,7 @@ _080E33C0:
orrs r1, r0
strb r1, [r4]
_080E3432:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E34A4
@@ -52197,7 +52197,7 @@ _080E3A26:
cmp r2, 0x3
bls _080E3A18
movs r2, 0x5
- ldr r0, _080E3A54 @ =gUnknown_03004B00
+ ldr r0, _080E3A54 @ =gBattleAnimArgs
adds r1, r0, 0
adds r1, 0x8
_080E3A34:
@@ -52215,7 +52215,7 @@ _080E3A34:
bx r0
.align 2, 0
_080E3A50: .4byte gUnknown_0202F7C8
-_080E3A54: .4byte gUnknown_03004B00
+_080E3A54: .4byte gBattleAnimArgs
thumb_func_end sub_80E3A08
thumb_func_start sub_80E3A58
@@ -52230,7 +52230,7 @@ sub_80E3A58: @ 80E3A58
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _080E3AC4 @ =gUnknown_03004B00
+ ldr r4, _080E3AC4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -52253,7 +52253,7 @@ _080E3A94:
adds r1, r5
lsls r1, 3
adds r1, r0
- ldr r2, _080E3AC4 @ =gUnknown_03004B00
+ ldr r2, _080E3AC4 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0xA]
ldrh r0, [r2, 0x2]
@@ -52270,7 +52270,7 @@ _080E3A94:
bx r0
.align 2, 0
_080E3AC0: .4byte sub_80E3AD0
-_080E3AC4: .4byte gUnknown_03004B00
+_080E3AC4: .4byte gBattleAnimArgs
_080E3AC8: .4byte gUnknown_0202F7C8
_080E3ACC: .4byte gTasks
thumb_func_end sub_80E3A58
@@ -52312,7 +52312,7 @@ sub_80E3AD0: @ 80E3AD0
strh r3, [r1, 0x1C]
ands r2, r0
strh r2, [r1, 0x1E]
- ldr r0, _080E3B48 @ =gUnknown_03004B00
+ ldr r0, _080E3B48 @ =gBattleAnimArgs
movs r3, 0xE
ldrsh r2, [r0, r3]
movs r7, 0xE
@@ -52334,7 +52334,7 @@ _080E3B36:
_080E3B3C: .4byte gTasks
_080E3B40: .4byte gUnknown_030041B0
_080E3B44: .4byte gUnknown_030041B8
-_080E3B48: .4byte gUnknown_03004B00
+_080E3B48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3AD0
thumb_func_start sub_80E3B4C
@@ -52346,7 +52346,7 @@ sub_80E3B4C: @ 80E3B4C
ldr r0, _080E3B70 @ =gUnknown_0202F7C8
ldrb r0, [r0]
bl battle_side_get_owner
- ldr r1, _080E3B74 @ =gUnknown_03004B00
+ ldr r1, _080E3B74 @ =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
@@ -52357,7 +52357,7 @@ sub_80E3B4C: @ 80E3B4C
bx r0
.align 2, 0
_080E3B70: .4byte gUnknown_0202F7C8
-_080E3B74: .4byte gUnknown_03004B00
+_080E3B74: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B4C
thumb_func_start sub_80E3B78
@@ -52369,7 +52369,7 @@ sub_80E3B78: @ 80E3B78
ldr r0, _080E3B9C @ =gUnknown_0202F7C9
ldrb r0, [r0]
bl battle_side_get_owner
- ldr r1, _080E3BA0 @ =gUnknown_03004B00
+ ldr r1, _080E3BA0 @ =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
@@ -52380,7 +52380,7 @@ sub_80E3B78: @ 80E3B78
bx r0
.align 2, 0
_080E3B9C: .4byte gUnknown_0202F7C9
-_080E3BA0: .4byte gUnknown_03004B00
+_080E3BA0: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B78
thumb_func_start sub_80E3BA4
@@ -52388,7 +52388,7 @@ sub_80E3BA4: @ 80E3BA4
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r5, _080E3BD0 @ =gUnknown_03004B00
+ ldr r5, _080E3BD0 @ =gBattleAnimArgs
movs r4, 0
ldr r0, _080E3BD4 @ =gUnknown_0202F7C8
ldrb r2, [r0]
@@ -52407,7 +52407,7 @@ _080E3BC0:
pop {r0}
bx r0
.align 2, 0
-_080E3BD0: .4byte gUnknown_03004B00
+_080E3BD0: .4byte gBattleAnimArgs
_080E3BD4: .4byte gUnknown_0202F7C8
_080E3BD8: .4byte gUnknown_0202F7C9
thumb_func_end sub_80E3BA4
@@ -52437,7 +52437,7 @@ _080E3BE6:
adds r2, r0
lsls r2, 2
adds r2, r6
- ldr r1, _080E3C48 @ =gUnknown_03004B00
+ ldr r1, _080E3C48 @ =gBattleAnimArgs
adds r2, 0x3E
movs r0, 0x1
ldrb r3, [r1]
@@ -52465,7 +52465,7 @@ _080E3C24:
_080E3C3C: .4byte gSprites
_080E3C40: .4byte gUnknown_0202F7C8
_080E3C44: .4byte gUnknown_02024BE0
-_080E3C48: .4byte gUnknown_03004B00
+_080E3C48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3BDC
thumb_func_start sub_80E3C4C
@@ -52935,16 +52935,16 @@ sub_80E4008: @ 80E4008
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E4020 @ =gUnknown_03004B00
- ldr r1, _080E4024 @ =gUnknown_0300428C
+ ldr r2, _080E4020 @ =gBattleAnimArgs
+ ldr r1, _080E4024 @ =gBattleTerrain
ldrb r1, [r1]
strh r1, [r2]
bl move_anim_task_del
pop {r0}
bx r0
.align 2, 0
-_080E4020: .4byte gUnknown_03004B00
-_080E4024: .4byte gUnknown_0300428C
+_080E4020: .4byte gBattleAnimArgs
+_080E4024: .4byte gBattleTerrain
thumb_func_end sub_80E4008
thumb_func_start sub_80E4028
@@ -52954,7 +52954,7 @@ sub_80E4028: @ 80E4028
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
- ldr r0, _080E4068 @ =gUnknown_03004B00
+ ldr r0, _080E4068 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -52982,7 +52982,7 @@ _080E405A:
beq _080E405A
b _080E4084
.align 2, 0
-_080E4068: .4byte gUnknown_03004B00
+_080E4068: .4byte gBattleAnimArgs
_080E406C:
cmp r0, 0x1
bne _080E4078
@@ -52999,7 +52999,7 @@ _080E407E:
adds r4, r0, 0
adds r4, 0x10
_080E4084:
- ldr r0, _080E40A0 @ =gUnknown_03004B00
+ ldr r0, _080E40A0 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r0, r1]
lsls r5, r0, 5
@@ -53011,7 +53011,7 @@ _080E4084:
b _080E40AA
.align 2, 0
_080E409C: .4byte gUnknown_0202F7C9
-_080E40A0: .4byte gUnknown_03004B00
+_080E40A0: .4byte gBattleAnimArgs
_080E40A4: .4byte 0x02014800
_080E40A8:
ldr r0, _080E40C8 @ =0x02018000
@@ -53041,7 +53041,7 @@ sub_80E40D0: @ 80E40D0
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
- ldr r0, _080E4110 @ =gUnknown_03004B00
+ ldr r0, _080E4110 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -53069,7 +53069,7 @@ _080E4102:
beq _080E4102
b _080E412C
.align 2, 0
-_080E4110: .4byte gUnknown_03004B00
+_080E4110: .4byte gBattleAnimArgs
_080E4114:
cmp r0, 0x1
bne _080E4120
@@ -53089,7 +53089,7 @@ _080E412C:
lsls r1, r4, 5
ldr r0, _080E414C @ =gPlttBufferUnfaded
adds r5, r1, r0
- ldr r0, _080E4150 @ =gUnknown_03004B00
+ ldr r0, _080E4150 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r0, r1]
lsls r4, r0, 5
@@ -53102,7 +53102,7 @@ _080E412C:
.align 2, 0
_080E4148: .4byte gUnknown_0202F7C9
_080E414C: .4byte gPlttBufferUnfaded
-_080E4150: .4byte gUnknown_03004B00
+_080E4150: .4byte gBattleAnimArgs
_080E4154: .4byte 0x02014800
_080E4158:
ldr r0, _080E4174 @ =0x02018000
@@ -53128,7 +53128,7 @@ sub_80E4178: @ 80E4178
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r0, _080E41B8 @ =gUnknown_03004B00
+ ldr r0, _080E41B8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -53156,7 +53156,7 @@ _080E41AA:
beq _080E41AA
b _080E41D4
.align 2, 0
-_080E41B8: .4byte gUnknown_03004B00
+_080E41B8: .4byte gBattleAnimArgs
_080E41BC:
cmp r0, 0x1
bne _080E41C8
@@ -53202,14 +53202,14 @@ sub_80E4200: @ 80E4200
lsrs r1, r0, 24
cmp r1, 0
beq _080E4220
- ldr r1, _080E421C @ =gUnknown_03004B00
+ ldr r1, _080E421C @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
b _080E4224
.align 2, 0
-_080E421C: .4byte gUnknown_03004B00
+_080E421C: .4byte gBattleAnimArgs
_080E4220:
- ldr r0, _080E4230 @ =gUnknown_03004B00
+ ldr r0, _080E4230 @ =gBattleAnimArgs
strh r1, [r0, 0xE]
_080E4224:
adds r0, r4, 0
@@ -53218,7 +53218,7 @@ _080E4224:
pop {r0}
bx r0
.align 2, 0
-_080E4230: .4byte gUnknown_03004B00
+_080E4230: .4byte gBattleAnimArgs
thumb_func_end sub_80E4200
thumb_func_start sub_80E4234
@@ -53260,15 +53260,15 @@ sub_80E4264: @ 80E4264
lsls r0, 24
cmp r4, r0
bne _080E4298
- ldr r1, _080E4294 @ =gUnknown_03004B00
+ ldr r1, _080E4294 @ =gBattleAnimArgs
movs r0, 0x1
b _080E429C
.align 2, 0
_080E428C: .4byte gUnknown_0202F7C8
_080E4290: .4byte gUnknown_0202F7C9
-_080E4294: .4byte gUnknown_03004B00
+_080E4294: .4byte gBattleAnimArgs
_080E4298:
- ldr r1, _080E42AC @ =gUnknown_03004B00
+ ldr r1, _080E42AC @ =gBattleAnimArgs
movs r0, 0
_080E429C:
strh r0, [r1, 0xE]
@@ -53278,7 +53278,7 @@ _080E429C:
pop {r0}
bx r0
.align 2, 0
-_080E42AC: .4byte gUnknown_03004B00
+_080E42AC: .4byte gBattleAnimArgs
thumb_func_end sub_80E4264
thumb_func_start sub_80E42B0
@@ -53378,7 +53378,7 @@ sub_80E4368: @ 80E4368
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E43B0 @ =gUnknown_03004B00
+ ldr r0, _080E43B0 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x80
@@ -53411,7 +53411,7 @@ _080E43A8:
pop {r0}
bx r0
.align 2, 0
-_080E43B0: .4byte gUnknown_03004B00
+_080E43B0: .4byte gBattleAnimArgs
_080E43B4: .4byte gUnknown_0202F7C8
_080E43B8: .4byte 0x02017800
_080E43BC: .4byte gTasks
@@ -53422,7 +53422,7 @@ sub_80E43C0: @ 80E43C0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E43D8 @ =gUnknown_020239F8
+ ldr r0, _080E43D8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53431,7 +53431,7 @@ sub_80E43C0: @ 80E43C0
ldr r0, _080E43DC @ =sub_80E4C34
b _080E4408
.align 2, 0
-_080E43D8: .4byte gUnknown_020239F8
+_080E43D8: .4byte gBattleTypeFlags
_080E43DC: .4byte sub_80E4C34
_080E43E0:
movs r0, 0x80
@@ -53560,7 +53560,7 @@ _080E44D0:
.4byte _080E4588
.4byte _080E46B8
_080E44E4:
- ldr r0, _080E44FC @ =gUnknown_020239F8
+ ldr r0, _080E44FC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53573,7 +53573,7 @@ _080E44E4:
movs r1, 0x10
b _080E450A
.align 2, 0
-_080E44FC: .4byte gUnknown_020239F8
+_080E44FC: .4byte gBattleTypeFlags
_080E4500:
lsls r0, r4, 2
adds r0, r4
@@ -53929,7 +53929,7 @@ _080E47B0:
adds r2, r0, r1
movs r3, 0x10
strh r3, [r2, 0x10]
- ldr r0, _080E47D0 @ =gUnknown_020239F8
+ ldr r0, _080E47D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53939,7 +53939,7 @@ _080E47B0:
b _080E47D8
.align 2, 0
_080E47CC: .4byte gTasks
-_080E47D0: .4byte gUnknown_020239F8
+_080E47D0: .4byte gBattleTypeFlags
_080E47D4:
movs r0, 0x1
strh r0, [r2, 0xC]
@@ -54246,7 +54246,7 @@ _080E4A14:
lsls r0, 3
adds r3, r0, r1
strh r2, [r3, 0x10]
- ldr r0, _080E4A5C @ =gUnknown_020239F8
+ ldr r0, _080E4A5C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -54260,7 +54260,7 @@ _080E4A4C: .4byte 0x00001842
_080E4A50: .4byte REG_BLDALPHA
_080E4A54: .4byte 0x00000808
_080E4A58: .4byte gTasks
-_080E4A5C: .4byte gUnknown_020239F8
+_080E4A5C: .4byte gBattleTypeFlags
_080E4A60:
movs r0, 0x1
_080E4A62:
diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s
new file mode 100644
index 000000000..bbdce5e93
--- /dev/null
+++ b/asm/battle_anim_813F0F4.s
@@ -0,0 +1,5740 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_813F0F4
+unref_sub_813F0F4: @ 813F0F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ ldr r0, _0813F2AC @ =gUnknown_0202F7C8
+ ldrb r3, [r0]
+ ldr r0, _0813F2B0 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0813F2B4 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _0813F2B8 @ =REG_WININ
+ ldr r2, _0813F2BC @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r4, _0813F2C0 @ =0x00003f3d
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0813F2C4 @ =REG_BLDCNT
+ ldr r2, _0813F2C8 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r4, 0x80
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r2, _0813F2CC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ ands r0, r1
+ movs r1, 0x4
+ mov r8, r1
+ mov r4, r8
+ orrs r0, r4
+ strb r0, [r2]
+ ldr r0, _0813F2D0 @ =gUnknown_03004340
+ adds r3, r0
+ ldrb r0, [r3]
+ ldr r1, _0813F2D4 @ =gSprites
+ mov r10, r1
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ add r4, r10
+ ldrb r7, [r4, 0x6]
+ ldrh r6, [r4, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F2D8 @ =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r0, _0813F2D8 @ =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ ldrb r1, [r4, 0x5]
+ mov r0, r9
+ ands r0, r1
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r5, r7, 4
+ adds r5, r7
+ lsls r5, 2
+ add r5, r10
+ ldrb r1, [r5, 0x5]
+ mov r0, r9
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r10
+ ldrb r2, [r1, 0x5]
+ mov r0, r9
+ ands r0, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [sp, 0x14]
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ mov r1, r10
+ adds r7, r6, r1
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x44
+ bl memcpy
+ ldr r2, [sp, 0x18]
+ lsls r4, r2, 4
+ adds r4, r2
+ lsls r4, 2
+ adds r0, r4, 0
+ add r0, r10
+ mov r8, r0
+ adds r1, r5, 0
+ movs r2, 0x44
+ bl memcpy
+ ldrb r1, [r7, 0x1]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x1]
+ mov r2, r8
+ ldrb r0, [r2, 0x1]
+ mov r2, r9
+ ands r2, r0
+ orrs r2, r1
+ mov r0, r8
+ strb r2, [r0, 0x1]
+ movs r1, 0x1C
+ add r10, r1
+ add r6, r10
+ ldr r2, _0813F2D8 @ =SpriteCallbackDummy
+ str r2, [r6]
+ add r4, r10
+ str r2, [r4]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _0813F2DC @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0813F2E0 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0813F2E4 @ =gUnknown_08D2EE48
+ bl LZDecompressVram
+ ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0813F2EC @ =gUnknown_08D2E150
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0813F2F0 @ =gUnknown_030042C0
+ ldrh r0, [r7, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F4 @ =gUnknown_030041B4
+ ldrh r0, [r7, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F8 @ =gTasks
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ strh r1, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0x8]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xC]
+ ldr r1, _0813F2FC @ =sub_813F300
+ str r1, [r0]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F2AC: .4byte gUnknown_0202F7C8
+_0813F2B0: .4byte gUnknown_030042C4
+_0813F2B4: .4byte gUnknown_03004240
+_0813F2B8: .4byte REG_WININ
+_0813F2BC: .4byte 0x00003f3f
+_0813F2C0: .4byte 0x00003f3d
+_0813F2C4: .4byte REG_BLDCNT
+_0813F2C8: .4byte 0x00003f42
+_0813F2CC: .4byte REG_BG1CNT
+_0813F2D0: .4byte gUnknown_03004340
+_0813F2D4: .4byte gSprites
+_0813F2D8: .4byte SpriteCallbackDummy
+_0813F2DC: .4byte 0x040000d4
+_0813F2E0: .4byte 0x85000400
+_0813F2E4: .4byte gUnknown_08D2EE48
+_0813F2E8: .4byte gUnknown_08D2EDFC
+_0813F2EC: .4byte gUnknown_08D2E150
+_0813F2F0: .4byte gUnknown_030042C0
+_0813F2F4: .4byte gUnknown_030041B4
+_0813F2F8: .4byte gTasks
+_0813F2FC: .4byte sub_813F300
+ thumb_func_end unref_sub_813F0F4
+
+ thumb_func_start sub_813F300
+sub_813F300: @ 813F300
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813F34C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r1, _0813F350 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ movs r3, 0
+ strh r1, [r4, 0x22]
+ ldr r2, _0813F354 @ =gUnknown_030041B4
+ lsls r0, r1, 16
+ lsrs r0, 24
+ ldrh r5, [r2]
+ adds r0, r5
+ strh r0, [r2]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x22]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F394
+ cmp r0, 0x1
+ bgt _0813F358
+ cmp r0, 0
+ beq _0813F35E
+ b _0813F4B2
+ .align 2, 0
+_0813F34C: .4byte gUnknown_0202F7C8
+_0813F350: .4byte gTasks
+_0813F354: .4byte gUnknown_030041B4
+_0813F358:
+ cmp r0, 0x2
+ beq _0813F3AC
+ b _0813F4B2
+_0813F35E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0813F36E
+ b _0813F4B2
+_0813F36E:
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _0813F390 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _0813F38C
+ b _0813F4B2
+_0813F38C:
+ b _0813F3A4
+ .align 2, 0
+_0813F390: .4byte REG_BLDALPHA
+_0813F394:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ beq _0813F3A4
+ b _0813F4B2
+_0813F3A4:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0813F4B2
+_0813F3AC:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0813F4B2
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r6, _0813F4C0 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r6]
+ movs r3, 0x20
+ ldrsh r5, [r4, r3]
+ cmp r5, 0
+ bne _0813F4B2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _0813F4C4 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _0813F4C8 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _0813F4CC @ =REG_WININ
+ ldr r2, _0813F4D0 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F406
+ ldr r2, _0813F4D4 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0813F406:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _0813F4D8 @ =REG_BLDCNT
+ strh r5, [r0]
+ strh r5, [r6]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813F4DC @ =gSprites
+ mov r8, r1
+ add r0, r8
+ bl DestroySprite
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _0813F4E0 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0813F4E4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r2, _0813F4D4 @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _0813F4E8 @ =gUnknown_03004340
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r6, [r1, 0x6]
+ ldrh r4, [r1, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r5, 0x4
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r8
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ add r0, r8
+ ldrb r1, [r0, 0x5]
+ ands r2, r1
+ orrs r2, r5
+ strb r2, [r0, 0x5]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0813F4B2:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F4C0: .4byte REG_BLDALPHA
+_0813F4C4: .4byte gUnknown_030042C4
+_0813F4C8: .4byte gUnknown_03004240
+_0813F4CC: .4byte REG_WININ
+_0813F4D0: .4byte 0x00003f3f
+_0813F4D4: .4byte REG_BG1CNT
+_0813F4D8: .4byte REG_BLDCNT
+_0813F4DC: .4byte gSprites
+_0813F4E0: .4byte 0x040000d4
+_0813F4E4: .4byte 0x85000200
+_0813F4E8: .4byte gUnknown_03004340
+ thumb_func_end sub_813F300
+
+ thumb_func_start sub_813F4EC
+sub_813F4EC: @ 813F4EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, _0813F5D0 @ =gUnknown_03004340
+ ldr r0, _0813F5D4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r7, _0813F5D8 @ =gSprites
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ adds r6, r7
+ ldrb r0, [r6, 0x6]
+ str r0, [sp, 0x4]
+ ldrh r4, [r6, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F5DC @ =0x0000d709
+ bl AllocSpritePalette
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r0, _0813F5E0 @ =0x0000d70a
+ bl AllocSpritePalette
+ mov r9, r0
+ mov r2, r9
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldrb r0, [r6, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r3, r1, 0
+ orrs r0, r3
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r7
+ ldrb r4, [r5, 0x5]
+ lsrs r4, 4
+ lsls r4, 4
+ orrs r4, r3
+ lsls r0, 1
+ ldr r2, _0813F5E4 @ =gPlttBufferUnfaded
+ mov r10, r2
+ add r0, r10
+ mov r1, r8
+ lsls r1, 4
+ mov r8, r1
+ adds r1, r3, r1
+ movs r2, 0x20
+ str r3, [sp, 0x8]
+ bl LoadPalette
+ lsls r4, 1
+ add r4, r10
+ mov r2, r9
+ lsls r2, 4
+ mov r9, r2
+ ldr r3, [sp, 0x8]
+ add r3, r9
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrb r1, [r6, 0x5]
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r1
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r6, 0x5]
+ ldr r0, [sp, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5, 0x5]
+ ands r2, r0
+ mov r0, r9
+ orrs r2, r0
+ strb r2, [r5, 0x5]
+ ldr r0, [sp]
+ bl move_anim_task_del
+ 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
+_0813F5D0: .4byte gUnknown_03004340
+_0813F5D4: .4byte gUnknown_0202F7C8
+_0813F5D8: .4byte gSprites
+_0813F5DC: .4byte 0x0000d709
+_0813F5E0: .4byte 0x0000d70a
+_0813F5E4: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_813F4EC
+
+ thumb_func_start sub_813F5E8
+sub_813F5E8: @ 813F5E8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0813F684 @ =gUnknown_03004340
+ ldr r0, _0813F688 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0813F68C @ =gSprites
+ mov r9, r1
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ add r5, r9
+ ldrb r0, [r5, 0x6]
+ mov r10, r0
+ ldrh r6, [r5, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F690 @ =0x0000d709
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F694 @ =0x0000d70a
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F698 @ =0x0000d6ff
+ bl IndexOfSpritePaletteTag
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F69C @ =0x0000d704
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsls r4, 4
+ ldrb r2, [r5, 0x5]
+ movs r3, 0xF
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r5, 0x5]
+ mov r1, r10
+ lsls r2, r1, 4
+ add r2, r10
+ lsls r2, 2
+ add r2, r9
+ ldrb r5, [r2, 0x5]
+ adds r1, r3, 0
+ ands r1, r5
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r9
+ lsrs r0, 20
+ ldrb r2, [r1, 0x5]
+ ands r3, r2
+ orrs r3, r0
+ strb r3, [r1, 0x5]
+ mov r0, r8
+ bl move_anim_task_del
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F684: .4byte gUnknown_03004340
+_0813F688: .4byte gUnknown_0202F7C8
+_0813F68C: .4byte gSprites
+_0813F690: .4byte 0x0000d709
+_0813F694: .4byte 0x0000d70a
+_0813F698: .4byte 0x0000d6ff
+_0813F69C: .4byte 0x0000d704
+ thumb_func_end sub_813F5E8
+
+ thumb_func_start sub_813F6A0
+sub_813F6A0: @ 813F6A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813F6C0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0813F6C4 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0x1E]
+ ldr r0, _0813F6C8 @ =sub_813F6CC
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0813F6C0: .4byte gTasks
+_0813F6C4: .4byte gBattleAnimArgs
+_0813F6C8: .4byte sub_813F6CC
+ thumb_func_end sub_813F6A0
+
+ thumb_func_start sub_813F6CC
+sub_813F6CC: @ 813F6CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F718 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r6, 0
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0813F78C
+ strh r6, [r4, 0x8]
+ ldr r0, _0813F71C @ =0x0000d709
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _0813F70A
+ movs r1, 0x6
+_0813F70A:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0813F720
+ cmp r0, 0x1
+ beq _0813F75C
+ b _0813F78C
+ .align 2, 0
+_0813F718: .4byte gTasks
+_0813F71C: .4byte 0x0000d709
+_0813F720:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0813F732
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+_0813F732:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F758 @ =0x00007f74
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _0813F78C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0813F78C
+ .align 2, 0
+_0813F758: .4byte 0x00007f74
+_0813F75C:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0813F76A
+ strh r6, [r4, 0xC]
+_0813F76A:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F794 @ =0x00007f74
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0813F78C
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813F78C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F794: .4byte 0x00007f74
+ thumb_func_end sub_813F6CC
+
+ thumb_func_start sub_813F798
+sub_813F798: @ 813F798
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813F7C4 @ =gUnknown_02024BE0
+ ldr r0, _0813F7C8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r5, [r0]
+ ldr r1, _0813F7CC @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F7E6
+ cmp r0, 0x1
+ bgt _0813F7D0
+ cmp r0, 0
+ beq _0813F7D6
+ b _0813F838
+ .align 2, 0
+_0813F7C4: .4byte gUnknown_02024BE0
+_0813F7C8: .4byte gUnknown_0202F7C8
+_0813F7CC: .4byte gTasks
+_0813F7D0:
+ cmp r0, 0x2
+ beq _0813F818
+ b _0813F838
+_0813F7D6:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x1C]
+ b _0813F80A
+_0813F7E6:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x30
+ strh r0, [r4, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ ldr r0, _0813F814 @ =0x000002cf
+ cmp r1, r0
+ ble _0813F838
+_0813F80A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0813F838
+ .align 2, 0
+_0813F814: .4byte 0x000002cf
+_0813F818:
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _0813F840 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0813F838:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F840: .4byte gSprites
+ thumb_func_end sub_813F798
+
+ thumb_func_start sub_813F844
+sub_813F844: @ 813F844
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F87C @ =gUnknown_02024BE0
+ ldr r4, _0813F880 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ mov r9, r1
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F88C
+ ldr r1, _0813F884 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F888 @ =gPlayerParty
+ b _0813F89C
+ .align 2, 0
+_0813F87C: .4byte gUnknown_02024BE0
+_0813F880: .4byte gUnknown_0202F7C8
+_0813F884: .4byte gUnknown_02024A6A
+_0813F888: .4byte gPlayerParty
+_0813F88C:
+ ldr r1, _0813F8CC @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F8D0 @ =gEnemyParty
+_0813F89C:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _0813F8D4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r0, 0x8
+ ldrsh r7, [r6, r0]
+ cmp r7, 0
+ beq _0813F8D8
+ cmp r7, 0x1
+ beq _0813F958
+ b _0813F982
+ .align 2, 0
+_0813F8CC: .4byte gUnknown_02024A6A
+_0813F8D0: .4byte gEnemyParty
+_0813F8D4: .4byte gTasks
+_0813F8D8:
+ ldr r5, _0813F950 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ ldr r2, _0813F954 @ =gSprites
+ mov r3, r9
+ lsls r0, r3, 4
+ add r0, r9
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r0, 0x43
+ ldrb r3, [r0]
+ movs r0, 0x80
+ lsls r0, 22
+ adds r1, r0
+ lsrs r1, 24
+ mov r0, r8
+ str r0, [sp]
+ adds r0, r4, 0
+ bl sub_814086C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1C]
+ str r7, [sp]
+ str r7, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+ ldrb r1, [r5]
+ movs r0, 0
+ mov r3, r8
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0813F982
+ .align 2, 0
+_0813F950: .4byte gUnknown_0202F7C8
+_0813F954: .4byte gSprites
+_0813F958:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ movs r3, 0x1E
+ ldrsh r0, [r6, r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813F982:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813F844
+
+ thumb_func_start sub_813F990
+sub_813F990: @ 813F990
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9B4 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80478DC
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9B4: .4byte gUnknown_02024C04
+ thumb_func_end sub_813F990
+
+ thumb_func_start sub_813F9B8
+sub_813F9B8: @ 813F9B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9DC @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_804794C
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9DC: .4byte gUnknown_02024C04
+ thumb_func_end sub_813F9B8
+
+ thumb_func_start sub_813F9E0
+sub_813F9E0: @ 813F9E0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0813F9F4 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FA00
+ ldr r1, _0813F9F8 @ =gBattleAnimArgs
+ ldr r0, _0813F9FC @ =0x0000ffff
+ b _0813FA04
+ .align 2, 0
+_0813F9F4: .4byte 0x02017840
+_0813F9F8: .4byte gBattleAnimArgs
+_0813F9FC: .4byte 0x0000ffff
+_0813FA00:
+ ldr r1, _0813FA10 @ =gBattleAnimArgs
+ movs r0, 0
+_0813FA04:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FA10: .4byte gBattleAnimArgs
+ thumb_func_end sub_813F9E0
+
+ thumb_func_start ball_number_to_ball_processing_index
+ball_number_to_ball_processing_index: @ 813FA14
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r0, 0xB
+ bhi _0813FA8C
+ lsls r0, 2
+ ldr r1, _0813FA2C @ =_0813FA30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813FA2C: .4byte _0813FA30
+ .align 2, 0
+_0813FA30:
+ .4byte _0813FA60
+ .4byte _0813FA64
+ .4byte _0813FA68
+ .4byte _0813FA8C
+ .4byte _0813FA6C
+ .4byte _0813FA70
+ .4byte _0813FA74
+ .4byte _0813FA78
+ .4byte _0813FA7C
+ .4byte _0813FA80
+ .4byte _0813FA84
+ .4byte _0813FA88
+_0813FA60:
+ movs r0, 0x4
+ b _0813FA8E
+_0813FA64:
+ movs r0, 0x3
+ b _0813FA8E
+_0813FA68:
+ movs r0, 0x1
+ b _0813FA8E
+_0813FA6C:
+ movs r0, 0x2
+ b _0813FA8E
+_0813FA70:
+ movs r0, 0x5
+ b _0813FA8E
+_0813FA74:
+ movs r0, 0x6
+ b _0813FA8E
+_0813FA78:
+ movs r0, 0x7
+ b _0813FA8E
+_0813FA7C:
+ movs r0, 0x8
+ b _0813FA8E
+_0813FA80:
+ movs r0, 0x9
+ b _0813FA8E
+_0813FA84:
+ movs r0, 0xA
+ b _0813FA8E
+_0813FA88:
+ movs r0, 0xB
+ b _0813FA8E
+_0813FA8C:
+ movs r0, 0
+_0813FA8E:
+ pop {r1}
+ bx r1
+ thumb_func_end ball_number_to_ball_processing_index
+
+ thumb_func_start sub_813FA94
+sub_813FA94: @ 813FA94
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r10, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _0813FB58 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ movs r1, 0x20
+ movs r2, 0x50
+ movs r3, 0x1D
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _0813FB60 @ =gSprites
+ mov r9, r1
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r1
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r2, _0813FB64 @ =gUnknown_0202F7C9
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FB68 @ =sub_813FD90
+ str r0, [r4]
+ ldr r3, _0813FB6C @ =0x02017840
+ ldr r1, _0813FB70 @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ lsls r1, 1
+ ldrb r2, [r3, 0x9]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x9]
+ ldr r1, _0813FB74 @ =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FB78 @ =sub_813FB7C
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FB58: .4byte gUnknown_02024C04
+_0813FB5C: .4byte gSpriteTemplate_820AAB4
+_0813FB60: .4byte gSprites
+_0813FB64: .4byte gUnknown_0202F7C9
+_0813FB68: .4byte sub_813FD90
+_0813FB6C: .4byte 0x02017840
+_0813FB70: .4byte gUnknown_02024BE0
+_0813FB74: .4byte gTasks
+_0813FB78: .4byte sub_813FB7C
+ thumb_func_end sub_813FA94
+
+ thumb_func_start sub_813FB7C
+sub_813FB7C: @ 813FB7C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0813FBAC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ ldr r2, _0813FBB0 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ ldr r0, _0813FBB4 @ =0x0000ffff
+ cmp r1, r0
+ bne _0813FBA6
+ adds r0, r3, 0
+ bl move_anim_task_del
+_0813FBA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FBAC: .4byte gTasks
+_0813FBB0: .4byte gSprites
+_0813FBB4: .4byte 0x0000ffff
+ thumb_func_end sub_813FB7C
+
+ thumb_func_start sub_813FBB8
+sub_813FBB8: @ 813FBB8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813FBD8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813FBDC
+ movs r6, 0x20
+ movs r5, 0xB
+ b _0813FBE0
+ .align 2, 0
+_0813FBD8: .4byte gBattleTypeFlags
+_0813FBDC:
+ movs r6, 0x17
+ movs r5, 0x5
+_0813FBE0:
+ ldr r0, _0813FC9C @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079E90
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0x20
+ movs r2, 0x50
+ orrs r5, r2
+ adds r2, r5, 0
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0813FCA4 @ =gSprites
+ mov r9, r0
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r0
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r1, _0813FCA8 @ =gUnknown_0202F7C9
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FCAC @ =SpriteCallbackDummy
+ str r0, [r4]
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0813FCB0 @ =gUnknown_02024BE0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, _0813FCB4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FCB8 @ =sub_813FCBC
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FC9C: .4byte gUnknown_02024C04
+_0813FCA0: .4byte gSpriteTemplate_820AAB4
+_0813FCA4: .4byte gSprites
+_0813FCA8: .4byte gUnknown_0202F7C9
+_0813FCAC: .4byte SpriteCallbackDummy
+_0813FCB0: .4byte gUnknown_02024BE0
+_0813FCB4: .4byte gTasks
+_0813FCB8: .4byte sub_813FCBC
+ thumb_func_end sub_813FBB8
+
+ thumb_func_start sub_813FCBC
+sub_813FCBC: @ 813FCBC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD1C @ =gSprites
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0813FD20 @ =gUnknown_02024BE0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813FD16
+ movs r0, 0x3D
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r0, _0813FD24 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813FD28 @ =sub_813FD90
+ str r1, [r0]
+ ldr r0, _0813FD2C @ =sub_813FD34
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _0813FD30 @ =sub_813FB7C
+ str r0, [r4]
+_0813FD16:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD1C: .4byte gSprites
+_0813FD20: .4byte gUnknown_02024BE0
+_0813FD24: .4byte gTasks
+_0813FD28: .4byte sub_813FD90
+_0813FD2C: .4byte sub_813FD34
+_0813FD30: .4byte sub_813FB7C
+ thumb_func_end sub_813FCBC
+
+ thumb_func_start sub_813FD34
+sub_813FD34: @ 813FD34
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD88 @ =gSprites
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _0813FD8C @ =gUnknown_02024BE0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _0813FD80
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl DestroyTask
+_0813FD80:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD88: .4byte gSprites
+_0813FD8C: .4byte gUnknown_02024BE0
+ thumb_func_end sub_813FD34
+
+ thumb_func_start sub_813FD90
+sub_813FD90: @ 813FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x32]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r2, [r4, 0x36]
+ ldr r0, _0813FDB8 @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _0813FDBC @ =sub_813FDC0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FDB8: .4byte 0x0000ffd8
+_0813FDBC: .4byte sub_813FDC0
+ thumb_func_end sub_813FD90
+
+ thumb_func_start sub_813FDC0
+sub_813FDC0: @ 813FDC0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813FE5A
+ ldr r0, _0813FDE0 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FDE8
+ ldr r0, _0813FDE4 @ =sub_81407B8
+ str r0, [r4, 0x1C]
+ b _0813FE5A
+ .align 2, 0
+_0813FDE0: .4byte 0x02017840
+_0813FDE4: .4byte sub_81407B8
+_0813FDE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ 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, 0x24]
+ strh r1, [r4, 0x26]
+ adds r1, r4, 0
+ adds r1, 0x2E
+ movs r2, 0
+ adds r0, r4, 0
+ adds r0, 0x3C
+_0813FE10:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _0813FE10
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FE64 @ =sub_813FE70
+ str r0, [r4, 0x1C]
+ ldr r0, _0813FE68 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _0813FE5A
+ cmp r5, 0
+ blt _0813FE5A
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _0813FE6C @ =gUnknown_0202F7C9
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_0813FE5A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FE64: .4byte sub_813FE70
+_0813FE68: .4byte gUnknown_02024C04
+_0813FE6C: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_813FDC0
+
+ thumb_func_start sub_813FE70
+sub_813FE70: @ 813FE70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0813FEAC
+ ldr r0, _0813FEB4 @ =TaskDummy
+ movs r1, 0x32
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FEB8 @ =sub_813FEC8
+ str r0, [r4, 0x1C]
+ ldr r2, _0813FEBC @ =gSprites
+ ldr r1, _0813FEC0 @ =gUnknown_02024BE0
+ ldr r0, _0813FEC4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+_0813FEAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FEB4: .4byte TaskDummy
+_0813FEB8: .4byte sub_813FEC8
+_0813FEBC: .4byte gSprites
+_0813FEC0: .4byte gUnknown_02024BE0
+_0813FEC4: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_813FE70
+
+ thumb_func_start sub_813FEC8
+sub_813FEC8: @ 813FEC8
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ ldr r1, _0813FF0C @ =gUnknown_02024BE0
+ ldr r0, _0813FF10 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r4, [r0]
+ ldrh r0, [r7, 0x38]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813FF14 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _0813FEFA
+ movs r0, 0x3C
+ bl PlaySE
+_0813FEFA:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0813FF70
+ cmp r0, 0x1
+ bgt _0813FF18
+ cmp r0, 0
+ beq _0813FF1E
+ b _0813FFDC
+ .align 2, 0
+_0813FF0C: .4byte gUnknown_02024BE0
+_0813FF10: .4byte gUnknown_0202F7C9
+_0813FF14: .4byte gTasks
+_0813FF18:
+ cmp r0, 0x2
+ beq _0813FFB4
+ b _0813FFDC
+_0813FF1E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x1C]
+ ldr r1, _0813FF60 @ =gUnknown_03005F0C
+ movs r0, 0x1C
+ str r0, [r1]
+ ldr r2, _0813FF64 @ =gUnknown_03005F14
+ ldr r1, _0813FF68 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ ldrh r0, [r7, 0x26]
+ ldrh r7, [r7, 0x22]
+ adds r0, r7
+ subs r1, r0
+ strh r1, [r2]
+ ldr r4, _0813FF6C @ =gUnknown_03005F10
+ ldrh r0, [r2]
+ lsls r0, 8
+ movs r1, 0x1C
+ bl __udivsi3
+ strh r0, [r4]
+ strh r0, [r5, 0xC]
+ b _0813FFCE
+ .align 2, 0
+_0813FF60: .4byte gUnknown_03005F0C
+_0813FF64: .4byte gUnknown_03005F14
+_0813FF68: .4byte gSprites
+_0813FF6C: .4byte gUnknown_03005F10
+_0813FF70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x20
+ strh r0, [r5, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0xC]
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _0813FFAC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r1, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r5, r0]
+ ldr r0, _0813FFB0 @ =0x0000047f
+ cmp r1, r0
+ ble _08140004
+ b _0813FFCE
+ .align 2, 0
+_0813FFAC: .4byte gSprites
+_0813FFB0: .4byte 0x0000047f
+_0813FFB4:
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _0813FFD8 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0813FFCE:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08140004
+ .align 2, 0
+_0813FFD8: .4byte gSprites
+_0813FFDC:
+ ldr r0, _0814000C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ ble _08140004
+ adds r0, r6, 0
+ bl DestroyTask
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r7, 0x38]
+ ldr r0, _08140010 @ =sub_8140014
+ str r0, [r7, 0x1C]
+_08140004:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814000C: .4byte gTasks
+_08140010: .4byte sub_8140014
+ thumb_func_end sub_813FEC8
+
+ thumb_func_start sub_8140014
+sub_8140014: @ 8140014
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0814004E
+ movs r1, 0
+ strh r1, [r4, 0x34]
+ movs r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ movs r0, 0
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldr r0, _08140054 @ =sub_8140058
+ str r0, [r4, 0x1C]
+_0814004E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140054: .4byte sub_8140058
+ thumb_func_end sub_8140014
+
+ thumb_func_start sub_8140058
+sub_8140058: @ 8140058
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0
+ beq _0814006E
+ cmp r1, 0x1
+ beq _081400E2
+ b _0814010E
+_0814006E:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ adds r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x3F
+ ble _0814010E
+ ldrh r0, [r4, 0x36]
+ subs r0, 0xA
+ strh r0, [r4, 0x36]
+ ldr r1, _081400B8 @ =0x00000101
+ adds r0, r2, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _081400AA
+ movs r5, 0x1
+_081400AA:
+ cmp r0, 0x2
+ beq _081400CA
+ cmp r0, 0x2
+ bgt _081400BC
+ cmp r0, 0x1
+ beq _081400C2
+ b _081400DA
+ .align 2, 0
+_081400B8: .4byte 0x00000101
+_081400BC:
+ cmp r0, 0x3
+ beq _081400D2
+ b _081400DA
+_081400C2:
+ movs r0, 0x38
+ bl PlaySE
+ b _0814010E
+_081400CA:
+ movs r0, 0x39
+ bl PlaySE
+ b _0814010E
+_081400D2:
+ movs r0, 0x3A
+ bl PlaySE
+ b _0814010E
+_081400DA:
+ movs r0, 0x3B
+ bl PlaySE
+ b _0814010E
+_081400E2:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ subs r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ subs r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _0814010E
+ strh r5, [r4, 0x38]
+ ldr r0, _08140138 @ =0xffffff00
+ ands r0, r2
+ strh r0, [r4, 0x34]
+_0814010E:
+ cmp r5, 0
+ beq _0814014E
+ movs r5, 0
+ strh r5, [r4, 0x34]
+ movs r0, 0x40
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ ldr r0, _0814013C @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08140144
+ strh r5, [r4, 0x38]
+ ldr r0, _08140140 @ =sub_8140410
+ str r0, [r4, 0x1C]
+ b _0814014E
+ .align 2, 0
+_08140138: .4byte 0xffffff00
+_0814013C: .4byte 0x02017840
+_08140140: .4byte sub_8140410
+_08140144:
+ ldr r0, _08140154 @ =sub_8140158
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+_0814014E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140154: .4byte sub_8140158
+ thumb_func_end sub_8140058
+
+ thumb_func_start sub_8140158
+sub_8140158: @ 8140158
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08140190
+ strh r5, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _08140198 @ =0x02017840
+ strh r5, [r0, 0xC]
+ ldr r0, _0814019C @ =sub_81401A0
+ str r0, [r4, 0x1C]
+ movs r0, 0x17
+ bl PlaySE
+_08140190:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140198: .4byte 0x02017840
+_0814019C: .4byte sub_81401A0
+ thumb_func_end sub_8140158
+
+ thumb_func_start sub_81401A0
+sub_81401A0: @ 81401A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x6
+ bls _081401B0
+ b _081403C4
+_081401B0:
+ lsls r0, r1, 2
+ ldr r1, _081401BC @ =_081401C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081401BC: .4byte _081401C0
+ .align 2, 0
+_081401C0:
+ .4byte _081401DC
+ .4byte _08140226
+ .4byte _0814026C
+ .4byte _081402C0
+ .4byte _08140310
+ .4byte _08140368
+ .4byte _081403C4
+_081401DC:
+ ldr r0, _081401F8 @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _081401FC
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140200
+ .align 2, 0
+_081401F8: .4byte 0x02017840
+_081401FC:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140200:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bhi _08140224
+ b _0814040A
+_08140224:
+ b _081402B4
+_08140226:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _081402CC
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140262
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_08140262:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_0814026C:
+ ldr r0, _08140288 @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _0814028C
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140290
+ .align 2, 0
+_08140288: .4byte 0x02017840
+_0814028C:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140290:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bhi _081402B4
+ b _0814040A
+_081402B4:
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ b _0814040A
+_081402C0:
+ ldrh r0, [r4, 0x38]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081402DA
+_081402CC:
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _0814040A
+_081402DA:
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140308
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _08140310
+_08140308:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_08140310:
+ ldr r0, _0814032C @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _08140330
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140334
+ .align 2, 0
+_0814032C: .4byte 0x02017840
+_08140330:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140334:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _0814040A
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ b _0814040A
+_08140368:
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r1, r0, 24
+ ldr r0, _08140394 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r1, r0
+ bne _0814039C
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08140398 @ =sub_8140410
+ str r0, [r4, 0x1C]
+ b _0814040A
+ .align 2, 0
+_08140394: .4byte 0x02017840
+_08140398: .4byte sub_8140410
+_0814039C:
+ cmp r0, 0x4
+ bne _081403B0
+ cmp r1, 0x3
+ bne _081403B0
+ ldr r0, _081403AC @ =sub_8140434
+ str r0, [r4, 0x1C]
+ b _081403B6
+ .align 2, 0
+_081403AC: .4byte sub_8140434
+_081403B0:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+_081403B6:
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ b _0814040A
+_081403C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814040A
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _081403F8 @ =0xffffff00
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _081403FC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _08140404
+ .align 2, 0
+_081403F8: .4byte 0xffffff00
+_081403FC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08140404:
+ movs r0, 0x17
+ bl PlaySE
+_0814040A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81401A0
+
+ thumb_func_start sub_8140410
+sub_8140410: @ 8140410
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x38]
+ adds r0, 0x1
+ strh r0, [r1, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814042A
+ movs r0, 0
+ strh r0, [r1, 0x38]
+ ldr r0, _08140430 @ =sub_81405F4
+ str r0, [r1, 0x1C]
+_0814042A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140430: .4byte sub_81405F4
+ thumb_func_end sub_8140410
+
+ thumb_func_start sub_8140434
+sub_8140434: @ 8140434
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08140450 @ =sub_8140454
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ bx lr
+ .align 2, 0
+_08140450: .4byte sub_8140454
+ thumb_func_end sub_8140434
+
+ thumb_func_start sub_8140454
+sub_8140454: @ 8140454
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _08140484 @ =gUnknown_0202F7C9
+ ldrh r0, [r6, 0x36]
+ adds r0, 0x1
+ strh r0, [r6, 0x36]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x28
+ beq _081404CC
+ cmp r1, 0x5F
+ bne _08140490
+ ldr r0, _08140488 @ =gUnknown_02024E6D
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+ bl m4aMPlayAllStop
+ ldr r0, _0814048C @ =0x00000173
+ bl PlaySE
+ b _081404CC
+ .align 2, 0
+_08140484: .4byte gUnknown_0202F7C9
+_08140488: .4byte gUnknown_02024E6D
+_0814048C: .4byte 0x00000173
+_08140490:
+ ldr r0, _081404D4 @ =0x0000013b
+ cmp r1, r0
+ bne _081404CC
+ ldr r5, _081404D8 @ =gSprites
+ ldr r4, _081404DC @ =gUnknown_02024BE0
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ movs r0, 0
+ strh r0, [r6, 0x2E]
+ ldr r0, _081404E0 @ =sub_81404E4
+ str r0, [r6, 0x1C]
+_081404CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081404D4: .4byte 0x0000013b
+_081404D8: .4byte gSprites
+_081404DC: .4byte gUnknown_02024BE0
+_081404E0: .4byte sub_81404E4
+ thumb_func_end sub_8140454
+
+ thumb_func_start sub_81404E4
+sub_81404E4: @ 81404E4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08140550
+ cmp r0, 0x1
+ bgt _081404FC
+ cmp r0, 0
+ beq _08140502
+ b _08140594
+_081404FC:
+ cmp r0, 0x2
+ beq _08140580
+ b _08140594
+_08140502:
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r1, _08140548 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, [r4, 0x14]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, _0814054C @ =0x00007fff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0814058C
+ .align 2, 0
+_08140548: .4byte REG_BLDCNT
+_0814054C: .4byte 0x00007fff
+_08140550:
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081405B2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ ldr r3, _0814057C @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081405B2
+ b _0814058C
+ .align 2, 0
+_0814057C: .4byte REG_BLDALPHA
+_08140580:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814058C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081405B2
+_08140594:
+ ldr r0, _081405BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081405B2
+ ldr r0, _081405C0 @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ strh r1, [r4, 0x2E]
+ ldr r0, _081405C4 @ =sub_81405C8
+ str r0, [r4, 0x1C]
+_081405B2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081405BC: .4byte gPaletteFade
+_081405C0: .4byte REG_BLDCNT
+_081405C4: .4byte sub_81405C8
+ thumb_func_end sub_81404E4
+
+ thumb_func_start sub_81405C8
+sub_81405C8: @ 81405C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081405E0
+ ldr r0, _081405DC @ =0x0000ffff
+ strh r0, [r4, 0x2E]
+ b _081405EC
+ .align 2, 0
+_081405DC: .4byte 0x0000ffff
+_081405E0:
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_081405EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81405C8
+
+ thumb_func_start sub_81405F4
+sub_81405F4: @ 81405F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _081406A8 @ =sub_81406BC
+ str r0, [r4, 0x1C]
+ ldr r0, _081406AC @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _08140646
+ cmp r5, 0
+ blt _08140646
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _081406B0 @ =gUnknown_0202F7C9
+ ldrb r1, [r0]
+ movs r0, 0x1
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_08140646:
+ ldr r6, _081406B4 @ =gSprites
+ ldr r5, _081406B8 @ =gUnknown_02024BE0
+ ldr r4, _081406B0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl AnimateSprite
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r0, 0x30]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081406A8: .4byte sub_81406BC
+_081406AC: .4byte gUnknown_02024C04
+_081406B0: .4byte gUnknown_0202F7C9
+_081406B4: .4byte gSprites
+_081406B8: .4byte gUnknown_02024BE0
+ thumb_func_end sub_81405F4
+
+ thumb_func_start sub_81406BC
+sub_81406BC: @ 81406BC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081406DA
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_081406DA:
+ ldr r4, _08140708 @ =gSprites
+ ldr r3, _0814070C @ =gUnknown_02024BE0
+ ldr r2, _08140710 @ =gUnknown_0202F7C9
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _08140714
+ adds r0, r1, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r5, 0x1
+ b _08140734
+ .align 2, 0
+_08140708: .4byte gSprites
+_0814070C: .4byte gUnknown_02024BE0
+_08140710: .4byte gUnknown_0202F7C9
+_08140714:
+ ldr r6, _0814079C @ =0xfffffee0
+ adds r0, r6, 0
+ ldrh r6, [r1, 0x30]
+ adds r0, r6
+ strh r0, [r1, 0x30]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+_08140734:
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08140796
+ cmp r5, 0
+ beq _08140796
+ ldr r4, _081407A0 @ =gSprites
+ ldr r3, _081407A4 @ =gUnknown_02024BE0
+ ldr r2, _081407A8 @ =gUnknown_0202F7C9
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ movs r5, 0
+ strh r5, [r0, 0x26]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, _081407AC @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ lsls r1, 30
+ 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]
+ strh r5, [r7, 0x2E]
+ ldr r0, _081407B0 @ =sub_81405C8
+ str r0, [r7, 0x1C]
+ ldr r0, _081407B4 @ =gUnknown_02024E6D
+ strb r6, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+_08140796:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814079C: .4byte 0xfffffee0
+_081407A0: .4byte gSprites
+_081407A4: .4byte gUnknown_02024BE0
+_081407A8: .4byte gUnknown_0202F7C9
+_081407AC: .4byte 0x02017840
+_081407B0: .4byte sub_81405C8
+_081407B4: .4byte gUnknown_02024E6D
+ thumb_func_end sub_81406BC
+
+ thumb_func_start sub_81407B8
+sub_81407B8: @ 81407B8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ ldr r4, _081407F0 @ =sub_81407F4
+ movs r3, 0
+ movs r1, 0x5
+ adds r0, r2, 0
+ adds r0, 0x38
+_081407DC:
+ strh r3, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081407DC
+ str r4, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081407F0: .4byte sub_81407F4
+ thumb_func_end sub_81407B8
+
+ thumb_func_start sub_81407F4
+sub_81407F4: @ 81407F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x80
+ lsls r0, 4
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x2E]
+ adds r2, r1
+ movs r0, 0xD0
+ lsls r0, 3
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r3, r1
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x2E]
+ ands r3, r0
+ strh r3, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ bgt _0814084A
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0814085E
+_0814084A:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _08140864 @ =sub_81405C8
+ str r0, [r4, 0x1C]
+ ldr r1, _08140868 @ =gUnknown_02024E6D
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8043EB4
+_0814085E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140864: .4byte sub_81405C8
+_08140868: .4byte gUnknown_02024E6D
+ thumb_func_end sub_81407F4
+
+ thumb_func_start sub_814086C
+sub_814086C: @ 814086C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r5, r4, 0
+ ldr r0, _08140910 @ =gUnknown_0840B258
+ lsls r6, r5, 3
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08140914 @ =0xffff0000
+ cmp r0, r1
+ bne _081408B6
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08140918 @ =gUnknown_0840B2B8
+ adds r0, r6, r0
+ bl LoadCompressedObjectPalette
+_081408B6:
+ ldr r1, _0814091C @ =gUnknown_0840B384
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08140920 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r10
+ strh r1, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r1, r8
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x10]
+ strh r5, [r0, 0x26]
+ movs r0, 0xF
+ bl PlaySE
+ ldr r0, _08140924 @ =gMain
+ ldr r1, _08140928 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08140900
+ ldr r1, _0814092C @ =0x02017840
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+_08140900:
+ adds r0, r4, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08140910: .4byte gUnknown_0840B258
+_08140914: .4byte 0xffff0000
+_08140918: .4byte gUnknown_0840B2B8
+_0814091C: .4byte gUnknown_0840B384
+_08140920: .4byte gTasks
+_08140924: .4byte gMain
+_08140928: .4byte 0x0000043d
+_0814092C: .4byte 0x02017840
+ thumb_func_end sub_814086C
+
+ thumb_func_start sub_8140930
+sub_8140930: @ 8140930
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _081409D0 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bgt _081409E4
+ ldrb r1, [r7, 0xA]
+ ldrb r2, [r7, 0xC]
+ ldrb r6, [r7, 0xE]
+ ldrb r3, [r7, 0x10]
+ mov r4, r8
+ lsls r0, r4, 1
+ add r0, r8
+ lsls r0, 3
+ ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4
+ adds r0, r4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _081409D8 @ =gSprites
+ adds r2, r4, r5
+ ldr r0, _081409DC @ =gUnknown_0840B378
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ str r2, [sp]
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _081409E0 @ =sub_8140A08
+ str r0, [r4]
+ movs r0, 0x3
+ ands r6, r0
+ lsls r6, 2
+ ldr r2, [sp]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r2, 0x5]
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0x7
+ bls _081409B6
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+_081409B6:
+ lsls r0, 5
+ strh r0, [r2, 0x2E]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bne _081409E4
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ bl DestroyTask
+ b _081409F6
+ .align 2, 0
+_081409D0: .4byte gTasks
+_081409D4: .4byte gSpriteTemplate_840B3B4
+_081409D8: .4byte gSprites
+_081409DC: .4byte gUnknown_0840B378
+_081409E0: .4byte sub_8140A08
+_081409E4:
+ ldr r0, _08140A04 @ =gTasks
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_081409F6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140A04: .4byte gTasks
+ thumb_func_end sub_8140930
+
+ thumb_func_start sub_8140A08
+sub_8140A08: @ 8140A08
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08140A20
+ ldr r0, _08140A1C @ =sub_8140A28
+ str r0, [r1, 0x1C]
+ b _08140A24
+ .align 2, 0
+_08140A1C: .4byte sub_8140A28
+_08140A20:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x30]
+_08140A24:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A08
+
+ thumb_func_start sub_8140A28
+sub_8140A28: @ 8140A28
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _08140A5C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140A5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A28
+
+ thumb_func_start sub_8140A64
+sub_8140A64: @ 8140A64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140B24 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140B28 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140B2C @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140AA8:
+ ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140B34 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140B38 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r2, 0x1
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140AA8
+ ldr r0, _08140B28 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140B24: .4byte gTasks
+_08140B28: .4byte gSprites
+_08140B2C: .4byte gUnknown_0840B378
+_08140B30: .4byte gSpriteTemplate_840B3B4
+_08140B34: .4byte gSprites + 0x1C
+_08140B38: .4byte sub_8140ECC
+ thumb_func_end sub_8140A64
+
+ thumb_func_start sub_8140B3C
+sub_8140B3C: @ 8140B3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140BFC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140C00 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140C04 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140B80:
+ ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140C0C @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140C10 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ strh r1, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140B80
+ ldr r0, _08140C00 @ =gSprites
+ adds r0, r5, r0
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140BFC: .4byte gTasks
+_08140C00: .4byte gSprites
+_08140C04: .4byte gUnknown_0840B378
+_08140C08: .4byte gSpriteTemplate_840B3B4
+_08140C0C: .4byte gSprites + 0x1C
+_08140C10: .4byte sub_8140ECC
+ thumb_func_end sub_8140B3C
+
+ thumb_func_start sub_8140C14
+sub_8140C14: @ 8140C14
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140CD0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140CD4 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140CD8 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140C58:
+ ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140CE0 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140CE4 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0x4
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140C58
+ ldr r0, _08140CD4 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140CD0: .4byte gTasks
+_08140CD4: .4byte gSprites
+_08140CD8: .4byte gUnknown_0840B378
+_08140CDC: .4byte gSpriteTemplate_840B3B4
+_08140CE0: .4byte gSprites + 0x1C
+_08140CE4: .4byte sub_8140ECC
+ thumb_func_end sub_8140C14
+
+ thumb_func_start sub_8140CE8
+sub_8140CE8: @ 8140CE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140DAC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140DB0 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140DB4 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140D2C:
+ ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140DBC @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140DC0 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ movs r0, 0x5
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x9
+ bls _08140D2C
+ ldr r0, _08140DB0 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140DAC: .4byte gTasks
+_08140DB0: .4byte gSprites
+_08140DB4: .4byte gUnknown_0840B378
+_08140DB8: .4byte gSpriteTemplate_840B3B4
+_08140DBC: .4byte gSprites + 0x1C
+_08140DC0: .4byte sub_8140ECC
+ thumb_func_end sub_8140CE8
+
+ thumb_func_start sub_8140DC4
+sub_8140DC4: @ 8140DC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140DF0 @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r1, [r3, 0x16]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _08140DF4
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x16]
+ b _08140EA4
+ .align 2, 0
+_08140DF0: .4byte gTasks
+_08140DF4:
+ ldrh r0, [r3, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r3, 0xA]
+ str r1, [sp]
+ ldrb r4, [r3, 0xC]
+ str r4, [sp, 0x4]
+ ldrb r1, [r3, 0xE]
+ str r1, [sp, 0x8]
+ ldrb r3, [r3, 0x10]
+ str r3, [sp, 0xC]
+ movs r6, 0
+ str r2, [sp, 0x10]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ mov r10, r1
+ ldr r3, _08140EB4 @ =gSprites
+ mov r8, r3
+ ldr r1, _08140EB8 @ =gUnknown_0840B378
+ adds r0, r1
+ mov r9, r0
+_08140E20:
+ ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r3, r9
+ ldrb r1, [r3]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _08140EC0 @ =gSprites + 0x1C
+ adds r1, r5, r0
+ ldr r0, _08140EC4 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r2, 0x8
+ strh r2, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140E20
+ ldr r0, _08140EC8 @ =gTasks
+ ldr r4, [sp, 0x10]
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x16]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08140EA4
+ ldr r0, _08140EB4 @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+_08140EA4:
+ 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
+_08140EB4: .4byte gSprites
+_08140EB8: .4byte gUnknown_0840B378
+_08140EBC: .4byte gSpriteTemplate_840B3B4
+_08140EC0: .4byte gSprites + 0x1C
+_08140EC4: .4byte sub_8140ECC
+_08140EC8: .4byte gTasks
+ thumb_func_end sub_8140DC4
+
+ thumb_func_start sub_8140ECC
+sub_8140ECC: @ 8140ECC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08140F1C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140F1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140ECC
+
+ thumb_func_start sub_8140F24
+sub_8140F24: @ 8140F24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140FE0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140FE4 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140FE8 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140F68:
+ ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140FF0 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140FF4 @ =sub_8140FF8
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xB
+ bls _08140F68
+ ldr r0, _08140FE4 @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140FE0: .4byte gTasks
+_08140FE4: .4byte gSprites
+_08140FE8: .4byte gUnknown_0840B378
+_08140FEC: .4byte gSpriteTemplate_840B3B4
+_08140FF0: .4byte gSprites + 0x1C
+_08140FF4: .4byte sub_8140FF8
+ thumb_func_end sub_8140F24
+
+ thumb_func_start sub_8140FF8
+sub_8140FF8: @ 8140FF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08141050
+ adds r0, r5, 0
+ bl sub_8141294
+_08141050:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140FF8
+
+ thumb_func_start sub_8141058
+sub_8141058: @ 8141058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, _08141104 @ =gTasks
+ lsls r0, 2
+ ldr r2, [sp]
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r3, [r0, 0xA]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xC]
+ str r2, [sp, 0x8]
+ ldrb r3, [r0, 0xE]
+ str r3, [sp, 0xC]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [sp, 0x14]
+ ldr r0, _08141108 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r10, r1
+_0814109E:
+ movs r7, 0
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+_081410A6:
+ ldr r0, _0814110C @ =gSpriteTemplate_840B3B4
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r0
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r3, _08141110 @ =gSprites
+ adds r5, r4, r3
+ mov r0, r10
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _08141114 @ =gSprites + 0x1C
+ adds r4, r1
+ ldr r0, _08141118 @ =sub_8140ECC
+ str r0, [r4]
+ movs r0, 0x3
+ ldr r1, [sp, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r0, [r5, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r2, r3, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ lsls r0, r7, 5
+ strh r0, [r5, 0x2E]
+ movs r0, 0x8
+ strh r0, [r5, 0x36]
+ mov r0, r8
+ cmp r0, 0
+ bne _0814111C
+ movs r0, 0x2
+ strh r0, [r5, 0x38]
+ movs r0, 0x1
+ b _08141122
+ .align 2, 0
+_08141104: .4byte gTasks
+_08141108: .4byte gUnknown_0840B378
+_0814110C: .4byte gSpriteTemplate_840B3B4
+_08141110: .4byte gSprites
+_08141114: .4byte gSprites + 0x1C
+_08141118: .4byte sub_8140ECC
+_0814111C:
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ movs r0, 0x2
+_08141122:
+ strh r0, [r5, 0x3A]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _081410A6
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bls _0814109E
+ ldr r0, _08141160 @ =gSprites
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ ldr r0, [sp]
+ bl DestroyTask
+ 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
+_08141160: .4byte gSprites
+ thumb_func_end sub_8141058
+
+ thumb_func_start sub_8141164
+sub_8141164: @ 8141164
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08141218 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _0814121C @ =gSprites
+ mov r8, r3
+ ldr r0, _08141220 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_081411A8:
+ ldr r0, _08141224 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08141228 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _0814122C @ =sub_8141230
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _081411A8
+ ldr r0, _0814121C @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08141218: .4byte gTasks
+_0814121C: .4byte gSprites
+_08141220: .4byte gUnknown_0840B378
+_08141224: .4byte gSpriteTemplate_840B3B4
+_08141228: .4byte gSprites + 0x1C
+_0814122C: .4byte sub_8141230
+ thumb_func_end sub_8141164
+
+ thumb_func_start sub_8141230
+sub_8141230: @ 8141230
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _0814128C
+ adds r0, r5, 0
+ bl sub_8141294
+_0814128C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141230
+
+ thumb_func_start sub_8141294
+sub_8141294: @ 8141294
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _081412B8 @ =gMain
+ ldr r1, _081412BC @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081412C0
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _081412F2
+ adds r0, r5, 0
+ bl DestroySpriteAndFreeResources
+ b _0814130E
+ .align 2, 0
+_081412B8: .4byte gMain
+_081412BC: .4byte 0x0000043d
+_081412C0:
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08141308
+ ldr r1, _081412FC @ =0x02017840
+ ldrb r0, [r1, 0xA]
+ subs r0, 0x1
+ strb r0, [r1, 0xA]
+ lsls r0, 24
+ cmp r0, 0
+ bne _081412F2
+ movs r7, 0
+ ldr r6, _08141300 @ =gUnknown_0840B258
+ ldr r4, _08141304 @ =gUnknown_0840B2B8
+_081412DC:
+ ldrh r0, [r6, 0x6]
+ bl FreeSpriteTilesByTag
+ ldrh r0, [r4, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r6, 0x8
+ adds r4, 0x8
+ adds r7, 0x1
+ cmp r7, 0xB
+ ble _081412DC
+_081412F2:
+ adds r0, r5, 0
+ bl DestroySprite
+ b _0814130E
+ .align 2, 0
+_081412FC: .4byte 0x02017840
+_08141300: .4byte gUnknown_0840B258
+_08141304: .4byte gUnknown_0840B2B8
+_08141308:
+ adds r0, r5, 0
+ bl DestroySprite
+_0814130E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141294
+
+ thumb_func_start sub_8141314
+sub_8141314: @ 8141314
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r9, r2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ ldr r0, _08141378 @ =sub_81413DC
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0814137C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ strh r7, [r5, 0x26]
+ strh r6, [r5, 0xE]
+ mov r0, r9
+ strh r0, [r5, 0x1C]
+ mov r1, r9
+ lsrs r0, r1, 16
+ strh r0, [r5, 0x1E]
+ cmp r4, 0
+ bne _08141384
+ lsls r0, r6, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldr r2, _08141380 @ =gUnknown_0840B4D4
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ b _081413AA
+ .align 2, 0
+_08141378: .4byte sub_81413DC
+_0814137C: .4byte gTasks
+_08141380: .4byte gUnknown_0840B4D4
+_08141384:
+ lsls r0, r6, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldr r2, _081413CC @ =gUnknown_0840B4D4
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x10
+ bl BlendPalette
+ movs r0, 0x10
+ strh r0, [r5, 0x8]
+ ldr r0, _081413D0 @ =0x0000ffff
+ strh r0, [r5, 0xA]
+ ldr r0, _081413D4 @ =sub_814146C
+ str r0, [r5]
+_081413AA:
+ ldr r0, _081413D8 @ =0x00007fff
+ str r0, [sp]
+ mov r0, r9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ mov r0, r8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081413CC: .4byte gUnknown_0840B4D4
+_081413D0: .4byte 0x0000ffff
+_081413D4: .4byte sub_814146C
+_081413D8: .4byte 0x00007fff
+ thumb_func_end sub_8141314
+
+ thumb_func_start sub_81413DC
+sub_81413DC: @ 81413DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0814142C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bgt _08141434
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _08141430 @ =gUnknown_0840B4D4
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _0814145C
+ .align 2, 0
+_0814142C: .4byte gTasks
+_08141430: .4byte gUnknown_0840B4D4
+_08141434:
+ ldr r0, _08141464 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0814145C
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _08141468 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r5, 0
+ bl DestroyTask
+_0814145C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141464: .4byte gPaletteFade
+_08141468: .4byte 0x00007fff
+ thumb_func_end sub_81413DC
+
+ thumb_func_start sub_814146C
+sub_814146C: @ 814146C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081414AC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081414A4
+ ldr r0, _081414B0 @ =gTasks
+ lsls r4, r2, 2
+ adds r4, r2
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _081414B4 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081414B8 @ =sub_81414BC
+ str r0, [r4]
+_081414A4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081414AC: .4byte gPaletteFade
+_081414B0: .4byte gTasks
+_081414B4: .4byte 0x00007fff
+_081414B8: .4byte sub_81414BC
+ thumb_func_end sub_814146C
+
+ thumb_func_start sub_81414BC
+sub_81414BC: @ 81414BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08141508 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bgt _08141510
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _0814150C @ =gUnknown_0840B4D4
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08141516
+ .align 2, 0
+_08141508: .4byte gTasks
+_0814150C: .4byte gUnknown_0840B4D4
+_08141510:
+ adds r0, r2, 0
+ bl DestroyTask
+_08141516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81414BC
+
+ thumb_func_start sub_814151C
+sub_814151C: @ 814151C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08141550 @ =gUnknown_02024BE0
+ ldr r3, _08141554 @ =gUnknown_0202F7C8
+ ldrb r2, [r3]
+ adds r0, r2, r0
+ ldrb r6, [r0]
+ ldr r1, _08141558 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _081415F4
+ cmp r0, 0x1
+ bgt _0814155C
+ cmp r0, 0
+ beq _08141562
+ b _081416B6
+ .align 2, 0
+_08141550: .4byte gUnknown_02024BE0
+_08141554: .4byte gUnknown_0202F7C8
+_08141558: .4byte gTasks
+_0814155C:
+ cmp r0, 0x2
+ beq _08141606
+ b _081416B6
+_08141562:
+ ldr r0, _0814159C @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1E]
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r4, [r5, 0x8]
+ adds r0, r4
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _081415A4
+ ldr r2, _081415A0 @ =gSprites
+ lsls r3, r6, 4
+ adds r1, r3, r6
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ adds r4, r3, 0
+ b _081415BC
+ .align 2, 0
+_0814159C: .4byte gBattleAnimArgs
+_081415A0: .4byte gSprites
+_081415A4:
+ ldr r3, _081415EC @ =gSprites
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+_081415BC:
+ ldr r1, _081415F0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x8]
+ strh r0, [r3, 0x8]
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x20
+ ldrsh r1, [r0, r2]
+ movs r4, 0x24
+ ldrsh r0, [r0, r4]
+ adds r1, r0
+ adds r1, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ bls _081416B6
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ b _081416B6
+ .align 2, 0
+_081415EC: .4byte gSprites
+_081415F0: .4byte gTasks
+_081415F4:
+ ldrb r1, [r5, 0x1E]
+ adds r0, r2, 0
+ adds r2, r6, 0
+ bl refresh_graphics_maybe
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ b _081416B6
+_08141606:
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x8]
+ adds r0, r2
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814163C
+ ldr r0, _08141638 @ =gSprites
+ lsls r3, r6, 4
+ adds r2, r3, r6
+ lsls r2, 2
+ adds r2, r0
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r4, r3, 0
+ b _08141654
+ .align 2, 0
+_08141638: .4byte gSprites
+_0814163C:
+ ldr r0, _08141688 @ =gSprites
+ lsls r2, r6, 4
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ adds r4, r2, 0
+_08141654:
+ ldr r1, _0814168C @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ strh r1, [r0, 0x8]
+ ldr r0, _08141690 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08141694
+ ldr r0, _08141688 @ =gSprites
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bgt _081416AA
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ b _081416B0
+ .align 2, 0
+_08141688: .4byte gSprites
+_0814168C: .4byte gTasks
+_08141690: .4byte gUnknown_0202F7C8
+_08141694:
+ ldr r0, _081416C0 @ =gSprites
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r3, 0x24
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ blt _081416AA
+ strh r2, [r1, 0x24]
+ movs r4, 0x1
+ mov r8, r4
+_081416AA:
+ mov r0, r8
+ cmp r0, 0
+ beq _081416B6
+_081416B0:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_081416B6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081416C0: .4byte gSprites
+ thumb_func_end sub_814151C
+
+ thumb_func_start sub_81416C4
+sub_81416C4: @ 81416C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081416E8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08141744
+ cmp r0, 0x1
+ bgt _081416EC
+ cmp r0, 0
+ beq _081416F2
+ b _081417B8
+ .align 2, 0
+_081416E8: .4byte gTasks
+_081416EC:
+ cmp r0, 0x2
+ beq _0814177C
+ b _081417B8
+_081416F2:
+ ldr r0, _08141708 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08141714
+ ldr r1, _0814170C @ =REG_BLDCNT
+ ldr r2, _08141710 @ =0x00003f42
+ b _08141718
+ .align 2, 0
+_08141708: .4byte gUnknown_0202F7C8
+_0814170C: .4byte REG_BLDCNT
+_08141710: .4byte 0x00003f42
+_08141714:
+ ldr r1, _08141734 @ =REG_BLDCNT
+ ldr r2, _08141738 @ =0x00003f44
+_08141718:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0814173C @ =REG_BLDALPHA
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _08141740 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141734: .4byte REG_BLDCNT
+_08141738: .4byte 0x00003f44
+_0814173C: .4byte REG_BLDALPHA
+_08141740: .4byte gTasks
+_08141744:
+ ldrh r0, [r4, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081417B8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r1, 0x1
+ strh r1, [r4, 0x8]
+ ldr r3, _08141778 @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081417B8
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141778: .4byte REG_BLDALPHA
+_0814177C:
+ ldr r1, _081417C0 @ =gUnknown_02024BE0
+ ldr r3, _081417C4 @ =gUnknown_0202F7C8
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _081417C8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r1, _081417CC @ =0x06010000
+ adds r0, r1
+ movs r1, 0
+ str r1, [sp]
+ ldr r1, _081417D0 @ =0x040000d4
+ mov r2, sp
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _081417D4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrb r0, [r3]
+ bl sub_80324E0
+ adds r0, r5, 0
+ bl move_anim_task_del
+_081417B8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417C0: .4byte gUnknown_02024BE0
+_081417C4: .4byte gUnknown_0202F7C8
+_081417C8: .4byte gSprites
+_081417CC: .4byte 0x06010000
+_081417D0: .4byte 0x040000d4
+_081417D4: .4byte 0x85000200
+ thumb_func_end sub_81416C4
+
+ thumb_func_start sub_81417D8
+sub_81417D8: @ 81417D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081417FC @ =gBattleAnimArgs
+ ldr r1, _08141800 @ =gUnknown_0202F7C8
+ ldrb r1, [r1]
+ lsls r1, 2
+ ldr r2, _08141804 @ =0x02017800
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r3, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417FC: .4byte gBattleAnimArgs
+_08141800: .4byte gUnknown_0202F7C8
+_08141804: .4byte 0x02017800
+ thumb_func_end sub_81417D8
+
+ thumb_func_start sub_8141808
+sub_8141808: @ 8141808
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141820 @ =gUnknown_0202F7C9
+ ldr r1, _08141824 @ =gUnknown_02024C0A
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141820: .4byte gUnknown_0202F7C9
+_08141824: .4byte gUnknown_02024C0A
+ thumb_func_end sub_8141808
+
+ thumb_func_start sub_8141828
+sub_8141828: @ 8141828
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _081418E0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _081418FC
+ lsrs r0, r5, 16
+ ldr r7, _081418E4 @ =0x0000ffff
+ ands r5, r7
+ eors r0, r5
+ lsrs r1, r4, 16
+ eors r0, r1
+ ands r4, r7
+ eors r0, r4
+ cmp r0, 0x7
+ bhi _08141882
+ movs r0, 0x1
+ mov r8, r0
+_08141882:
+ mov r0, r8
+ cmp r0, 0
+ beq _081418FC
+ ldr r0, _081418E8 @ =0x000027f9
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r7
+ bne _081418A2
+ ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8)
+ bl LoadCompressedObjectPalette
+_081418A2:
+ ldr r5, _081418F4 @ =sub_814191C
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081418F8 @ =gTasks
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r2, r3
+ movs r4, 0
+ strh r6, [r2, 0x8]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ strh r6, [r1, 0x8]
+ strh r4, [r2, 0xA]
+ movs r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0814190E
+ .align 2, 0
+_081418E0: .4byte 0x02017810
+_081418E4: .4byte 0x0000ffff
+_081418E8: .4byte 0x000027f9
+_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
+_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
+_081418F4: .4byte sub_814191C
+_081418F8: .4byte gTasks
+_081418FC:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _08141918 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_0814190E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141918: .4byte 0x02017810
+ thumb_func_end sub_8141828
+
+ thumb_func_start sub_814191C
+sub_814191C: @ 814191C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08141944 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3B
+ bgt _08141948
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x22]
+ b _08141AB8
+ .align 2, 0
+_08141944: .4byte gTasks
+_08141948:
+ ldr r0, _08141998 @ =0x02017840
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _08141952
+ b _08141AB8
+_08141952:
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ beq _08141966
+ b _08141AB8
+_08141966:
+ ldrb r0, [r4, 0x8]
+ mov r8, r0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081419A0
+ ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _08141A02
+ .align 2, 0
+_08141998: .4byte 0x02017840
+_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
+_081419A0:
+ cmp r0, 0
+ blt _081419D4
+ cmp r0, 0x3
+ bgt _081419D4
+ ldr r0, _081419CC @ =gSpriteTemplate_8402500
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _081419D0 @ =gSprites
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _081419F4
+ .align 2, 0
+_081419CC: .4byte gSpriteTemplate_8402500
+_081419D0: .4byte gSprites
+_081419D4:
+ ldr r0, _08141A2C @ =gSpriteTemplate_8402500
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08141A30 @ =gSprites
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_081419F4:
+ ldr r4, _08141A34 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _08141A38 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08141A02:
+ ldr r2, _08141A3C @ =gTasks
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ mov r9, r1
+ cmp r0, 0
+ bne _08141A44
+ ldr r1, _08141A30 @ =gSprites
+ lsls r2, r5, 4
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08141A40 @ =sub_8141B20
+ str r1, [r0]
+ adds r4, r2, 0
+ b _08141A8C
+ .align 2, 0
+_08141A2C: .4byte gSpriteTemplate_8402500
+_08141A30: .4byte gSprites
+_08141A34: .4byte 0x000003ff
+_08141A38: .4byte 0xfffffc00
+_08141A3C: .4byte gTasks
+_08141A40: .4byte sub_8141B20
+_08141A44:
+ ldr r3, _08141AC4 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08141AC8 @ =sub_8141B74
+ str r2, [r0]
+ adds r1, r3
+ ldr r0, _08141ACC @ =0x0000ffe0
+ strh r0, [r1, 0x24]
+ movs r0, 0x20
+ strh r0, [r1, 0x26]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08141A8C
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x3F
+ cmp r0, 0
+ bne _08141A82
+ movs r1, 0xC0
+_08141A82:
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x66
+ bl PlaySE12WithPanning
+_08141A8C:
+ ldr r1, _08141AC4 @ =gSprites
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r7, [r0, 0x2E]
+ ldr r1, _08141AD0 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r1, [r2, 0x1E]
+ adds r1, 0x1
+ strh r1, [r2, 0x1E]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ bne _08141AB8
+ ldr r0, _08141AD4 @ =sub_8141AD8
+ str r0, [r2]
+_08141AB8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141AC4: .4byte gSprites
+_08141AC8: .4byte sub_8141B74
+_08141ACC: .4byte 0x0000ffe0
+_08141AD0: .4byte gTasks
+_08141AD4: .4byte sub_8141AD8
+ thumb_func_end sub_814191C
+
+ thumb_func_start sub_8141AD8
+sub_8141AD8: @ 8141AD8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldr r1, _08141B18 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08141B14
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _08141B0E
+ ldrb r1, [r1, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141B1C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_08141B0E:
+ adds r0, r3, 0
+ bl DestroyTask
+_08141B14:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B18: .4byte gTasks
+_08141B1C: .4byte 0x02017810
+ thumb_func_end sub_8141AD8
+
+ thumb_func_start sub_8141B20
+sub_8141B20: @ 8141B20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xC
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08141B6A
+ ldr r2, _08141B70 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141B6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B70: .4byte gTasks
+ thumb_func_end sub_8141B20
+
+ thumb_func_start sub_8141B74
+sub_8141B74: @ 8141B74
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _08141B88
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _08141BCA
+_08141B88:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x5
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x5
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x20
+ ble _08141BCA
+ ldr r2, _08141BD0 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141BCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BD0: .4byte gTasks
+ thumb_func_end sub_8141B74
+
+ thumb_func_start sub_8141BD4
+sub_8141BD4: @ 8141BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8)
+ bl LoadCompressedObjectPalette
+ ldr r0, _08141C04 @ =0x0000281d
+ bl IndexOfSpritePaletteTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
+_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
+_08141C04: .4byte 0x0000281d
+ thumb_func_end sub_8141BD4
+
+ thumb_func_start sub_8141C08
+sub_8141C08: @ 8141C08
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08141C2C @ =0x0000281d
+ adds r0, r5, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r5, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141C2C: .4byte 0x0000281d
+ thumb_func_end sub_8141C08
+
+ thumb_func_start sub_8141C30
+sub_8141C30: @ 8141C30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r5, _08141CA4 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, _08141CA8 @ =0x0000ffe0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r1, _08141CAC @ =gUnknown_02024BE0
+ ldr r0, _08141CB0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141CB4 @ =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _08141CB8 @ =sub_8141CBC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CA4: .4byte gBattleAnimArgs
+_08141CA8: .4byte 0x0000ffe0
+_08141CAC: .4byte gUnknown_02024BE0
+_08141CB0: .4byte gUnknown_0202F7C8
+_08141CB4: .4byte gSprites
+_08141CB8: .4byte sub_8141CBC
+ thumb_func_end sub_8141C30
+
+ thumb_func_start sub_8141CBC
+sub_8141CBC: @ 8141CBC
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _08141CE4 @ =gSprites
+ ldr r1, _08141CE8 @ =gUnknown_02024BE0
+ ldr r0, _08141CEC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08141CE0
+ ldr r0, _08141CF0 @ =sub_8141CF4
+ str r0, [r3, 0x1C]
+_08141CE0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CE4: .4byte gSprites
+_08141CE8: .4byte gUnknown_02024BE0
+_08141CEC: .4byte gUnknown_0202F7C8
+_08141CF0: .4byte sub_8141CF4
+ thumb_func_end sub_8141CBC
+
+ thumb_func_start sub_8141CF4
+sub_8141CF4: @ 8141CF4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _08141D16
+ movs r0, 0
+ 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, _08141D1C @ =sub_8141D20
+ str r0, [r4, 0x1C]
+_08141D16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D1C: .4byte sub_8141D20
+ thumb_func_end sub_8141CF4
+
+ thumb_func_start sub_8141D20
+sub_8141D20: @ 8141D20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08141D70 @ =gSprites
+ ldr r3, _08141D74 @ =gUnknown_02024BE0
+ ldr r2, _08141D78 @ =gUnknown_0202F7C8
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _08141D68
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08141D68
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08141D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D70: .4byte gSprites
+_08141D74: .4byte gUnknown_02024BE0
+_08141D78: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_8141D20
+
+ thumb_func_start sub_8141D7C
+sub_8141D7C: @ 8141D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08141DA4 @ =gUnknown_0202F7C8
+ strb r0, [r1]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _08141DA8 @ =gUnknown_0202F7C9
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141DA4: .4byte gUnknown_0202F7C8
+_08141DA8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8141D7C
+
+ thumb_func_start sub_8141DAC
+sub_8141DAC: @ 8141DAC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08141DC0 @ =0x02017840
+ ldrh r1, [r0]
+ cmp r1, 0x53
+ bne _08141DC8
+ ldr r1, _08141DC4 @ =gBattleAnimArgs
+ movs r0, 0x1
+ b _08141E00
+ .align 2, 0
+_08141DC0: .4byte 0x02017840
+_08141DC4: .4byte gBattleAnimArgs
+_08141DC8:
+ cmp r1, 0xFA
+ bne _08141DD8
+ ldr r1, _08141DD4 @ =gBattleAnimArgs
+ movs r0, 0x2
+ b _08141E00
+ .align 2, 0
+_08141DD4: .4byte gBattleAnimArgs
+_08141DD8:
+ cmp r1, 0x80
+ bne _08141DE8
+ ldr r1, _08141DE4 @ =gBattleAnimArgs
+ movs r0, 0x3
+ b _08141E00
+ .align 2, 0
+_08141DE4: .4byte gBattleAnimArgs
+_08141DE8:
+ movs r0, 0xA4
+ lsls r0, 1
+ cmp r1, r0
+ bne _08141DFC
+ ldr r1, _08141DF8 @ =gBattleAnimArgs
+ movs r0, 0x4
+ b _08141E00
+ .align 2, 0
+_08141DF8: .4byte gBattleAnimArgs
+_08141DFC:
+ ldr r1, _08141E0C @ =gBattleAnimArgs
+ movs r0, 0
+_08141E00:
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E0C: .4byte gBattleAnimArgs
+ thumb_func_end sub_8141DAC
+
+ thumb_func_start sub_8141E10
+sub_8141E10: @ 8141E10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141E2C @ =gUnknown_0202F7C8
+ ldr r1, _08141E30 @ =0x02017840
+ ldrh r1, [r1]
+ strb r1, [r2]
+ ldr r2, _08141E34 @ =gUnknown_0202F7C9
+ lsrs r1, 8
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E2C: .4byte gUnknown_0202F7C8
+_08141E30: .4byte 0x02017840
+_08141E34: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8141E10
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 8f903970f..c4e4a7dd0 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -136,7 +136,7 @@ _08120BB0:
.4byte _08120DE8
.4byte _08120E50
_08120BC8:
- ldr r0, _08120BEC @ =gUnknown_020239F8
+ ldr r0, _08120BEC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -156,7 +156,7 @@ _08120BE8:
ldr r6, _08120BF4 @ =gUnknown_084005DB
b _08120F70
.align 2, 0
-_08120BEC: .4byte gUnknown_020239F8
+_08120BEC: .4byte gBattleTypeFlags
_08120BF0: .4byte gUnknown_084005C7
_08120BF4: .4byte gUnknown_084005DB
_08120BF8:
@@ -203,7 +203,7 @@ _08120C40:
lsls r0, 24
cmp r0, 0
bne _08120C7C
- ldr r0, _08120C68 @ =gUnknown_020239F8
+ ldr r0, _08120C68 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -219,7 +219,7 @@ _08120C64:
ldr r6, _08120C70 @ =gUnknown_084006F1
b _08120F70
.align 2, 0
-_08120C68: .4byte gUnknown_020239F8
+_08120C68: .4byte gBattleTypeFlags
_08120C6C: .4byte gUnknown_084006A4
_08120C70: .4byte gUnknown_084006F1
_08120C74:
@@ -228,7 +228,7 @@ _08120C74:
.align 2, 0
_08120C78: .4byte gUnknown_0840069C
_08120C7C:
- ldr r0, _08120C94 @ =gUnknown_020239F8
+ ldr r0, _08120C94 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -241,7 +241,7 @@ _08120C7C:
ldr r6, _08120C98 @ =gUnknown_0840065C
b _08120F70
.align 2, 0
-_08120C94: .4byte gUnknown_020239F8
+_08120C94: .4byte gBattleTypeFlags
_08120C98: .4byte gUnknown_0840065C
_08120C9C:
movs r0, 0x2
@@ -290,7 +290,7 @@ _08120CF0: .4byte gUnknown_08400709
_08120CF4:
cmp r2, 0x1
beq _08120D04
- ldr r0, _08120D08 @ =gUnknown_020239F8
+ ldr r0, _08120D08 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -300,7 +300,7 @@ _08120D04:
ldr r6, _08120D0C @ =gUnknown_08400727
b _08120F70
.align 2, 0
-_08120D08: .4byte gUnknown_020239F8
+_08120D08: .4byte gBattleTypeFlags
_08120D0C: .4byte gUnknown_08400727
_08120D10:
ldr r6, _08120D1C @ =gUnknown_08400749
@@ -320,7 +320,7 @@ _08120D24:
lsls r0, 4
cmp r1, r0
bne _08120D54
- ldr r0, _08120D48 @ =gUnknown_020239F8
+ ldr r0, _08120D48 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -333,7 +333,7 @@ _08120D40:
b _08120F70
.align 2, 0
_08120D44: .4byte gTrainerBattleOpponent
-_08120D48: .4byte gUnknown_020239F8
+_08120D48: .4byte gBattleTypeFlags
_08120D4C: .4byte gUnknown_08400771
_08120D50: .4byte gUnknown_08400781
_08120D54:
@@ -354,7 +354,7 @@ _08120D5C:
ldrb r3, [r0]
cmp r3, 0
beq _08120D82
- ldr r0, _08120D90 @ =gUnknown_020239F8
+ ldr r0, _08120D90 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -366,7 +366,7 @@ _08120D82:
.align 2, 0
_08120D88: .4byte 0x00016003
_08120D8C: .4byte 0x000160c1
-_08120D90: .4byte gUnknown_020239F8
+_08120D90: .4byte gBattleTypeFlags
_08120D94: .4byte gUnknown_084006B3
_08120D98:
cmp r3, 0x1
@@ -387,7 +387,7 @@ _08120DAC:
_08120DB0: .4byte gUnknown_084006D5
_08120DB4: .4byte gUnknown_084006C6
_08120DB8:
- ldr r0, _08120DD4 @ =gUnknown_020239F8
+ ldr r0, _08120DD4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -403,7 +403,7 @@ _08120DD0:
ldr r6, _08120DDC @ =gUnknown_0840068C
b _08120F70
.align 2, 0
-_08120DD4: .4byte gUnknown_020239F8
+_08120DD4: .4byte gBattleTypeFlags
_08120DD8: .4byte gUnknown_0840067C
_08120DDC: .4byte gUnknown_0840068C
_08120DE0:
@@ -491,7 +491,7 @@ _08120E7C:
_08120E90: .4byte gUnknown_030041C0
_08120E94: .4byte gUnknown_083FFEFC
_08120E98:
- ldr r0, _08120EAC @ =gUnknown_020239F8
+ ldr r0, _08120EAC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -501,7 +501,7 @@ _08120E98:
ldr r6, _08120EB4 @ =gUnknown_083FFFF7
b _08120F70
.align 2, 0
-_08120EAC: .4byte gUnknown_020239F8
+_08120EAC: .4byte gBattleTypeFlags
_08120EB0: .4byte gUnknown_083FFFEA
_08120EB4: .4byte gUnknown_083FFFF7
_08120EB8:
@@ -518,7 +518,7 @@ _08120EB8:
eors r0, r1
strb r0, [r5]
_08120ED2:
- ldr r0, _08120EF0 @ =gUnknown_020239F8
+ ldr r0, _08120EF0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -534,7 +534,7 @@ _08120ED2:
beq _08120EFE
b _08120F70
.align 2, 0
-_08120EF0: .4byte gUnknown_020239F8
+_08120EF0: .4byte gBattleTypeFlags
_08120EF4: .4byte gUnknown_030041C0
_08120EF8:
cmp r0, 0x3
@@ -975,7 +975,7 @@ _081212A8:
adds r2, r4, 0
cmp r0, 0
beq _0812131C
- ldr r0, _081212D0 @ =gUnknown_020239F8
+ ldr r0, _081212D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -986,7 +986,7 @@ _081212A8:
b _081212E6
.align 2, 0
_081212CC: .4byte gUnknown_02024C07
-_081212D0: .4byte gUnknown_020239F8
+_081212D0: .4byte gBattleTypeFlags
_081212D4: .4byte gUnknown_08400791
_081212D8: .4byte gUnknown_08400797
_081212DC:
@@ -1089,7 +1089,7 @@ _081213A8:
lsls r0, 24
cmp r0, 0
beq _0812140C
- ldr r0, _081213F8 @ =gUnknown_020239F8
+ ldr r0, _081213F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1124,7 +1124,7 @@ _081213E8:
b _08121908
.align 2, 0
_081213F4: .4byte gUnknown_02024C07
-_081213F8: .4byte gUnknown_020239F8
+_081213F8: .4byte gBattleTypeFlags
_081213FC: .4byte gUnknown_08400791
_08121400: .4byte gUnknown_08400797
_08121404: .4byte gUnknown_02024A6A
@@ -1145,7 +1145,7 @@ _0812141C:
lsls r0, 24
cmp r0, 0
beq _08121480
- ldr r0, _0812146C @ =gUnknown_020239F8
+ ldr r0, _0812146C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1180,7 +1180,7 @@ _0812145C:
b _08121908
.align 2, 0
_08121468: .4byte gUnknown_02024C08
-_0812146C: .4byte gUnknown_020239F8
+_0812146C: .4byte gBattleTypeFlags
_08121470: .4byte gUnknown_08400791
_08121474: .4byte gUnknown_08400797
_08121478: .4byte gUnknown_02024A6A
@@ -1201,7 +1201,7 @@ _08121490:
lsls r0, 24
cmp r0, 0
beq _081214F4
- ldr r0, _081214E0 @ =gUnknown_020239F8
+ ldr r0, _081214E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1236,7 +1236,7 @@ _081214D0:
b _08121908
.align 2, 0
_081214DC: .4byte gUnknown_02024C0A
-_081214E0: .4byte gUnknown_020239F8
+_081214E0: .4byte gBattleTypeFlags
_081214E4: .4byte gUnknown_08400791
_081214E8: .4byte gUnknown_08400797
_081214EC: .4byte gUnknown_02024A6A
@@ -1257,7 +1257,7 @@ _08121504:
lsls r0, 24
cmp r0, 0
beq _08121568
- ldr r0, _08121554 @ =gUnknown_020239F8
+ ldr r0, _08121554 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1292,7 +1292,7 @@ _08121544:
b _08121908
.align 2, 0
_08121550: .4byte gUnknown_02024A60
-_08121554: .4byte gUnknown_020239F8
+_08121554: .4byte gBattleTypeFlags
_08121558: .4byte gUnknown_08400791
_0812155C: .4byte gUnknown_08400797
_08121560: .4byte gUnknown_02024A6A
@@ -1316,7 +1316,7 @@ _08121578:
adds r2, r4, 0
cmp r0, 0
beq _081215E8
- ldr r0, _081215D4 @ =gUnknown_020239F8
+ ldr r0, _081215D4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1353,7 +1353,7 @@ _081215BC:
.align 2, 0
_081215CC: .4byte 0x02000000
_081215D0: .4byte 0x00016003
-_081215D4: .4byte gUnknown_020239F8
+_081215D4: .4byte gBattleTypeFlags
_081215D8: .4byte gUnknown_08400791
_081215DC: .4byte gUnknown_08400797
_081215E0: .4byte gUnknown_02024A6A
@@ -1419,7 +1419,7 @@ _08121652:
.align 2, 0
_0812165C: .4byte gMoveNames
_08121660:
- ldr r0, _081216AC @ =gUnknown_020239F8
+ ldr r0, _081216AC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1456,7 +1456,7 @@ _08121660:
mov r4, sp
b _081219E6
.align 2, 0
-_081216AC: .4byte gUnknown_020239F8
+_081216AC: .4byte gBattleTypeFlags
_081216B0: .4byte gUnknown_02024C04
_081216B4: .4byte gLinkPlayers
_081216B8: .4byte 0x02000000
@@ -1543,7 +1543,7 @@ _0812174C:
.align 2, 0
_08121764: .4byte gTrainerBattleOpponent
_08121768:
- ldr r0, _08121784 @ =gUnknown_020239F8
+ ldr r0, _08121784 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -1556,7 +1556,7 @@ _08121768:
movs r1, 0xD
b _081217AE
.align 2, 0
-_08121784: .4byte gUnknown_020239F8
+_08121784: .4byte gBattleTypeFlags
_08121788:
movs r0, 0x80
lsls r0, 4
@@ -1606,7 +1606,7 @@ _081217C0:
_081217E4: .4byte gTrainerBattleOpponent
_081217E8: .4byte 0x02017002
_081217EC:
- ldr r0, _08121804 @ =gUnknown_020239F8
+ ldr r0, _08121804 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -1618,7 +1618,7 @@ _081217EC:
mov r4, sp
b _081219E6
.align 2, 0
-_08121804: .4byte gUnknown_020239F8
+_08121804: .4byte gBattleTypeFlags
_08121808:
movs r0, 0x80
lsls r0, 4
@@ -1723,7 +1723,7 @@ _081218C0:
lsls r0, 24
cmp r0, 0
beq _08121934
- ldr r0, _08121920 @ =gUnknown_020239F8
+ ldr r0, _08121920 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1765,7 +1765,7 @@ _0812190E:
.align 2, 0
_08121918: .4byte 0x02000000
_0812191C: .4byte 0x00016003
-_08121920: .4byte gUnknown_020239F8
+_08121920: .4byte gBattleTypeFlags
_08121924: .4byte gUnknown_08400791
_08121928: .4byte gUnknown_08400797
_0812192C: .4byte gEnemyParty
@@ -2076,7 +2076,7 @@ _08121B64:
.align 2, 0
_08121B84: .4byte gPlayerParty
_08121B88:
- ldr r0, _08121BA0 @ =gUnknown_020239F8
+ ldr r0, _08121BA0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -2087,7 +2087,7 @@ _08121B88:
bl StringAppend
b _08121BB0
.align 2, 0
-_08121BA0: .4byte gUnknown_020239F8
+_08121BA0: .4byte gBattleTypeFlags
_08121BA4: .4byte gUnknown_08400797
_08121BA8:
ldr r1, _08121BD4 @ =gUnknown_08400791
@@ -2196,7 +2196,7 @@ _08121C78:
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r2, r0
- ldr r0, _08121CC4 @ =gUnknown_020239F8
+ ldr r0, _08121CC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2228,7 +2228,7 @@ _08121C78:
ldr r1, _08121CDC @ =gUnknown_08400A85
b _08121CE2
.align 2, 0
-_08121CC4: .4byte gUnknown_020239F8
+_08121CC4: .4byte gBattleTypeFlags
_08121CC8: .4byte gLinkPlayers
_08121CCC: .4byte 0x02000000
_08121CD0: .4byte 0x000160cb
diff --git a/asm/battle_party_menu.s b/asm/battle_party_menu.s
new file mode 100644
index 000000000..471c5ccc0
--- /dev/null
+++ b/asm/battle_party_menu.s
@@ -0,0 +1,1263 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpBattlePartyMenu
+SetUpBattlePartyMenu: @ 8094E58
+ push {r4,r5,lr}
+ ldr r1, _08094E78 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0xA
+ bls _08094E6E
+ b _08095048
+_08094E6E:
+ lsls r0, 2
+ ldr r1, _08094E7C @ =_08094E80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08094E78: .4byte 0x0201b000
+_08094E7C: .4byte _08094E80
+ .align 2, 0
+_08094E80:
+ .4byte _08094EAC
+ .4byte _08094F28
+ .4byte _08094F3C
+ .4byte _08094F4A
+ .4byte _08094F6C
+ .4byte _08094F80
+ .4byte _08094F94
+ .4byte _08094FA8
+ .4byte _08094FBC
+ .4byte _08094FD0
+ .4byte _08095000
+_08094EAC:
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08094EDC
+ ldr r1, _08094ED4 @ =0x0201b000
+ ldr r0, _08094ED8 @ =0x00000266
+ adds r4, r1, r0
+ ldrh r2, [r4]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x6
+ bne _08094EEC
+ movs r0, 0
+ strh r0, [r4]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094ED4: .4byte 0x0201b000
+_08094ED8: .4byte 0x00000266
+_08094EDC:
+ ldr r1, _08094F10 @ =0x0201b000
+ ldr r0, _08094F14 @ =0x00000266
+ adds r4, r1, r0
+ ldrh r2, [r4]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x5
+ bgt _08094F1C
+_08094EEC:
+ movs r3, 0x98
+ lsls r3, 2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r2, 0
+ ldrsh r3, [r4, r2]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _08094F18 @ =gPlayerParty
+ adds r2, r3
+ bl TryCreatePartyMenuMonIcon
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _08095048
+ .align 2, 0
+_08094F10: .4byte 0x0201b000
+_08094F14: .4byte 0x00000266
+_08094F18: .4byte gPlayerParty
+_08094F1C:
+ movs r0, 0
+ strh r0, [r4]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+_08094F28:
+ bl LoadHeldItemIconGraphics
+ ldr r1, _08094F38 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094F38: .4byte 0x0201b000
+_08094F3C:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl CreateHeldItemIcons_806DC34
+ b _08094FE6
+_08094F4A:
+ movs r3, 0x98
+ lsls r3, 2
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ ldr r1, _08094F68 @ =0x00000266
+ adds r5, r4, r1
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08094FE2
+ b _08094FF8
+ .align 2, 0
+_08094F68: .4byte 0x00000266
+_08094F6C:
+ bl PartyMenuPrintMonsLevelOrStatus
+ ldr r1, _08094F7C @ =0x0201b000
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094F7C: .4byte 0x0201b000
+_08094F80:
+ bl PrintPartyMenuMonNicknames
+ ldr r1, _08094F90 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094F90: .4byte 0x0201b000
+_08094F94:
+ bl PartyMenuTryPrintMonsHP
+ ldr r1, _08094FA4 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+ b _08094FEC
+ .align 2, 0
+_08094FA4: .4byte 0x0201b000
+_08094FA8:
+ bl nullsub_13
+ ldr r1, _08094FB8 @ =0x0201b000
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094FB8: .4byte 0x0201b000
+_08094FBC:
+ bl PartyMenuDrawHPBars
+ ldr r1, _08094FCC @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094FCC: .4byte 0x0201b000
+_08094FD0:
+ ldr r1, _08094FF4 @ =0x00000266
+ adds r5, r4, r1
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08094FF8
+_08094FE2:
+ movs r0, 0
+ strh r0, [r5]
+_08094FE6:
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+_08094FEC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08095048
+ .align 2, 0
+_08094FF4: .4byte 0x00000266
+_08094FF8:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _08095048
+_08095000:
+ ldr r0, _08095024 @ =gUnknown_02038473
+ ldrb r4, [r0]
+ cmp r4, 0x3
+ bne _0809503C
+ ldr r0, _08095028 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08095034
+ ldr r0, _0809502C @ =0x0201b000
+ ldr r3, _08095030 @ =0x00000259
+ adds r0, r3
+ movs r1, 0xFF
+ strb r1, [r0]
+ b _0809503C
+ .align 2, 0
+_08095024: .4byte gUnknown_02038473
+_08095028: .4byte gScriptItemId
+_0809502C: .4byte 0x0201b000
+_08095030: .4byte 0x00000259
+_08095034:
+ ldr r0, _08095040 @ =0x0201b000
+ ldr r1, _08095044 @ =0x00000259
+ adds r0, r1
+ strb r4, [r0]
+_0809503C:
+ movs r0, 0x1
+ b _0809504A
+ .align 2, 0
+_08095040: .4byte 0x0201b000
+_08095044: .4byte 0x00000259
+_08095048:
+ movs r0, 0
+_0809504A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpBattlePartyMenu
+
+ thumb_func_start sub_8095050
+sub_8095050: @ 8095050
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809508C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080950C8
+ ldr r0, _08095090 @ =gUnknown_02038473
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _0809509C
+ ldr r3, _08095094 @ =gTasks
+ ldr r2, _08095098 @ =0x0201b000
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ b _080950DE
+ .align 2, 0
+_0809508C: .4byte gPlayerParty
+_08095090: .4byte gUnknown_02038473
+_08095094: .4byte gTasks
+_08095098: .4byte 0x0201b000
+_0809509C:
+ ldr r3, _080950C0 @ =gTasks
+ ldr r2, _080950C4 @ =0x0201b000
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r5, [r0, 0x10]
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r5, [r0, 0x12]
+ b _080950EC
+ .align 2, 0
+_080950C0: .4byte gTasks
+_080950C4: .4byte 0x0201b000
+_080950C8:
+ ldr r3, _08095108 @ =gTasks
+ ldr r2, _0809510C @ =0x0201b000
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0x2
+_080950DE:
+ strh r4, [r0, 0x10]
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r4, [r0, 0x12]
+_080950EC:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x10]
+ ldr r1, _08095110 @ =gUnknown_083B5FF4
+ ldr r2, _08095114 @ =gUnknown_083B5FCC
+ movs r3, 0
+ bl sub_806E750
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095108: .4byte gTasks
+_0809510C: .4byte 0x0201b000
+_08095110: .4byte gUnknown_083B5FF4
+_08095114: .4byte gUnknown_083B5FCC
+ thumb_func_end sub_8095050
+
+ thumb_func_start SetUpBattlePokemonMenu
+SetUpBattlePokemonMenu: @ 8095118
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08095150 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809512C
+ b _08095268
+_0809512C:
+ ldr r0, _08095154 @ =gUnknown_02038473
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08095164
+ ldr r5, _08095158 @ =gScriptItemId
+ ldrh r0, [r5]
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08095164
+ ldr r0, _0809515C @ =gUnknown_03004AE4
+ ldrh r1, [r5]
+ ldr r2, _08095160 @ =sub_80952E4
+ ldr r3, [r0]
+ b _080951AA
+ .align 2, 0
+_08095150: .4byte gPaletteFade
+_08095154: .4byte gUnknown_02038473
+_08095158: .4byte gScriptItemId
+_0809515C: .4byte gUnknown_03004AE4
+_08095160: .4byte sub_80952E4
+_08095164:
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08095178
+ cmp r0, 0x2
+ beq _08095214
+ b _08095268
+_08095178:
+ ldr r0, _080951B4 @ =gUnknown_02038473
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080951C8
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080951B8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809521C
+ bl sub_806D5A4
+ ldr r3, _080951BC @ =gUnknown_03004AE4
+ ldr r0, _080951C0 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _080951C4 @ =sub_80952E4
+ ldr r3, [r3]
+_080951AA:
+ adds r0, r4, 0
+ bl _call_via_r3
+ b _08095268
+ .align 2, 0
+_080951B4: .4byte gUnknown_02038473
+_080951B8: .4byte gPlayerParty
+_080951BC: .4byte gUnknown_03004AE4
+_080951C0: .4byte gScriptItemId
+_080951C4: .4byte sub_80952E4
+_080951C8:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08095204 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08095208 @ =gStringVar1
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl sub_806CA38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8095050
+ ldr r1, _0809520C @ =sub_8095408
+ ldr r2, _08095210 @ =SetUpBattlePokemonMenu
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ b _08095268
+ .align 2, 0
+_08095204: .4byte gPlayerParty
+_08095208: .4byte gStringVar1
+_0809520C: .4byte sub_8095408
+_08095210: .4byte SetUpBattlePokemonMenu
+_08095214:
+ ldr r5, _08095224 @ =gUnknown_02038473
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08095228
+_0809521C:
+ movs r0, 0x20
+ bl PlaySE
+ b _08095268
+ .align 2, 0
+_08095224: .4byte gUnknown_02038473
+_08095228:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r5]
+ cmp r0, 0x3
+ bne _08095254
+ ldr r1, _08095248 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0809524C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095250 @ =sub_80952E4
+ b _08095266
+ .align 2, 0
+_08095248: .4byte gUnknown_0202E8F4
+_0809524C: .4byte gTasks
+_08095250: .4byte sub_80952E4
+_08095254:
+ ldr r1, _08095270 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08095274 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095278 @ =sub_809527C
+_08095266:
+ str r1, [r0]
+_08095268:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095270: .4byte gUnknown_0202E8F4
+_08095274: .4byte gTasks
+_08095278: .4byte sub_809527C
+ thumb_func_end SetUpBattlePokemonMenu
+
+ thumb_func_start sub_809527C
+sub_809527C: @ 809527C
+ 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, _080952AC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080952B0 @ =sub_80952B4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080952AC: .4byte gTasks
+_080952B0: .4byte sub_80952B4
+ thumb_func_end sub_809527C
+
+ thumb_func_start sub_80952B4
+sub_80952B4: @ 80952B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080952DC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080952D6
+ bl sub_8094D60
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _080952E0 @ =sub_802E414
+ bl SetMainCallback2
+_080952D6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080952DC: .4byte gPaletteFade
+_080952E0: .4byte sub_802E414
+ thumb_func_end sub_80952B4
+
+ thumb_func_start sub_80952E4
+sub_80952E4: @ 80952E4
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080952FC @ =gUnknown_0202E8F4
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08095300
+ adds r0, r4, 0
+ bl sub_809527C
+ b _0809531E
+ .align 2, 0
+_080952FC: .4byte gUnknown_0202E8F4
+_08095300:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08095328 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809532C @ =sub_8095330
+ str r1, [r0]
+_0809531E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095328: .4byte gTasks
+_0809532C: .4byte sub_8095330
+ thumb_func_end sub_80952E4
+
+ thumb_func_start sub_8095330
+sub_8095330: @ 8095330
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08095358 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08095350
+ bl sub_8094D60
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_80A6DCC
+_08095350:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095358: .4byte gPaletteFade
+ thumb_func_end sub_8095330
+
+ thumb_func_start sub_809535C
+sub_809535C: @ 809535C
+ push {lr}
+ ldr r2, _08095380 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _08095384 @ =SetUpBattlePokemonMenu
+ movs r0, 0x1
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08095388 @ =sub_809538C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095380: .4byte gPaletteFade
+_08095384: .4byte SetUpBattlePokemonMenu
+_08095388: .4byte sub_809538C
+ thumb_func_end sub_809535C
+
+ thumb_func_start sub_809538C
+sub_809538C: @ 809538C
+ push {r4,r5,lr}
+ ldr r4, _080953D8 @ =0x0201b260
+ ldr r5, _080953DC @ =gUnknown_020384F0
+_08095392:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080953F4
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080953E0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080953E4 @ =gStringVar1
+ bl GetMonNickname
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_8095050
+ ldrb r0, [r4]
+ ldr r1, _080953E8 @ =sub_8095408
+ ldr r2, _080953EC @ =SetUpBattlePokemonMenu
+ bl SetTaskFuncWithFollowupFunc
+ ldr r0, _080953F0 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _08095400
+ .align 2, 0
+_080953D8: .4byte 0x0201b260
+_080953DC: .4byte gUnknown_020384F0
+_080953E0: .4byte gPlayerParty
+_080953E4: .4byte gStringVar1
+_080953E8: .4byte sub_8095408
+_080953EC: .4byte SetUpBattlePokemonMenu
+_080953F0: .4byte sub_806AEDC
+_080953F4:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08095392
+_08095400:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809538C
+
+ thumb_func_start sub_8095408
+sub_8095408: @ 8095408
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, r7, 0
+ ldr r0, _0809543C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080954B8
+ ldr r2, _08095440 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08095444
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080954B8
+ .align 2, 0
+_0809543C: .4byte gPaletteFade
+_08095440: .4byte gMain
+_08095444:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809545A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080954B8
+_0809545A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080954A4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08095498 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0x10]
+ ldr r5, _0809549C @ =gUnknown_083B5FF4
+ ldr r6, _080954A0 @ =gUnknown_083B5FCC
+ bl GetMenuCursorPos
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl _call_via_r1
+ b _080954B8
+ .align 2, 0
+_08095498: .4byte gTasks
+_0809549C: .4byte gUnknown_083B5FF4
+_080954A0: .4byte gUnknown_083B5FCC
+_080954A4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080954B8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl BattlePokemonMenu_Cancel
+_080954B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095408
+
+ thumb_func_start sub_80954C0
+sub_80954C0: @ 80954C0
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080954D8 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080954D4
+ adds r0, r1, 0
+ bl BattlePokemonMenu_Cancel
+_080954D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080954D8: .4byte gUnknown_0202E8F6
+ thumb_func_end sub_80954C0
+
+ thumb_func_start BattleShowPokemonSummaryScreen
+BattleShowPokemonSummaryScreen: @ 80954DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0809552C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08095522
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _08095530 @ =0x0201b000
+ ldr r1, _08095534 @ =0x00000262
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08095538 @ =gPlayerParty
+ ldr r1, _0809553C @ =gPlayerPartyCount
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08095540 @ =sub_809535C
+ movs r1, 0x4
+ str r1, [sp]
+ adds r1, r5, 0
+ bl ShowPokemonSummaryScreen
+_08095522:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809552C: .4byte gPaletteFade
+_08095530: .4byte 0x0201b000
+_08095534: .4byte 0x00000262
+_08095538: .4byte gPlayerParty
+_0809553C: .4byte gPlayerPartyCount
+_08095540: .4byte sub_809535C
+ thumb_func_end BattleShowPokemonSummaryScreen
+
+ thumb_func_start BattlePokemonMenu_Summary
+BattlePokemonMenu_Summary: @ 8095544
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0809557C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095580 @ =BattleShowPokemonSummaryScreen
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809557C: .4byte gTasks
+_08095580: .4byte BattleShowPokemonSummaryScreen
+ thumb_func_end BattlePokemonMenu_Summary
+
+ thumb_func_start BattlePokemonMenu_Shift
+BattlePokemonMenu_Shift: @ 8095584
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080955F8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ ldr r1, _080955FC @ =gUnknown_083B5FF4
+ bl sub_806E7D0
+ adds r0, r6, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08095610
+ cmp r5, 0x1
+ beq _080955C6
+ cmp r5, 0x4
+ beq _080955C6
+ cmp r5, 0x5
+ bne _08095610
+_080955C6:
+ bl sub_806D5A4
+ ldr r4, _08095600 @ =gStringVar1
+ bl sub_8040D08
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, _08095604 @ =gStringVar4
+ ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _080955F8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809560C @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_080955F8: .4byte gTasks
+_080955FC: .4byte gUnknown_083B5FF4
+_08095600: .4byte gStringVar1
+_08095604: .4byte gStringVar4
+_08095608: .4byte gOtherText_CantSwitchPokeWithYours
+_0809560C: .4byte sub_80954C0
+_08095610:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095654 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _0809566C
+ bl sub_806D5A4
+ ldr r1, _08095658 @ =gStringVar1
+ adds r0, r4, 0
+ bl GetMonNickname
+ ldr r4, _0809565C @ =gStringVar4
+ ldr r1, _08095660 @ =gOtherText_NoEnergyLeft
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095664 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095668 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_08095654: .4byte gPlayerParty
+_08095658: .4byte gStringVar1
+_0809565C: .4byte gStringVar4
+_08095660: .4byte gOtherText_NoEnergyLeft
+_08095664: .4byte gTasks
+_08095668: .4byte sub_80954C0
+_0809566C:
+ movs r4, 0
+ ldr r0, _08095678 @ =gUnknown_02024A68
+ lsls r1, r6, 2
+ mov r8, r1
+ b _080956A8
+ .align 2, 0
+_08095678: .4byte gUnknown_02024A68
+_0809567C:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080956A0
+ adds r0, r5, 0
+ bl sub_8094C20
+ lsls r0, 24
+ ldr r2, _080956EC @ =gUnknown_02024A6A
+ lsls r1, r4, 1
+ adds r1, r2
+ lsrs r0, 24
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080956A0
+ b _08095808
+_080956A0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080956F0 @ =gUnknown_02024A68
+_080956A8:
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0809567C
+ movs r2, 0x64
+ mov r9, r2
+ mov r0, r9
+ muls r0, r5
+ ldr r1, _080956F4 @ =gPlayerParty
+ mov r10, r1
+ adds r7, r0, r1
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08095708
+ bl sub_806D5A4
+ ldr r4, _080956F8 @ =gStringVar4
+ ldr r1, _080956FC @ =gOtherText_EGGCantBattle
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095700 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095704 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_080956EC: .4byte gUnknown_02024A6A
+_080956F0: .4byte gUnknown_02024A68
+_080956F4: .4byte gPlayerParty
+_080956F8: .4byte gStringVar4
+_080956FC: .4byte gOtherText_EGGCantBattle
+_08095700: .4byte gTasks
+_08095704: .4byte sub_80954C0
+_08095708:
+ adds r0, r5, 0
+ bl sub_8094C20
+ ldr r1, _0809574C @ =0x02000000
+ ldr r2, _08095750 @ =0x0001609d
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08095768
+ bl sub_806D5A4
+ ldr r1, _08095754 @ =gStringVar1
+ adds r0, r7, 0
+ bl GetMonNickname
+ ldr r4, _08095758 @ =gStringVar4
+ ldr r1, _0809575C @ =gOtherText_AlreadySelected
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095760 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095764 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_0809574C: .4byte 0x02000000
+_08095750: .4byte 0x0001609d
+_08095754: .4byte gStringVar1
+_08095758: .4byte gStringVar4
+_0809575C: .4byte gOtherText_AlreadySelected
+_08095760: .4byte gTasks
+_08095764: .4byte sub_80954C0
+_08095768:
+ ldr r0, _08095790 @ =gUnknown_02038473
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _080957A0
+ bl sub_806D5A4
+ bl sub_8040B8C
+ ldr r0, _08095794 @ =gStringVar4
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095798 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809579C @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_08095790: .4byte gUnknown_02038473
+_08095794: .4byte gStringVar4
+_08095798: .4byte gTasks
+_0809579C: .4byte sub_80954C0
+_080957A0:
+ cmp r0, 0x2
+ bne _08095854
+ ldr r0, _080957EC @ =gUnknown_02024E6C
+ ldrb r4, [r0]
+ bl sub_806D5A4
+ ldr r0, _080957F0 @ =gUnknown_02024A6A
+ lsls r4, 1
+ adds r4, r0
+ ldrb r0, [r4]
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r10
+ ldr r1, _080957F4 @ =gStringVar1
+ bl GetMonNickname
+ ldr r4, _080957F8 @ =gStringVar4
+ ldr r1, _080957FC @ =gOtherText_CantBeSwitched
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095800 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095804 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_080957EC: .4byte gUnknown_02024E6C
+_080957F0: .4byte gUnknown_02024A6A
+_080957F4: .4byte gStringVar1
+_080957F8: .4byte gStringVar4
+_080957FC: .4byte gOtherText_CantBeSwitched
+_08095800: .4byte gTasks
+_08095804: .4byte sub_80954C0
+_08095808:
+ bl sub_806D5A4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0809583C @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08095840 @ =gStringVar1
+ bl GetMonNickname
+ ldr r4, _08095844 @ =gStringVar4
+ ldr r1, _08095848 @ =gOtherText_AlreadyBattle
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _0809584C @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095850 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_0809583C: .4byte gPlayerParty
+_08095840: .4byte gStringVar1
+_08095844: .4byte gStringVar4
+_08095848: .4byte gOtherText_AlreadyBattle
+_0809584C: .4byte gTasks
+_08095850: .4byte sub_80954C0
+_08095854:
+ adds r0, r5, 0
+ bl sub_8094C20
+ ldr r1, _080958AC @ =gUnknown_0202E8F5
+ strb r0, [r1]
+ ldr r1, _080958B0 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080958B4 @ =gUnknown_02024A6A
+ ldr r0, _080958B8 @ =gUnknown_02024E6C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8094C98
+ mov r0, r9
+ muls r0, r4
+ add r0, r10
+ adds r1, r7, 0
+ bl sub_806E6F0
+ ldr r1, _080958BC @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080958C0 @ =sub_809527C
+_0809589A:
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080958AC: .4byte gUnknown_0202E8F5
+_080958B0: .4byte gUnknown_0202E8F4
+_080958B4: .4byte gUnknown_02024A6A
+_080958B8: .4byte gUnknown_02024E6C
+_080958BC: .4byte gTasks
+_080958C0: .4byte sub_809527C
+ thumb_func_end BattlePokemonMenu_Shift
+
+ thumb_func_start BattlePokemonMenu_Cancel
+BattlePokemonMenu_Cancel: @ 80958C4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8072DEC
+ ldr r0, _080958FC @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ ldr r1, _08095900 @ =gUnknown_083B5FF4
+ bl sub_806E7D0
+ ldrh r0, [r4, 0x12]
+ strh r0, [r4, 0x10]
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080958FC: .4byte gTasks
+_08095900: .4byte gUnknown_083B5FF4
+ thumb_func_end BattlePokemonMenu_Cancel
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 4960803ca..60d7b9b2b 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -47,13 +47,13 @@ _0810FFAE:
bge _0810FFAE
movs r0, 0x17
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
movs r0, 0x18
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
movs r0, 0x19
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
pop {r4,r5}
pop {r0}
bx r0
@@ -264,12 +264,12 @@ _0811013A:
movs r4, 0x19
_0811013C:
adds r0, r4, 0
- bl sub_8053108
+ bl GetGameStat
ldr r1, _08110154 @ =0x0000270e
cmp r0, r1
bhi _0811014E
adds r0, r4, 0
- bl sav12_xor_increment
+ bl IncrementGameStat
_0811014E:
pop {r4}
pop {r0}
@@ -367,7 +367,7 @@ sub_81101FC: @ 81101FC
lsls r1, r0, 3
subs r1, r0
lsls r1, 3
- ldr r0, _08110220 @ =gUnknown_0202FFD4
+ ldr r0, _08110220 @ =gTrainerCards + 0x14
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
@@ -382,7 +382,7 @@ _0811021A:
pop {r0}
bx r0
.align 2, 0
-_08110220: .4byte gUnknown_0202FFD4
+_08110220: .4byte gTrainerCards + 0x14
_08110224: .4byte 0x0000270f
thumb_func_end sub_81101FC
@@ -392,7 +392,7 @@ sub_8110228: @ 8110228
lsls r1, r0, 3
subs r1, r0
lsls r1, 3
- ldr r0, _0811024C @ =gUnknown_0202FFD6
+ ldr r0, _0811024C @ =gTrainerCards + 0x16
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
@@ -407,7 +407,7 @@ _08110246:
pop {r0}
bx r0
.align 2, 0
-_0811024C: .4byte gUnknown_0202FFD6
+_0811024C: .4byte gTrainerCards + 0x16
_08110250: .4byte 0x0000270f
thumb_func_end sub_8110228
@@ -452,7 +452,7 @@ sub_8110290: @ 8110290
lsls r2, r4, 3
subs r2, r4
lsls r2, 3
- ldr r3, _081102D8 @ =gUnknown_0202FFF0
+ ldr r3, _081102D8 @ =gTrainerCards + 0x30
adds r1, r2, r3
subs r3, 0x30
adds r2, r3
@@ -477,7 +477,7 @@ sub_8110290: @ 8110290
bx r0
.align 2, 0
_081102D4: .4byte gSaveBlock1 + 0x30B8
-_081102D8: .4byte gUnknown_0202FFF0
+_081102D8: .4byte gTrainerCards + 0x30
_081102DC: .4byte gUnknown_02024D26
_081102E0: .4byte gLinkPlayers
_081102E4: .4byte gLinkPlayerMapObjects
@@ -488,7 +488,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
push {r4,lr}
ldr r4, _08110338 @ =gStringVar1
movs r0, 0x17
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -496,7 +496,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
bl ConvertIntToDecimalStringN_DigitWidth6
ldr r4, _0811033C @ =gStringVar2
movs r0, 0x18
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -504,7 +504,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
bl ConvertIntToDecimalStringN_DigitWidth6
ldr r4, _08110340 @ =gStringVar3
movs r0, 0x19
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index affe536ca..666882c04 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -4998,13 +4998,13 @@ _08050AEA:
cmp r0, 0
bne _08050B00
movs r0, 0x22
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08050C82
.align 2, 0
_08050AFC: .4byte gUnknown_03004834
_08050B00:
movs r0, 0x21
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08050C82
_08050B08:
ldr r0, _08050B2C @ =gUnknown_03004854
@@ -5295,13 +5295,13 @@ _08050D44:
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
- ldr r1, _08050D6C @ =gUnknown_3001BB4
+ ldr r1, _08050D6C @ =gSoftResetDisabled
movs r0, 0x1
strb r0, [r1]
b _08050E28
.align 2, 0
_08050D68: .4byte gUnknown_03004854
-_08050D6C: .4byte gUnknown_3001BB4
+_08050D6C: .4byte gSoftResetDisabled
_08050D70:
bl sub_8125E2C
ldr r0, _08050D7C @ =gUnknown_03004854
@@ -5389,13 +5389,13 @@ _08050E06:
str r0, [r1]
cmp r0, 0x5
ble _08050E28
- ldr r1, _08050E24 @ =gUnknown_3001BB4
+ ldr r1, _08050E24 @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _08050E2A
.align 2, 0
-_08050E24: .4byte gUnknown_3001BB4
+_08050E24: .4byte gSoftResetDisabled
_08050E28:
movs r0, 0
_08050E2A:
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s
deleted file mode 100644
index 7f26885e6..000000000
--- a/asm/berry_tag_screen.s
+++ /dev/null
@@ -1,1115 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8146014
-sub_8146014: @ 8146014
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8146014
-
- thumb_func_start sub_814602C
-sub_814602C: @ 814602C
- push {lr}
- ldr r2, _0814604C @ =REG_BG0VOFS
- ldr r0, _08146050 @ =gUnknown_030041B4
- ldrh r1, [r0]
- strh r1, [r2]
- ldr r0, _08146054 @ =REG_BG1VOFS
- strh r1, [r0]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0814604C: .4byte REG_BG0VOFS
-_08146050: .4byte gUnknown_030041B4
-_08146054: .4byte REG_BG1VOFS
- thumb_func_end sub_814602C
-
- thumb_func_start sub_8146058
-sub_8146058: @ 8146058
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08146074 @ =gMain
- ldr r1, _08146078 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0814606A
- b _08146250
-_0814606A:
- lsls r0, 2
- ldr r1, _0814607C @ =_08146080
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146074: .4byte gMain
-_08146078: .4byte 0x0000043c
-_0814607C: .4byte _08146080
- .align 2, 0
-_08146080:
- .4byte _081460B4
- .4byte _081460CC
- .4byte _081460F0
- .4byte _081460F6
- .4byte _08146110
- .4byte _0814611C
- .4byte _0814613C
- .4byte _0814615C
- .4byte _08146170
- .4byte _08146190
- .4byte _081461B4
- .4byte _08146204
- .4byte _08146224
-_081460B4:
- bl sub_80F9438
- bl sub_80F9368
- bl sub_8146288
- ldr r1, _081460C8 @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- b _0814620C
- .align 2, 0
-_081460C8: .4byte REG_BLDCNT
-_081460CC:
- bl ResetPaletteFade
- ldr r2, _081460E4 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _081460E8 @ =gMain
- ldr r0, _081460EC @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_081460E4: .4byte gPaletteFade
-_081460E8: .4byte gMain
-_081460EC: .4byte 0x0000043c
-_081460F0:
- bl ResetSpriteData
- b _0814620C
-_081460F6:
- ldr r0, _08146104 @ =gWindowConfig_81E6E18
- bl SetUpWindowConfig
- ldr r1, _08146108 @ =gMain
- ldr r0, _0814610C @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_08146104: .4byte gWindowConfig_81E6E18
-_08146108: .4byte gMain
-_0814610C: .4byte 0x0000043c
-_08146110:
- ldr r0, _08146118 @ =gWindowConfig_81E6E18
- bl MultistepInitMenuWindowBegin
- b _0814620C
- .align 2, 0
-_08146118: .4byte gWindowConfig_81E6E18
-_0814611C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _08146126
- b _08146250
-_08146126:
- ldr r0, _08146134 @ =0x02000000
- ldr r1, _08146138 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0814620C
- .align 2, 0
-_08146134: .4byte 0x02000000
-_08146138: .4byte 0x0001ffff
-_0814613C:
- bl sub_81462B8
- lsls r0, 24
- cmp r0, 0
- bne _08146148
- b _08146250
-_08146148:
- ldr r0, _08146154 @ =0x02000000
- ldr r1, _08146158 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0814620C
- .align 2, 0
-_08146154: .4byte 0x02000000
-_08146158: .4byte 0x0001ffff
-_0814615C:
- bl sub_81464E4
- ldr r1, _08146168 @ =gMain
- ldr r0, _0814616C @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_08146168: .4byte gMain
-_0814616C: .4byte 0x0000043c
-_08146170:
- ldr r0, _08146188 @ =gScriptItemId
- ldrb r0, [r0]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x38
- movs r2, 0x40
- bl sub_80A7D8C
- ldr r1, _0814618C @ =gUnknown_0203932C
- strb r0, [r1]
- b _0814620C
- .align 2, 0
-_08146188: .4byte gScriptItemId
-_0814618C: .4byte gUnknown_0203932C
-_08146190:
- ldr r0, _081461A8 @ =gScriptItemId
- ldrb r0, [r0]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- bl sub_8146600
- ldr r1, _081461AC @ =gMain
- ldr r0, _081461B0 @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_081461A8: .4byte gScriptItemId
-_081461AC: .4byte gMain
-_081461B0: .4byte 0x0000043c
-_081461B4:
- ldr r3, _081461EC @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _081461F0 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _081461F4 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _081461F8 @ =sub_814602C
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _081461FC @ =gMain
- ldr r0, _08146200 @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_081461EC: .4byte 0x04000208
-_081461F0: .4byte 0x04000200
-_081461F4: .4byte REG_DISPSTAT
-_081461F8: .4byte sub_814602C
-_081461FC: .4byte gMain
-_08146200: .4byte 0x0000043c
-_08146204:
- bl sub_8055870
- cmp r0, 0x1
- beq _08146250
-_0814620C:
- ldr r1, _0814621C @ =gMain
- ldr r2, _08146220 @ =0x0000043c
- adds r1, r2
-_08146212:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146250
- .align 2, 0
-_0814621C: .4byte gMain
-_08146220: .4byte 0x0000043c
-_08146224:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08146248 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0814624C @ =sub_8146014
- bl SetMainCallback2
- movs r0, 0x1
- b _08146252
- .align 2, 0
-_08146248: .4byte gPaletteFade
-_0814624C: .4byte sub_8146014
-_08146250:
- movs r0, 0
-_08146252:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8146058
-
- thumb_func_start sub_814625C
-sub_814625C: @ 814625C
- push {lr}
-_0814625E:
- bl sub_8146058
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08146278
- ldr r0, _08146274 @ =sub_8146480
- movs r1, 0
- bl CreateTask
- b _08146284
- .align 2, 0
-_08146274: .4byte sub_8146480
-_08146278:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0814625E
-_08146284:
- pop {r0}
- bx r0
- thumb_func_end sub_814625C
-
- thumb_func_start sub_8146288
-sub_8146288: @ 8146288
- ldr r1, _081462A8 @ =REG_BG1CNT
- ldr r2, _081462AC @ =0x00000502
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r2, 0xFE
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081462B0 @ =0x00000703
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _081462B4 @ =gUnknown_030041B4
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081462A8: .4byte REG_BG1CNT
-_081462AC: .4byte 0x00000502
-_081462B0: .4byte 0x00000703
-_081462B4: .4byte gUnknown_030041B4
- thumb_func_end sub_8146288
-
- thumb_func_start sub_81462B8
-sub_81462B8: @ 81462B8
- push {r4-r7,lr}
- ldr r1, _081462D4 @ =0x02000000
- ldr r2, _081462D8 @ =0x0001ffff
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x6
- bls _081462CA
- b _08146404
-_081462CA:
- lsls r0, 2
- ldr r1, _081462DC @ =_081462E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081462D4: .4byte 0x02000000
-_081462D8: .4byte 0x0001ffff
-_081462DC: .4byte _081462E0
- .align 2, 0
-_081462E0:
- .4byte _081462FC
- .4byte _0814630C
- .4byte _0814632C
- .4byte _08146340
- .4byte _081463A4
- .4byte _081463C4
- .4byte _081463E4
-_081462FC:
- ldr r0, _08146308 @ =gBerryCheck_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _081463CA
- .align 2, 0
-_08146308: .4byte gBerryCheck_Gfx
-_0814630C:
- ldr r0, _0814631C @ =gUnknown_08E788E4
- ldr r1, _08146320 @ =0x06002800
- bl LZDecompressVram
- ldr r1, _08146324 @ =0x02000000
- ldr r2, _08146328 @ =0x0001ffff
- adds r1, r2
- b _081463D0
- .align 2, 0
-_0814631C: .4byte gUnknown_08E788E4
-_08146320: .4byte 0x06002800
-_08146324: .4byte 0x02000000
-_08146328: .4byte 0x0001ffff
-_0814632C:
- ldr r0, _08146338 @ =gUnknown_08E78A84
- ldr r1, _0814633C @ =0x06003000
- bl LZDecompressVram
- b _081463CA
- .align 2, 0
-_08146338: .4byte gUnknown_08E78A84
-_0814633C: .4byte 0x06003000
-_08146340:
- movs r1, 0
- ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000
- adds r2, r7, 0
- ldr r6, _08146360 @ =0x00004042
- ldr r5, _08146364 @ =gSaveBlock2
- ldr r4, _08146368 @ =0x00005042
- ldr r3, _0814636C @ =0x000003ff
-_0814634E:
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- bne _08146370
- lsls r0, r1, 1
- adds r0, r2
- strh r6, [r0]
- b _08146376
- .align 2, 0
-_0814635C: .4byte gBGTilemapBuffers + 0x1000
-_08146360: .4byte 0x00004042
-_08146364: .4byte gSaveBlock2
-_08146368: .4byte 0x00005042
-_0814636C: .4byte 0x000003ff
-_08146370:
- lsls r0, r1, 1
- adds r0, r2
- strh r4, [r0]
-_08146376:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _0814634E
- ldr r1, _08146394 @ =0x06003800
- ldr r0, _08146398 @ =0x040000d4
- str r7, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0814639C @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r1, _081463A0 @ =0x0001ffff
- add r1, r12
- b _081463D0
- .align 2, 0
-_08146394: .4byte 0x06003800
-_08146398: .4byte 0x040000d4
-_0814639C: .4byte 0x80000400
-_081463A0: .4byte 0x0001ffff
-_081463A4:
- ldr r0, _081463B8 @ =gBerryCheck_Pal
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- ldr r1, _081463BC @ =0x02000000
- ldr r2, _081463C0 @ =0x0001ffff
- adds r1, r2
- b _081463D0
- .align 2, 0
-_081463B8: .4byte gBerryCheck_Pal
-_081463BC: .4byte 0x02000000
-_081463C0: .4byte 0x0001ffff
-_081463C4:
- ldr r0, _081463D8 @ =gUnknown_083C1F74
- bl LoadCompressedObjectPic
-_081463CA:
- ldr r1, _081463DC @ =0x02000000
- ldr r0, _081463E0 @ =0x0001ffff
- adds r1, r0
-_081463D0:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146404
- .align 2, 0
-_081463D8: .4byte gUnknown_083C1F74
-_081463DC: .4byte 0x02000000
-_081463E0: .4byte 0x0001ffff
-_081463E4:
- ldr r0, _081463F8 @ =gUnknown_083C1F7C
- bl LoadCompressedObjectPalette
- ldr r0, _081463FC @ =0x02000000
- ldr r1, _08146400 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _08146406
- .align 2, 0
-_081463F8: .4byte gUnknown_083C1F7C
-_081463FC: .4byte 0x02000000
-_08146400: .4byte 0x0001ffff
-_08146404:
- movs r0, 0
-_08146406:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81462B8
-
- thumb_func_start sub_814640C
-sub_814640C: @ 814640C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08146438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08146432
- ldr r0, _0814643C @ =sub_80A5B40
- bl SetMainCallback2
- bl sub_80A7DD4
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_08146432:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146438: .4byte gPaletteFade
-_0814643C: .4byte sub_80A5B40
- thumb_func_end sub_814640C
-
- thumb_func_start sub_8146440
-sub_8146440: @ 8146440
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08146478 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814647C @ =sub_814640C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146478: .4byte gTasks
-_0814647C: .4byte sub_814640C
- thumb_func_end sub_8146440
-
- thumb_func_start sub_8146480
-sub_8146480: @ 8146480
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r0, _081464DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081464D6
- ldr r5, _081464E0 @ =gMain
- ldrh r1, [r5, 0x30]
- movs r6, 0xF0
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x40
- bne _081464AC
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_81466E8
-_081464AC:
- ldrh r1, [r5, 0x30]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x80
- bne _081464BE
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81466E8
-_081464BE:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081464D0
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081464D6
-_081464D0:
- adds r0, r7, 0
- bl sub_8146440
-_081464D6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081464DC: .4byte gPaletteFade
-_081464E0: .4byte gMain
- thumb_func_end sub_8146480
-
- thumb_func_start sub_81464E4
-sub_81464E4: @ 81464E4
- push {r4-r7,lr}
- ldr r4, _0814659C @ =gScriptItemId
- ldrb r0, [r4]
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r5, r0, 0
- ldr r7, _081465A0 @ =gStringVar1
- ldrh r1, [r4]
- subs r1, 0x84
- adds r0, r7, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [r5, 0xC]
- movs r1, 0x4
- movs r2, 0xE
- bl MenuPrint
- ldr r0, [r5, 0x10]
- movs r1, 0x4
- movs r2, 0x10
- bl MenuPrint
- ldrh r1, [r5, 0x8]
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- movs r1, 0xFE
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _0814654E
- adds r4, 0xA
-_0814654E:
- adds r0, r4, 0
- movs r1, 0x64
- bl __umodsi3
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x64
- bl __udivsi3
- adds r4, r0, 0
- ldr r0, _081465A4 @ =gOtherText_Size
- movs r1, 0xB
- movs r2, 0x7
- bl MenuPrint
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _081465B0
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _081465A8 @ =gStringVar2
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _081465AC @ =gContestStatsText_Unknown1
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- b _081465BA
- .align 2, 0
-_0814659C: .4byte gScriptItemId
-_081465A0: .4byte gStringVar1
-_081465A4: .4byte gOtherText_Size
-_081465A8: .4byte gStringVar2
-_081465AC: .4byte gContestStatsText_Unknown1
-_081465B0:
- ldr r0, _081465E0 @ =gOtherText_ThreeQuestions2
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
-_081465BA:
- ldr r0, _081465E4 @ =gOtherText_Firm
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _081465EC
- ldr r0, _081465E8 @ =gUnknown_0841192C
- ldrb r1, [r5, 0x7]
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
- b _081465F6
- .align 2, 0
-_081465E0: .4byte gOtherText_ThreeQuestions2
-_081465E4: .4byte gOtherText_Firm
-_081465E8: .4byte gUnknown_0841192C
-_081465EC:
- ldr r0, _081465FC @ =gOtherText_ThreeQuestions2
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
-_081465F6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081465FC: .4byte gOtherText_ThreeQuestions2
- thumb_func_end sub_81464E4
-
- thumb_func_start sub_8146600
-sub_8146600: @ 8146600
- push {r4,r5,lr}
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- bl GetBerryInfo
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _08146698 @ =gUnknown_0203932E
- ldr r0, _0814669C @ =0x0000ffff
- adds r3, r0, 0
-_0814661A:
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x4
- bls _0814661A
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _08146642
- movs r0, 0x30
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1]
-_08146642:
- ldrb r0, [r4, 0x16]
- cmp r0, 0
- beq _08146656
- movs r0, 0x58
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2]
-_08146656:
- ldrb r0, [r4, 0x17]
- cmp r0, 0
- beq _0814666A
- movs r0, 0x80
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x4]
-_0814666A:
- ldrb r0, [r4, 0x18]
- cmp r0, 0
- beq _0814667E
- movs r0, 0xA8
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x6]
-_0814667E:
- ldrb r0, [r4, 0x19]
- cmp r0, 0
- beq _08146692
- movs r0, 0xD0
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
-_08146692:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08146698: .4byte gUnknown_0203932E
-_0814669C: .4byte 0x0000ffff
- thumb_func_end sub_8146600
-
- thumb_func_start sub_81466A0
-sub_81466A0: @ 81466A0
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0x1
- negs r7, r7
- ldr r6, _081466DC @ =gUnknown_0203932E
-_081466AA:
- lsls r0, r5, 1
- adds r4, r0, r6
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r7
- beq _081466CA
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081466E0 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _081466E4 @ =0x0000ffff
- strh r0, [r4]
-_081466CA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _081466AA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081466DC: .4byte gUnknown_0203932E
-_081466E0: .4byte gSprites
-_081466E4: .4byte 0x0000ffff
- thumb_func_end sub_81466A0
-
- thumb_func_start sub_81466E8
-sub_81466E8: @ 81466E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08146748 @ =gTasks + 0x8
- adds r6, r0, r1
- ldr r4, _0814674C @ =gUnknown_03005D10
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- ldrb r1, [r0, 0x1]
- ldrb r0, [r4, 0xC]
- adds r1, r0
- cmp r1, 0
- bne _08146718
- lsls r0, r2, 24
- cmp r0, 0
- blt _0814678C
-_08146718:
- adds r0, r1, 0x1
- lsls r5, r2, 24
- mov r1, r8
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- bne _08146728
- cmp r5, 0
- bgt _0814678C
-_08146728:
- movs r0, 0x5
- bl PlaySE
- mov r2, r8
- ldrb r3, [r2, 0x1]
- ldrb r4, [r4, 0xC]
- mov r12, r4
- adds r0, r3, r4
- asrs r2, r5, 24
- adds r1, r0, r2
- cmp r1, 0
- bge _08146750
- negs r0, r0
- strh r0, [r6, 0x2]
- b _08146766
- .align 2, 0
-_08146748: .4byte gTasks + 0x8
-_0814674C: .4byte gUnknown_03005D10
-_08146750:
- mov r4, r8
- ldrb r0, [r4, 0x2]
- cmp r1, r0
- blt _08146764
- subs r0, r3
- mov r1, r12
- subs r0, r1
- subs r0, 0x1
- strh r0, [r6, 0x2]
- b _08146766
-_08146764:
- strh r2, [r6, 0x2]
-_08146766:
- ldr r0, _08146780 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _08146784 @ =sub_8146798
- str r0, [r1]
- cmp r5, 0
- bge _08146788
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- b _0814678A
- .align 2, 0
-_08146780: .4byte gTasks
-_08146784: .4byte sub_8146798
-_08146788:
- movs r0, 0x10
-_0814678A:
- strh r0, [r6]
-_0814678C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81466E8
-
- thumb_func_start sub_8146798
-sub_8146798: @ 8146798
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08146800 @ =gTasks + 0x8
- adds r0, r1
- ldr r2, _08146804 @ =gUnknown_030041B4
- ldrh r1, [r0]
- ldrh r5, [r2]
- adds r3, r1, r5
- movs r1, 0xFF
- ands r3, r1
- strh r3, [r2]
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _081467C2
- cmp r3, 0x90
- beq _081467CA
-_081467C2:
- cmp r0, 0
- bge _081467E0
- cmp r3, 0x70
- bne _081467E0
-_081467CA:
- ldr r0, _08146808 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0xA
- ldrsb r0, [r1, r0]
- bl sub_8146810
- bl sub_81468BC
-_081467E0:
- ldr r0, _08146804 @ =gUnknown_030041B4
- ldrh r2, [r0]
- cmp r2, 0
- bne _081467FA
- ldr r0, _08146808 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, _0814680C @ =sub_8146480
- str r0, [r1]
-_081467FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08146800: .4byte gTasks + 0x8
-_08146804: .4byte gUnknown_030041B4
-_08146808: .4byte gTasks
-_0814680C: .4byte sub_8146480
- thumb_func_end sub_8146798
-
- thumb_func_start sub_8146810
-sub_8146810: @ 8146810
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r0, r3, 24
- asrs r1, r0, 24
- cmp r1, 0
- ble _08146848
- ldr r0, _08146840 @ =gUnknown_03005D10
- adds r4, r0, 0
- adds r4, 0xC
- ldrb r2, [r0, 0xC]
- adds r1, r2, r1
- adds r6, r0, 0
- cmp r1, 0x7
- ble _08146844
- adds r0, r3, 0
- adds r0, 0xF9
- adds r0, r2, r0
- ldrb r1, [r4, 0x1]
- adds r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x7
- b _0814686E
- .align 2, 0
-_08146840: .4byte gUnknown_03005D10
-_08146844:
- adds r0, r2, r3
- b _0814686E
-_08146848:
- ldr r0, _08146868 @ =gUnknown_03005D10
- adds r5, r0, 0
- adds r5, 0xC
- ldrb r2, [r0, 0xC]
- adds r1, r2, r1
- adds r6, r0, 0
- cmp r1, 0
- bge _0814686C
- adds r0, r2, r3
- ldrb r1, [r5, 0x1]
- adds r0, r1
- movs r1, 0
- strb r0, [r5, 0x1]
- strb r1, [r6, 0xC]
- b _08146870
- .align 2, 0
-_08146868: .4byte gUnknown_03005D10
-_0814686C:
- adds r0, r2, r4
-_0814686E:
- strb r0, [r6, 0xC]
-_08146870:
- ldr r2, _081468AC @ =gScriptItemId
- movs r0, 0x3
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _081468B0 @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- ldr r0, _081468B4 @ =gUnknown_0203932C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081468B8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- bl sub_81466A0
- bl sub_80A7DD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081468AC: .4byte gScriptItemId
-_081468B0: .4byte gUnknown_03005D24
-_081468B4: .4byte gUnknown_0203932C
-_081468B8: .4byte gSprites
- thumb_func_end sub_8146810
-
- thumb_func_start sub_81468BC
-sub_81468BC: @ 81468BC
- push {r4,lr}
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_81464E4
- ldr r4, _081468F8 @ =gScriptItemId
- ldrb r0, [r4]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x38
- movs r2, 0x40
- bl sub_80A7D8C
- ldr r1, _081468FC @ =gUnknown_0203932C
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- bl sub_8146600
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081468F8: .4byte gScriptItemId
-_081468FC: .4byte gUnknown_0203932C
- thumb_func_end sub_81468BC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/bike.s b/asm/bike.s
index d73fa55dc..a7e3401ac 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -1947,8 +1947,8 @@ _080E5EEE:
bx r1
thumb_func_end sub_80E5EC0
- thumb_func_start sub_80E5EF4
-sub_80E5EF4: @ 80E5EF4
+ thumb_func_start IsBikingDisallowedByPlayer
+IsBikingDisallowedByPlayer: @ 80E5EF4
push {r4,lr}
sub sp, 0x4
ldr r0, _080E5F30 @ =gPlayerAvatar
@@ -1985,7 +1985,7 @@ _080E5F36:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80E5EF4
+ thumb_func_end IsBikingDisallowedByPlayer
thumb_func_start player_should_look_direction_be_enforced_upon_movement
player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s
new file mode 100644
index 000000000..f8f2683a6
--- /dev/null
+++ b/asm/braille_puzzles.s
@@ -0,0 +1,606 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ShouldDoBrailleDigEffect
+ShouldDoBrailleDigEffect: @ 81473B8
+ push {lr}
+ ldr r0, _081473E8 @ =0x0000084f
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08147400
+ ldr r2, _081473EC @ =gSaveBlock1
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081473F0 @ =0x00004718
+ cmp r1, r0
+ bne _08147400
+ ldr r1, [r2]
+ ldr r0, _081473F4 @ =0x0003000a
+ cmp r1, r0
+ beq _081473E4
+ ldr r0, _081473F8 @ =0x00030009
+ cmp r1, r0
+ beq _081473E4
+ ldr r0, _081473FC @ =0x0003000b
+ cmp r1, r0
+ bne _08147400
+_081473E4:
+ movs r0, 0x1
+ b _08147402
+ .align 2, 0
+_081473E8: .4byte 0x0000084f
+_081473EC: .4byte gSaveBlock1
+_081473F0: .4byte 0x00004718
+_081473F4: .4byte 0x0003000a
+_081473F8: .4byte 0x00030009
+_081473FC: .4byte 0x0003000b
+_08147400:
+ movs r0, 0
+_08147402:
+ pop {r1}
+ bx r1
+ thumb_func_end ShouldDoBrailleDigEffect
+
+ thumb_func_start DoBrailleDigEffect
+DoBrailleDigEffect: @ 8147408
+ push {lr}
+ ldr r2, _08147460 @ =0x0000022a
+ movs r0, 0x10
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147464 @ =0x0000022b
+ movs r0, 0x11
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147468 @ =0x00000e32
+ movs r0, 0x10
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814746C @ =0x00000233
+ movs r0, 0x11
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147470 @ =0x00000e34
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ ldr r0, _08147474 @ =0x0000084f
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147460: .4byte 0x0000022a
+_08147464: .4byte 0x0000022b
+_08147468: .4byte 0x00000e32
+_0814746C: .4byte 0x00000233
+_08147470: .4byte 0x00000e34
+_08147474: .4byte 0x0000084f
+ thumb_func_end DoBrailleDigEffect
+
+ thumb_func_start CheckRelicanthWailord
+CheckRelicanthWailord: @ 8147478
+ push {r4,lr}
+ ldr r4, _081474B4 @ =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _081474B8 @ =0x0000017d
+ cmp r0, r1
+ bne _081474C0
+ bl CalculatePlayerPartyCount
+ ldr r0, _081474BC @ =gPlayerPartyCount
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r4, 0
+ subs r1, 0x64
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0x9D
+ lsls r1, 1
+ cmp r0, r1
+ bne _081474C0
+ movs r0, 0x1
+ b _081474C2
+ .align 2, 0
+_081474B4: .4byte gPlayerParty
+_081474B8: .4byte 0x0000017d
+_081474BC: .4byte gPlayerPartyCount
+_081474C0:
+ movs r0, 0
+_081474C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckRelicanthWailord
+
+ thumb_func_start ShouldDoBrailleStrengthEffect
+ShouldDoBrailleStrengthEffect: @ 81474C8
+ push {lr}
+ movs r0, 0x85
+ lsls r0, 4
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814750C
+ ldr r2, _081474FC @ =gSaveBlock1
+ ldrh r1, [r2, 0x4]
+ movs r0, 0xC3
+ lsls r0, 3
+ cmp r1, r0
+ bne _0814750C
+ ldr r1, [r2]
+ ldr r0, _08147500 @ =0x0017000a
+ cmp r1, r0
+ beq _081474F8
+ ldr r0, _08147504 @ =0x00170009
+ cmp r1, r0
+ beq _081474F8
+ ldr r0, _08147508 @ =0x0017000b
+ cmp r1, r0
+ bne _0814750C
+_081474F8:
+ movs r0, 0x1
+ b _0814750E
+ .align 2, 0
+_081474FC: .4byte gSaveBlock1
+_08147500: .4byte 0x0017000a
+_08147504: .4byte 0x00170009
+_08147508: .4byte 0x0017000b
+_0814750C:
+ movs r0, 0
+_0814750E:
+ pop {r1}
+ bx r1
+ thumb_func_end ShouldDoBrailleStrengthEffect
+
+ thumb_func_start DoBrailleStrengthEffect
+DoBrailleStrengthEffect: @ 8147514
+ push {lr}
+ movs r0, 0x28
+ bl FieldEffectActiveListRemove
+ ldr r2, _08147574 @ =0x0000022a
+ movs r0, 0xE
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147578 @ =0x0000022b
+ movs r0, 0xF
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x10
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814757C @ =0x00000e32
+ movs r0, 0xE
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147580 @ =0x00000233
+ movs r0, 0xF
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147584 @ =0x00000e34
+ movs r0, 0x10
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ movs r0, 0x85
+ lsls r0, 4
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147574: .4byte 0x0000022a
+_08147578: .4byte 0x0000022b
+_0814757C: .4byte 0x00000e32
+_08147580: .4byte 0x00000233
+_08147584: .4byte 0x00000e34
+ thumb_func_end DoBrailleStrengthEffect
+
+ thumb_func_start ShouldDoBrailleFlyEffect
+ShouldDoBrailleFlyEffect: @ 8147588
+ push {lr}
+ ldr r0, _081475AC @ =0x00000852
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _081475BC
+ ldr r2, _081475B0 @ =gSaveBlock1
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081475B4 @ =0x00004418
+ cmp r1, r0
+ bne _081475BC
+ ldr r1, [r2]
+ ldr r0, _081475B8 @ =0x00190008
+ cmp r1, r0
+ bne _081475BC
+ movs r0, 0x1
+ b _081475BE
+ .align 2, 0
+_081475AC: .4byte 0x00000852
+_081475B0: .4byte gSaveBlock1
+_081475B4: .4byte 0x00004418
+_081475B8: .4byte 0x00190008
+_081475BC:
+ movs r0, 0
+_081475BE:
+ pop {r1}
+ bx r1
+ thumb_func_end ShouldDoBrailleFlyEffect
+
+ thumb_func_start DoBrailleFlyEffect
+DoBrailleFlyEffect: @ 81475C4
+ push {lr}
+ ldr r0, _081475D8 @ =gUnknown_0202FF84
+ ldr r1, _081475DC @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x3C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081475D8: .4byte gUnknown_0202FF84
+_081475DC: .4byte gUnknown_03005CE0
+ thumb_func_end DoBrailleFlyEffect
+
+ thumb_func_start FldEff_UseFlyAncientTomb
+FldEff_UseFlyAncientTomb: @ 81475E0
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147604 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _08147608 @ =UseFlyAncientTomb_Callback
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08147604: .4byte gTasks
+_08147608: .4byte UseFlyAncientTomb_Callback
+ thumb_func_end FldEff_UseFlyAncientTomb
+
+ thumb_func_start UseFlyAncientTomb_Callback
+UseFlyAncientTomb_Callback: @ 814760C
+ push {lr}
+ movs r0, 0x3C
+ bl FieldEffectActiveListRemove
+ bl UseFlyAncientTomb_Finish
+ pop {r0}
+ bx r0
+ thumb_func_end UseFlyAncientTomb_Callback
+
+ thumb_func_start UseFlyAncientTomb_Finish
+UseFlyAncientTomb_Finish: @ 814761C
+ push {lr}
+ ldr r2, _08147674 @ =0x0000022a
+ movs r0, 0xE
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147678 @ =0x0000022b
+ movs r0, 0xF
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x10
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814767C @ =0x00000e32
+ movs r0, 0xE
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147680 @ =0x00000233
+ movs r0, 0xF
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147684 @ =0x00000e34
+ movs r0, 0x10
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ ldr r0, _08147688 @ =0x00000852
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147674: .4byte 0x0000022a
+_08147678: .4byte 0x0000022b
+_0814767C: .4byte 0x00000e32
+_08147680: .4byte 0x00000233
+_08147684: .4byte 0x00000e34
+_08147688: .4byte 0x00000852
+ thumb_func_end UseFlyAncientTomb_Finish
+
+ thumb_func_start DoBrailleWait
+DoBrailleWait: @ 814768C
+ push {lr}
+ ldr r0, _081476A8 @ =0x00000851
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _081476A2
+ ldr r0, _081476AC @ =Task_BrailleWait
+ movs r1, 0x50
+ bl CreateTask
+_081476A2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081476A8: .4byte 0x00000851
+_081476AC: .4byte Task_BrailleWait
+ thumb_func_end DoBrailleWait
+
+ thumb_func_start Task_BrailleWait
+Task_BrailleWait: @ 81476B0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _081476D4 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _0814776A
+ lsls r0, 2
+ ldr r1, _081476D8 @ =_081476DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081476D4: .4byte gTasks + 0x8
+_081476D8: .4byte _081476DC
+ .align 2, 0
+_081476DC:
+ .4byte _081476F0
+ .4byte _081476FE
+ .4byte _08147730
+ .4byte _08147748
+ .4byte _0814775A
+_081476F0:
+ movs r1, 0xE1
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4]
+ b _0814776A
+_081476FE:
+ bl BrailleWait_CheckButtonPress
+ cmp r0, 0
+ beq _08147716
+ bl MenuZeroFillScreen
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ strh r0, [r4]
+ b _0814776A
+_08147716:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814776A
+ bl MenuZeroFillScreen
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0x1E
+ strh r0, [r4, 0x2]
+ b _0814776A
+_08147730:
+ bl BrailleWait_CheckButtonPress
+ cmp r0, 0
+ beq _08147748
+ bl sub_8064E2C
+ adds r0, r5, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ b _0814776A
+_08147748:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814776A
+ movs r0, 0x4
+ strh r0, [r4]
+ b _0814776A
+_0814775A:
+ bl sub_8064E2C
+ ldr r0, _08147770 @ =gUnknown_0815EF19
+ bl ScriptContext1_SetupScript
+ adds r0, r5, 0
+ bl DestroyTask
+_0814776A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147770: .4byte gUnknown_0815EF19
+ thumb_func_end Task_BrailleWait
+
+ thumb_func_start BrailleWait_CheckButtonPress
+BrailleWait_CheckButtonPress: @ 8147774
+ push {lr}
+ movs r1, 0xFF
+ ldr r0, _081477A4 @ =gSaveBlock2
+ ldrb r2, [r0, 0x13]
+ cmp r2, 0x1
+ bne _08147788
+ movs r3, 0xC0
+ lsls r3, 2
+ adds r0, r3, 0
+ orrs r1, r0
+_08147788:
+ cmp r2, 0x2
+ bne _08147794
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ orrs r1, r0
+_08147794:
+ ldr r0, _081477A8 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ ands r1, r0
+ cmp r1, 0
+ bne _081477AC
+ movs r0, 0
+ b _081477AE
+ .align 2, 0
+_081477A4: .4byte gSaveBlock2
+_081477A8: .4byte gMain
+_081477AC:
+ movs r0, 0x1
+_081477AE:
+ pop {r1}
+ bx r1
+ thumb_func_end BrailleWait_CheckButtonPress
+
+ thumb_func_start DoSealedChamberShakingEffect1
+DoSealedChamberShakingEffect1: @ 81477B4
+ push {lr}
+ ldr r0, _081477E8 @ =SealedChamberShakingEffect
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081477EC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ movs r0, 0x2
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0x32
+ strh r0, [r1, 0x14]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081477E8: .4byte SealedChamberShakingEffect
+_081477EC: .4byte gTasks
+ thumb_func_end DoSealedChamberShakingEffect1
+
+ thumb_func_start DoSealedChamberShakingEffect2
+DoSealedChamberShakingEffect2: @ 81477F0
+ push {lr}
+ ldr r0, _08147824 @ =SealedChamberShakingEffect
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147828 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ movs r0, 0x3
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0x2
+ strh r0, [r1, 0x14]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147824: .4byte SealedChamberShakingEffect
+_08147828: .4byte gTasks
+ thumb_func_end DoSealedChamberShakingEffect2
+
+ thumb_func_start SealedChamberShakingEffect
+SealedChamberShakingEffect: @ 814782C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0814788C @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _08147884
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl SetCameraPanning
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08147884
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ bl InstallCameraPanAheadCallback
+_08147884:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814788C: .4byte gTasks
+ thumb_func_end SealedChamberShakingEffect
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_club.s b/asm/cable_club.s
index c1275ee1d..4c9dca6af 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -810,10 +810,10 @@ sub_8083314: @ 8083314
cmp r4, r0
bne _080833B6
movs r4, 0
- ldr r6, _0808333C @ =gUnknown_0202FFC0
+ ldr r6, _0808333C @ =gTrainerCards
b _0808335A
.align 2, 0
-_0808333C: .4byte gUnknown_0202FFC0
+_0808333C: .4byte gTrainerCards
_08083340:
lsls r1, r4, 8
ldr r0, _08083394 @ =gBlockRecvBuffer
@@ -1031,7 +1031,7 @@ sub_80834E4: @ 80834E4
ldr r2, _08083504 @ =0x00001133
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083508 @ =gUnknown_020239F8
+ ldr r1, _08083508 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x2
@@ -1042,7 +1042,7 @@ sub_80834E4: @ 80834E4
.align 2, 0
_08083500: .4byte gLinkType
_08083504: .4byte 0x00001133
-_08083508: .4byte gUnknown_020239F8
+_08083508: .4byte gBattleTypeFlags
thumb_func_end sub_80834E4
thumb_func_start sub_808350C
@@ -1055,7 +1055,7 @@ sub_808350C: @ 808350C
ldr r3, _08083534 @ =0x00003311
adds r0, r3, 0
strh r0, [r1]
- ldr r0, _08083538 @ =gUnknown_020239F8
+ ldr r0, _08083538 @ =gBattleTypeFlags
strh r2, [r0]
movs r0, 0x2
movs r1, 0x4
@@ -1066,7 +1066,7 @@ sub_808350C: @ 808350C
_0808352C: .4byte gScriptResult
_08083530: .4byte gLinkType
_08083534: .4byte 0x00003311
-_08083538: .4byte gUnknown_020239F8
+_08083538: .4byte gBattleTypeFlags
thumb_func_end sub_808350C
thumb_func_start sub_808353C
@@ -1185,7 +1185,7 @@ sub_8083614: @ 8083614
ldr r2, _08083634 @ =0x00004411
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083638 @ =gUnknown_020239F8
+ ldr r1, _08083638 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x2
@@ -1196,7 +1196,7 @@ sub_8083614: @ 8083614
.align 2, 0
_08083630: .4byte gLinkType
_08083634: .4byte 0x00004411
-_08083638: .4byte gUnknown_020239F8
+_08083638: .4byte gBattleTypeFlags
thumb_func_end sub_8083614
thumb_func_start sub_808363C
@@ -1206,7 +1206,7 @@ sub_808363C: @ 808363C
ldr r2, _0808365C @ =0x00006601
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083660 @ =gUnknown_020239F8
+ ldr r1, _08083660 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x4
@@ -1217,7 +1217,7 @@ sub_808363C: @ 808363C
.align 2, 0
_08083658: .4byte gLinkType
_0808365C: .4byte 0x00006601
-_08083660: .4byte gUnknown_020239F8
+_08083660: .4byte gBattleTypeFlags
thumb_func_end sub_808363C
thumb_func_start sub_8083664
@@ -1562,20 +1562,20 @@ _08083908:
beq _08083924
b _0808392E
_0808390E:
- ldr r1, _08083914 @ =gUnknown_020239F8
+ ldr r1, _08083914 @ =gBattleTypeFlags
movs r0, 0xA
b _0808392C
.align 2, 0
-_08083914: .4byte gUnknown_020239F8
+_08083914: .4byte gBattleTypeFlags
_08083918:
- ldr r1, _08083920 @ =gUnknown_020239F8
+ ldr r1, _08083920 @ =gBattleTypeFlags
movs r0, 0xB
b _0808392C
.align 2, 0
-_08083920: .4byte gUnknown_020239F8
+_08083920: .4byte gBattleTypeFlags
_08083924:
bl ReducePlayerPartyToThree
- ldr r1, _08083948 @ =gUnknown_020239F8
+ ldr r1, _08083948 @ =gBattleTypeFlags
movs r0, 0x4B
_0808392C:
strh r0, [r1]
@@ -1592,7 +1592,7 @@ _08083940:
pop {r0}
bx r0
.align 2, 0
-_08083948: .4byte gUnknown_020239F8
+_08083948: .4byte gBattleTypeFlags
_0808394C: .4byte sub_800E7C4
_08083950: .4byte gMain
_08083954: .4byte sub_8083958
@@ -1602,8 +1602,8 @@ _08083954: .4byte sub_8083958
sub_8083958: @ 8083958
push {lr}
bl call_map_music_set_to_zero
- bl copy_player_party_from_sav1
- bl copy_bags_and_unk_data_to_save_blocks
+ bl LoadPlayerParty
+ bl SavePlayerBag
bl sub_810FEFC
ldr r0, _08083990 @ =gSpecialVar_0x8004
ldrh r0, [r0]
@@ -1643,8 +1643,8 @@ sub_80839A4: @ 80839A4
cmp r1, 0x5
bne _080839C0
_080839B8:
- bl copy_player_party_from_sav1
- bl copy_bags_and_unk_data_to_save_blocks
+ bl LoadPlayerParty
+ bl SavePlayerBag
_080839C0:
movs r0, 0x7F
bl copy_saved_warp2_bank_and_enter_x_to_warp1
@@ -2066,49 +2066,4 @@ _08083CE8: .4byte gTasks
_08083CEC: .4byte sub_8083CA4
thumb_func_end unref_sub_8083CC8
- thumb_func_start unref_sub_8083CF0
-unref_sub_8083CF0: @ 8083CF0
- push {r4-r7,lr}
- ldr r0, _08083D38 @ =0x04000128
- ldr r4, [r0]
- lsls r4, 26
- lsrs r4, 30
- ldr r0, _08083D3C @ =gUnknown_03004DA0
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _08083D40 @ =gUnknown_0839B24A
- bl StringAppend
- movs r5, 0
- ldr r0, _08083D44 @ =word_3002910
- movs r6, 0x1
- eors r4, r6
- lsls r4, 1
- adds r7, r4, r0
- movs r4, 0
-_08083D14:
- ldrh r0, [r7]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08083D28
- ldr r1, _08083D48 @ =gUnknown_0839B22C
- adds r1, r4, r1
- ldr r0, _08083D3C @ =gUnknown_03004DA0
- bl StringAppend
-_08083D28:
- adds r4, 0x3
- adds r5, 0x1
- cmp r5, 0x9
- ble _08083D14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08083D38: .4byte 0x04000128
-_08083D3C: .4byte gUnknown_03004DA0
-_08083D40: .4byte gUnknown_0839B24A
-_08083D44: .4byte word_3002910
-_08083D48: .4byte gUnknown_0839B22C
- thumb_func_end unref_sub_8083CF0
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s
deleted file mode 100644
index 54f53f1a2..000000000
--- a/asm/calculate_base_damage.s
+++ /dev/null
@@ -1,1165 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CalculateBaseDamage
-CalculateBaseDamage: @ 803BA2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r7, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r2, [sp, 0x54]
- ldr r4, [sp, 0x58]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0
- cmp r3, 0
- bne _0803BA80
- ldr r2, _0803BA78 @ =gBattleMovePower
- ldr r1, _0803BA7C @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2]
- b _0803BA84
- .align 2, 0
-_0803BA78: .4byte gBattleMovePower
-_0803BA7C: .4byte gBattleMoves
-_0803BA80:
- ldr r0, _0803BA9C @ =gBattleMovePower
- strh r3, [r0]
-_0803BA84:
- cmp r6, 0
- bne _0803BAA4
- ldr r1, _0803BAA0 @ =gBattleMoves
- ldr r6, [sp, 0x8]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r9, r0
- b _0803BAAE
- .align 2, 0
-_0803BA9C: .4byte gBattleMovePower
-_0803BAA0: .4byte gBattleMoves
-_0803BAA4:
- movs r0, 0x3F
- mov r9, r0
- mov r1, r9
- ands r1, r6
- mov r9, r1
-_0803BAAE:
- ldrh r6, [r7, 0x2]
- ldr r2, [sp, 0x4]
- ldrh r2, [r2, 0x4]
- str r2, [sp, 0x14]
- ldrh r3, [r7, 0x8]
- mov r8, r3
- ldr r0, [sp, 0x4]
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0x18]
- ldrh r0, [r7, 0x2E]
- cmp r0, 0xAF
- bne _0803BAE0
- ldr r1, _0803BADC @ =gEnigmaBerries
- ldr r2, [sp, 0x10]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r10, r3
- ldrb r0, [r0, 0x1A]
- b _0803BAF6
- .align 2, 0
-_0803BADC: .4byte gEnigmaBerries
-_0803BAE0:
- ldrh r0, [r7, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrh r0, [r7, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0803BAF6:
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0803BB26
- ldr r1, _0803BB10 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- str r0, [sp, 0x1C]
- b _0803BB3C
- .align 2, 0
-_0803BB10: .4byte gEnigmaBerries
-_0803BB14:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- b _0803BCDC
-_0803BB26:
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x2E]
- bl ItemId_GetHoldEffectParam
-_0803BB3C:
- adds r0, r7, 0
- adds r0, 0x20
- ldrb r1, [r0]
- str r0, [sp, 0x24]
- cmp r1, 0x25
- beq _0803BB4C
- cmp r1, 0x4A
- bne _0803BB50
-_0803BB4C:
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BB50:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0803BB5E
- b _0803BC78
-_0803BB5E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BB98
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BB98
- ldr r0, _0803BCC4 @ =0x00000807
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BB98
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BB98
- movs r0, 0x6E
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BB98:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BBE2
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BBE2
- ldr r0, _0803BCC8 @ =0x0000080b
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BBE2
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BBE2
- movs r0, 0x6E
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BBE2:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC2E
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC2E
- ldr r0, _0803BCCC @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC2E
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC2E
- movs r0, 0x6E
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BC2E:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC78
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC78
- ldr r0, _0803BCCC @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC78
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x6E
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BC78:
- movs r2, 0
- ldr r4, _0803BCD0 @ =gHoldEffectToType
- ldr r0, [sp, 0x4]
- adds r0, 0x20
- str r0, [sp, 0x28]
- adds r3, r4, 0
-_0803BC84:
- lsls r1, r2, 1
- ldrb r0, [r3]
- cmp r10, r0
- bne _0803BCD4
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r9, r0
- bne _0803BCD4
- mov r1, r9
- cmp r1, 0x8
- bhi _0803BC9E
- b _0803BB14
-_0803BC9E:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _0803BCDC
- .align 2, 0
-_0803BCB8: .4byte gUnknown_020239F8
-_0803BCBC: .4byte 0x00000902
-_0803BCC0: .4byte gTrainerBattleOpponent
-_0803BCC4: .4byte 0x00000807
-_0803BCC8: .4byte 0x0000080b
-_0803BCCC: .4byte 0x0000080d
-_0803BCD0: .4byte gHoldEffectToType
-_0803BCD4:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x10
- bls _0803BC84
-_0803BCDC:
- mov r3, r10
- cmp r3, 0x1D
- bne _0803BCF0
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BCF0:
- mov r0, r10
- cmp r0, 0x22
- bne _0803BD28
- ldr r0, _0803BFDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD28
- ldr r1, _0803BFE0 @ =0xfffffe69
- adds r0, r1, 0
- ldrh r2, [r7]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD28
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BD28:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x22
- bne _0803BD60
- ldr r0, _0803BFDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD60
- ldr r1, _0803BFE0 @ =0xfffffe69
- adds r0, r1, 0
- ldr r2, [sp, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD60
- movs r0, 0x96
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD60:
- mov r0, r10
- cmp r0, 0x23
- bne _0803BD76
- ldrh r1, [r7]
- ldr r0, _0803BFE4 @ =0x00000175
- cmp r1, r0
- bne _0803BD76
- mov r1, r8
- lsls r0, r1, 17
- lsrs r0, 16
- mov r8, r0
-_0803BD76:
- ldr r2, [sp, 0x1C]
- cmp r2, 0x24
- bne _0803BD8E
- ldr r3, [sp, 0x4]
- ldrh r1, [r3]
- ldr r0, _0803BFE4 @ =0x00000175
- cmp r1, r0
- bne _0803BD8E
- ldr r1, [sp, 0x18]
- lsls r0, r1, 17
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD8E:
- mov r2, r10
- cmp r2, 0x2D
- bne _0803BDA2
- ldrh r0, [r7]
- cmp r0, 0x19
- bne _0803BDA2
- mov r3, r8
- lsls r0, r3, 17
- lsrs r0, 16
- mov r8, r0
-_0803BDA2:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x40
- bne _0803BDB8
- ldr r1, [sp, 0x4]
- ldrh r0, [r1]
- cmp r0, 0x84
- bne _0803BDB8
- ldr r2, [sp, 0x14]
- lsls r0, r2, 17
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BDB8:
- mov r3, r10
- cmp r3, 0x41
- bne _0803BDCE
- ldrh r0, [r7]
- subs r0, 0x68
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BDCE
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BDCE:
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x2F
- bne _0803BDE6
- mov r2, r9
- cmp r2, 0xA
- beq _0803BDE0
- cmp r2, 0xF
- bne _0803BDE6
-_0803BDE0:
- mov r3, r8
- lsrs r3, 1
- mov r8, r3
-_0803BDE6:
- ldr r0, [sp, 0x24]
- ldrb r4, [r0]
- cmp r4, 0x37
- bne _0803BDFC
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BDFC:
- cmp r4, 0x39
- bne _0803BE2A
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x3A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE2A
- movs r0, 0x96
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE2A:
- ldr r2, [sp, 0x24]
- ldrb r0, [r2]
- cmp r0, 0x3A
- bne _0803BE5C
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x39
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE5C
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE5C:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- bne _0803BE78
- ldr r0, [r7, 0x4C]
- cmp r0, 0
- beq _0803BE78
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BE78:
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- cmp r0, 0x3F
- bne _0803BE9A
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x4C]
- cmp r0, 0
- beq _0803BE9A
- movs r0, 0x96
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BE9A:
- mov r2, r9
- cmp r2, 0xD
- bne _0803BEBE
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFD
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEBE
- ldr r1, _0803BFE8 @ =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEBE:
- mov r3, r9
- cmp r3, 0xA
- bne _0803BEE2
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFE
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEE2
- ldr r1, _0803BFE8 @ =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEE2:
- mov r0, r9
- cmp r0, 0xC
- bne _0803BF12
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _0803BF12
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF12
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF12:
- mov r2, r9
- cmp r2, 0xA
- bne _0803BF42
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x42
- bne _0803BF42
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF42
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF42:
- mov r0, r9
- cmp r0, 0xB
- bne _0803BF72
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x43
- bne _0803BF72
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF72
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF72:
- mov r2, r9
- cmp r2, 0x6
- bne _0803BFA2
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x44
- bne _0803BFA2
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BFA2
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BFA2:
- ldr r2, _0803BFEC @ =gBattleMoves
- ldr r0, _0803BFF0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0803BFBC
- ldr r0, [sp, 0x14]
- lsrs r0, 1
- str r0, [sp, 0x14]
-_0803BFBC:
- mov r1, r9
- cmp r1, 0x8
- bls _0803BFC4
- b _0803C122
-_0803BFC4:
- ldr r0, _0803BFF4 @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C000
- movs r0, 0x19
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803BFFC
- ldr r2, _0803BFF8 @ =gStatStageRatios
- b _0803C006
- .align 2, 0
-_0803BFDC: .4byte gUnknown_020239F8
-_0803BFE0: .4byte 0xfffffe69
-_0803BFE4: .4byte 0x00000175
-_0803BFE8: .4byte gBattleMovePower
-_0803BFEC: .4byte gBattleMoves
-_0803BFF0: .4byte gUnknown_02024BE6
-_0803BFF4: .4byte gCritMultiplier
-_0803BFF8: .4byte gStatStageRatios
-_0803BFFC:
- adds r5, r6, 0
- b _0803C01E
-_0803C000:
- ldr r2, _0803C050 @ =gStatStageRatios
- movs r0, 0x19
- ldrsb r0, [r7, r0]
-_0803C006:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r6, 0
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C01E:
- ldr r0, _0803C054 @ =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C05C
- ldr r2, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- bgt _0803C058
- ldr r2, _0803C050 @ =gStatStageRatios
- ldr r3, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r3, r0]
- b _0803C064
- .align 2, 0
-_0803C050: .4byte gStatStageRatios
-_0803C054: .4byte gBattleMovePower
-_0803C058:
- ldr r3, [sp, 0x14]
- b _0803C07E
-_0803C05C:
- ldr r2, _0803C0DC @ =gStatStageRatios
- ldr r1, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
-_0803C064:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x14]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C07E:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- ldr r0, [r7, 0x4C]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803C0A8
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- beq _0803C0A8
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0A8:
- movs r0, 0x1
- ldr r2, [sp, 0xC]
- ands r0, r2
- cmp r0, 0
- beq _0803C0EA
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C0EA
- ldr r0, _0803C0E0 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C0E4
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C0E4
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C0EA
- .align 2, 0
-_0803C0DC: .4byte gStatStageRatios
-_0803C0E0: .4byte gUnknown_020239F8
-_0803C0E4:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0EA:
- ldr r0, _0803C148 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C11C
- ldr r0, _0803C14C @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C11C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C11C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C11C:
- cmp r5, 0
- bne _0803C122
- movs r5, 0x1
-_0803C122:
- mov r6, r9
- cmp r6, 0x9
- bne _0803C12A
- movs r5, 0
-_0803C12A:
- mov r0, r9
- cmp r0, 0x9
- bhi _0803C132
- b _0803C330
-_0803C132:
- ldr r0, _0803C150 @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C15C
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803C158
- ldr r2, _0803C154 @ =gStatStageRatios
- b _0803C162
- .align 2, 0
-_0803C148: .4byte gUnknown_020239F8
-_0803C14C: .4byte gBattleMoves
-_0803C150: .4byte gCritMultiplier
-_0803C154: .4byte gStatStageRatios
-_0803C158:
- mov r5, r8
- b _0803C17A
-_0803C15C:
- ldr r2, _0803C1A8 @ =gStatStageRatios
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
-_0803C162:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- mov r5, r8
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C17A:
- ldr r0, _0803C1AC @ =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C1B4
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0803C1B0
- ldr r2, _0803C1A8 @ =gStatStageRatios
- b _0803C1BC
- .align 2, 0
-_0803C1A8: .4byte gStatStageRatios
-_0803C1AC: .4byte gBattleMovePower
-_0803C1B0:
- ldr r3, [sp, 0x18]
- b _0803C1D6
-_0803C1B4:
- ldr r2, _0803C21C @ =gStatStageRatios
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
-_0803C1BC:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x18]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C1D6:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0x2
- ldr r1, [sp, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _0803C22A
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C22A
- ldr r0, _0803C220 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C224
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C224
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C22A
- .align 2, 0
-_0803C21C: .4byte gStatStageRatios
-_0803C220: .4byte gUnknown_020239F8
-_0803C224:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C22A:
- ldr r0, _0803C2A4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C25C
- ldr r0, _0803C2A8 @ =gBattleMoves
- ldr r2, [sp, 0x8]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C25C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C25C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C25C:
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0803C30C
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0803C30C
- ldr r2, _0803C2AC @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0803C2C4
- mov r3, r9
- cmp r3, 0xA
- beq _0803C2B0
- cmp r3, 0xB
- beq _0803C2B8
- b _0803C2C4
- .align 2, 0
-_0803C2A4: .4byte gUnknown_020239F8
-_0803C2A8: .4byte gBattleMoves
-_0803C2AC: .4byte word_2024DB8
-_0803C2B0:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
- b _0803C2C4
-_0803C2B8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C2C4:
- ldrh r1, [r4]
- movs r0, 0x9F
- ands r0, r1
- cmp r0, 0
- beq _0803C2DC
- ldr r0, _0803C2F4 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0x4C
- bne _0803C2DC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C2DC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0803C30C
- mov r6, r9
- cmp r6, 0xA
- beq _0803C2F8
- cmp r6, 0xB
- beq _0803C306
- b _0803C30C
- .align 2, 0
-_0803C2F4: .4byte gUnknown_02024BE6
-_0803C2F8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- b _0803C30C
-_0803C306:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C30C:
- ldr r1, _0803C344 @ =0x02017100
- ldr r2, [sp, 0x10]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C330
- mov r3, r9
- cmp r3, 0xA
- bne _0803C330
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C330:
- adds r0, r5, 0x2
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C344: .4byte 0x02017100
- thumb_func_end CalculateBaseDamage
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/choose_party.s b/asm/choose_party.s
index 21988162b..c895e71e0 100644
--- a/asm/choose_party.s
+++ b/asm/choose_party.s
@@ -113,7 +113,7 @@ _08121EC0:
muls r2, r3
ldr r3, _08121EF0 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _08122020
.align 2, 0
_08121EE8: .4byte 0x00000266
@@ -127,7 +127,7 @@ _08121EF4:
adds r1, r4, r0
b _08121FE8
_08121F00:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r1, _08121F10 @ =0x0201b000
movs r2, 0x99
lsls r2, 2
@@ -140,7 +140,7 @@ _08121F14:
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -167,7 +167,7 @@ _08121F28:
.align 2, 0
_08121F50: .4byte 0x00000266
_08121F54:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
ldr r1, _08121F64 @ =0x0201b000
movs r2, 0x99
lsls r2, 2
@@ -176,7 +176,7 @@ _08121F54:
.align 2, 0
_08121F64: .4byte 0x0201b000
_08121F68:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
b _08121FE0
_08121F6E:
movs r5, 0
@@ -1035,7 +1035,7 @@ sub_81225D4: @ 81225D4
ldr r3, _08122658 @ =sub_81225A4
str r5, [sp]
adds r1, r4, 0
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
_08122632:
add sp, 0x4
pop {r4,r5}
@@ -1348,7 +1348,7 @@ _08122890:
adds r1, r4, r2
b _081228CA
_081228A4:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _081228C2
_081228AA:
movs r1, 0x98
@@ -1407,7 +1407,7 @@ _081228F0:
adds r1, r5, 0
movs r2, 0x3
adds r3, r4, 0
- bl sub_806D880
+ bl CreatePartyMenuMonIcon
_08122912:
ldr r0, _0812294C @ =gUnknown_02023A00
lsls r1, r5, 5
@@ -1421,7 +1421,7 @@ _08122912:
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0x3
- bl sub_806D99C
+ bl CreateMonIcon_806D99C
adds r0, r6, 0
adds r1, r4, 0
bl sub_806D50C
@@ -1464,7 +1464,7 @@ _08122958:
lsrs r2, 16
adds r0, r6, 0
adds r1, r5, 0
- bl sub_806DCD4
+ bl CreateHeldItemIcon_806DCD4
_08122984:
ldr r0, _081229B4 @ =gUnknown_02023A00
lsls r1, r5, 5
@@ -1477,7 +1477,7 @@ _08122984:
lsrs r1, 24
ldrh r2, [r2, 0x2]
adds r0, r6, 0
- bl sub_806DCD4
+ bl CreateHeldItemIcon_806DCD4
_0812299E:
adds r0, r5, 0x1
lsls r0, 24
@@ -1510,9 +1510,9 @@ _081229C0:
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E4A4
+ bl PartyMenuPrintHP
adds r0, r4, 0
- bl sub_80A1CD8
+ bl GetMonStatusAndPokerus
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1524,7 +1524,7 @@ _081229C0:
lsrs r2, 24
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E104
+ bl PartyMenuPutStatusTilemap
b _08122A12
.align 2, 0
_08122A00: .4byte gPlayerParty
@@ -1534,7 +1534,7 @@ _08122A04:
adds r2, r6
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E294
+ bl PartyMenuPrintLevel
_08122A12:
adds r4, r5, 0
muls r4, r7
@@ -1542,15 +1542,15 @@ _08122A12:
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E3C0
+ bl PartyMenuPutNicknameTilemap
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E050
+ bl PrintPartyMenuMonNickname
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E630
+ bl PartyMenuDrawHPBar
_08122A36:
adds r0, r5, 0x1
lsls r0, 24
@@ -1690,7 +1690,7 @@ _08122B2E:
ldrh r3, [r6, 0x12]
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E420
+ bl PartyMenuDoPrintHP
ldrh r0, [r6, 0x10]
cmp r0, 0
bne _08122B64
@@ -1715,7 +1715,7 @@ _08122B76:
lsls r2, 24
lsrs r2, 24
movs r1, 0x3
- bl sub_806E104
+ bl PartyMenuPutStatusTilemap
b _08122B96
.align 2, 0
_08122B88: .4byte gUnknown_02023A14
@@ -1723,7 +1723,7 @@ _08122B8C:
ldrb r2, [r6, 0xF]
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E1F4
+ bl PartyMenuDoPrintLevel
_08122B96:
mov r2, r10
adds r6, r7, r2
@@ -1736,14 +1736,14 @@ _08122B96:
str r5, [sp]
movs r2, 0x3
adds r3, r4, 0
- bl sub_806E35C
+ bl PartyMenuDoPutNicknameTilemap
mov r0, r9
adds r1, r5, 0
bl StringCopy
mov r0, r9
bl StringGetEnd10
mov r0, r9
- bl sub_814A568
+ bl SanitizeNameString
adds r0, r4, 0
movs r1, 0x3
mov r2, r9
@@ -1752,7 +1752,7 @@ _08122B96:
ldrh r3, [r6, 0x12]
adds r0, r4, 0
movs r1, 0x3
- bl sub_806E574
+ bl PartyMenuDoDrawHPBar
_08122BDA:
mov r0, r8
adds r0, 0x1
@@ -1873,7 +1873,7 @@ _08122CA8:
muls r2, r3
ldr r3, _08122CD8 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _08122D84
.align 2, 0
_08122CD0: .4byte 0x00000266
@@ -1887,14 +1887,14 @@ _08122CDC:
adds r1, r4, r0
b _08122D50
_08122CE8:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _08122D48
_08122CEE:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -1921,10 +1921,10 @@ _08122D02:
.align 2, 0
_08122D28: .4byte 0x00000266
_08122D2C:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _08122D48
_08122D32:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _08122D40 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -2335,7 +2335,7 @@ sub_8123034: @ 8123034
ldr r3, _081230B8 @ =sub_8123004
str r5, [sp]
adds r1, r4, 0
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
_08123092:
add sp, 0x4
pop {r4,r5}
diff --git a/asm/contest.s b/asm/contest.s
index 59fd22aef..c98f5db0d 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -13,12 +13,12 @@ nullsub_89: @ 80AB1AC
thumb_func_start sub_80AB1B0
sub_80AB1B0: @ 80AB1B0
- ldr r1, _080AB1B8 @ =gUnknown_0203869A
+ ldr r1, _080AB1B8 @ =gIsLinkContest
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
-_080AB1B8: .4byte gUnknown_0203869A
+_080AB1B8: .4byte gIsLinkContest
thumb_func_end sub_80AB1B0
thumb_func_start sub_80AB1BC
@@ -302,7 +302,7 @@ _080AB3DE:
movs r1, 0
movs r2, 0x10
bl memset
- ldr r0, _080AB474 @ =gUnknown_0203869A
+ ldr r0, _080AB474 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -338,7 +338,7 @@ _080AB448:
_080AB468: .4byte 0x02019204
_080AB46C: .4byte 0x02019260
_080AB470: .4byte 0x020192d0
-_080AB474: .4byte gUnknown_0203869A
+_080AB474: .4byte gIsLinkContest
_080AB478: .4byte gUnknown_02038696
thumb_func_end sub_80AB398
@@ -526,7 +526,7 @@ sub_80AB604: @ 80AB604
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080AB648 @ =gUnknown_0203869A
+ ldr r0, _080AB648 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -555,7 +555,7 @@ sub_80AB604: @ 80AB604
str r1, [r0]
b _080AB66A
.align 2, 0
-_080AB648: .4byte gUnknown_0203869A
+_080AB648: .4byte gIsLinkContest
_080AB64C: .4byte gPaletteFade
_080AB650: .4byte sub_80AB678
_080AB654: .4byte gTasks
@@ -811,7 +811,7 @@ _080AB844:
mov r1, sp
adds r2, r6, 0
bl CpuSet
- ldr r0, _080AB8B8 @ =gUnknown_02038695
+ ldr r0, _080AB8B8 @ =gContestPlayerMonIndex
mov r9, r0
ldrb r0, [r0]
adds r0, 0x5
@@ -850,7 +850,7 @@ _080AB844:
_080AB8AC: .4byte gUnknown_08D17144
_080AB8B0: .4byte gPlttBufferUnfaded + 0x100
_080AB8B4: .4byte REG_BG0CNT
-_080AB8B8: .4byte gUnknown_02038695
+_080AB8B8: .4byte gContestPlayerMonIndex
_080AB8BC: .4byte 0xffffff00
_080AB8C0: .4byte 0x02018004
_080AB8C4: .4byte 0x040000d4
@@ -876,7 +876,7 @@ _080AB8CC:
strb r3, [r1, 0x2]
movs r2, 0x2
strb r2, [r1, 0x3]
- ldr r0, _080AB92C @ =gUnknown_020239F8
+ ldr r0, _080AB92C @ =gBattleTypeFlags
strh r4, [r0]
ldr r4, _080AB930 @ =gUnknown_02024C07
strb r2, [r4]
@@ -892,7 +892,7 @@ _080AB8CC:
.align 2, 0
_080AB924: .4byte 0x02019204
_080AB928: .4byte gUnknown_02024A72
-_080AB92C: .4byte gUnknown_020239F8
+_080AB92C: .4byte gBattleTypeFlags
_080AB930: .4byte gUnknown_02024C07
_080AB934: .4byte gUnknown_02024C08
_080AB938: .4byte gUnknown_02024BE0
@@ -1191,7 +1191,7 @@ sub_80ABB70: @ 80ABB70
ldr r1, _080ABBC4 @ =0x84000100
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- ldr r0, _080ABBC8 @ =gUnknown_02038695
+ ldr r0, _080ABBC8 @ =gContestPlayerMonIndex
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
@@ -1208,7 +1208,7 @@ _080ABBB8: .4byte gPlttBufferUnfaded
_080ABBBC: .4byte 0x02018204
_080ABBC0: .4byte 0x040000d4
_080ABBC4: .4byte 0x84000100
-_080ABBC8: .4byte gUnknown_02038695
+_080ABBC8: .4byte gContestPlayerMonIndex
_080ABBCC: .4byte gUnknown_020238CC
_080ABBD0: .4byte gUnknown_083CAF84
_080ABBD4:
@@ -1301,7 +1301,7 @@ sub_80ABC70: @ 80ABC70
_080ABC88:
movs r0, 0x5
bl PlaySE
- ldr r0, _080ABCB4 @ =gUnknown_02038695
+ ldr r0, _080ABCB4 @ =gContestPlayerMonIndex
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
@@ -1318,7 +1318,7 @@ _080ABC88:
b _080ABCCC
.align 2, 0
_080ABCB0: .4byte gMain
-_080ABCB4: .4byte gUnknown_02038695
+_080ABCB4: .4byte gContestPlayerMonIndex
_080ABCB8: .4byte gTasks
_080ABCBC: .4byte sub_80ABCDC
_080ABCC0:
@@ -1367,7 +1367,7 @@ sub_80ABCDC: @ 80ABCDC
movs r1, 0
bl FillWindowRect_DefaultPalette
movs r6, 0
- ldr r0, _080ABD90 @ =gUnknown_02038695
+ ldr r0, _080ABD90 @ =gContestPlayerMonIndex
mov r8, r0
ldr r7, _080ABD94 @ =0x02019260
mov r9, r5
@@ -1425,7 +1425,7 @@ _080ABD80: .4byte gUnknown_030042A0
_080ABD84: .4byte gUnknown_03004280
_080ABD88: .4byte gUnknown_03004210
_080ABD8C: .4byte gUnknown_083CA340
-_080ABD90: .4byte gUnknown_02038695
+_080ABD90: .4byte gContestPlayerMonIndex
_080ABD94: .4byte 0x02019260
_080ABD98: .4byte gUnknown_0203858E
_080ABD9C: .4byte gUnknownText_UnknownFormatting2
@@ -1504,10 +1504,10 @@ _080ABE20:
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
- ldr r2, _080ABE90 @ =gUnknown_02038570
+ ldr r2, _080ABE90 @ =gContestMons
ldrb r1, [r4]
lsls r1, 1
- ldr r0, _080ABE94 @ =gUnknown_02038695
+ ldr r0, _080ABE94 @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
@@ -1539,8 +1539,8 @@ _080ABE80: .4byte gUnknown_083CA340 + 0x1
_080ABE84: .4byte 0x0000ffff
_080ABE88: .4byte 0x00002d9f
_080ABE8C: .4byte 0x02019204
-_080ABE90: .4byte gUnknown_02038570
-_080ABE94: .4byte gUnknown_02038695
+_080ABE90: .4byte gContestMons
+_080ABE94: .4byte gContestPlayerMonIndex
_080ABE98: .4byte gTasks
_080ABE9C: .4byte sub_80ABEA0
thumb_func_end sub_80ABCDC
@@ -1553,8 +1553,8 @@ sub_80ABEA0: @ 80ABEA0
lsrs r7, r0, 24
movs r6, 0
ldr r3, _080ABEF4 @ =gMain
- ldr r1, _080ABEF8 @ =gUnknown_02038570
- ldr r0, _080ABEFC @ =gUnknown_02038695
+ ldr r1, _080ABEF8 @ =gContestMons
+ ldr r0, _080ABEFC @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, 0x1E
@@ -1590,8 +1590,8 @@ _080ABEC6:
b _080AC098
.align 2, 0
_080ABEF4: .4byte gMain
-_080ABEF8: .4byte gUnknown_02038570
-_080ABEFC: .4byte gUnknown_02038695
+_080ABEF8: .4byte gContestMons
+_080ABEFC: .4byte gContestPlayerMonIndex
_080ABF00: .4byte gTasks
_080ABF04: .4byte sub_80AC0C8
_080ABF08:
@@ -1629,7 +1629,7 @@ _080ABF26:
str r1, [sp, 0x4]
movs r1, 0
bl FillWindowRect_DefaultPalette
- ldr r0, _080ABF6C @ =gUnknown_02038695
+ ldr r0, _080ABF6C @ =gContestPlayerMonIndex
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
@@ -1642,7 +1642,7 @@ _080ABF26:
.align 2, 0
_080ABF64: .4byte gUnknown_03004210
_080ABF68: .4byte gUnknown_083CA340
-_080ABF6C: .4byte gUnknown_02038695
+_080ABF6C: .4byte gContestPlayerMonIndex
_080ABF70: .4byte gUnknown_020238CC
_080ABF74: .4byte gUnknown_083CAF84
_080ABF78:
@@ -1713,10 +1713,10 @@ _080AC006:
ldrsb r0, [r4, r0]
bl sub_80AC0AC
bl sub_80AED58
- ldr r2, _080AC040 @ =gUnknown_02038570
+ ldr r2, _080AC040 @ =gContestMons
ldrb r1, [r4]
lsls r1, 1
- ldr r0, _080AC044 @ =gUnknown_02038695
+ ldr r0, _080AC044 @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
@@ -1731,8 +1731,8 @@ _080AC006:
b _080AC098
.align 2, 0
_080AC03C: .4byte 0x02019204
-_080AC040: .4byte gUnknown_02038570
-_080AC044: .4byte gUnknown_02038695
+_080AC040: .4byte gContestMons
+_080AC044: .4byte gContestPlayerMonIndex
_080AC048:
ldr r4, _080AC060 @ =0x02019204
movs r0, 0
@@ -1755,10 +1755,10 @@ _080AC068:
ldrsb r0, [r4, r0]
bl sub_80AC0AC
bl sub_80AED58
- ldr r2, _080AC0A4 @ =gUnknown_02038570
+ ldr r2, _080AC0A4 @ =gContestMons
ldrb r1, [r4]
lsls r1, 1
- ldr r0, _080AC0A8 @ =gUnknown_02038695
+ ldr r0, _080AC0A8 @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
@@ -1777,8 +1777,8 @@ _080AC098:
bx r0
.align 2, 0
_080AC0A0: .4byte 0x02019204
-_080AC0A4: .4byte gUnknown_02038570
-_080AC0A8: .4byte gUnknown_02038695
+_080AC0A4: .4byte gContestMons
+_080AC0A8: .4byte gContestPlayerMonIndex
thumb_func_end sub_80ABEA0
thumb_func_start sub_80AC0AC
@@ -1806,13 +1806,13 @@ sub_80AC0C8: @ 80AC0C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080AC120 @ =gUnknown_0203869A
+ ldr r0, _080AC120 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AC13C
- ldr r4, _080AC124 @ =gUnknown_02038695
+ ldr r4, _080AC124 @ =gContestPlayerMonIndex
ldrb r0, [r4]
bl sub_80AF15C
ldrb r2, [r4]
@@ -1843,8 +1843,8 @@ sub_80AC0C8: @ 80AC0C8
bl sub_80AFFE0
b _080AC14E
.align 2, 0
-_080AC120: .4byte gUnknown_0203869A
-_080AC124: .4byte gUnknown_02038695
+_080AC120: .4byte gIsLinkContest
+_080AC124: .4byte gContestPlayerMonIndex
_080AC128: .4byte 0x02019260
_080AC12C: .4byte sub_80C8A38
_080AC130: .4byte sub_80AC15C
@@ -2173,7 +2173,7 @@ _080AC42C:
ldr r4, _080AC484 @ =0x02019204
strb r6, [r4, 0x11]
ldrb r7, [r4, 0x11]
- ldr r0, _080AC488 @ =gUnknown_0203869A
+ ldr r0, _080AC488 @ =gIsLinkContest
ldrb r1, [r0]
movs r5, 0x1
adds r0, r5, 0
@@ -2210,7 +2210,7 @@ _080AC458:
bl _080AD8CA
.align 2, 0
_080AC484: .4byte 0x02019204
-_080AC488: .4byte gUnknown_0203869A
+_080AC488: .4byte gIsLinkContest
_080AC48C: .4byte sub_80C8C80
_080AC490: .4byte sub_80AD8DC
_080AC494: .4byte gTasks
@@ -2311,7 +2311,7 @@ _080AC542:
adds r7, r4, r5
ldrb r0, [r7, 0x11]
bl sub_80B28F0
- ldr r3, _080AC5D0 @ =gUnknown_02038570
+ ldr r3, _080AC5D0 @ =gContestMons
ldrb r2, [r7, 0x11]
lsls r2, 6
adds r0, r2, r3
@@ -2360,7 +2360,7 @@ _080AC542:
_080AC5C4: .4byte 0x02019348
_080AC5C8: .4byte gUnknown_02024E84
_080AC5CC: .4byte 0xfffffebc
-_080AC5D0: .4byte gUnknown_02038570
+_080AC5D0: .4byte gContestMons
_080AC5D4: .4byte gSprites
_080AC5D8: .4byte sub_80AD8FC
_080AC5DC: .4byte gTasks
@@ -2428,7 +2428,7 @@ _080AC664:
bl sub_80AF138
ldr r0, _080AC690 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AC694 @ =gUnknown_02038572
+ ldr r2, _080AC694 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldrh r1, [r5, 0x6]
@@ -2446,7 +2446,7 @@ _080AC664:
b _080AC6B0
.align 2, 0
_080AC690: .4byte gStringVar1
-_080AC694: .4byte gUnknown_02038572
+_080AC694: .4byte gContestMons + 0x2
_080AC698: .4byte gStringVar2
_080AC69C: .4byte gMoveNames
_080AC6A0:
@@ -3369,7 +3369,7 @@ _080ACE0A:
bl sub_80AF138
ldr r0, _080ACE4C @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080ACE50 @ =gUnknown_02038572
+ ldr r2, _080ACE50 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080ACE54 @ =gStringVar4
@@ -3396,7 +3396,7 @@ _080ACE36:
.align 2, 0
_080ACE48: .4byte 0x02019260
_080ACE4C: .4byte gStringVar1
-_080ACE50: .4byte gUnknown_02038572
+_080ACE50: .4byte gContestMons + 0x2
_080ACE54: .4byte gStringVar4
_080ACE58: .4byte gUnknown_083CC103
_080ACE5C: .4byte gMenuWindow
@@ -3511,7 +3511,7 @@ _080ACF48:
bl sub_80AF138
ldr r0, _080ACF90 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080ACF94 @ =gUnknown_02038572
+ ldr r2, _080ACF94 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080ACF98 @ =gStringVar4
@@ -3541,7 +3541,7 @@ _080ACF88:
bl _080AD8CA
.align 2, 0
_080ACF90: .4byte gStringVar1
-_080ACF94: .4byte gUnknown_02038572
+_080ACF94: .4byte gContestMons + 0x2
_080ACF98: .4byte gStringVar4
_080ACF9C: .4byte gUnknown_083CBD52
_080ACFA0: .4byte gMenuWindow
@@ -3655,7 +3655,7 @@ _080AD070:
bl sub_80AF138
ldr r0, _080AD0D0 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD0D4 @ =gUnknown_02038572
+ ldr r2, _080AD0D4 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080AD0D8 @ =gStringVar4
@@ -3685,7 +3685,7 @@ _080AD070:
.align 2, 0
_080AD0CC: .4byte 0x02019260
_080AD0D0: .4byte gStringVar1
-_080AD0D4: .4byte gUnknown_02038572
+_080AD0D4: .4byte gContestMons + 0x2
_080AD0D8: .4byte gStringVar4
_080AD0DC: .4byte gUnknown_083CC075
_080AD0E0: .4byte gMenuWindow
@@ -3859,7 +3859,7 @@ _080AD23A:
bl sub_80AF138
ldr r0, _080AD280 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD284 @ =gUnknown_02038572
+ ldr r2, _080AD284 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r3, _080AD288 @ =0x02019204
@@ -3887,7 +3887,7 @@ _080AD274: .4byte gUnknown_083CC2D8
_080AD278: .4byte gContestMoves
_080AD27C: .4byte 0x02019260
_080AD280: .4byte gStringVar1
-_080AD284: .4byte gUnknown_02038572
+_080AD284: .4byte gContestMons + 0x2
_080AD288: .4byte 0x02019204
_080AD28C: .4byte gTasks
_080AD290:
@@ -4242,7 +4242,7 @@ _080AD53C:
lsls r1, 20
lsrs r1, 29
lsls r1, 6
- ldr r5, _080AD5B0 @ =gUnknown_02038572
+ ldr r5, _080AD5B0 @ =gContestMons + 0x2
adds r1, r5
bl StringCopy
ldr r0, _080AD5B4 @ =gStringVar1
@@ -4285,7 +4285,7 @@ _080AD53C:
.align 2, 0
_080AD5A8: .4byte gStringVar3
_080AD5AC: .4byte 0x02019328
-_080AD5B0: .4byte gUnknown_02038572
+_080AD5B0: .4byte gContestMons + 0x2
_080AD5B4: .4byte gStringVar1
_080AD5B8: .4byte gStringVar2
_080AD5BC: .4byte gMoveNames
@@ -4365,7 +4365,7 @@ _080AD664:
bl sub_80B09B0
ldr r0, _080AD6B8 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD6BC @ =gUnknown_02038572
+ ldr r2, _080AD6BC @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r0, _080AD6C0 @ =gStringVar2
@@ -4399,7 +4399,7 @@ _080AD664:
.align 2, 0
_080AD6B4: .4byte 0x02019260
_080AD6B8: .4byte gStringVar1
-_080AD6BC: .4byte gUnknown_02038572
+_080AD6BC: .4byte gContestMons + 0x2
_080AD6C0: .4byte gStringVar2
_080AD6C4: .4byte gMoveNames
_080AD6C8: .4byte gStringVar4
@@ -4548,7 +4548,7 @@ _080AD7E8:
bl sub_80AF138
ldr r0, _080AD828 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD82C @ =gUnknown_02038572
+ ldr r2, _080AD82C @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080AD830 @ =gStringVar4
@@ -4574,7 +4574,7 @@ _080AD7E8:
b _080AD8CA
.align 2, 0
_080AD828: .4byte gStringVar1
-_080AD82C: .4byte gUnknown_02038572
+_080AD82C: .4byte gContestMons + 0x2
_080AD830: .4byte gStringVar4
_080AD834: .4byte gUnknown_083CB00D
_080AD838: .4byte gMenuWindow
@@ -4763,7 +4763,7 @@ _080AD988:
beq _080ADA08
b _080ADA10
_080AD98E:
- ldr r0, _080AD9D8 @ =gUnknown_0203869A
+ ldr r0, _080AD9D8 @ =gIsLinkContest
ldrb r1, [r0]
movs r6, 0x1
adds r0, r6, 0
@@ -4795,7 +4795,7 @@ _080AD9B8:
strh r6, [r5, 0x8]
b _080ADA10
.align 2, 0
-_080AD9D8: .4byte gUnknown_0203869A
+_080AD9D8: .4byte gIsLinkContest
_080AD9DC: .4byte 0x02019204
_080AD9E0: .4byte sub_80C8C80
_080AD9E4: .4byte sub_80AD8DC
@@ -5031,7 +5031,7 @@ sub_80ADB88: @ 80ADB88
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _080ADBEC @ =gUnknown_02038695
+ ldr r6, _080ADBEC @ =gContestPlayerMonIndex
ldrb r1, [r6]
lsls r0, r1, 3
subs r0, r1
@@ -5043,7 +5043,7 @@ sub_80ADB88: @ 80ADB88
ldr r0, _080ADBF4 @ =gStringVar1
ldrb r1, [r6]
lsls r1, 6
- ldr r2, _080ADBF8 @ =gUnknown_02038572
+ ldr r2, _080ADBF8 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r6, _080ADBFC @ =gStringVar4
@@ -5073,10 +5073,10 @@ sub_80ADB88: @ 80ADB88
pop {r0}
bx r0
.align 2, 0
-_080ADBEC: .4byte gUnknown_02038695
+_080ADBEC: .4byte gContestPlayerMonIndex
_080ADBF0: .4byte 0x02019260
_080ADBF4: .4byte gStringVar1
-_080ADBF8: .4byte gUnknown_02038572
+_080ADBF8: .4byte gContestMons + 0x2
_080ADBFC: .4byte gStringVar4
_080ADC00: .4byte gUnknown_083CB2F0
_080ADC04: .4byte gMenuWindow
@@ -5324,7 +5324,7 @@ _080ADDBC:
movs r5, 0
bl sub_80AF668
bl sub_80AF138
- ldr r0, _080ADE34 @ =gUnknown_02038695
+ ldr r0, _080ADE34 @ =gContestPlayerMonIndex
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
@@ -5366,7 +5366,7 @@ _080ADE24: .4byte gUnknown_030042A0
_080ADE28: .4byte gUnknown_03004280
_080ADE2C: .4byte 0x02019260
_080ADE30: .4byte gUnknown_02038680
-_080ADE34: .4byte gUnknown_02038695
+_080ADE34: .4byte gContestPlayerMonIndex
_080ADE38: .4byte gUnknown_03005D28
_080ADE3C: .4byte gRngValue
_080ADE40: .4byte gStringVar4
@@ -5473,7 +5473,7 @@ sub_80ADEEC: @ 80ADEEC
ble _080ADF40
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _080ADF24 @ =gUnknown_0203869A
+ ldr r0, _080ADF24 @ =gIsLinkContest
ldrb r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -5483,7 +5483,7 @@ sub_80ADEEC: @ 80ADEEC
b _080ADF3E
.align 2, 0
_080ADF20: .4byte gTasks
-_080ADF24: .4byte gUnknown_0203869A
+_080ADF24: .4byte gIsLinkContest
_080ADF28: .4byte sub_80ADF4C
_080ADF2C:
movs r0, 0x1
@@ -5642,27 +5642,27 @@ _080AE04C:
thumb_func_start sub_80AE054
sub_80AE054: @ 80AE054
push {lr}
- ldr r0, _080AE06C @ =gUnknown_0203869A
+ ldr r0, _080AE06C @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080AE068
- ldr r1, _080AE070 @ =gUnknown_02038695
+ ldr r1, _080AE070 @ =gContestPlayerMonIndex
movs r0, 0x3
strb r0, [r1]
_080AE068:
pop {r0}
bx r0
.align 2, 0
-_080AE06C: .4byte gUnknown_0203869A
-_080AE070: .4byte gUnknown_02038695
+_080AE06C: .4byte gIsLinkContest
+_080AE070: .4byte gContestPlayerMonIndex
thumb_func_end sub_80AE054
thumb_func_start sub_80AE074
sub_80AE074: @ 80AE074
push {lr}
- ldr r0, _080AE088 @ =gUnknown_02038695
+ ldr r0, _080AE088 @ =gContestPlayerMonIndex
ldr r1, _080AE08C @ =gUnknown_0203869B
ldrb r0, [r0]
ldrb r1, [r1]
@@ -5671,7 +5671,7 @@ sub_80AE074: @ 80AE074
movs r0, 0
b _080AE092
.align 2, 0
-_080AE088: .4byte gUnknown_02038695
+_080AE088: .4byte gContestPlayerMonIndex
_080AE08C: .4byte gUnknown_0203869B
_080AE090:
movs r0, 0x1
@@ -5694,7 +5694,7 @@ sub_80AE098: @ 80AE098
bl StringCopy
mov r0, sp
bl StripExtCtrlCodes
- ldr r0, _080AE0F4 @ =gUnknown_0203869A
+ ldr r0, _080AE0F4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -5708,7 +5708,7 @@ sub_80AE098: @ 80AE098
mov r0, sp
strb r2, [r0, 0x7]
_080AE0CE:
- ldr r5, _080AE0F8 @ =gUnknown_02038695
+ ldr r5, _080AE0F8 @ =gContestPlayerMonIndex
ldrb r0, [r5]
lsls r0, 6
ldr r4, _080AE0FC @ =gUnknown_0203857D
@@ -5726,8 +5726,8 @@ _080AE0CE:
b _080AE108
.align 2, 0
_080AE0F0: .4byte gSaveBlock2
-_080AE0F4: .4byte gUnknown_0203869A
-_080AE0F8: .4byte gUnknown_02038695
+_080AE0F4: .4byte gIsLinkContest
+_080AE0F8: .4byte gContestPlayerMonIndex
_080AE0FC: .4byte gUnknown_0203857D
_080AE100:
ldrb r0, [r5]
@@ -5736,8 +5736,8 @@ _080AE100:
movs r1, 0xD9
_080AE108:
strb r1, [r0, 0x8]
- ldr r5, _080AE17C @ =gUnknown_02038570
- ldr r4, _080AE180 @ =gUnknown_02038695
+ ldr r5, _080AE17C @ =gContestMons
+ ldr r4, _080AE180 @ =gContestPlayerMonIndex
ldrb r0, [r4]
lsls r0, 6
adds r1, r5, 0
@@ -5768,7 +5768,7 @@ _080AE108:
bl GetMonData
mov r0, sp
bl StringGetEnd10
- ldr r0, _080AE188 @ =gUnknown_0203869A
+ ldr r0, _080AE188 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -5788,10 +5788,10 @@ _080AE108:
strb r0, [r1, 0xA]
b _080AE19A
.align 2, 0
-_080AE17C: .4byte gUnknown_02038570
-_080AE180: .4byte gUnknown_02038695
+_080AE17C: .4byte gContestMons
+_080AE180: .4byte gContestPlayerMonIndex
_080AE184: .4byte gPlayerParty
-_080AE188: .4byte gUnknown_0203869A
+_080AE188: .4byte gIsLinkContest
_080AE18C:
mov r0, sp
ldrb r2, [r0, 0x5]
@@ -5801,10 +5801,10 @@ _080AE18C:
mov r0, sp
strb r2, [r0, 0xA]
_080AE19A:
- ldr r5, _080AE2C4 @ =gUnknown_02038695
+ ldr r5, _080AE2C4 @ =gContestPlayerMonIndex
ldrb r0, [r5]
lsls r0, 6
- ldr r1, _080AE2C8 @ =gUnknown_02038572
+ ldr r1, _080AE2C8 @ =gContestMons + 0x2
mov r8, r1
add r0, r8
mov r1, sp
@@ -5936,8 +5936,8 @@ _080AE19A:
adds r3, 0x14
b _080AE31E
.align 2, 0
-_080AE2C4: .4byte gUnknown_02038695
-_080AE2C8: .4byte gUnknown_02038572
+_080AE2C4: .4byte gContestPlayerMonIndex
+_080AE2C8: .4byte gContestMons + 0x2
_080AE2CC: .4byte gPlayerParty
_080AE2D0:
cmp r2, 0xFF
@@ -6010,8 +6010,8 @@ _080AE342:
ble _080AE34C
movs r7, 0xFF
_080AE34C:
- ldr r2, _080AE390 @ =gUnknown_02038570
- ldr r1, _080AE394 @ =gUnknown_02038695
+ ldr r2, _080AE390 @ =gContestMons
+ ldr r1, _080AE394 @ =gContestPlayerMonIndex
ldrb r0, [r1]
lsls r0, 6
adds r0, r2
@@ -6044,8 +6044,8 @@ _080AE34C:
pop {r0}
bx r0
.align 2, 0
-_080AE390: .4byte gUnknown_02038570
-_080AE394: .4byte gUnknown_02038695
+_080AE390: .4byte gContestMons
+_080AE394: .4byte gContestPlayerMonIndex
thumb_func_end sub_80AE098
thumb_func_start sub_80AE398
@@ -6125,7 +6125,7 @@ _080AE412:
bl __modsi3
lsls r0, 16
lsrs r0, 16
- ldr r1, _080AE474 @ =gUnknown_02038570
+ ldr r1, _080AE474 @ =gContestMons
lsls r2, r5, 6
adds r2, r1
mov r1, sp
@@ -6164,7 +6164,7 @@ _080AE454:
bx r0
.align 2, 0
_080AE470: .4byte gUnknown_083C9408
-_080AE474: .4byte gUnknown_02038570
+_080AE474: .4byte gContestMons
_080AE478: .4byte gUnknown_02038694
thumb_func_end sub_80AE398
@@ -6374,7 +6374,7 @@ sub_80AE5D4: @ 80AE5D4
movs r0, 0xBA
strb r0, [r3]
adds r3, 0x1
- ldr r0, _080AE668 @ =gUnknown_0203869A
+ ldr r0, _080AE668 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -6422,7 +6422,7 @@ sub_80AE5D4: @ 80AE5D4
.align 2, 0
_080AE660: .4byte gUnknown_020238CC
_080AE664: .4byte gEmptyString_81E72B0
-_080AE668: .4byte gUnknown_0203869A
+_080AE668: .4byte gIsLinkContest
_080AE66C: .4byte gLinkPlayers
_080AE670: .4byte gUnknown_03004210
_080AE674: .4byte gUnknown_02038696
@@ -6499,7 +6499,7 @@ sub_80AE6E4: @ 80AE6E4
strb r0, [r3, 0x2]
adds r3, 0x3
lsls r1, r4, 6
- ldr r0, _080AE760 @ =gUnknown_02038572
+ ldr r0, _080AE760 @ =gContestMons + 0x2
adds r1, r0
adds r0, r3, 0
bl sub_80AE598
@@ -6541,7 +6541,7 @@ sub_80AE6E4: @ 80AE6E4
bx r0
.align 2, 0
_080AE75C: .4byte gUnknown_020238CC
-_080AE760: .4byte gUnknown_02038572
+_080AE760: .4byte gContestMons + 0x2
_080AE764: .4byte gUnknown_03004210
_080AE768: .4byte gUnknown_02038696
_080AE76C: .4byte gUnknown_083CA308
@@ -6571,7 +6571,7 @@ _080AE78C:
.4byte _080AE7E0
.4byte _080AE7FC
_080AE7A0:
- ldr r0, _080AE7B4 @ =gUnknown_02038570
+ ldr r0, _080AE7B4 @ =gContestMons
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
@@ -6582,9 +6582,9 @@ _080AE7A0:
adds r1, 0x27
b _080AE80E
.align 2, 0
-_080AE7B4: .4byte gUnknown_02038570
+_080AE7B4: .4byte gContestMons
_080AE7B8:
- ldr r0, _080AE7CC @ =gUnknown_02038570
+ ldr r0, _080AE7CC @ =gContestMons
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
@@ -6595,18 +6595,18 @@ _080AE7B8:
adds r1, 0x28
b _080AE80E
.align 2, 0
-_080AE7CC: .4byte gUnknown_02038570
+_080AE7CC: .4byte gContestMons
_080AE7D0:
- ldr r1, _080AE7DC @ =gUnknown_02038570
+ ldr r1, _080AE7DC @ =gContestMons
lsls r2, 6
adds r3, r2, r1
adds r0, r3, 0
adds r0, 0x28
b _080AE7EA
.align 2, 0
-_080AE7DC: .4byte gUnknown_02038570
+_080AE7DC: .4byte gContestMons
_080AE7E0:
- ldr r1, _080AE7F8 @ =gUnknown_02038570
+ ldr r1, _080AE7F8 @ =gContestMons
lsls r2, 6
adds r3, r2, r1
adds r0, r3, 0
@@ -6620,9 +6620,9 @@ _080AE7EA:
adds r0, r1, 0
b _080AE810
.align 2, 0
-_080AE7F8: .4byte gUnknown_02038570
+_080AE7F8: .4byte gContestMons
_080AE7FC:
- ldr r0, _080AE828 @ =gUnknown_02038570
+ ldr r0, _080AE828 @ =gContestMons
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
@@ -6647,7 +6647,7 @@ _080AE810:
pop {r1}
bx r1
.align 2, 0
-_080AE828: .4byte gUnknown_02038570
+_080AE828: .4byte gContestMons
thumb_func_end sub_80AE770
thumb_func_start sub_80AE82C
@@ -6767,9 +6767,9 @@ unref_sub_80AE908: @ 80AE908
mov r4, r8
push {r4-r6}
sub sp, 0x8
- ldr r0, _080AE9D4 @ =gUnknown_02038570
+ ldr r0, _080AE9D4 @ =gContestMons
mov r9, r0
- ldr r1, _080AE9D8 @ =gUnknown_02038695
+ ldr r1, _080AE9D8 @ =gContestPlayerMonIndex
mov r8, r1
ldrb r0, [r1]
lsls r0, 6
@@ -6859,8 +6859,8 @@ unref_sub_80AE908: @ 80AE908
pop {r1}
bx r1
.align 2, 0
-_080AE9D4: .4byte gUnknown_02038570
-_080AE9D8: .4byte gUnknown_02038695
+_080AE9D4: .4byte gContestMons
+_080AE9D8: .4byte gContestPlayerMonIndex
_080AE9DC: .4byte gMonFrontPicTable
_080AE9E0: .4byte gMonFrontPicCoords
_080AE9E4: .4byte gUnknown_081FAF4C
@@ -6900,7 +6900,7 @@ sub_80AE9FC: @ 80AE9FC
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
@@ -7856,7 +7856,7 @@ sub_80AF15C: @ 80AF15C
movs r0, 0
b _080AF1AA
_080AF174:
- ldr r0, _080AF190 @ =gUnknown_02038695
+ ldr r0, _080AF190 @ =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r4, r0
beq _080AF198
@@ -7864,15 +7864,15 @@ _080AF174:
bl sub_81288F4
bl sub_8128944
lsls r0, 24
- ldr r2, _080AF194 @ =gUnknown_02038570
+ ldr r2, _080AF194 @ =gContestMons
lsrs r0, 23
lsls r1, r4, 6
b _080AF1A2
.align 2, 0
-_080AF190: .4byte gUnknown_02038695
-_080AF194: .4byte gUnknown_02038570
+_080AF190: .4byte gContestPlayerMonIndex
+_080AF194: .4byte gContestMons
_080AF198:
- ldr r2, _080AF1B0 @ =gUnknown_02038570
+ ldr r2, _080AF1B0 @ =gContestMons
ldr r0, _080AF1B4 @ =0x02019204
ldrb r0, [r0]
lsls r0, 1
@@ -7887,7 +7887,7 @@ _080AF1AA:
pop {r1}
bx r1
.align 2, 0
-_080AF1B0: .4byte gUnknown_02038570
+_080AF1B0: .4byte gContestMons
_080AF1B4: .4byte 0x02019204
thumb_func_end sub_80AF15C
@@ -8464,7 +8464,7 @@ unref_sub_80AF5D0: @ 80AF5D0
lsrs r0, 24
lsls r1, 24
lsrs r3, r1, 24
- ldr r1, _080AF5E8 @ =gUnknown_02038695
+ ldr r1, _080AF5E8 @ =gContestPlayerMonIndex
ldrb r1, [r1]
cmp r0, r1
beq _080AF600
@@ -8472,7 +8472,7 @@ _080AF5E2:
movs r0, 0x1
b _080AF626
.align 2, 0
-_080AF5E8: .4byte gUnknown_02038695
+_080AF5E8: .4byte gContestPlayerMonIndex
_080AF5EC:
ldrb r0, [r4, 0x6]
movs r1, 0x1
@@ -11237,7 +11237,7 @@ sub_80B09E4: @ 80B09E4
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
- bl sub_8040F80
+ bl CopySpriteTiles
ldrb r0, [r7]
lsls r3, r0, 2
adds r3, r0
@@ -11253,7 +11253,7 @@ sub_80B09E4: @ 80B09E4
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
- bl sub_8040F80
+ bl CopySpriteTiles
ldrh r0, [r4, 0x4]
lsls r0, 22
lsrs r0, 17
@@ -12550,7 +12550,7 @@ sub_80B146C: @ 80B146C
lsrs r5, r1, 24
ldr r0, _080B14C8 @ =gStringVar1
lsls r1, r4, 6
- ldr r2, _080B14CC @ =gUnknown_02038572
+ ldr r2, _080B14CC @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r0, _080B14D0 @ =gStringVar2
@@ -12586,7 +12586,7 @@ sub_80B146C: @ 80B146C
b _080B1538
.align 2, 0
_080B14C8: .4byte gStringVar1
-_080B14CC: .4byte gUnknown_02038572
+_080B14CC: .4byte gContestMons + 0x2
_080B14D0: .4byte gStringVar2
_080B14D4: .4byte 0x02019260
_080B14D8: .4byte gMoveNames
@@ -14595,7 +14595,7 @@ _080B2470: .4byte 0x02019218
_080B2474: .4byte gUnknown_02038696
_080B2478: .4byte gTasks
_080B247C:
- ldr r0, _080B24C0 @ =gUnknown_0203869A
+ ldr r0, _080B24C0 @ =gIsLinkContest
ldrb r0, [r0]
ands r1, r0
cmp r1, 0
@@ -14625,7 +14625,7 @@ _080B249E:
strh r0, [r5, 0x8]
b _080B24FC
.align 2, 0
-_080B24C0: .4byte gUnknown_0203869A
+_080B24C0: .4byte gIsLinkContest
_080B24C4: .4byte 0x02019204
_080B24C8: .4byte sub_80C8C80
_080B24CC: .4byte sub_80AD8DC
@@ -15022,7 +15022,7 @@ sub_80B2790: @ 80B2790
bl sub_80B2760
lsls r0, 16
lsrs r5, r0, 16
- ldr r1, _080B27F4 @ =gUnknown_02038570
+ ldr r1, _080B27F4 @ =gContestMons
lsls r0, r6, 6
adds r0, r1
ldrh r0, [r0]
@@ -15056,7 +15056,7 @@ _080B27D0:
b _080B28BE
.align 2, 0
_080B27F0: .4byte 0x02019260
-_080B27F4: .4byte gUnknown_02038570
+_080B27F4: .4byte gContestMons
_080B27F8: .4byte gUnknown_02024E84
_080B27FC:
cmp r5, 0x82
@@ -15106,7 +15106,7 @@ _080B2848:
ldr r4, _080B2878 @ =0x02019260
adds r0, r4
ldrb r5, [r0, 0x1B]
- ldr r6, _080B287C @ =gUnknown_02038570
+ ldr r6, _080B287C @ =gContestMons
lsls r5, 6
adds r0, r5, r6
ldrh r0, [r0]
@@ -15124,7 +15124,7 @@ _080B2848:
b _080B28BE
.align 2, 0
_080B2878: .4byte 0x02019260
-_080B287C: .4byte gUnknown_02038570
+_080B287C: .4byte gContestMons
_080B2880:
ldr r1, _080B2888 @ =gUnknown_0202F7BE
movs r0, 0xFF
@@ -15196,7 +15196,7 @@ sub_80B28F0: @ 80B28F0
lsrs r4, 24
ldr r6, _080B2924 @ =0x02019348
strb r4, [r6, 0x5]
- ldr r5, _080B2928 @ =gUnknown_02038570
+ ldr r5, _080B2928 @ =gContestMons
lsls r4, 6
adds r0, r4, r5
ldrh r0, [r0]
@@ -15216,14 +15216,14 @@ sub_80B28F0: @ 80B28F0
bx r0
.align 2, 0
_080B2924: .4byte 0x02019348
-_080B2928: .4byte gUnknown_02038570
+_080B2928: .4byte gContestMons
thumb_func_end sub_80B28F0
thumb_func_start sub_80B292C
sub_80B292C: @ 80B292C
push {lr}
ldr r0, _080B2958 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _080B295C @ =gUnknown_02024BE0
strb r0, [r1, 0x3]
ldr r0, _080B2960 @ =gUnknown_02024C08
@@ -15391,7 +15391,7 @@ _080B2AB6:
mov r0, r9
cmp r0, 0xFF
bne _080B2AD0
- ldr r0, _080B2ACC @ =gUnknown_02038695
+ ldr r0, _080B2ACC @ =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r6, r0
beq _080B2AD0
@@ -15399,7 +15399,7 @@ _080B2AB6:
b _080B2C38
.align 2, 0
_080B2AC8: .4byte gUnknown_02038690
-_080B2ACC: .4byte gUnknown_02038695
+_080B2ACC: .4byte gContestPlayerMonIndex
_080B2AD0:
ldr r0, _080B2AE4 @ =gScriptContestCategory
ldrh r0, [r0]
@@ -15450,7 +15450,7 @@ _080B2B16:
ldr r0, _080B2B9C @ =0x00002dfc
adds r1, r2, r0
adds r1, r4, r1
- ldr r5, _080B2BA0 @ =gUnknown_02038570
+ ldr r5, _080B2BA0 @ =gContestMons
lsls r6, 6
adds r0, r5, 0
adds r0, 0x38
@@ -15501,7 +15501,7 @@ _080B2B16:
.align 2, 0
_080B2B98: .4byte gSaveBlock1
_080B2B9C: .4byte 0x00002dfc
-_080B2BA0: .4byte gUnknown_02038570
+_080B2BA0: .4byte gContestMons
_080B2BA4: .4byte 0x00002e04
_080B2BA8: .4byte 0x00002e07
_080B2BAC: .4byte 0x00002e12
@@ -15516,7 +15516,7 @@ _080B2BB8:
_080B2BC0: .4byte 0x00002e06
_080B2BC4:
ldr r5, _080B2C14 @ =0x02015de0
- ldr r2, _080B2C18 @ =gUnknown_02038570
+ ldr r2, _080B2C18 @ =gContestMons
lsls r4, r6, 6
adds r0, r2, 0
adds r0, 0x38
@@ -15537,7 +15537,7 @@ _080B2BC4:
adds r1, r4, r1
str r2, [sp]
bl StringCopy
- ldr r0, _080B2C1C @ =gUnknown_0203869A
+ ldr r0, _080B2C1C @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -15555,8 +15555,8 @@ _080B2BC4:
b _080B2C32
.align 2, 0
_080B2C14: .4byte 0x02015de0
-_080B2C18: .4byte gUnknown_02038570
-_080B2C1C: .4byte gUnknown_0203869A
+_080B2C18: .4byte gContestMons
+_080B2C1C: .4byte gIsLinkContest
_080B2C20: .4byte gLinkPlayers + 0x8
_080B2C24:
adds r0, r5, 0
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index 1e5497570..a947110ec 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -34,7 +34,7 @@ _08128910:
adds r0, r2, 0
adds r0, 0x40
strb r1, [r0]
- ldr r1, _08128940 @ =gUnknown_02038570
+ ldr r1, _08128940 @ =gContestMons
ldrb r0, [r3]
lsls r0, 6
adds r1, 0x18
@@ -46,7 +46,7 @@ _08128910:
bx r0
.align 2, 0
_0812893C: .4byte 0x020192e4
-_08128940: .4byte gUnknown_02038570
+_08128940: .4byte gContestMons
thumb_func_end sub_81288F4
thumb_func_start sub_8128944
@@ -1403,7 +1403,7 @@ _081292E0:
thumb_func_start contest_ai_get_move_excitement
contest_ai_get_move_excitement: @ 81292E4
push {r4,lr}
- ldr r2, _08129318 @ =gUnknown_02038570
+ ldr r2, _08129318 @ =gContestMons
ldr r4, _0812931C @ =0x020192e4
ldrb r1, [r4, 0x4]
lsls r1, 1
@@ -1427,7 +1427,7 @@ contest_ai_get_move_excitement: @ 81292E4
pop {r0}
bx r0
.align 2, 0
-_08129318: .4byte gUnknown_02038570
+_08129318: .4byte gContestMons
_0812931C: .4byte 0x020192e4
_08129320: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_move_excitement
@@ -1582,7 +1582,7 @@ _0812942C:
thumb_func_start contest_ai_get_move_effect
contest_ai_get_move_effect: @ 8129434
- ldr r2, _08129460 @ =gUnknown_02038570
+ ldr r2, _08129460 @ =gContestMons
ldr r3, _08129464 @ =0x020192e4
ldrb r1, [r3, 0x4]
lsls r1, 1
@@ -1605,7 +1605,7 @@ contest_ai_get_move_effect: @ 8129434
str r0, [r1]
bx lr
.align 2, 0
-_08129460: .4byte gUnknown_02038570
+_08129460: .4byte gContestMons
_08129464: .4byte 0x020192e4
_08129468: .4byte gContestMoves
_0812946C: .4byte gAIScriptPtr
@@ -1683,7 +1683,7 @@ _081294EC:
thumb_func_start contest_ai_get_move_effect_type
contest_ai_get_move_effect_type: @ 81294F0
- ldr r2, _08129524 @ =gUnknown_02038570
+ ldr r2, _08129524 @ =gContestMons
ldr r3, _08129528 @ =0x020192e4
ldrb r1, [r3, 0x4]
lsls r1, 1
@@ -1710,7 +1710,7 @@ contest_ai_get_move_effect_type: @ 81294F0
str r0, [r1]
bx lr
.align 2, 0
-_08129524: .4byte gUnknown_02038570
+_08129524: .4byte gContestMons
_08129528: .4byte 0x020192e4
_0812952C: .4byte gContestEffects
_08129530: .4byte gContestMoves
@@ -1790,7 +1790,7 @@ _081295B4:
thumb_func_start contest_ai_check_move_has_highest_appeal
contest_ai_check_move_has_highest_appeal: @ 81295B8
push {r4-r7,lr}
- ldr r2, _08129610 @ =gUnknown_02038570
+ ldr r2, _08129610 @ =gContestMons
ldr r3, _08129614 @ =0x020192e4
ldrb r0, [r3, 0x4]
lsls r0, 1
@@ -1837,7 +1837,7 @@ _08129608:
movs r0, 0x1
b _08129626
.align 2, 0
-_08129610: .4byte gUnknown_02038570
+_08129610: .4byte gContestMons
_08129614: .4byte 0x020192e4
_08129618: .4byte gContestEffects
_0812961C: .4byte gContestMoves
@@ -1896,7 +1896,7 @@ _08129678: .4byte gAIScriptPtr
thumb_func_start sub_812967C
sub_812967C: @ 812967C
push {r4-r7,lr}
- ldr r2, _081296D4 @ =gUnknown_02038570
+ ldr r2, _081296D4 @ =gContestMons
ldr r3, _081296D8 @ =0x020192e4
ldrb r0, [r3, 0x4]
lsls r0, 1
@@ -1943,7 +1943,7 @@ _081296CC:
movs r0, 0x1
b _081296EA
.align 2, 0
-_081296D4: .4byte gUnknown_02038570
+_081296D4: .4byte gContestMons
_081296D8: .4byte 0x020192e4
_081296DC: .4byte gContestEffects
_081296E0: .4byte gContestMoves
@@ -2002,7 +2002,7 @@ _0812973C: .4byte gAIScriptPtr
thumb_func_start sub_8129740
sub_8129740: @ 8129740
push {r4,lr}
- ldr r2, _08129784 @ =gUnknown_02038570
+ ldr r2, _08129784 @ =gContestMons
ldr r4, _08129788 @ =0x020192e4
ldrb r1, [r4, 0x4]
lsls r1, 1
@@ -2035,7 +2035,7 @@ sub_8129740: @ 8129740
pop {r0}
bx r0
.align 2, 0
-_08129784: .4byte gUnknown_02038570
+_08129784: .4byte gContestMons
_08129788: .4byte 0x020192e4
_0812978C: .4byte gContestEffects
_08129790: .4byte gContestMoves
@@ -2185,7 +2185,7 @@ _08129894:
thumb_func_start sub_8129898
sub_8129898: @ 8129898
push {r4,lr}
- ldr r2, _081298DC @ =gUnknown_02038570
+ ldr r2, _081298DC @ =gContestMons
ldr r4, _081298E0 @ =0x020192e4
ldrb r1, [r4, 0x4]
lsls r1, 1
@@ -2218,7 +2218,7 @@ sub_8129898: @ 8129898
pop {r0}
bx r0
.align 2, 0
-_081298DC: .4byte gUnknown_02038570
+_081298DC: .4byte gContestMons
_081298E0: .4byte 0x020192e4
_081298E4: .4byte gContestEffects
_081298E8: .4byte gContestMoves
@@ -2368,7 +2368,7 @@ _081299EC:
thumb_func_start contest_ai_get_move_used_count
contest_ai_get_move_used_count: @ 81299F0
push {r4,lr}
- ldr r3, _08129A20 @ =gUnknown_02038570
+ ldr r3, _08129A20 @ =gContestMons
ldr r4, _08129A24 @ =0x020192e4
ldrb r0, [r4, 0x4]
lsls r0, 1
@@ -2392,7 +2392,7 @@ contest_ai_get_move_used_count: @ 81299F0
movs r0, 0
b _08129A30
.align 2, 0
-_08129A20: .4byte gUnknown_02038570
+_08129A20: .4byte gContestMons
_08129A24: .4byte 0x020192e4
_08129A28:
ldrb r0, [r0, 0xB]
@@ -2558,7 +2558,7 @@ contest_ai_check_combo_starter: @ 8129B44
mov r7, r8
push {r7}
movs r5, 0
- ldr r3, _08129BAC @ =gUnknown_02038570
+ ldr r3, _08129BAC @ =gContestMons
ldr r2, _08129BB0 @ =0x020192e4
ldrb r1, [r2, 0x4]
lsls r1, 1
@@ -2610,7 +2610,7 @@ _08129B96:
pop {r0}
bx r0
.align 2, 0
-_08129BAC: .4byte gUnknown_02038570
+_08129BAC: .4byte gContestMons
_08129BB0: .4byte 0x020192e4
_08129BB4: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_combo_starter
@@ -2697,7 +2697,7 @@ contest_ai_check_combo_finisher: @ 8129C40
mov r7, r8
push {r7}
movs r5, 0
- ldr r3, _08129CA8 @ =gUnknown_02038570
+ ldr r3, _08129CA8 @ =gContestMons
ldr r2, _08129CAC @ =0x020192e4
ldrb r1, [r2, 0x4]
lsls r1, 1
@@ -2748,7 +2748,7 @@ _08129C90:
pop {r0}
bx r0
.align 2, 0
-_08129CA8: .4byte gUnknown_02038570
+_08129CA8: .4byte gContestMons
_08129CAC: .4byte 0x020192e4
_08129CB0: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_combo_finisher
@@ -2833,7 +2833,7 @@ _08129D38: .4byte gAIScriptPtr
contest_ai_check_would_finish_combo: @ 8129D3C
push {r4,r5,lr}
movs r5, 0
- ldr r3, _08129D8C @ =gUnknown_02038570
+ ldr r3, _08129D8C @ =gContestMons
ldr r4, _08129D90 @ =0x020192e4
ldrb r0, [r4, 0x4]
lsls r0, 1
@@ -2872,7 +2872,7 @@ _08129D7A:
pop {r0}
bx r0
.align 2, 0
-_08129D8C: .4byte gUnknown_02038570
+_08129D8C: .4byte gContestMons
_08129D90: .4byte 0x020192e4
_08129D94: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_would_finish_combo
@@ -5166,7 +5166,7 @@ sub_812ADD8: @ 812ADD8
lsls r0, 8
orrs r4, r0
movs r3, 0
- ldr r0, _0812AE0C @ =gUnknown_02038570
+ ldr r0, _0812AE0C @ =gContestMons
mov r12, r0
ldr r5, _0812AE10 @ =0x020192e4
adds r0, r5, 0
@@ -5183,7 +5183,7 @@ sub_812ADD8: @ 812ADD8
b _0812AE2E
.align 2, 0
_0812AE08: .4byte gAIScriptPtr
-_0812AE0C: .4byte gUnknown_02038570
+_0812AE0C: .4byte gContestMons
_0812AE10: .4byte 0x020192e4
_0812AE14:
adds r3, 0x1
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index d4b9a7c0f..672eb4c1a 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -277,7 +277,7 @@ sub_80C226C: @ 80C226C
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080C2288 @ =gUnknown_02038695
+ ldr r0, _080C2288 @ =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r5, r0
bne _080C2294
@@ -287,7 +287,7 @@ sub_80C226C: @ 80C226C
adds r2, r0, 0
b _080C2296
.align 2, 0
-_080C2288: .4byte gUnknown_02038695
+_080C2288: .4byte gContestPlayerMonIndex
_080C228C: .4byte gUnknown_020238CC
_080C2290: .4byte gUnknown_083D17DC
_080C2294:
@@ -301,7 +301,7 @@ _080C2296:
strb r0, [r2, 0x2]
adds r2, 0x3
lsls r6, r5, 6
- ldr r7, _080C22EC @ =gUnknown_02038572
+ ldr r7, _080C22EC @ =gContestMons + 0x2
adds r1, r6, r7
adds r0, r2, 0
bl StringCopy
@@ -316,7 +316,7 @@ _080C2296:
adds r0, r2, 0
bl StringCopy
adds r2, r0, 0
- ldr r0, _080C22F4 @ =gUnknown_0203869A
+ ldr r0, _080C22F4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -332,9 +332,9 @@ _080C2296:
b _080C230A
.align 2, 0
_080C22E8: .4byte gUnknown_020238CC
-_080C22EC: .4byte gUnknown_02038572
+_080C22EC: .4byte gContestMons + 0x2
_080C22F0: .4byte gUnknown_083D17E0
-_080C22F4: .4byte gUnknown_0203869A
+_080C22F4: .4byte gIsLinkContest
_080C22F8: .4byte gLinkPlayers + 0x8
_080C22FC:
adds r1, r7, 0
@@ -564,7 +564,7 @@ sub_80C24F4: @ 80C24F4
ands r0, r1
cmp r0, 0
bne _080C254E
- ldr r0, _080C2530 @ =gUnknown_0203869A
+ ldr r0, _080C2530 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -582,7 +582,7 @@ sub_80C24F4: @ 80C24F4
b _080C254E
.align 2, 0
_080C252C: .4byte gPaletteFade
-_080C2530: .4byte gUnknown_0203869A
+_080C2530: .4byte gIsLinkContest
_080C2534: .4byte gOtherText_LinkStandby
_080C2538: .4byte gTasks
_080C253C: .4byte sub_80C255C
@@ -1169,7 +1169,7 @@ _080C299C:
movs r4, 0
ldr r2, _080C29F4 @ =gUnknown_02038690
ldrb r0, [r2]
- ldr r1, _080C29F8 @ =gUnknown_0203869A
+ ldr r1, _080C29F8 @ =gIsLinkContest
ldr r3, _080C29FC @ =gStringVar1
cmp r0, 0
beq _080C29D4
@@ -1198,7 +1198,7 @@ _080C29D4:
b _080C2A10
.align 2, 0
_080C29F4: .4byte gUnknown_02038690
-_080C29F8: .4byte gUnknown_0203869A
+_080C29F8: .4byte gIsLinkContest
_080C29FC: .4byte gStringVar1
_080C2A00: .4byte gLinkPlayers + 0x8
_080C2A04:
@@ -1209,7 +1209,7 @@ _080C2A04:
bl StringCopy
_080C2A10:
ldr r0, _080C2A58 @ =gStringVar2
- ldr r1, _080C2A5C @ =gUnknown_02038572
+ ldr r1, _080C2A5C @ =gContestMons + 0x2
adds r1, r4, r1
bl StringCopy
ldr r1, _080C2A60 @ =gContestText_PokeWon
@@ -1241,7 +1241,7 @@ _080C2A4A:
.align 2, 0
_080C2A54: .4byte gUnknown_0203857D
_080C2A58: .4byte gStringVar2
-_080C2A5C: .4byte gUnknown_02038572
+_080C2A5C: .4byte gContestMons + 0x2
_080C2A60: .4byte gContestText_PokeWon
_080C2A64: .4byte 0x02018000
_080C2A68: .4byte 0x0000ffff
@@ -1315,7 +1315,7 @@ _080C2ADC:
ldrb r0, [r3]
lsls r4, r7, 2
mov r10, r4
- ldr r2, _080C2BD4 @ =gUnknown_02038570
+ ldr r2, _080C2BD4 @ =gContestMons
ldr r5, _080C2BD8 @ =gMonFrontPicTable
mov r12, r5
ldr r4, _080C2BDC @ =gMonFrontPicCoords
@@ -1357,7 +1357,7 @@ _080C2B14:
str r6, [sp, 0x4]
str r4, [sp, 0x8]
ldr r3, _080C2BE4 @ =0x02000000
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r6, 0
ldr r1, [sp, 0xC]
adds r2, r4, 0
@@ -1418,7 +1418,7 @@ _080C2BC4: .4byte gUnknown_030042C4
_080C2BC8: .4byte gUnknown_03004240
_080C2BCC: .4byte 0x00005050
_080C2BD0: .4byte gUnknown_02038690
-_080C2BD4: .4byte gUnknown_02038570
+_080C2BD4: .4byte gContestMons
_080C2BD8: .4byte gMonFrontPicTable
_080C2BDC: .4byte gMonFrontPicCoords
_080C2BE0: .4byte gUnknown_081FAF4C
@@ -1586,14 +1586,14 @@ sub_80C2D1C: @ 80C2D1C
ands r0, r1
cmp r0, 0
beq _080C2D66
- ldr r0, _080C2D70 @ =gUnknown_0203869A
+ ldr r0, _080C2D70 @ =gIsLinkContest
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
lsls r6, r7, 2
cmp r0, 0
bne _080C2D5A
- ldr r5, _080C2D74 @ =gUnknown_02038570
+ ldr r5, _080C2D74 @ =gContestMons
movs r4, 0x3
_080C2D42:
ldrh r0, [r5]
@@ -1619,8 +1619,8 @@ _080C2D66:
bx r0
.align 2, 0
_080C2D6C: .4byte gMain
-_080C2D70: .4byte gUnknown_0203869A
-_080C2D74: .4byte gUnknown_02038570
+_080C2D70: .4byte gIsLinkContest
+_080C2D74: .4byte gContestMons
_080C2D78: .4byte gTasks
_080C2D7C: .4byte sub_80C2D80
thumb_func_end sub_80C2D1C
@@ -1630,7 +1630,7 @@ sub_80C2D80: @ 80C2D80
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080C2DAC @ =gUnknown_0203869A
+ ldr r0, _080C2DAC @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -1648,7 +1648,7 @@ sub_80C2D80: @ 80C2D80
str r1, [r0]
b _080C2DCA
.align 2, 0
-_080C2DAC: .4byte gUnknown_0203869A
+_080C2DAC: .4byte gIsLinkContest
_080C2DB0: .4byte gOtherText_LinkStandby
_080C2DB4: .4byte gTasks
_080C2DB8: .4byte sub_80C2DD8
@@ -1678,7 +1678,7 @@ sub_80C2DD8: @ 80C2DD8
ldrb r1, [r0]
cmp r1, 0
bne _080C2DFC
- ldr r0, _080C2E08 @ =gUnknown_0203869A
+ ldr r0, _080C2E08 @ =gIsLinkContest
strb r1, [r0]
bl sub_80C3764
ldr r1, _080C2E0C @ =gTasks
@@ -1694,7 +1694,7 @@ _080C2DFC:
bx r0
.align 2, 0
_080C2E04: .4byte gReceivedRemoteLinkPlayers
-_080C2E08: .4byte gUnknown_0203869A
+_080C2E08: .4byte gIsLinkContest
_080C2E0C: .4byte gTasks
_080C2E10: .4byte sub_80C2E14
thumb_func_end sub_80C2DD8
@@ -1707,7 +1707,7 @@ sub_80C2E14: @ 80C2E14
lsls r5, 24
lsrs r5, 24
ldr r1, _080C2E80 @ =gUnknown_02038690
- ldr r0, _080C2E84 @ =gUnknown_02038695
+ ldr r0, _080C2E84 @ =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -1750,7 +1750,7 @@ sub_80C2E14: @ 80C2E14
bx r0
.align 2, 0
_080C2E80: .4byte gUnknown_02038690
-_080C2E84: .4byte gUnknown_02038695
+_080C2E84: .4byte gContestPlayerMonIndex
_080C2E88: .4byte gScriptContestRank
_080C2E8C: .4byte 0x02000000
_080C2E90: .4byte 0x00015ddf
@@ -1973,7 +1973,7 @@ sub_80C3024: @ 80C3024
cmp r3, 0
beq _080C30B0
adds r1, r6, 0
- bl sub_809D4F4
+ bl GetMonIconPtr
lsls r1, r5, 9
adds r0, r1
adds r0, 0x80
@@ -2031,7 +2031,7 @@ _080C30A8: .4byte 0x84000060
_080C30AC: .4byte 0x0600c000
_080C30B0:
adds r1, r6, 0
- bl sub_809D4F4
+ bl GetMonIconPtr
lsls r1, r5, 9
adds r0, r1
adds r0, 0x80
@@ -2058,7 +2058,7 @@ sub_80C30D4: @ 80C30D4
lsls r1, 24
lsrs r6, r1, 24
movs r5, 0
- ldr r4, _080C3108 @ =gUnknown_02038570
+ ldr r4, _080C3108 @ =gContestMons
_080C30E4:
ldrh r0, [r4]
lsls r1, r5, 24
@@ -2077,7 +2077,7 @@ _080C30E4:
pop {r0}
bx r0
.align 2, 0
-_080C3108: .4byte gUnknown_02038570
+_080C3108: .4byte gContestMons
thumb_func_end sub_80C30D4
thumb_func_start sub_80C310C
@@ -2088,7 +2088,7 @@ sub_80C310C: @ 80C310C
movs r5, 0xA0
lsls r5, 16
_080C3116:
- ldr r1, _080C3150 @ =gUnknown_02038570
+ ldr r1, _080C3150 @ =gContestMons
lsls r0, r4, 6
adds r0, r1
ldrh r0, [r0]
@@ -2115,7 +2115,7 @@ _080C3116:
bx r0
.align 2, 0
_080C314C: .4byte gMonIconPaletteIndices
-_080C3150: .4byte gUnknown_02038570
+_080C3150: .4byte gContestMons
_080C3154: .4byte gMonIconPalettes
thumb_func_end sub_80C310C
@@ -2954,7 +2954,7 @@ sub_80C37E4: @ 80C37E4
sub sp, 0x10
movs r5, 0x1
movs r4, 0
- ldr r0, _080C3808 @ =gUnknown_0203869A
+ ldr r0, _080C3808 @ =gIsLinkContest
ldrb r0, [r0]
adds r1, r5, 0
ands r1, r0
@@ -2968,7 +2968,7 @@ sub_80C37E4: @ 80C37E4
str r2, [sp, 0x4]
b _080C386A
.align 2, 0
-_080C3808: .4byte gUnknown_0203869A
+_080C3808: .4byte gIsLinkContest
_080C380C: .4byte 0x0600e000
_080C3810: .4byte gUnknown_08E964B8
_080C3814:
@@ -3813,7 +3813,7 @@ sub_80C3E60: @ 80C3E60
adds r1, r2
strh r4, [r1, 0x8]
strh r5, [r1, 0xA]
- ldr r0, _080C3EA0 @ =gUnknown_02038570
+ ldr r0, _080C3EA0 @ =gContestMons
lsls r4, 6
adds r4, r0
ldrh r0, [r4]
@@ -3824,7 +3824,7 @@ sub_80C3E60: @ 80C3E60
.align 2, 0
_080C3E98: .4byte sub_80C3EA4
_080C3E9C: .4byte gTasks
-_080C3EA0: .4byte gUnknown_02038570
+_080C3EA0: .4byte gContestMons
thumb_func_end sub_80C3E60
thumb_func_start sub_80C3EA4
@@ -3852,7 +3852,7 @@ sub_80C3EA4: @ 80C3EA4
strh r0, [r4, 0x1C]
ldrh r0, [r4, 0xC]
ldrb r2, [r4, 0x1E]
- ldr r1, _080C3EFC @ =gUnknown_02038570
+ ldr r1, _080C3EFC @ =gContestMons
lsls r3, r5, 6
adds r1, 0x38
adds r3, r1
@@ -3872,7 +3872,7 @@ _080C3EEE:
bx r0
.align 2, 0
_080C3EF8: .4byte gTasks
-_080C3EFC: .4byte gUnknown_02038570
+_080C3EFC: .4byte gContestMons
thumb_func_end sub_80C3EA4
thumb_func_start sub_80C3F00
@@ -4638,7 +4638,7 @@ sub_80C44C0: @ 80C44C0
push {r4-r7,lr}
sub sp, 0x4
ldr r1, _080C44E8 @ =gUnknown_02038690
- ldr r0, _080C44EC @ =gUnknown_02038695
+ ldr r0, _080C44EC @ =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -4659,7 +4659,7 @@ _080C44DE:
mov pc, r0
.align 2, 0
_080C44E8: .4byte gUnknown_02038690
-_080C44EC: .4byte gUnknown_02038695
+_080C44EC: .4byte gContestPlayerMonIndex
_080C44F0: .4byte gScriptContestCategory
_080C44F4: .4byte _080C44F8
.align 2, 0
@@ -4867,11 +4867,11 @@ sub_80C4698: @ 80C4698
lsls r1, 24
lsrs r4, r1, 24
lsls r1, r4, 6
- ldr r0, _080C46E0 @ =gUnknown_02038572
+ ldr r0, _080C46E0 @ =gContestMons + 0x2
adds r1, r0
adds r0, r5, 0
bl StringCopy
- ldr r0, _080C46E4 @ =gUnknown_0203869A
+ ldr r0, _080C46E4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -4897,15 +4897,15 @@ _080C46DA:
pop {r0}
bx r0
.align 2, 0
-_080C46E0: .4byte gUnknown_02038572
-_080C46E4: .4byte gUnknown_0203869A
+_080C46E0: .4byte gContestMons + 0x2
+_080C46E4: .4byte gIsLinkContest
_080C46E8: .4byte gLinkPlayers
thumb_func_end sub_80C4698
thumb_func_start sub_80C46EC
sub_80C46EC: @ 80C46EC
push {lr}
- ldr r0, _080C4710 @ =gUnknown_0203869A
+ ldr r0, _080C4710 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -4922,7 +4922,7 @@ sub_80C46EC: @ 80C46EC
bl sub_80C4674
b _080C4730
.align 2, 0
-_080C4710: .4byte gUnknown_0203869A
+_080C4710: .4byte gIsLinkContest
_080C4714: .4byte gStringVar1
_080C4718: .4byte gSpecialVar_0x8006
_080C471C: .4byte gLinkPlayers + 0x8
@@ -5047,7 +5047,7 @@ sub_80C47F0: @ 80C47F0
movs r2, 0
ldr r3, _080C4830 @ =gUnknown_02038690
ldrb r0, [r3]
- ldr r1, _080C4834 @ =gUnknown_0203869A
+ ldr r1, _080C4834 @ =gIsLinkContest
ldr r4, _080C4838 @ =gStringVar3
cmp r0, 0
beq _080C4812
@@ -5077,7 +5077,7 @@ _080C4812:
b _080C484C
.align 2, 0
_080C4830: .4byte gUnknown_02038690
-_080C4834: .4byte gUnknown_0203869A
+_080C4834: .4byte gIsLinkContest
_080C4838: .4byte gStringVar3
_080C483C: .4byte gLinkPlayers + 0x8
_080C4840:
@@ -5182,7 +5182,7 @@ _080C48F0: .4byte sub_80C489C
thumb_func_start sub_80C48F4
sub_80C48F4: @ 80C48F4
ldr r2, _080C4908 @ =gSpecialVar_0x8004
- ldr r1, _080C490C @ =gUnknown_02038570
+ ldr r1, _080C490C @ =gContestMons
ldr r0, _080C4910 @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 6
@@ -5192,7 +5192,7 @@ sub_80C48F4: @ 80C48F4
bx lr
.align 2, 0
_080C4908: .4byte gSpecialVar_0x8004
-_080C490C: .4byte gUnknown_02038570
+_080C490C: .4byte gContestMons
_080C4910: .4byte gSpecialVar_0x8006
thumb_func_end sub_80C48F4
@@ -5244,13 +5244,13 @@ _080C4968: .4byte sub_80C4914
thumb_func_start sub_80C496C
sub_80C496C: @ 80C496C
ldr r0, _080C4978 @ =gSpecialVar_0x8004
- ldr r1, _080C497C @ =gUnknown_02038695
+ ldr r1, _080C497C @ =gContestPlayerMonIndex
ldrb r1, [r1]
strh r1, [r0]
bx lr
.align 2, 0
_080C4978: .4byte gSpecialVar_0x8004
-_080C497C: .4byte gUnknown_02038695
+_080C497C: .4byte gContestPlayerMonIndex
thumb_func_end sub_80C496C
thumb_func_start sub_80C4980
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s
index b44220769..12dc3bdb5 100644
--- a/asm/contest_link_80C857C.s
+++ b/asm/contest_link_80C857C.s
@@ -145,14 +145,14 @@ sub_80C8660: @ 80C8660
cmp r0, 0
beq _080C868E
bl GetMultiplayerId
- ldr r1, _080C8698 @ =gUnknown_02038695
+ ldr r1, _080C8698 @ =gContestPlayerMonIndex
strb r0, [r1]
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _080C868E
- ldr r1, _080C869C @ =gUnknown_0203869A
+ ldr r1, _080C869C @ =gIsLinkContest
movs r0, 0x1
strb r0, [r1]
adds r0, r4, 0
@@ -163,8 +163,8 @@ _080C868E:
bx r0
.align 2, 0
_080C8694: .4byte gReceivedRemoteLinkPlayers
-_080C8698: .4byte gUnknown_02038695
-_080C869C: .4byte gUnknown_0203869A
+_080C8698: .4byte gContestPlayerMonIndex
+_080C869C: .4byte gIsLinkContest
thumb_func_end sub_80C8660
thumb_func_start sub_80C86A0
@@ -290,10 +290,10 @@ _080C876C:
b _080C8896
_080C8782:
ldr r0, _080C879C @ =gBlockSendBuffer
- ldr r1, _080C87A0 @ =gUnknown_02038695
+ ldr r1, _080C87A0 @ =gContestPlayerMonIndex
ldrb r1, [r1]
lsls r1, 6
- ldr r2, _080C87A4 @ =gUnknown_02038570
+ ldr r2, _080C87A4 @ =gContestMons
adds r1, r2
movs r2, 0x40
bl memcpy
@@ -302,14 +302,14 @@ _080C8782:
b _080C87BA
.align 2, 0
_080C879C: .4byte gBlockSendBuffer
-_080C87A0: .4byte gUnknown_02038695
-_080C87A4: .4byte gUnknown_02038570
+_080C87A0: .4byte gContestPlayerMonIndex
+_080C87A4: .4byte gContestMons
_080C87A8:
ldr r0, _080C87C4 @ =gBlockSendBuffer
- ldr r1, _080C87C8 @ =gUnknown_02038695
+ ldr r1, _080C87C8 @ =gContestPlayerMonIndex
ldrb r1, [r1]
lsls r1, 6
- ldr r2, _080C87CC @ =gUnknown_02038570
+ ldr r2, _080C87CC @ =gContestMons
adds r1, r2
movs r2, 0x40
bl memcpy
@@ -320,8 +320,8 @@ _080C87BA:
b _080C8896
.align 2, 0
_080C87C4: .4byte gBlockSendBuffer
-_080C87C8: .4byte gUnknown_02038695
-_080C87CC: .4byte gUnknown_02038570
+_080C87C8: .4byte gContestPlayerMonIndex
+_080C87CC: .4byte gContestMons
_080C87D0:
bl sub_80C85D8
lsls r0, 24
@@ -329,7 +329,7 @@ _080C87D0:
beq _080C8896
movs r7, 0
str r5, [sp]
- ldr r0, _080C8818 @ =gUnknown_02038570
+ ldr r0, _080C8818 @ =gContestMons
ldr r6, _080C881C @ =gLinkPlayers
movs r5, 0
mov r10, r0
@@ -342,7 +342,7 @@ _080C87EA:
mov r0, r10
movs r2, 0x40
bl memcpy
- ldr r0, _080C8824 @ =gUnknown_02038572
+ ldr r0, _080C8824 @ =gContestMons + 0x2
adds r4, r5, r0
ldrh r0, [r6, 0x1A]
cmp r0, 0x1
@@ -356,10 +356,10 @@ _080C87EA:
bl ConvertInternationalString
b _080C883E
.align 2, 0
-_080C8818: .4byte gUnknown_02038570
+_080C8818: .4byte gContestMons
_080C881C: .4byte gLinkPlayers
_080C8820: .4byte gBlockRecvBuffer
-_080C8824: .4byte gUnknown_02038572
+_080C8824: .4byte gContestMons + 0x2
_080C8828:
ldrb r0, [r4, 0xA]
cmp r0, 0xFC
@@ -612,12 +612,12 @@ _080C8A08:
lsls r0, 24
cmp r0, 0
beq _080C8A30
- ldr r0, _080C8A1C @ =gUnknown_02038695
+ ldr r0, _080C8A1C @ =gContestPlayerMonIndex
movs r1, 0x1
bl sub_80C857C
b _080C8A2A
.align 2, 0
-_080C8A1C: .4byte gUnknown_02038695
+_080C8A1C: .4byte gContestPlayerMonIndex
_080C8A20:
bl sub_80C85D8
lsls r0, 24
@@ -661,7 +661,7 @@ _080C8A64:
lsls r0, 24
cmp r0, 0
beq _080C8AC2
- ldr r0, _080C8A8C @ =gUnknown_02038695
+ ldr r0, _080C8A8C @ =gContestPlayerMonIndex
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
@@ -675,7 +675,7 @@ _080C8A64:
strh r0, [r4, 0x8]
b _080C8AC2
.align 2, 0
-_080C8A8C: .4byte gUnknown_02038695
+_080C8A8C: .4byte gContestPlayerMonIndex
_080C8A90: .4byte 0x02019266
_080C8A94:
bl sub_80C85D8
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
deleted file mode 100644
index 91ee2d547..000000000
--- a/asm/contest_painting.s
+++ /dev/null
@@ -1,1293 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8106630
-sub_8106630: @ 8106630
- push {r4-r7,lr}
- ldr r2, _0810665C @ =0x02015de0
- subs r4, r2, 0x2
- subs r5, r2, 0x1
- ldr r3, _08106660 @ =gSaveBlock1
- subs r0, 0x1
- lsls r1, r0, 5
- adds r1, r3
- ldr r3, _08106664 @ =0x00002dfc
- adds r1, r3
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r6,r7}
- stm r2!, {r6,r7}
- strb r0, [r4]
- movs r0, 0
- strb r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810665C: .4byte 0x02015de0
-_08106660: .4byte gSaveBlock1
-_08106664: .4byte 0x00002dfc
- thumb_func_end sub_8106630
-
- thumb_func_start CB2_ContestPainting
-CB2_ContestPainting: @ 8106668
- push {lr}
- bl ShowContestPainting
- pop {r0}
- bx r0
- thumb_func_end CB2_ContestPainting
-
- thumb_func_start ShowContestPainting
-ShowContestPainting: @ 8106674
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _08106694 @ =gMain
- ldr r2, _08106698 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _08106688
- b _081067E0
-_08106688:
- lsls r0, 2
- ldr r1, _0810669C @ =_081066A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106694: .4byte gMain
-_08106698: .4byte 0x0000043c
-_0810669C: .4byte _081066A0
- .align 2, 0
-_081066A0:
- .4byte _081066B4
- .4byte _081066D8
- .4byte _08106734
- .4byte _0810675C
- .4byte _0810678C
-_081066B4:
- bl remove_some_task
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _081066D0 @ =gUnknown_03005E8C
- ldr r0, _081066D4 @ =0x02015de0
- str r0, [r1]
- movs r0, 0x1
- bl ContestPaintingInitVars
- bl ContestPaintingInitBG
- b _0810676E
- .align 2, 0
-_081066D0: .4byte gUnknown_03005E8C
-_081066D4: .4byte 0x02015de0
-_081066D8:
- bl ResetPaletteFade
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _08106724 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08106728 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_081066F2:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _081066F2
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetSpriteData
- ldr r1, _0810672C @ =gMain
- ldr r2, _08106730 @ =0x0000043c
- adds r1, r2
- b _08106774
- .align 2, 0
-_08106724: .4byte 0x040000d4
-_08106728: .4byte 0x85000400
-_0810672C: .4byte gMain
-_08106730: .4byte 0x0000043c
-_08106734:
- ldrh r0, [r4, 0x20]
- bl SeedRng
- bl InitKeys
- ldr r0, _08106750 @ =0x02000000
- ldr r1, _08106754 @ =0x00015ddf
- adds r0, r1
- ldrb r0, [r0]
- bl ContestPaintingInitWindow
- ldr r2, _08106758 @ =0x0000043c
- adds r1, r4, r2
- b _08106774
- .align 2, 0
-_08106750: .4byte 0x02000000
-_08106754: .4byte 0x00015ddf
-_08106758: .4byte 0x0000043c
-_0810675C:
- ldr r1, _0810677C @ =0x02000000
- ldr r2, _08106780 @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8107090
-_0810676E:
- ldr r1, _08106784 @ =gMain
- ldr r0, _08106788 @ =0x0000043c
- adds r1, r0
-_08106774:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081067E0
- .align 2, 0
-_0810677C: .4byte 0x02000000
-_08106780: .4byte 0x00015dde
-_08106784: .4byte gMain
-_08106788: .4byte 0x0000043c
-_0810678C:
- ldr r1, _081067E8 @ =0x02000000
- ldr r2, _081067EC @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl ContestPaintingPrintCaption
- ldr r0, _081067F0 @ =gUnknown_083F6140
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r1, 0xA0
- lsls r1, 19
- movs r4, 0
- str r4, [sp]
- ldr r0, _081067F4 @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081067F8 @ =0x85000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0x2
- bl BeginFastPaletteFade
- ldr r0, _081067FC @ =VBlankCB_ContestPainting
- bl SetVBlankCallback
- ldr r0, _08106800 @ =gUnknown_03000750
- strb r4, [r0]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106804 @ =CB2_HoldContestPainting
- bl SetMainCallback2
-_081067E0:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081067E8: .4byte 0x02000000
-_081067EC: .4byte 0x00015dde
-_081067F0: .4byte gUnknown_083F6140
-_081067F4: .4byte 0x040000d4
-_081067F8: .4byte 0x85000100
-_081067FC: .4byte VBlankCB_ContestPainting
-_08106800: .4byte gUnknown_03000750
-_08106804: .4byte CB2_HoldContestPainting
- thumb_func_end ShowContestPainting
-
- thumb_func_start CB2_HoldContestPainting
-CB2_HoldContestPainting: @ 8106808
- push {lr}
- bl HoldContestPainting
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_HoldContestPainting
-
- thumb_func_start CB2_QuitContestPainting
-CB2_QuitContestPainting: @ 8106818
- push {lr}
- ldr r0, _08106828 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08106828: .4byte gMain
- thumb_func_end CB2_QuitContestPainting
-
- thumb_func_start HoldContestPainting
-HoldContestPainting: @ 810682C
- push {lr}
- sub sp, 0x4
- ldr r3, _08106844 @ =gUnknown_03000750
- ldrb r1, [r3]
- cmp r1, 0x1
- beq _08106880
- cmp r1, 0x1
- bgt _08106848
- cmp r1, 0
- beq _0810684E
- b _081068E6
- .align 2, 0
-_08106844: .4byte gUnknown_03000750
-_08106848:
- cmp r1, 0x2
- beq _081068C0
- b _081068E6
-_0810684E:
- ldr r0, _08106874 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810685E
- movs r0, 0x1
- strb r0, [r3]
-_0810685E:
- ldr r0, _08106878 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _0810687C @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0
- beq _081068E6
- subs r0, 0x1
- b _081068E4
- .align 2, 0
-_08106874: .4byte gPaletteFade
-_08106878: .4byte gUnknown_03000756
-_0810687C: .4byte gUnknown_03000754
-_08106880:
- ldr r0, _081068B4 @ =gMain
- ldrh r2, [r0, 0x2E]
- ands r1, r2
- cmp r1, 0
- bne _08106892
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _081068A4
-_08106892:
- movs r0, 0x2
- strb r0, [r3]
- subs r0, 0x3
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081068A4:
- ldr r0, _081068B8 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068BC @ =gUnknown_03000754
- movs r0, 0
- b _081068E4
- .align 2, 0
-_081068B4: .4byte gMain
-_081068B8: .4byte gUnknown_03000756
-_081068BC: .4byte gUnknown_03000754
-_081068C0:
- ldr r0, _081068EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081068D2
- ldr r0, _081068F0 @ =CB2_QuitContestPainting
- bl SetMainCallback2
-_081068D2:
- ldr r0, _081068F4 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068F8 @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0x1D
- bhi _081068E6
- adds r0, 0x1
-_081068E4:
- strh r0, [r1]
-_081068E6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081068EC: .4byte gPaletteFade
-_081068F0: .4byte CB2_QuitContestPainting
-_081068F4: .4byte gUnknown_03000756
-_081068F8: .4byte gUnknown_03000754
- thumb_func_end HoldContestPainting
-
- thumb_func_start ContestPaintingInitWindow
-ContestPaintingInitWindow: @ 81068FC
- push {r4,lr}
- ldr r4, _08106914 @ =gWindowConfig_81E7160
- adds r0, r4, 0
- bl InitMenuWindow
- adds r0, r4, 0
- bl SetUpWindowConfig
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106914: .4byte gWindowConfig_81E7160
- thumb_func_end ContestPaintingInitWindow
-
- thumb_func_start ContestPaintingPrintCaption
-ContestPaintingPrintCaption: @ 8106918
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081069BE
- ldr r2, _08106974 @ =gUnknown_03005E40
- ldr r6, _08106978 @ =gUnknown_03005E8C
- ldr r0, [r6]
- ldrb r0, [r0, 0xA]
- cmp r3, 0x7
- bhi _08106988
- ldr r1, _0810697C @ =gUnknown_083F60AC
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08106980 @ =gContestText_ContestWinner
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0x16
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x16
- strb r0, [r2, 0x1]
- adds r2, 0x2
- ldr r1, _08106984 @ =gOtherText_Unknown1
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- movs r1, 0x6
- b _081069AE
- .align 2, 0
-_08106974: .4byte gUnknown_03005E40
-_08106978: .4byte gUnknown_03005E8C
-_0810697C: .4byte gUnknown_083F60AC
-_08106980: .4byte gContestText_ContestWinner
-_08106984: .4byte gOtherText_Unknown1
-_08106988:
- ldr r4, _081069C4 @ =gUnknown_083F60C0
- lsls r5, r0, 3
- adds r0, r5, r4
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- adds r2, r0, 0
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- bl StringCopy
- movs r1, 0x3
-_081069AE:
- movs r2, 0xE
- ldr r0, _081069C8 @ =gUnknown_03005E40
- lsls r1, 3
- adds r1, 0x1
- lsls r2, 3
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_081069BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081069C4: .4byte gUnknown_083F60C0
-_081069C8: .4byte gUnknown_03005E40
- thumb_func_end ContestPaintingPrintCaption
-
- thumb_func_start ContestPaintingInitBG
-ContestPaintingInitBG: @ 81069CC
- movs r0, 0x80
- lsls r0, 19
- movs r3, 0
- strh r3, [r0]
- ldr r2, _081069FC @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08106A00 @ =REG_BG0CNT
- ldr r2, _08106A04 @ =0x00000c42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08106A08 @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106A0C @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- bx lr
- .align 2, 0
-_081069FC: .4byte 0x04000200
-_08106A00: .4byte REG_BG0CNT
-_08106A04: .4byte 0x00000c42
-_08106A08: .4byte 0x00000a45
-_08106A0C: .4byte REG_BLDCNT
- thumb_func_end ContestPaintingInitBG
-
- thumb_func_start ContestPaintingInitVars
-ContestPaintingInitVars: @ 8106A10
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08106A34
- ldr r0, _08106A28 @ =gUnknown_03000756
- strb r1, [r0]
- ldr r0, _08106A2C @ =gUnknown_03000752
- strh r1, [r0]
- ldr r0, _08106A30 @ =gUnknown_03000754
- strh r1, [r0]
- b _08106A46
- .align 2, 0
-_08106A28: .4byte gUnknown_03000756
-_08106A2C: .4byte gUnknown_03000752
-_08106A30: .4byte gUnknown_03000754
-_08106A34:
- ldr r1, _08106A4C @ =gUnknown_03000756
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08106A50 @ =gUnknown_03000752
- movs r0, 0xF
- strh r0, [r1]
- ldr r1, _08106A54 @ =gUnknown_03000754
- movs r0, 0x1E
- strh r0, [r1]
-_08106A46:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A4C: .4byte gUnknown_03000756
-_08106A50: .4byte gUnknown_03000752
-_08106A54: .4byte gUnknown_03000754
- thumb_func_end ContestPaintingInitVars
-
- thumb_func_start ContestPaintingMosaic
-ContestPaintingMosaic: @ 8106A58
- push {lr}
- ldr r0, _08106A68 @ =gUnknown_03000756
- ldrb r1, [r0]
- cmp r1, 0
- bne _08106A70
- ldr r0, _08106A6C @ =REG_MOSAIC
- strh r1, [r0]
- b _08106A92
- .align 2, 0
-_08106A68: .4byte gUnknown_03000756
-_08106A6C: .4byte REG_MOSAIC
-_08106A70:
- ldr r1, _08106A98 @ =REG_BG1CNT
- ldr r2, _08106A9C @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _08106AA0 @ =gUnknown_03000752
- ldr r0, _08106AA4 @ =gUnknown_03000754
- ldrh r1, [r0]
- lsrs r1, 1
- strh r1, [r2]
- ldr r3, _08106AA8 @ =REG_MOSAIC
- lsls r0, r1, 12
- lsls r2, r1, 8
- orrs r0, r2
- lsls r2, r1, 4
- orrs r0, r2
- orrs r0, r1
- strh r0, [r3]
-_08106A92:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A98: .4byte REG_BG1CNT
-_08106A9C: .4byte 0x00000a45
-_08106AA0: .4byte gUnknown_03000752
-_08106AA4: .4byte gUnknown_03000754
-_08106AA8: .4byte REG_MOSAIC
- thumb_func_end ContestPaintingMosaic
-
- thumb_func_start VBlankCB_ContestPainting
-VBlankCB_ContestPainting: @ 8106AAC
- push {lr}
- bl ContestPaintingMosaic
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_ContestPainting
-
- thumb_func_start sub_8106AC4
-sub_8106AC4: @ 8106AC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _08106B28 @ =gUnknown_03005E8C
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- ldr r2, [r0]
- adds r0, r6, 0
- bl species_and_otid_get_pal
- ldr r1, _08106B2C @ =gUnknown_03005E90
- mov r8, r1
- ldr r1, [r1]
- bl LZDecompressVram
- cmp r4, 0
- bne _08106B40
- lsls r0, r6, 3
- ldr r1, _08106B30 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08106B34 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B38 @ =gUnknown_081FAF4C
- ldr r5, [r4, 0x4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r2, r8
- ldr r1, [r2]
- ldr r0, _08106B3C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
- b _08106B74
- .align 2, 0
-_08106B28: .4byte gUnknown_03005E8C
-_08106B2C: .4byte gUnknown_03005E90
-_08106B30: .4byte gMonFrontPicTable
-_08106B34: .4byte gMonFrontPicCoords
-_08106B38: .4byte gUnknown_081FAF4C
-_08106B3C: .4byte gUnknown_03005E10
-_08106B40:
- lsls r0, r6, 3
- ldr r1, _08106B80 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08106B84 @ =gMonBackPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B88 @ =gUnknown_081FAF4C
- ldr r5, [r4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _08106B8C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
-_08106B74:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106B80: .4byte gMonBackPicTable
-_08106B84: .4byte gMonBackPicCoords
-_08106B88: .4byte gUnknown_081FAF4C
-_08106B8C: .4byte gUnknown_03005E10
- thumb_func_end sub_8106AC4
-
- thumb_func_start sub_8106B90
-sub_8106B90: @ 8106B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r10, r0
- mov r9, r1
- str r2, [sp]
- movs r0, 0
-_08106BA4:
- movs r3, 0
- adds r1, r0, 0x1
- str r1, [sp, 0x4]
- lsls r0, 3
- str r0, [sp, 0x8]
-_08106BAE:
- movs r1, 0
- adds r2, r3, 0x1
- mov r8, r2
- ldr r7, [sp, 0x8]
- adds r0, r7, r3
- lsls r0, 5
- mov r12, r0
- lsls r4, r3, 3
-_08106BBE:
- movs r3, 0
- lsls r0, r1, 2
- adds r6, r1, 0x1
- mov r2, r12
- adds r5, r2, r0
- ldr r7, [sp, 0x8]
- adds r0, r7, r1
- lsls r0, 7
- ldr r1, [sp]
- adds r2, r0, r1
-_08106BD2:
- lsrs r0, r3, 1
- adds r0, r5, r0
- add r0, r10
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08106BE6
- lsrs r1, 4
- b _08106BEA
-_08106BE6:
- movs r0, 0xF
- ands r1, r0
-_08106BEA:
- cmp r1, 0
- bne _08106BFC
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- movs r7, 0x80
- lsls r7, 8
- adds r1, r7, 0
- b _08106C08
-_08106BFC:
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
-_08106C08:
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BD2
- lsls r0, r6, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _08106BBE
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BAE
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _08106BA4
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8106B90
-
- thumb_func_start sub_8106C40
-sub_8106C40: @ 8106C40
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08106C7C @ =gPictureFramePalettes
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- cmp r4, 0x1
- beq _08106C5E
- b _08106DB4
-_08106C5E:
- ldr r0, _08106C80 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106D1C
- lsls r0, 2
- ldr r1, _08106C84 @ =_08106C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106C7C: .4byte gPictureFramePalettes
-_08106C80: .4byte gUnknown_03005E8C
-_08106C84: .4byte _08106C88
- .align 2, 0
-_08106C88:
- .4byte _08106C9C
- .4byte _08106CB4
- .4byte _08106CCC
- .4byte _08106CE4
- .4byte _08106D08
-_08106C9C:
- ldr r0, _08106CAC @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CB0 @ =gPictureFrameTilemap_0
- b _08106CF0
- .align 2, 0
-_08106CAC: .4byte gPictureFrameTiles_0
-_08106CB0: .4byte gPictureFrameTilemap_0
-_08106CB4:
- ldr r0, _08106CC4 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CC8 @ =gPictureFrameTilemap_1
- b _08106CF0
- .align 2, 0
-_08106CC4: .4byte gPictureFrameTiles_1
-_08106CC8: .4byte gPictureFrameTilemap_1
-_08106CCC:
- ldr r0, _08106CDC @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CE0 @ =gPictureFrameTilemap_2
- b _08106CF0
- .align 2, 0
-_08106CDC: .4byte gPictureFrameTiles_2
-_08106CE0: .4byte gPictureFrameTilemap_2
-_08106CE4:
- ldr r0, _08106CFC @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D00 @ =gPictureFrameTilemap_3
-_08106CF0:
- ldr r1, _08106D04 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
- b _08106D1C
- .align 2, 0
-_08106CFC: .4byte gPictureFrameTiles_3
-_08106D00: .4byte gPictureFrameTilemap_3
-_08106D04: .4byte gUnknown_03005E10
-_08106D08:
- ldr r0, _08106D98 @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D9C @ =gPictureFrameTilemap_4
- ldr r1, _08106DA0 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
-_08106D1C:
- movs r1, 0
- ldr r5, _08106DA4 @ =0x06006000
- ldr r0, _08106DA8 @ =0x00001015
- adds r4, r0, 0
-_08106D24:
- movs r3, 0
- lsls r2, r1, 5
-_08106D28:
- adds r0, r2, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08106D28
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _08106D24
- movs r1, 0
- ldr r0, _08106DAC @ =0x0600608c
- mov r12, r0
- ldr r7, _08106DA0 @ =gUnknown_03005E10
-_08106D4C:
- movs r3, 0
- adds r6, r1, 0x1
- lsls r5, r1, 5
- lsls r4, r1, 6
-_08106D54:
- adds r2, r5, r3
- lsls r2, 1
- add r2, r12
- ldr r0, [r7]
- adds r0, r4, r0
- lsls r1, r3, 1
- adds r0, r1
- adds r0, 0x8C
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x11
- bls _08106D54
- lsls r0, r6, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- bls _08106D4C
- movs r3, 0
- ldr r4, _08106DB0 @ =0x0600608e
- ldr r2, _08106DA0 @ =gUnknown_03005E10
-_08106D80:
- lsls r1, r3, 1
- adds r1, r4
- ldr r0, [r2]
- adds r0, 0x8E
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _08106D80
- b _08106E86
- .align 2, 0
-_08106D98: .4byte gPictureFrameTiles_4
-_08106D9C: .4byte gPictureFrameTilemap_4
-_08106DA0: .4byte gUnknown_03005E10
-_08106DA4: .4byte 0x06006000
-_08106DA8: .4byte 0x00001015
-_08106DAC: .4byte 0x0600608c
-_08106DB0: .4byte 0x0600608e
-_08106DB4:
- cmp r5, 0x7
- bhi _08106DD0
- ldr r0, _08106DC8 @ =gPictureFrameTiles_5
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106DCC @ =gPictureFrameTilemap_5
- b _08106E60
- .align 2, 0
-_08106DC8: .4byte gPictureFrameTiles_5
-_08106DCC: .4byte gPictureFrameTilemap_5
-_08106DD0:
- ldr r0, _08106DF0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106E86
- lsls r0, 2
- ldr r1, _08106DF4 @ =_08106DF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106DF0: .4byte gUnknown_03005E8C
-_08106DF4: .4byte _08106DF8
- .align 2, 0
-_08106DF8:
- .4byte _08106E0C
- .4byte _08106E24
- .4byte _08106E3C
- .4byte _08106E54
- .4byte _08106E74
-_08106E0C:
- ldr r0, _08106E1C @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E20 @ =gPictureFrameTilemap_0
- b _08106E60
- .align 2, 0
-_08106E1C: .4byte gPictureFrameTiles_0
-_08106E20: .4byte gPictureFrameTilemap_0
-_08106E24:
- ldr r0, _08106E34 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E38 @ =gPictureFrameTilemap_1
- b _08106E60
- .align 2, 0
-_08106E34: .4byte gPictureFrameTiles_1
-_08106E38: .4byte gPictureFrameTilemap_1
-_08106E3C:
- ldr r0, _08106E4C @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E50 @ =gPictureFrameTilemap_2
- b _08106E60
- .align 2, 0
-_08106E4C: .4byte gPictureFrameTiles_2
-_08106E50: .4byte gPictureFrameTilemap_2
-_08106E54:
- ldr r0, _08106E68 @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E6C @ =gPictureFrameTilemap_3
-_08106E60:
- ldr r1, _08106E70 @ =0x06006000
- bl RLUnCompVram
- b _08106E86
- .align 2, 0
-_08106E68: .4byte gPictureFrameTiles_3
-_08106E6C: .4byte gPictureFrameTilemap_3
-_08106E70: .4byte 0x06006000
-_08106E74:
- ldr r0, _08106E8C @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E90 @ =gPictureFrameTilemap_4
- ldr r1, _08106E94 @ =0x06006000
- bl RLUnCompVram
-_08106E86:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106E8C: .4byte gPictureFrameTiles_4
-_08106E90: .4byte gPictureFrameTilemap_4
-_08106E94: .4byte 0x06006000
- thumb_func_end sub_8106C40
-
- thumb_func_start sub_8106E98
-sub_8106E98: @ 8106E98
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08106ED0 @ =gMain
- ldr r1, _08106ED4 @ =gOamData_83F6138
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r4, 0x3C]
- str r2, [r4, 0x40]
- adds r3, r4, 0
- adds r3, 0x40
- ldrh r2, [r3]
- ldr r1, _08106ED8 @ =0xfffffc00
- ands r1, r2
- strh r1, [r3]
- ldrh r1, [r4, 0x3E]
- ldr r0, _08106EDC @ =0xfffffe00
- ands r0, r1
- movs r1, 0x58
- orrs r0, r1
- strh r0, [r4, 0x3E]
- adds r1, r4, 0
- adds r1, 0x3C
- movs r0, 0x18
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106ED0: .4byte gMain
-_08106ED4: .4byte gOamData_83F6138
-_08106ED8: .4byte 0xfffffc00
-_08106EDC: .4byte 0xfffffe00
- thumb_func_end sub_8106E98
-
- thumb_func_start sub_8106EE0
-sub_8106EE0: @ 8106EE0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _08106EF8
- ldr r0, _08106EF4 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- b _08106F08
- .align 2, 0
-_08106EF4: .4byte gUnknown_03005E8C
-_08106EF8:
- ldr r0, _08106F18 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
-_08106F08:
- cmp r0, 0x4
- bhi _08106F46
- lsls r0, 2
- ldr r1, _08106F1C @ =_08106F20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106F18: .4byte gUnknown_03005E8C
-_08106F1C: .4byte _08106F20
- .align 2, 0
-_08106F20:
- .4byte _08106F34
- .4byte _08106F38
- .4byte _08106F3C
- .4byte _08106F40
- .4byte _08106F44
-_08106F34:
- movs r0, 0x9
- b _08106F46
-_08106F38:
- movs r0, 0xD
- b _08106F46
-_08106F3C:
- movs r0, 0x2
- b _08106F46
-_08106F40:
- movs r0, 0x24
- b _08106F46
-_08106F44:
- movs r0, 0x6
-_08106F46:
- pop {r1}
- bx r1
- thumb_func_end sub_8106EE0
-
- thumb_func_start sub_8106F4C
-sub_8106F4C: @ 8106F4C
- ldr r0, _08106F5C @ =gUnknown_03005E90
- ldr r1, _08106F60 @ =0x02017e00
- str r1, [r0]
- ldr r0, _08106F64 @ =gUnknown_03005E10
- ldr r2, _08106F68 @ =0xffffe000
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_08106F5C: .4byte gUnknown_03005E90
-_08106F60: .4byte 0x02017e00
-_08106F64: .4byte gUnknown_03005E10
-_08106F68: .4byte 0xffffe000
- thumb_func_end sub_8106F4C
-
- thumb_func_start sub_8106F6C
-sub_8106F6C: @ 8106F6C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08106FAC @ =gUnknown_03005E20
- ldr r0, _08106FB0 @ =gUnknown_03005E10
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r0, _08106FB4 @ =gUnknown_03005E90
- ldr r0, [r0]
- str r0, [r1, 0x8]
- movs r2, 0
- strb r2, [r1, 0x18]
- ldr r0, _08106FB8 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0]
- strb r0, [r1, 0x1F]
- strb r2, [r1, 0x19]
- strb r2, [r1, 0x1A]
- movs r0, 0x40
- strb r0, [r1, 0x1B]
- strb r0, [r1, 0x1C]
- strb r0, [r1, 0x1D]
- strb r0, [r1, 0x1E]
- subs r0, r3, 0x2
- adds r4, r1, 0
- cmp r0, 0x22
- bhi _08107050
- lsls r0, 2
- ldr r1, _08106FBC @ =_08106FC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106FAC: .4byte gUnknown_03005E20
-_08106FB0: .4byte gUnknown_03005E10
-_08106FB4: .4byte gUnknown_03005E90
-_08106FB8: .4byte gUnknown_03005E8C
-_08106FBC: .4byte _08106FC0
- .align 2, 0
-_08106FC0:
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
-_0810704C:
- movs r0, 0x3
- b _08107052
-_08107050:
- movs r0, 0x1
-_08107052:
- strh r0, [r4, 0x14]
- movs r0, 0x2
- strh r0, [r4, 0x16]
- strb r3, [r4]
- ldr r0, _08107088 @ =0x06010000
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80FC7A0
- adds r0, r4, 0
- bl sub_80FDA18
- adds r0, r4, 0
- bl sub_80FD8CC
- ldr r0, _0810708C @ =gUnknown_03005E90
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x80
- lsls r2, 2
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08107088: .4byte 0x06010000
-_0810708C: .4byte gUnknown_03005E90
- thumb_func_end sub_8106F6C
-
- thumb_func_start sub_8107090
-sub_8107090: @ 8107090
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- bl sub_8106F4C
- ldr r0, _081070D0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrh r0, [r0, 0x8]
- movs r1, 0
- bl sub_8106AC4
- adds r0, r4, 0
- bl sub_8106EE0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8106F6C
- adds r0, r4, 0
- bl sub_8106E98
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8106C40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081070D0: .4byte gUnknown_03005E8C
- thumb_func_end sub_8107090
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/credits.s b/asm/credits.s
new file mode 100644
index 000000000..4c6f9d5d8
--- /dev/null
+++ b/asm/credits.s
@@ -0,0 +1,2713 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8144514
+sub_8144514: @ 8144514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _08144548 @ =0x0201c000
+ ldr r3, _0814454C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r2, r0, r3
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08144550
+ cmp r0, 0x1
+ bgt _0814453C
+ b _08144658
+_0814453C:
+ cmp r0, 0x2
+ beq _08144584
+ cmp r0, 0x3
+ bne _08144546
+ b _08144644
+_08144546:
+ b _08144658
+ .align 2, 0
+_08144548: .4byte 0x0201c000
+_0814454C: .4byte gTasks
+_08144550:
+ adds r0, r6, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0814456E
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08144658
+_0814456E:
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ b _08144656
+_08144584:
+ adds r0, r6, 0
+ adds r0, 0x88
+ ldrh r1, [r0]
+ mov r9, r0
+ cmp r1, 0x44
+ beq _08144658
+ movs r4, 0xA
+ ldrsh r1, [r2, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r0]
+ ldr r0, _081445EC @ =sub_8143B68
+ cmp r1, r0
+ bne _08144658
+ adds r7, r6, 0
+ adds r7, 0x8C
+ ldrh r0, [r7]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ ldr r4, _081445F0 @ =gUnknown_0840CA00
+ adds r5, r6, 0
+ adds r5, 0x8A
+ ldrh r3, [r5]
+ lsls r2, r3, 1
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ adds r4, 0x1
+ adds r2, r4
+ ldrb r2, [r2]
+ bl sub_81456B4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrh r1, [r7]
+ adds r0, r6, 0
+ adds r0, 0x8E
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081445F8
+ adds r0, r1, 0x1
+ strh r0, [r7]
+ ldr r1, _081445F4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x32
+ b _0814460A
+ .align 2, 0
+_081445EC: .4byte sub_8143B68
+_081445F0: .4byte gUnknown_0840CA00
+_081445F4: .4byte gSprites
+_081445F8:
+ movs r0, 0
+ strh r0, [r7]
+ ldr r1, _08144620 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+_0814460A:
+ strh r1, [r0, 0x34]
+ mov r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r5]
+ cmp r0, 0x2
+ bne _08144624
+ movs r0, 0
+ b _08144626
+ .align 2, 0
+_08144620: .4byte gSprites
+_08144624:
+ adds r0, 0x1
+_08144626:
+ strh r0, [r5]
+ ldr r0, _08144640 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x32
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08144658
+ .align 2, 0
+_08144640: .4byte gTasks
+_08144644:
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08144654
+ subs r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ b _08144658
+_08144654:
+ movs r0, 0x1
+_08144656:
+ strh r0, [r2, 0x8]
+_08144658:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144514
+
+ thumb_func_start sub_8144664
+sub_8144664: @ 8144664
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0814468C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0x32
+ bls _08144680
+ b _0814492C
+_08144680:
+ lsls r0, 2
+ ldr r1, _08144690 @ =_08144694
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814468C: .4byte gTasks
+_08144690: .4byte _08144694
+ .align 2, 0
+_08144694:
+ .4byte _08144760
+ .4byte _08144784
+ .4byte _081447D8
+ .4byte _081447F0
+ .4byte _0814482C
+ .4byte _08144850
+ .4byte _0814489C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448A8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448C8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448EC
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _08144920
+_08144760:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ ldr r1, _08144780 @ =gUnknown_0203935A
+ strh r0, [r1]
+ b _081447A8
+ .align 2, 0
+_08144780: .4byte gUnknown_0203935A
+_08144784:
+ ldr r7, _081447B0 @ =gUnknown_0203935A
+ movs r3, 0
+ ldrsh r4, [r7, r3]
+ cmp r4, 0
+ beq _081447B4
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r7]
+_081447A8:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _0814492C
+ .align 2, 0
+_081447B0: .4byte gUnknown_0203935A
+_081447B4:
+ ldr r3, _081447D4 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ strh r2, [r0, 0x2E]
+ strh r4, [r1, 0x12]
+ b _08144848
+ .align 2, 0
+_081447D4: .4byte gSprites
+_081447D8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x3F
+ bgt _08144848
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x12]
+ b _08144866
+_081447F0:
+ ldr r3, _08144828 @ =gSprites
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ movs r0, 0x78
+ strh r0, [r2, 0x10]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144828: .4byte gSprites
+_0814482C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08144844
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ b _0814492C
+_08144844:
+ movs r0, 0x40
+ strh r0, [r1, 0x12]
+_08144848:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0814492C
+_08144850:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _0814487C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+_08144866:
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0x14
+ bl Sin
+ ldr r1, _08144878 @ =gUnknown_0203935A
+ strh r0, [r1]
+ b _0814492C
+ .align 2, 0
+_08144878: .4byte gUnknown_0203935A
+_0814487C:
+ ldr r2, _08144898 @ =gSprites
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144898: .4byte gSprites
+_0814489C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x32
+ b _0814492A
+_081448A8:
+ ldr r3, _081448C4 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xE
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ b _081448E0
+ .align 2, 0
+_081448C4: .4byte gSprites
+_081448C8:
+ ldr r3, _081448E8 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x4
+_081448E0:
+ strh r2, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r1, 0x8]
+ b _0814492C
+ .align 2, 0
+_081448E8: .4byte gSprites
+_081448EC:
+ ldr r3, _0814491C @ =gSprites
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_0814491C: .4byte gSprites
+_08144920:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+_0814492A:
+ strh r1, [r0, 0x8]
+_0814492C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144664
+
+ thumb_func_start sub_8144934
+sub_8144934: @ 8144934
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08144958 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _08144974
+ lsls r0, 2
+ ldr r1, _0814495C @ =_08144960
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144958: .4byte gTasks
+_0814495C: .4byte _08144960
+ .align 2, 0
+_08144960:
+ .4byte _08144974
+ .4byte _081449B8
+ .4byte _081449C4
+ .4byte _08144A0C
+ .4byte _08144A5C
+_08144974:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ ldr r5, _081449C0 @ =0x00007fff
+ cmp r0, r5
+ beq _081449B8
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _081449B8
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x14
+ strh r0, [r1, 0x8]
+ strh r5, [r2, 0xA]
+_081449B8:
+ movs r0, 0
+ bl sub_8149020
+ b _08144A62
+ .align 2, 0
+_081449C0: .4byte 0x00007fff
+_081449C4:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ ldr r5, _08144A08 @ =0x00007fff
+ cmp r0, r5
+ beq _08144A54
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r1, [r3, 0x12]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ cmp r0, r1
+ bne _08144A54
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A08: .4byte 0x00007fff
+_08144A0C:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ ldrh r3, [r2, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ ldr r5, _08144A48 @ =0x00007fff
+ cmp r1, r5
+ beq _08144A54
+ ldr r0, _08144A4C @ =0x000001f3
+ cmp r1, r0
+ bne _08144A50
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A48: .4byte 0x00007fff
+_08144A4C: .4byte 0x000001f3
+_08144A50:
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xA]
+_08144A54:
+ movs r0, 0x1
+ bl sub_8149020
+ b _08144A62
+_08144A5C:
+ movs r0, 0x2
+ bl sub_8149020
+_08144A62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144934
+
+ thumb_func_start sub_8144A68
+sub_8144A68: @ 8144A68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r0, 0x4
+ bls _08144A7E
+ b _08144DFC
+_08144A7E:
+ lsls r0, 2
+ ldr r1, _08144A88 @ =_08144A8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144A88: .4byte _08144A8C
+ .align 2, 0
+_08144A8C:
+ .4byte _08144AA0
+ .4byte _08144B48
+ .4byte _08144BF4
+ .4byte _08144CA0
+ .4byte _08144D50
+_08144AA0:
+ ldr r5, _08144B40 @ =gSprites
+ ldr r0, _08144B44 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r2, 0x88
+ lsls r2, 1
+ strh r2, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144B40: .4byte gSprites
+_08144B44: .4byte gTasks
+_08144B48:
+ ldr r5, _08144BEC @ =gSprites
+ ldr r0, _08144BF0 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144BEC: .4byte gSprites
+_08144BF0: .4byte gTasks
+_08144BF4:
+ ldr r5, _08144C98 @ =gSprites
+ ldr r0, _08144C9C @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144C98: .4byte gSprites
+_08144C9C: .4byte gTasks
+_08144CA0:
+ ldr r5, _08144D44 @ =gSprites
+ ldr r0, _08144D48 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08144D4C @ =0x0000ffe0
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144D44: .4byte gSprites
+_08144D48: .4byte gTasks
+_08144D4C: .4byte 0x0000ffe0
+_08144D50:
+ ldr r5, _08144EBC @ =gSprites
+ ldr r0, _08144EC0 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x58
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x98
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x2
+_08144DF0:
+ movs r3, 0x8
+ bl sub_8148EC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+_08144DFC:
+ ldr r0, _08144EC4 @ =sub_8144934
+ movs r1, 0
+ bl CreateTask
+ ldr r6, _08144EC0 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r5, r1, r6
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ strh r0, [r5, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0xA]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xC]
+ ldr r0, _08144EC8 @ =sub_8144664
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x8]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x12]
+ strh r1, [r0, 0xC]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x14]
+ strh r1, [r0, 0xE]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x10]
+ mov r1, r8
+ cmp r1, 0x2
+ bne _08144EB0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0x45
+ strh r0, [r1, 0x12]
+_08144EB0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144EBC: .4byte gSprites
+_08144EC0: .4byte gTasks
+_08144EC4: .4byte sub_8144934
+_08144EC8: .4byte sub_8144664
+ thumb_func_end sub_8144A68
+
+ thumb_func_start sub_8144ECC
+sub_8144ECC: @ 8144ECC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _08144F28 @ =gMain
+ ldr r1, _08144F2C @ =0x0000043c
+ adds r6, r0, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08144F38
+ cmp r0, 0x1
+ ble _08144EF0
+ cmp r0, 0x2
+ beq _08144F5C
+ cmp r0, 0x3
+ bne _08144EF0
+ b _0814508C
+_08144EF0:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08144F30 @ =REG_BG3HOFS
+ movs r0, 0x8
+ strh r0, [r2]
+ ldr r0, _08144F34 @ =REG_BG3VOFS
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x3A
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F28: .4byte gMain
+_08144F2C: .4byte 0x0000043c
+_08144F30: .4byte REG_BG3HOFS
+_08144F34: .4byte REG_BG3VOFS
+_08144F38:
+ ldr r1, _08144F54 @ =gUnknown_02039358
+ movs r0, 0x22
+ strh r0, [r1]
+ ldr r1, _08144F58 @ =gUnknown_0203935A
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8148CB0
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F54: .4byte gUnknown_02039358
+_08144F58: .4byte gUnknown_0203935A
+_08144F5C:
+ ldr r0, _08144FBC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08144FE0
+ ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC4 @ =gUnknown_08416E34
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FCC @ =gIntro2SpritePalettes
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl intro_create_brendan_sprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08144FD0 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08144FD4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08144FD8 @ =sub_8145378
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08144FDC @ =gUnknown_0840CA54
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl intro_create_may_sprite
+ b _08145034
+ .align 2, 0
+_08144FBC: .4byte gSaveBlock2
+_08144FC0: .4byte gIntro2BrendanSpriteSheet
+_08144FC4: .4byte gUnknown_08416E34
+_08144FC8: .4byte gIntro2BicycleSpriteSheet
+_08144FCC: .4byte gIntro2SpritePalettes
+_08144FD0: .4byte gTasks
+_08144FD4: .4byte gSprites
+_08144FD8: .4byte sub_8145378
+_08144FDC: .4byte gUnknown_0840CA54
+_08144FE0:
+ ldr r0, _0814505C @ =gIntro2MaySpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08145060 @ =gUnknown_08416E24
+ bl LoadCompressedObjectPic
+ ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08145068 @ =gIntro2SpritePalettes
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl intro_create_may_sprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0814506C @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08145070 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08145074 @ =sub_8145378
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08145078 @ =gUnknown_0840CA54
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl intro_create_brendan_sprite
+_08145034:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r4, 0x14]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r5
+ ldr r1, _0814507C @ =sub_8145420
+ str r1, [r5]
+ adds r0, r6
+ ldr r1, _08145080 @ =gUnknown_0840CA94
+ str r1, [r0]
+ ldr r1, _08145084 @ =gMain
+ ldr r0, _08145088 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081450A2
+ .align 2, 0
+_0814505C: .4byte gIntro2MaySpriteSheet
+_08145060: .4byte gUnknown_08416E24
+_08145064: .4byte gIntro2BicycleSpriteSheet
+_08145068: .4byte gIntro2SpritePalettes
+_0814506C: .4byte gTasks
+_08145070: .4byte gSprites
+_08145074: .4byte sub_8145378
+_08145078: .4byte gUnknown_0840CA54
+_0814507C: .4byte sub_8145420
+_08145080: .4byte gUnknown_0840CA94
+_08145084: .4byte gMain
+_08145088: .4byte 0x0000043c
+_0814508C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8144A68
+ adds r0, r4, 0
+ bl sub_8148E90
+ movs r0, 0
+ strb r0, [r6]
+ movs r0, 0x1
+ b _081450A4
+_081450A2:
+ movs r0, 0
+_081450A4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8144ECC
+
+ thumb_func_start sub_81450AC
+sub_81450AC: @ 81450AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08145120 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450D2
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_081450D2:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450E8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_081450E8:
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450FE
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_081450FE:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08145114
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_08145114:
+ ldr r1, _08145124 @ =gUnknown_0203935C
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145120: .4byte gTasks
+_08145124: .4byte gUnknown_0203935C
+ thumb_func_end sub_81450AC
+
+ thumb_func_start sub_8145128
+sub_8145128: @ 8145128
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r4, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r4, 16
+ lsrs r5, r4, 16
+ ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx
+ movs r6, 0xC0
+ lsls r6, 19
+ adds r3, r6
+ adds r1, r3, 0
+ bl LZ77UnCompVram
+ ldr r0, _081451F0 @ =gIntroCopyright_Pal
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ lsrs r4, 20
+ lsls r4, 28
+ lsrs r4, 16
+ movs r2, 0
+ adds r1, r4, 0x1
+ ldr r3, _081451F4 @ =0x000003ff
+_0814515E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r6
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _0814515E
+ movs r2, 0
+ adds r0, r4, 0x2
+ adds r6, r4, 0
+ adds r6, 0x17
+ movs r1, 0x2B
+ adds r1, r4
+ mov r12, r1
+ adds r4, 0x42
+ ldr r5, _081451F8 @ =0x060001c8
+ adds r3, r0, 0
+_08145184:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x14
+ bls _08145184
+ movs r2, 0
+ ldr r5, _081451FC @ =0x06000248
+ adds r3, r6, 0
+_0814519E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x13
+ bls _0814519E
+ movs r2, 0
+ ldr r5, _08145200 @ =0x060002c8
+ mov r3, r12
+_081451B8:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x16
+ bls _081451B8
+ movs r2, 0
+ ldr r3, _08145204 @ =0x06000348
+_081451D0:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r3
+ adds r1, r2, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xB
+ bls _081451D0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081451EC: .4byte gCreditsCopyrightEnd_Gfx
+_081451F0: .4byte gIntroCopyright_Pal
+_081451F4: .4byte 0x000003ff
+_081451F8: .4byte 0x060001c8
+_081451FC: .4byte 0x06000248
+_08145200: .4byte 0x060002c8
+_08145204: .4byte 0x06000348
+ thumb_func_end sub_8145128
+
+ thumb_func_start sub_8145208
+sub_8145208: @ 8145208
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ movs r0, 0x3F
+ ands r0, r2
+ adds r1, r0, 0
+ adds r1, 0x50
+ cmp r2, 0xFF
+ bne _08145220
+ movs r0, 0x1
+ b _08145246
+_08145220:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08145230
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r1, r0
+_08145230:
+ movs r0, 0x40
+ ands r3, r0
+ cmp r3, 0
+ beq _08145244
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+_08145244:
+ adds r0, r1, 0
+_08145246:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8145208
+
+ thumb_func_start sub_814524C
+sub_814524C: @ 814524C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x8]
+ lsls r0, 16
+ lsrs r0, 20
+ lsls r0, 28
+ lsrs r0, 16
+ mov r9, r0
+ movs r5, 0
+_0814527A:
+ movs r4, 0
+ lsls r7, r5, 1
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r5
+ adds r2, r5, 0x1
+ mov r8, r2
+ lsls r0, 6
+ ldr r1, [sp, 0x8]
+ adds r6, r0, r1
+_0814528C:
+ adds r0, r7, r5
+ adds r0, r4
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl sub_8145208
+ mov r2, r10
+ adds r1, r2, r4
+ lsls r1, 1
+ adds r1, r6
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ add r0, r9
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0814528C
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0814527A
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814524C
+
+ thumb_func_start sub_81452D0
+sub_81452D0: @ 81452D0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsrs r1, 20
+ lsls r1, 28
+ lsrs r1, 16
+ movs r2, 0
+ ldr r7, _08145360 @ =gUnknown_0840B83C
+ movs r4, 0xC0
+ lsls r4, 19
+ adds r1, 0x1
+ ldr r3, _08145364 @ =0x000003ff
+_081452EE:
+ lsls r0, r2, 1
+ adds r0, r5
+ adds r0, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _081452EE
+ str r6, [sp]
+ adds r0, r7, 0
+ movs r1, 0x3
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145368 @ =gUnknown_0840B84B
+ str r6, [sp]
+ movs r1, 0x7
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r4, _0814536C @ =gUnknown_0840B85A
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145370 @ =gUnknown_0840B869
+ str r6, [sp]
+ movs r1, 0x14
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145374 @ =gUnknown_0840B878
+ str r6, [sp]
+ movs r1, 0x18
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145360: .4byte gUnknown_0840B83C
+_08145364: .4byte 0x000003ff
+_08145368: .4byte gUnknown_0840B84B
+_0814536C: .4byte gUnknown_0840B85A
+_08145370: .4byte gUnknown_0840B869
+_08145374: .4byte gUnknown_0840B878
+ thumb_func_end sub_81452D0
+
+ thumb_func_start sub_8145378
+sub_8145378: @ 8145378
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145390 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08145394
+ adds r0, r4, 0
+ bl DestroySprite
+ b _08145418
+ .align 2, 0
+_08145390: .4byte gUnknown_0203935C
+_08145394:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _08145418
+ lsls r0, 2
+ ldr r1, _081453A8 @ =_081453AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081453A8: .4byte _081453AC
+ .align 2, 0
+_081453AC:
+ .4byte _081453C4
+ .4byte _081453CE
+ .4byte _081453D4
+ .4byte _081453DE
+ .4byte _081453E8
+ .4byte _081453FE
+_081453C4:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453CE:
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _08145402
+_081453D4:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453DE:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453E8:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ ble _08145418
+ subs r0, r1, 0x1
+ b _08145416
+_081453FE:
+ adds r0, r4, 0
+ movs r1, 0
+_08145402:
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145418
+ subs r0, r2, 0x1
+_08145416:
+ strh r0, [r4, 0x20]
+_08145418:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145378
+
+ thumb_func_start sub_8145420
+sub_8145420: @ 8145420
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145438 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814543C
+ adds r0, r4, 0
+ bl DestroySprite
+ b _081454D8
+ .align 2, 0
+_08145438: .4byte gUnknown_0203935C
+_0814543C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08145464
+ cmp r0, 0x1
+ bgt _0814544E
+ cmp r0, 0
+ beq _08145458
+ b _081454D8
+_0814544E:
+ cmp r0, 0x2
+ beq _081454A0
+ cmp r0, 0x3
+ beq _081454BE
+ b _081454D8
+_08145458:
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _081454D8
+_08145464:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC8
+ ble _08145476
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ b _0814547E
+_08145476:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+_0814547E:
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145490
+ subs r0, r2, 0x2
+ strh r0, [r4, 0x20]
+_08145490:
+ ldr r0, _0814549C @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ b _081454D8
+ .align 2, 0
+_0814549C: .4byte gUnknown_0203935A
+_081454A0:
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081454D8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ b _081454D6
+_081454BE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _081454D8
+ subs r0, r2, 0x1
+_081454D6:
+ strh r0, [r4, 0x20]
+_081454D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145420
+
+ thumb_func_start sub_81454E0
+sub_81454E0: @ 81454E0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, _081454F8 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _081454FC
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081456A6
+ .align 2, 0
+_081454F8: .4byte gUnknown_0203935C
+_081454FC:
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xA
+ bhi _08145544
+ lsls r0, 2
+ ldr r1, _08145514 @ =_08145518
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08145514: .4byte _08145518
+ .align 2, 0
+_08145518:
+ .4byte _08145544
+ .4byte _0814559E
+ .4byte _08145620
+ .4byte _08145660
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145696
+_08145544:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ movs r0, 0x10
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 9
+ movs r1, 0x10
+ bl __divsi3
+ adds r1, r0, 0
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_0814559E:
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ bgt _081455D4
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ movs r0, 0x80
+ lsls r0, 9
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _081455DA
+_081455D4:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_081455DA:
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ cmp r1, 0x2
+ beq _081456A6
+ cmp r1, 0x2
+ bgt _081455EC
+ cmp r1, 0x1
+ beq _081455F2
+ b _081456A6
+_081455EC:
+ cmp r1, 0x3
+ beq _0814560A
+ b _081456A6
+_081455F2:
+ ldrh r1, [r5, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08145602
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145602:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_0814560A:
+ ldrh r0, [r5, 0x3C]
+ ands r1, r0
+ cmp r1, 0
+ bne _08145618
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145618:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_08145620:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145630
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x34]
+ b _081456A6
+_08145630:
+ ldr r1, _0814565C @ =REG_BLDCNT
+ movs r2, 0xF4
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+ .align 2, 0
+_0814565C: .4byte REG_BLDCNT
+_08145660:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145684
+ subs r1, 0x1
+ strh r1, [r5, 0x34]
+ ldr r3, _08145680 @ =REG_BLDALPHA
+ movs r0, 0x34
+ ldrsh r2, [r5, r0]
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r0
+ strh r1, [r3]
+ b _081456A6
+ .align 2, 0
+_08145680: .4byte REG_BLDALPHA
+_08145684:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_08145696:
+ ldr r0, _081456B0 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl DestroySprite
+_081456A6:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081456B0: .4byte REG_BLDCNT
+ thumb_func_end sub_81454E0
+
+ thumb_func_start sub_81456B4
+sub_81456B4: @ 81456B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x10]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ adds r0, r6, 0
+ bl NationalPokedexNumToSpecies
+ adds r6, r0, 0
+ cmp r6, 0xC9
+ beq _081456F8
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r6, r0
+ beq _081456EE
+ movs r7, 0
+ b _081456FC
+_081456EE:
+ ldr r0, _081456F4 @ =gSaveBlock2
+ ldr r7, [r0, 0x20]
+ b _081456FC
+ .align 2, 0
+_081456F4: .4byte gSaveBlock2
+_081456F8:
+ ldr r0, _081457E8 @ =gSaveBlock2
+ ldr r7, [r0, 0x1C]
+_081456FC:
+ lsls r0, r6, 3
+ ldr r1, _081457EC @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _081457F0 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _081457F4 @ =gUnknown_0840B5A0
+ mov r8, r4
+ mov r5, r9
+ lsls r4, r5, 2
+ add r4, r8
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl LoadSpecialPokePic
+ ldr r2, _081457F8 @ =0x0000ffff
+ adds r0, r6, 0
+ movs r1, 0
+ bl species_and_otid_get_pal
+ lsls r5, 4
+ mov r8, r5
+ movs r1, 0x80
+ lsls r1, 1
+ add r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r7, r9
+ lsls r6, r7, 24
+ lsrs r6, 24
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_8143648
+ ldr r0, _081457FC @ =gUnknown_02024E8C
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldr r3, [sp, 0x10]
+ lsls r2, r3, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08145800 @ =gSprites
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r3, r2, r5
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ mov r7, r8
+ orrs r0, r7
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ mov r0, r9
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r8, r0
+ ldrb r0, [r0]
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r2, r0
+ ldr r0, _08145804 @ =sub_81454E0
+ str r0, [r2]
+ ldr r0, _08145808 @ =gSpriteTemplate_840CAEC
+ movs r2, 0x20
+ ldrsh r1, [r3, r2]
+ movs r7, 0x22
+ ldrsh r2, [r3, r7]
+ movs r3, 0x1
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r4, [r0, 0x2E]
+ adds r1, r6, 0
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 0
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081457E8: .4byte gSaveBlock2
+_081457EC: .4byte gMonFrontPicTable
+_081457F0: .4byte gMonFrontPicCoords
+_081457F4: .4byte gUnknown_0840B5A0
+_081457F8: .4byte 0x0000ffff
+_081457FC: .4byte gUnknown_02024E8C
+_08145800: .4byte gSprites
+_08145804: .4byte sub_81454E0
+_08145808: .4byte gSpriteTemplate_840CAEC
+ thumb_func_end sub_81456B4
+
+ thumb_func_start sub_814580C
+sub_814580C: @ 814580C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _08145838 @ =gSprites
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ beq _08145830
+ ldr r0, _0814583C @ =gUnknown_0203935C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _08145840
+_08145830:
+ adds r0, r3, 0
+ bl DestroySprite
+ b _081458D4
+ .align 2, 0
+_08145838: .4byte gSprites
+_0814583C: .4byte gUnknown_0203935C
+_08145840:
+ adds r0, r1, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xC
+ ands r0, r1
+ ldrb r2, [r3, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r2, 0x4
+ negs r2, r2
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ movs r1, 0x3E
+ ands r1, r0
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r3, 0x20]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r3, 0x22]
+_081458D4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814580C
+
+ thumb_func_start sub_81458DC
+sub_81458DC: @ 81458DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r7, _0814597C @ =0x0201c000
+ ldr r0, _08145980 @ =0x00004023
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetStarterPokemon
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r4, 0x1
+ movs r5, 0
+ ldr r0, _08145984 @ =0x00000181
+ mov r8, r0
+_0814590E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ adds r6, r7, 0
+ adds r6, 0x90
+ cmp r0, 0
+ beq _0814592C
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ strh r4, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0814592C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bls _0814590E
+ adds r4, r5, 0
+ ldr r0, _08145984 @ =0x00000181
+ lsls r1, r4, 16
+ mov r9, r1
+ movs r2, 0x8E
+ adds r2, r7
+ mov r8, r2
+ adds r1, r7, 0
+ adds r1, 0x86
+ str r1, [sp]
+ cmp r4, r0
+ bhi _08145964
+ adds r1, r6, 0
+ movs r3, 0
+ adds r2, r0, 0
+_08145954:
+ lsls r0, r4, 1
+ adds r0, r1, r0
+ strh r3, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bls _08145954
+_08145964:
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r0, r7, r2
+ strh r5, [r0]
+ mov r1, r9
+ lsrs r0, r1, 16
+ cmp r0, 0x43
+ bhi _08145988
+ mov r2, r8
+ strh r5, [r2]
+ b _0814598E
+ .align 2, 0
+_0814597C: .4byte 0x0201c000
+_08145980: .4byte 0x00004023
+_08145984: .4byte 0x00000181
+_08145988:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+_0814598E:
+ movs r5, 0
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r4, r7, r2
+ mov r9, r5
+ b _0814599E
+_0814599A:
+ cmp r5, 0x43
+ bhi _081459EE
+_0814599E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r9
+ strh r0, [r3]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ beq _081459E8
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ mov r1, r9
+ strh r1, [r0]
+_081459E8:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0814599A
+_081459EE:
+ mov r2, r8
+ ldrh r0, [r2]
+ cmp r0, 0x43
+ bhi _08145A26
+ adds r5, r0, 0
+ movs r2, 0
+ cmp r5, 0x43
+ bhi _08145A5C
+ mov r3, r8
+_08145A00:
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r3]
+ cmp r2, r0
+ bne _08145A1A
+ movs r2, 0
+_08145A1A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x43
+ bls _08145A00
+ b _08145A5C
+_08145A26:
+ movs r4, 0
+ ldrh r0, [r7]
+ cmp r0, r10
+ beq _08145A42
+_08145A2E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ cmp r0, r10
+ beq _08145A42
+ cmp r4, 0x43
+ bls _08145A2E
+_08145A42:
+ mov r1, r8
+ ldrh r0, [r1]
+ subs r0, 0x1
+ cmp r4, r0
+ bge _08145A5C
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ strh r1, [r0]
+ mov r0, r10
+ strh r0, [r2]
+ b _08145A62
+_08145A5C:
+ mov r2, r10
+ ldr r1, [sp]
+ strh r2, [r1]
+_08145A62:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81458DC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/daycare.s b/asm/daycare.s
index 68cae0daf..d78757d8f 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -6,70 +6,6 @@
.text
- thumb_func_start pokemon_get_nick
-pokemon_get_nick: @ 80412B0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick
-
- thumb_func_start pokemon_get_nick_
-pokemon_get_nick_: @ 80412D0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetBoxMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick_
-
- thumb_func_start daycare_count_pokemon
-daycare_count_pokemon: @ 80412F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_080412F8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041310
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08041310:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080412F8
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end daycare_count_pokemon
-
thumb_func_start sub_8041324
sub_8041324: @ 8041324
push {r4-r7,lr}
@@ -194,7 +130,7 @@ sub_80413C8: @ 80413C8
bl StringCopy
adds r0, r6, 0
movs r1, 0xFC
- bl sub_814A518
+ bl PadNameString
adds r6, 0x8
adds r0, r7, 0
adds r1, r6, 0
diff --git a/asm/decoration.s b/asm/decoration.s
index c507b599d..221c749c5 100644
--- a/asm/decoration.s
+++ b/asm/decoration.s
@@ -764,60 +764,7 @@ sub_80FE7D4: @ 80FE7D4
_080FE7E8: .4byte gUnknown_083EC5E4
thumb_func_end sub_80FE7D4
- thumb_func_start sub_80FE7EC
-sub_80FE7EC: @ 80FE7EC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FEC94
- ldr r0, _080FE858 @ =gUnknown_020388F6
- ldrb r0, [r0]
- bl sub_80FECB8
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r4, _080FE85C @ =gUnknown_020388F2
- ldr r0, _080FE860 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- ldr r0, _080FE864 @ =gUnknown_020388F3
- ldrb r3, [r0]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE858: .4byte gUnknown_020388F6
-_080FE85C: .4byte gUnknown_020388F2
-_080FE860: .4byte gUnknown_020388F4
-_080FE864: .4byte gUnknown_020388F3
- thumb_func_end sub_80FE7EC
+ .section .text_80FE868
thumb_func_start sub_80FE868
sub_80FE868: @ 80FE868
@@ -6003,7 +5950,7 @@ _0810104C:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_8057238
+ bl MetatileBehavior_IsSecretBasePC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index e98a76c8c..a0e80e057 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -11563,7 +11563,7 @@ _080EB9C4: .4byte 0x0000ffff
thumb_func_start sub_80EB9C8
sub_80EB9C8: @ 80EB9C8
push {lr}
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
lsls r0, 24
lsrs r0, 24
pop {r1}
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index b8dae1bba..95737cae6 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -304,7 +304,7 @@ _08042B08:
adds r1, r6, 0
bl StringCopy
adds r0, r4, 0
- bl sub_814A568
+ bl SanitizeNameString
movs r0, 0x1
b _08042B42
.align 2, 0
@@ -409,7 +409,7 @@ _08042BB4:
str r5, [sp, 0x4]
mov r4, r8
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r7, 0
bl sub_8040990
bl LoadCompressedObjectPalette
diff --git a/asm/rom_8148B8C.s b/asm/evolution_graphics.s
index 6ed24195f..1130e085e 100644
--- a/asm/rom_8148B8C.s
+++ b/asm/evolution_graphics.s
@@ -6,1163 +6,6 @@
.text
- thumb_func_start load_intro_part2_graphics
-load_intro_part2_graphics: @ 8148B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148BE8 @ =gUnknown_0841225C
- ldr r1, _08148BEC @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148BF0 @ =gUnknown_084126DC
- ldr r1, _08148BF4 @ =0x06007800
- bl LZ77UnCompVram
- ldr r0, _08148BF8 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- cmp r4, 0
- beq _08148BB4
- cmp r4, 0x1
- beq _08148C14
-_08148BB4:
- ldr r0, _08148BFC @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C00 @ =gUnknown_08412EB4
- ldr r1, _08148C04 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C08 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148C0C @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148C10 @ =gUnknown_08413184
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148C46
- .align 2, 0
-_08148BE8: .4byte gUnknown_0841225C
-_08148BEC: .4byte 0x06004000
-_08148BF0: .4byte gUnknown_084126DC
-_08148BF4: .4byte 0x06007800
-_08148BF8: .4byte gUnknown_084121FC
-_08148BFC: .4byte gUnknown_084128D8
-_08148C00: .4byte gUnknown_08412EB4
-_08148C04: .4byte 0x06003000
-_08148C08: .4byte gUnknown_08412818
-_08148C0C: .4byte gUnknown_08416B54
-_08148C10: .4byte gUnknown_08413184
-_08148C14:
- ldr r0, _08148C58 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C5C @ =gUnknown_084139C8
- ldr r1, _08148C60 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C64 @ =gUnknown_08413300
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148C68 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- ldr r0, _08148C6C @ =gUnknown_08413CCC
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
-_08148C46:
- ldr r1, _08148C70 @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08148C74 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148C58: .4byte gUnknown_08413340
-_08148C5C: .4byte gUnknown_084139C8
-_08148C60: .4byte 0x06003000
-_08148C64: .4byte gUnknown_08413300
-_08148C68: .4byte gUnknown_08416BDC
-_08148C6C: .4byte gUnknown_08413CCC
-_08148C70: .4byte gUnknown_0203935C
-_08148C74: .4byte gReservedSpritePaletteCount
- thumb_func_end load_intro_part2_graphics
-
- thumb_func_start sub_8148C78
-sub_8148C78: @ 8148C78
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08148CA4 @ =REG_BG3CNT
- ldr r2, _08148CA8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148CAC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xF2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08148CA4: .4byte REG_BG3CNT
-_08148CA8: .4byte 0x00000603
-_08148CAC: .4byte 0x00000f05
- thumb_func_end sub_8148C78
-
- thumb_func_start sub_8148CB0
-sub_8148CB0: @ 8148CB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148CD4 @ =gUnknown_0841225C
- ldr r1, _08148CD8 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148CDC @ =gUnknown_084126DC
- ldr r1, _08148CE0 @ =0x06007800
- bl LZ77UnCompVram
- cmp r4, 0x4
- bhi _08148CFC
- lsls r0, r4, 2
- ldr r1, _08148CE4 @ =_08148CE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148CD4: .4byte gUnknown_0841225C
-_08148CD8: .4byte 0x06004000
-_08148CDC: .4byte gUnknown_084126DC
-_08148CE0: .4byte 0x06007800
-_08148CE4: .4byte _08148CE8
- .align 2, 0
-_08148CE8:
- .4byte _08148CFC
- .4byte _08148D58
- .4byte _08148DC4
- .4byte _08148DC4
- .4byte _08148E1C
-_08148CFC:
- ldr r0, _08148D34 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148D38 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148D3C @ =gUnknown_08412EB4
- ldr r1, _08148D40 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148D44 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148D48 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148D4C @ =gUnknown_084131C4
- ldr r1, _08148D50 @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148D54 @ =gUnknown_08413184
- b _08148D8E
- .align 2, 0
-_08148D34: .4byte gUnknown_084121FC
-_08148D38: .4byte gUnknown_084128D8
-_08148D3C: .4byte gUnknown_08412EB4
-_08148D40: .4byte 0x06003000
-_08148D44: .4byte gUnknown_08412818
-_08148D48: .4byte gUnknown_08416B54
-_08148D4C: .4byte gUnknown_084131C4
-_08148D50: .4byte 0x06010000
-_08148D54: .4byte gUnknown_08413184
-_08148D58:
- ldr r0, _08148DA0 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148DA4 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148DA8 @ =gUnknown_08412EB4
- ldr r1, _08148DAC @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148DB0 @ =gUnknown_08412878
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148DB4 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148DB8 @ =gUnknown_084131C4
- ldr r1, _08148DBC @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148DC0 @ =gUnknown_084131A4
-_08148D8E:
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148E58
- .align 2, 0
-_08148DA0: .4byte gUnknown_0841221C
-_08148DA4: .4byte gUnknown_084128D8
-_08148DA8: .4byte gUnknown_08412EB4
-_08148DAC: .4byte 0x06003000
-_08148DB0: .4byte gUnknown_08412878
-_08148DB4: .4byte gUnknown_08416B54
-_08148DB8: .4byte gUnknown_084131C4
-_08148DBC: .4byte 0x06010000
-_08148DC0: .4byte gUnknown_084131A4
-_08148DC4:
- ldr r0, _08148E04 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E08 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E0C @ =gUnknown_084139C8
- ldr r1, _08148E10 @ =0x06003000
- bl LZ77UnCompVram
- ldr r4, _08148E14 @ =gUnknown_08413320
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E18 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
- b _08148E58
- .align 2, 0
-_08148E04: .4byte gUnknown_0841221C
-_08148E08: .4byte gUnknown_08413340
-_08148E0C: .4byte gUnknown_084139C8
-_08148E10: .4byte 0x06003000
-_08148E14: .4byte gUnknown_08413320
-_08148E18: .4byte gUnknown_08416BDC
-_08148E1C:
- ldr r0, _08148E6C @ =gUnknown_0841223C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E70 @ =gUnknown_08413E78
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E74 @ =gUnknown_08414084
- ldr r1, _08148E78 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148E7C @ =gUnknown_08413E38
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08148E80 @ =gUnknown_08416C70
- bl LoadCompressedObjectPic
- ldr r0, _08148E84 @ =gUnknown_08414064
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149280
-_08148E58:
- ldr r1, _08148E88 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r1, _08148E8C @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148E6C: .4byte gUnknown_0841223C
-_08148E70: .4byte gUnknown_08413E78
-_08148E74: .4byte gUnknown_08414084
-_08148E78: .4byte 0x06003000
-_08148E7C: .4byte gUnknown_08413E38
-_08148E80: .4byte gUnknown_08416C70
-_08148E84: .4byte gUnknown_08414064
-_08148E88: .4byte gReservedSpritePaletteCount
-_08148E8C: .4byte gUnknown_0203935C
- thumb_func_end sub_8148CB0
-
- thumb_func_start sub_8148E90
-sub_8148E90: @ 8148E90
- ldr r1, _08148EB4 @ =REG_BG3CNT
- ldr r2, _08148EB8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148EBC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08148EB4: .4byte REG_BG3CNT
-_08148EB8: .4byte 0x00000603
-_08148EBC: .4byte 0x00000f05
- thumb_func_end sub_8148E90
-
- thumb_func_start sub_8148EC0
-sub_8148EC0: @ 8148EC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- ldr r1, _08148F34 @ =sub_8148F3C
- mov r9, r1
- mov r0, r9
- movs r1, 0
- str r3, [sp]
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08148F38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r3, [sp]
- strh r3, [r0, 0x16]
- movs r1, 0x8
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r4, 0
- bl _call_via_r9
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08148F34: .4byte sub_8148F3C
-_08148F38: .4byte gTasks
- thumb_func_end sub_8148EC0
-
- thumb_func_start sub_8148F3C
-sub_8148F3C: @ 8148F3C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08148FB4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- lsls r4, r0, 16
- adds r6, r1, 0
- cmp r4, 0
- beq _08148F7C
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0xE]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0xC]
- strh r2, [r3, 0xE]
- ldr r0, _08148FB8 @ =REG_BG1HOFS
- strh r1, [r0]
- ldr r2, _08148FBC @ =REG_BG1VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
-_08148F7C:
- ldrh r0, [r3, 0x10]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08148FD8
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x14]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- ldr r0, _08148FC8 @ =REG_BG2HOFS
- strh r1, [r0]
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08148FD0
- ldr r2, _08148FCC @ =REG_BG2VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
- b _08148FD8
- .align 2, 0
-_08148FB4: .4byte gTasks
-_08148FB8: .4byte REG_BG1HOFS
-_08148FBC: .4byte REG_BG1VOFS
-_08148FC0: .4byte gUnknown_02039358
-_08148FC4: .4byte gUnknown_0203935A
-_08148FC8: .4byte REG_BG2HOFS
-_08148FCC: .4byte REG_BG2VOFS
-_08148FD0:
- ldr r0, _08149010 @ =REG_BG2VOFS
- ldr r1, _08149014 @ =gUnknown_02039358
- ldrh r1, [r1]
- strh r1, [r0]
-_08148FD8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r6
- ldrh r0, [r3, 0x16]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08149008
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x1A]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x18]
- strh r2, [r3, 0x1A]
- ldr r0, _08149018 @ =REG_BG3HOFS
- strh r1, [r0]
- ldr r1, _0814901C @ =REG_BG3VOFS
- ldr r0, _08149014 @ =gUnknown_02039358
- ldrh r0, [r0]
- strh r0, [r1]
-_08149008:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149010: .4byte REG_BG2VOFS
-_08149014: .4byte gUnknown_02039358
-_08149018: .4byte REG_BG3HOFS
-_0814901C: .4byte REG_BG3VOFS
- thumb_func_end sub_8148F3C
-
- thumb_func_start sub_8149020
-sub_8149020: @ 8149020
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08149100
- cmp r0, 0x1
- ble _08149034
- cmp r0, 0x2
- beq _08149098
-_08149034:
- ldr r0, _08149060 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _08149064 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _0814906C
- ldr r2, _08149068 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x12]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x14]
- b _08149076
- .align 2, 0
-_08149060: .4byte gMain
-_08149064: .4byte gPaletteFade
-_08149068: .4byte gPlttBufferUnfaded
-_0814906C:
- ldr r2, _08149094 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x14]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x12]
-_08149076:
- adds r0, 0x2
- strh r1, [r0]
- adds r4, r0, 0
- mov r0, sp
- movs r1, 0x9
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- bl LoadPalette
- b _08149100
- .align 2, 0
-_08149094: .4byte gPlttBufferUnfaded
-_08149098:
- ldr r0, _081490C8 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _081490CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081490D8
- mov r1, sp
- ldr r2, _081490D0 @ =0x00003d27
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081490D4 @ =0x00000295
- b _081490E6
- .align 2, 0
-_081490C8: .4byte gMain
-_081490CC: .4byte gPaletteFade
-_081490D0: .4byte 0x00003d27
-_081490D4: .4byte 0x00000295
-_081490D8:
- mov r1, sp
- movs r2, 0xC7
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08149108 @ =0x00003d27
-_081490E6:
- adds r0, r2, 0
- strh r0, [r1]
- adds r4, r1, 0
- mov r0, sp
- movs r1, 0xC
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x2
- bl LoadPalette
-_08149100:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149108: .4byte 0x00003d27
- thumb_func_end sub_8149020
-
- thumb_func_start sub_814910C
-sub_814910C: @ 814910C
- push {lr}
- adds r2, r0, 0
- ldr r0, _08149124 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08149128
- adds r0, r2, 0
- bl DestroySprite
- b _0814916C
- .align 2, 0
-_08149124: .4byte gUnknown_0203935C
-_08149128:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 16
- ldrh r1, [r2, 0x32]
- orrs r0, r1
- ldrh r1, [r2, 0x30]
- adds r0, r1
- asrs r1, r0, 16
- strh r1, [r2, 0x20]
- strh r0, [r2, 0x32]
- cmp r1, 0xFF
- ble _08149144
- ldr r0, _08149158 @ =0x0000ffe0
- strh r0, [r2, 0x20]
-_08149144:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08149164
- ldr r1, _0814915C @ =gUnknown_02039358
- ldr r0, _08149160 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- b _08149168
- .align 2, 0
-_08149158: .4byte 0x0000ffe0
-_0814915C: .4byte gUnknown_02039358
-_08149160: .4byte gUnknown_0203935A
-_08149164:
- ldr r0, _08149170 @ =gUnknown_02039358
- ldrh r0, [r0]
-_08149168:
- negs r0, r0
- strh r0, [r2, 0x26]
-_0814916C:
- pop {r0}
- bx r0
- .align 2, 0
-_08149170: .4byte gUnknown_02039358
- thumb_func_end sub_814910C
-
- thumb_func_start sub_8149174
-sub_8149174: @ 8149174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r7, 0
- cmp r7, r8
- bcs _0814922A
- ldr r0, _0814923C @ =gSprites
- mov r10, r0
- movs r2, 0x3F
- mov r9, r2
-_0814919E:
- lsls r6, r7, 3
- ldr r0, [sp, 0x4]
- adds r6, r0
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrb r3, [r6, 0x3]
- ldr r0, _08149240 @ =gSpriteTemplate_8416B3C
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r2, r10
- adds r4, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 26
- lsrs r1, 30
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
- ldrb r3, [r4, 0x5]
- movs r0, 0xC
- orrs r3, r0
- strb r3, [r4, 0x5]
- ldrb r1, [r6]
- lsls r1, 26
- lsrs r1, 30
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xF
- ands r3, r0
- strb r3, [r4, 0x5]
- ldr r0, _08149244 @ =gSprites + 0x8
- adds r5, r0
- ldr r2, [sp, 0x8]
- str r2, [r5]
- ldrb r1, [r6]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, r8
- bcc _0814919E
-_0814922A:
- 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
-_0814923C: .4byte gSprites
-_08149240: .4byte gSpriteTemplate_8416B3C
-_08149244: .4byte gSprites + 0x8
- thumb_func_end sub_8149174
-
- thumb_func_start sub_8149248
-sub_8149248: @ 8149248
- push {lr}
- ldr r1, _0814925C @ =gUnknown_08416B94
- ldr r2, _08149260 @ =gSpriteAnimTable_8416B84
- movs r0, 0
- movs r3, 0x9
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_0814925C: .4byte gUnknown_08416B94
-_08149260: .4byte gSpriteAnimTable_8416B84
- thumb_func_end sub_8149248
-
- thumb_func_start sub_8149264
-sub_8149264: @ 8149264
- push {lr}
- ldr r1, _08149278 @ =gUnknown_08416C10
- ldr r2, _0814927C @ =gSpriteAnimTable_8416C04
- movs r0, 0x1
- movs r3, 0xC
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149278: .4byte gUnknown_08416C10
-_0814927C: .4byte gSpriteAnimTable_8416C04
- thumb_func_end sub_8149264
-
- thumb_func_start sub_8149280
-sub_8149280: @ 8149280
- push {lr}
- ldr r1, _08149294 @ =gUnknown_08416C8C
- ldr r2, _08149298 @ =gSpriteAnimTable_8416C88
- movs r0, 0x1
- movs r3, 0x6
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149294: .4byte gUnknown_08416C8C
-_08149298: .4byte gSpriteAnimTable_8416C88
- thumb_func_end sub_8149280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 814929C
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_81492A0
-sub_81492A0: @ 81492A0
- push {r4,lr}
- ldr r4, _0814930C @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814930C: .4byte gSprites
- thumb_func_end sub_81492A0
-
- thumb_func_start sub_8149310
-sub_8149310: @ 8149310
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _0814935C @ =gSpriteTemplate_8416CDC
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08149360 @ =gSpriteTemplate_8416D2C
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149364 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814935C: .4byte gSpriteTemplate_8416CDC
-_08149360: .4byte gSpriteTemplate_8416D2C
-_08149364: .4byte gSprites
- thumb_func_end sub_8149310
-
- thumb_func_start sub_8149368
-sub_8149368: @ 8149368
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _081493B8 @ =gSpriteTemplate_8416D44
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081493BC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081493B4: .4byte gSpriteTemplate_8416CF4
-_081493B8: .4byte gSpriteTemplate_8416D44
-_081493BC: .4byte gSprites
- thumb_func_end sub_8149368
-
- thumb_func_start nullsub_83
-nullsub_83: @ 81493C0
- bx lr
- thumb_func_end nullsub_83
-
- thumb_func_start sub_81493C4
-sub_81493C4: @ 81493C4
- push {r4,lr}
- ldr r4, _08149420 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149420: .4byte gSprites
- thumb_func_end sub_81493C4
-
- thumb_func_start sub_8149424
-sub_8149424: @ 8149424
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _08149490 @ =gSpriteTemplate_8416D7C
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149494 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149498 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0814949C @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08149490: .4byte gSpriteTemplate_8416D7C
-_08149494: .4byte 0xffe00000
-_08149498: .4byte gSprites
-_0814949C: .4byte sub_81493C4
- thumb_func_end sub_8149424
-
- thumb_func_start sapphire_sub_81494A0
-sapphire_sub_81494A0: @ 81494A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _0814950C @ =gSpriteTemplate_8416D94
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149510 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149514 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _08149518 @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814950C: .4byte gSpriteTemplate_8416D94
-_08149510: .4byte 0xffe00000
-_08149514: .4byte gSprites
-_08149518: .4byte sub_81493C4
- thumb_func_end sapphire_sub_81494A0
-
thumb_func_start nullsub_84
nullsub_84: @ 814951C
bx lr
@@ -2983,385 +1826,4 @@ _0814A2B0: .4byte gSprites
_0814A2B4: .4byte gTasks
thumb_func_end sub_814A208
- thumb_func_start sub_814A2B8
-sub_814A2B8: @ 814A2B8
- ldr r2, _0814A2CC @ =gUnknown_08417068
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 1
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0814A2CC: .4byte gUnknown_08417068
- thumb_func_end sub_814A2B8
-
- thumb_func_start sub_814A2D0
-sub_814A2D0: @ 814A2D0
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0814A2E8 @ =gBardMusicTable
- lsrs r0, 14
- adds r0, r2
- ldr r0, [r0]
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 4
- adds r0, r2
- bx lr
- .align 2, 0
-_0814A2E8: .4byte gBardMusicTable
- thumb_func_end sub_814A2D0
-
- thumb_func_start sub_814A2EC
-sub_814A2EC: @ 814A2EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- ldr r4, _0814A370 @ =gUnknown_084170F4
- adds r2, r1, 0
- adds r3, r6, 0
- adds r3, 0x18
- movs r7, 0x5
-_0814A306:
- ldrb r0, [r2]
- strh r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0814A328
- movs r1, 0x1
- ldrsb r1, [r2, r1]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- adds r1, r0
- strh r1, [r3, 0x2]
- ldrh r0, [r2, 0x4]
- strh r0, [r3, 0x6]
- ldrh r0, [r6, 0x4]
- adds r0, r1
- strh r0, [r6, 0x4]
-_0814A328:
- adds r2, 0x8
- adds r3, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _0814A306
- movs r7, 0x6
- movs r5, 0
- movs r0, 0x1E
- mov r8, r0
- adds r4, r6, 0
-_0814A33C:
- mov r0, r8
- add r0, r9
- adds r1, r5, 0
- bl sub_814A2B8
- adds r1, r0, 0
- strh r1, [r4, 0x1C]
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, r7
- blt _0814A33C
- ldrb r1, [r6]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r6]
- strb r2, [r6, 0x1]
- strb r2, [r6, 0x2]
- strb r2, [r6, 0x3]
- strh r2, [r6, 0xA]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A370: .4byte gUnknown_084170F4
- thumb_func_end sub_814A2EC
-
- thumb_func_start SetUpFieldMove_Teleport
-SetUpFieldMove_Teleport: @ 814A374
- push {lr}
- ldr r0, _0814A38C @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0814A390
- movs r0, 0
- b _0814A39E
- .align 2, 0
-_0814A38C: .4byte gMapHeader
-_0814A390:
- ldr r1, _0814A3A4 @ =gUnknown_0300485C
- ldr r0, _0814A3A8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0814A3AC @ =gUnknown_03005CE4
- ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr
- str r0, [r1]
- movs r0, 0x1
-_0814A39E:
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3A4: .4byte gUnknown_0300485C
-_0814A3A8: .4byte sub_808AB90
-_0814A3AC: .4byte gUnknown_03005CE4
-_0814A3B0: .4byte hm_teleport_run_dp02scr
- thumb_func_end SetUpFieldMove_Teleport
-
- thumb_func_start hm_teleport_run_dp02scr
-hm_teleport_run_dp02scr: @ 814A3B4
- push {lr}
- bl new_game
- movs r0, 0x3F
- bl FieldEffectStart
- ldr r0, _0814A3CC @ =gUnknown_0202FF84
- ldr r1, _0814A3D0 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0814A3CC: .4byte gUnknown_0202FF84
-_0814A3D0: .4byte gUnknown_03005CE0
- thumb_func_end hm_teleport_run_dp02scr
-
- thumb_func_start FldEff_UseTeleport
-FldEff_UseTeleport: @ 814A3D4
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A3FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0814A400 @ =sub_814A404
- 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
-_0814A3FC: .4byte gTasks
-_0814A400: .4byte sub_814A404
- thumb_func_end FldEff_UseTeleport
-
- thumb_func_start sub_814A404
-sub_814A404: @ 814A404
- push {lr}
- movs r0, 0x3F
- bl FieldEffectActiveListRemove
- bl sub_8087BA8
- pop {r0}
- bx r0
- thumb_func_end sub_814A404
-
- thumb_func_start unref_sub_814A414
-unref_sub_814A414: @ 814A414
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _0814A458 @ =gUnknown_0842C29C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x8
- bl InitMenu
- ldr r1, _0814A45C @ =gCallback_03004AE8
- ldr r0, _0814A460 @ =sub_814A464
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_0814A458: .4byte gUnknown_0842C29C
-_0814A45C: .4byte gCallback_03004AE8
-_0814A460: .4byte sub_814A464
- thumb_func_end unref_sub_814A414
-
- thumb_func_start sub_814A464
-sub_814A464: @ 814A464
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _0814A480
- movs r0, 0
- b _0814A4B2
-_0814A480:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814A4AC
- ldr r0, _0814A4A0 @ =gUnknown_02024D1E
- strb r2, [r0]
- ldr r2, _0814A4A4 @ =gCallback_03004AE8
- ldr r0, _0814A4A8 @ =gUnknown_0842C29C
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _0814A4B2
- .align 2, 0
-_0814A4A0: .4byte gUnknown_02024D1E
-_0814A4A4: .4byte gCallback_03004AE8
-_0814A4A8: .4byte gUnknown_0842C29C
-_0814A4AC:
- bl sub_8071C20
- movs r0, 0x1
-_0814A4B2:
- pop {r1}
- bx r1
- thumb_func_end sub_814A464
-
- thumb_func_start sub_814A4B8
-sub_814A4B8: @ 814A4B8
- push {r4,lr}
- ldr r2, _0814A4FC @ =gSaveBlock2
- ldr r1, _0814A500 @ =0x00000556
- adds r0, r2, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r3, _0814A504 @ =0x00000557
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _0814A508 @ =gUnknown_02024D1E
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r4, _0814A50C @ =0x0000055c
- adds r1, r2, r4
- strh r0, [r1]
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r3, _0814A510 @ =0x0000055e
- adds r1, r2, r3
- strh r0, [r1]
- subs r4, 0x4
- adds r0, r2, r4
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _0814A514 @ =0x0000055a
- adds r2, r0
- strh r1, [r2]
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A4FC: .4byte gSaveBlock2
-_0814A500: .4byte 0x00000556
-_0814A504: .4byte 0x00000557
-_0814A508: .4byte gUnknown_02024D1E
-_0814A50C: .4byte 0x0000055c
-_0814A510: .4byte 0x0000055e
-_0814A514: .4byte 0x0000055a
- thumb_func_end sub_814A4B8
-
- thumb_func_start sub_814A518
-sub_814A518: @ 814A518
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl StripExtCtrlCodes
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0xFC
- bne _0814A556
- cmp r1, 0x5
- bhi _0814A55A
- movs r3, 0xFC
- movs r2, 0x7
-_0814A53A:
- adds r0, r4, r1
- strb r3, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _0814A53A
- b _0814A55A
-_0814A54C:
- adds r0, r4, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_0814A556:
- cmp r1, 0x5
- bls _0814A54C
-_0814A55A:
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A518
-
- thumb_func_start sub_814A568
-sub_814A568: @ 814A568
- push {r4,lr}
- adds r4, r0, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _0814A582
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _0814A588
-_0814A582:
- adds r0, r4, 0
- bl StripExtCtrlCodes
-_0814A588:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814A568
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 9d009f567..6ecd355c3 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -201,7 +201,7 @@ EvolutionScene: @ 8111984
ldr r0, _08111C3C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
- ldr r1, _08111C40 @ =gUnknown_0300428C
+ ldr r1, _08111C40 @ =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
@@ -435,7 +435,7 @@ _08111C30: .4byte gUnknown_03004280
_08111C34: .4byte gUnknown_030041B0
_08111C38: .4byte gUnknown_030041B8
_08111C3C: .4byte gUnknown_03004210
-_08111C40: .4byte gUnknown_0300428C
+_08111C40: .4byte gBattleTerrain
_08111C44: .4byte gReservedSpritePaletteCount
_08111C48: .4byte gStringVar1
_08111C4C: .4byte gStringVar2
@@ -540,7 +540,7 @@ CB2_EvolutionSceneLoadGraphics: @ 8111C90
ldr r0, _08111E4C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
- ldr r1, _08111E50 @ =gUnknown_0300428C
+ ldr r1, _08111E50 @ =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
@@ -647,7 +647,7 @@ _08111E40: .4byte gUnknown_03004280
_08111E44: .4byte gUnknown_030041B0
_08111E48: .4byte gUnknown_030041B8
_08111E4C: .4byte gUnknown_03004210
-_08111E50: .4byte gUnknown_0300428C
+_08111E50: .4byte gBattleTerrain
_08111E54: .4byte gReservedSpritePaletteCount
_08111E58: .4byte gMonFrontPicTable
_08111E5C: .4byte gMonFrontPicCoords
@@ -1747,7 +1747,7 @@ _081127BE:
movs r1, 0x3
bl sub_8090D90
movs r0, 0xE
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08112FD0
.align 2, 0
_08112834: .4byte gPaletteFade
@@ -3055,7 +3055,7 @@ _08113316:
movs r1, 0x3
bl sub_8090D90
movs r0, 0xE
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08113B3A
.align 2, 0
_08113390: .4byte gPaletteFade
diff --git a/asm/rom_8065394.s b/asm/field_control_avatar.s
index fd88d6ece..e2fd1b54f 100644
--- a/asm/rom_8065394.s
+++ b/asm/field_control_avatar.s
@@ -50,7 +50,7 @@ process_overworld_input: @ 8067F18
bl cur_mapdata_block_role_at_player_pos
lsls r0, 24
lsrs r0, 24
- bl sub_8056FFC
+ bl MetatileBehavior_IsMoveTile
lsls r0, 24
lsrs r7, r0, 24
cmp r6, 0x2
@@ -222,7 +222,7 @@ _08068076:
cmp r0, 0
beq _08068098
movs r0, 0x5
- bl sav12_xor_increment
+ bl IncrementGameStat
mov r0, sp
adds r1, r4, 0
adds r2, r6, 0
@@ -829,7 +829,7 @@ _08068524:
_08068538: .4byte gUnknown_081A0009
_0806853C:
adds r0, r5, 0
- bl is_tile_x8B
+ bl MetatileBehavior_IsClosedSootpolisGymDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -851,7 +851,7 @@ _08068554:
_08068568: .4byte gUnknown_081A4363
_0806856C:
adds r0, r5, 0
- bl is_tile_x87
+ bl MetatileBehavior_IsPokeblockFeeder
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -862,7 +862,7 @@ _0806856C:
_08068580: .4byte gUnknown_081C346A
_08068584:
adds r0, r5, 0
- bl is_tile_x8C
+ bl MetatileBehavior_IsTrickHousePuzzleDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -873,7 +873,7 @@ _08068584:
_08068598: .4byte gUnknown_081616E1
_0806859C:
adds r0, r5, 0
- bl is_tile_x85
+ bl MetatileBehavior_IsRegionMap
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -895,7 +895,7 @@ _080685B4:
_080685C8: .4byte Event_RunningShoesManual
_080685CC:
adds r0, r5, 0
- bl sub_8057930
+ bl MetatileBehavior_IsPictureBookShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -906,7 +906,7 @@ _080685CC:
_080685E0: .4byte PictureBookShelfScript
_080685E4:
adds r0, r5, 0
- bl sub_8057944
+ bl MetatileBehavior_IsBookShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -917,7 +917,7 @@ _080685E4:
_080685F8: .4byte BookshelfScript
_080685FC:
adds r0, r5, 0
- bl sub_8057958
+ bl MetatileBehavior_IsPokeCenterBookShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -928,7 +928,7 @@ _080685FC:
_08068610: .4byte PokemonCenterBookshelfScript
_08068614:
adds r0, r5, 0
- bl sub_805796C
+ bl MetatileBehavior_IsVase
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -939,7 +939,7 @@ _08068614:
_08068628: .4byte VaseScript
_0806862C:
adds r0, r5, 0
- bl sub_8057980
+ bl MetatileBehavior_IsTrashCan
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -950,7 +950,7 @@ _0806862C:
_08068640: .4byte TrashCanScript
_08068644:
adds r0, r5, 0
- bl sub_8057994
+ bl MetatileBehavior_IsShopShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -961,7 +961,7 @@ _08068644:
_08068658: .4byte ShopShelfScript
_0806865C:
adds r0, r5, 0
- bl sub_80579A8
+ bl MetatileBehavior_IsBlueprint
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -983,7 +983,7 @@ _08068674:
cmp r4, r0
bne _080686EC
adds r0, r5, 0
- bl sub_8057238
+ bl MetatileBehavior_IsSecretBasePC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1234,7 +1234,7 @@ sub_8068870: @ 8068870
push {lr}
lsls r0, 24
lsrs r0, 24
- bl sub_8057818
+ bl MetatileBehavior_IsCrackedFloorHole
lsls r0, 24
cmp r0, 0
bne _08068884
@@ -1271,7 +1271,7 @@ _080688B4:
cmp r0, 0
beq _080688CC
movs r0, 0xD
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r0, _080688C8 @ =Event_EggHatch
b _080688E8
.align 2, 0
@@ -1543,7 +1543,7 @@ sub_8068A64: @ 8068A64
_08068ABC: .4byte gMapHeader
_08068AC0:
adds r0, r4, 0
- bl sub_8057798
+ bl MetatileBehavior_IsLavaridgeB1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1553,7 +1553,7 @@ _08068AC0:
b _08068B2A
_08068AD6:
adds r0, r4, 0
- bl is_role_x68
+ bl MetatileBehavior_IsLavaridge1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1573,7 +1573,7 @@ _08068AEC:
b _08068B2A
_08068B02:
adds r0, r4, 0
- bl sub_8057804
+ bl MetatileBehavior_IsMtPyreHole
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1602,7 +1602,7 @@ sub_8068B30: @ 8068B30
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl is_tile_x69_2_warp_door
+ bl MetatileBehavior_IsWarpDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1620,19 +1620,19 @@ sub_8068B30: @ 8068B30
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl sub_8056F08
+ bl MetatileBehavior_IsNonAnimDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl sub_8057798
+ bl MetatileBehavior_IsLavaridgeB1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl is_role_x68
+ bl MetatileBehavior_IsLavaridge1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1644,7 +1644,7 @@ sub_8068B30: @ 8068B30
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl sub_8057804
+ bl MetatileBehavior_IsMtPyreHole
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1820,7 +1820,7 @@ map_warp_consider_2_to_inside: @ 8068CA8
_08068CDC: .4byte gMapHeader
_08068CE0:
adds r0, r4, 0
- bl is_tile_x69_2_warp_door
+ bl MetatileBehavior_IsWarpDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1914,7 +1914,7 @@ trigger_activate: @ 8068D7C
cmp r1, 0
bne _08068D92
ldrb r0, [r4, 0x6]
- bl sub_8069408
+ bl DoCoordEventWeather
b _08068DB2
_08068D92:
ldrh r0, [r4, 0x6]
@@ -2270,248 +2270,4 @@ sub_8068FEC: @ 8068FEC
_0806902C: .4byte gMapHeader
thumb_func_end sub_8068FEC
- thumb_func_start sub_8069030
-sub_8069030: @ 8069030
- push {r4,lr}
- ldr r4, _08069064 @ =gSaveBlock1 + 0x1220
- movs r2, 0x90
- lsls r2, 1
- adds r0, r4, 0
- movs r1, 0
- bl memset
- movs r0, 0x90
- lsls r0, 1
- adds r4, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, 0
- movs r1, 0
- bl memset
- ldr r0, _08069068 @ =gUnknown_0202E8E2
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08069064: .4byte gSaveBlock1 + 0x1220
-_08069068: .4byte gUnknown_0202E8E2
- thumb_func_end sub_8069030
-
- thumb_func_start sub_806906C
-sub_806906C: @ 806906C
- push {lr}
- ldr r0, _080690A0 @ =gSaveBlock1 + 0x1220
- movs r1, 0
- str r1, [r0]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- movs r2, 0x20
- bl memset
- ldr r0, _080690A4 @ =0x0000084d
- bl FlagReset
- ldr r0, _080690A8 @ =0x0000084e
- bl FlagReset
- ldr r0, _080690AC @ =0x00000829
- bl FlagReset
- ldr r0, _080690B0 @ =0x00000861
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690A0: .4byte gSaveBlock1 + 0x1220
-_080690A4: .4byte 0x0000084d
-_080690A8: .4byte 0x0000084e
-_080690AC: .4byte 0x00000829
-_080690B0: .4byte 0x00000861
- thumb_func_end sub_806906C
-
- thumb_func_start sub_80690B4
-sub_80690B4: @ 80690B4
- push {lr}
- ldr r0, _080690C4 @ =gSaveBlock1 + 0x1338
- movs r1, 0
- movs r2, 0x8
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080690C4: .4byte gSaveBlock1 + 0x1338
- thumb_func_end sub_80690B4
-
- thumb_func_start sub_80690C8
-sub_80690C8: @ 80690C8
- push {lr}
- ldr r0, _080690E4 @ =0x00004046
- bl GetVarPointer
- ldr r2, _080690E8 @ =gSaveBlock2
- movs r1, 0
- strb r1, [r2, 0x1A]
- strh r1, [r0]
- ldr r0, _080690EC @ =0x00000836
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690E4: .4byte 0x00004046
-_080690E8: .4byte gSaveBlock2
-_080690EC: .4byte 0x00000836
- thumb_func_end sub_80690C8
-
- thumb_func_start sub_80690F0
-sub_80690F0: @ 80690F0
- push {r4,r5,lr}
- ldr r0, _0806911C @ =0x00004046
- bl GetVarPointer
- ldr r4, _08069120 @ =gSaveBlock2
- movs r5, 0
- movs r1, 0xDA
- strb r1, [r4, 0x1A]
- ldr r2, _08069124 @ =0x00000302
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08069128 @ =0x00000836
- bl FlagSet
- movs r0, 0x1
- strb r0, [r4, 0x19]
- strb r5, [r4, 0x18]
- bl sub_808C0A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806911C: .4byte 0x00004046
-_08069120: .4byte gSaveBlock2
-_08069124: .4byte 0x00000302
-_08069128: .4byte 0x00000836
- thumb_func_end sub_80690F0
-
- thumb_func_start IsNationalPokedex
-IsNationalPokedex: @ 806912C
- push {lr}
- ldr r0, _08069154 @ =gSaveBlock2
- ldrb r0, [r0, 0x1A]
- cmp r0, 0xDA
- bne _08069164
- ldr r0, _08069158 @ =0x00004046
- bl VarGet
- lsls r0, 16
- ldr r1, _0806915C @ =0x03020000
- cmp r0, r1
- bne _08069164
- ldr r0, _08069160 @ =0x00000836
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069164
- movs r0, 0x1
- b _08069166
- .align 2, 0
-_08069154: .4byte gSaveBlock2
-_08069158: .4byte 0x00004046
-_0806915C: .4byte 0x03020000
-_08069160: .4byte 0x00000836
-_08069164:
- movs r0, 0
-_08069166:
- pop {r1}
- bx r1
- thumb_func_end IsNationalPokedex
-
- thumb_func_start unref_sub_806916C
-unref_sub_806916C: @ 806916C
- push {lr}
- ldr r0, _08069178 @ =0x0000084c
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_08069178: .4byte 0x0000084c
- thumb_func_end unref_sub_806916C
-
- thumb_func_start unref_sub_806917C
-unref_sub_806917C: @ 806917C
- push {lr}
- ldr r0, _08069188 @ =0x0000084c
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08069188: .4byte 0x0000084c
- thumb_func_end unref_sub_806917C
-
- thumb_func_start IsMysteryGiftAvailable
-IsMysteryGiftAvailable: @ 806918C
- push {lr}
- ldr r0, _0806919C @ =0x0000084c
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806919C: .4byte 0x0000084c
- thumb_func_end IsMysteryGiftAvailable
-
- thumb_func_start sub_80691A0
-sub_80691A0: @ 80691A0
- push {lr}
- ldr r0, _080691B4 @ =0x0000402c
- movs r1, 0
- bl VarSet
- ldr r0, _080691B8 @ =0x00000862
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080691B4: .4byte 0x0000402c
-_080691B8: .4byte 0x00000862
- thumb_func_end sub_80691A0
-
- thumb_func_start sub_80691BC
-sub_80691BC: @ 80691BC
- push {lr}
- ldr r0, _080691D4 @ =0x0000402c
- movs r1, 0x92
- lsls r1, 4
- bl VarSet
- ldr r0, _080691D8 @ =0x00000862
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080691D4: .4byte 0x0000402c
-_080691D8: .4byte 0x00000862
- thumb_func_end sub_80691BC
-
- thumb_func_start sub_80691DC
-sub_80691DC: @ 80691DC
- push {lr}
- ldr r0, _08069200 @ =0x00000862
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069208
- ldr r0, _08069204 @ =0x0000402c
- bl VarGet
- lsls r0, 16
- movs r1, 0x92
- lsls r1, 20
- cmp r0, r1
- bne _08069208
- movs r0, 0x1
- b _0806920A
- .align 2, 0
-_08069200: .4byte 0x00000862
-_08069204: .4byte 0x0000402c
-_08069208:
- movs r0, 0
-_0806920A:
- pop {r1}
- bx r1
- thumb_func_end sub_80691DC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_80859BC.s b/asm/field_effect.s
index 3a67bbf81..4bcba42ce 100644
--- a/asm/rom_80859BC.s
+++ b/asm/field_effect.s
@@ -267,7 +267,7 @@ CreateMonSprite_FieldMove: @ 8085B88
str r3, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r10
adds r2, r4, 0
@@ -1590,7 +1590,7 @@ mapldr_080842E8: @ 80865DC
movs r1, 0
bl CreateTask
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _08086600 @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -1693,7 +1693,7 @@ mapldr_08084390: @ 8086684
bl FieldObjectTurn
_080866C6:
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _080866E8 @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -1740,7 +1740,7 @@ _0808671E:
cmp r0, 0
bne _08086738
bl ScriptContext2_Disable
- bl sub_806451C
+ bl UnfreezeMapObjects
adds r0, r5, 0
bl DestroyTask
_08086738:
@@ -1756,9 +1756,9 @@ _08086744: .4byte gPaletteFade
sub_8086748: @ 8086748
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r0, _0808676C @ =sub_8086774
movs r1, 0
bl CreateTask
@@ -2115,7 +2115,7 @@ sub_80869F8: @ 80869F8
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
bl CameraObjectReset1
- bl sub_806451C
+ bl UnfreezeMapObjects
bl InstallCameraPanAheadCallback
ldr r0, _08086A28 @ =sub_8086774
bl FindTaskIdByFunc
@@ -2196,7 +2196,7 @@ _08086A9C: .4byte gUnknown_0839F2E8
sub_8086AA0: @ 8086AA0
push {r4,lr}
adds r4, r0, 0
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
ldrb r0, [r4, 0xA]
bl sub_80B4824
@@ -2408,7 +2408,7 @@ _08086C2C: .4byte gSprites
sub_8086C30: @ 8086C30
push {lr}
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
pop {r0}
bx r0
thumb_func_end sub_8086C30
@@ -2454,7 +2454,7 @@ _08086C90: .4byte sub_8086A68
sub_8086C94: @ 8086C94
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
ldr r0, _08086CB4 @ =sub_8086CBC
movs r1, 0
@@ -3193,7 +3193,7 @@ sub_808722C: @ 808722C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
movs r0, 0
bl SetCameraPanningCallback
@@ -3422,7 +3422,7 @@ sub_80873D8: @ 80873D8
push {r4,lr}
adds r4, r0, 0
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -3473,7 +3473,7 @@ _08087444: .4byte sub_80871D0
mapldr_080851BC: @ 8087448
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
ldr r0, _08087468 @ =gUnknown_0300485C
movs r1, 0
@@ -3539,7 +3539,7 @@ sub_80874CC: @ 80874CC
adds r5, r0, 0
adds r4, r1, 0
bl CameraObjectReset2
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _080874F8 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
@@ -3654,7 +3654,7 @@ sub_808759C: @ 808759C
movs r0, 0
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
- bl sub_806451C
+ bl UnfreezeMapObjects
ldr r0, _080875D0 @ =sub_8087470
bl FindTaskIdByFunc
lsls r0, 24
@@ -3801,7 +3801,7 @@ sub_80876C8: @ 80876C8
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
ldr r1, _080876F4 @ =gPlayerAvatar
movs r0, 0x1
@@ -3925,7 +3925,7 @@ sub_80877AC: @ 80877AC
cmp r0, 0
bne _080877CA
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -4044,7 +4044,7 @@ _080878A4:
sub_80878A8: @ 80878A8
push {lr}
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r0, _080878C0 @ =sub_80878C4
movs r1, 0x50
bl CreateTask
@@ -4117,7 +4117,7 @@ sub_8087914: @ 8087914
cmp r0, 0
bne _08087940
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
_08087940:
ldr r0, _080879BC @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
@@ -4227,9 +4227,9 @@ _08087A20:
mapldr_080859D4: @ 8087A28
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _08087A64 @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -4357,7 +4357,7 @@ _08087B12:
ands r0, r1
strb r0, [r6, 0x1]
bl ScriptContext2_Disable
- bl sub_806451C
+ bl UnfreezeMapObjects
ldr r0, _08087B58 @ =sub_8087A74
bl FindTaskIdByFunc
lsls r0, 24
@@ -4453,7 +4453,7 @@ sub_8087BEC: @ 8087BEC
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
bl player_get_direction_lower_nybble
lsls r0, 24
@@ -4633,7 +4633,7 @@ _08087D48:
adds r0, 0x1
strh r0, [r4, 0x8]
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
_08087D5E:
add sp, 0x8
pop {r4,r5}
@@ -4687,9 +4687,9 @@ _08087DC8: .4byte sub_8087BBC
mapldr_08085D88: @ 8087DCC
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _08087E0C @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -4991,7 +4991,7 @@ sub_8087FDC: @ 8087FDC
bne _08088050
bl ScriptContext2_Disable
bl CameraObjectReset1
- bl sub_806451C
+ bl UnfreezeMapObjects
ldr r0, _08088064 @ =sub_8087E1C
bl FindTaskIdByFunc
lsls r0, 24
@@ -6207,7 +6207,7 @@ sub_8088984: @ 8088984
push {r6}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r5, _080889DC @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r5, 0x6]
@@ -6410,7 +6410,7 @@ sub_8088AF4: @ 8088AF4
ldrb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_8127ED0
- bl sub_806451C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
movs r0, 0x9
bl FieldEffectActiveListRemove
@@ -6908,7 +6908,7 @@ sub_8088F10: @ 8088F10
lsls r0, 24
cmp r0, 0
beq _08088F2A
- bl sub_8080918
+ bl fade_8080918
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -7735,4069 +7735,4 @@ _08089570: .4byte gMapObjects
_08089574: .4byte sub_8089270
thumb_func_end fishE
- thumb_func_start remove_some_task
-remove_some_task: @ 8089578
- push {r4,lr}
- ldr r4, _080895A8 @ =gUnknown_03004DC0
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _080895AC @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x18]
- cmp r0, 0xFF
- beq _080895A2
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r4, 0x18]
-_080895A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895A8: .4byte gUnknown_03004DC0
-_080895AC: .4byte 0x040000b0
-_080895B0: .4byte 0x0000c5ff
-_080895B4: .4byte 0x00007fff
- thumb_func_end remove_some_task
-
- thumb_func_start dp12_8087EA4
-dp12_8087EA4: @ 80895B8
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r1, _080895EC @ =gUnknown_03004DE0
- ldr r2, _080895F0 @ =0x01000780
- bl CpuSet
- ldr r0, _080895F4 @ =gUnknown_03004DC0
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- strb r4, [r0, 0x14]
- strb r4, [r0, 0x15]
- strb r4, [r0, 0x16]
- strb r4, [r0, 0x17]
- movs r1, 0xFF
- strb r1, [r0, 0x18]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895EC: .4byte gUnknown_03004DE0
-_080895F0: .4byte 0x01000780
-_080895F4: .4byte gUnknown_03004DC0
- thumb_func_end dp12_8087EA4
-
- thumb_func_start sub_80895F8
-sub_80895F8: @ 80895F8
- push {lr}
- sub sp, 0xC
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, _0808961C @ =0xa2600001
- cmp r1, r0
- bne _0808962C
- ldr r0, _08089620 @ =gUnknown_03004DC0
- ldr r1, _08089624 @ =gUnknown_03004DE2
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089628 @ =sub_80896F4
- b _0808963C
- .align 2, 0
-_0808961C: .4byte 0xa2600001
-_08089620: .4byte gUnknown_03004DC0
-_08089624: .4byte gUnknown_03004DE2
-_08089628: .4byte sub_80896F4
-_0808962C:
- ldr r0, _0808965C @ =gUnknown_03004DC0
- ldr r1, _08089660 @ =gUnknown_03004DE4
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089664 @ =sub_8089714
-_0808963C:
- str r1, [r0, 0x10]
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r1, 0xC]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x8]
- strb r0, [r1, 0x15]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0808965C: .4byte gUnknown_03004DC0
-_08089660: .4byte gUnknown_03004DE4
-_08089664: .4byte sub_8089714
- thumb_func_end sub_80895F8
-
- thumb_func_start sub_8089668
-sub_8089668: @ 8089668
- push {r4,lr}
- ldr r4, _08089698 @ =gUnknown_03004DC0
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _080896E2
- cmp r0, 0x3
- bne _080896AC
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _0808969C @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r1, _080896A8 @ =gUnknown_0202FFA4
- movs r0, 0x1
- strb r0, [r1]
- b _080896E2
- .align 2, 0
-_08089698: .4byte gUnknown_03004DC0
-_0808969C: .4byte 0x040000b0
-_080896A0: .4byte 0x0000c5ff
-_080896A4: .4byte 0x00007fff
-_080896A8: .4byte gUnknown_0202FFA4
-_080896AC:
- ldr r1, _080896E8 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080896EC @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896F0 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x14]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r4, 0x8]
- str r0, [r1, 0x4]
- ldr r0, [r4, 0xC]
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, [r4, 0x10]
- bl _call_via_r0
- ldrb r0, [r4, 0x14]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4, 0x14]
-_080896E2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080896E8: .4byte 0x040000b0
-_080896EC: .4byte 0x0000c5ff
-_080896F0: .4byte 0x00007fff
- thumb_func_end sub_8089668
-
- thumb_func_start sub_80896F4
-sub_80896F4: @ 80896F4
- ldr r0, _0808970C @ =gUnknown_03004DC0
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089710 @ =gUnknown_03004DE0
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0808970C: .4byte gUnknown_03004DC0
-_08089710: .4byte gUnknown_03004DE0
- thumb_func_end sub_80896F4
-
- thumb_func_start sub_8089714
-sub_8089714: @ 8089714
- ldr r0, _0808972C @ =gUnknown_03004DC0
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089730 @ =gUnknown_03004DE0
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .align 2, 0
-_0808972C: .4byte gUnknown_03004DC0
-_08089730: .4byte gUnknown_03004DE0
- thumb_func_end sub_8089714
-
- thumb_func_start task00_for_dp12
-task00_for_dp12: @ 8089734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- ldr r0, _0808975C @ =gUnknown_0202FFA4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08089764
- mov r0, r12
- bl DestroyTask
- ldr r1, _08089760 @ =gUnknown_03004DC0
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- b _080898E4
- .align 2, 0
-_0808975C: .4byte gUnknown_0202FFA4
-_08089760: .4byte gUnknown_03004DC0
-_08089764:
- ldr r1, _08089790 @ =gTasks
- mov r0, r12
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- mov r10, r1
- mov r9, r2
- cmp r0, 0
- beq _08089810
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- bhi _08089810
- lsls r0, 2
- ldr r1, _08089794 @ =_08089798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08089790: .4byte gTasks
-_08089794: .4byte _08089798
- .align 2, 0
-_08089798:
- .4byte _080897D4
- .4byte _08089810
- .4byte _080897DC
- .4byte _08089810
- .4byte _080897E4
- .4byte _08089810
- .4byte _080897EC
- .4byte _08089810
- .4byte _080897F4
- .4byte _08089810
- .4byte _080897FC
- .4byte _08089810
- .4byte _08089804
- .4byte _08089810
- .4byte _0808980C
-_080897D4:
- ldr r0, _080897D8 @ =gUnknown_030042A4
- b _0808980E
- .align 2, 0
-_080897D8: .4byte gUnknown_030042A4
-_080897DC:
- ldr r0, _080897E0 @ =gUnknown_030042A0
- b _0808980E
- .align 2, 0
-_080897E0: .4byte gUnknown_030042A0
-_080897E4:
- ldr r0, _080897E8 @ =gUnknown_030042C0
- b _0808980E
- .align 2, 0
-_080897E8: .4byte gUnknown_030042C0
-_080897EC:
- ldr r0, _080897F0 @ =gUnknown_030041B4
- b _0808980E
- .align 2, 0
-_080897F0: .4byte gUnknown_030041B4
-_080897F4:
- ldr r0, _080897F8 @ =gUnknown_03004288
- b _0808980E
- .align 2, 0
-_080897F8: .4byte gUnknown_03004288
-_080897FC:
- ldr r0, _08089800 @ =gUnknown_03004280
- b _0808980E
- .align 2, 0
-_08089800: .4byte gUnknown_03004280
-_08089804:
- ldr r0, _08089808 @ =gUnknown_030041B0
- b _0808980E
- .align 2, 0
-_08089808: .4byte gUnknown_030041B0
-_0808980C:
- ldr r0, _08089870 @ =gUnknown_030041B8
-_0808980E:
- ldrh r6, [r0]
-_08089810:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r2, r10
- adds r1, r0, r2
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0808987C
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898E4
- ldr r5, _08089874 @ =gUnknown_03004DE0
- ldr r0, _08089878 @ =gUnknown_03004DC0
- mov r8, r0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
-_0808984A:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _0808984A
- b _080898E4
- .align 2, 0
-_08089870: .4byte gUnknown_030041B8
-_08089874: .4byte gUnknown_03004DE0
-_08089878: .4byte gUnknown_03004DC0
-_0808987C:
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x10]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898C4
- ldr r5, _080898F4 @ =gUnknown_03004DE0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
- ldr r0, _080898F8 @ =gUnknown_03004DC0
- mov r8, r0
-_080898A2:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _080898A2
-_080898C4:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r3, r10
- adds r2, r0, r3
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bne _080898E4
- movs r0, 0
- strh r0, [r2, 0xE]
-_080898E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080898F4: .4byte gUnknown_03004DE0
-_080898F8: .4byte gUnknown_03004DC0
- thumb_func_end task00_for_dp12
-
- thumb_func_start sub_80898FC
-sub_80898FC: @ 80898FC
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0
- movs r2, 0
- ldr r0, _08089940 @ =gSineTable
- mov r12, r0
-_08089910:
- lsls r0, r1, 1
- adds r3, r0, r6
- lsls r0, r2, 1
- add r0, r12
- movs r7, 0
- ldrsh r0, [r0, r7]
- muls r0, r4
- cmp r0, 0
- bge _08089924
- adds r0, 0xFF
-_08089924:
- asrs r0, 8
- strh r0, [r3]
- adds r0, r2, r5
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _08089910
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089940: .4byte gSineTable
- thumb_func_end sub_80898FC
-
- thumb_func_start sub_8089944
-sub_8089944: @ 8089944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x40]
- mov r8, r0
- ldr r1, [sp, 0x44]
- mov r9, r1
- ldr r0, [sp, 0x48]
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [sp, 0x10]
- lsls r1, 24
- str r1, [sp, 0x14]
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, r3, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl dp12_8087EA4
- ldr r0, _08089A50 @ =REG_BG0HOFS
- add r0, r9
- str r0, [sp]
- ldr r0, _08089A54 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _08089A58 @ =task00_for_dp12
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08089A5C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x18]
- bl __divsi3
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4, 0xE]
- mov r1, r8
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- mov r3, r9
- strh r3, [r4, 0x14]
- mov r0, r10
- strh r0, [r4, 0x16]
- ldr r0, _08089A60 @ =gUnknown_03004DC0
- strb r7, [r0, 0x18]
- ldr r0, _08089A64 @ =gUnknown_0202FFA4
- movs r1, 0
- strb r1, [r0]
- ldr r4, _08089A68 @ =gUnknown_03005060
- ldr r3, [sp, 0xC]
- subs r6, r3, r5
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r4, 0
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- bl sub_80898FC
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _08089A3E
- ldr r1, _08089A6C @ =0xfffffd80
- adds r2, r4, r1
- lsls r1, r5, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r1, r3
- adds r3, r0, r2
- adds r1, r2
- adds r2, r4, 0
- adds r5, r6, 0
-_08089A2A:
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _08089A2A
-_08089A3E:
- adds r0, r7, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08089A50: .4byte REG_BG0HOFS
-_08089A54: .4byte 0xa2600001
-_08089A58: .4byte task00_for_dp12
-_08089A5C: .4byte gTasks
-_08089A60: .4byte gUnknown_03004DC0
-_08089A64: .4byte gUnknown_0202FFA4
-_08089A68: .4byte gUnknown_03005060
-_08089A6C: .4byte 0xfffffd80
- thumb_func_end sub_8089944
-
- thumb_func_start sub_8089A70
-sub_8089A70: @ 8089A70
- push {lr}
- ldr r0, _08089A88 @ =gPaletteFade
- ldrb r1, [r0, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x8]
- movs r0, 0
- movs r1, 0
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08089A88: .4byte gPaletteFade
- thumb_func_end sub_8089A70
-
- thumb_func_start sub_8089A8C
-sub_8089A8C: @ 8089A8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _08089AD0 @ =gUnknown_0202FFA9
- movs r0, 0
- strb r0, [r5]
- ldr r0, _08089AD4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089AD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08089AE0
- ldr r4, _08089ADC @ =gUnknown_0202FFAA
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl AppendToList
- b _08089BC8
- .align 2, 0
-_08089AD0: .4byte gUnknown_0202FFA9
-_08089AD4: .4byte gUnknown_03005CE0
-_08089AD8: .4byte gPlayerParty
-_08089ADC: .4byte gUnknown_0202FFAA
-_08089AE0:
- movs r6, 0
- ldr r0, _08089B24 @ =gUnknown_0839F554
- ldrh r0, [r0]
- mov r8, r0
-_08089AE8:
- movs r4, 0
- adds r7, r6, 0x1
- mov r0, r8
- cmp r0, 0xFF
- beq _08089B48
- ldr r5, _08089B24 @ =gUnknown_0839F554
-_08089AF4:
- ldr r0, _08089B28 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089B2C @ =gPlayerParty
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- cmp r0, r1
- bne _08089B38
- adds r2, r4, 0
- adds r2, 0xA
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08089B30 @ =gUnknown_0202FFAA
- ldr r1, _08089B34 @ =gUnknown_0202FFA9
- bl AppendToList
- b _08089B48
- .align 2, 0
-_08089B24: .4byte gUnknown_0839F554
-_08089B28: .4byte gUnknown_03005CE0
-_08089B2C: .4byte gPlayerParty
-_08089B30: .4byte gUnknown_0202FFAA
-_08089B34: .4byte gUnknown_0202FFA9
-_08089B38:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0xFF
- bne _08089AF4
-_08089B48:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08089AE8
- ldr r4, _08089BA4 @ =gUnknown_0202FFAA
- ldr r5, _08089BA8 @ =gUnknown_0202FFA9
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08089B76
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
-_08089B76:
- ldr r0, _08089BB0 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r6, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08089BB4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl AppendToList
- b _08089BBE
- .align 2, 0
-_08089BA4: .4byte gUnknown_0202FFAA
-_08089BA8: .4byte gUnknown_0202FFA9
-_08089BAC: .4byte gPlayerParty + 1 * 0x64
-_08089BB0: .4byte gUnknown_03005CE0
-_08089BB4:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl AppendToList
-_08089BBE:
- ldr r0, _08089BD4 @ =gUnknown_0202FFAA
- ldr r1, _08089BD8 @ =gUnknown_0202FFA9
- movs r2, 0x3
- bl AppendToList
-_08089BC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089BD4: .4byte gUnknown_0202FFAA
-_08089BD8: .4byte gUnknown_0202FFA9
- thumb_func_end sub_8089A8C
-
- thumb_func_start sub_8089BDC
-sub_8089BDC: @ 8089BDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x20]
- ldr r1, [sp, 0x24]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl sub_806D538
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r3, r0, 1
- adds r3, r6, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- str r7, [sp]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- ldr r3, [sp, 0x1C]
- bl PrintMenuItemsReordered
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8089BDC
-
- thumb_func_start sub_8089C50
-sub_8089C50: @ 8089C50
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_8089BDC
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089C50
-
- thumb_func_start sub_8089C7C
-sub_8089C7C: @ 8089C7C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08089CC8 @ =gUnknown_0202FFA9
- ldrb r0, [r6]
- lsls r0, 1
- movs r4, 0x12
- subs r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r6]
- ldr r0, _08089CCC @ =gPokemonMenuActions
- str r0, [sp]
- ldr r0, _08089CD0 @ =gUnknown_0202FFAA
- str r0, [sp, 0x4]
- movs r0, 0x3
- str r0, [sp, 0x8]
- movs r0, 0x13
- adds r1, r4, 0
- movs r2, 0xA
- bl sub_8089BDC
- movs r2, 0x1
- orrs r2, r4
- ldrb r3, [r6]
- str r5, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- bl InitMenu
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089CC8: .4byte gUnknown_0202FFA9
-_08089CCC: .4byte gPokemonMenuActions
-_08089CD0: .4byte gUnknown_0202FFAA
- thumb_func_end sub_8089C7C
-
- thumb_func_start sub_8089CD4
-sub_8089CD4: @ 8089CD4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089D00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089D84
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08089D04
- cmp r0, 0x2
- beq _08089D60
- b _08089D84
- .align 2, 0
-_08089D00: .4byte gPaletteFade
-_08089D04:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08089D48 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089D4C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089D50 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r0, _08089D54 @ =gUnknown_0202FFA8
- strb r5, [r0]
- movs r0, 0
- bl sub_8089C7C
- ldr r1, _08089D58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D5C @ =sub_8089D94
- str r1, [r0]
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089D84
- .align 2, 0
-_08089D48: .4byte gUnknown_03005CE0
-_08089D4C: .4byte gPlayerParty
-_08089D50: .4byte gStringVar1
-_08089D54: .4byte gUnknown_0202FFA8
-_08089D58: .4byte gTasks
-_08089D5C: .4byte sub_8089D94
-_08089D60:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08089D8C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D90 @ =sub_8089E4C
- str r1, [r0]
-_08089D84:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089D8C: .4byte gTasks
-_08089D90: .4byte sub_8089E4C
- thumb_func_end sub_8089CD4
-
- thumb_func_start sub_8089D94
-sub_8089D94: @ 8089D94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08089DC8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08089E44
- ldr r2, _08089DCC @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _08089DD4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _08089DD0 @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DC8: .4byte gPaletteFade
-_08089DCC: .4byte gMain
-_08089DD0: .4byte gUnknown_0202FFA8
-_08089DD4:
- cmp r1, 0x80
- bne _08089DF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _08089DEC @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DEC: .4byte gUnknown_0202FFA8
-_08089DF0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08089E30
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08089E24 @ =gPokemonMenuActions
- ldr r2, _08089E28 @ =gUnknown_0202FFAA
- ldr r0, _08089E2C @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08089E1A:
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089E44
- .align 2, 0
-_08089E24: .4byte gPokemonMenuActions
-_08089E28: .4byte gUnknown_0202FFAA
-_08089E2C: .4byte gUnknown_0202FFA8
-_08089E30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08089E44
- adds r0, r5, 0
- bl PokemonMenu_Cancel
- adds r0, r5, 0
- bl sub_808B5B4
-_08089E44:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089D94
-
- thumb_func_start sub_8089E4C
-sub_8089E4C: @ 8089E4C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089E78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08089E72
- ldr r0, _08089E7C @ =gUnknown_03005CE0
- strb r1, [r0]
- ldr r0, _08089E80 @ =sub_805469C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08089E72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089E78: .4byte gPaletteFade
-_08089E7C: .4byte gUnknown_03005CE0
-_08089E80: .4byte sub_805469C
- thumb_func_end sub_8089E4C
-
- thumb_func_start sub_8089E84
-sub_8089E84: @ 8089E84
- push {lr}
- ldr r0, _08089EAC @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089EB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089EB4 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r1, _08089EB8 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0
- bl sub_8089C7C
- pop {r0}
- bx r0
- .align 2, 0
-_08089EAC: .4byte gUnknown_03005CE0
-_08089EB0: .4byte gPlayerParty
-_08089EB4: .4byte gStringVar1
-_08089EB8: .4byte gUnknown_0202FFA8
- thumb_func_end sub_8089E84
-
- thumb_func_start sub_8089EBC
-sub_8089EBC: @ 8089EBC
- push {r4,r5,lr}
- ldr r4, _08089EC4 @ =0x0201b260
- ldr r5, _08089EC8 @ =gUnknown_020384F0
- b _08089ED8
- .align 2, 0
-_08089EC4: .4byte 0x0201b260
-_08089EC8: .4byte gUnknown_020384F0
-_08089ECC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08089F04
-_08089ED8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08089ECC
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r1, _08089F0C @ =gUnknown_03005CE0
- ldrb r0, [r5]
- strb r0, [r1]
- bl sub_8089E84
- ldr r0, _08089F10 @ =sub_806AEDC
- bl SetMainCallback2
-_08089F04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089F0C: .4byte gUnknown_03005CE0
-_08089F10: .4byte sub_806AEDC
- thumb_func_end sub_8089EBC
-
- thumb_func_start sub_8089F14
-sub_8089F14: @ 8089F14
- push {lr}
- ldr r2, _08089F38 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08089F3C @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08089F40 @ =sub_8089EBC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08089F38: .4byte gPaletteFade
-_08089F3C: .4byte sub_8089D94
-_08089F40: .4byte sub_8089EBC
- thumb_func_end sub_8089F14
-
- thumb_func_start sub_8089F44
-sub_8089F44: @ 8089F44
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08089FAC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089FA2
- ldr r2, _08089FB0 @ =gSprites
- ldr r1, _08089FB4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08089FB8 @ =0x0201b000
- ldr r1, _08089FBC @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08089FC0 @ =gPlayerParty
- ldr r1, _08089FC4 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08089FC8 @ =sub_8089F14
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08089FA2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FAC: .4byte gPaletteFade
-_08089FB0: .4byte gSprites
-_08089FB4: .4byte gTasks
-_08089FB8: .4byte 0x0201b000
-_08089FBC: .4byte 0x00000262
-_08089FC0: .4byte gPlayerParty
-_08089FC4: .4byte gPlayerPartyCount
-_08089FC8: .4byte sub_8089F14
- thumb_func_end sub_8089F44
-
- thumb_func_start PokemonMenu_Summary
-PokemonMenu_Summary: @ 8089FCC
- 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, _08089FFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A000 @ =sub_8089F44
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FFC: .4byte gTasks
-_0808A000: .4byte sub_8089F44
- thumb_func_end PokemonMenu_Summary
-
- thumb_func_start sub_808A004
-sub_808A004: @ 808A004
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A024 @ =sub_806CA60
- ldr r2, _0808A028 @ =sub_8089CD4
- bl SetTaskFuncWithFollowupFunc
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_0808A024: .4byte sub_806CA60
-_0808A028: .4byte sub_8089CD4
- thumb_func_end sub_808A004
-
- thumb_func_start PokemonMenu_Switch
-PokemonMenu_Switch: @ 808A02C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r0, _0808A054 @ =0x02001000
- ldr r1, _0808A058 @ =sub_806CD5C
- str r1, [r0, 0xC]
- ldr r1, _0808A05C @ =0x0001a272
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_808A004
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A054: .4byte 0x02001000
-_0808A058: .4byte sub_806CD5C
-_0808A05C: .4byte 0x0001a272
- thumb_func_end PokemonMenu_Switch
-
- thumb_func_start sub_808A060
-sub_808A060: @ 808A060
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0808A086
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0808A086
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A086:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0808A0A4
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _0808A0A4
- movs r0, 0x1
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A0A4:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A0E0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A0D8 @ =gUnknown_0839F578
- ldr r2, _0808A0DC @ =gPokemonMenuActions
- ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A0F6
- .align 2, 0
-_0808A0D0: .4byte gMain
-_0808A0D4: .4byte gUnknown_0202FFA8
-_0808A0D8: .4byte gUnknown_0839F578
-_0808A0DC: .4byte gPokemonMenuActions
-_0808A0E0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A0F6
- ldr r1, _0808A0FC @ =gUnknown_0839F578
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_CancelSubmenu
-_0808A0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A0FC: .4byte gUnknown_0839F578
- thumb_func_end sub_808A060
-
- thumb_func_start sub_808A100
-sub_808A100: @ 808A100
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A130 @ =gUnknown_0839F578
- ldr r2, _0808A134 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- movs r0, 0xD
- movs r1, 0x2
- bl sub_806D538
- ldr r1, _0808A138 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A13C @ =sub_808A060
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A130: .4byte gUnknown_0839F578
-_0808A134: .4byte gPokemonMenuActions
-_0808A138: .4byte gTasks
-_0808A13C: .4byte sub_808A060
- thumb_func_end sub_808A100
-
- thumb_func_start PokemonMenu_Item
-PokemonMenu_Item: @ 808A140
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A174 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A178 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A17C @ =sub_808A100
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A174: .4byte gUnknown_0202FFA8
-_0808A178: .4byte gTasks
-_0808A17C: .4byte sub_808A100
- thumb_func_end PokemonMenu_Item
-
- thumb_func_start sub_808A180
-sub_808A180: @ 808A180
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A1D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A1CA
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A1D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A1DC @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808A1CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A1D0: .4byte gPaletteFade
-_0808A1D4: .4byte gPlayerParty
-_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
-_0808A1DC: .4byte sub_808A520
- thumb_func_end sub_808A180
-
- thumb_func_start sub_808A1E0
-sub_808A1E0: @ 808A1E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A21C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808A216
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DF60
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A220 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A224 @ =sub_8089CD4
- str r1, [r0]
-_0808A216:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A21C: .4byte gUnknown_0202E8F6
-_0808A220: .4byte gTasks
-_0808A224: .4byte sub_8089CD4
- thumb_func_end sub_808A1E0
-
- thumb_func_start sub_808A228
-sub_808A228: @ 808A228
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A268 @ =gScriptItemId
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A278
- ldr r0, _0808A26C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808A278
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A270 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A274 @ =sub_808A180
- str r1, [r0]
- b _0808A29A
- .align 2, 0
-_0808A268: .4byte gScriptItemId
-_0808A26C: .4byte gUnknown_0202E8F4
-_0808A270: .4byte gTasks
-_0808A274: .4byte sub_808A180
-_0808A278:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0808A2A4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808A2A8 @ =sub_8089CD4
- str r0, [r1]
-_0808A29A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2A4: .4byte gTasks
-_0808A2A8: .4byte sub_8089CD4
- thumb_func_end sub_808A228
-
- thumb_func_start sub_808A2AC
-sub_808A2AC: @ 808A2AC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0808A2D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A2CA
- ldr r0, _0808A2D4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808A2D8 @ =sub_808A228
- adds r0, r3, 0
- bl sub_806E964
-_0808A2CA:
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2D0: .4byte gPaletteFade
-_0808A2D4: .4byte gScriptItemId
-_0808A2D8: .4byte sub_808A228
- thumb_func_end sub_808A2AC
-
- thumb_func_start sub_808A2DC
-sub_808A2DC: @ 808A2DC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A324 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A32C @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A324: .4byte gPlayerParty
-_0808A328: .4byte gSaveBlock1 + 0x2B4C
-_0808A32C: .4byte sub_808A520
- thumb_func_end sub_808A2DC
-
- thumb_func_start sub_808A330
-sub_808A330: @ 808A330
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A344 @ =gScriptItemId
- ldrh r1, [r1]
- ldr r2, _0808A348 @ =sub_808A2DC
- bl sub_806E964
- pop {r0}
- bx r0
- .align 2, 0
-_0808A344: .4byte gScriptItemId
-_0808A348: .4byte sub_808A2DC
- thumb_func_end sub_808A330
-
- thumb_func_start sub_808A34C
-sub_808A34C: @ 808A34C
- push {lr}
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_808A34C
-
- thumb_func_start sub_808A358
-sub_808A358: @ 808A358
- push {r4,lr}
- ldr r4, _0808A360 @ =0x0201b260
- b _0808A370
- .align 2, 0
-_0808A360: .4byte 0x0201b260
-_0808A364:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A394
-_0808A370:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A364
- ldrb r0, [r4]
- ldr r1, _0808A39C @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A3A0 @ =sub_806AEDC
- bl SetMainCallback2
-_0808A394:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A39C: .4byte gUnknown_03005CE0
-_0808A3A0: .4byte sub_806AEDC
- thumb_func_end sub_808A358
-
- thumb_func_start sub_808A3A4
-sub_808A3A4: @ 808A3A4
- push {r4,r5,lr}
- ldr r4, _0808A3D8 @ =0x0201b260
- adds r5, r4, 0x2
-_0808A3AA:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3E4
- ldrb r0, [r4]
- ldr r1, _0808A3DC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- movs r0, 0x3
- strb r0, [r5]
- bl sub_8089E84
- ldr r0, _0808A3E0 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808A3F0
- .align 2, 0
-_0808A3D8: .4byte 0x0201b260
-_0808A3DC: .4byte gUnknown_03005CE0
-_0808A3E0: .4byte sub_806AEDC
-_0808A3E4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3AA
-_0808A3F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808A3A4
-
- thumb_func_start sub_808A3F8
-sub_808A3F8: @ 808A3F8
- push {r4,lr}
- ldr r0, _0808A460 @ =gScriptItemId
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A47E
- ldr r0, _0808A464 @ =sub_808A330
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0808A468 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BD58
- ldr r0, _0808A46C @ =gUnknown_03005CE0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_806C994
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BF74
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A470 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 24
- cmp r0, 0
- bne _0808A478
- ldr r0, _0808A474 @ =sub_808A34C
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A460: .4byte gScriptItemId
-_0808A464: .4byte sub_808A330
-_0808A468: .4byte gPaletteFade
-_0808A46C: .4byte gUnknown_03005CE0
-_0808A470: .4byte gPlayerParty
-_0808A474: .4byte sub_808A34C
-_0808A478:
- adds r0, r4, 0
- bl DestroyTask
-_0808A47E:
- ldr r2, _0808A4A4 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A4A8 @ =gScriptItemId
- ldrh r0, [r0]
- cmp r0, 0
- beq _0808A4B4
- ldr r2, _0808A4AC @ =sub_808A2AC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808A4B0 @ =sub_808A358
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A4A4: .4byte gPaletteFade
-_0808A4A8: .4byte gScriptItemId
-_0808A4AC: .4byte sub_808A2AC
-_0808A4B0: .4byte sub_808A358
-_0808A4B4:
- ldr r2, _0808A4CC @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _0808A4D0 @ =sub_808A3A4
- bl SetMainCallback2
-_0808A4C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A4CC: .4byte sub_8089D94
-_0808A4D0: .4byte sub_808A3A4
- thumb_func_end sub_808A3F8
-
- thumb_func_start sub_808A4D4
-sub_808A4D4: @ 808A4D4
- push {r4,lr}
- ldr r4, _0808A4DC @ =0x0201b260
- b _0808A4EC
- .align 2, 0
-_0808A4DC: .4byte 0x0201b260
-_0808A4E0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A510
-_0808A4EC:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A4E0
- ldrb r0, [r4]
- ldr r1, _0808A518 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A51C @ =sub_806AEDC
- bl SetMainCallback2
-_0808A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A518: .4byte gUnknown_03005CE0
-_0808A51C: .4byte sub_806AEDC
- thumb_func_end sub_808A4D4
-
- thumb_func_start sub_808A520
-sub_808A520: @ 808A520
- push {r4-r7,lr}
- ldr r2, _0808A584 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A588 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808A59C
- ldr r7, _0808A58C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808A542
- movs r1, 0x1
- bl RemoveBagItem
-_0808A542:
- ldr r6, _0808A590 @ =gUnknown_03005CE0
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808A594 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r2, _0808A598 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- b _0808A5A8
- .align 2, 0
-_0808A584: .4byte gPaletteFade
-_0808A588: .4byte gScriptResult
-_0808A58C: .4byte gUnknown_0202E8F8
-_0808A590: .4byte gUnknown_03005CE0
-_0808A594: .4byte gPlayerParty
-_0808A598: .4byte sub_8089CD4
-_0808A59C:
- ldr r2, _0808A5B4 @ =sub_808A5BC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
-_0808A5A8:
- ldr r0, _0808A5B8 @ =sub_808A4D4
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5B4: .4byte sub_808A5BC
-_0808A5B8: .4byte sub_808A4D4
- thumb_func_end sub_808A520
-
- thumb_func_start sub_808A5BC
-sub_808A5BC: @ 808A5BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A5F0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A5EA
- ldr r0, _0808A5F4 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- ldr r1, _0808A5F8 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0
- bl sub_806EBF0
- ldr r1, _0808A5FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A600 @ =sub_808A1E0
- str r1, [r0]
-_0808A5EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5F0: .4byte gPaletteFade
-_0808A5F4: .4byte gUnknown_03005CE0
-_0808A5F8: .4byte gScriptItemId
-_0808A5FC: .4byte gTasks
-_0808A600: .4byte sub_808A1E0
- thumb_func_end sub_808A5BC
-
- thumb_func_start sub_808A604
-sub_808A604: @ 808A604
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A628 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A622
- ldr r0, _0808A62C @ =sub_80A61D0
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808A622:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A628: .4byte gPaletteFade
-_0808A62C: .4byte sub_80A61D0
- thumb_func_end sub_808A604
-
- thumb_func_start PokemonMenu_GiveItem
-PokemonMenu_GiveItem: @ 808A630
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808A66C @ =gUnknown_0202E8F5
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A670 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A674 @ =sub_808A604
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A66C: .4byte gUnknown_0202E8F5
-_0808A670: .4byte gTasks
-_0808A674: .4byte sub_808A604
- thumb_func_end PokemonMenu_GiveItem
-
- thumb_func_start sub_808A678
-sub_808A678: @ 808A678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808A8D4
- pop {r0}
- bx r0
- thumb_func_end sub_808A678
-
- thumb_func_start PokemonMenu_TakeItem
-PokemonMenu_TakeItem: @ 808A688
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6B4 @ =sub_808A678
- adds r0, r4, 0
- bl sub_806ECE8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6B4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeItem
-
- thumb_func_start PokemonMenu_TakeMail
-PokemonMenu_TakeMail: @ 808A6B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6E4 @ =sub_808A678
- adds r0, r4, 0
- bl sub_806EE08
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6E4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeMail
-
- thumb_func_start PokemonMenu_Mail
-PokemonMenu_Mail: @ 808A6E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A728 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A72C @ =gUnknown_0839F584
- ldr r2, _0808A730 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- ldr r1, _0808A734 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A738 @ =sub_808A73C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A728: .4byte gUnknown_0202FFA8
-_0808A72C: .4byte gUnknown_0839F584
-_0808A730: .4byte gPokemonMenuActions
-_0808A734: .4byte gTasks
-_0808A738: .4byte sub_808A73C
- thumb_func_end PokemonMenu_Mail
-
- thumb_func_start sub_808A73C
-sub_808A73C: @ 808A73C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A764 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x40
- bne _0808A77A
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A768 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- bne _0808A770
- ldr r0, _0808A76C @ =gUnknown_0839F584
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- b _0808A774
- .align 2, 0
-_0808A764: .4byte gMain
-_0808A768: .4byte gUnknown_0202FFA8
-_0808A76C: .4byte gUnknown_0839F584
-_0808A770:
- movs r0, 0x1
- negs r0, r0
-_0808A774:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A77A:
- ldr r0, _0808A7A0 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x80
- bne _0808A7B4
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A7A4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- ldr r1, _0808A7A8 @ =gUnknown_0839F584
- ldrb r2, [r1]
- subs r1, r2, 0x1
- cmp r0, r1
- bne _0808A7AC
- movs r0, 0x1
- subs r0, r2
- lsls r0, 24
- asrs r0, 24
- b _0808A7AE
- .align 2, 0
-_0808A7A0: .4byte gMain
-_0808A7A4: .4byte gUnknown_0202FFA8
-_0808A7A8: .4byte gUnknown_0839F584
-_0808A7AC:
- movs r0, 0x1
-_0808A7AE:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A7B4:
- ldr r0, _0808A7E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A7F0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A7E4 @ =gUnknown_0839F584
- ldr r2, _0808A7E8 @ =gPokemonMenuActions
- ldr r0, _0808A7EC @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A806
- .align 2, 0
-_0808A7E0: .4byte gMain
-_0808A7E4: .4byte gUnknown_0839F584
-_0808A7E8: .4byte gPokemonMenuActions
-_0808A7EC: .4byte gUnknown_0202FFA8
-_0808A7F0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A806
- ldr r1, _0808A80C @ =gUnknown_0839F584
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_Cancel
-_0808A806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A80C: .4byte gUnknown_0839F584
- thumb_func_end sub_808A73C
-
- thumb_func_start PokemonMenu_ReadMail
-PokemonMenu_ReadMail: @ 808A810
- 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, _0808A840 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A844 @ =sub_808A848
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A840: .4byte gTasks
-_0808A844: .4byte sub_808A848
- thumb_func_end PokemonMenu_ReadMail
-
- thumb_func_start sub_808A848
-sub_808A848: @ 808A848
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A898 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A890
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A89C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C
- adds r0, r1
- ldr r1, _0808A8A4 @ =sub_808A8A8
- movs r2, 0x1
- bl sub_80F890C
-_0808A890:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A898: .4byte gPaletteFade
-_0808A89C: .4byte gPlayerParty
-_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
-_0808A8A4: .4byte sub_808A8A8
- thumb_func_end sub_808A848
-
- thumb_func_start sub_808A8A8
-sub_808A8A8: @ 808A8A8
- push {lr}
- ldr r1, _0808A8C4 @ =gUnknown_020384F0
- ldr r0, _0808A8C8 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0808A8CC @ =0x0201b000
- ldr r1, _0808A8D0 @ =0x00000262
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- bl sub_8089F14
- pop {r0}
- bx r0
- .align 2, 0
-_0808A8C4: .4byte gUnknown_020384F0
-_0808A8C8: .4byte gUnknown_03005CE0
-_0808A8CC: .4byte 0x0201b000
-_0808A8D0: .4byte 0x00000262
- thumb_func_end sub_808A8A8
-
- thumb_func_start sub_808A8D4
-sub_808A8D4: @ 808A8D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A90C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A910 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A914 @ =sub_8089CD4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A90C: .4byte gUnknown_0202FFA8
-_0808A910: .4byte gTasks
-_0808A914: .4byte sub_8089CD4
- thumb_func_end sub_808A8D4
-
- thumb_func_start PokemonMenu_Cancel
-PokemonMenu_Cancel: @ 808A918
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_808A8D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PokemonMenu_Cancel
-
- thumb_func_start PokemonMenu_CancelSubmenu
-PokemonMenu_CancelSubmenu: @ 808A938
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808A978 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- bl sub_8089C7C
- ldr r1, _0808A97C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A980 @ =sub_8089D94
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A978: .4byte gUnknown_0202FFA8
-_0808A97C: .4byte gTasks
-_0808A980: .4byte sub_8089D94
- thumb_func_end PokemonMenu_CancelSubmenu
-
- thumb_func_start PokemonMenu_FieldMove
-PokemonMenu_FieldMove: @ 808A984
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0808A9D0 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
- ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0xA
- strh r0, [r4, 0x16]
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A9DC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0808AABA
- movs r0, 0x9
- b _0808AAB2
- .align 2, 0
-_0808A9D0: .4byte gTasks + 0x8
-_0808A9D4: .4byte gUnknown_0202FFAA
-_0808A9D8: .4byte gUnknown_0202FFA8
-_0808A9DC:
- ldrh r1, [r4, 0x16]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- bgt _0808AA2C
- ldr r2, _0808AA20 @ =0x00000807
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AA2C
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge
- movs r1, 0x1
- bl sub_806E834
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0808AA28 @ =sub_808AAF0
- str r1, [r0]
- b _0808AADA
- .align 2, 0
-_0808AA20: .4byte 0x00000807
-_0808AA24: .4byte gOtherText_CantBeUsedBadge
-_0808AA28: .4byte sub_808AAF0
-_0808AA2C:
- ldr r1, _0808AA78 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AA90
- ldr r1, _0808AA7C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0808AA88
- ldr r1, _0808AA80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808AA84 @ =sub_808AB34
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0808AADA
- .align 2, 0
-_0808AA78: .4byte gFieldMoveFuncs
-_0808AA7C: .4byte gUnknown_0202FFA8
-_0808AA80: .4byte gTasks
-_0808AA84: .4byte sub_808AB34
-_0808AA88:
- adds r0, r5, 0
- bl sub_8133D28
- b _0808AADA
-_0808AA90:
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0808AABA
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808AABA
- movs r0, 0x8
-_0808AAB2:
- movs r1, 0
- bl sub_806D538
- b _0808AACC
-_0808AABA:
- ldr r0, _0808AAE4 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x4]
- movs r1, 0
- bl sub_806D538
-_0808AACC:
- ldr r0, _0808AAE8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808AAEC @ =sub_808ABF4
- str r0, [r1]
-_0808AADA:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AAE4: .4byte gFieldMoveFuncs
-_0808AAE8: .4byte gTasks
-_0808AAEC: .4byte sub_808ABF4
- thumb_func_end PokemonMenu_FieldMove
-
- thumb_func_start sub_808AAF0
-sub_808AAF0: @ 808AAF0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808AB24
- ldr r0, _0808AB30 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AB12
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AB24
-_0808AB12:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AB24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB2C: .4byte gUnknown_0202E8F6
-_0808AB30: .4byte gMain
- thumb_func_end sub_808AAF0
-
- thumb_func_start sub_808AB34
-sub_808AB34: @ 808AB34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB6C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808AB84
- ldr r0, _0808AB70 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bne _0808AB62
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808AB78
-_0808AB62:
- ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _0808AB7E
- .align 2, 0
-_0808AB6C: .4byte gPaletteFade
-_0808AB70: .4byte gTasks
-_0808AB74: .4byte c2_exit_to_overworld_2_switch
-_0808AB78:
- ldr r0, _0808AB8C @ =sub_80FC074
- bl SetMainCallback2
-_0808AB7E:
- adds r0, r4, 0
- bl DestroyTask
-_0808AB84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB8C: .4byte sub_80FC074
- thumb_func_end sub_808AB34
-
- thumb_func_start sub_808AB90
-sub_808AB90: @ 808AB90
- push {lr}
- bl pal_fill_black
- ldr r0, _0808ABA4 @ =sub_808ABA8
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABA4: .4byte sub_808ABA8
- thumb_func_end sub_808AB90
-
- thumb_func_start sub_808ABA8
-sub_808ABA8: @ 808ABA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808ABDE
- ldr r0, _0808ABE4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ABE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0808ABEC @ =gUnknown_0202FF84
- str r0, [r1]
- ldr r0, _0808ABF0 @ =gUnknown_03005CE4
- ldr r0, [r0]
- bl _call_via_r0
- adds r0, r4, 0
- bl DestroyTask
-_0808ABDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABE4: .4byte gUnknown_03005CE0
-_0808ABE8: .4byte gPlayerParty
-_0808ABEC: .4byte gUnknown_0202FF84
-_0808ABF0: .4byte gUnknown_03005CE4
- thumb_func_end sub_808ABA8
-
- thumb_func_start sub_808ABF4
-sub_808ABF4: @ 808ABF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AC28 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AC0E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AC20
-_0808AC0E:
- movs r0, 0x1
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AC20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC28: .4byte gMain
- thumb_func_end sub_808ABF4
-
- thumb_func_start sub_808AC2C
-sub_808AC2C: @ 808AC2C
- push {lr}
- ldr r0, _0808AC40 @ =gUnknown_0202FF84
- ldr r1, _0808AC44 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x9
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC40: .4byte gUnknown_0202FF84
-_0808AC44: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC2C
-
- thumb_func_start SetUpFieldMove_Surf
-SetUpFieldMove_Surf: @ 808AC48
- push {lr}
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- ldr r1, _0808AC74 @ =gUnknown_0300485C
- ldr r0, _0808AC78 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AC7C @ =gUnknown_03005CE4
- ldr r0, _0808AC80 @ =sub_808AC2C
- str r0, [r1]
- movs r0, 0x1
- b _0808AC86
- .align 2, 0
-_0808AC74: .4byte gUnknown_0300485C
-_0808AC78: .4byte sub_808AB90
-_0808AC7C: .4byte gUnknown_03005CE4
-_0808AC80: .4byte sub_808AC2C
-_0808AC84:
- movs r0, 0
-_0808AC86:
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Surf
-
- thumb_func_start sub_808AC8C
-sub_808AC8C: @ 808AC8C
- push {lr}
- ldr r0, _0808ACA0 @ =gUnknown_0202FF84
- ldr r1, _0808ACA4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x1F
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ACA0: .4byte gUnknown_0202FF84
-_0808ACA4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC8C
-
- thumb_func_start SetUpFieldMove_Fly
-SetUpFieldMove_Fly: @ 808ACA8
- push {lr}
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808ACD0
- ldr r1, _0808ACC0 @ =gUnknown_0300485C
- ldr r0, _0808ACC4 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808ACC8 @ =gUnknown_03005CE4
- ldr r0, _0808ACCC @ =sub_81475C4
- b _0808ACF2
- .align 2, 0
-_0808ACC0: .4byte gUnknown_0300485C
-_0808ACC4: .4byte sub_808AB90
-_0808ACC8: .4byte gUnknown_03005CE4
-_0808ACCC: .4byte sub_81475C4
-_0808ACD0:
- ldr r0, _0808ACE4 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808ACE8
- movs r0, 0
- b _0808ACF6
- .align 2, 0
-_0808ACE4: .4byte gMapHeader
-_0808ACE8:
- ldr r1, _0808ACFC @ =gUnknown_0300485C
- ldr r0, _0808AD00 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AD04 @ =gUnknown_03005CE4
- ldr r0, _0808AD08 @ =sub_808AC8C
-_0808ACF2:
- str r0, [r1]
- movs r0, 0x1
-_0808ACF6:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ACFC: .4byte gUnknown_0300485C
-_0808AD00: .4byte sub_808AB90
-_0808AD04: .4byte gUnknown_03005CE4
-_0808AD08: .4byte sub_808AC8C
- thumb_func_end SetUpFieldMove_Fly
-
- thumb_func_start sub_808AD0C
-sub_808AD0C: @ 808AD0C
- push {r4,lr}
- ldr r4, _0808AD14 @ =0x0201b260
- b _0808AD24
- .align 2, 0
-_0808AD14: .4byte 0x0201b260
-_0808AD18:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AD48
-_0808AD24:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AD18
- ldrb r0, [r4]
- ldr r1, _0808AD50 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808AD54 @ =sub_806AEDC
- bl SetMainCallback2
-_0808AD48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD50: .4byte gUnknown_03005CE0
-_0808AD54: .4byte sub_806AEDC
- thumb_func_end sub_808AD0C
-
- thumb_func_start sub_808AD58
-sub_808AD58: @ 808AD58
- push {lr}
- ldr r2, _0808AD7C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0808AD80 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- ldr r0, _0808AD84 @ =sub_808AD0C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD7C: .4byte gPaletteFade
-_0808AD80: .4byte sub_8089CD4
-_0808AD84: .4byte sub_808AD0C
- thumb_func_end sub_808AD58
-
- thumb_func_start unref_sub_808AD88
-unref_sub_808AD88: @ 808AD88
- push {lr}
- ldr r0, _0808ADA4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ADA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADA4: .4byte gUnknown_03005CE0
-_0808ADA8: .4byte gPlayerParty
- thumb_func_end unref_sub_808AD88
-
- thumb_func_start sub_808ADAC
-sub_808ADAC: @ 808ADAC
- push {lr}
- ldr r0, _0808ADC0 @ =gUnknown_0202FF84
- ldr r1, _0808ADC4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ADC0: .4byte gUnknown_0202FF84
-_0808ADC4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808ADAC
-
- thumb_func_start SetUpFieldMove_Dive
-SetUpFieldMove_Dive: @ 808ADC8
- push {lr}
- bl sub_8068F18
- ldr r1, _0808ADE0 @ =gUnknown_0202FF84
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _0808ADE4
- movs r0, 0
- b _0808ADF2
- .align 2, 0
-_0808ADE0: .4byte gUnknown_0202FF84
-_0808ADE4:
- ldr r1, _0808ADF8 @ =gUnknown_0300485C
- ldr r0, _0808ADFC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE00 @ =gUnknown_03005CE4
- ldr r0, _0808AE04 @ =sub_808ADAC
- str r0, [r1]
- movs r0, 0x1
-_0808ADF2:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADF8: .4byte gUnknown_0300485C
-_0808ADFC: .4byte sub_808AB90
-_0808AE00: .4byte gUnknown_03005CE4
-_0808AE04: .4byte sub_808ADAC
- thumb_func_end SetUpFieldMove_Dive
-
- thumb_func_start sub_808AE08
-sub_808AE08: @ 808AE08
- push {lr}
- ldr r0, _0808AE1C @ =gUnknown_0202FF84
- ldr r1, _0808AE20 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2B
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AE1C: .4byte gUnknown_0202FF84
-_0808AE20: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AE08
-
- thumb_func_start SetUpFieldMove_Waterfall
-SetUpFieldMove_Waterfall: @ 808AE24
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- ldr r1, _0808AE70 @ =gUnknown_0300485C
- ldr r0, _0808AE74 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE78 @ =gUnknown_03005CE4
- ldr r0, _0808AE7C @ =sub_808AE08
- str r0, [r1]
- movs r0, 0x1
- b _0808AE82
- .align 2, 0
-_0808AE70: .4byte gUnknown_0300485C
-_0808AE74: .4byte sub_808AB90
-_0808AE78: .4byte gUnknown_03005CE4
-_0808AE7C: .4byte sub_808AE08
-_0808AE80:
- movs r0, 0
-_0808AE82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Waterfall
-
- thumb_func_start sub_808AE8C
-sub_808AE8C: @ 808AE8C
- push {r4-r6,lr}
- ldr r0, _0808AED8 @ =gScriptItemId
- ldrb r0, [r0]
- subs r0, 0x21
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_0808AE9A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AEDC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF10
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AECE
- adds r0, r4, 0
- adds r1, r6, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0808AEE0
-_0808AECE:
- adds r0, r5, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AED8: .4byte gScriptItemId
-_0808AEDC: .4byte gPlayerParty
-_0808AEE0:
- ldr r0, _0808AF04 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0808AF08
- adds r0, r5, 0
- movs r1, 0xA8
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AF04: .4byte gScriptItemId
-_0808AF08:
- adds r0, r5, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_0808AF10:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AE9A
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_808AE8C
-
- thumb_func_start sub_808AF20
-sub_808AF20: @ 808AF20
- push {r4,r5,lr}
- movs r5, 0
-_0808AF24:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AF78 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF66
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AF58
- ldr r0, _0808AF7C @ =gScriptItemId
- ldrh r2, [r0]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- cmp r0, 0
- bne _0808AF66
-_0808AF58:
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r5, 0
- movs r1, 0
- bl sub_806BC3C
-_0808AF66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AF24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AF78: .4byte gPlayerParty
-_0808AF7C: .4byte gScriptItemId
- thumb_func_end sub_808AF20
-
- thumb_func_start sub_808AF80
-sub_808AF80: @ 808AF80
- push {r4,r5,lr}
- ldr r5, _0808AFB0 @ =0x0201b260
-_0808AF84:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B00C
- ldr r0, _0808AFB4 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808AFC6
- ldr r0, _0808AFB8 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AFBC
- cmp r0, 0x2
- beq _0808AFC2
- b _0808AFC6
- .align 2, 0
-_0808AFB0: .4byte 0x0201b260
-_0808AFB4: .4byte gUnknown_02038561
-_0808AFB8: .4byte gScriptItemId
-_0808AFBC:
- bl sub_808AE8C
- b _0808AFC6
-_0808AFC2:
- bl sub_808AF20
-_0808AFC6:
- ldr r4, _0808B000 @ =gUnknown_03005CE0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0808AFE2
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B004 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0808AFE6
-_0808AFE2:
- movs r0, 0
- strb r0, [r4]
-_0808AFE6:
- ldrb r0, [r5]
- ldr r1, _0808B000 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B008 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808B018
- .align 2, 0
-_0808B000: .4byte gUnknown_03005CE0
-_0808B004: .4byte gPlayerParty
-_0808B008: .4byte sub_806AEDC
-_0808B00C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AF84
-_0808B018:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808AF80
-
- thumb_func_start sub_808B020
-sub_808B020: @ 808B020
- push {lr}
- ldr r2, _0808B040 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808B044 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B0A0
- cmp r0, 0x1
- bgt _0808B048
- cmp r0, 0
- beq _0808B052
- b _0808B0AC
- .align 2, 0
-_0808B040: .4byte gPaletteFade
-_0808B044: .4byte gUnknown_02038561
-_0808B048:
- cmp r0, 0x3
- beq _0808B0A0
- cmp r0, 0x4
- beq _0808B08C
- b _0808B0AC
-_0808B052:
- ldr r0, _0808B070 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B078
- ldr r2, _0808B074 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x14
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B070: .4byte gScriptItemId
-_0808B074: .4byte sub_808B0C0
-_0808B078:
- ldr r2, _0808B088 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x3
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B088: .4byte sub_808B0C0
-_0808B08C:
- ldr r2, _0808B09C @ =sub_808B1EC
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B09C: .4byte sub_808B1EC
-_0808B0A0:
- ldr r2, _0808B0B8 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x4
- bl sub_806AF4C
-_0808B0AC:
- ldr r0, _0808B0BC @ =sub_808AF80
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B0B8: .4byte sub_808B0C0
-_0808B0BC: .4byte sub_808AF80
- thumb_func_end sub_808B020
-
- thumb_func_start sub_808B0C0
-sub_808B0C0: @ 808B0C0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B0EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0808B1CE
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _0808B0F0
- cmp r0, 0x2
- beq _0808B184
- b _0808B1CE
- .align 2, 0
-_0808B0EC: .4byte gPaletteFade
-_0808B0F0:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B118 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B11C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0808B120
- movs r0, 0x20
- bl PlaySE
- b _0808B1CE
- .align 2, 0
-_0808B118: .4byte gUnknown_03005CE0
-_0808B11C: .4byte gPlayerParty
-_0808B120:
- bl sub_806D5A4
- ldr r5, _0808B16C @ =gUnknown_02038561
- ldrb r0, [r5]
- cmp r0, 0
- bne _0808B13C
- ldr r3, _0808B170 @ =gUnknown_03004AE4
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B178 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B13C:
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _0808B154
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B17C @ =sub_808B2EC
- adds r0, r4, 0
- bl sub_806E964
-_0808B154:
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _0808B1CE
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808B180 @ =sub_808B2B4
- adds r0, r4, 0
- bl sub_806EC44
- b _0808B1CE
- .align 2, 0
-_0808B16C: .4byte gUnknown_02038561
-_0808B170: .4byte gUnknown_03004AE4
-_0808B174: .4byte gScriptItemId
-_0808B178: .4byte sub_808B224
-_0808B17C: .4byte sub_808B2EC
-_0808B180: .4byte sub_808B2B4
-_0808B184:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B1D8 @ =gUnknown_03005CE0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _0808B1DC @ =gUnknown_02038561
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _0808B1BA
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E4 @ =sub_808B25C
- str r0, [r1]
-_0808B1BA:
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0808B1CE
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E8 @ =sub_808B2B4
- str r0, [r1]
-_0808B1CE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B1D8: .4byte gUnknown_03005CE0
-_0808B1DC: .4byte gUnknown_02038561
-_0808B1E0: .4byte gTasks
-_0808B1E4: .4byte sub_808B25C
-_0808B1E8: .4byte sub_808B2B4
- thumb_func_end sub_808B0C0
-
- thumb_func_start sub_808B1EC
-sub_808B1EC: @ 808B1EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B214 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B20E
- ldr r3, _0808B218 @ =gUnknown_03004AE4
- ldr r0, _0808B21C @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B220 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B214: .4byte gPaletteFade
-_0808B218: .4byte gUnknown_03004AE4
-_0808B21C: .4byte gScriptItemId
-_0808B220: .4byte sub_808B224
- thumb_func_end sub_808B1EC
-
- thumb_func_start sub_808B224
-sub_808B224: @ 808B224
- 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, _0808B254 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B258 @ =sub_808B25C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B254: .4byte gTasks
-_0808B258: .4byte sub_808B25C
- thumb_func_end sub_808B224
-
- thumb_func_start sub_808B25C
-sub_808B25C: @ 808B25C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B280 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B27A
- ldr r0, _0808B284 @ =sub_80A5B40
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B27A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B280: .4byte gPaletteFade
-_0808B284: .4byte sub_80A5B40
- thumb_func_end sub_808B25C
-
- thumb_func_start sub_808B288
-sub_808B288: @ 808B288
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B2AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B2A6
- ldr r0, _0808B2B0 @ =sub_813B6F8
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B2A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2AC: .4byte gPaletteFade
-_0808B2B0: .4byte sub_813B6F8
- thumb_func_end sub_808B288
-
- thumb_func_start sub_808B2B4
-sub_808B2B4: @ 808B2B4
- 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, _0808B2E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B2E8 @ =sub_808B288
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2E4: .4byte gTasks
-_0808B2E8: .4byte sub_808B288
- thumb_func_end sub_808B2B4
-
- thumb_func_start sub_808B2EC
-sub_808B2EC: @ 808B2EC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B31C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808B328
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B320 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B324 @ =sub_808B338
- str r1, [r0]
- b _0808B32E
- .align 2, 0
-_0808B31C: .4byte gUnknown_0202E8F4
-_0808B320: .4byte gTasks
-_0808B324: .4byte sub_808B338
-_0808B328:
- adds r0, r4, 0
- bl sub_808B224
-_0808B32E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808B2EC
-
- thumb_func_start sub_808B338
-sub_808B338: @ 808B338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808B38C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B384
- adds r0, r5, 0
- bl sub_806CA38
- ldr r1, _0808B390 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B394 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808B39C @ =sub_808B3EC
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808B384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B38C: .4byte gPaletteFade
-_0808B390: .4byte gUnknown_03005CE0
-_0808B394: .4byte gPlayerParty
-_0808B398: .4byte gSaveBlock1 + 0x2B4C
-_0808B39C: .4byte sub_808B3EC
- thumb_func_end sub_808B338
-
- thumb_func_start sub_808B3A0
-sub_808B3A0: @ 808B3A0
- push {r4,lr}
- ldr r4, _0808B3A8 @ =0x0201b260
- b _0808B3B8
- .align 2, 0
-_0808B3A8: .4byte 0x0201b260
-_0808B3AC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B3DC
-_0808B3B8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B3AC
- ldrb r0, [r4]
- ldr r1, _0808B3E4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B3E8 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B3DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B3E4: .4byte gUnknown_03005CE0
-_0808B3E8: .4byte sub_806AEDC
- thumb_func_end sub_808B3A0
-
- thumb_func_start sub_808B3EC
-sub_808B3EC: @ 808B3EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0808B464 @ =gPaletteFade
- mov r8, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x80
- orrs r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B468 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808B480
- ldr r7, _0808B46C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808B416
- movs r1, 0x1
- bl RemoveBagItem
-_0808B416:
- ldr r6, _0808B470 @ =gUnknown_03005CE0
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808B474 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r0, _0808B478 @ =sub_808B25C
- movs r1, 0x5
- bl CreateTask
- mov r0, r8
- ldrb r1, [r0, 0x8]
- movs r0, 0x7F
- ands r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B47C @ =sub_806AEDC
- b _0808B48E
- .align 2, 0
-_0808B464: .4byte gPaletteFade
-_0808B468: .4byte gScriptResult
-_0808B46C: .4byte gUnknown_0202E8F8
-_0808B470: .4byte gUnknown_03005CE0
-_0808B474: .4byte gPlayerParty
-_0808B478: .4byte sub_808B25C
-_0808B47C: .4byte sub_806AEDC
-_0808B480:
- ldr r2, _0808B49C @ =sub_808B4A4
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808B4A0 @ =sub_808B3A0
-_0808B48E:
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B49C: .4byte sub_808B4A4
-_0808B4A0: .4byte sub_808B3A0
- thumb_func_end sub_808B3EC
-
- thumb_func_start sub_808B4A4
-sub_808B4A4: @ 808B4A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B4D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B4D2
- ldr r0, _0808B4DC @ =gUnknown_03005CE0
- ldrb r0, [r0]
- ldr r1, _0808B4E0 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0x1
- bl sub_806EBF0
- ldr r1, _0808B4E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B4E8 @ =sub_808B4EC
- str r1, [r0]
-_0808B4D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B4D8: .4byte gPaletteFade
-_0808B4DC: .4byte gUnknown_03005CE0
-_0808B4E0: .4byte gScriptItemId
-_0808B4E4: .4byte gTasks
-_0808B4E8: .4byte sub_808B4EC
- thumb_func_end sub_808B4A4
-
- thumb_func_start sub_808B4EC
-sub_808B4EC: @ 808B4EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0808B504 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B500
- adds r0, r1, 0
- bl sub_808B224
-_0808B500:
- pop {r0}
- bx r0
- .align 2, 0
-_0808B504: .4byte gUnknown_0202E8F6
- thumb_func_end sub_808B4EC
-
- thumb_func_start sub_808B508
-sub_808B508: @ 808B508
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808B224
- pop {r0}
- bx r0
- thumb_func_end sub_808B508
-
- thumb_func_start sub_808B518
-sub_808B518: @ 808B518
- push {r4,lr}
- ldr r4, _0808B520 @ =0x0201b260
- b _0808B530
- .align 2, 0
-_0808B520: .4byte 0x0201b260
-_0808B524:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B554
-_0808B530:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B524
- ldrb r0, [r4]
- ldr r1, _0808B55C @ =gUnknown_020384F0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B560 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B554:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B55C: .4byte gUnknown_020384F0
-_0808B560: .4byte sub_806AEDC
- thumb_func_end sub_808B518
-
- thumb_func_start sub_808B564
-sub_808B564: @ 808B564
- push {lr}
- ldr r2, _0808B58C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl sub_809FA30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _0808B594
- ldr r2, _0808B590 @ =sub_806F490
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B5A0
- .align 2, 0
-_0808B58C: .4byte gPaletteFade
-_0808B590: .4byte sub_806F490
-_0808B594:
- ldr r2, _0808B5AC @ =sub_806F588
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
-_0808B5A0:
- ldr r0, _0808B5B0 @ =sub_808B518
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5AC: .4byte sub_806F588
-_0808B5B0: .4byte sub_808B518
- thumb_func_end sub_808B564
-
- thumb_func_start sub_808B5B4
-sub_808B5B4: @ 808B5B4
- push {lr}
- ldr r3, _0808B5D8 @ =gUnknown_03005CF0
- ldr r2, _0808B5DC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _0808B5E0 @ =sub_808B5E4
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5D8: .4byte gUnknown_03005CF0
-_0808B5DC: .4byte gTasks
-_0808B5E0: .4byte sub_808B5E4
- thumb_func_end sub_808B5B4
-
- thumb_func_start sub_808B5E4
-sub_808B5E4: @ 808B5E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0808B602
- ldr r1, _0808B608 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B60C @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0808B602:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B608: .4byte gTasks
-_0808B60C: .4byte gUnknown_03005CF0
- thumb_func_end sub_808B5E4
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index 68a1b02c9..9df9dfd8d 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -715,7 +715,7 @@ _08126D3E:
cmp r0, r1
bne _08126DBC
ldrb r0, [r4, 0x1E]
- bl sub_8056E14
+ bl MetatileBehavior_IsPokeGrass
lsls r0, 24
cmp r0, 0
bne _08126DBC
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index c853d8c50..47c4b4c60 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -6,594 +6,6 @@
.text
- thumb_func_start GetAllGroundEffectFlags_OnSpawn
-GetAllGroundEffectFlags_OnSpawn: @ 80635F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Reflection
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_TallGrassOnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_LongGrassOnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnSpawn
-
- thumb_func_start GetAllGroundEffectFlags_OnBeginStep
-GetAllGroundEffectFlags_OnBeginStep: @ 8063638
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Reflection
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_TallGrassOnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_LongGrassOnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Tracks
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Puddle
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnBeginStep
-
- thumb_func_start GetAllGroundEffectFlags_OnFinishStep
-GetAllGroundEffectFlags_OnFinishStep: @ 8063690
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Puddle
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Ripple
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Seaweed
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_JumpLanding
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnFinishStep
-
- thumb_func_start FieldObjectUpdateMetatileBehaviors
-FieldObjectUpdateMetatileBehaviors: @ 80636E0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- strb r0, [r4, 0x1F]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- strb r0, [r4, 0x1E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectUpdateMetatileBehaviors
-
- thumb_func_start GetGroundEffectFlags_Reflection
-GetGroundEffectFlags_Reflection: @ 8063708
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _0806374C @ =gUnknown_08376008
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- adds r0, r4, 0
- bl FieldObjectCheckForReflectiveSurface
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08063750
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 30
- cmp r0, 0
- blt _0806375A
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x2]
- subs r0, r2, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r5]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r5]
- b _0806375A
- .align 2, 0
-_0806374C: .4byte gUnknown_08376008
-_08063750:
- ldrb r1, [r4, 0x2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_0806375A:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Reflection
-
- thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn
-GetGroundEffectFlags_TallGrassOnSpawn: @ 8063764
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806377C
- ldr r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [r4]
-_0806377C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn
-
- thumb_func_start GetGroundEffectFlags_TallGrassOnBeginStep
-GetGroundEffectFlags_TallGrassOnBeginStep: @ 8063784
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806379C
- ldr r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- str r0, [r4]
-_0806379C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_TallGrassOnBeginStep
-
- thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn
-GetGroundEffectFlags_LongGrassOnSpawn: @ 80637A4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _080637BC
- ldr r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- str r0, [r4]
-_080637BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn
-
- thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep
-GetGroundEffectFlags_LongGrassOnBeginStep: @ 80637C4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _080637DC
- ldr r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- str r0, [r4]
-_080637DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep
-
- thumb_func_start GetGroundEffectFlags_Tracks
-GetGroundEffectFlags_Tracks: @ 80637E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _080637FE
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 1
- b _0806381A
-_080637FE:
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSandOrDeepSand
- lsls r0, 24
- cmp r0, 0
- bne _08063816
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsUnusedFootprintMetatile
- lsls r0, 24
- cmp r0, 0
- beq _0806381E
-_08063816:
- ldr r0, [r5]
- movs r1, 0x80
-_0806381A:
- orrs r0, r1
- str r0, [r5]
-_0806381E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Tracks
-
- thumb_func_start GetGroundEffectFlags_SandHeap
-GetGroundEffectFlags_SandHeap: @ 8063824
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _08063862
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _08063862
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 27
- cmp r0, 0
- blt _0806386C
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r5]
- b _0806386C
-_08063862:
- ldrb r1, [r4, 0x2]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_0806386C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_SandHeap
-
- thumb_func_start GetGroundEffectFlags_ShallowFlowingWater
-GetGroundEffectFlags_ShallowFlowingWater: @ 8063874
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsShallowFlowingWater
- lsls r0, 24
- cmp r0, 0
- beq _08063892
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsShallowFlowingWater
- lsls r0, 24
- cmp r0, 0
- bne _080638AA
-_08063892:
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080638C8
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080638C8
-_080638AA:
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _080638D2
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x40
- orrs r0, r1
- str r0, [r5]
- b _080638D2
-_080638C8:
- ldrb r1, [r4, 0x2]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_080638D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_ShallowFlowingWater
-
- thumb_func_start GetGroundEffectFlags_Puddle
-GetGroundEffectFlags_Puddle: @ 80638D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPuddle
- lsls r0, 24
- cmp r0, 0
- beq _08063900
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsPuddle
- lsls r0, 24
- cmp r0, 0
- beq _08063900
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r5]
-_08063900:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Puddle
-
- thumb_func_start GetGroundEffectFlags_Ripple
-GetGroundEffectFlags_Ripple: @ 8063908
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_HasRipples
- lsls r0, 24
- cmp r0, 0
- beq _08063922
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r4]
-_08063922:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Ripple
-
- thumb_func_start GetGroundEffectFlags_ShortGrass
-GetGroundEffectFlags_ShortGrass: @ 8063928
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsShortGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063966
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsShortGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063966
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 29
- cmp r0, 0
- blt _08063970
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 10
- orrs r0, r1
- str r0, [r5]
- b _08063970
-_08063966:
- ldrb r1, [r4, 0x2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_08063970:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_ShortGrass
-
- thumb_func_start GetGroundEffectFlags_HotSprings
-GetGroundEffectFlags_HotSprings: @ 8063978
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsHotSprings
- lsls r0, 24
- cmp r0, 0
- beq _080639B6
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsHotSprings
- lsls r0, 24
- cmp r0, 0
- beq _080639B6
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 26
- cmp r0, 0
- blt _080639C0
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 11
- orrs r0, r1
- str r0, [r5]
- b _080639C0
-_080639B6:
- ldrb r1, [r4, 0x2]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_080639C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_HotSprings
-
- thumb_func_start GetGroundEffectFlags_Seaweed
-GetGroundEffectFlags_Seaweed: @ 80639C8
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsSeaweed
- lsls r0, 24
- cmp r0, 0
- beq _080639E2
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r4]
-_080639E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Seaweed
-
- thumb_func_start GetGroundEffectFlags_JumpLanding
-GetGroundEffectFlags_JumpLanding: @ 80639E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r6, r1, 0
- ldr r0, [r7]
- ldr r1, _08063A24 @ =0x02000020
- ands r0, r1
- cmp r0, 0x20
- bne _08063A3A @ Is player landing after jumping?
- movs r5, 0
- ldr r0, _08063A28 @ =gJumpLanding_MetatileFunctionPointers
- mov r8, r0
-_08063A02:
- lsls r4, r5, 2
- mov r0, r8
- adds r1, r4, r0
- ldrb r0, [r7, 0x1E] @ Load metatile behavior
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08063A30
- ldr r0, _08063A2C @ =gJumpLanding_Bitmasks
- adds r0, r4, r0
- ldr r1, [r6]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r6]
- b _08063A3A
- .align 2, 0
-_08063A24: .4byte 0x02000020
-_08063A28: .4byte gJumpLanding_MetatileFunctionPointers
-_08063A2C: .4byte gJumpLanding_Bitmasks
-_08063A30:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08063A02
-_08063A3A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_JumpLanding
-
thumb_func_start FieldObjectCheckForReflectiveSurface
FieldObjectCheckForReflectiveSurface: @ 8063A44
push {r4-r7,lr}
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index b884252be..348e1d0f3 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -10911,7 +10911,7 @@ _0805F950:
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
- ldr r3, _0805F984 @ =sub_8056E14
+ ldr r3, _0805F984 @ =MetatileBehavior_IsPokeGrass
ldr r4, [r4]
adds r0, r6, 0
adds r1, r7, 0
@@ -10924,7 +10924,7 @@ _0805F978:
bx r1
.align 2, 0
_0805F980: .4byte gUnknown_08375594
-_0805F984: .4byte sub_8056E14
+_0805F984: .4byte MetatileBehavior_IsPokeGrass
thumb_func_end mss_08062EA4
thumb_func_start FieldObjectCB_TreeDisguise
@@ -12654,7 +12654,7 @@ FieldObjectSetSpecialAnim: @ 8060550
cmp r6, 0
bne _08060590
adds r0, r4, 0
- bl npc_sync_anim_pause_bits
+ bl UnfreezeMapObject
strb r5, [r4, 0x1C]
ldrb r0, [r4]
movs r1, 0x40
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
deleted file mode 100644
index 3d4f8a008..000000000
--- a/asm/field_player_avatar.s
+++ /dev/null
@@ -1,4636 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80587B4
-sub_80587B4: @ 80587B4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _080587D0 @ =gMapObjects
- adds r0, r2
- ldr r2, _080587D4 @ =sub_80587D8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_080587D0: .4byte gMapObjects
-_080587D4: .4byte sub_80587D8
- thumb_func_end sub_80587B4
-
- thumb_func_start sub_80587D8
-sub_80587D8: @ 80587D8
- movs r0, 0
- bx lr
- thumb_func_end sub_80587D8
-
- thumb_func_start player_step
-player_step: @ 80587DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r4, _0805884C @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08058850 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_8059D60
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _08058842
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80E5B38
- adds r0, r5, 0
- mov r1, r8
- bl sub_8058854
- lsls r0, 24
- cmp r0, 0
- bne _08058842
- adds r0, r5, 0
- bl npc_clear_strange_bits
- bl DoPlayerAvatarTransition
- bl TryDoMetatileBehaviorForcedMovment
- lsls r0, 24
- cmp r0, 0
- bne _08058842
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl MovePlayerAvatarUsingKeypadInput
- bl PlayerAllowForcedMovementIfMovingSameDirection
-_08058842:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805884C: .4byte gPlayerAvatar
-_08058850: .4byte gMapObjects
- thumb_func_end player_step
-
- thumb_func_start sub_8058854
-sub_8058854: @ 8058854
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0805889E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- bne _0805889E
- adds r0, r4, 0
- bl FieldObjectGetSpecialAnim
- lsls r0, 24
- movs r1, 0xE7
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0805889A
- cmp r5, 0
- beq _0805889A
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- cmp r0, r5
- beq _0805889A
- adds r0, r4, 0
- bl FieldObjectClearAnim
- b _0805889E
-_0805889A:
- movs r0, 0x1
- b _080588A0
-_0805889E:
- movs r0, 0
-_080588A0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8058854
-
- thumb_func_start npc_clear_strange_bits
-npc_clear_strange_bits: @ 80588A8
- ldrb r2, [r0, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- negs r2, r2
- ands r1, r2
- adds r2, 0x2
- ands r1, r2
- strb r1, [r0, 0x1]
- ldr r2, _080588C8 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080588C8: .4byte gPlayerAvatar
- thumb_func_end npc_clear_strange_bits
-
- thumb_func_start MovePlayerAvatarUsingKeypadInput
-MovePlayerAvatarUsingKeypadInput: @ 80588CC
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080588F0 @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _080588F4
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnBike
- b _080588FC
- .align 2, 0
-_080588F0: .4byte gPlayerAvatar
-_080588F4:
- adds r0, r3, 0
- adds r1, r2, 0
- bl MovePlayerNotOnBike
-_080588FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerAvatarUsingKeypadInput
-
- thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection
-PlayerAllowForcedMovementIfMovingSameDirection: @ 8058904
- push {lr}
- ldr r2, _0805891C @ =gPlayerAvatar
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- bne _08058916
- ldrb r1, [r2]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r2]
-_08058916:
- pop {r0}
- bx r0
- .align 2, 0
-_0805891C: .4byte gPlayerAvatar
- thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection
-
- thumb_func_start TryDoMetatileBehaviorForcedMovment
-TryDoMetatileBehaviorForcedMovment: @ 8058920
- push {r4,lr}
- ldr r4, _08058940 @ =gUnknown_0830FBA0
- bl GetForcedMovementByMetatileBehavior
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058940: .4byte gUnknown_0830FBA0
- thumb_func_end TryDoMetatileBehaviorForcedMovment
-
- thumb_func_start GetForcedMovementByMetatileBehavior
-GetForcedMovementByMetatileBehavior: @ 8058944
- push {r4-r6,lr}
- ldr r3, _08058980 @ =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08058996
- ldr r2, _08058984 @ =gMapObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r5, [r0, 0x1E]
- movs r4, 0
- ldr r6, _08058988 @ =gUnknown_0830FB58
-_08058964:
- lsls r0, r4, 2
- adds r0, r6
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0805898C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _08058998
- .align 2, 0
-_08058980: .4byte gPlayerAvatar
-_08058984: .4byte gMapObjects
-_08058988: .4byte gUnknown_0830FB58
-_0805898C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _08058964
-_08058996:
- movs r0, 0
-_08058998:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetForcedMovementByMetatileBehavior
-
- thumb_func_start ForcedMovement_None
-ForcedMovement_None: @ 80589A0
- push {r4,lr}
- ldr r4, _080589E4 @ =gPlayerAvatar
- ldrb r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080589DA
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080589E8 @ =gMapObjects
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl FieldObjectSetDirection
- ldrb r1, [r4]
- movs r0, 0xBF
- ands r0, r1
- strb r0, [r4]
-_080589DA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080589E4: .4byte gPlayerAvatar
-_080589E8: .4byte gMapObjects
- thumb_func_end ForcedMovement_None
-
- thumb_func_start DoForcedMovement
-DoForcedMovement: @ 80589EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08058A2C @ =gPlayerAvatar
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldrb r0, [r6]
- movs r1, 0x40
- mov r10, r1
- movs r1, 0
- mov r8, r1
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- cmp r4, 0
- beq _08058A48
- bl ForcedMovement_None
- cmp r4, 0x4
- bhi _08058A30
- movs r0, 0
- b _08058A54
- .align 2, 0
-_08058A2C: .4byte gPlayerAvatar
-_08058A30:
- cmp r7, 0x6
- bne _08058A3A
- adds r0, r5, 0
- bl PlayerJumpLedge
-_08058A3A:
- ldrb r0, [r6]
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x2]
- b _08058A52
-_08058A48:
- movs r0, 0x2
- strb r0, [r6, 0x2]
- adds r0, r5, 0
- bl _call_via_r9
-_08058A52:
- movs r0, 0x1
-_08058A54:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end DoForcedMovement
-
- thumb_func_start DoForcedMovementInCurrentDirection
-DoForcedMovementInCurrentDirection: @ 8058A64
- push {lr}
- adds r1, r0, 0
- ldr r0, _08058A90 @ =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _08058A94 @ =gMapObjects
- adds r0, r2
- ldrb r2, [r0, 0x1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058A90: .4byte gPlayerAvatar
-_08058A94: .4byte gMapObjects
- thumb_func_end DoForcedMovementInCurrentDirection
-
- thumb_func_start ForcedMovement_Slip
-ForcedMovement_Slip: @ 8058A98
- push {lr}
- ldr r0, _08058AA8 @ =sub_80593C4
- bl DoForcedMovementInCurrentDirection
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AA8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_Slip
-
- thumb_func_start sub_8058AAC
-sub_8058AAC: @ 8058AAC
- push {lr}
- ldr r1, _08058AC0 @ =PlayerGoSpeed0
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AC0: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AAC
-
- thumb_func_start sub_8058AC4
-sub_8058AC4: @ 8058AC4
- push {lr}
- ldr r1, _08058AD8 @ =PlayerGoSpeed0
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AD8: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AC4
-
- thumb_func_start sub_8058ADC
-sub_8058ADC: @ 8058ADC
- push {lr}
- ldr r1, _08058AF0 @ =PlayerGoSpeed0
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AF0: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058ADC
-
- thumb_func_start sub_8058AF4
-sub_8058AF4: @ 8058AF4
- push {lr}
- ldr r1, _08058B08 @ =PlayerGoSpeed0
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B08: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AF4
-
- thumb_func_start sub_8058B0C
-sub_8058B0C: @ 8058B0C
- push {lr}
- ldr r1, _08058B20 @ =npc_use_some_d2s
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B20: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B0C
-
- thumb_func_start sub_8058B24
-sub_8058B24: @ 8058B24
- push {lr}
- ldr r1, _08058B38 @ =npc_use_some_d2s
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B38: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B24
-
- thumb_func_start sub_8058B3C
-sub_8058B3C: @ 8058B3C
- push {lr}
- ldr r1, _08058B50 @ =npc_use_some_d2s
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B50: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B3C
-
- thumb_func_start sub_8058B54
-sub_8058B54: @ 8058B54
- push {lr}
- ldr r1, _08058B68 @ =npc_use_some_d2s
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B68: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B54
-
- thumb_func_start ForcedMovement_Slide
-ForcedMovement_Slide: @ 8058B6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08058B9C @ =gPlayerAvatar
- ldrb r3, [r2, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- ldr r3, _08058BA0 @ =gMapObjects
- adds r2, r3
- ldrb r3, [r2, 0x1]
- movs r4, 0x4
- orrs r3, r4
- movs r4, 0x2
- orrs r3, r4
- strb r3, [r2, 0x1]
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058B9C: .4byte gPlayerAvatar
-_08058BA0: .4byte gMapObjects
- thumb_func_end ForcedMovement_Slide
-
- thumb_func_start ForcedMovement_SlideSouth
-ForcedMovement_SlideSouth: @ 8058BA4
- push {lr}
- ldr r1, _08058BB8 @ =sub_80593C4
- movs r0, 0x1
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BB8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideSouth
-
- thumb_func_start ForcedMovement_SlideNorth
-ForcedMovement_SlideNorth: @ 8058BBC
- push {lr}
- ldr r1, _08058BD0 @ =sub_80593C4
- movs r0, 0x2
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BD0: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideNorth
-
- thumb_func_start ForcedMovement_SlideWest
-ForcedMovement_SlideWest: @ 8058BD4
- push {lr}
- ldr r1, _08058BE8 @ =sub_80593C4
- movs r0, 0x3
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BE8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideWest
-
- thumb_func_start ForcedMovement_SlideEast
-ForcedMovement_SlideEast: @ 8058BEC
- push {lr}
- ldr r1, _08058C00 @ =sub_80593C4
- movs r0, 0x4
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058C00: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideEast
-
- thumb_func_start sub_8058C04
-sub_8058C04: @ 8058C04
- push {lr}
- bl sub_8059F94
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8058C04
-
- thumb_func_start sub_8058C10
-sub_8058C10: @ 8058C10
- push {lr}
- bl sub_805A06C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8058C10
-
- thumb_func_start ForcedMovement_MuddySlope
-ForcedMovement_MuddySlope: @ 8058C1C
- push {r4,lr}
- ldr r0, _08058C60 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08058C64 @ =gMapObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x18]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x20
- bne _08058C42
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _08058C6C
-_08058C42:
- movs r0, 0
- bl sub_80E6010
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, _08058C68 @ =sub_80593C4
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- b _08058C6E
- .align 2, 0
-_08058C60: .4byte gPlayerAvatar
-_08058C64: .4byte gMapObjects
-_08058C68: .4byte sub_80593C4
-_08058C6C:
- movs r0, 0
-_08058C6E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_MuddySlope
-
- thumb_func_start MovePlayerNotOnBike
-MovePlayerNotOnBike: @ 8058C74
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _08058CA0 @ =gUnknown_0830FBEC
- adds r0, r4, 0
- bl CheckMovementInputNotOnBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08058CA0: .4byte gUnknown_0830FBEC
- thumb_func_end MovePlayerNotOnBike
-
- thumb_func_start CheckMovementInputNotOnBike
-CheckMovementInputNotOnBike: @ 8058CA4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08058CBC
- ldr r0, _08058CB8 @ =gPlayerAvatar
- strb r4, [r0, 0x2]
- movs r0, 0
- b _08058CDE
- .align 2, 0
-_08058CB8: .4byte gPlayerAvatar
-_08058CBC:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _08058CD8
- ldr r1, _08058CD4 @ =gPlayerAvatar
- ldrb r0, [r1, 0x2]
- cmp r0, 0x2
- beq _08058CD8
- movs r0, 0x1
- b _08058CDC
- .align 2, 0
-_08058CD4: .4byte gPlayerAvatar
-_08058CD8:
- ldr r1, _08058CE4 @ =gPlayerAvatar
- movs r0, 0x2
-_08058CDC:
- strb r0, [r1, 0x2]
-_08058CDE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058CE4: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputNotOnBike
-
- thumb_func_start PlayerNotOnBikeNotMoving
-PlayerNotOnBikeNotMoving: @ 8058CE8
- push {lr}
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeNotMoving
-
- thumb_func_start PlayerNotOnBikeTurningInPlace
-PlayerNotOnBikeTurningInPlace: @ 8058CFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerTurnInPlace
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeTurningInPlace
-
- thumb_func_start sub_8058D0C
-sub_8058D0C: @ 8058D0C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _08058D44
- cmp r0, 0x6
- bne _08058D32
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _08058DAE
-_08058D32:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08058DAE
- adds r0, r5, 0
- bl PlayerNotOnBikeCollide
- b _08058DAE
-_08058D44:
- ldr r6, _08058D58 @ =gPlayerAvatar
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08058D5C
- adds r0, r5, 0
- bl sub_80593C4
- b _08058DAE
- .align 2, 0
-_08058D58: .4byte gPlayerAvatar
-_08058D5C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08058DA8
- movs r0, 0x2
- ands r4, r0
- cmp r4, 0
- beq _08058DA8
- movs r0, 0x86
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08058DA8
- ldr r2, _08058DA4 @ =gMapObjects
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl sub_80E5DEC
- lsls r0, 24
- cmp r0, 0
- bne _08058DA8
- adds r0, r5, 0
- bl sub_805940C
- ldrb r1, [r6]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r6]
- b _08058DAE
- .align 2, 0
-_08058DA4: .4byte gMapObjects
-_08058DA8:
- adds r0, r5, 0
- bl PlayerGoSpeed0
-_08058DAE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8058D0C
-
- thumb_func_start CheckForPlayerAvatarCollision
-CheckForPlayerAvatarCollision: @ 8058DB4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08058E18 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08058E1C @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CheckForFieldObjectCollision
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08058E18: .4byte gPlayerAvatar
-_08058E1C: .4byte gMapObjects
- thumb_func_end CheckForPlayerAvatarCollision
-
- thumb_func_start CheckForFieldObjectCollision
-CheckForFieldObjectCollision: @ 8058E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsrs r7, r1, 16
- asrs r5, r1, 16
- lsrs r1, r2, 16
- mov r9, r1
- asrs r4, r2, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0x3
- bne _08058E70
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_8058EF0
- lsls r0, 24
- cmp r0, 0
- beq _08058E70
- movs r0, 0x5
- b _08058EDE
-_08058E70:
- lsls r5, r7, 16
- asrs r0, r5, 16
- mov r8, r0
- mov r1, r9
- lsls r4, r1, 16
- asrs r7, r4, 16
- adds r1, r7, 0
- adds r2, r6, 0
- bl ShouldJumpLedge
- lsls r0, 24
- cmp r0, 0
- beq _08058E94
- movs r0, 0x2B
- bl sav12_xor_increment
- movs r0, 0x6
- b _08058EDE
-_08058E94:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08058EB0
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_8058F6C
- lsls r0, 24
- cmp r0, 0
- beq _08058EB0
- movs r0, 0x7
- b _08058EDE
-_08058EB0:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _08058EDA
- asrs r5, 16
- asrs r4, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForRotatingGatePuzzleCollision
- cmp r0, 0
- beq _08058ECE
- movs r0, 0x8
- b _08058EDE
-_08058ECE:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r10
- mov r3, sp
- bl check_acro_bike_metatile
-_08058EDA:
- mov r0, sp
- ldrb r0, [r0]
-_08058EDE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckForFieldObjectCollision
-
- thumb_func_start sub_8058EF0
-sub_8058EF0: @ 8058EF0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _08058F3C @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08058F40
- lsls r5, r3, 16
- asrs r0, r5, 16
- lsls r4, 16
- asrs r1, r4, 16
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08058F40
- lsrs r0, r5, 16
- lsrs r1, r4, 16
- movs r2, 0x3
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _08058F40
- adds r0, r6, 0
- bl sub_805A20C
- movs r0, 0x1
- b _08058F42
- .align 2, 0
-_08058F3C: .4byte gPlayerAvatar
-_08058F40:
- movs r0, 0
-_08058F42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8058EF0
-
- thumb_func_start ShouldJumpLedge
-ShouldJumpLedge: @ 8058F48
- push {lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetLedgeJumpDirection
- lsls r0, 24
- cmp r0, 0
- bne _08058F64
- movs r0, 0
- b _08058F66
-_08058F64:
- movs r0, 0x1
-_08058F66:
- pop {r1}
- bx r1
- thumb_func_end ShouldJumpLedge
-
- thumb_func_start sub_8058F6C
-sub_8058F6C: @ 8058F6C
- push {r4-r7,lr}
- sub sp, 0x4
- mov r3, sp
- strh r0, [r3]
- mov r5, sp
- adds r5, 0x2
- strh r1, [r5]
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r0, _08059004 @ =0x00000829
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0805900C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl GetFieldObjectIdByXY
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x10
- beq _0805900C
- ldr r0, _08059008 @ =gMapObjects
- lsls r1, r6, 3
- adds r1, r6
- lsls r1, 2
- adds r4, r1, r0
- ldrb r0, [r4, 0x5]
- cmp r0, 0x57
- bne _0805900C
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- strh r0, [r5]
- adds r0, r7, 0
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r7, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805900C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056F08
- lsls r0, 24
- cmp r0, 0
- bne _0805900C
- adds r0, r6, 0
- adds r1, r7, 0
- bl task_add_bump_boulder
- movs r0, 0x1
- b _0805900E
- .align 2, 0
-_08059004: .4byte 0x00000829
-_08059008: .4byte gMapObjects
-_0805900C:
- movs r0, 0
-_0805900E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8058F6C
-
- thumb_func_start check_acro_bike_metatile
-check_acro_bike_metatile: @ 8059018
- push {r4-r7,lr}
- adds r6, r3, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- ldr r7, _08059040 @ =gUnknown_0830FBF8
-_08059024:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08059048
- ldr r0, _08059044 @ =gUnknown_0830FC0C
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r6]
- b _08059052
- .align 2, 0
-_08059040: .4byte gUnknown_0830FBF8
-_08059044: .4byte gUnknown_0830FC0C
-_08059048:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08059024
-_08059052:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end check_acro_bike_metatile
-
- thumb_func_start SetPlayerAvatarTransitionFlags
-SetPlayerAvatarTransitionFlags: @ 8059058
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08059070 @ =gPlayerAvatar
- ldrb r1, [r2, 0x1]
- orrs r0, r1
- strb r0, [r2, 0x1]
- bl DoPlayerAvatarTransition
- pop {r0}
- bx r0
- .align 2, 0
-_08059070: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarTransitionFlags
-
- thumb_func_start DoPlayerAvatarTransition
-DoPlayerAvatarTransition: @ 8059074
- push {r4,r5,lr}
- ldr r0, _080590BC @ =gPlayerAvatar
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- beq _080590B4
- movs r5, 0
-_08059080:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080590A2
- ldr r0, _080590C0 @ =gUnknown_0830FC14
- lsls r2, r5, 2
- adds r2, r0
- ldr r0, _080590BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080590C4 @ =gMapObjects
- adds r0, r1
- ldr r1, [r2]
- bl _call_via_r1
-_080590A2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsrs r4, 1
- cmp r5, 0x7
- bls _08059080
- ldr r1, _080590BC @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x1]
-_080590B4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080590BC: .4byte gPlayerAvatar
-_080590C0: .4byte gUnknown_0830FC14
-_080590C4: .4byte gMapObjects
- thumb_func_end DoPlayerAvatarTransition
-
- thumb_func_start nullsub_49
-nullsub_49: @ 80590C8
- bx lr
- thumb_func_end nullsub_49
-
- thumb_func_start PlayerAvatarTransition_Normal
-PlayerAvatarTransition_Normal: @ 80590CC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x1
- bl SetPlayerAvatarStateMask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Normal
-
- thumb_func_start PlayerAvatarTransition_MachBike
-PlayerAvatarTransition_MachBike: @ 80590F8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x2
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl sub_80E5FCC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_MachBike
-
- thumb_func_start PlayerAvatarTransition_AcroBike
-PlayerAvatarTransition_AcroBike: @ 805912C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x4
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl sub_80E5FCC
- bl sub_80E6084
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_AcroBike
-
- thumb_func_start PlayerAvatarTransition_Surfing
-PlayerAvatarTransition_Surfing: @ 8059164
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x8
- bl SetPlayerAvatarStateMask
- ldr r1, _080591B8 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- ldr r0, _080591BC @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- str r0, [r1, 0x8]
- movs r0, 0x8
- bl FieldEffectStart
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_8127ED0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080591B8: .4byte gUnknown_0202FF84
-_080591BC: .4byte gPlayerAvatar
- thumb_func_end PlayerAvatarTransition_Surfing
-
- thumb_func_start PlayerAvatarTransition_Underwater
-PlayerAvatarTransition_Underwater: @ 80591C0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x4
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x10
- bl SetPlayerAvatarStateMask
- ldrb r0, [r4, 0x4]
- bl sub_8128124
- strb r0, [r4, 0x1A]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Underwater
-
- thumb_func_start sub_80591F4
-sub_80591F4: @ 80591F4
- ldr r2, _08059200 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x20
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_08059200: .4byte gPlayerAvatar
- thumb_func_end sub_80591F4
-
- thumb_func_start sub_8059204
-sub_8059204: @ 8059204
- push {r4,lr}
- ldr r4, _08059230 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r4, 0x3]
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08059242
- bl PlayerCheckIfAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- bne _08059234
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- bne _08059242
- movs r0, 0x1
- b _08059240
- .align 2, 0
-_08059230: .4byte gPlayerAvatar
-_08059234:
- bl sub_80592A4
- lsls r0, 24
- cmp r0, 0
- bne _08059242
- movs r0, 0x2
-_08059240:
- strb r0, [r4, 0x3]
-_08059242:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059204
-
- thumb_func_start player_is_anim_in_certain_ranges
-player_is_anim_in_certain_ranges: @ 8059248
- push {lr}
- ldr r2, _08059294 @ =gMapObjects
- ldr r0, _08059298 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1C]
- cmp r1, 0x3
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x19
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x62
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x7A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0805929C
-_0805928E:
- movs r0, 0x1
- b _0805929E
- .align 2, 0
-_08059294: .4byte gMapObjects
-_08059298: .4byte gPlayerAvatar
-_0805929C:
- movs r0, 0
-_0805929E:
- pop {r1}
- bx r1
- thumb_func_end player_is_anim_in_certain_ranges
-
- thumb_func_start sub_80592A4
-sub_80592A4: @ 80592A4
- push {lr}
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- beq _080592C0
- ldr r0, _080592BC @ =gPlayerAvatar
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080592C0
- movs r0, 0x1
- b _080592C2
- .align 2, 0
-_080592BC: .4byte gPlayerAvatar
-_080592C0:
- movs r0, 0
-_080592C2:
- pop {r1}
- bx r1
- thumb_func_end sub_80592A4
-
- thumb_func_start PlayerIsAnimActive
-PlayerIsAnimActive: @ 80592C8
- push {lr}
- ldr r0, _080592E4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080592E8 @ =gMapObjects
- adds r0, r1
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080592E4: .4byte gPlayerAvatar
-_080592E8: .4byte gMapObjects
- thumb_func_end PlayerIsAnimActive
-
- thumb_func_start PlayerCheckIfAnimFinishedOrInactive
-PlayerCheckIfAnimFinishedOrInactive: @ 80592EC
- push {lr}
- ldr r0, _08059308 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805930C @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08059308: .4byte gPlayerAvatar
-_0805930C: .4byte gMapObjects
- thumb_func_end PlayerCheckIfAnimFinishedOrInactive
-
- thumb_func_start player_set_x22
-player_set_x22: @ 8059310
- ldr r3, _08059324 @ =gMapObjects
- ldr r1, _08059328 @ =gPlayerAvatar
- ldrb r2, [r1, 0x5]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x22
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08059324: .4byte gMapObjects
-_08059328: .4byte gPlayerAvatar
- thumb_func_end player_set_x22
-
- thumb_func_start player_get_x22
-player_get_x22: @ 805932C
- ldr r2, _08059340 @ =gMapObjects
- ldr r0, _08059344 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08059340: .4byte gMapObjects
-_08059344: .4byte gPlayerAvatar
- thumb_func_end player_get_x22
-
- thumb_func_start sub_8059348
-sub_8059348: @ 8059348
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08059368 @ =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805936C @ =gMapObjects
- adds r0, r2
- bl FieldObjectForceSetSpecialAnim
- pop {r0}
- bx r0
- .align 2, 0
-_08059368: .4byte gPlayerAvatar
-_0805936C: .4byte gMapObjects
- thumb_func_end sub_8059348
-
- thumb_func_start player_npc_set_state_and_x22_etc
-player_npc_set_state_and_x22_etc: @ 8059370
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _0805939E
- adds r0, r4, 0
- bl player_set_x22
- ldr r0, _080593A4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080593A8 @ =gMapObjects
- adds r0, r1
- adds r1, r5, 0
- bl FieldObjectSetSpecialAnim
-_0805939E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080593A4: .4byte gPlayerAvatar
-_080593A8: .4byte gMapObjects
- thumb_func_end player_npc_set_state_and_x22_etc
-
- thumb_func_start PlayerGoSpeed0
-PlayerGoSpeed0: @ 80593AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerGoSpeed0
-
- thumb_func_start sub_80593C4
-sub_80593C4: @ 80593C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060744
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_80593C4
-
- thumb_func_start npc_use_some_d2s
-npc_use_some_d2s: @ 80593DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl d2s_08064034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end npc_use_some_d2s
-
- thumb_func_start sub_80593F4
-sub_80593F4: @ 80593F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_806079C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_80593F4
-
- thumb_func_start sub_805940C
-sub_805940C: @ 805940C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80607F4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_805940C
-
- thumb_func_start PlayerOnBikeCollide
-PlayerOnBikeCollide: @ 8059424
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetStepInPlaceDelay16AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerOnBikeCollide
-
- thumb_func_start PlayerNotOnBikeCollide
-PlayerNotOnBikeCollide: @ 8059448
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetStepInPlaceDelay32AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeCollide
-
- thumb_func_start PlayerFaceDirection
-PlayerFaceDirection: @ 805946C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerFaceDirection
-
- thumb_func_start PlayerTurnInPlace
-PlayerTurnInPlace: @ 8059484
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay8AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerTurnInPlace
-
- thumb_func_start PlayerJumpLedge
-PlayerJumpLedge: @ 805949C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xA
- bl PlaySE
- adds r0, r4, 0
- bl GetJumpLedgeAnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerJumpLedge
-
- thumb_func_start sub_80594C0
-sub_80594C0: @ 80594C0
- push {r4,lr}
- ldr r4, _080594FC @ =gPlayerAvatar
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- beq _080594CE
- cmp r0, 0
- bne _080594F6
-_080594CE:
- bl player_should_look_direction_be_enforced_upon_movement
- lsls r0, 24
- cmp r0, 0
- beq _080594F6
- ldr r2, _08059500 @ =gMapObjects
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059348
-_080594F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080594FC: .4byte gPlayerAvatar
-_08059500: .4byte gMapObjects
- thumb_func_end sub_80594C0
-
- thumb_func_start sub_8059504
-sub_8059504: @ 8059504
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80609D8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059504
-
- thumb_func_start sub_805951C
-sub_805951C: @ 805951C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060A04
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_805951C
-
- thumb_func_start sub_8059534
-sub_8059534: @ 8059534
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060A30
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059534
-
- thumb_func_start sub_805954C
-sub_805954C: @ 805954C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060A5C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805954C
-
- thumb_func_start sub_8059570
-sub_8059570: @ 8059570
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060A88
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059570
-
- thumb_func_start sub_8059594
-sub_8059594: @ 8059594
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060AB4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059594
-
- thumb_func_start sub_80595B8
-sub_80595B8: @ 80595B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060878
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80595B8
-
- thumb_func_start sub_80595DC
-sub_80595DC: @ 80595DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060AE0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80595DC
-
- thumb_func_start sub_8059600
-sub_8059600: @ 8059600
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B0C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059600
-
- thumb_func_start sub_8059618
-sub_8059618: @ 8059618
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059618
-
- thumb_func_start sub_8059630
-sub_8059630: @ 8059630
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B64
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059630
-
- thumb_func_start PlayCollisionSoundIfNotFacingWarp
-PlayCollisionSoundIfNotFacingWarp: @ 8059648
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080596B8 @ =gMapObjects
- ldr r0, _080596BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- ldr r2, _080596C0 @ =gUnknown_0830FC34
- subs r1, r4, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080596B0
- cmp r4, 0x2
- bne _080596AA
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl is_tile_x69_2_warp_door
- lsls r0, 24
- cmp r0, 0
- bne _080596B0
-_080596AA:
- movs r0, 0x7
- bl PlaySE
-_080596B0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080596B8: .4byte gMapObjects
-_080596BC: .4byte gPlayerAvatar
-_080596C0: .4byte gUnknown_0830FC34
- thumb_func_end PlayCollisionSoundIfNotFacingWarp
-
- thumb_func_start GetXYCoordsOneStepInFrontOfPlayer
-GetXYCoordsOneStepInFrontOfPlayer: @ 80596C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r3, _08059700 @ =gMapObjects
- ldr r2, _08059704 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x10]
- strh r0, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- strh r0, [r5]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl MoveCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059700: .4byte gMapObjects
-_08059704: .4byte gPlayerAvatar
- thumb_func_end GetXYCoordsOneStepInFrontOfPlayer
-
- thumb_func_start PlayerGetDestCoords
-PlayerGetDestCoords: @ 8059708
- push {r4,r5,lr}
- ldr r5, _08059730 @ =gMapObjects
- ldr r4, _08059734 @ =gPlayerAvatar
- ldrb r3, [r4, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- ldrh r2, [r2, 0x10]
- strh r2, [r0]
- ldrb r2, [r4, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x12]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059730: .4byte gMapObjects
-_08059734: .4byte gPlayerAvatar
- thumb_func_end PlayerGetDestCoords
-
- thumb_func_start player_get_direction_lower_nybble
-player_get_direction_lower_nybble: @ 8059738
- ldr r2, _08059750 @ =gMapObjects
- ldr r0, _08059754 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bx lr
- .align 2, 0
-_08059750: .4byte gMapObjects
-_08059754: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_lower_nybble
-
- thumb_func_start player_get_direction_upper_nybble
-player_get_direction_upper_nybble: @ 8059758
- ldr r2, _0805976C @ =gMapObjects
- ldr r0, _08059770 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bx lr
- .align 2, 0
-_0805976C: .4byte gMapObjects
-_08059770: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_upper_nybble
-
- thumb_func_start PlayerGetZCoord
-PlayerGetZCoord: @ 8059774
- ldr r2, _08059788 @ =gMapObjects
- ldr r0, _0805978C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- bx lr
- .align 2, 0
-_08059788: .4byte gMapObjects
-_0805978C: .4byte gPlayerAvatar
- thumb_func_end PlayerGetZCoord
-
- thumb_func_start unref_sub_8059790
-unref_sub_8059790: @ 8059790
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080597B8 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080597BC @ =gMapObjects
- adds r0, r1
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- bl sub_805C058
- pop {r0}
- bx r0
- .align 2, 0
-_080597B8: .4byte gPlayerAvatar
-_080597BC: .4byte gMapObjects
- thumb_func_end unref_sub_8059790
-
- thumb_func_start TestPlayerAvatarFlags
-TestPlayerAvatarFlags: @ 80597C0
- ldr r1, _080597CC @ =gPlayerAvatar
- ldrb r1, [r1]
- ands r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_080597CC: .4byte gPlayerAvatar
- thumb_func_end TestPlayerAvatarFlags
-
- thumb_func_start sub_80597D0
-sub_80597D0: @ 80597D0
- ldr r0, _080597D8 @ =gPlayerAvatar
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080597D8: .4byte gPlayerAvatar
- thumb_func_end sub_80597D0
-
- thumb_func_start GetPlayerAvatarObjectId
-GetPlayerAvatarObjectId: @ 80597DC
- ldr r0, _080597E4 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_080597E4: .4byte gPlayerAvatar
- thumb_func_end GetPlayerAvatarObjectId
-
- thumb_func_start sub_80597E8
-sub_80597E8: @ 80597E8
- push {lr}
- bl ForcedMovement_None
- pop {r0}
- bx r0
- thumb_func_end sub_80597E8
-
- thumb_func_start sub_80597F4
-sub_80597F4: @ 80597F4
- push {r4,lr}
- ldr r0, _08059834 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059838 @ =gMapObjects
- adds r4, r0
- adds r0, r4, 0
- bl npc_clear_strange_bits
- ldrb r1, [r4, 0x18]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0805982C
- bl sub_80E6084
- movs r0, 0
- bl sub_80E6010
-_0805982C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08059834: .4byte gPlayerAvatar
-_08059838: .4byte gMapObjects
- thumb_func_end sub_80597F4
-
- thumb_func_start sub_805983C
-sub_805983C: @ 805983C
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08059850 @ =gUnknown_0830FC44
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08059850: .4byte gUnknown_0830FC44
- thumb_func_end sub_805983C
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender
-GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 8059854
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08059868 @ =gUnknown_0830FC54
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08059868: .4byte gUnknown_0830FC54
- thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateId
-GetPlayerAvatarGraphicsIdByStateId: @ 805986C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08059884 @ =gPlayerAvatar
- ldrb r1, [r1, 0x7]
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08059884: .4byte gPlayerAvatar
- thumb_func_end GetPlayerAvatarGraphicsIdByStateId
-
- thumb_func_start unref_sub_8059888
-unref_sub_8059888: @ 8059888
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _080598AA
- cmp r0, 0x70
- bgt _080598A2
- cmp r0, 0x6D
- bgt _080598AE
- cmp r0, 0x69
- blt _080598AE
- b _080598AA
-_080598A2:
- cmp r1, 0x8A
- beq _080598AA
- cmp r1, 0xC0
- bne _080598AE
-_080598AA:
- movs r0, 0x1
- b _080598B0
-_080598AE:
- movs r0, 0
-_080598B0:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8059888
-
- thumb_func_start GetPlayerAvatarGenderByGraphicsId
-GetPlayerAvatarGenderByGraphicsId: @ 80598B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _080598D6
- cmp r0, 0x70
- bgt _080598CE
- cmp r0, 0x5D
- bgt _080598DA
- cmp r0, 0x59
- blt _080598DA
- b _080598D6
-_080598CE:
- cmp r1, 0x8A
- beq _080598D6
- cmp r1, 0xC0
- bne _080598DA
-_080598D6:
- movs r0, 0x1
- b _080598DC
-_080598DA:
- movs r0, 0
-_080598DC:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGenderByGraphicsId
-
- thumb_func_start PartyHasMonWithSurf
-PartyHasMonWithSurf: @ 80598E0
- push {r4,r5,lr}
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _08059924
- movs r5, 0
- b _0805990A
-_080598F2:
- adds r0, r4, 0
- movs r1, 0x39
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _08059904
- movs r0, 0x1
- b _08059926
-_08059904:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0805990A:
- cmp r5, 0x5
- bhi _08059924
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0805992C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _080598F2
-_08059924:
- movs r0, 0
-_08059926:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805992C: .4byte gPlayerParty
- thumb_func_end PartyHasMonWithSurf
-
- thumb_func_start IsPlayerSurfingNorth
-IsPlayerSurfingNorth: @ 8059930
- push {lr}
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805994E
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0805994E
- movs r0, 0x1
- b _08059950
-_0805994E:
- movs r0, 0
-_08059950:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerSurfingNorth
-
- thumb_func_start IsPlayerFacingSurfableFishableWater
-IsPlayerFacingSurfableFishableWater: @ 8059954
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080599CC @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080599D0 @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x2
- strh r0, [r5]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- ldrb r3, [r4, 0x18]
- lsls r3, 28
- lsrs r3, 28
- adds r0, r4, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080599D4
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080599D4
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080599D4
- movs r0, 0x1
- b _080599D6
- .align 2, 0
-_080599CC: .4byte gPlayerAvatar
-_080599D0: .4byte gMapObjects
-_080599D4:
- movs r0, 0
-_080599D6:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsPlayerFacingSurfableFishableWater
-
- thumb_func_start ClearPlayerAvatarInfo
-ClearPlayerAvatarInfo: @ 80599E0
- push {lr}
- ldr r0, _080599F0 @ =gPlayerAvatar
- movs r1, 0
- movs r2, 0x24
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080599F0: .4byte gPlayerAvatar
- thumb_func_end ClearPlayerAvatarInfo
-
- thumb_func_start SetPlayerAvatarStateMask
-SetPlayerAvatarStateMask: @ 80599F4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08059A08 @ =gPlayerAvatar
- ldrb r2, [r3]
- movs r1, 0xE0
- ands r1, r2
- orrs r0, r1
- strb r0, [r3]
- bx lr
- .align 2, 0
-_08059A08: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarStateMask
-
- thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId
-GetPlayerAvatarStateTransitionByGraphicsId: @ 8059A0C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- ldr r3, _08059A34 @ =gUnknown_0830FC64
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_08059A22:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r5
- bne _08059A38
- adds r0, r1, r6
- ldrb r0, [r0]
- b _08059A44
- .align 2, 0
-_08059A34: .4byte gUnknown_0830FC64
-_08059A38:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08059A22
- movs r0, 0x1
-_08059A44:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId
-
- thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState
-GetPlayerAvatarGraphicsIdByCurrentState: @ 8059A4C
- push {r4-r6,lr}
- ldr r0, _08059A74 @ =gPlayerAvatar
- ldrb r5, [r0]
- movs r2, 0
- ldr r3, _08059A78 @ =gUnknown_0830FC64
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_08059A60:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r6
- ldrb r0, [r0]
- ands r0, r5
- cmp r0, 0
- beq _08059A7C
- adds r0, r1, r3
- ldrb r0, [r0]
- b _08059A88
- .align 2, 0
-_08059A74: .4byte gPlayerAvatar
-_08059A78: .4byte gUnknown_0830FC64
-_08059A7C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08059A60
- movs r0, 0
-_08059A88:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState
-
- thumb_func_start SetPlayerAvatarExtraStateTransition
-SetPlayerAvatarExtraStateTransition: @ 8059A90
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08059ABC @ =gPlayerAvatar
- ldrb r1, [r5, 0x7]
- bl GetPlayerAvatarStateTransitionByGraphicsId
- lsls r0, 24
- lsrs r0, 24
- orrs r0, r4
- ldrb r1, [r5, 0x1]
- orrs r0, r1
- strb r0, [r5, 0x1]
- bl DoPlayerAvatarTransition
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059ABC: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarExtraStateTransition
-
- thumb_func_start InitPlayerAvatar
-InitPlayerAvatar: @ 8059AC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- mov r9, r2
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0
- mov r1, r8
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- mov r1, sp
- movs r3, 0
- strb r0, [r1, 0x1]
- mov r0, sp
- lsls r4, 16
- asrs r4, 16
- subs r4, 0x7
- movs r6, 0
- strh r4, [r0, 0x4]
- lsls r5, 16
- asrs r5, 16
- subs r5, 0x7
- strh r5, [r0, 0x6]
- strb r6, [r0, 0x8]
- movs r0, 0xB
- strb r0, [r1, 0x9]
- mov r2, sp
- ldrb r1, [r2, 0xA]
- subs r0, 0x1B
- ands r0, r1
- strb r0, [r2, 0xA]
- mov r0, sp
- strb r6, [r0, 0xA]
- strh r3, [r0, 0xC]
- strh r3, [r0, 0xE]
- str r3, [sp, 0x10]
- strh r3, [r0, 0x14]
- bl SpawnSpecialFieldObject
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 3
- adds r4, r5
- lsls r4, 2
- ldr r0, _08059B80 @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x2]
- bl sub_8126B54
- strb r0, [r4, 0x1B]
- adds r0, r4, 0
- mov r1, r9
- bl FieldObjectTurn
- bl ClearPlayerAvatarInfo
- ldr r0, _08059B84 @ =gPlayerAvatar
- strb r6, [r0, 0x2]
- strb r6, [r0, 0x3]
- strb r5, [r0, 0x5]
- ldrb r1, [r4, 0x4]
- strb r1, [r0, 0x4]
- mov r1, r8
- strb r1, [r0, 0x7]
- movs r0, 0x21
- bl SetPlayerAvatarStateMask
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059B80: .4byte gMapObjects
-_08059B84: .4byte gPlayerAvatar
- thumb_func_end InitPlayerAvatar
-
- thumb_func_start sub_8059B88
-sub_8059B88: @ 8059B88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _08059BE8 @ =gMapObjects
- ldr r5, _08059BEC @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- ands r4, r0
- lsls r3, r4, 5
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08059BE0
- ldr r2, _08059BF0 @ =gSprites
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x1A]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- lsls r3, r4, 2
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08059BE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059BE8: .4byte gMapObjects
-_08059BEC: .4byte gPlayerAvatar
-_08059BF0: .4byte gSprites
- thumb_func_end sub_8059B88
-
- thumb_func_start sub_8059BF4
-sub_8059BF4: @ 8059BF4
- push {r4,r5,lr}
- ldr r5, _08059C30 @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C34 @ =gMapObjects
- adds r4, r0
- movs r0, 0x5
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08059C38 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059C30: .4byte gPlayerAvatar
-_08059C34: .4byte gMapObjects
-_08059C38: .4byte gSprites
- thumb_func_end sub_8059BF4
-
- thumb_func_start sub_8059C3C
-sub_8059C3C: @ 8059C3C
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059C88 @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C8C @ =gMapObjects
- adds r4, r0
- movs r0, 0x6
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C90 @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl sub_805FDE8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059C88: .4byte gPlayerAvatar
-_08059C8C: .4byte gMapObjects
-_08059C90: .4byte gSprites
- thumb_func_end sub_8059C3C
-
- thumb_func_start sub_8059C94
-sub_8059C94: @ 8059C94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059CFC @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D00 @ =gMapObjects
- adds r4, r0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D04 @ =gSprites
- mov r8, r0
- add r4, r8
- adds r0, r5, 0
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- bl SeekSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059CFC: .4byte gPlayerAvatar
-_08059D00: .4byte gMapObjects
-_08059D04: .4byte gSprites
- thumb_func_end sub_8059C94
-
- thumb_func_start sub_8059D08
-sub_8059D08: @ 8059D08
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059D54 @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D58 @ =gMapObjects
- adds r4, r0
- movs r0, 0x7
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D5C @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059D54: .4byte gPlayerAvatar
-_08059D58: .4byte gMapObjects
-_08059D5C: .4byte gSprites
- thumb_func_end sub_8059D08
-
- thumb_func_start sub_8059D60
-sub_8059D60: @ 8059D60
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrb r0, [r5, 0x1E]
- mov r8, r0
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- movs r6, 0x1
- ldr r1, _08059DC4 @ =gUnknown_0830FC78
- mov r9, r1
- mov r4, sp
- mov r7, sp
- adds r7, 0x2
-_08059D82:
- movs r1, 0
- ldrsh r0, [r4, r1]
- lsls r0, 2
- add r0, r9
- ldr r1, [r0]
- mov r0, r8
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08059DC8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- cmp r6, r0
- bne _08059DC8
- ldrh r0, [r5, 0x10]
- strh r0, [r4]
- ldrh r0, [r5, 0x12]
- strh r0, [r7]
- adds r0, r6, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- ldrb r0, [r5, 0x1B]
- movs r1, 0
- ldrsh r2, [r4, r1]
- movs r1, 0
- ldrsh r3, [r7, r1]
- adds r1, r6, 0
- bl sub_8126BC4
- b _08059DE2
- .align 2, 0
-_08059DC4: .4byte gUnknown_0830FC78
-_08059DC8:
- ldrh r1, [r4]
- adds r1, 0x1
- strh r1, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3
- ble _08059D82
- ldrb r0, [r5, 0x1B]
- bl objid_set_invisible
-_08059DE2:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8059D60
-
- thumb_func_start task_add_bump_boulder
-task_add_bump_boulder: @ 8059DF0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059E24 @ =sub_8059E2C
- adds r0, r6, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08059E28 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- bl _call_via_r6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059E24: .4byte sub_8059E2C
-_08059E28: .4byte gTasks
- thumb_func_end task_add_bump_boulder
-
- thumb_func_start sub_8059E2C
-sub_8059E2C: @ 8059E2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08059E74 @ =gUnknown_0830FC88
- ldr r2, _08059E78 @ =gTasks
- ldr r5, _08059E7C @ =gMapObjects
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08059E40:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldr r0, _08059E80 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _08059E40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059E74: .4byte gUnknown_0830FC88
-_08059E78: .4byte gTasks
-_08059E7C: .4byte gMapObjects
-_08059E80: .4byte gPlayerAvatar
- thumb_func_end sub_8059E2C
-
- thumb_func_start sub_8059E84
-sub_8059E84: @ 8059E84
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _08059EA0 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08059EA0: .4byte gPlayerAvatar
- thumb_func_end sub_8059E84
-
- thumb_func_start sub_8059EA4
-sub_8059EA4: @ 8059EA4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08059F2E
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08059F2E
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r6, 0xC]
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r6, 0xC]
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r2, _08059F38 @ =gUnknown_0202FF84
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- str r0, [r2]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- str r0, [r2, 0x4]
- ldrb r0, [r4, 0xB]
- lsrs r0, 4
- str r0, [r2, 0x8]
- ldr r3, _08059F3C @ =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r2, 0xC]
- movs r0, 0xA
- bl FieldEffectStart
- movs r0, 0xD6
- bl PlaySE
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08059F2E:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08059F38: .4byte gUnknown_0202FF84
-_08059F3C: .4byte gSprites
- thumb_func_end sub_8059EA4
-
- thumb_func_start sub_8059F40
-sub_8059F40: @ 8059F40
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08059F82
- adds r0, r5, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08059F82
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, _08059F8C @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldr r0, _08059F90 @ =sub_8059E2C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08059F82:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08059F8C: .4byte gPlayerAvatar
-_08059F90: .4byte sub_8059E2C
- thumb_func_end sub_8059F40
-
- thumb_func_start sub_8059F94
-sub_8059F94: @ 8059F94
- push {r4,lr}
- ldr r4, _08059FB0 @ =sub_8059FB4
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08059FB0: .4byte sub_8059FB4
- thumb_func_end sub_8059F94
-
- thumb_func_start sub_8059FB4
-sub_8059FB4: @ 8059FB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08059FF0 @ =gUnknown_0830FC94
- ldr r2, _08059FF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08059FC6:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _08059FF8 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08059FFC @ =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08059FC6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059FF0: .4byte gUnknown_0830FC94
-_08059FF4: .4byte gTasks
-_08059FF8: .4byte gPlayerAvatar
-_08059FFC: .4byte gMapObjects
- thumb_func_end sub_8059FB4
-
- thumb_func_start sub_805A000
-sub_805A000: @ 805A000
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r5, _0805A064 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r5, 0x6]
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A05C
- movs r0, 0xA
- bl PlaySE
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_806084C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0805A05C
- movs r0, 0
- strb r0, [r5, 0x6]
- ldrb r0, [r5, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldr r0, _0805A068 @ =sub_8059FB4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A05C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A064: .4byte gPlayerAvatar
-_0805A068: .4byte sub_8059FB4
- thumb_func_end sub_805A000
-
- thumb_func_start sub_805A06C
-sub_805A06C: @ 805A06C
- push {r4,lr}
- ldr r4, _0805A088 @ =sub_805A08C
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A088: .4byte sub_805A08C
- thumb_func_end sub_805A06C
-
- thumb_func_start sub_805A08C
-sub_805A08C: @ 805A08C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0805A0C8 @ =gUnknown_0830FC98
- ldr r2, _0805A0CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0805A09E:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _0805A0D0 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805A0D4 @ =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _0805A09E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A0C8: .4byte gUnknown_0830FC98
-_0805A0CC: .4byte gTasks
-_0805A0D0: .4byte gPlayerAvatar
-_0805A0D4: .4byte gMapObjects
- thumb_func_end sub_805A08C
-
- thumb_func_start sub_805A0D8
-sub_805A0D8: @ 805A0D8
- push {lr}
- ldrh r2, [r0, 0x8]
- adds r2, 0x1
- strh r2, [r0, 0x8]
- ldrb r1, [r1, 0x18]
- lsrs r1, 4
- strh r1, [r0, 0xA]
- ldr r1, _0805A0FC @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- bl ScriptContext2_Enable
- movs r0, 0x2D
- bl PlaySE
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0805A0FC: .4byte gPlayerAvatar
- thumb_func_end sub_805A0D8
-
- thumb_func_start sub_805A100
-sub_805A100: @ 805A100
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805A174 @ =gUnknown_0830FCA8
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A168
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- subs r0, 0x1
- add r0, sp
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r4, 0xA]
- cmp r6, r0
- bne _0805A146
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0805A146:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _0805A168
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0805A168
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0805A168:
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A174: .4byte gUnknown_0830FCA8
- thumb_func_end sub_805A100
-
- thumb_func_start sub_805A178
-sub_805A178: @ 805A178
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _0805A1B4 @ =gUnknown_0830FCAC
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A1A8
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x1
- strh r0, [r5, 0x8]
-_0805A1A8:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A1B4: .4byte gUnknown_0830FCAC
- thumb_func_end sub_805A178
-
- thumb_func_start sub_805A1B8
-sub_805A1B8: @ 805A1B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A1FC
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- bl ScriptContext2_Disable
- ldr r1, _0805A204 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r0, _0805A208 @ =sub_805A08C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A1FC:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A204: .4byte gPlayerAvatar
-_0805A208: .4byte sub_805A08C
- thumb_func_end sub_805A1B8
-
- thumb_func_start sub_805A20C
-sub_805A20C: @ 805A20C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- bl sav1_reset_battle_music_maybe
- bl sub_8053F84
- ldr r2, _0805A258 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0xF7
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x6]
- ldr r5, _0805A25C @ =taskFF_0805D1D4
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805A260 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A258: .4byte gPlayerAvatar
-_0805A25C: .4byte taskFF_0805D1D4
-_0805A260: .4byte gTasks
- thumb_func_end sub_805A20C
-
- thumb_func_start taskFF_0805D1D4
-taskFF_0805D1D4: @ 805A264
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0805A2C0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A2C4 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0805A290
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A2B8
-_0805A290:
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_8127ED0
- ldr r0, _0805A2C8 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl sub_80608D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldr r0, _0805A2CC @ =sub_805A2D0
- str r0, [r4]
-_0805A2B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A2C0: .4byte gPlayerAvatar
-_0805A2C4: .4byte gMapObjects
-_0805A2C8: .4byte gTasks
-_0805A2CC: .4byte sub_805A2D0
- thumb_func_end taskFF_0805D1D4
-
- thumb_func_start sub_805A2D0
-sub_805A2D0: @ 805A2D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0805A33C @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A340 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A336
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0
- strb r0, [r6, 0x6]
- bl ScriptContext2_Disable
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A344 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
-_0805A336:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A33C: .4byte gPlayerAvatar
-_0805A340: .4byte gMapObjects
-_0805A344: .4byte gSprites
- thumb_func_end sub_805A2D0
-
- thumb_func_start StartFishing
-StartFishing: @ 805A348
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0805A374 @ =sub_805A37C
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805A378 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x26]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A374: .4byte sub_805A37C
-_0805A378: .4byte gTasks
- thumb_func_end StartFishing
-
- thumb_func_start sub_805A37C
-sub_805A37C: @ 805A37C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0805A3AC @ =gUnknown_0830FCB4
- ldr r2, _0805A3B0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0805A38E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0805A38E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A3AC: .4byte gUnknown_0830FCB4
-_0805A3B0: .4byte gTasks
- thumb_func_end sub_805A37C
-
- thumb_func_start sub_805A3B4
-sub_805A3B4: @ 805A3B4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _0805A3D0 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A3D0: .4byte gPlayerAvatar
- thumb_func_end sub_805A3B4
-
- thumb_func_start fish1
-fish1: @ 805A3D4
- push {r4-r6,lr}
- sub sp, 0x10
- adds r5, r0, 0
- ldr r1, _0805A45C @ =gUnknown_0830FCF4
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r4, sp, 0x8
- ldr r1, _0805A460 @ =gUnknown_0830FCFA
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r5, 0x20]
- bl Random
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- lsls r1, 1
- mov r2, sp
- adds r6, r2, r1
- lsls r0, 16
- lsrs r0, 16
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r6]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldr r3, _0805A464 @ =gMapObjects
- ldr r2, _0805A468 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- strh r0, [r5, 0x24]
- ldrb r0, [r2, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r3
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
- ldrb r0, [r4, 0x1]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_8059C3C
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A45C: .4byte gUnknown_0830FCF4
-_0805A460: .4byte gUnknown_0830FCFA
-_0805A464: .4byte gMapObjects
-_0805A468: .4byte gPlayerAvatar
- thumb_func_end fish1
-
- thumb_func_start fish2
-fish2: @ 805A46C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _0805A488
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0805A488:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish2
-
- thumb_func_start fish3
-fish3: @ 805A490
- push {r4,lr}
- adds r4, r0, 0
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0805A4C4
- adds r0, r1, 0x4
- strh r0, [r4, 0xE]
-_0805A4C4:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- ble _0805A4D0
- movs r0, 0xA
- strh r0, [r4, 0xE]
-_0805A4D0:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish3
-
- thumb_func_start fish4
-fish4: @ 805A4D8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0805A514 @ =gUnknown_0830FD00
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- bl sub_805A954
- ldrh r0, [r4, 0xA]
- adds r2, r0, 0x1
- strh r2, [r4, 0xA]
- ldr r0, _0805A518 @ =gMain
- ldrh r0, [r0, 0x2E]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0805A51C
- movs r0, 0xB
- strh r0, [r4, 0x8]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0805A50E
- movs r0, 0xC
- strh r0, [r4, 0x8]
-_0805A50E:
- movs r0, 0x1
- b _0805A564
- .align 2, 0
-_0805A514: .4byte gUnknown_0830FD00
-_0805A518: .4byte gMain
-_0805A51C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0805A562
- strh r1, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _0805A54E
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- ldrh r2, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0805A548
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0805A548:
- adds r0, r2, 0x1
- strh r0, [r4, 0x20]
- b _0805A562
-_0805A54E:
- adds r1, r2, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0xF
- bl MenuPrint
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0805A562:
- movs r0, 0
-_0805A564:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish4
-
- thumb_func_start party_menu_update_status_condition_object
-party_menu_update_status_condition_object: @ 805A56C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl GetFishingWildMonListHeader
- lsls r0, 24
- cmp r0, 0
- beq _0805A590
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0805A596
-_0805A590:
- movs r0, 0xB
- strh r0, [r4, 0x8]
- b _0805A5BC
-_0805A596:
- ldr r0, _0805A5C4 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A5C8 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FE08
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0805A5BC:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A5C4: .4byte gPlayerAvatar
-_0805A5C8: .4byte gSprites
- thumb_func_end party_menu_update_status_condition_object
-
- thumb_func_start sub_805A5CC
-sub_805A5CC: @ 805A5CC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldr r0, _0805A5F0 @ =gOtherText_OhABite
- movs r1, 0x4
- movs r2, 0x11
- bl MenuPrint
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A5F0: .4byte gOtherText_OhABite
- thumb_func_end sub_805A5CC
-
- thumb_func_start fish7
-fish7: @ 805A5F4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _0805A628 @ =gUnknown_0830FD02
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- bl sub_805A954
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- blt _0805A62C
- movs r0, 0xC
- b _0805A63C
- .align 2, 0
-_0805A628: .4byte gUnknown_0830FD02
-_0805A62C:
- ldr r0, _0805A648 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805A63E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
-_0805A63C:
- strh r0, [r4, 0x8]
-_0805A63E:
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A648: .4byte gMain
- thumb_func_end fish7
-
- thumb_func_start fish8
-fish8: @ 805A64C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, _0805A6B0 @ =gUnknown_0830FD08
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- bl sub_805A954
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0805A6A2
- cmp r1, 0x1
- bgt _0805A6A6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- movs r3, 0x20
- ldrsh r2, [r4, r3]
- lsls r2, 1
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- lsls r1, 2
- adds r2, r1
- mov r3, sp
- adds r1, r3, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- ble _0805A6A6
-_0805A6A2:
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_0805A6A6:
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A6B0: .4byte gUnknown_0830FD08
- thumb_func_end fish8
-
- thumb_func_start sub_805A6B4
-sub_805A6B4: @ 805A6B4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldr r0, _0805A6D8 @ =gOtherText_PokeOnHook
- bl sub_8072044
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A6D8: .4byte gOtherText_PokeOnHook
- thumb_func_end sub_805A6B4
-
- thumb_func_start sub_805A6DC
-sub_805A6DC: @ 805A6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0805A780
- bl sub_805A954
- movs r0, 0xA
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _0805A780
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805A778
- ldr r7, _0805A76C @ =gPlayerAvatar
- ldrb r0, [r7, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r1, _0805A770 @ =gMapObjects
- mov r8, r1
- add r4, r8
- ldrh r1, [r5, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- ldrb r1, [r7]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805A746
- ldrb r0, [r7, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8127F28
-_0805A746:
- ldr r2, _0805A774 @ =gSprites
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x24]
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x26]
- bl MenuZeroFillScreen
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- b _0805A7A8
- .align 2, 0
-_0805A76C: .4byte gPlayerAvatar
-_0805A770: .4byte gMapObjects
-_0805A774: .4byte gSprites
-_0805A778:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0805A7A8
-_0805A780:
- ldr r1, _0805A7B4 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl FishingWildEncounter
- movs r0, 0x1
- bl sub_80BE97C
- ldr r0, _0805A7B8 @ =sub_805A37C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A7A8:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A7B4: .4byte gPlayerAvatar
-_0805A7B8: .4byte sub_805A37C
- thumb_func_end sub_805A6DC
-
- thumb_func_start sub_805A7BC
-sub_805A7BC: @ 805A7BC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_805A954
- ldr r0, _0805A7FC @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A800 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FDF8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0805A804 @ =gOtherText_NotEvenANibble
- bl sub_8072044
- movs r0, 0xD
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A7FC: .4byte gPlayerAvatar
-_0805A800: .4byte gSprites
-_0805A804: .4byte gOtherText_NotEvenANibble
- thumb_func_end sub_805A7BC
-
- thumb_func_start sub_805A808
-sub_805A808: @ 805A808
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_805A954
- ldr r0, _0805A84C @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A850 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FDF8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0805A854 @ =gOtherText_ItGotAway
- bl sub_8072044
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A84C: .4byte gPlayerAvatar
-_0805A850: .4byte gSprites
-_0805A854: .4byte gOtherText_ItGotAway
- thumb_func_end sub_805A808
-
- thumb_func_start fishD
-fishD: @ 805A858
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fishD
-
- thumb_func_start sub_805A874
-sub_805A874: @ 805A874
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- bl sub_805A954
- ldr r7, _0805A908 @ =gSprites
- ldr r5, _0805A90C @ =gPlayerAvatar
- ldrb r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3F
- ldrb r0, [r1]
- lsls r0, 27
- cmp r0, 0
- bge _0805A8FA
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A910 @ =gMapObjects
- mov r8, r0
- add r4, r8
- ldrh r1, [r6, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805A8DA
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8127F28
-_0805A8DA:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r2, 0
- strh r2, [r0, 0x24]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0805A8FA:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A908: .4byte gSprites
-_0805A90C: .4byte gPlayerAvatar
-_0805A910: .4byte gMapObjects
- thumb_func_end sub_805A874
-
- thumb_func_start fishF
-fishF: @ 805A914
- push {lr}
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805A946
- ldr r1, _0805A94C @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl sub_806451C
- bl MenuZeroFillScreen
- movs r0, 0
- bl sub_80BE97C
- ldr r0, _0805A950 @ =sub_805A37C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A946:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0805A94C: .4byte gPlayerAvatar
-_0805A950: .4byte sub_805A37C
- thumb_func_end fishF
-
- thumb_func_start sub_805A954
-sub_805A954: @ 805A954
- push {r4-r7,lr}
- ldr r0, _0805AA40 @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805AA44 @ =gSprites
- adds r4, r0, r1
- adds r0, r4, 0
- bl AnimateSprite
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r5, [r0]
- movs r0, 0x2A
- adds r0, r4
- mov r12, r0
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r6, r5, 2
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r7, 0x1
- negs r7, r7
- cmp r0, r7
- beq _0805A9C6
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- lsls r1, r2, 26
- lsrs r1, 26
- adds r1, 0x1
- movs r0, 0x3F
- ands r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- mov r1, r12
- ldrb r0, [r1]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, r7
- bne _0805A9CC
-_0805A9C6:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0805A9CC:
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrb r5, [r0]
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0805A9FE
- movs r0, 0x8
- strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0805A9FE
- ldr r0, _0805AA48 @ =0x0000fff8
- strh r0, [r4, 0x24]
-_0805A9FE:
- cmp r5, 0x5
- bne _0805AA06
- ldr r0, _0805AA48 @ =0x0000fff8
- strh r0, [r4, 0x26]
-_0805AA06:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0805AA16
- movs r0, 0x8
- strh r0, [r4, 0x26]
-_0805AA16:
- ldr r3, _0805AA40 @ =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805AA3A
- ldr r2, _0805AA4C @ =gMapObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1A]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0x1
- bl sub_8127F28
-_0805AA3A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AA40: .4byte gPlayerAvatar
-_0805AA44: .4byte gSprites
-_0805AA48: .4byte 0x0000fff8
-_0805AA4C: .4byte gMapObjects
- thumb_func_end sub_805A954
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_region_map.s b/asm/field_region_map.s
new file mode 100644
index 000000000..37c97c3ec
--- /dev/null
+++ b/asm/field_region_map.s
@@ -0,0 +1,274 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start FieldInitRegionMap
+FieldInitRegionMap: @ 813EEB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r2, _0813EED8 @ =0x02000000
+ ldr r0, _0813EEDC @ =0x00000888
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ str r4, [r2]
+ ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EED8: .4byte 0x02000000
+_0813EEDC: .4byte 0x00000888
+_0813EEE0: .4byte CB2_FieldInitRegionMap
+ thumb_func_end FieldInitRegionMap
+
+ thumb_func_start CB2_FieldInitRegionMap
+CB2_FieldInitRegionMap: @ 813EEE4
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _0813EF98 @ =0x02000008
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80FBCF0
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBB3C
+ ldr r4, _0813EF9C @ =gWindowConfig_81E709C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r1, _0813EFA0 @ =REG_BG0CNT
+ movs r2, 0xF8
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x15
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ ldr r0, _0813EFA4 @ =gOtherText_Hoenn
+ movs r1, 0x16
+ movs r2, 0x1
+ movs r3, 0x38
+ bl sub_8072BD8
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ bl sub_813F0C8
+ ldr r0, _0813EFA8 @ =CB2_FieldRegionMap
+ bl SetMainCallback2
+ ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EF98: .4byte 0x02000008
+_0813EF9C: .4byte gWindowConfig_81E709C
+_0813EFA0: .4byte REG_BG0CNT
+_0813EFA4: .4byte gOtherText_Hoenn
+_0813EFA8: .4byte CB2_FieldRegionMap
+_0813EFAC: .4byte VBlankCB_FieldRegionMap
+ thumb_func_end CB2_FieldInitRegionMap
+
+ thumb_func_start VBlankCB_FieldRegionMap
+VBlankCB_FieldRegionMap: @ 813EFB0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end VBlankCB_FieldRegionMap
+
+ thumb_func_start CB2_FieldRegionMap
+CB2_FieldRegionMap: @ 813EFC4
+ push {lr}
+ bl sub_813EFDC
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end CB2_FieldRegionMap
+
+ thumb_func_start sub_813EFDC
+sub_813EFDC: @ 813EFDC
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _0813EFF8 @ =0x02000000
+ ldr r2, _0813EFFC @ =0x00000888
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0813F0B8
+ lsls r0, 2
+ ldr r1, _0813F000 @ =_0813F004
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813EFF8: .4byte 0x02000000
+_0813EFFC: .4byte 0x00000888
+_0813F000: .4byte _0813F004
+ .align 2, 0
+_0813F004:
+ .4byte _0813F018
+ .4byte _0813F030
+ .4byte _0813F04C
+ .4byte _0813F078
+ .4byte _0813F0A0
+_0813F018:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _0813F028 @ =0x00001541
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0813F02C @ =0x00000888
+ adds r1, r2, r0
+ b _0813F08E
+ .align 2, 0
+_0813F028: .4byte 0x00001541
+_0813F02C: .4byte 0x00000888
+_0813F030:
+ ldr r0, _0813F044 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813F0B8
+ ldr r3, _0813F048 @ =0x00000888
+ adds r1, r2, r3
+ b _0813F08E
+ .align 2, 0
+_0813F044: .4byte gPaletteFade
+_0813F048: .4byte 0x00000888
+_0813F04C:
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0813F05E
+ bl sub_813F0C8
+ b _0813F0B8
+_0813F05E:
+ cmp r0, 0x3
+ blt _0813F0B8
+ cmp r0, 0x5
+ bgt _0813F0B8
+ ldr r1, _0813F070 @ =0x02000000
+ ldr r0, _0813F074 @ =0x00000888
+ adds r1, r0
+ b _0813F08E
+ .align 2, 0
+_0813F070: .4byte 0x02000000
+_0813F074: .4byte 0x00000888
+_0813F078:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0813F098 @ =0x02000000
+ ldr r2, _0813F09C @ =0x00000888
+ adds r1, r2
+_0813F08E:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0813F0B8
+ .align 2, 0
+_0813F098: .4byte 0x02000000
+_0813F09C: .4byte 0x00000888
+_0813F0A0:
+ ldr r0, _0813F0C0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813F0B8
+ bl sub_80FAB10
+ ldr r0, _0813F0C4 @ =0x02000000
+ ldr r0, [r0]
+ bl SetMainCallback2
+_0813F0B8:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F0C0: .4byte gPaletteFade
+_0813F0C4: .4byte 0x02000000
+ thumb_func_end sub_813EFDC
+
+ thumb_func_start sub_813F0C8
+sub_813F0C8: @ 813F0C8
+ push {lr}
+ movs r0, 0x11
+ movs r1, 0x11
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ ldr r1, _0813F0F0 @ =0x02000000
+ ldrb r0, [r1, 0x1E]
+ cmp r0, 0
+ beq _0813F0EA
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+_0813F0EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F0F0: .4byte 0x02000000
+ thumb_func_end sub_813F0C8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806936C.s b/asm/field_tasks.s
index 47a91f0a4..c879ebf63 100644
--- a/asm/rom_806936C.s
+++ b/asm/field_tasks.s
@@ -6,157 +6,8 @@
.text
- thumb_func_start sub_806936C
-sub_806936C: @ 806936C
- push {lr}
- movs r0, 0x1
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806936C
-
- thumb_func_start sub_8069378
-sub_8069378: @ 8069378
- push {lr}
- movs r0, 0x2
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069378
-
- thumb_func_start sub_8069384
-sub_8069384: @ 8069384
- push {lr}
- movs r0, 0x3
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069384
-
- thumb_func_start sub_8069390
-sub_8069390: @ 8069390
- push {lr}
- movs r0, 0x4
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069390
-
- thumb_func_start sub_806939C
-sub_806939C: @ 806939C
- push {lr}
- movs r0, 0x5
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806939C
-
- thumb_func_start sub_80693A8
-sub_80693A8: @ 80693A8
- push {lr}
- movs r0, 0x6
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693A8
-
- thumb_func_start sub_80693B4
-sub_80693B4: @ 80693B4
- push {lr}
- movs r0, 0x9
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693B4
-
- thumb_func_start sub_80693C0
-sub_80693C0: @ 80693C0
- push {lr}
- movs r0, 0x7
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693C0
-
- thumb_func_start sub_80693CC
-sub_80693CC: @ 80693CC
- push {lr}
- movs r0, 0x8
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693CC
-
- thumb_func_start sub_80693D8
-sub_80693D8: @ 80693D8
- push {lr}
- movs r0, 0xB
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693D8
-
- thumb_func_start sub_80693E4
-sub_80693E4: @ 80693E4
- push {lr}
- movs r0, 0xC
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693E4
-
- thumb_func_start sub_80693F0
-sub_80693F0: @ 80693F0
- push {lr}
- movs r0, 0x14
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693F0
-
- thumb_func_start sub_80693FC
-sub_80693FC: @ 80693FC
- push {lr}
- movs r0, 0x15
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693FC
-
- thumb_func_start sub_8069408
-sub_8069408: @ 8069408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, _08069428 @ =gUnknown_083762FC
-_08069412:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0806942C
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _08069436
- .align 2, 0
-_08069428: .4byte gUnknown_083762FC
-_0806942C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _08069412
-_08069436:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8069408
-
- thumb_func_start task_per_step_callback_manager
-task_per_step_callback_manager: @ 806943C
+ thumb_func_start Task_RunPerStepCallback
+Task_RunPerStepCallback: @ 806943C
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -177,10 +28,10 @@ task_per_step_callback_manager: @ 806943C
.align 2, 0
_08069460: .4byte gTasks
_08069464: .4byte gUnknown_08376364
- thumb_func_end task_per_step_callback_manager
+ thumb_func_end Task_RunPerStepCallback
- thumb_func_start sub_8069468
-sub_8069468: @ 8069468
+ thumb_func_start RunTimeBasedEvents
+RunTimeBasedEvents: @ 8069468
push {r4,lr}
adds r4, r0, 0
movs r1, 0
@@ -222,10 +73,10 @@ _080694AC:
bx r0
.align 2, 0
_080694B4: .4byte gMain
- thumb_func_end sub_8069468
+ thumb_func_end RunTimeBasedEvents
- thumb_func_start sub_80694B8
-sub_80694B8: @ 80694B8
+ thumb_func_start Task_RunTimeBasedEvents
+Task_RunTimeBasedEvents: @ 80694B8
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@@ -239,7 +90,7 @@ sub_80694B8: @ 80694B8
cmp r0, 0
bne _080694E0
adds r0, r4, 0
- bl sub_8069468
+ bl RunTimeBasedEvents
adds r0, r4, 0x2
adds r1, r4, 0x4
bl sub_80540D0
@@ -249,12 +100,12 @@ _080694E0:
bx r0
.align 2, 0
_080694E8: .4byte gTasks + 0x8
- thumb_func_end sub_80694B8
+ thumb_func_end Task_RunTimeBasedEvents
- thumb_func_start overworld_ensure_per_step_coros_running
-overworld_ensure_per_step_coros_running: @ 80694EC
+ thumb_func_start SetUpFieldTasks
+SetUpFieldTasks: @ 80694EC
push {r4,r5,lr}
- ldr r5, _08069548 @ =task_per_step_callback_manager
+ ldr r5, _08069548 @ =Task_RunPerStepCallback
adds r0, r5, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -273,7 +124,7 @@ overworld_ensure_per_step_coros_running: @ 80694EC
adds r1, r2
strh r4, [r1, 0x8]
_08069516:
- ldr r4, _08069550 @ =sub_806A1E8
+ ldr r4, _08069550 @ =Task_MuddySlope
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -283,7 +134,7 @@ _08069516:
movs r1, 0x50
bl CreateTask
_0806952C:
- ldr r4, _08069554 @ =sub_80694B8
+ ldr r4, _08069554 @ =Task_RunTimeBasedEvents
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -297,18 +148,18 @@ _08069542:
pop {r0}
bx r0
.align 2, 0
-_08069548: .4byte task_per_step_callback_manager
+_08069548: .4byte Task_RunPerStepCallback
_0806954C: .4byte gTasks
-_08069550: .4byte sub_806A1E8
-_08069554: .4byte sub_80694B8
- thumb_func_end overworld_ensure_per_step_coros_running
+_08069550: .4byte Task_MuddySlope
+_08069554: .4byte Task_RunTimeBasedEvents
+ thumb_func_end SetUpFieldTasks
- thumb_func_start activate_per_step_callback
-activate_per_step_callback: @ 8069558
+ thumb_func_start ActivatePerStepCallback
+ActivatePerStepCallback: @ 8069558
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08069590 @ =task_per_step_callback_manager
+ ldr r0, _08069590 @ =Task_RunPerStepCallback
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
@@ -333,7 +184,7 @@ _0806957C:
strh r0, [r1]
b _0806959A
.align 2, 0
-_08069590: .4byte task_per_step_callback_manager
+_08069590: .4byte Task_RunPerStepCallback
_08069594: .4byte gTasks + 0x8
_08069598:
strh r4, [r1]
@@ -341,16 +192,16 @@ _0806959A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end activate_per_step_callback
+ thumb_func_end ActivatePerStepCallback
- thumb_func_start wild_encounter_reset_coro_args
-wild_encounter_reset_coro_args: @ 80695A0
+ thumb_func_start ResetFieldTasksArgs
+ResetFieldTasksArgs: @ 80695A0
push {lr}
- ldr r0, _080695D0 @ =task_per_step_callback_manager
+ ldr r0, _080695D0 @ =Task_RunPerStepCallback
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
- ldr r0, _080695D4 @ =sub_80694B8
+ ldr r0, _080695D4 @ =Task_RunTimeBasedEvents
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
@@ -368,15 +219,15 @@ _080695CA:
pop {r0}
bx r0
.align 2, 0
-_080695D0: .4byte task_per_step_callback_manager
-_080695D4: .4byte sub_80694B8
+_080695D0: .4byte Task_RunPerStepCallback
+_080695D4: .4byte Task_RunTimeBasedEvents
_080695D8: .4byte gTasks + 0x8
- thumb_func_end wild_encounter_reset_coro_args
+ thumb_func_end ResetFieldTasksArgs
- thumb_func_start nullsub_51
-nullsub_51: @ 80695DC
+ thumb_func_start DummyPerStepCallback
+DummyPerStepCallback: @ 80695DC
bx lr
- thumb_func_end nullsub_51
+ thumb_func_end DummyPerStepCallback
thumb_func_start sub_80695E0
sub_80695E0: @ 80695E0
@@ -721,8 +572,8 @@ _08069854:
bx r1
thumb_func_end sub_80697C8
- thumb_func_start sub_8069864
-sub_8069864: @ 8069864
+ thumb_func_start PerStepCallback_8069864
+PerStepCallback_8069864: @ 8069864
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -905,7 +756,7 @@ _080699CE:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8069864
+ thumb_func_end PerStepCallback_8069864
thumb_func_start sub_80699D8
sub_80699D8: @ 80699D8
@@ -1011,8 +862,8 @@ _08069A96:
_08069A9C: .4byte 0x00000256
thumb_func_end sub_8069A3C
- thumb_func_start sub_8069AA0
-sub_8069AA0: @ 8069AA0
+ thumb_func_start PerStepCallback_8069AA0
+PerStepCallback_8069AA0: @ 8069AA0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1268,7 +1119,7 @@ _08069CA6:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8069AA0
+ thumb_func_end PerStepCallback_8069AA0
thumb_func_start sub_8069CB8
sub_8069CB8: @ 8069CB8
@@ -1428,8 +1279,8 @@ _08069DCC: .4byte gMapHeader
_08069DD0: .4byte 0x0000020e
thumb_func_end sub_8069D78
- thumb_func_start sub_8069DD4
-sub_8069DD4: @ 8069DD4
+ thumb_func_start PerStepCallback_8069DD4
+PerStepCallback_8069DD4: @ 8069DD4
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -1510,7 +1361,7 @@ _08069E4A:
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl sub_8057540
+ bl MetatileBehavior_IsThinIce
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1526,7 +1377,7 @@ _08069E4A:
_08069E8C: .4byte 0x00004022
_08069E90:
adds r0, r4, 0
- bl sub_8057554
+ bl MetatileBehavior_IsCrackedIce
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1628,10 +1479,10 @@ _08069F56:
bx r0
.align 2, 0
_08069F60: .4byte 0x00000206
- thumb_func_end sub_8069DD4
+ thumb_func_end PerStepCallback_8069DD4
- thumb_func_start sub_8069F64
-sub_8069F64: @ 8069F64
+ thumb_func_start PerStepCallback_8069F64
+PerStepCallback_8069F64: @ 8069F64
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
@@ -1733,7 +1584,7 @@ _0806A02A:
_0806A034: .4byte 0x00000206
_0806A038: .4byte 0x00004048
_0806A03C: .4byte 0x0000270e
- thumb_func_end sub_8069F64
+ thumb_func_end PerStepCallback_8069F64
thumb_func_start sub_806A040
sub_806A040: @ 806A040
@@ -1765,8 +1616,8 @@ _0806A074: .4byte 0x0000022f
_0806A078: .4byte 0x00000237
thumb_func_end sub_806A040
- thumb_func_start sub_806A07C
-sub_806A07C: @ 806A07C
+ thumb_func_start PerStepCallback_806A07C
+PerStepCallback_806A07C: @ 806A07C
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -1825,7 +1676,7 @@ _0806A0EE:
lsls r0, r6, 24
lsrs r6, r0, 24
adds r0, r6, 0
- bl sub_8057818
+ bl MetatileBehavior_IsCrackedFloorHole
lsls r0, 24
cmp r0, 0
beq _0806A106
@@ -1853,7 +1704,7 @@ _0806A122:
ldrh r0, [r4]
strh r0, [r5, 0x6]
adds r0, r6, 0
- bl sub_805782C
+ bl MetatileBehavior_IsCrackedFloor
lsls r0, 24
cmp r0, 0
beq _0806A182
@@ -1898,7 +1749,7 @@ _0806A182:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_806A07C
+ thumb_func_end PerStepCallback_806A07C
thumb_func_start sub_806A18C
sub_806A18C: @ 806A18C
@@ -1950,8 +1801,8 @@ _0806A1BC:
_0806A1E4: .4byte gUnknown_08376418
thumb_func_end sub_806A18C
- thumb_func_start sub_806A1E8
-sub_806A1E8: @ 806A1E8
+ thumb_func_start Task_MuddySlope
+Task_MuddySlope: @ 806A1E8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2116,173 +1967,6 @@ _0806A312:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_806A1E8
-
- thumb_func_start sub_806A328
-sub_806A328: @ 806A328
- push {lr}
- ldr r0, _0806A350 @ =0x00000835
- bl FlagSet
- bl RtcCalcLocalTime
- ldr r2, _0806A354 @ =gSaveBlock2
- adds r2, 0xA0
- ldr r3, _0806A358 @ =gLocalTime
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806A35C @ =0x00004040
- ldrh r1, [r3]
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806A350: .4byte 0x00000835
-_0806A354: .4byte gSaveBlock2
-_0806A358: .4byte gLocalTime
-_0806A35C: .4byte 0x00004040
- thumb_func_end sub_806A328
-
- thumb_func_start DoTimeBasedEvents
-DoTimeBasedEvents: @ 806A360
- push {r4,lr}
- ldr r0, _0806A388 @ =0x00000835
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806A380
- bl RtcCalcLocalTime
- ldr r4, _0806A38C @ =gLocalTime
- adds r0, r4, 0
- bl sub_806A390
- adds r0, r4, 0
- bl sub_806A3F4
-_0806A380:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A388: .4byte 0x00000835
-_0806A38C: .4byte gLocalTime
- thumb_func_end DoTimeBasedEvents
-
- thumb_func_start sub_806A390
-sub_806A390: @ 806A390
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _0806A3F0 @ =0x00004040
- bl GetVarPointer
- adds r6, r0, 0
- ldrh r0, [r6]
- movs r2, 0
- ldrsh r1, [r5, r2]
- cmp r0, r1
- beq _0806A3EA
- cmp r0, r1
- bgt _0806A3EA
- ldrh r4, [r5]
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- bl sub_80690B4
- adds r0, r4, 0
- bl sub_80FA220
- adds r0, r4, 0
- bl sub_80BE8C4
- adds r0, r4, 0
- bl sub_8080834
- adds r0, r4, 0
- bl UpdatePartyPokerusTime
- adds r0, r4, 0
- bl sub_810D2F4
- adds r0, r4, 0
- bl UpdateBirchState
- adds r0, r4, 0
- bl sub_810F618
- adds r0, r4, 0
- bl sub_8145AA4
- ldrh r0, [r5]
- strh r0, [r6]
-_0806A3EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A3F0: .4byte 0x00004040
- thumb_func_end sub_806A390
-
- thumb_func_start sub_806A3F4
-sub_806A3F4: @ 806A3F4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- mov r4, sp
- ldr r6, _0806A448 @ =gSaveBlock2 + 0xA0
- mov r0, sp
- adds r1, r6, 0
- adds r2, r5, 0
- bl CalcTimeDifference
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 5
- movs r2, 0x2
- ldrsb r2, [r4, r2]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 2
- adds r1, r0
- movs r0, 0x3
- ldrsb r0, [r4, r0]
- adds r0, r1, r0
- cmp r0, 0
- beq _0806A43E
- cmp r0, 0
- blt _0806A43E
- bl BerryTreeTimeUpdate
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
-_0806A43E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A448: .4byte gSaveBlock2 + 0xA0
- thumb_func_end sub_806A3F4
-
- thumb_func_start sub_806A44C
-sub_806A44C: @ 806A44C
- push {lr}
- bl sub_806A328
- ldr r0, _0806A45C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_806A44C
-
- thumb_func_start sub_806A460
-sub_806A460: @ 806A460
- push {lr}
- ldr r0, _0806A474 @ =Cb2_StartWallClock
- bl SetMainCallback2
- ldr r1, _0806A478 @ =gMain
- ldr r0, _0806A47C @ =sub_806A44C
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0806A474: .4byte Cb2_StartWallClock
-_0806A478: .4byte gMain
-_0806A47C: .4byte sub_806A44C
- thumb_func_end sub_806A460
+ thumb_func_end Task_MuddySlope
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
deleted file mode 100644
index 5d914c422..000000000
--- a/asm/fieldmap.s
+++ /dev/null
@@ -1,1998 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start mapconnection_get_mapheader
-mapconnection_get_mapheader: @ 8055F90
- push {lr}
- ldrb r2, [r0, 0x8]
- ldrb r1, [r0, 0x9]
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- pop {r1}
- bx r1
- thumb_func_end mapconnection_get_mapheader
-
- thumb_func_start not_trainer_hill_battle_pyramid
-not_trainer_hill_battle_pyramid: @ 8055FA0
- push {r4,lr}
- ldr r4, _08055FBC @ =gMapHeader
- adds r0, r4, 0
- bl mapheader_copy_mapdata_with_padding
- ldr r0, [r4, 0x4]
- bl sub_80BB970
- bl mapheader_run_script_with_tag_x1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08055FBC: .4byte gMapHeader
- thumb_func_end not_trainer_hill_battle_pyramid
-
- thumb_func_start sub_8055FC0
-sub_8055FC0: @ 8055FC0
- push {r4,lr}
- ldr r4, _08055FF0 @ =gMapHeader
- adds r0, r4, 0
- bl mapheader_copy_mapdata_with_padding
- movs r0, 0
- bl sub_80BBCCC
- ldr r0, [r4, 0x4]
- bl sub_80BB970
- bl sub_8056670
- bl mapheader_run_script_with_tag_x1
- ldr r1, _08055FF4 @ =gUnknown_03004870
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- bl UpdateTVScreensOnMap
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08055FF0: .4byte gMapHeader
-_08055FF4: .4byte gUnknown_03004870
- thumb_func_end sub_8055FC0
-
- thumb_func_start mapheader_copy_mapdata_with_padding
-mapheader_copy_mapdata_with_padding: @ 8055FF8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r5, [r6]
- ldr r0, _08056044 @ =0x03ff03ff
- str r0, [sp]
- ldr r4, _08056048 @ =gUnknown_02029828
- ldr r2, _0805604C @ =0x01001400
- mov r0, sp
- adds r1, r4, 0
- bl CpuFastSet
- ldr r2, _08056050 @ =gUnknown_03004870
- str r4, [r2, 0x8]
- ldr r1, [r5]
- adds r1, 0xF
- str r1, [r2]
- ldr r0, [r5, 0x4]
- adds r0, 0xE
- str r0, [r2, 0x4]
- muls r1, r0
- movs r0, 0xA0
- lsls r0, 6
- cmp r1, r0
- bgt _0805603A
- ldr r0, [r5, 0xC]
- ldrh r1, [r5]
- ldrh r2, [r5, 0x4]
- bl map_copy_with_padding
- adds r0, r6, 0
- bl sub_80560AC
-_0805603A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08056044: .4byte 0x03ff03ff
-_08056048: .4byte gUnknown_02029828
-_0805604C: .4byte 0x01001400
-_08056050: .4byte gUnknown_03004870
- thumb_func_end mapheader_copy_mapdata_with_padding
-
- thumb_func_start map_copy_with_padding
-map_copy_with_padding: @ 8056054
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080560A8 @ =gUnknown_03004870
- ldr r4, [r0, 0x8]
- ldr r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, 0xE
- adds r4, r0
- cmp r2, 0
- beq _0805609C
- mov r0, r8
- lsls r6, r0, 1
- adds r5, r2, 0
- movs r0, 0x1E
- adds r0, r6
- mov r9, r0
-_08056088:
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
- bl CpuSet
- add r4, r9
- adds r7, r6
- subs r5, 0x1
- cmp r5, 0
- bne _08056088
-_0805609C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080560A8: .4byte gUnknown_03004870
- thumb_func_end map_copy_with_padding
-
- thumb_func_start sub_80560AC
-sub_80560AC: @ 80560AC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [r6, 0xC]
- ldr r1, [r0]
- ldr r5, [r0, 0x4]
- ldr r2, _080560E0 @ =gUnknown_0202E850
- ldr r0, _080560E4 @ =gUnknown_08308E28
- ldr r0, [r0]
- str r0, [r2]
- cmp r1, 0
- ble _0805612C
- adds r4, r2, 0
- adds r7, r1, 0
-_080560C6:
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldr r2, [r5, 0x4]
- ldrb r0, [r5]
- cmp r0, 0x2
- beq _080560FE
- cmp r0, 0x2
- bgt _080560E8
- cmp r0, 0x1
- beq _080560F2
- b _08056124
- .align 2, 0
-_080560E0: .4byte gUnknown_0202E850
-_080560E4: .4byte gUnknown_08308E28
-_080560E8:
- cmp r0, 0x3
- beq _0805610A
- cmp r0, 0x4
- beq _08056116
- b _08056124
-_080560F2:
- adds r0, r6, 0
- bl sub_8056198
- ldrb r0, [r4]
- movs r1, 0x1
- b _08056120
-_080560FE:
- adds r0, r6, 0
- bl sub_8056200
- ldrb r0, [r4]
- movs r1, 0x2
- b _08056120
-_0805610A:
- adds r0, r6, 0
- bl sub_8056260
- ldrb r0, [r4]
- movs r1, 0x4
- b _08056120
-_08056116:
- adds r0, r6, 0
- bl sub_80562C0
- ldrb r0, [r4]
- movs r1, 0x8
-_08056120:
- orrs r0, r1
- strb r0, [r4]
-_08056124:
- subs r7, 0x1
- adds r5, 0xC
- cmp r7, 0
- bne _080560C6
-_0805612C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80560AC
-
- thumb_func_start sub_8056134
-sub_8056134: @ 8056134
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, [sp, 0x18]
- ldr r4, [r2]
- ldr r7, [r4]
- adds r2, r7, 0
- muls r2, r5
- adds r2, r3
- lsls r2, 1
- ldr r3, [r4, 0xC]
- adds r6, r3, r2
- ldr r3, _08056190 @ =gUnknown_03004870
- ldr r2, [r3]
- muls r1, r2
- adds r1, r0
- lsls r1, 1
- ldr r0, [r3, 0x8]
- adds r5, r0, r1
- ldr r0, [sp, 0x20]
- cmp r0, 0
- ble _08056186
- adds r4, r0, 0
- ldr r3, _08056194 @ =0x001fffff
- mov r8, r3
-_08056166:
- adds r0, r6, 0
- adds r1, r5, 0
- ldr r2, [sp, 0x1C]
- mov r3, r8
- ands r2, r3
- bl CpuSet
- ldr r0, _08056190 @ =gUnknown_03004870
- ldr r0, [r0]
- lsls r0, 1
- adds r5, r0
- lsls r0, r7, 1
- adds r6, r0
- subs r4, 0x1
- cmp r4, 0
- bne _08056166
-_08056186:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08056190: .4byte gUnknown_03004870
-_08056194: .4byte 0x001fffff
- thumb_func_end sub_8056134
-
- thumb_func_start sub_8056198
-sub_8056198: @ 8056198
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _080561F2
- ldr r0, [r5]
- ldr r4, [r0]
- adds r2, 0x7
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- adds r7, r0, 0x7
- cmp r2, 0
- bge _080561CC
- negs r6, r2
- adds r2, r4
- ldr r0, _080561C8 @ =gUnknown_03004870
- ldr r3, [r0]
- cmp r2, r3
- bge _080561C2
- adds r3, r2, 0
-_080561C2:
- movs r2, 0
- b _080561DC
- .align 2, 0
-_080561C8: .4byte gUnknown_03004870
-_080561CC:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _080561FC @ =gUnknown_03004870
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _080561DC
- adds r3, r4, 0
-_080561DC:
- movs r0, 0
- str r0, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- adds r1, r7, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8056134
-_080561F2:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080561FC: .4byte gUnknown_03004870
- thumb_func_end sub_8056198
-
- thumb_func_start sub_8056200
-sub_8056200: @ 8056200
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _08056254
- ldr r0, [r5]
- ldr r4, [r0]
- ldr r0, [r0, 0x4]
- adds r2, 0x7
- subs r7, r0, 0x7
- cmp r2, 0
- bge _08056230
- negs r6, r2
- adds r2, r4
- ldr r0, _0805622C @ =gUnknown_03004870
- ldr r3, [r0]
- cmp r2, r3
- bge _08056226
- adds r3, r2, 0
-_08056226:
- movs r2, 0
- b _08056240
- .align 2, 0
-_0805622C: .4byte gUnknown_03004870
-_08056230:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _0805625C @ =gUnknown_03004870
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _08056240
- adds r3, r4, 0
-_08056240:
- str r7, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8056134
-_08056254:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805625C: .4byte gUnknown_03004870
- thumb_func_end sub_8056200
-
- thumb_func_start sub_8056260
-sub_8056260: @ 8056260
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _080562B4
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r4, [r0, 0x4]
- adds r2, 0x7
- subs r7, r1, 0x7
- cmp r2, 0
- bge _08056290
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _0805628C @ =gUnknown_03004870
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _08056286
- adds r3, r1, 0
-_08056286:
- movs r2, 0
- b _080562A0
- .align 2, 0
-_0805628C: .4byte gUnknown_03004870
-_08056290:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _080562BC @ =gUnknown_03004870
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _080562A0
- adds r3, r4, 0
-_080562A0:
- str r6, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r0, 0
- adds r1, r2, 0
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8056134
-_080562B4:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080562BC: .4byte gUnknown_03004870
- thumb_func_end sub_8056260
-
- thumb_func_start sub_80562C0
-sub_80562C0: @ 80562C0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _08056318
- ldr r0, [r5]
- ldr r4, [r0, 0x4]
- ldr r0, [r3]
- ldr r0, [r0]
- adds r7, r0, 0x7
- adds r2, 0x7
- cmp r2, 0
- bge _080562F4
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _080562F0 @ =gUnknown_03004870
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _080562EA
- adds r3, r1, 0
-_080562EA:
- movs r2, 0
- b _08056304
- .align 2, 0
-_080562F0: .4byte gUnknown_03004870
-_080562F4:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08056320 @ =gUnknown_03004870
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _08056304
- adds r3, r4, 0
-_08056304:
- str r6, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_8056134
-_08056318:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08056320: .4byte gUnknown_03004870
- thumb_func_end sub_80562C0
-
- thumb_func_start MapGridGetZCoordAt
-MapGridGetZCoordAt: @ 8056324
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- cmp r2, 0
- blt _08056354
- ldr r1, _08056350 @ =gUnknown_03004870
- ldr r3, [r1]
- cmp r2, r3
- bge _08056354
- cmp r4, 0
- blt _08056354
- ldr r0, [r1, 0x4]
- cmp r4, r0
- bge _08056354
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _08056376
- .align 2, 0
-_08056350: .4byte gUnknown_03004870
-_08056354:
- ldr r0, _08056380 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r2, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r4, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08056376:
- ldr r0, _08056384 @ =0x000003ff
- cmp r1, r0
- beq _08056388
- lsrs r0, r1, 12
- b _0805638A
- .align 2, 0
-_08056380: .4byte gMapHeader
-_08056384: .4byte 0x000003ff
-_08056388:
- movs r0, 0
-_0805638A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MapGridGetZCoordAt
-
- thumb_func_start MapGridIsImpassableAt
-MapGridIsImpassableAt: @ 8056390
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- cmp r2, 0
- blt _080563C0
- ldr r1, _080563BC @ =gUnknown_03004870
- ldr r3, [r1]
- cmp r2, r3
- bge _080563C0
- cmp r4, 0
- blt _080563C0
- ldr r0, [r1, 0x4]
- cmp r4, r0
- bge _080563C0
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _080563E2
- .align 2, 0
-_080563BC: .4byte gUnknown_03004870
-_080563C0:
- ldr r0, _080563F4 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r2, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r4, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_080563E2:
- ldr r0, _080563F8 @ =0x000003ff
- cmp r1, r0
- beq _080563FC
- movs r0, 0xC0
- lsls r0, 4
- ands r1, r0
- lsrs r0, r1, 10
- b _080563FE
- .align 2, 0
-_080563F4: .4byte gMapHeader
-_080563F8: .4byte 0x000003ff
-_080563FC:
- movs r0, 0x1
-_080563FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MapGridIsImpassableAt
-
- thumb_func_start MapGridGetMetatileIdAt
-MapGridGetMetatileIdAt: @ 8056404
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- cmp r5, 0
- blt _08056434
- ldr r1, _08056430 @ =gUnknown_03004870
- ldr r2, [r1]
- cmp r5, r2
- bge _08056434
- cmp r6, 0
- blt _08056434
- ldr r0, [r1, 0x4]
- cmp r6, r0
- bge _08056434
- adds r0, r2, 0
- muls r0, r6
- adds r0, r5, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- b _08056458
- .align 2, 0
-_08056430: .4byte gUnknown_03004870
-_08056434:
- ldr r0, _08056464 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r5, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r6, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- adds r4, r0, 0
- orrs r4, r1
-_08056458:
- ldr r0, _08056468 @ =0x000003ff
- cmp r4, r0
- beq _0805646C
- ands r4, r0
- adds r0, r4, 0
- b _08056490
- .align 2, 0
-_08056464: .4byte gMapHeader
-_08056468: .4byte 0x000003ff
-_0805646C:
- ldr r0, _08056498 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r5, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r6, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r1, r2, 0
- orrs r0, r1
- ands r0, r4
-_08056490:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08056498: .4byte gMapHeader
- thumb_func_end MapGridGetMetatileIdAt
-
- thumb_func_start MapGridGetMetatileBehaviorAt
-MapGridGetMetatileBehaviorAt: @ 805649C
- push {lr}
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- adds r1, r0, 0
- movs r0, 0xFF
- ands r0, r1
- pop {r1}
- bx r1
- thumb_func_end MapGridGetMetatileBehaviorAt
-
- thumb_func_start MapGridGetMetatileLayerTypeAt
-MapGridGetMetatileLayerTypeAt: @ 80564B4
- push {lr}
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- adds r1, r0, 0
- movs r0, 0xF0
- lsls r0, 8
- ands r0, r1
- lsrs r0, 12
- pop {r1}
- bx r1
- thumb_func_end MapGridGetMetatileLayerTypeAt
-
- thumb_func_start MapGridSetMetatileIdAt
-MapGridSetMetatileIdAt: @ 80564D0
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08056508
- ldr r2, _08056510 @ =gUnknown_03004870
- ldr r4, [r2]
- cmp r3, r4
- bge _08056508
- cmp r1, 0
- blt _08056508
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08056508
- muls r1, r4
- adds r1, r3, r1
- ldr r0, [r2, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- movs r2, 0xF0
- lsls r2, 8
- ands r2, r0
- ldr r0, _08056514 @ =0x00000fff
- ands r0, r5
- orrs r2, r0
- strh r2, [r1]
-_08056508:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08056510: .4byte gUnknown_03004870
-_08056514: .4byte 0x00000fff
- thumb_func_end MapGridSetMetatileIdAt
-
- thumb_func_start MapGridSetMetatileEntryAt
-MapGridSetMetatileEntryAt: @ 8056518
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08056544
- ldr r2, _0805654C @ =gUnknown_03004870
- ldr r4, [r2]
- cmp r3, r4
- bge _08056544
- cmp r1, 0
- blt _08056544
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08056544
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3, r0
- ldr r1, [r2, 0x8]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
-_08056544:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805654C: .4byte gUnknown_03004870
- thumb_func_end MapGridSetMetatileEntryAt
-
- thumb_func_start GetBehaviorByMetatileId
-GetBehaviorByMetatileId: @ 8056550
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- adds r3, r2, 0
- ldr r0, _0805656C @ =0x000001ff
- cmp r2, r0
- bhi _08056574
- ldr r0, _08056570 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- ldr r1, [r0, 0x10]
- lsls r0, r2, 1
- b _08056592
- .align 2, 0
-_0805656C: .4byte 0x000001ff
-_08056570: .4byte gMapHeader
-_08056574:
- ldr r0, _08056580 @ =0x000003ff
- cmp r2, r0
- bls _08056584
- movs r0, 0xFF
- b _08056596
- .align 2, 0
-_08056580: .4byte 0x000003ff
-_08056584:
- ldr r0, _0805659C @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x14]
- ldr r1, [r0, 0x10]
- lsls r0, r3, 1
- adds r0, r1
- ldr r1, _080565A0 @ =0xfffffc00
-_08056592:
- adds r0, r1
- ldrh r0, [r0]
-_08056596:
- pop {r1}
- bx r1
- .align 2, 0
-_0805659C: .4byte gMapHeader
-_080565A0: .4byte 0xfffffc00
- thumb_func_end GetBehaviorByMetatileId
-
- thumb_func_start save_serialize_map
-save_serialize_map: @ 80565A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, _0805660C @ =gSaveBlock1 + 0x34
- ldr r0, _08056610 @ =gUnknown_03004870
- ldr r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- subs r0, 0x34
- movs r1, 0
- ldrsh r6, [r0, r1]
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _080565FE
- mov r12, r1
- ldr r1, _08056614 @ =gUnknown_02029828
- mov r9, r1
- lsls r7, r6, 1
-_080565D0:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r4, r0, 0x1
- cmp r1, r3
- bge _080565F8
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_080565EA:
- ldrh r0, [r2]
- strh r0, [r5]
- adds r5, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _080565EA
-_080565F8:
- adds r0, r4, 0
- cmp r0, r12
- blt _080565D0
-_080565FE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805660C: .4byte gSaveBlock1 + 0x34
-_08056610: .4byte gUnknown_03004870
-_08056614: .4byte gUnknown_02029828
- thumb_func_end save_serialize_map
-
- thumb_func_start sub_8056618
-sub_8056618: @ 8056618
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r4, _0805663C @ =gSaveBlock1 + 0x34
- ldr r3, _08056640 @ =0x000001ff
-_08056622:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r0, [r0]
- orrs r2, r0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08056622
- cmp r2, 0
- beq _08056644
- movs r0, 0
- b _08056646
- .align 2, 0
-_0805663C: .4byte gSaveBlock1 + 0x34
-_08056640: .4byte 0x000001ff
-_08056644:
- movs r0, 0x1
-_08056646:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8056618
-
- thumb_func_start sav2_mapdata_clear
-sav2_mapdata_clear: @ 805664C
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08056668 @ =gSaveBlock1 + 0x34
- ldr r2, _0805666C @ =0x01000100
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08056668: .4byte gSaveBlock1 + 0x34
-_0805666C: .4byte 0x01000100
- thumb_func_end sav2_mapdata_clear
-
- thumb_func_start sub_8056670
-sub_8056670: @ 8056670
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, _080566E4 @ =gSaveBlock1 + 0x34
- bl sub_8056618
- cmp r0, 0
- bne _080566D6
- ldr r0, _080566E8 @ =gUnknown_03004870
- ldr r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- subs r0, 0x34
- movs r1, 0
- ldrsh r6, [r0, r1]
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _080566D2
- mov r12, r1
- ldr r1, _080566EC @ =gUnknown_02029828
- mov r9, r1
- lsls r7, r6, 1
-_080566A4:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r4, r0, 0x1
- cmp r1, r3
- bge _080566CC
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_080566BE:
- ldrh r0, [r5]
- strh r0, [r2]
- adds r5, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _080566BE
-_080566CC:
- adds r0, r4, 0
- cmp r0, r12
- blt _080566A4
-_080566D2:
- bl sav2_mapdata_clear
-_080566D6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080566E4: .4byte gSaveBlock1 + 0x34
-_080566E8: .4byte gUnknown_03004870
-_080566EC: .4byte gUnknown_02029828
- thumb_func_end sub_8056670
-
- thumb_func_start sub_80566F0
-sub_80566F0: @ 80566F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _08056734 @ =gSaveBlock1 + 0x34
- mov r10, r0
- ldr r0, _08056738 @ =gUnknown_03004870
- ldr r0, [r0]
- str r0, [sp]
- movs r3, 0
- mov r9, r3
- mov r8, r3
- mov r0, r10
- subs r0, 0x34
- movs r6, 0
- ldrsh r4, [r0, r6]
- str r4, [sp, 0x4]
- movs r3, 0x2
- ldrsh r5, [r0, r3]
- movs r7, 0xF
- movs r4, 0xE
- mov r12, r4
- cmp r1, 0x2
- beq _08056746
- cmp r1, 0x2
- bgt _0805673C
- cmp r1, 0x1
- beq _0805674E
- b _08056766
- .align 2, 0
-_08056734: .4byte gSaveBlock1 + 0x34
-_08056738: .4byte gUnknown_03004870
-_0805673C:
- cmp r2, 0x3
- beq _08056758
- cmp r2, 0x4
- beq _08056760
- b _08056766
-_08056746:
- adds r5, 0x1
- movs r6, 0xD
- mov r12, r6
- b _08056766
-_0805674E:
- movs r0, 0x1
- mov r8, r0
- movs r1, 0xD
- mov r12, r1
- b _08056766
-_08056758:
- ldr r3, [sp, 0x4]
- adds r3, 0x1
- str r3, [sp, 0x4]
- b _08056764
-_08056760:
- movs r4, 0x1
- mov r9, r4
-_08056764:
- movs r7, 0xE
-_08056766:
- movs r1, 0
- cmp r1, r12
- bge _080567A8
-_0805676C:
- adds r4, r1, 0x1
- cmp r7, 0
- beq _080567A2
- adds r0, r1, r5
- ldr r6, [sp]
- adds r2, r6, 0
- muls r2, r0
- add r1, r8
- lsls r0, r1, 4
- subs r0, r1
- add r0, r9
- ldr r1, [sp, 0x4]
- adds r2, r1, r2
- adds r3, r7, 0
- lsls r2, 1
- ldr r6, _080567BC @ =gUnknown_02029828
- adds r2, r6
- lsls r0, 1
- mov r6, r10
- adds r1, r0, r6
-_08056794:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08056794
-_080567A2:
- adds r1, r4, 0
- cmp r1, r12
- blt _0805676C
-_080567A8:
- bl sav2_mapdata_clear
- 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
-_080567BC: .4byte gUnknown_02029828
- thumb_func_end sub_80566F0
-
- thumb_func_start GetMapBorderIdAt
-GetMapBorderIdAt: @ 80567C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- cmp r4, 0
- blt _080567FC
- ldr r1, _080567F4 @ =gUnknown_03004870
- ldr r2, [r1]
- cmp r4, r2
- bge _080567FC
- cmp r5, 0
- blt _080567FC
- ldr r0, [r1, 0x4]
- cmp r5, r0
- bge _080567FC
- adds r0, r2, 0
- muls r0, r5
- adds r0, r4, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _080567F8 @ =0x000003ff
- cmp r1, r0
- beq _08056894
- b _08056824
- .align 2, 0
-_080567F4: .4byte gUnknown_03004870
-_080567F8: .4byte 0x000003ff
-_080567FC:
- ldr r0, _08056840 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r4, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r5, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r0, r1
- ldr r1, _08056844 @ =0x000003ff
- cmp r0, r1
- beq _08056894
-_08056824:
- ldr r1, _08056848 @ =gUnknown_03004870
- ldr r0, [r1]
- subs r0, 0x8
- cmp r4, r0
- blt _08056850
- ldr r0, _0805684C @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08056894
- movs r0, 0x4
- b _080568A6
- .align 2, 0
-_08056840: .4byte gMapHeader
-_08056844: .4byte 0x000003ff
-_08056848: .4byte gUnknown_03004870
-_0805684C: .4byte gUnknown_0202E850
-_08056850:
- cmp r4, 0x6
- bgt _08056868
- ldr r0, _08056864 @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08056894
- movs r0, 0x3
- b _080568A6
- .align 2, 0
-_08056864: .4byte gUnknown_0202E850
-_08056868:
- ldr r0, [r1, 0x4]
- subs r0, 0x7
- cmp r5, r0
- blt _08056884
- ldr r0, _08056880 @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08056894
- movs r0, 0x1
- b _080568A6
- .align 2, 0
-_08056880: .4byte gUnknown_0202E850
-_08056884:
- cmp r5, 0x6
- bgt _080568A4
- ldr r0, _0805689C @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080568A0
-_08056894:
- movs r0, 0x1
- negs r0, r0
- b _080568A6
- .align 2, 0
-_0805689C: .4byte gUnknown_0202E850
-_080568A0:
- movs r0, 0x2
- b _080568A6
-_080568A4:
- movs r0, 0
-_080568A6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetMapBorderIdAt
-
- thumb_func_start GetPostCameraMoveMapBorderId
-GetPostCameraMoveMapBorderId: @ 80568AC
- push {r4,lr}
- adds r3, r1, 0
- ldr r1, _080568D0 @ =gSaveBlock1
- movs r4, 0
- ldrsh r2, [r1, r4]
- adds r0, 0x7
- adds r2, r0
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- adds r3, 0x7
- adds r1, r3
- adds r0, r2, 0
- bl GetMapBorderIdAt
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080568D0: .4byte gSaveBlock1
- thumb_func_end GetPostCameraMoveMapBorderId
-
- thumb_func_start CanCameraMoveInDirection
-CanCameraMoveInDirection: @ 80568D4
- push {r4,r5,lr}
- ldr r4, _08056908 @ =gSaveBlock1
- movs r1, 0
- ldrsh r3, [r4, r1]
- ldr r2, _0805690C @ =gUnknown_0821664C
- lsls r0, 3
- adds r1, r0, r2
- ldr r1, [r1]
- adds r1, 0x7
- adds r3, r1
- movs r5, 0x2
- ldrsh r1, [r4, r5]
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- adds r0, 0x7
- adds r1, r0
- adds r0, r3, 0
- bl GetMapBorderIdAt
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _08056910
- movs r0, 0x1
- b _08056912
- .align 2, 0
-_08056908: .4byte gSaveBlock1
-_0805690C: .4byte gUnknown_0821664C
-_08056910:
- movs r0, 0
-_08056912:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CanCameraMoveInDirection
-
- thumb_func_start sub_8056918
-sub_8056918: @ 8056918
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- cmp r4, 0x2
- beq _08056978
- cmp r4, 0x2
- bgt _08056936
- cmp r4, 0x1
- beq _08056964
- b _08056988
-_08056936:
- cmp r4, 0x3
- beq _08056950
- cmp r4, 0x4
- bne _08056988
- ldr r1, _0805694C @ =gSaveBlock1
- negs r0, r6
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08056986
- .align 2, 0
-_0805694C: .4byte gSaveBlock1
-_08056950:
- ldr r1, _08056960 @ =gSaveBlock1
- ldr r0, [r3]
- ldr r0, [r0]
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08056986
- .align 2, 0
-_08056960: .4byte gSaveBlock1
-_08056964:
- ldr r1, _08056974 @ =gSaveBlock1
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- negs r0, r7
- b _08056986
- .align 2, 0
-_08056974: .4byte gSaveBlock1
-_08056978:
- ldr r1, _08056990 @ =gSaveBlock1
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
-_08056986:
- strh r0, [r1, 0x2]
-_08056988:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08056990: .4byte gSaveBlock1
- thumb_func_end sub_8056918
-
- thumb_func_start CameraMove
-CameraMove: @ 8056994
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- str r1, [sp]
- ldr r1, _080569D4 @ =gUnknown_0202E844
- ldrb r0, [r1]
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- ldr r2, _080569D4 @ =gUnknown_0202E844
- strb r1, [r2]
- mov r0, r10
- ldr r1, [sp]
- bl GetPostCameraMoveMapBorderId
- adds r7, r0, 0
- adds r0, r7, 0x1
- cmp r0, 0x1
- bhi _080569DC
- ldr r0, _080569D8 @ =gSaveBlock1
- ldrh r1, [r0]
- add r1, r10
- strh r1, [r0]
- ldrh r1, [r0, 0x2]
- ldr r2, [sp]
- adds r1, r2
- strh r1, [r0, 0x2]
- b _08056A42
- .align 2, 0
-_080569D4: .4byte gUnknown_0202E844
-_080569D8: .4byte gSaveBlock1
-_080569DC:
- bl save_serialize_map
- ldr r5, _08056A5C @ =gSaveBlock1
- movs r0, 0
- ldrsh r6, [r5, r0]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- mov r8, r1
- lsls r0, r7, 24
- lsrs r0, 24
- mov r9, r0
- adds r1, r6, 0
- mov r2, r8
- bl sub_8056A64
- adds r4, r0, 0
- adds r1, r7, 0
- mov r2, r10
- ldr r3, [sp]
- bl sub_8056918
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- bl sub_80538F0
- ldr r1, _08056A60 @ =gUnknown_0202E844
- ldrb r0, [r1]
- movs r1, 0x1
- orrs r0, r1
- ldr r2, _08056A60 @ =gUnknown_0202E844
- strb r0, [r2]
- movs r1, 0
- ldrsh r0, [r5, r1]
- subs r6, r0
- str r6, [r2, 0x4]
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- mov r1, r8
- subs r1, r0
- ldr r2, _08056A60 @ =gUnknown_0202E844
- str r1, [r2, 0x8]
- ldrh r0, [r5]
- add r0, r10
- strh r0, [r5]
- ldrh r0, [r5, 0x2]
- ldr r1, [sp]
- adds r0, r1
- strh r0, [r5, 0x2]
- mov r0, r9
- bl sub_80566F0
-_08056A42:
- ldr r0, _08056A60 @ =gUnknown_0202E844
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08056A5C: .4byte gSaveBlock1
-_08056A60: .4byte gUnknown_0202E844
- thumb_func_end CameraMove
-
- thumb_func_start sub_8056A64
-sub_8056A64: @ 8056A64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r1
- mov r8, r2
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08056AA0 @ =gMapHeader
- ldr r0, [r0, 0xC]
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r5, 0
- cmp r5, r7
- bge _08056AAC
-_08056A82:
- ldrb r0, [r4]
- cmp r0, r6
- bne _08056AA4
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- adds r3, r4, 0
- bl sub_8056ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08056AA4
- adds r0, r4, 0
- b _08056AAE
- .align 2, 0
-_08056AA0: .4byte gMapHeader
-_08056AA4:
- adds r5, 0x1
- adds r4, 0xC
- cmp r5, r7
- blt _08056A82
-_08056AAC:
- movs r0, 0
-_08056AAE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8056A64
-
- thumb_func_start sub_8056ABC
-sub_8056ABC: @ 8056ABC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- mov r8, r2
- adds r5, r3, 0
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r2, r0, 0
- cmp r4, 0x1
- blt _08056B14
- cmp r4, 0x2
- bgt _08056AF4
- ldr r0, _08056AF0 @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r0, [r2]
- ldr r2, [r0]
- ldr r3, [r5, 0x4]
- adds r0, r7, 0
- b _08056B06
- .align 2, 0
-_08056AF0: .4byte gMapHeader
-_08056AF4:
- cmp r6, 0x4
- bgt _08056B14
- ldr r0, _08056B10 @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- ldr r0, [r2]
- ldr r2, [r0, 0x4]
- ldr r3, [r5, 0x4]
- mov r0, r8
-_08056B06:
- bl sub_8056B20
- lsls r0, 24
- lsrs r0, 24
- b _08056B16
- .align 2, 0
-_08056B10: .4byte gMapHeader
-_08056B14:
- movs r0, 0
-_08056B16:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8056ABC
-
- thumb_func_start sub_8056B20
-sub_8056B20: @ 8056B20
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r2, 0
- adds r2, r3, 0
- cmp r3, 0
- bge _08056B2E
- movs r3, 0
-_08056B2E:
- adds r2, r0, r2
- cmp r2, r1
- bge _08056B36
- adds r1, r2, 0
-_08056B36:
- cmp r3, r4
- bgt _08056B42
- cmp r4, r1
- bgt _08056B42
- movs r0, 0x1
- b _08056B44
-_08056B42:
- movs r0, 0
-_08056B44:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8056B20
-
- thumb_func_start sub_8056B4C
-sub_8056B4C: @ 8056B4C
- push {lr}
- cmp r0, 0
- blt _08056B5A
- cmp r0, r1
- bge _08056B5A
- movs r0, 0x1
- b _08056B5C
-_08056B5A:
- movs r0, 0
-_08056B5C:
- pop {r1}
- bx r1
- thumb_func_end sub_8056B4C
-
- thumb_func_start sub_8056B60
-sub_8056B60: @ 8056B60
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x1
- blt _08056B98
- cmp r0, 0x2
- bgt _08056B86
- ldr r0, [r4, 0x4]
- subs r0, r5, r0
- ldr r1, [r1]
- ldr r1, [r1]
- bl sub_8056B4C
- b _08056B9A
-_08056B86:
- cmp r0, 0x4
- bgt _08056B98
- ldr r0, [r4, 0x4]
- subs r0, r6, r0
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- bl sub_8056B4C
- b _08056B9A
-_08056B98:
- movs r0, 0
-_08056B9A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8056B60
-
- thumb_func_start sub_8056BA0
-sub_8056BA0: @ 8056BA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08056BC0 @ =gMapHeader
- ldr r0, [r2, 0xC]
- cmp r0, 0
- bne _08056BC8
- b _08056C3E
- .align 2, 0
-_08056BC0: .4byte gMapHeader
-_08056BC4:
- adds r0, r4, 0
- b _08056C40
-_08056BC8:
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r6, 0
- cmp r6, r7
- bge _08056C3E
- lsls r0, r1, 16
- asrs r5, r0, 16
- mov r9, r2
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- mov r10, r0
-_08056BE0:
- ldrb r1, [r4]
- adds r3, r1, 0
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08056C36
- cmp r1, 0x2
- bne _08056BF6
- cmp r5, 0x6
- bgt _08056C36
-_08056BF6:
- cmp r1, 0x1
- bne _08056C06
- mov r2, r9
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r0, 0x7
- cmp r5, r0
- blt _08056C36
-_08056C06:
- mov r0, r8
- lsls r2, r0, 16
- cmp r1, 0x3
- bne _08056C14
- mov r1, r10
- cmp r1, 0x6
- bgt _08056C36
-_08056C14:
- cmp r3, 0x4
- bne _08056C26
- asrs r1, r2, 16
- mov r3, r9
- ldr r0, [r3]
- ldr r0, [r0]
- adds r0, 0x7
- cmp r1, r0
- blt _08056C36
-_08056C26:
- asrs r1, r2, 16
- subs r1, 0x7
- adds r0, r4, 0
- subs r2, r5, 0x7
- bl sub_8056B60
- cmp r0, 0x1
- beq _08056BC4
-_08056C36:
- adds r6, 0x1
- adds r4, 0xC
- cmp r6, r7
- blt _08056BE0
-_08056C3E:
- movs r0, 0
-_08056C40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8056BA0
-
- thumb_func_start sub_8056C50
-sub_8056C50: @ 8056C50
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08056C64 @ =gSaveBlock1
- subs r0, 0x7
- strh r0, [r2]
- subs r1, 0x7
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_08056C64: .4byte gSaveBlock1
- thumb_func_end sub_8056C50
-
- thumb_func_start sav1_camera_get_focus_coords
-sav1_camera_get_focus_coords: @ 8056C68
- ldr r3, _08056C78 @ =gSaveBlock1
- ldrh r2, [r3]
- adds r2, 0x7
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- adds r0, 0x7
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08056C78: .4byte gSaveBlock1
- thumb_func_end sav1_camera_get_focus_coords
-
- thumb_func_start unref_sub_8056C7C
-unref_sub_8056C7C: @ 8056C7C
- ldr r2, _08056C84 @ =gSaveBlock1
- strh r0, [r2]
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_08056C84: .4byte gSaveBlock1
- thumb_func_end unref_sub_8056C7C
-
- thumb_func_start GetCameraCoords
-GetCameraCoords: @ 8056C88
- ldr r3, _08056C94 @ =gSaveBlock1
- ldrh r2, [r3]
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08056C94: .4byte gSaveBlock1
- thumb_func_end GetCameraCoords
-
- thumb_func_start sub_8056C98
-sub_8056C98: @ 8056C98
- push {lr}
- adds r2, r0, 0
- cmp r2, 0
- beq _08056CB8
- ldrb r0, [r2]
- cmp r0, 0
- bne _08056CB2
- ldr r0, [r2, 0x4]
- movs r2, 0x80
- lsls r2, 5
- bl CpuFastSet
- b _08056CB8
-_08056CB2:
- ldr r0, [r2, 0x4]
- bl LZ77UnCompVram
-_08056CB8:
- pop {r0}
- bx r0
- thumb_func_end sub_8056C98
-
- thumb_func_start sub_8056CBC
-sub_8056CBC: @ 8056CBC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- cmp r4, 0
- beq _08056D1E
- ldrb r1, [r4, 0x1]
- cmp r1, 0
- bne _08056CEE
- mov r0, sp
- strh r1, [r0]
- lsls r1, r5, 16
- lsrs r1, 16
- movs r2, 0x2
- bl LoadPalette
- ldr r0, [r4, 0x8]
- adds r0, 0x2
- adds r1, r5, 0x1
- lsls r1, 16
- lsrs r1, 16
- subs r2, r6, 0x2
- lsls r2, 16
- b _08056CFC
-_08056CEE:
- cmp r1, 0x1
- bne _08056D04
- ldr r0, [r4, 0x8]
- adds r0, 0xC0
- lsls r1, r5, 16
- lsrs r1, 16
- lsls r2, r6, 16
-_08056CFC:
- lsrs r2, 16
- bl LoadPalette
- b _08056D1E
-_08056D04:
- ldr r0, [r4, 0x8]
- movs r4, 0x80
- lsls r4, 18
- adds r1, r4, 0
- bl LZ77UnCompVram
- lsls r1, r5, 16
- lsrs r1, 16
- lsls r2, r6, 16
- lsrs r2, 16
- adds r0, r4, 0
- bl LoadPalette
-_08056D1E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8056CBC
-
- thumb_func_start sub_8056D28
-sub_8056D28: @ 8056D28
- push {lr}
- movs r1, 0xC0
- lsls r1, 19
- ldr r0, [r0, 0x10]
- bl sub_8056C98
- pop {r0}
- bx r0
- thumb_func_end sub_8056D28
-
- thumb_func_start sub_8056D38
-sub_8056D38: @ 8056D38
- push {lr}
- ldr r1, _08056D48 @ =0x06004000
- ldr r0, [r0, 0x14]
- bl sub_8056C98
- pop {r0}
- bx r0
- .align 2, 0
-_08056D48: .4byte 0x06004000
- thumb_func_end sub_8056D38
-
- thumb_func_start apply_map_tileset1_palette
-apply_map_tileset1_palette: @ 8056D4C
- push {lr}
- ldr r0, [r0, 0x10]
- movs r1, 0
- movs r2, 0xC0
- bl sub_8056CBC
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset1_palette
-
- thumb_func_start apply_map_tileset2_palette
-apply_map_tileset2_palette: @ 8056D5C
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0x60
- movs r2, 0xC0
- bl sub_8056CBC
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset2_palette
-
- thumb_func_start copy_map_tileset1_tileset2_to_vram
-copy_map_tileset1_tileset2_to_vram: @ 8056D6C
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08056D7E
- bl sub_8056D28
- adds r0, r4, 0
- bl sub_8056D38
-_08056D7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end copy_map_tileset1_tileset2_to_vram
-
- thumb_func_start apply_map_tileset1_tileset2_palette
-apply_map_tileset1_tileset2_palette: @ 8056D84
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08056D96
- bl apply_map_tileset1_palette
- adds r0, r4, 0
- bl apply_map_tileset2_palette
-_08056D96:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset1_tileset2_palette
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
index cab7524b2..4214f8f9e 100644
--- a/asm/fldeff_80C5CD4.s
+++ b/asm/fldeff_80C5CD4.s
@@ -808,7 +808,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_80571EC
+ bl MetatileBehavior_IsSecretBaseCave
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -829,7 +829,7 @@ _080C6328: .4byte gUnknown_03005CE4
_080C632C: .4byte sub_80C639C
_080C6330:
adds r0, r4, 0
- bl sub_805720C
+ bl MetatileBehavior_IsSecretBaseTree
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -848,7 +848,7 @@ _080C6358: .4byte gUnknown_03005CE4
_080C635C: .4byte sub_80C64A8
_080C6360:
adds r0, r4, 0
- bl is_tile_x98
+ bl MetatileBehavior_IsSecretBaseShrub
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
new file mode 100644
index 000000000..a56ad32fa
--- /dev/null
+++ b/asm/fldeff_cut.s
@@ -0,0 +1,797 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Cut
+SetUpFieldMove_Cut: @ 80A2504
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x52
+ bl npc_before_player_of_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2534
+ ldr r1, _080A2524 @ =gUnknown_0300485C
+ ldr r0, _080A2528 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080A252C @ =gUnknown_03005CE4
+ ldr r0, _080A2530 @ =sub_80A2634
+ b _080A25A8
+ .align 2, 0
+_080A2524: .4byte gUnknown_0300485C
+_080A2528: .4byte sub_808AB90
+_080A252C: .4byte gUnknown_03005CE4
+_080A2530: .4byte sub_80A2634
+_080A2534:
+ ldr r4, _080A25B0 @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ movs r7, 0
+ mov r8, r4
+_080A2542:
+ ldr r1, _080A25B4 @ =0x0000ffff
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A2552:
+ ldr r1, _080A25B4 @ =0x0000ffff
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A25C8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsPokeGrass
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A259E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAsh
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A25C8
+_080A259E:
+ ldr r1, _080A25B8 @ =gUnknown_0300485C
+ ldr r0, _080A25BC @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080A25C0 @ =gUnknown_03005CE4
+ ldr r0, _080A25C4 @ =sub_80A25E8
+_080A25A8:
+ str r0, [r1]
+ movs r0, 0x1
+ b _080A25DE
+ .align 2, 0
+_080A25B0: .4byte gUnknown_0203923C
+_080A25B4: .4byte 0x0000ffff
+_080A25B8: .4byte gUnknown_0300485C
+_080A25BC: .4byte sub_808AB90
+_080A25C0: .4byte gUnknown_03005CE4
+_080A25C4: .4byte sub_80A25E8
+_080A25C8:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A2552
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A2542
+ movs r0, 0
+_080A25DE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Cut
+
+ thumb_func_start sub_80A25E8
+sub_80A25E8: @ 80A25E8
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectStart
+ ldr r0, _080A25FC @ =gUnknown_0202FF84
+ ldr r1, _080A2600 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A25FC: .4byte gUnknown_0202FF84
+_080A2600: .4byte gUnknown_03005CE0
+ thumb_func_end sub_80A25E8
+
+ thumb_func_start FldEff_UseCutOnGrass
+FldEff_UseCutOnGrass: @ 80A2604
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A262C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2630 @ =sub_80A2684
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl IncrementGameStat
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A262C: .4byte gTasks
+_080A2630: .4byte sub_80A2684
+ thumb_func_end FldEff_UseCutOnGrass
+
+ thumb_func_start sub_80A2634
+sub_80A2634: @ 80A2634
+ push {lr}
+ ldr r1, _080A2648 @ =gUnknown_0202FF84
+ ldr r0, _080A264C @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080A2650 @ =UseCutScript
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2648: .4byte gUnknown_0202FF84
+_080A264C: .4byte gUnknown_03005CE0
+_080A2650: .4byte UseCutScript
+ thumb_func_end sub_80A2634
+
+ thumb_func_start FldEff_UseCutOnTree
+FldEff_UseCutOnTree: @ 80A2654
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A267C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2680 @ =sub_80A2B00
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl IncrementGameStat
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A267C: .4byte gTasks
+_080A2680: .4byte sub_80A2B00
+ thumb_func_end FldEff_UseCutOnTree
+
+ thumb_func_start sub_80A2684
+sub_80A2684: @ 80A2684
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectActiveListRemove
+ movs r0, 0x3A
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2684
+
+ thumb_func_start FldEff_CutGrass
+FldEff_CutGrass: @ 80A2698
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ movs r0, 0x80
+ bl PlaySE
+ ldr r4, _080A2790 @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ mov r8, r4
+_080A26B2:
+ ldr r1, _080A2794 @ =0x0000ffff
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A26C2:
+ ldr r1, _080A2794 @ =0x0000ffff
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80578F8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A27A8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805BCC0
+_080A270E:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A26C2
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A26B2
+ ldr r1, _080A2790 @ =gUnknown_0203923C
+ ldrh r0, [r1]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r1, 0x2]
+ subs r1, 0x2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80A28F4
+ bl DrawWholeMapView
+ movs r7, 0
+ ldr r4, _080A2798 @ =gSprites
+_080A2740:
+ ldr r0, _080A279C @ =gPlayerAvatar
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r2, 0x80
+ lsls r2, 12
+ adds r1, r2
+ asrs r1, 16
+ ldrb r2, [r0]
+ adds r2, 0x14
+ ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080A27A4 @ =0x0201fff0
+ adds r1, r7, r1
+ strb r0, [r1]
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ lsls r1, r7, 5
+ strh r1, [r0, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _080A2740
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2790: .4byte gUnknown_0203923C
+_080A2794: .4byte 0x0000ffff
+_080A2798: .4byte gSprites
+_080A279C: .4byte gPlayerAvatar
+_080A27A0: .4byte gSpriteTemplate_CutGrass
+_080A27A4: .4byte 0x0201fff0
+ thumb_func_end FldEff_CutGrass
+
+ thumb_func_start sub_80A27A8
+sub_80A27A8: @ 80A27A8
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r0, 16
+ asrs r4, r0, 16
+ lsrs r7, r1, 16
+ asrs r5, r1, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080A27E0 @ =0x00000207
+ cmp r1, r0
+ bgt _080A27F4
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080A286C
+ cmp r1, 0x25
+ beq _080A288E
+ cmp r1, 0x25
+ bgt _080A27E4
+ cmp r1, 0xD
+ beq _080A2834
+ cmp r1, 0x15
+ beq _080A2834
+ b _080A2898
+ .align 2, 0
+_080A27E0: .4byte 0x00000207
+_080A27E4:
+ movs r0, 0xE3
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A2844
+ adds r0, 0x1
+ cmp r1, r0
+ beq _080A284A
+ b _080A2898
+_080A27F4:
+ ldr r0, _080A280C @ =0x00000212
+ cmp r1, r0
+ beq _080A287C
+ cmp r1, r0
+ bgt _080A2810
+ subs r0, 0xA
+ cmp r1, r0
+ beq _080A2834
+ adds r0, 0x2
+ cmp r1, r0
+ beq _080A287C
+ b _080A2898
+ .align 2, 0
+_080A280C: .4byte 0x00000212
+_080A2810:
+ ldr r0, _080A2824 @ =0x00000282
+ cmp r1, r0
+ beq _080A285C
+ cmp r1, r0
+ bgt _080A2828
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A2854
+ b _080A2898
+ .align 2, 0
+_080A2824: .4byte 0x00000282
+_080A2828:
+ ldr r0, _080A2830 @ =0x00000283
+ cmp r1, r0
+ beq _080A2864
+ b _080A2898
+ .align 2, 0
+_080A2830: .4byte 0x00000283
+_080A2834:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A2844:
+ movs r2, 0xE7
+ lsls r2, 1
+ b _080A286E
+_080A284A:
+ ldr r2, _080A2850 @ =0x000001cf
+ b _080A286E
+ .align 2, 0
+_080A2850: .4byte 0x000001cf
+_080A2854:
+ ldr r2, _080A2858 @ =0x00000279
+ b _080A286E
+ .align 2, 0
+_080A2858: .4byte 0x00000279
+_080A285C:
+ ldr r2, _080A2860 @ =0x0000027a
+ b _080A286E
+ .align 2, 0
+_080A2860: .4byte 0x0000027a
+_080A2864:
+ ldr r2, _080A2868 @ =0x0000027b
+ b _080A286E
+ .align 2, 0
+_080A2868: .4byte 0x0000027b
+_080A286C:
+ ldr r2, _080A2878 @ =0x00000271
+_080A286E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+ .align 2, 0
+_080A2878: .4byte 0x00000271
+_080A287C:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x86
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A288E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ bl MapGridSetMetatileIdAt
+_080A2898:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A27A8
+
+ thumb_func_start sub_80A28A0
+sub_80A28A0: @ 80A28A0
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ cmp r1, 0x1
+ bne _080A28BC
+ movs r0, 0x1
+ b _080A28EE
+_080A28BC:
+ ldr r0, _080A28C8 @ =0x00000279
+ cmp r1, r0
+ bne _080A28CC
+ movs r0, 0x2
+ b _080A28EE
+ .align 2, 0
+_080A28C8: .4byte 0x00000279
+_080A28CC:
+ ldr r0, _080A28D8 @ =0x0000027a
+ cmp r1, r0
+ bne _080A28DC
+ movs r0, 0x3
+ b _080A28EE
+ .align 2, 0
+_080A28D8: .4byte 0x0000027a
+_080A28DC:
+ ldr r0, _080A28E8 @ =0x0000027b
+ cmp r2, r0
+ beq _080A28EC
+ movs r0, 0
+ b _080A28EE
+ .align 2, 0
+_080A28E8: .4byte 0x0000027b
+_080A28EC:
+ movs r0, 0x4
+_080A28EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A28A0
+
+ thumb_func_start sub_80A28F4
+sub_80A28F4: @ 80A28F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 16
+ movs r2, 0xC0
+ lsls r2, 10
+ adds r0, r1, r2
+ lsrs r0, 16
+ mov r9, r0
+ movs r4, 0
+ asrs r7, r1, 16
+_080A2914:
+ mov r1, r10
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r4, 16
+ asrs r1, r4, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r5, r0, 16
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl MapGridGetMetatileIdAt
+ mov r8, r4
+ cmp r0, 0x15
+ bne _080A2996
+ adds r4, r7, 0x1
+ lsls r1, r4, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_80A28A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080A296A
+ cmp r0, 0x2
+ bgt _080A2952
+ cmp r0, 0x1
+ beq _080A295C
+ b _080A2996
+_080A2952:
+ cmp r0, 0x3
+ beq _080A297C
+ cmp r0, 0x4
+ beq _080A298C
+ b _080A2996
+_080A295C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x82
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+_080A296A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2978 @ =0x00000281
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2978: .4byte 0x00000281
+_080A297C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2988 @ =0x00000282
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2988: .4byte 0x00000282
+_080A298C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A30 @ =0x00000283
+ bl MapGridSetMetatileIdAt
+_080A2996:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ cmp r0, 0x1
+ bne _080A2A10
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x82
+ lsls r1, 2
+ cmp r0, r1
+ bne _080A29C8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+_080A29C8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A34 @ =0x00000281
+ cmp r0, r1
+ bne _080A29E0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A38 @ =0x00000279
+ bl MapGridSetMetatileIdAt
+_080A29E0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A3C @ =0x00000282
+ cmp r0, r1
+ bne _080A29F8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A40 @ =0x0000027a
+ bl MapGridSetMetatileIdAt
+_080A29F8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A30 @ =0x00000283
+ cmp r0, r1
+ bne _080A2A10
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A44 @ =0x0000027b
+ bl MapGridSetMetatileIdAt
+_080A2A10:
+ movs r0, 0x80
+ lsls r0, 9
+ add r0, r8
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bgt _080A2A20
+ b _080A2914
+_080A2A20:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2A30: .4byte 0x00000283
+_080A2A34: .4byte 0x00000281
+_080A2A38: .4byte 0x00000279
+_080A2A3C: .4byte 0x00000282
+_080A2A40: .4byte 0x0000027a
+_080A2A44: .4byte 0x0000027b
+ thumb_func_end sub_80A28F4
+
+ thumb_func_start sub_80A2A48
+sub_80A2A48: @ 80A2A48
+ movs r2, 0
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x34]
+ ldr r1, _080A2A58 @ =objc_8097BBC
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A2A58: .4byte objc_8097BBC
+ thumb_func_end sub_80A2A48
+
+ thumb_func_start objc_8097BBC
+objc_8097BBC: @ 80A2A5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x2E]
+ adds r1, 0x1
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 18
+ adds r1, r0
+ strh r1, [r4, 0x2E]
+ adds r2, 0x1
+ strh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1C
+ beq _080A2AA8
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080A2AAC
+_080A2AA8:
+ ldr r0, _080A2AB4 @ =sub_80A2AB8
+ str r0, [r4, 0x1C]
+_080A2AAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AB4: .4byte sub_80A2AB8
+ thumb_func_end objc_8097BBC
+
+ thumb_func_start sub_80A2AB8
+sub_80A2AB8: @ 80A2AB8
+ push {r4-r6,lr}
+ movs r4, 0x1
+_080A2ABC:
+ ldr r6, _080A2AF8 @ =0x0201fff0
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A2AFC @ =gSprites
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A2ABC
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x3A
+ bl FieldEffectStop
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AF8: .4byte 0x0201fff0
+_080A2AFC: .4byte gSprites
+ thumb_func_end sub_80A2AB8
+
+ thumb_func_start sub_80A2B00
+sub_80A2B00: @ 80A2B00
+ push {lr}
+ movs r0, 0x80
+ bl PlaySE
+ movs r0, 0x2
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2B00
+
+ .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 e595a5fc9..000000000
--- a/asm/fldeff_strength.s
+++ /dev/null
@@ -1,152 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpFieldMove_Strength
-SetUpFieldMove_Strength: @ 811A99C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811A9D4
- ldr r1, _0811A9BC @ =gScriptResult
- ldr r0, _0811A9C0 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811A9C4 @ =gUnknown_0300485C
- ldr r0, _0811A9C8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0811A9CC @ =gUnknown_03005CE4
- ldr r0, _0811A9D0 @ =sub_811AA38
- b _0811A9F8
- .align 2, 0
-_0811A9BC: .4byte gScriptResult
-_0811A9C0: .4byte gUnknown_03005CE0
-_0811A9C4: .4byte gUnknown_0300485C
-_0811A9C8: .4byte sub_808AB90
-_0811A9CC: .4byte gUnknown_03005CE4
-_0811A9D0: .4byte sub_811AA38
-_0811A9D4:
- movs r0, 0x57
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811A9E6
- movs r0, 0
- b _0811A9FC
-_0811A9E6:
- ldr r1, _0811AA00 @ =gScriptResult
- ldr r0, _0811AA04 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811AA08 @ =gUnknown_0300485C
- ldr r0, _0811AA0C @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0811AA10 @ =gUnknown_03005CE4
- ldr r0, _0811AA14 @ =sub_811AA18
-_0811A9F8:
- str r0, [r1]
- movs r0, 0x1
-_0811A9FC:
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA00: .4byte gScriptResult
-_0811AA04: .4byte gUnknown_03005CE0
-_0811AA08: .4byte gUnknown_0300485C
-_0811AA0C: .4byte sub_808AB90
-_0811AA10: .4byte gUnknown_03005CE4
-_0811AA14: .4byte sub_811AA18
- thumb_func_end SetUpFieldMove_Strength
-
- thumb_func_start sub_811AA18
-sub_811AA18: @ 811AA18
- push {lr}
- ldr r1, _0811AA2C @ =gUnknown_0202FF84
- ldr r0, _0811AA30 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _0811AA34 @ =UseStrengthScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA2C: .4byte gUnknown_0202FF84
-_0811AA30: .4byte gUnknown_03005CE0
-_0811AA34: .4byte UseStrengthScript
- thumb_func_end sub_811AA18
-
- thumb_func_start sub_811AA38
-sub_811AA38: @ 811AA38
- push {lr}
- ldr r0, _0811AA4C @ =gUnknown_0202FF84
- ldr r1, _0811AA50 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x28
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA4C: .4byte gUnknown_0202FF84
-_0811AA50: .4byte gUnknown_03005CE0
- thumb_func_end sub_811AA38
-
- thumb_func_start FldEff_UseStrength
-FldEff_UseStrength: @ 811AA54
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AA88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0811AA8C @ =sub_811AA9C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _0811AA90 @ =gUnknown_0202FF84
- ldr r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811AA94 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811AA98 @ =gStringVar1
- bl GetMonNickname
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA88: .4byte gTasks
-_0811AA8C: .4byte sub_811AA9C
-_0811AA90: .4byte gUnknown_0202FF84
-_0811AA94: .4byte gPlayerParty
-_0811AA98: .4byte gStringVar1
- thumb_func_end FldEff_UseStrength
-
- thumb_func_start sub_811AA9C
-sub_811AA9C: @ 811AA9C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811AAAE
- bl sub_8147514
- b _0811AAB8
-_0811AAAE:
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
-_0811AAB8:
- pop {r0}
- bx r0
- thumb_func_end sub_811AA9C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
new file mode 100644
index 000000000..335aed789
--- /dev/null
+++ b/asm/fldeff_teleport.s
@@ -0,0 +1,93 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Teleport
+SetUpFieldMove_Teleport: @ 814A374
+ push {lr}
+ ldr r0, _0814A38C @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0814A390
+ movs r0, 0
+ b _0814A39E
+ .align 2, 0
+_0814A38C: .4byte gMapHeader
+_0814A390:
+ ldr r1, _0814A3A4 @ =gUnknown_0300485C
+ ldr r0, _0814A3A8 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0814A3AC @ =gUnknown_03005CE4
+ ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr
+ str r0, [r1]
+ movs r0, 0x1
+_0814A39E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A3A4: .4byte gUnknown_0300485C
+_0814A3A8: .4byte sub_808AB90
+_0814A3AC: .4byte gUnknown_03005CE4
+_0814A3B0: .4byte hm_teleport_run_dp02scr
+ thumb_func_end SetUpFieldMove_Teleport
+
+ thumb_func_start hm_teleport_run_dp02scr
+hm_teleport_run_dp02scr: @ 814A3B4
+ push {lr}
+ bl new_game
+ movs r0, 0x3F
+ bl FieldEffectStart
+ ldr r0, _0814A3CC @ =gUnknown_0202FF84
+ ldr r1, _0814A3D0 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A3CC: .4byte gUnknown_0202FF84
+_0814A3D0: .4byte gUnknown_03005CE0
+ thumb_func_end hm_teleport_run_dp02scr
+
+ thumb_func_start FldEff_UseTeleport
+FldEff_UseTeleport: @ 814A3D4
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0814A3FC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0814A400 @ =sub_814A404
+ 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
+_0814A3FC: .4byte gTasks
+_0814A400: .4byte sub_814A404
+ thumb_func_end FldEff_UseTeleport
+
+ thumb_func_start sub_814A404
+sub_814A404: @ 814A404
+ push {lr}
+ movs r0, 0x3F
+ bl FieldEffectActiveListRemove
+ bl sub_8087BA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A404
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
new file mode 100644
index 000000000..c1e93c8b3
--- /dev/null
+++ b/asm/hall_of_fame.s
@@ -0,0 +1,3402 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8141E38
+sub_8141E38: @ 8141E38
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E38
+
+ thumb_func_start sub_8141E4C
+sub_8141E4C: @ 8141E4C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E4C
+
+ thumb_func_start sub_8141E64
+sub_8141E64: @ 8141E64
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08141E80 @ =gMain
+ ldr r1, _08141E84 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08141EA0
+ lsls r0, 2
+ ldr r1, _08141E88 @ =_08141E8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08141E80: .4byte gMain
+_08141E84: .4byte 0x0000043c
+_08141E88: .4byte _08141E8C
+ .align 2, 0
+_08141E8C:
+ .4byte _08141EA0
+ .4byte _08141EC0
+ .4byte _08141EC6
+ .4byte _08141F1C
+ .4byte _08141F58
+_08141EA0:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08141EB8 @ =gMain
+ ldr r2, _08141EBC @ =0x0000043c
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08141F84
+ .align 2, 0
+_08141EB8: .4byte gMain
+_08141EBC: .4byte 0x0000043c
+_08141EC0:
+ bl sub_8143570
+ b _08141F38
+_08141EC6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08141F04 @ =sub_8141E38
+ bl SetVBlankCallback
+ ldr r3, _08141F08 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08141F0C @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08141F10 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08141F14 @ =gMain
+ ldr r2, _08141F18 @ =0x0000043c
+ adds r1, r2
+ b _08141F3E
+ .align 2, 0
+_08141F04: .4byte sub_8141E38
+_08141F08: .4byte 0x04000208
+_08141F0C: .4byte 0x04000200
+_08141F10: .4byte REG_DISPSTAT
+_08141F14: .4byte gMain
+_08141F18: .4byte 0x0000043c
+_08141F1C:
+ ldr r1, _08141F48 @ =REG_BLDCNT
+ ldr r2, _08141F4C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xE2
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_81435B8
+_08141F38:
+ ldr r1, _08141F50 @ =gMain
+ ldr r0, _08141F54 @ =0x0000043c
+ adds r1, r0
+_08141F3E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08141F84
+ .align 2, 0
+_08141F48: .4byte REG_BLDCNT
+_08141F4C: .4byte 0x00003f42
+_08141F50: .4byte gMain
+_08141F54: .4byte 0x0000043c
+_08141F58:
+ bl UpdatePaletteFade
+ ldr r0, _08141F7C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08141F84
+ ldr r0, _08141F80 @ =sub_8141E4C
+ bl SetMainCallback2
+ movs r0, 0xDA
+ lsls r0, 1
+ bl PlayBGM
+ movs r0, 0
+ b _08141F86
+ .align 2, 0
+_08141F7C: .4byte gPaletteFade
+_08141F80: .4byte sub_8141E4C
+_08141F84:
+ movs r0, 0x1
+_08141F86:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8141E64
+
+ thumb_func_start sub_8141F90
+sub_8141F90: @ 8141F90
+ push {r4,lr}
+ bl sub_8141E64
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08141FB6
+ ldr r0, _08141FBC @ =sub_8141FF8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FC0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+_08141FB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FBC: .4byte sub_8141FF8
+_08141FC0: .4byte gTasks
+ thumb_func_end sub_8141F90
+
+ thumb_func_start sub_8141FC4
+sub_8141FC4: @ 8141FC4
+ push {lr}
+ bl sub_8141E64
+ lsls r0, 24
+ cmp r0, 0
+ bne _08141FEA
+ ldr r0, _08141FF0 @ =sub_8141FF8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FF4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+_08141FEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FF0: .4byte sub_8141FF8
+_08141FF4: .4byte gTasks
+ thumb_func_end sub_8141FC4
+
+ thumb_func_start sub_8141FF8
+sub_8141FF8: @ 8141FF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _081420C8 @ =0x0201c000
+ mov r9, r0
+ ldr r1, _081420CC @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r7, 0
+ ldr r4, _081420D0 @ =0xfffffe00
+ mov r10, r4
+_08142024:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _081420D4 @ =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _081420DC
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 2
+ mov r1, r9
+ adds r5, r1, r4
+ ldr r2, _081420D8 @ =0x000001ff
+ adds r1, r2, 0
+ ands r0, r1
+ ldrh r1, [r5, 0x8]
+ mov r2, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetMonData
+ mov r1, r9
+ adds r1, 0x4
+ adds r1, r4
+ str r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 1
+ ldrb r2, [r5, 0x9]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x9]
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ movs r2, 0
+ mov r6, r8
+ lsls r5, r6, 2
+ mov r3, r9
+ adds r3, 0xA
+_081420A0:
+ adds r1, r2, r4
+ adds r1, r3, r1
+ mov r6, sp
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9
+ bls _081420A0
+ ldr r0, _081420CC @ =gTasks
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ b _08142108
+ .align 2, 0
+_081420C8: .4byte 0x0201c000
+_081420CC: .4byte gTasks
+_081420D0: .4byte 0xfffffe00
+_081420D4: .4byte gPlayerParty
+_081420D8: .4byte 0x000001ff
+_081420DC:
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 2
+ mov r4, r9
+ adds r2, r4, r1
+ ldrh r0, [r2, 0x8]
+ mov r6, r10
+ ands r0, r6
+ strh r0, [r2, 0x8]
+ str r3, [r2]
+ mov r0, r9
+ adds r0, 0x4
+ adds r0, r1
+ str r3, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ movs r0, 0xFF
+ strb r0, [r2, 0xA]
+ mov r0, r8
+ lsls r5, r0, 2
+_08142108:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142024
+ ldr r0, _08142158 @ =gUnknown_0203931C
+ movs r3, 0
+ str r3, [r0]
+ ldr r4, _0814215C @ =gTasks
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r2, r1, r4
+ strh r3, [r2, 0xA]
+ movs r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r7, 0
+ adds r3, r4, 0
+ adds r3, 0x8
+ movs r2, 0xFF
+_08142130:
+ adds r0, r7, 0x5
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142130
+ mov r6, r8
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08142164
+ ldr r0, _08142160 @ =sub_81422E8
+ b _08142166
+ .align 2, 0
+_08142158: .4byte gUnknown_0203931C
+_0814215C: .4byte gTasks
+_08142160: .4byte sub_81422E8
+_08142164:
+ ldr r0, _08142178 @ =sub_814217C
+_08142166:
+ str r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142178: .4byte sub_814217C
+ thumb_func_end sub_8141FF8
+
+ thumb_func_start sub_814217C
+sub_814217C: @ 814217C
+ 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
+ ldr r0, _081421C4 @ =0x0201c000
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 6
+ add r7, r9
+ ldr r0, _081421C8 @ =gUnknown_02039324
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081421D4
+ movs r4, 0
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r5, _081421CC @ =0xfffe4000
+ add r5, r9
+ movs r3, 0xF0
+ lsls r3, 9
+ movs r2, 0
+ ldr r1, _081421D0 @ =0x00001fff
+_081421B2:
+ adds r0, r4, r3
+ adds r0, r5
+ strb r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r1
+ bls _081421B2
+ b _081421E0
+ .align 2, 0
+_081421C4: .4byte 0x0201c000
+_081421C8: .4byte gUnknown_02039324
+_081421CC: .4byte 0xfffe4000
+_081421D0: .4byte 0x00001fff
+_081421D4:
+ movs r0, 0x3
+ bl sub_8125EC8
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+_081421E0:
+ movs r4, 0
+ ldrh r1, [r7, 0x8]
+ ldr r2, _081421E8 @ =0x000001ff
+ b _081421FA
+ .align 2, 0
+_081421E8: .4byte 0x000001ff
+_081421EC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, 0x78
+ cmp r4, 0x31
+ bhi _08142206
+ ldrh r1, [r7, 0x8]
+_081421FA:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081421EC
+ cmp r4, 0x31
+ bls _08142228
+_08142206:
+ ldr r5, _08142264 @ =0x0201e000
+ adds r6, r5, 0
+ adds r5, 0x78
+ movs r4, 0
+ subs r7, 0x78
+_08142210:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x78
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, 0x78
+ adds r5, 0x78
+ cmp r4, 0x30
+ bls _08142210
+_08142228:
+ adds r0, r7, 0
+ mov r1, r9
+ movs r2, 0x78
+ bl memcpy
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142268 @ =gMenuText_HOFSaving
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0814226C @ =gTasks
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142270 @ =sub_8142274
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142264: .4byte 0x0201e000
+_08142268: .4byte gMenuText_HOFSaving
+_0814226C: .4byte gTasks
+_08142270: .4byte sub_8142274
+ thumb_func_end sub_814217C
+
+ thumb_func_start sub_8142274
+sub_8142274: @ 8142274
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _081422A8 @ =gUnknown_03005EBC
+ ldr r0, _081422AC @ =sub_8141FC4
+ str r0, [r1]
+ movs r0, 0x3
+ bl sub_8125D44
+ movs r0, 0x37
+ bl PlaySE
+ ldr r1, _081422B0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081422B4 @ =sub_81422B8
+ str r1, [r0]
+ movs r1, 0x20
+ strh r1, [r0, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422A8: .4byte gUnknown_03005EBC
+_081422AC: .4byte sub_8141FC4
+_081422B0: .4byte gTasks
+_081422B4: .4byte sub_81422B8
+ thumb_func_end sub_8142274
+
+ thumb_func_start sub_81422B8
+sub_81422B8: @ 81422B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081422D8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _081422DC
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ b _081422E0
+ .align 2, 0
+_081422D8: .4byte gTasks
+_081422DC:
+ ldr r0, _081422E4 @ =sub_81422E8
+ str r0, [r1]
+_081422E0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422E4: .4byte sub_81422E8
+ thumb_func_end sub_81422B8
+
+ thumb_func_start sub_81422E8
+sub_81422E8: @ 81422E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08142314 @ =gWindowConfig_81E7198
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ adds r0, r5, 0
+ bl InitMenuWindow
+ ldr r1, _08142318 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814231C @ =sub_8142320
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142314: .4byte gWindowConfig_81E7198
+_08142318: .4byte gTasks
+_0814231C: .4byte sub_8142320
+ thumb_func_end sub_81422E8
+
+ thumb_func_start sub_8142320
+sub_8142320: @ 8142320
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08142350 @ =0x0201c000
+ ldr r0, _08142354 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r6, [r1, 0xA]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _0814235C
+ ldr r1, _08142358 @ =gUnknown_0840B534
+ b _0814235E
+ .align 2, 0
+_08142350: .4byte 0x0201c000
+_08142354: .4byte gTasks
+_08142358: .4byte gUnknown_0840B534
+_0814235C:
+ ldr r1, _081423F0 @ =gUnknown_0840B564
+_0814235E:
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldrh r5, [r0]
+ adds r0, r1, 0x2
+ adds r0, r2, r0
+ ldrh r3, [r0]
+ adds r0, r1, 0x4
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ mov r9, r0
+ adds r1, 0x6
+ adds r2, r1
+ ldrh r2, [r2]
+ mov r8, r2
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r3, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r6, 0
+ bl sub_81436BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081423F4 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r3
+ movs r4, 0
+ mov r5, r9
+ strh r5, [r2, 0x30]
+ mov r5, r8
+ strh r5, [r2, 0x32]
+ strh r4, [r2, 0x2E]
+ adds r3, 0x1C
+ adds r1, r3
+ ldr r2, _081423F8 @ =sub_81435DC
+ str r2, [r1]
+ ldr r5, _081423FC @ =gTasks
+ adds r1, r6, 0x5
+ lsls r1, 1
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r1, r4
+ adds r2, r5, 0
+ adds r2, 0x8
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r4, r5
+ ldr r0, _08142400 @ =sub_8142404
+ str r0, [r4]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081423F0: .4byte gUnknown_0840B564
+_081423F4: .4byte gSprites
+_081423F8: .4byte sub_81435DC
+_081423FC: .4byte gTasks
+_08142400: .4byte sub_8142404
+ thumb_func_end sub_8142320
+
+ thumb_func_start sub_8142404
+sub_8142404: @ 8142404
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08142470 @ =0x0201c000
+ ldr r3, _08142474 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r5, r2, r3
+ ldrh r1, [r5, 0xA]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r4
+ ldr r4, _08142478 @ =gSprites
+ adds r1, 0x5
+ lsls r1, 1
+ adds r1, r2
+ adds r3, 0x8
+ adds r1, r3
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814246A
+ ldrh r2, [r6, 0x8]
+ ldr r0, _0814247C @ =0x000001ff
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142458
+ lsls r0, r2, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142458:
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ movs r0, 0x78
+ strh r0, [r5, 0xE]
+ ldr r0, _08142480 @ =sub_8142484
+ str r0, [r5]
+_0814246A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142470: .4byte 0x0201c000
+_08142474: .4byte gTasks
+_08142478: .4byte gSprites
+_0814247C: .4byte 0x000001ff
+_08142480: .4byte sub_8142484
+ thumb_func_end sub_8142404
+
+ thumb_func_start sub_8142484
+sub_8142484: @ 8142484
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _081424BC @ =0x0201c000
+ ldr r1, _081424C0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ adds r4, r6, r1
+ ldrh r3, [r4, 0xA]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r2
+ mov r9, r0
+ ldrh r2, [r4, 0xE]
+ movs r7, 0xE
+ ldrsh r0, [r4, r7]
+ mov r12, r1
+ cmp r0, 0
+ beq _081424C4
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xE]
+ b _0814255C
+ .align 2, 0
+_081424BC: .4byte 0x0201c000
+_081424C0: .4byte gTasks
+_081424C4:
+ ldr r2, _0814253C @ =gUnknown_0203931C
+ ldr r0, _08142540 @ =gSprites
+ mov r8, r0
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r6
+ mov r1, r12
+ adds r1, 0x8
+ adds r6, r0, r1
+ movs r7, 0
+ ldrsh r1, [r6, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ ldr r3, [r2]
+ orrs r3, r1
+ str r3, [r2]
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _08142550
+ mov r7, r9
+ ldrh r1, [r7, 0x1C]
+ ldr r0, _08142544 @ =0x000001ff
+ ands r0, r1
+ cmp r0, 0
+ beq _08142550
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ ldr r0, _08142548 @ =0x0000735f
+ str r0, [sp]
+ adds r0, r3, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, _0814254C @ =sub_8142320
+ str r0, [r4]
+ b _0814255C
+ .align 2, 0
+_0814253C: .4byte gUnknown_0203931C
+_08142540: .4byte gSprites
+_08142544: .4byte 0x000001ff
+_08142548: .4byte 0x0000735f
+_0814254C: .4byte sub_8142320
+_08142550:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r12
+ ldr r1, _0814256C @ =sub_8142570
+ str r1, [r0]
+_0814255C:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814256C: .4byte sub_8142570
+ thumb_func_end sub_8142484
+
+ thumb_func_start sub_8142570
+sub_8142570: @ 8142570
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142604 @ =0xffff0000
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r3, 0
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r5, r0, 3
+ ldr r0, _08142608 @ =gTasks + 0x8
+ mov r12, r0
+ mov r8, r1
+ ldr r6, _0814260C @ =gSprites
+ movs r7, 0xD
+ negs r7, r7
+_0814259E:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ mov r2, r12
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _081425C0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_081425C0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _0814259E
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xF
+ bl sub_8143068
+ movs r0, 0x69
+ bl PlaySE
+ ldr r1, _08142610 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC8
+ lsls r1, 1
+ strh r1, [r0, 0xE]
+ ldr r1, _08142614 @ =sub_8142618
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142604: .4byte 0xffff0000
+_08142608: .4byte gTasks + 0x8
+_0814260C: .4byte gSprites
+_08142610: .4byte gTasks
+_08142614: .4byte sub_8142618
+ thumb_func_end sub_8142570
+
+ thumb_func_start sub_8142618
+sub_8142618: @ 8142618
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08142658 @ =gTasks
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r5, r0, 3
+ adds r1, r5, r7
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0814265C
+ subs r2, 0x1
+ strh r2, [r1, 0xE]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _081426D2
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x6E
+ ble _081426D2
+ bl sub_81438C4
+ b _081426D2
+ .align 2, 0
+_08142658: .4byte gTasks
+_0814265C:
+ movs r3, 0
+ mov r9, r4
+ ldr r0, _081426E4 @ =gUnknown_0203931C
+ mov r10, r0
+ adds r4, r5, 0
+ adds r7, 0x8
+ mov r8, r7
+ ldr r7, _081426E8 @ =gSprites
+ movs r1, 0xD
+ negs r1, r1
+ mov r12, r1
+ movs r5, 0x4
+_08142674:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r4
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _08142698
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_08142698:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142674
+ mov r3, r10
+ ldr r0, [r3]
+ ldr r1, _081426EC @ =0x0000735f
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _081426F0 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x7
+ strh r1, [r0, 0xE]
+ ldr r1, _081426F4 @ =sub_81426F8
+ str r1, [r0]
+_081426D2:
+ 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
+_081426E4: .4byte gUnknown_0203931C
+_081426E8: .4byte gSprites
+_081426EC: .4byte 0x0000735f
+_081426F0: .4byte gTasks
+_081426F4: .4byte sub_81426F8
+ thumb_func_end sub_8142618
+
+ thumb_func_start sub_81426F8
+sub_81426F8: @ 81426F8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08142718 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0xF
+ ble _08142720
+ ldr r0, _0814271C @ =sub_8142738
+ str r0, [r2]
+ b _0814272E
+ .align 2, 0
+_08142718: .4byte gTasks
+_0814271C: .4byte sub_8142738
+_08142720:
+ adds r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ ldr r1, _08142734 @ =REG_BLDALPHA
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ lsls r0, 8
+ strh r0, [r1]
+_0814272E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142734: .4byte REG_BLDALPHA
+ thumb_func_end sub_81426F8
+
+ thumb_func_start sub_8142738
+sub_8142738: @ 8142738
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _08142784 @ =gWindowConfig_81E71B4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08142788 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x78
+ movs r2, 0x48
+ movs r3, 0x6
+ bl sub_81437A4
+ ldr r2, _0814278C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x10]
+ movs r0, 0x78
+ strh r0, [r1, 0xE]
+ ldr r0, _08142790 @ =sub_8142794
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142784: .4byte gWindowConfig_81E71B4
+_08142788: .4byte gSaveBlock2
+_0814278C: .4byte gTasks
+_08142790: .4byte sub_8142794
+ thumb_func_end sub_8142738
+
+ thumb_func_start sub_8142794
+sub_8142794: @ 8142794
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081427B4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081427B8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _0814280A
+ .align 2, 0
+_081427B4: .4byte gTasks
+_081427B8:
+ ldr r2, _081427D8 @ =gSprites
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xA0
+ beq _081427DC
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x20]
+ b _0814280A
+ .align 2, 0
+_081427D8: .4byte gSprites
+_081427DC:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0xF
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8143300
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142810 @ =gMenuText_HOFCongratulations
+ movs r1, 0x4
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _08142814 @ =sub_8142818
+ str r0, [r4]
+_0814280A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142810: .4byte gMenuText_HOFCongratulations
+_08142814: .4byte sub_8142818
+ thumb_func_end sub_8142794
+
+ thumb_func_start sub_8142818
+sub_8142818: @ 8142818
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142844 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814283E
+ movs r0, 0x4
+ bl FadeOutBGM
+ ldr r0, _08142848 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0814284C @ =sub_8142850
+ str r0, [r1]
+_0814283E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142844: .4byte gMain
+_08142848: .4byte gTasks
+_0814284C: .4byte sub_8142850
+ thumb_func_end sub_8142818
+
+ thumb_func_start sub_8142850
+sub_8142850: @ 8142850
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142890 @ =gPlttBufferFaded
+ ldr r1, _08142894 @ =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08142898 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814289C @ =sub_81428A0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142890: .4byte gPlttBufferFaded
+_08142894: .4byte gPlttBufferUnfaded
+_08142898: .4byte gTasks
+_0814289C: .4byte sub_81428A0
+ thumb_func_end sub_8142850
+
+ thumb_func_start sub_81428A0
+sub_81428A0: @ 81428A0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081428C4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081428BE
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _081428C8 @ =sub_81439D0
+ bl SetMainCallback2
+_081428BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081428C4: .4byte gPaletteFade
+_081428C8: .4byte sub_81439D0
+ thumb_func_end sub_81428A0
+
+ thumb_func_start sub_81428CC
+sub_81428CC: @ 81428CC
+ push {r4,r5,lr}
+ ldr r0, _081428E4 @ =gMain
+ ldr r1, _081428E8 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08142908
+ lsls r0, 2
+ ldr r1, _081428EC @ =_081428F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081428E4: .4byte gMain
+_081428E8: .4byte 0x0000043c
+_081428EC: .4byte _081428F0
+ .align 2, 0
+_081428F0:
+ .4byte _08142908
+ .4byte _08142928
+ .4byte _0814293C
+ .4byte _08142980
+ .4byte _081429C0
+ .4byte _081429EC
+_08142908:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08142920 @ =gMain
+ ldr r2, _08142924 @ =0x0000043c
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08142A12
+ .align 2, 0
+_08142920: .4byte gMain
+_08142924: .4byte 0x0000043c
+_08142928:
+ bl sub_8143570
+ ldr r1, _08142934 @ =gMain
+ ldr r3, _08142938 @ =0x0000043c
+ adds r1, r3
+ b _081429DC
+ .align 2, 0
+_08142934: .4byte gMain
+_08142938: .4byte 0x0000043c
+_0814293C:
+ ldr r0, _08142968 @ =sub_8141E38
+ bl SetVBlankCallback
+ ldr r3, _0814296C @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08142970 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08142974 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08142978 @ =gMain
+ ldr r4, _0814297C @ =0x0000043c
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_08142968: .4byte sub_8141E38
+_0814296C: .4byte 0x04000208
+_08142970: .4byte 0x04000200
+_08142974: .4byte REG_DISPSTAT
+_08142978: .4byte gMain
+_0814297C: .4byte 0x0000043c
+_08142980:
+ ldr r0, _081429AC @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_81435B8
+ ldr r0, _081429B0 @ =0x0201c000
+ adds r2, r0, 0
+ ldr r1, _081429B4 @ =gUnknown_0840B57C
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5CD4
+ ldr r1, _081429B8 @ =gMain
+ ldr r4, _081429BC @ =0x0000043c
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_081429AC: .4byte REG_BLDCNT
+_081429B0: .4byte 0x0201c000
+_081429B4: .4byte gUnknown_0840B57C
+_081429B8: .4byte gMain
+_081429BC: .4byte 0x0000043c
+_081429C0:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl sub_80C5DCC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142A12
+ ldr r1, _081429E4 @ =gMain
+ ldr r5, _081429E8 @ =0x0000043c
+ adds r1, r5
+_081429DC:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08142A12
+ .align 2, 0
+_081429E4: .4byte gMain
+_081429E8: .4byte 0x0000043c
+_081429EC:
+ ldr r1, _08142A18 @ =REG_BLDCNT
+ ldr r2, _08142A1C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xE2
+ lsls r3, 3
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08142A20 @ =sub_8142A28
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _08142A24 @ =sub_8141E4C
+ bl SetMainCallback2
+_08142A12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142A18: .4byte REG_BLDCNT
+_08142A1C: .4byte 0x00003f42
+_08142A20: .4byte sub_8142A28
+_08142A24: .4byte sub_8141E4C
+ thumb_func_end sub_81428CC
+
+ thumb_func_start sub_8142A28
+sub_8142A28: @ 8142A28
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8125EC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08142A54
+ ldr r0, _08142A4C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142A50 @ =sub_8142FEC
+ str r0, [r1]
+ b _08142AEA
+ .align 2, 0
+_08142A4C: .4byte gTasks
+_08142A50: .4byte sub_8142FEC
+_08142A54:
+ ldr r2, _08142A8C @ =0x0201e000
+ movs r3, 0
+ ldrh r1, [r2, 0x8]
+ ldr r4, _08142A90 @ =0x000001ff
+ adds r0, r4, 0
+ ands r0, r1
+ ldr r7, _08142A94 @ =gTasks
+ lsls r6, r5, 2
+ cmp r0, 0
+ beq _08142A7E
+_08142A68:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x78
+ cmp r3, 0x31
+ bhi _08142A98
+ ldrh r1, [r2, 0x8]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08142A68
+_08142A7E:
+ cmp r3, 0x31
+ bhi _08142A98
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ subs r1, r3, 0x1
+ b _08142AA0
+ .align 2, 0
+_08142A8C: .4byte 0x0201e000
+_08142A90: .4byte 0x000001ff
+_08142A94: .4byte gTasks
+_08142A98:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x31
+_08142AA0:
+ strh r1, [r0, 0x8]
+ movs r0, 0xA
+ bl GetGameStat
+ ldr r2, _08142AF0 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0xA]
+ movs r3, 0
+ ldr r7, _08142AF4 @ =0x0600381a
+ ldr r4, _08142AF8 @ =0x0600385a
+_08142AB8:
+ lsls r1, r3, 1
+ adds r2, r1, r7
+ adds r0, r3, 0x3
+ strh r0, [r2]
+ adds r1, r4
+ adds r0, 0x11
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _08142AB8
+ ldr r4, _08142AFC @ =gWindowConfig_81E7198
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r1, _08142AF0 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142B00 @ =sub_8142B04
+ str r1, [r0]
+_08142AEA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142AF0: .4byte gTasks
+_08142AF4: .4byte 0x0600381a
+_08142AF8: .4byte 0x0600385a
+_08142AFC: .4byte gWindowConfig_81E7198
+_08142B00: .4byte sub_8142B04
+ thumb_func_end sub_8142A28
+
+ thumb_func_start sub_8142B04
+sub_8142B04: @ 8142B04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r3, _08142BB8 @ =0x0201e000
+ movs r5, 0
+ ldr r1, _08142BBC @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ ldr r2, _08142BC0 @ =gUnknown_0203931C
+ cmp r5, r0
+ bge _08142B3E
+ adds r1, r0, 0
+_08142B32:
+ adds r3, 0x78
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r1
+ blt _08142B32
+_08142B3E:
+ adds r4, r3, 0
+ movs r0, 0
+ str r0, [r2]
+ mov r5, r8
+ lsls r2, r5, 2
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r6
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0x10]
+ movs r5, 0
+ str r2, [sp, 0xC]
+ ldr r6, _08142BC4 @ =0x000001ff
+ adds r2, r1, 0
+_08142B5A:
+ ldrh r1, [r4, 0x8]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08142B6A
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ strh r0, [r2, 0x10]
+_08142B6A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B5A
+ adds r4, r3, 0
+ movs r5, 0
+ ldr r1, _08142BBC @ =gTasks
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r7, r0, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x8]
+ adds r1, 0x8
+ mov r9, r1
+ ldr r0, _08142BC8 @ =gUnknown_0840B564
+ mov r10, r0
+_08142B8E:
+ ldrh r1, [r4, 0x8]
+ ldr r2, _08142BC4 @ =0x000001ff
+ adds r0, r2, 0
+ ands r0, r1
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _08142C30
+ ldr r1, [sp, 0x8]
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _08142BD4
+ lsls r1, r5, 3
+ ldr r0, _08142BCC @ =gUnknown_0840B534
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r0, _08142BD0 @ =gUnknown_0840B53A
+ adds r1, r0
+ b _08142BE2
+ .align 2, 0
+_08142BB8: .4byte 0x0201e000
+_08142BBC: .4byte gTasks
+_08142BC0: .4byte gUnknown_0203931C
+_08142BC4: .4byte 0x000001ff
+_08142BC8: .4byte gUnknown_0840B564
+_08142BCC: .4byte gUnknown_0840B534
+_08142BD0: .4byte gUnknown_0840B53A
+_08142BD4:
+ lsls r1, r5, 3
+ mov r0, r10
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r2, _08142C28 @ =gUnknown_0840B56A
+ adds r1, r2
+_08142BE2:
+ ldrh r2, [r1]
+ lsls r0, r6, 23
+ lsrs r0, 23
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r5, 0
+ bl sub_81436BC
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08142C2C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r6, 0xD
+ negs r6, r6
+ adds r2, r6, 0
+ ands r3, r2
+ movs r2, 0x4
+ orrs r3, r2
+ strb r3, [r1, 0x5]
+ adds r1, r5, 0x5
+ lsls r1, 1
+ adds r1, r7
+ add r1, r9
+ strh r0, [r1]
+ b _08142C3C
+ .align 2, 0
+_08142C28: .4byte gUnknown_0840B56A
+_08142C2C: .4byte gSprites
+_08142C30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ movs r1, 0xFF
+ strh r1, [r0]
+_08142C3C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B8E
+ ldr r0, _08142CB0 @ =0xffff0000
+ ldr r2, _08142CB4 @ =0x0000735f
+ movs r1, 0xC
+ bl BlendPalettes
+ ldr r3, _08142CB8 @ =gStringVar1
+ ldr r1, _08142CBC @ =gMenuText_HOFNumber
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ movs r5, 0xFC
+ strb r5, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0x6
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ ldr r0, _08142CC0 @ =gTasks
+ ldr r4, [sp, 0xC]
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ adds r0, r3, 0
+ bl ConvertIntToDecimalString
+ adds r3, r0, 0
+ strb r5, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0xF0
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ ldr r0, _08142CB8 @ =gStringVar1
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ ldr r0, _08142CC4 @ =sub_8142CC8
+ str r0, [r4]
+ 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
+_08142CB0: .4byte 0xffff0000
+_08142CB4: .4byte 0x0000735f
+_08142CB8: .4byte gStringVar1
+_08142CBC: .4byte gMenuText_HOFNumber
+_08142CC0: .4byte gTasks
+_08142CC4: .4byte sub_8142CC8
+ thumb_func_end sub_8142B04
+
+ thumb_func_start sub_8142CC8
+sub_8142CC8: @ 8142CC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142DD0 @ =0x0201e000
+ mov r8, r0
+ movs r3, 0
+ ldr r1, _08142DD4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r3, r0
+ bge _08142CFE
+ adds r1, r0, 0
+_08142CF0:
+ movs r0, 0x78
+ add r8, r0
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ blt _08142CF0
+_08142CFE:
+ movs r3, 0
+ lsls r6, r4, 2
+ adds r0, r6, r4
+ lsls r5, r0, 3
+ ldr r1, _08142DD8 @ =gTasks + 0x8
+ mov r10, r1
+ ldr r2, _08142DDC @ =gSprites
+ mov r12, r2
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ movs r7, 0x4
+_08142D16:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ add r0, r10
+ ldrh r1, [r0]
+ cmp r1, 0xFF
+ beq _08142D36
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x5]
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r7
+ strb r1, [r0, 0x5]
+_08142D36:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142D16
+ adds r1, r6, r4
+ lsls r1, 3
+ ldr r2, _08142DD4 @ =gTasks
+ adds r5, r1, r2
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ adds r0, 0x5
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _08142DD4 @ =gTasks
+ adds r1, 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08142DDC @ =gSprites
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r1
+ ldr r1, _08142DE0 @ =0xffff0000
+ eors r0, r1
+ ldr r2, _08142DE4 @ =gUnknown_0203931C
+ str r0, [r2]
+ ldr r2, _08142DE8 @ =0x0000735f
+ movs r1, 0xC
+ bl BlendPalettesUnfaded
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r8
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ ldr r0, _08142DEC @ =0x000001ff
+ ands r0, r1
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142DB2
+ bl StopCryAndClearCrySongs
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142DB2:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ ldr r0, _08142DF0 @ =sub_8142DF4
+ str r0, [r5]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142DD0: .4byte 0x0201e000
+_08142DD4: .4byte gTasks
+_08142DD8: .4byte gTasks + 0x8
+_08142DDC: .4byte gSprites
+_08142DE0: .4byte 0xffff0000
+_08142DE4: .4byte gUnknown_0203931C
+_08142DE8: .4byte 0x0000735f
+_08142DEC: .4byte 0x000001ff
+_08142DF0: .4byte sub_8142DF4
+ thumb_func_end sub_8142CC8
+
+ thumb_func_start sub_8142DF4
+sub_8142DF4: @ 8142DF4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08142E88 @ =gMain
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _08142EC4
+ ldr r7, _08142E8C @ =gTasks
+ lsls r0, r6, 2
+ adds r1, r0, r6
+ lsls r3, r1, 3
+ adds r4, r3, r7
+ ldrh r2, [r4, 0x8]
+ movs r5, 0x8
+ ldrsh r1, [r4, r5]
+ mov r8, r0
+ cmp r1, 0
+ beq _08142E98
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x8]
+ movs r5, 0
+ adds r7, 0x8
+ mov r9, r7
+ adds r7, r3, 0
+_08142E30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0xFF
+ beq _08142E5E
+ ldr r0, _08142E90 @ =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroySprite
+_08142E5E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08142E30
+ ldr r0, _08142E8C @ =gTasks
+ mov r2, r8
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08142E80
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_08142E80:
+ ldr r0, _08142E94 @ =sub_8142B04
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142E88: .4byte gMain
+_08142E8C: .4byte gTasks
+_08142E90: .4byte gSprites
+_08142E94: .4byte sub_8142B04
+_08142E98:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EB2
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EB8 @ =gMPlay_BGM
+ ldr r1, _08142EBC @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EB2:
+ ldr r0, _08142EC0 @ =sub_8142F78
+ str r0, [r4]
+ b _08142F64
+ .align 2, 0
+_08142EB8: .4byte gMPlay_BGM
+_08142EBC: .4byte 0x0000ffff
+_08142EC0: .4byte sub_8142F78
+_08142EC4:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F08
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EE6
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EF8 @ =gMPlay_BGM
+ ldr r1, _08142EFC @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EE6:
+ ldr r0, _08142F00 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142F04 @ =sub_8142F78
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142EF8: .4byte gMPlay_BGM
+_08142EFC: .4byte 0x0000ffff
+_08142F00: .4byte gTasks
+_08142F04: .4byte sub_8142F78
+_08142F08:
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F38
+ ldr r0, _08142F30 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08142F38
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ ldr r0, _08142F34 @ =sub_8142CC8
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142F30: .4byte gTasks
+_08142F34: .4byte sub_8142CC8
+_08142F38:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08142F64
+ ldr r1, _08142F70 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r5, 0xC
+ ldrsh r1, [r2, r5]
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08142F64
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ldr r0, _08142F74 @ =sub_8142CC8
+ str r0, [r2]
+_08142F64:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142F70: .4byte gTasks
+_08142F74: .4byte sub_8142CC8
+ thumb_func_end sub_8142DF4
+
+ thumb_func_start sub_8142F78
+sub_8142F78: @ 8142F78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142FB4 @ =gPlttBufferFaded
+ ldr r1, _08142FB8 @ =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, _08142FBC @ =0x0201c000
+ adds r2, r0, 0
+ ldr r1, _08142FC0 @ =gUnknown_0840B57C
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5E38
+ ldr r1, _08142FC4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142FC8 @ =sub_8142FCC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142FB4: .4byte gPlttBufferFaded
+_08142FB8: .4byte gPlttBufferUnfaded
+_08142FBC: .4byte 0x0201c000
+_08142FC0: .4byte gUnknown_0840B57C
+_08142FC4: .4byte gTasks
+_08142FC8: .4byte sub_8142FCC
+ thumb_func_end sub_8142F78
+
+ thumb_func_start sub_8142FCC
+sub_8142FCC: @ 8142FCC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142FE6
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ReturnFromHallOfFamePC
+_08142FE6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8142FCC
+
+ thumb_func_start sub_8142FEC
+sub_8142FEC: @ 8142FEC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08143020 @ =gMenuText_HOFCorrupt
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, _08143024 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143028 @ =sub_814302C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143020: .4byte gMenuText_HOFCorrupt
+_08143024: .4byte gTasks
+_08143028: .4byte sub_814302C
+ thumb_func_end sub_8142FEC
+
+ thumb_func_start sub_814302C
+sub_814302C: @ 814302C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _0814305C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _08143060 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143064 @ =sub_8142F78
+ str r0, [r1]
+_08143056:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814305C: .4byte gMain
+_08143060: .4byte gTasks
+_08143064: .4byte sub_8142F78
+ thumb_func_end sub_814302C
+
+ thumb_func_start sub_8143068
+sub_8143068: @ 8143068
+ push {lr}
+ lsls r2, r1, 24
+ ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating
+ movs r1, 0x80
+ lsls r1, 17
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0
+ movs r3, 0xF0
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
+ thumb_func_end sub_8143068
+
+ thumb_func_start sub_8143088
+sub_8143088: @ 8143088
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldr r7, _08143188 @ =gStringVar1
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x28
+ strb r0, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ mov r0, r9
+ ldrh r2, [r0, 0x8]
+ ldr r0, _0814318C @ =0x000001ff
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _081430EA
+ lsls r0, r2, 23
+ lsrs r0, 23
+ bl SpeciesToPokedexNum
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _08143190 @ =0x0000ffff
+ cmp r6, r0
+ beq _081430EA
+ ldr r1, _08143194 @ =gOtherText_Number2
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+_081430EA:
+ ldr r5, _08143188 @ =gStringVar1
+ mov r1, r8
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r4, r10
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r7, r5, 0
+ movs r3, 0
+ mov r1, r9
+ ldrb r0, [r1, 0xA]
+ str r4, [sp]
+ mov r2, r8
+ adds r2, 0x9
+ str r2, [sp, 0xC]
+ mov r6, r10
+ adds r6, 0x3
+ str r6, [sp, 0x8]
+ cmp r0, 0xFF
+ beq _0814313A
+ mov r2, r9
+ adds r2, 0xA
+_08143120:
+ adds r1, r7, r3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _0814313A
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08143120
+_0814313A:
+ adds r7, r3
+ movs r2, 0xFF
+ strb r2, [r7]
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814318C @ =0x000001ff
+ ands r1, r0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _08143198
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ strb r2, [r7, 0x3]
+ ldr r0, _08143188 @ =gStringVar1
+ ldr r2, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ bl MenuPrint
+ ldr r6, [sp, 0x8]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r3, r10
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuZeroFillWindowRect
+ b _081432E4
+ .align 2, 0
+_08143188: .4byte gStringVar1
+_0814318C: .4byte 0x000001ff
+_08143190: .4byte 0x0000ffff
+_08143194: .4byte gOtherText_Number2
+_08143198:
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x3E
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ movs r0, 0xBA
+ strb r0, [r7]
+ adds r7, 0x1
+ movs r3, 0
+ ldr r2, _08143238 @ =gSpeciesNames
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0xB
+ muls r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r6, r8
+ adds r6, 0x7
+ str r6, [sp, 0x4]
+ mov r1, r8
+ adds r1, 0xD
+ str r1, [sp, 0x10]
+ cmp r0, 0xFF
+ beq _08143204
+ adds r5, r2, 0
+ movs r4, 0xB
+_081431D4:
+ adds r1, r7, r3
+ mov r6, r9
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _08143204
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081431D4
+_08143204:
+ adds r7, r3
+ movs r0, 0
+ strb r0, [r7]
+ adds r7, 0x1
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814323C @ =0x000001ff
+ ands r1, r0
+ cmp r1, 0x20
+ beq _0814324A
+ cmp r1, 0x1D
+ beq _0814324A
+ lsls r0, 23
+ lsrs r0, 23
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08143240
+ cmp r0, 0xFE
+ beq _08143244
+ b _0814324A
+ .align 2, 0
+_08143238: .4byte gSpeciesNames
+_0814323C: .4byte 0x000001ff
+_08143240:
+ movs r0, 0xB5
+ b _08143246
+_08143244:
+ movs r0, 0xB6
+_08143246:
+ strb r0, [r7]
+ adds r7, 0x1
+_0814324A:
+ movs r4, 0xFC
+ strb r4, [r7]
+ movs r3, 0x13
+ mov r8, r3
+ strb r3, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ movs r6, 0xFF
+ mov r10, r6
+ strb r6, [r7, 0x3]
+ ldr r5, _081432F4 @ =gStringVar1
+ ldr r0, [sp, 0xC]
+ lsls r1, r0, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ mov r6, r9
+ ldrb r0, [r6, 0x9]
+ lsrs r6, r0, 1
+ ldr r1, _081432F8 @ =gOtherText_Level3
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ strb r4, [r7]
+ movs r0, 0x14
+ strb r0, [r7, 0x1]
+ movs r0, 0x6
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r7, r0, 0
+ strb r4, [r7]
+ mov r0, r8
+ strb r0, [r7, 0x1]
+ movs r0, 0x30
+ strb r0, [r7, 0x2]
+ mov r1, r10
+ strb r1, [r7, 0x3]
+ ldr r2, [sp, 0x4]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp, 0x8]
+ lsls r4, r3, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r9
+ ldrh r6, [r0]
+ ldr r1, _081432FC @ =gOtherText_IDNumber
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+_081432E4:
+ 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
+_081432F4: .4byte gStringVar1
+_081432F8: .4byte gOtherText_Level3
+_081432FC: .4byte gOtherText_IDNumber
+ thumb_func_end sub_8143088
+
+ thumb_func_start sub_8143300
+sub_8143300: @ 8143300
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 24
+ lsls r4, 24
+ ldr r0, _081433CC @ =gOtherText_Name
+ lsrs r1, r5, 24
+ mov r8, r1
+ movs r2, 0x80
+ lsls r2, 17
+ adds r5, r2
+ lsrs r5, 24
+ lsrs r6, r4, 24
+ adds r4, r2
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ ldr r0, _081433D0 @ =gSaveBlock2
+ mov r10, r0
+ movs r1, 0xE
+ add r8, r1
+ mov r2, r8
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ mov r1, r8
+ adds r2, r4, 0
+ bl MenuPrint_RightAligned
+ ldr r0, _081433D4 @ =gOtherText_IDNumber2
+ adds r4, r6, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrb r1, [r0, 0xA]
+ ldrb r0, [r0, 0xB]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r2, _081433D8 @ =gStringVar1
+ mov r9, r2
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, r9
+ mov r1, r8
+ adds r2, r4, 0
+ bl MenuPrint_RightAligned
+ ldr r0, _081433DC @ =gMainMenuString_Time
+ adds r6, 0x5
+ lsls r6, 24
+ lsrs r6, 24
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrh r1, [r0, 0xE]
+ mov r0, r9
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r1, 0
+ strb r1, [r2]
+ movs r0, 0xF0
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ adds r2, 0x3
+ mov r0, r10
+ ldrb r1, [r0, 0x10]
+ adds r0, r2, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r6, 0
+ bl MenuPrint_RightAligned
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081433CC: .4byte gOtherText_Name
+_081433D0: .4byte gSaveBlock2
+_081433D4: .4byte gOtherText_IDNumber2
+_081433D8: .4byte gStringVar1
+_081433DC: .4byte gMainMenuString_Time
+ thumb_func_end sub_8143300
+
+ thumb_func_start sub_81433E0
+sub_81433E0: @ 81433E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x8
+ strh r1, [r0]
+ adds r0, 0xA
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xA
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ strh r1, [r0]
+ adds r0, 0xE
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _0814354C @ =gHallOfFame_Gfx
+ mov r9, r1
+ mov r2, sp
+ movs r6, 0
+ ldr r1, _08143550 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08143444:
+ 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 _08143444
+ 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, _08143550 @ =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 r1, 0xC0
+ lsls r1, 19
+ mov r0, r9
+ bl LZ77UnCompVram
+ movs r1, 0
+ ldr r3, _08143558 @ =0x06003800
+ movs r2, 0x1
+_081434B2:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3F
+ bls _081434B2
+ movs r1, 0
+ ldr r5, _0814355C @ =0x02000000
+ ldr r3, _08143560 @ =0x06003b80
+ movs r2, 0x1
+_081434CA:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xBF
+ bls _081434CA
+ movs r1, 0
+ ldr r4, _08143564 @ =0x06003000
+ movs r3, 0x2
+ ldr r2, _08143568 @ =0x000003ff
+_081434E2:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _081434E2
+ adds r2, r5, 0
+ movs r3, 0x80
+ lsls r3, 7
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _08143550 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0814350A:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _0814350A
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ ldr r0, _0814356C @ =gHallOfFame_Pal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814354C: .4byte gHallOfFame_Gfx
+_08143550: .4byte 0x040000d4
+_08143554: .4byte 0x81000800
+_08143558: .4byte 0x06003800
+_0814355C: .4byte 0x02000000
+_08143560: .4byte 0x06003b80
+_08143564: .4byte 0x06003000
+_08143568: .4byte 0x000003ff
+_0814356C: .4byte gHallOfFame_Pal
+ thumb_func_end sub_81433E0
+
+ thumb_func_start sub_8143570
+sub_8143570: @ 8143570
+ push {r4,lr}
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _081435A8 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _081435AC @ =gUnknown_0840B514
+ bl LoadCompressedObjectPic
+ ldr r0, _081435B0 @ =gUnknown_0840B524
+ bl LoadCompressedObjectPalette
+ ldr r4, _081435B4 @ =gWindowConfig_81E71B4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081435A8: .4byte gReservedSpritePaletteCount
+_081435AC: .4byte gUnknown_0840B514
+_081435B0: .4byte gUnknown_0840B524
+_081435B4: .4byte gWindowConfig_81E71B4
+ thumb_func_end sub_8143570
+
+ thumb_func_start sub_81435B8
+sub_81435B8: @ 81435B8
+ ldr r1, _081435D8 @ =REG_BG1CNT
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ subs r2, 0xFD
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0xDA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_081435D8: .4byte REG_BG1CNT
+ thumb_func_end sub_81435B8
+
+ thumb_func_start sub_81435DC
+sub_81435DC: @ 81435DC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r1, [r2, 0x20]
+ ldr r0, [r2, 0x30]
+ cmp r1, r0
+ beq _08143632
+ ldrh r3, [r2, 0x20]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r4, 0x30
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _081435FC
+ adds r0, r3, 0
+ adds r0, 0xF
+ strh r0, [r2, 0x20]
+_081435FC:
+ ldrh r3, [r2, 0x20]
+ movs r4, 0x20
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814360C
+ adds r0, r3, 0
+ subs r0, 0xF
+ strh r0, [r2, 0x20]
+_0814360C:
+ ldrh r3, [r2, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r4, 0x32
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _08143620
+ adds r0, r3, 0
+ adds r0, 0xA
+ strh r0, [r2, 0x22]
+_08143620:
+ ldrh r3, [r2, 0x22]
+ movs r4, 0x22
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814363A
+ adds r0, r3, 0
+ subs r0, 0xA
+ strh r0, [r2, 0x22]
+ b _0814363A
+_08143632:
+ movs r0, 0x1
+ strh r0, [r2, 0x2E]
+ ldr r0, _08143640 @ =nullsub_81
+ str r0, [r2, 0x1C]
+_0814363A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143640: .4byte nullsub_81
+ thumb_func_end sub_81435DC
+
+ thumb_func_start nullsub_81
+nullsub_81: @ 8143644
+ bx lr
+ thumb_func_end nullsub_81
+
+ thumb_func_start sub_8143648
+sub_8143648: @ 8143648
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _08143670 @ =gUnknown_02024E8C
+ adds r3, r4, 0
+ ldr r2, _08143674 @ =gUnknown_0840B6B8
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _08143678 @ =gUnknown_0840B69C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143670: .4byte gUnknown_02024E8C
+_08143674: .4byte gUnknown_0840B6B8
+_08143678: .4byte gUnknown_0840B69C
+_0814367C: .4byte gSpriteAnimTable_81E7C64
+ thumb_func_end sub_8143648
+
+ thumb_func_start sub_8143680
+sub_8143680: @ 8143680
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _081436AC @ =gUnknown_02024E8C
+ adds r3, r4, 0
+ ldr r2, _081436B0 @ =gUnknown_0840B6B8
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _081436B4 @ =gUnknown_0840B69C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _081436B8 @ =gUnknown_081EC2A4
+ ldr r0, [r0]
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081436AC: .4byte gUnknown_02024E8C
+_081436B0: .4byte gUnknown_0840B6B8
+_081436B4: .4byte gUnknown_0840B69C
+_081436B8: .4byte gUnknown_081EC2A4
+ thumb_func_end sub_8143680
+
+ thumb_func_start sub_81436BC
+sub_81436BC: @ 81436BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ mov r9, r1
+ mov r10, r2
+ mov r8, r3
+ ldr r7, [sp, 0x34]
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r1, r10
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ mov r2, r8
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ lsls r0, r6, 3
+ ldr r1, _08143790 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08143794 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08143798 @ =gUnknown_0840B5A0
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl LoadSpecialPokePic
+ adds r0, r6, 0
+ ldr r1, [sp, 0x30]
+ adds r2, r7, 0
+ bl species_and_otid_get_pal
+ lsls r4, r5, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r5, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8143648
+ ldr r0, _0814379C @ =gUnknown_02024E8C
+ mov r5, r9
+ lsls r5, 16
+ asrs r5, 16
+ mov r9, r5
+ mov r1, r10
+ lsls r1, 16
+ asrs r1, 16
+ mov r10, r1
+ movs r3, 0xA
+ mov r2, r8
+ subs r3, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r1, r9
+ mov r2, r10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081437A0 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08143790: .4byte gMonFrontPicTable
+_08143794: .4byte gMonFrontPicCoords
+_08143798: .4byte gUnknown_0840B5A0
+_0814379C: .4byte gUnknown_02024E8C
+_081437A0: .4byte gSprites
+ thumb_func_end sub_81436BC
+
+ thumb_func_start sub_81437A4
+sub_81437A4: @ 81437A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r1
+ mov r10, r2
+ adds r6, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r7, r0, 3
+ ldr r1, _08143854 @ =gTrainerFrontPicTable
+ mov r8, r1
+ add r8, r7
+ ldr r1, _08143858 @ =gTrainerFrontPicCoords
+ lsls r2, r0, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r5, _0814385C @ =gUnknown_0840B5A0
+ lsls r4, r6, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl DecompressPicFromTable_2
+ ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable
+ adds r0, r7, r0
+ ldr r0, [r0]
+ lsls r4, r6, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8143680
+ ldr r0, _08143864 @ =gUnknown_02024E8C
+ mov r1, r9
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08143868 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08143854: .4byte gTrainerFrontPicTable
+_08143858: .4byte gTrainerFrontPicCoords
+_0814385C: .4byte gUnknown_0840B5A0
+_08143860: .4byte gTrainerFrontPicPaletteTable
+_08143864: .4byte gUnknown_02024E8C
+_08143868: .4byte gSprites
+ thumb_func_end sub_81437A4
+
+ thumb_func_start sub_814386C
+sub_814386C: @ 814386C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x78
+ ble _08143882
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081438BA
+_08143882:
+ adds r0, r1, 0x1
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r4, [r5, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, 0x8
+ ldr r1, _081438C0 @ =gSineTable
+ lsls r4, 1
+ adds r4, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ cmp r0, 0
+ bge _081438B0
+ adds r0, 0xFF
+_081438B0:
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x4
+ strh r0, [r5, 0x2E]
+_081438BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081438C0: .4byte gSineTable
+ thumb_func_end sub_814386C
+
+ thumb_func_start sub_81438C4
+sub_81438C4: @ 81438C4
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x7
+ ands r2, r0
+ negs r2, r2
+ ldr r0, _08143934 @ =gSpriteTemplate_840B7A4
+ lsls r4, 16
+ asrs r4, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08143938 @ =gSprites
+ adds r4, r1, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ beq _0814393C
+ movs r0, 0
+ b _0814393E
+ .align 2, 0
+_08143934: .4byte gSpriteTemplate_840B7A4
+_08143938: .4byte gSprites
+_0814393C:
+ movs r0, 0x1
+_0814393E:
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81438C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s
new file mode 100644
index 000000000..8d73f6cf6
--- /dev/null
+++ b/asm/intro_credits_graphics.s
@@ -0,0 +1,1166 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start load_intro_part2_graphics
+load_intro_part2_graphics: @ 8148B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148BE8 @ =gUnknown_0841225C
+ ldr r1, _08148BEC @ =0x06004000
+ bl LZ77UnCompVram
+ ldr r0, _08148BF0 @ =gUnknown_084126DC
+ ldr r1, _08148BF4 @ =0x06007800
+ bl LZ77UnCompVram
+ ldr r0, _08148BF8 @ =gUnknown_084121FC
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ cmp r4, 0
+ beq _08148BB4
+ cmp r4, 0x1
+ beq _08148C14
+_08148BB4:
+ ldr r0, _08148BFC @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C00 @ =gUnknown_08412EB4
+ ldr r1, _08148C04 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148C08 @ =gUnknown_08412818
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148C0C @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C10 @ =gUnknown_08413184
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148C46
+ .align 2, 0
+_08148BE8: .4byte gUnknown_0841225C
+_08148BEC: .4byte 0x06004000
+_08148BF0: .4byte gUnknown_084126DC
+_08148BF4: .4byte 0x06007800
+_08148BF8: .4byte gUnknown_084121FC
+_08148BFC: .4byte gUnknown_084128D8
+_08148C00: .4byte gUnknown_08412EB4
+_08148C04: .4byte 0x06003000
+_08148C08: .4byte gUnknown_08412818
+_08148C0C: .4byte gUnknown_08416B54
+_08148C10: .4byte gUnknown_08413184
+_08148C14:
+ ldr r0, _08148C58 @ =gUnknown_08413340
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C5C @ =gUnknown_084139C8
+ ldr r1, _08148C60 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148C64 @ =gUnknown_08413300
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148C68 @ =gUnknown_08416BDC
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C6C @ =gUnknown_08413CCC
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+_08148C46:
+ ldr r1, _08148C70 @ =gUnknown_0203935C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08148C74 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148C58: .4byte gUnknown_08413340
+_08148C5C: .4byte gUnknown_084139C8
+_08148C60: .4byte 0x06003000
+_08148C64: .4byte gUnknown_08413300
+_08148C68: .4byte gUnknown_08416BDC
+_08148C6C: .4byte gUnknown_08413CCC
+_08148C70: .4byte gUnknown_0203935C
+_08148C74: .4byte gReservedSpritePaletteCount
+ thumb_func_end load_intro_part2_graphics
+
+ thumb_func_start sub_8148C78
+sub_8148C78: @ 8148C78
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08148CA4 @ =REG_BG3CNT
+ ldr r2, _08148CA8 @ =0x00000603
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148CAC @ =0x00000f05
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xF2
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148CA4: .4byte REG_BG3CNT
+_08148CA8: .4byte 0x00000603
+_08148CAC: .4byte 0x00000f05
+ thumb_func_end sub_8148C78
+
+ thumb_func_start sub_8148CB0
+sub_8148CB0: @ 8148CB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148CD4 @ =gUnknown_0841225C
+ ldr r1, _08148CD8 @ =0x06004000
+ bl LZ77UnCompVram
+ ldr r0, _08148CDC @ =gUnknown_084126DC
+ ldr r1, _08148CE0 @ =0x06007800
+ bl LZ77UnCompVram
+ cmp r4, 0x4
+ bhi _08148CFC
+ lsls r0, r4, 2
+ ldr r1, _08148CE4 @ =_08148CE8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08148CD4: .4byte gUnknown_0841225C
+_08148CD8: .4byte 0x06004000
+_08148CDC: .4byte gUnknown_084126DC
+_08148CE0: .4byte 0x06007800
+_08148CE4: .4byte _08148CE8
+ .align 2, 0
+_08148CE8:
+ .4byte _08148CFC
+ .4byte _08148D58
+ .4byte _08148DC4
+ .4byte _08148DC4
+ .4byte _08148E1C
+_08148CFC:
+ ldr r0, _08148D34 @ =gUnknown_084121FC
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148D38 @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148D3C @ =gUnknown_08412EB4
+ ldr r1, _08148D40 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148D44 @ =gUnknown_08412818
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148D48 @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148D4C @ =gUnknown_084131C4
+ ldr r1, _08148D50 @ =0x06010000
+ bl LZ77UnCompVram
+ ldr r0, _08148D54 @ =gUnknown_08413184
+ b _08148D8E
+ .align 2, 0
+_08148D34: .4byte gUnknown_084121FC
+_08148D38: .4byte gUnknown_084128D8
+_08148D3C: .4byte gUnknown_08412EB4
+_08148D40: .4byte 0x06003000
+_08148D44: .4byte gUnknown_08412818
+_08148D48: .4byte gUnknown_08416B54
+_08148D4C: .4byte gUnknown_084131C4
+_08148D50: .4byte 0x06010000
+_08148D54: .4byte gUnknown_08413184
+_08148D58:
+ ldr r0, _08148DA0 @ =gUnknown_0841221C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148DA4 @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148DA8 @ =gUnknown_08412EB4
+ ldr r1, _08148DAC @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148DB0 @ =gUnknown_08412878
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148DB4 @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148DB8 @ =gUnknown_084131C4
+ ldr r1, _08148DBC @ =0x06010000
+ bl LZ77UnCompVram
+ ldr r0, _08148DC0 @ =gUnknown_084131A4
+_08148D8E:
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148E58
+ .align 2, 0
+_08148DA0: .4byte gUnknown_0841221C
+_08148DA4: .4byte gUnknown_084128D8
+_08148DA8: .4byte gUnknown_08412EB4
+_08148DAC: .4byte 0x06003000
+_08148DB0: .4byte gUnknown_08412878
+_08148DB4: .4byte gUnknown_08416B54
+_08148DB8: .4byte gUnknown_084131C4
+_08148DBC: .4byte 0x06010000
+_08148DC0: .4byte gUnknown_084131A4
+_08148DC4:
+ ldr r0, _08148E04 @ =gUnknown_0841221C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E08 @ =gUnknown_08413340
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E0C @ =gUnknown_084139C8
+ ldr r1, _08148E10 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r4, _08148E14 @ =gUnknown_08413320
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E18 @ =gUnknown_08416BDC
+ bl LoadCompressedObjectPic
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+ b _08148E58
+ .align 2, 0
+_08148E04: .4byte gUnknown_0841221C
+_08148E08: .4byte gUnknown_08413340
+_08148E0C: .4byte gUnknown_084139C8
+_08148E10: .4byte 0x06003000
+_08148E14: .4byte gUnknown_08413320
+_08148E18: .4byte gUnknown_08416BDC
+_08148E1C:
+ ldr r0, _08148E6C @ =gUnknown_0841223C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E70 @ =gUnknown_08413E78
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E74 @ =gUnknown_08414084
+ ldr r1, _08148E78 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148E7C @ =gUnknown_08413E38
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08148E80 @ =gUnknown_08416C70
+ bl LoadCompressedObjectPic
+ ldr r0, _08148E84 @ =gUnknown_08414064
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149280
+_08148E58:
+ ldr r1, _08148E88 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r1, _08148E8C @ =gUnknown_0203935C
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148E6C: .4byte gUnknown_0841223C
+_08148E70: .4byte gUnknown_08413E78
+_08148E74: .4byte gUnknown_08414084
+_08148E78: .4byte 0x06003000
+_08148E7C: .4byte gUnknown_08413E38
+_08148E80: .4byte gUnknown_08416C70
+_08148E84: .4byte gUnknown_08414064
+_08148E88: .4byte gReservedSpritePaletteCount
+_08148E8C: .4byte gUnknown_0203935C
+ thumb_func_end sub_8148CB0
+
+ thumb_func_start sub_8148E90
+sub_8148E90: @ 8148E90
+ ldr r1, _08148EB4 @ =REG_BG3CNT
+ ldr r2, _08148EB8 @ =0x00000603
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148EBC @ =0x00000f05
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08148EB4: .4byte REG_BG3CNT
+_08148EB8: .4byte 0x00000603
+_08148EBC: .4byte 0x00000f05
+ thumb_func_end sub_8148E90
+
+ thumb_func_start sub_8148EC0
+sub_8148EC0: @ 8148EC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r1, _08148F34 @ =sub_8148F3C
+ mov r9, r1
+ mov r0, r9
+ movs r1, 0
+ str r3, [sp]
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08148F38 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ strh r2, [r0, 0xE]
+ mov r1, r8
+ strh r1, [r0, 0x10]
+ strh r2, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ ldr r3, [sp]
+ strh r3, [r0, 0x16]
+ movs r1, 0x8
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ adds r0, r4, 0
+ bl _call_via_r9
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148F34: .4byte sub_8148F3C
+_08148F38: .4byte gTasks
+ thumb_func_end sub_8148EC0
+
+ thumb_func_start sub_8148F3C
+sub_8148F3C: @ 8148F3C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08148FB4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0xA]
+ lsls r4, r0, 16
+ adds r6, r1, 0
+ cmp r4, 0
+ beq _08148F7C
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0xE]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0xC]
+ strh r2, [r3, 0xE]
+ ldr r0, _08148FB8 @ =REG_BG1HOFS
+ strh r1, [r0]
+ ldr r2, _08148FBC @ =REG_BG1VOFS
+ ldr r1, _08148FC0 @ =gUnknown_02039358
+ ldr r0, _08148FC4 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+_08148F7C:
+ ldrh r0, [r3, 0x10]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08148FD8
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x14]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x12]
+ strh r2, [r3, 0x14]
+ ldr r0, _08148FC8 @ =REG_BG2HOFS
+ strh r1, [r0]
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08148FD0
+ ldr r2, _08148FCC @ =REG_BG2VOFS
+ ldr r1, _08148FC0 @ =gUnknown_02039358
+ ldr r0, _08148FC4 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ b _08148FD8
+ .align 2, 0
+_08148FB4: .4byte gTasks
+_08148FB8: .4byte REG_BG1HOFS
+_08148FBC: .4byte REG_BG1VOFS
+_08148FC0: .4byte gUnknown_02039358
+_08148FC4: .4byte gUnknown_0203935A
+_08148FC8: .4byte REG_BG2HOFS
+_08148FCC: .4byte REG_BG2VOFS
+_08148FD0:
+ ldr r0, _08149010 @ =REG_BG2VOFS
+ ldr r1, _08149014 @ =gUnknown_02039358
+ ldrh r1, [r1]
+ strh r1, [r0]
+_08148FD8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r6
+ ldrh r0, [r3, 0x16]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08149008
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x1A]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x18]
+ strh r2, [r3, 0x1A]
+ ldr r0, _08149018 @ =REG_BG3HOFS
+ strh r1, [r0]
+ ldr r1, _0814901C @ =REG_BG3VOFS
+ ldr r0, _08149014 @ =gUnknown_02039358
+ ldrh r0, [r0]
+ strh r0, [r1]
+_08149008:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149010: .4byte REG_BG2VOFS
+_08149014: .4byte gUnknown_02039358
+_08149018: .4byte REG_BG3HOFS
+_0814901C: .4byte REG_BG3VOFS
+ thumb_func_end sub_8148F3C
+
+ thumb_func_start sub_8149020
+sub_8149020: @ 8149020
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08149100
+ cmp r0, 0x1
+ ble _08149034
+ cmp r0, 0x2
+ beq _08149098
+_08149034:
+ ldr r0, _08149060 @ =gMain
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _08149064 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _0814906C
+ ldr r2, _08149068 @ =gPlttBufferUnfaded
+ ldrh r1, [r2, 0x12]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x14]
+ b _08149076
+ .align 2, 0
+_08149060: .4byte gMain
+_08149064: .4byte gPaletteFade
+_08149068: .4byte gPlttBufferUnfaded
+_0814906C:
+ ldr r2, _08149094 @ =gPlttBufferUnfaded
+ ldrh r1, [r2, 0x14]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x12]
+_08149076:
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r4, r0, 0
+ mov r0, sp
+ movs r1, 0x9
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ bl LoadPalette
+ b _08149100
+ .align 2, 0
+_08149094: .4byte gPlttBufferUnfaded
+_08149098:
+ ldr r0, _081490C8 @ =gMain
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _081490CC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _081490D8
+ mov r1, sp
+ ldr r2, _081490D0 @ =0x00003d27
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _081490D4 @ =0x00000295
+ b _081490E6
+ .align 2, 0
+_081490C8: .4byte gMain
+_081490CC: .4byte gPaletteFade
+_081490D0: .4byte 0x00003d27
+_081490D4: .4byte 0x00000295
+_081490D8:
+ mov r1, sp
+ movs r2, 0xC7
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08149108 @ =0x00003d27
+_081490E6:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r4, r1, 0
+ mov r0, sp
+ movs r1, 0xC
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x2
+ bl LoadPalette
+_08149100:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149108: .4byte 0x00003d27
+ thumb_func_end sub_8149020
+
+ thumb_func_start sub_814910C
+sub_814910C: @ 814910C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08149124 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08149128
+ adds r0, r2, 0
+ bl DestroySprite
+ b _0814916C
+ .align 2, 0
+_08149124: .4byte gUnknown_0203935C
+_08149128:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 16
+ ldrh r1, [r2, 0x32]
+ orrs r0, r1
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ asrs r1, r0, 16
+ strh r1, [r2, 0x20]
+ strh r0, [r2, 0x32]
+ cmp r1, 0xFF
+ ble _08149144
+ ldr r0, _08149158 @ =0x0000ffe0
+ strh r0, [r2, 0x20]
+_08149144:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08149164
+ ldr r1, _0814915C @ =gUnknown_02039358
+ ldr r0, _08149160 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ b _08149168
+ .align 2, 0
+_08149158: .4byte 0x0000ffe0
+_0814915C: .4byte gUnknown_02039358
+_08149160: .4byte gUnknown_0203935A
+_08149164:
+ ldr r0, _08149170 @ =gUnknown_02039358
+ ldrh r0, [r0]
+_08149168:
+ negs r0, r0
+ strh r0, [r2, 0x26]
+_0814916C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149170: .4byte gUnknown_02039358
+ thumb_func_end sub_814910C
+
+ thumb_func_start sub_8149174
+sub_8149174: @ 8149174
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r7, 0
+ cmp r7, r8
+ bcs _0814922A
+ ldr r0, _0814923C @ =gSprites
+ mov r10, r0
+ movs r2, 0x3F
+ mov r9, r2
+_0814919E:
+ lsls r6, r7, 3
+ ldr r0, [sp, 0x4]
+ adds r6, r0
+ ldrb r1, [r6, 0x1]
+ ldrb r2, [r6, 0x2]
+ ldrb r3, [r6, 0x3]
+ ldr r0, _08149240 @ =gSpriteTemplate_8416B3C
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r2, r10
+ adds r4, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 26
+ lsrs r1, 30
+ lsrs r2, 6
+ adds r0, r4, 0
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xC
+ orrs r3, r0
+ strb r3, [r4, 0x5]
+ ldrb r1, [r6]
+ lsls r1, 26
+ lsrs r1, 30
+ lsls r1, 6
+ ldrb r2, [r4, 0x1]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r6]
+ lsrs r1, 6
+ lsls r1, 6
+ ldrb r2, [r4, 0x3]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0xF
+ ands r3, r0
+ strb r3, [r4, 0x5]
+ ldr r0, _08149244 @ =gSprites + 0x8
+ adds r5, r0
+ ldr r2, [sp, 0x8]
+ str r2, [r5]
+ ldrb r1, [r6]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, r8
+ bcc _0814919E
+_0814922A:
+ 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
+_0814923C: .4byte gSprites
+_08149240: .4byte gSpriteTemplate_8416B3C
+_08149244: .4byte gSprites + 0x8
+ thumb_func_end sub_8149174
+
+ thumb_func_start sub_8149248
+sub_8149248: @ 8149248
+ push {lr}
+ ldr r1, _0814925C @ =gUnknown_08416B94
+ ldr r2, _08149260 @ =gSpriteAnimTable_8416B84
+ movs r0, 0
+ movs r3, 0x9
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814925C: .4byte gUnknown_08416B94
+_08149260: .4byte gSpriteAnimTable_8416B84
+ thumb_func_end sub_8149248
+
+ thumb_func_start sub_8149264
+sub_8149264: @ 8149264
+ push {lr}
+ ldr r1, _08149278 @ =gUnknown_08416C10
+ ldr r2, _0814927C @ =gSpriteAnimTable_8416C04
+ movs r0, 0x1
+ movs r3, 0xC
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149278: .4byte gUnknown_08416C10
+_0814927C: .4byte gSpriteAnimTable_8416C04
+ thumb_func_end sub_8149264
+
+ thumb_func_start sub_8149280
+sub_8149280: @ 8149280
+ push {lr}
+ ldr r1, _08149294 @ =gUnknown_08416C8C
+ ldr r2, _08149298 @ =gSpriteAnimTable_8416C88
+ movs r0, 0x1
+ movs r3, 0x6
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149294: .4byte gUnknown_08416C8C
+_08149298: .4byte gSpriteAnimTable_8416C88
+ thumb_func_end sub_8149280
+
+ thumb_func_start nullsub_82
+nullsub_82: @ 814929C
+ bx lr
+ thumb_func_end nullsub_82
+
+ thumb_func_start sub_81492A0
+sub_81492A0: @ 81492A0
+ push {r4,lr}
+ ldr r4, _0814930C @ =gSprites
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x20]
+ strh r1, [r0, 0x20]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814930C: .4byte gSprites
+ thumb_func_end sub_81492A0
+
+ thumb_func_start intro_create_brendan_sprite
+intro_create_brendan_sprite: @ 8149310
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _0814935C @ =gSpriteTemplate_8416CDC
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08149360 @ =gSpriteTemplate_8416D2C
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149364 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814935C: .4byte gSpriteTemplate_8416CDC
+_08149360: .4byte gSpriteTemplate_8416D2C
+_08149364: .4byte gSprites
+ thumb_func_end intro_create_brendan_sprite
+
+ thumb_func_start intro_create_may_sprite
+intro_create_may_sprite: @ 8149368
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _081493B8 @ =gSpriteTemplate_8416D44
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081493BC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081493B4: .4byte gSpriteTemplate_8416CF4
+_081493B8: .4byte gSpriteTemplate_8416D44
+_081493BC: .4byte gSprites
+ thumb_func_end intro_create_may_sprite
+
+ thumb_func_start nullsub_83
+nullsub_83: @ 81493C0
+ bx lr
+ thumb_func_end nullsub_83
+
+ thumb_func_start sub_81493C4
+sub_81493C4: @ 81493C4
+ push {r4,lr}
+ ldr r4, _08149420 @ =gSprites
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149420: .4byte gSprites
+ thumb_func_end sub_81493C4
+
+ thumb_func_start intro_create_latios_sprite
+intro_create_latios_sprite: @ 8149424
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _08149490 @ =gSpriteTemplate_8416D7C
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149494 @ =0xffe00000
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149498 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0814949C @ =sub_81493C4
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149490: .4byte gSpriteTemplate_8416D7C
+_08149494: .4byte 0xffe00000
+_08149498: .4byte gSprites
+_0814949C: .4byte sub_81493C4
+ thumb_func_end intro_create_latios_sprite
+
+ thumb_func_start intro_create_latias_sprite
+intro_create_latias_sprite: @ 81494A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _0814950C @ =gSpriteTemplate_8416D94
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149510 @ =0xffe00000
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149514 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _08149518 @ =sub_81493C4
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814950C: .4byte gSpriteTemplate_8416D94
+_08149510: .4byte 0xffe00000
+_08149514: .4byte gSprites
+_08149518: .4byte sub_81493C4
+ thumb_func_end intro_create_latias_sprite
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index e2abfe960..4270b4954 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -5261,7 +5261,7 @@ sub_80A5AAC: @ 80A5AAC
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _080A5AE0 @ =sub_80A5B00
+ ldr r1, _080A5AE0 @ =HandleItemMenuPaletteFade
str r1, [r0]
add sp, 0x4
pop {r4}
@@ -5269,7 +5269,7 @@ sub_80A5AAC: @ 80A5AAC
bx r0
.align 2, 0
_080A5ADC: .4byte gTasks
-_080A5AE0: .4byte sub_80A5B00
+_080A5AE0: .4byte HandleItemMenuPaletteFade
thumb_func_end sub_80A5AAC
thumb_func_start sub_80A5AE4
@@ -5287,8 +5287,8 @@ sub_80A5AE4: @ 80A5AE4
bx r0
thumb_func_end sub_80A5AE4
- thumb_func_start sub_80A5B00
-sub_80A5B00: @ 80A5B00
+ thumb_func_start HandleItemMenuPaletteFade
+HandleItemMenuPaletteFade: @ 80A5B00
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -5318,7 +5318,7 @@ _080A5B32:
.align 2, 0
_080A5B38: .4byte gTasks + 0x8
_080A5B3C: .4byte gPaletteFade
- thumb_func_end sub_80A5B00
+ thumb_func_end HandleItemMenuPaletteFade
thumb_func_start sub_80A5B40
sub_80A5B40: @ 80A5B40
@@ -5420,7 +5420,7 @@ sub_80A5BF8: @ 80A5BF8
bl sub_80A73FC
bl sub_80A7590
ldr r1, _080A5C1C @ =gOtherText_NoPokemon
- ldr r2, _080A5C20 @ =sub_80A5C48
+ ldr r2, _080A5C20 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayCannotUseItemMessage
@@ -5429,7 +5429,7 @@ sub_80A5BF8: @ 80A5BF8
bx r0
.align 2, 0
_080A5C1C: .4byte gOtherText_NoPokemon
-_080A5C20: .4byte sub_80A5C48
+_080A5C20: .4byte CleanUpItemMenuMessage
thumb_func_end sub_80A5BF8
thumb_func_start sub_80A5C24
@@ -5450,8 +5450,8 @@ sub_80A5C24: @ 80A5C24
bx r0
thumb_func_end sub_80A5C24
- thumb_func_start sub_80A5C48
-sub_80A5C48: @ 80A5C48
+ thumb_func_start CleanUpItemMenuMessage
+CleanUpItemMenuMessage: @ 80A5C48
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -5489,10 +5489,10 @@ sub_80A5C48: @ 80A5C48
_080A5C90: .4byte gBGTilemapBuffers + 0x800
_080A5C94: .4byte gTasks
_080A5C98: .4byte sub_80A5C24
- thumb_func_end sub_80A5C48
+ thumb_func_end CleanUpItemMenuMessage
- thumb_func_start sub_80A5C9C
-sub_80A5C9C: @ 80A5C9C
+ thumb_func_start CleanUpOverworldMessage
+CleanUpOverworldMessage: @ 80A5C9C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -5509,10 +5509,10 @@ sub_80A5C9C: @ 80A5C9C
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80A5C9C
+ thumb_func_end CleanUpOverworldMessage
- thumb_func_start sub_80A5CC4
-sub_80A5CC4: @ 80A5CC4
+ thumb_func_start ExecuteItemUseFromBlackPalette
+ExecuteItemUseFromBlackPalette: @ 80A5CC4
push {lr}
bl pal_fill_black
ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback
@@ -5522,7 +5522,7 @@ sub_80A5CC4: @ 80A5CC4
bx r0
.align 2, 0
_080A5CD8: .4byte Task_CallItemUseOnFieldCallback
- thumb_func_end sub_80A5CC4
+ thumb_func_end ExecuteItemUseFromBlackPalette
thumb_func_start Task_CallItemUseOnFieldCallback
Task_CallItemUseOnFieldCallback: @ 80A5CDC
@@ -6064,7 +6064,7 @@ _080A6128:
lsrs r1, r2, 16
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
- ldr r1, _080A6160 @ =sub_80A5B00
+ ldr r1, _080A6160 @ =HandleItemMenuPaletteFade
str r1, [r0]
ldr r1, _080A6164 @ =gUnknown_02038561
movs r0, 0x1
@@ -6080,7 +6080,7 @@ _080A6128:
.align 2, 0
_080A6158: .4byte gTasks
_080A615C: .4byte sub_808B020
-_080A6160: .4byte sub_80A5B00
+_080A6160: .4byte HandleItemMenuPaletteFade
_080A6164: .4byte gUnknown_02038561
_080A6168:
adds r0, r6, 0
@@ -6105,7 +6105,7 @@ sub_80A6178: @ 80A6178
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r2, _080A61A4 @ =sub_814625C
+ ldr r2, _080A61A4 @ =BerryTagScreen_814625C
lsrs r1, r2, 16
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
@@ -6114,7 +6114,7 @@ sub_80A6178: @ 80A6178
bx r0
.align 2, 0
_080A61A0: .4byte gTasks
-_080A61A4: .4byte sub_814625C
+_080A61A4: .4byte BerryTagScreen_814625C
thumb_func_end sub_80A6178
thumb_func_start sub_80A61A8
@@ -7553,7 +7553,7 @@ sub_80A6D1C: @ 80A6D1C
cmp r5, 0x1
bne _080A6D80
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
bl sub_80594C0
bl sub_80597F4
ldr r1, _080A6D78 @ =gScriptItemId
@@ -7968,7 +7968,7 @@ sub_80A7094: @ 80A7094
movs r3, 0
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
- ldr r0, _080A70D4 @ =sub_80A5B00
+ ldr r0, _080A70D4 @ =HandleItemMenuPaletteFade
str r0, [r1]
movs r0, 0x1
negs r0, r0
@@ -7983,7 +7983,7 @@ sub_80A7094: @ 80A7094
.align 2, 0
_080A70CC: .4byte gTasks
_080A70D0: .4byte sub_802E424
-_080A70D4: .4byte sub_80A5B00
+_080A70D4: .4byte HandleItemMenuPaletteFade
thumb_func_end sub_80A7094
thumb_func_start sub_80A70D8
@@ -8264,7 +8264,7 @@ _080A72F4:
mov r0, r8
subs r0, 0x8
adds r0, r6, r0
- ldr r1, _080A7354 @ =sub_80A5B00
+ ldr r1, _080A7354 @ =HandleItemMenuPaletteFade
str r1, [r0]
movs r0, 0x1
negs r0, r0
@@ -8279,7 +8279,7 @@ _080A7344: .4byte gBGTilemapBuffers + 0x800
_080A7348: .4byte gSaveBlock1 + 0x560
_080A734C: .4byte 0x0201e000
_080A7350: .4byte sub_802E424
-_080A7354: .4byte sub_80A5B00
+_080A7354: .4byte HandleItemMenuPaletteFade
_080A7358:
ldrh r0, [r7, 0x1E]
adds r0, 0x1
@@ -9682,7 +9682,7 @@ sub_80A7CF8: @ 80A7CF8
lsrs r4, r0, 24
cmp r4, 0x2A
bne _080A7D44
- bl sub_80B4940
+ bl IsEnigmaBerryValid
cmp r0, 0x1
bne _080A7D44
ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C
diff --git a/asm/item_use.s b/asm/item_use.s
index 65953583e..c4f6fb74a 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -6,853 +6,6 @@
.text
- thumb_func_start sub_80C8FAC
-sub_80C8FAC: @ 80C8FAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8FD0 @ =gScriptItemId
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _080C8FD8
- ldr r1, _080C8FD4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080C8FE6
- .align 2, 0
-_080C8FD0: .4byte gScriptItemId
-_080C8FD4: .4byte gTasks
-_080C8FD8:
- ldrh r0, [r1]
- bl ItemId_GetType
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r2, r4, 2
-_080C8FE6:
- ldr r0, _080C9008 @ =gTasks
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- ldr r2, _080C900C @ =gUnknown_083D61E4
- lsls r0, r3, 2
- adds r0, r2
- ldr r2, [r0]
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080C9010 @ =sub_80A5B00
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9008: .4byte gTasks
-_080C900C: .4byte gUnknown_083D61E4
-_080C9010: .4byte sub_80A5B00
- thumb_func_end sub_80C8FAC
-
- thumb_func_start unknown_ItemMenu_Confirm
-unknown_ItemMenu_Confirm: @ 80C9014
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end unknown_ItemMenu_Confirm
-
- thumb_func_start sub_80C9038
-sub_80C9038: @ 80C9038
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- thumb_func_end sub_80C9038
-
- thumb_func_start SetUpItemUseOnFieldCallback
-SetUpItemUseOnFieldCallback: @ 80C9050
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C9078 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080C9084
- ldr r1, _080C907C @ =gUnknown_0300485C
- ldr r0, _080C9080 @ =sub_80A5CC4
- str r0, [r1]
- adds r0, r2, 0
- bl unknown_ItemMenu_Confirm
- b _080C908E
- .align 2, 0
-_080C9078: .4byte gTasks
-_080C907C: .4byte gUnknown_0300485C
-_080C9080: .4byte sub_80A5CC4
-_080C9084:
- ldr r0, _080C9094 @ =gUnknown_03005D00
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_080C908E:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9094: .4byte gUnknown_03005D00
- thumb_func_end SetUpItemUseOnFieldCallback
-
- thumb_func_start sub_80C9098
-sub_80C9098: @ 80C9098
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r1, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080C90CC @ =gStringVar4
- adds r0, r5, 0
- bl StringExpandPlaceholders
- cmp r4, 0
- bne _080C90D4
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C90D0 @ =sub_80A5C48
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C90E0
- .align 2, 0
-_080C90CC: .4byte gStringVar4
-_080C90D0: .4byte sub_80A5C48
-_080C90D4:
- ldr r2, _080C90E8 @ =sub_80A5C9C
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C90E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C90E8: .4byte sub_80A5C9C
- thumb_func_end sub_80C9098
-
- thumb_func_start DisplayDadsAdviceCannotUseItemMessage
-DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9100 @ =gOtherText_DadsAdvice
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9100: .4byte gOtherText_DadsAdvice
- thumb_func_end DisplayDadsAdviceCannotUseItemMessage
-
- thumb_func_start sub_80C9104
-sub_80C9104: @ 80C9104
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9118 @ =gOtherText_CantGetOffBike
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9118: .4byte gOtherText_CantGetOffBike
- thumb_func_end sub_80C9104
-
- thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
-CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM
- cmp r0, r1
- bne _080C9138
- movs r0, 0x1
- b _080C914E
- .align 2, 0
-_080C9134: .4byte ItemUseOutOfBattle_TMHM
-_080C9138:
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone
- cmp r0, r1
- beq _080C914C
- movs r0, 0
- b _080C914E
- .align 2, 0
-_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
-_080C914C:
- movs r0, 0x2
-_080C914E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
-
- thumb_func_start sub_80C9154
-sub_80C9154: @ 80C9154
- push {r4,lr}
- sub sp, 0x24
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C9180
- mov r1, sp
- ldr r0, _080C918C @ =gScriptItemId
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, _080C9190 @ =sub_80A5D04
- mov r0, sp
- movs r2, 0
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_080C9180:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9188: .4byte gPaletteFade
-_080C918C: .4byte gScriptItemId
-_080C9190: .4byte sub_80A5D04
- thumb_func_end sub_80C9154
-
- thumb_func_start ItemUseOutOfBattle_Mail
-ItemUseOutOfBattle_Mail: @ 80C9194
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080C91C4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C91C8 @ =sub_80C9154
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C91C4: .4byte gTasks
-_080C91C8: .4byte sub_80C9154
- thumb_func_end ItemUseOutOfBattle_Mail
-
- thumb_func_start ItemUseOutOfBattle_Bike
-ItemUseOutOfBattle_Bike: @ 80C91CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C924C @ =0x0000082b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9254
-_080C9238:
- ldr r0, _080C9250 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl sub_80C9104
- b _080C928E
- .align 2, 0
-_080C924C: .4byte 0x0000082b
-_080C9250: .4byte gTasks
-_080C9254:
- bl sub_8053C44
- cmp r0, 0x1
- bne _080C927C
- bl sub_80E5EF4
- lsls r0, 24
- cmp r0, 0
- bne _080C927C
- ldr r1, _080C9274 @ =gUnknown_03005D00
- ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike
- str r0, [r1]
- adds r0, r5, 0
- bl SetUpItemUseOnFieldCallback
- b _080C928E
- .align 2, 0
-_080C9274: .4byte gUnknown_03005D00
-_080C9278: .4byte ItemUseOnFieldCB_Bike
-_080C927C:
- ldr r0, _080C9298 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C928E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9298: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Bike
-
- thumb_func_start ItemUseOnFieldCB_Bike
-ItemUseOnFieldCB_Bike: @ 80C929C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C92E0 @ =gScriptItemId
- ldrh r0, [r4]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- cmp r0, 0
- bne _080C92B6
- movs r0, 0x2
- bl GetOnOffBike
-_080C92B6:
- ldrh r0, [r4]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C92CA
- movs r0, 0x4
- bl GetOnOffBike
-_080C92CA:
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C92E0: .4byte gScriptItemId
- thumb_func_end ItemUseOnFieldCB_Bike
-
- thumb_func_start CanFish
-CanFish: @ 80C92E4
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x10
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C933C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080C936C
-_080C9338:
- movs r0, 0x1
- b _080C936E
-_080C933C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080C935C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- beq _080C9338
-_080C935C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl MetatileBehavior_IsBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9338
-_080C936C:
- movs r0, 0
-_080C936E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CanFish
-
- thumb_func_start ItemUseOutOfBattle_Rod
-ItemUseOutOfBattle_Rod: @ 80C9378
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CanFish
- cmp r0, 0x1
- bne _080C939C
- ldr r1, _080C9394 @ =gUnknown_03005D00
- ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C93AE
- .align 2, 0
-_080C9394: .4byte gUnknown_03005D00
-_080C9398: .4byte ItemUseOnFieldCB_Rod
-_080C939C:
- ldr r0, _080C93B4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C93AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93B4: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Rod
-
- thumb_func_start ItemUseOnFieldCB_Rod
-ItemUseOnFieldCB_Rod: @ 80C93B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C93DC @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- bl StartFishing
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93DC: .4byte gScriptItemId
- thumb_func_end ItemUseOnFieldCB_Rod
-
- thumb_func_start ItemUseOutOfBattle_Itemfinder
-ItemUseOutOfBattle_Itemfinder: @ 80C93E0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x27
- bl sav12_xor_increment
- ldr r1, _080C9400 @ =gUnknown_03005D00
- ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9400: .4byte gUnknown_03005D00
-_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
- thumb_func_end ItemUseOutOfBattle_Itemfinder
-
- thumb_func_start ItemUseOnFieldCB_Itemfinder
-ItemUseOnFieldCB_Itemfinder: @ 80C9408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9430 @ =gMapHeader
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl ItemfinderCheckForHiddenItems
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C943C
- ldr r0, _080C9434 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C9438 @ =sub_80C9458
- str r0, [r1]
- b _080C9448
- .align 2, 0
-_080C9430: .4byte gMapHeader
-_080C9434: .4byte gTasks
-_080C9438: .4byte sub_80C9458
-_080C943C:
- ldr r1, _080C9450 @ =gOtherText_NoResponse
- ldr r2, _080C9454 @ =sub_80C9520
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9448:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9450: .4byte gOtherText_NoResponse
-_080C9454: .4byte sub_80C9520
- thumb_func_end ItemUseOnFieldCB_Itemfinder
-
- thumb_func_start sub_80C9458
-sub_80C9458: @ 80C9458
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- ldr r0, _080C94AC @ =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C950C
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _080C9500
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80C9908
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080C94B8
- ldr r1, _080C94B0 @ =gUnknown_083D61F0
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _080C94B4 @ =sub_80C99EC
- str r1, [r0]
- b _080C9516
- .align 2, 0
-_080C94AC: .4byte gTasks + 0x8
-_080C94B0: .4byte gUnknown_083D61F0
-_080C94B4: .4byte sub_80C99EC
-_080C94B8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- adds r3, r6, 0
- ldr r7, _080C94F4 @ =gUnknown_083D61F0
- movs r6, 0x3
-_080C94C8:
- adds r0, r1, r7
- adds r1, 0x1
- ldrb r0, [r0]
- cmp r2, r0
- bne _080C94D8
- adds r0, r1, 0
- ands r0, r6
- strh r0, [r4, 0xA]
-_080C94D8:
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C94C8
- ldr r1, _080C94F8 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C94FC @ =sub_80C9A38
- str r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x6]
- strh r0, [r4, 0x4]
- b _080C9516
- .align 2, 0
-_080C94F4: .4byte gUnknown_083D61F0
-_080C94F8: .4byte gTasks
-_080C94FC: .4byte sub_80C9A38
-_080C9500:
- movs r0, 0x48
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C950C:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r4, 0x6]
-_080C9516:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9458
-
- thumb_func_start sub_80C9520
-sub_80C9520: @ 80C9520
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9520
-
- thumb_func_start ItemfinderCheckForHiddenItems
-ItemfinderCheckForHiddenItems: @ 80C9548
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldr r1, _080C9618 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r3, 0
- mov r9, r4
- ldrb r0, [r5, 0x3]
- cmp r3, r0
- bge _080C95FC
- subs r1, 0x5
- mov r8, r1
-_080C9580:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r5, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r4, r0, 2
- adds r1, r4, r2
- ldrb r0, [r1, 0x5]
- adds r7, r3, 0
- cmp r0, 0x7
- bne _080C95EC
- movs r2, 0x96
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C95EC
- ldr r1, [r5, 0x10]
- adds r1, r4, r1
- ldrh r2, [r1]
- adds r2, 0x7
- mov r0, sp
- ldrh r0, [r0]
- subs r2, r0
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- mov r3, r9
- ldrh r1, [r3]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r2, r3
- lsrs r2, 16
- cmp r2, 0xE
- bhi _080C95EC
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, r8
- blt _080C95EC
- cmp r2, 0x5
- bgt _080C95EC
- adds r0, r6, 0
- bl sub_80C9838
-_080C95EC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r2, [r5, 0x3]
- cmp r0, r2
- blt _080C9580
-_080C95FC:
- adds r0, r6, 0
- bl sub_80C9720
- ldr r0, _080C9618 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C961C
- movs r0, 0
- b _080C961E
- .align 2, 0
-_080C9618: .4byte gTasks
-_080C961C:
- movs r0, 0x1
-_080C961E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ItemfinderCheckForHiddenItems
-
thumb_func_start sub_80C962C
sub_80C962C: @ 80C962C
push {r4-r6,lr}
@@ -1259,8 +412,8 @@ _080C98FA:
bx r0
thumb_func_end sub_80C9838
- thumb_func_start sub_80C9908
-sub_80C9908: @ 80C9908
+ thumb_func_start GetPlayerDirectionTowardsHiddenItem
+GetPlayerDirectionTowardsHiddenItem: @ 80C9908
push {r4,r5,lr}
lsls r0, 16
lsls r1, 16
@@ -1331,10 +484,10 @@ _080C9976:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80C9908
+ thumb_func_end GetPlayerDirectionTowardsHiddenItem
- thumb_func_start sub_80C997C
-sub_80C997C: @ 80C997C
+ thumb_func_start SetPlayerDirectionTowardsItem
+SetPlayerDirectionTowardsItem: @ 80C997C
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
@@ -1375,7 +528,7 @@ sub_80C997C: @ 80C997C
adds r0, r1
lsls r0, 2
adds r0, r4
- bl npc_sync_anim_pause_bits
+ bl UnfreezeMapObject
adds r0, r5, 0
bl PlayerTurnInPlace
pop {r4,r5}
@@ -1383,10 +536,10 @@ sub_80C997C: @ 80C997C
bx r0
.align 2, 0
_080C99E8: .4byte gMapObjects
- thumb_func_end sub_80C997C
+ thumb_func_end SetPlayerDirectionTowardsItem
- thumb_func_start sub_80C99EC
-sub_80C99EC: @ 80C99EC
+ thumb_func_start DisplayItemRespondingMessageAndExitItemfinder
+DisplayItemRespondingMessageAndExitItemfinder: @ 80C99EC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -1408,7 +561,7 @@ sub_80C99EC: @ 80C99EC
cmp r0, 0x1
bne _080C9A24
ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding
- ldr r2, _080C9A34 @ =sub_80C9520
+ ldr r2, _080C9A34 @ =ExitItemfinder
adds r0, r4, 0
movs r3, 0
bl DisplayItemMessageOnField
@@ -1419,11 +572,11 @@ _080C9A24:
.align 2, 0
_080C9A2C: .4byte gMapObjects
_080C9A30: .4byte gOtherText_ItemfinderResponding
-_080C9A34: .4byte sub_80C9520
- thumb_func_end sub_80C99EC
+_080C9A34: .4byte ExitItemfinder
+ thumb_func_end DisplayItemRespondingMessageAndExitItemfinder
- thumb_func_start sub_80C9A38
-sub_80C9A38: @ 80C9A38
+ thumb_func_start RotatePlayerAndExitItemfinder
+RotatePlayerAndExitItemfinder: @ 80C9A38
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -1455,12 +608,12 @@ sub_80C9A38: @ 80C9A38
cmp r0, 0
bne _080C9AAE
_080C9A78:
- ldr r1, _080C9ABC @ =gUnknown_083D61F0
+ ldr r1, _080C9ABC @ =gItemFinderDirections
movs r2, 0xA
ldrsh r0, [r4, r2]
adds r0, r1
ldrb r0, [r0]
- bl sub_80C997C
+ bl SetPlayerDirectionTowardsItem
movs r0, 0x1
strh r0, [r4, 0x4]
ldrh r0, [r4, 0xA]
@@ -1475,8 +628,8 @@ _080C9A78:
asrs r0, 16
cmp r0, 0x4
bne _080C9AAE
- ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem
- ldr r2, _080C9AC4 @ =sub_80C9520
+ ldr r1, _080C9AC0 @ =gOtherText_ItemfinderItemUnderfoot
+ ldr r2, _080C9AC4 @ =ExitItemfinder
adds r0, r5, 0
movs r3, 0
bl DisplayItemMessageOnField
@@ -1487,10 +640,10 @@ _080C9AAE:
.align 2, 0
_080C9AB4: .4byte gTasks + 0x8
_080C9AB8: .4byte gMapObjects
-_080C9ABC: .4byte gUnknown_083D61F0
-_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
-_080C9AC4: .4byte sub_80C9520
- thumb_func_end sub_80C9A38
+_080C9ABC: .4byte gItemFinderDirections
+_080C9AC0: .4byte gOtherText_ItemfinderItemUnderfoot
+_080C9AC4: .4byte ExitItemfinder
+ thumb_func_end RotatePlayerAndExitItemfinder
thumb_func_start ItemUseOutOfBattle_PokeblockCase
ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
@@ -1527,7 +680,7 @@ _080C9AF4:
movs r0, 0
bl sub_810BA7C
adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
+ bl ItemMenu_ConfirmNormalFade
b _080C9B2A
.align 2, 0
_080C9B14: .4byte gTasks
@@ -1538,7 +691,7 @@ _080C9B18:
movs r0, 0x1
bl sub_810BA7C
adds r0, r5, 0
- bl sub_80C9038
+ bl ItemMenu_ConfirmComplexFade
_080C9B2A:
pop {r4,r5}
pop {r0}
@@ -1580,7 +733,7 @@ ItemUseOutOfBattle_CoinCase: @ 80C9B38
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
- ldr r2, _080C9B9C @ =sub_80A5C48
+ ldr r2, _080C9B9C @ =CleanUpItemMenuMessage
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0x1
@@ -1591,9 +744,9 @@ _080C9B8C: .4byte gStringVar1
_080C9B90: .4byte gStringVar4
_080C9B94: .4byte gOtherText_Coins3
_080C9B98: .4byte gTasks
-_080C9B9C: .4byte sub_80A5C48
+_080C9B9C: .4byte CleanUpItemMenuMessage
_080C9BA0:
- ldr r2, _080C9BB4 @ =sub_80A5C9C
+ ldr r2, _080C9BB4 @ =CleanUpOverworldMessage
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0
@@ -1603,7 +756,7 @@ _080C9BAC:
pop {r0}
bx r0
.align 2, 0
-_080C9BB4: .4byte sub_80A5C9C
+_080C9BB4: .4byte CleanUpOverworldMessage
thumb_func_end ItemUseOutOfBattle_CoinCase
thumb_func_start sub_80C9BB8
@@ -1618,7 +771,7 @@ sub_80C9BB8: @ 80C9BB8
cmp r0, 0
beq _080C9BD0
adds r0, r2, 0
- bl sub_80A5C48
+ bl CleanUpItemMenuMessage
_080C9BD0:
pop {r0}
bx r0
@@ -1638,7 +791,7 @@ sub_80C9BD8: @ 80C9BD8
cmp r0, 0
beq _080C9BF0
adds r0, r2, 0
- bl sub_80A5C9C
+ bl CleanUpOverworldMessage
_080C9BF0:
pop {r0}
bx r0
@@ -1721,7 +874,7 @@ sub_80C9C7C: @ 80C9C7C
ldr r0, _080C9CCC @ =sub_80C9D00
str r0, [r1]
ldr r1, _080C9CD0 @ =gUnknown_0300485C
- ldr r0, _080C9CD4 @ =sub_80A5CC4
+ ldr r0, _080C9CD4 @ =ExecuteItemUseFromBlackPalette
str r0, [r1]
ldr r1, _080C9CD8 @ =gTasks
lsls r0, r4, 2
@@ -1733,7 +886,7 @@ sub_80C9C7C: @ 80C9C7C
movs r3, 0
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
- ldr r1, _080C9CE0 @ =sub_80A5B00
+ ldr r1, _080C9CE0 @ =HandleItemMenuPaletteFade
str r1, [r0]
movs r0, 0x1
negs r0, r0
@@ -1747,10 +900,10 @@ sub_80C9C7C: @ 80C9C7C
_080C9CC8: .4byte gUnknown_03005D00
_080C9CCC: .4byte sub_80C9D00
_080C9CD0: .4byte gUnknown_0300485C
-_080C9CD4: .4byte sub_80A5CC4
+_080C9CD4: .4byte ExecuteItemUseFromBlackPalette
_080C9CD8: .4byte gTasks
_080C9CDC: .4byte c2_exit_to_overworld_2_switch
-_080C9CE0: .4byte sub_80A5B00
+_080C9CE0: .4byte HandleItemMenuPaletteFade
_080C9CE4:
ldr r0, _080C9CFC @ =gScriptItemId
ldrh r0, [r0]
@@ -1795,7 +948,7 @@ ItemUseOutOfBattle_WailmerPail: @ 80C9D30
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl WaterBerryTree
+ bl TryToWaterBerryTree
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1852,7 +1005,7 @@ sub_80C9D98: @ 80C9D98
ldr r2, _080C9DAC @ =gUnknown_02038561
movs r1, 0
strb r1, [r2]
- bl unknown_ItemMenu_Confirm
+ bl ItemMenu_ConfirmNormalFade
pop {r0}
bx r0
.align 2, 0
@@ -1865,14 +1018,14 @@ ItemUseOutOfBattle_Medicine: @ 80C9DB0
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9DC4 @ =gUnknown_03004AE4
- ldr r1, _080C9DC8 @ =sub_806FE2C
+ ldr r1, _080C9DC8 @ =UseMedicine
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9DC4: .4byte gUnknown_03004AE4
-_080C9DC8: .4byte sub_806FE2C
+_080C9DC8: .4byte UseMedicine
thumb_func_end ItemUseOutOfBattle_Medicine
thumb_func_start ItemUseOutOfBattle_SacredAsh
@@ -1919,7 +1072,7 @@ _080C9E10:
movs r0, 0x4
strb r0, [r1]
adds r0, r6, 0
- bl unknown_ItemMenu_Confirm
+ bl ItemMenu_ConfirmNormalFade
pop {r4-r6}
pop {r0}
bx r0
@@ -1937,14 +1090,14 @@ ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9E50 @ =gUnknown_03004AE4
- ldr r1, _080C9E54 @ =dp05_ether
+ ldr r1, _080C9E54 @ =DoPPRecoveryItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9E50: .4byte gUnknown_03004AE4
-_080C9E54: .4byte dp05_ether
+_080C9E54: .4byte DoPPRecoveryItemEffect
thumb_func_end ItemUseOutOfBattle_PPRecovery
thumb_func_start ItemUseOutOfBattle_PPUp
@@ -1953,14 +1106,14 @@ ItemUseOutOfBattle_PPUp: @ 80C9E58
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9E6C @ =gUnknown_03004AE4
- ldr r1, _080C9E70 @ =dp05_pp_up
+ ldr r1, _080C9E70 @ =DoPPUpItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9E6C: .4byte gUnknown_03004AE4
-_080C9E70: .4byte dp05_pp_up
+_080C9E70: .4byte DoPPUpItemEffect
thumb_func_end ItemUseOutOfBattle_PPUp
thumb_func_start ItemUseOutOfBattle_RareCandy
@@ -1969,14 +1122,14 @@ ItemUseOutOfBattle_RareCandy: @ 80C9E74
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9E88 @ =gUnknown_03004AE4
- ldr r1, _080C9E8C @ =sub_8070680
+ ldr r1, _080C9E8C @ =DoRareCandyItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9E88: .4byte gUnknown_03004AE4
-_080C9E8C: .4byte sub_8070680
+_080C9E8C: .4byte DoRareCandyItemEffect
thumb_func_end ItemUseOutOfBattle_RareCandy
thumb_func_start ItemUseOutOfBattle_TMHM
@@ -2132,14 +1285,14 @@ sub_80C9FC0: @ 80C9FC0
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9FD4 @ =gUnknown_03004AE4
- ldr r1, _080C9FD8 @ =sub_806F06C
+ ldr r1, _080C9FD8 @ =TeachMonTMMove
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9FD4: .4byte gUnknown_03004AE4
-_080C9FD8: .4byte sub_806F06C
+_080C9FD8: .4byte TeachMonTMMove
thumb_func_end sub_80C9FC0
thumb_func_start sub_80C9FDC
@@ -2187,7 +1340,7 @@ ItemUseOutOfBattle_Repel: @ 80CA014
bl VarSet
bl sub_80C9FDC
ldr r1, _080CA058 @ =gStringVar4
- ldr r2, _080CA05C @ =sub_80A5C48
+ ldr r2, _080CA05C @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2196,10 +1349,10 @@ ItemUseOutOfBattle_Repel: @ 80CA014
_080CA050: .4byte 0x00004021
_080CA054: .4byte gScriptItemId
_080CA058: .4byte gStringVar4
-_080CA05C: .4byte sub_80A5C48
+_080CA05C: .4byte CleanUpItemMenuMessage
_080CA060:
ldr r1, _080CA074 @ =gOtherText_RepelLingers
- ldr r2, _080CA078 @ =sub_80A5C48
+ ldr r2, _080CA078 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2209,7 +1362,7 @@ _080CA06C:
bx r0
.align 2, 0
_080CA074: .4byte gOtherText_RepelLingers
-_080CA078: .4byte sub_80A5C48
+_080CA078: .4byte CleanUpItemMenuMessage
thumb_func_end ItemUseOutOfBattle_Repel
thumb_func_start sub_80CA07C
@@ -2247,7 +1400,7 @@ sub_80CA098: @ 80CA098
movs r0, 0x75
bl PlaySE
ldr r1, _080CA0D4 @ =gStringVar4
- ldr r2, _080CA0D8 @ =sub_80A5C48
+ ldr r2, _080CA0D8 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2258,7 +1411,7 @@ _080CA0C8:
.align 2, 0
_080CA0D0: .4byte gTasks
_080CA0D4: .4byte gStringVar4
-_080CA0D8: .4byte sub_80A5C48
+_080CA0D8: .4byte CleanUpItemMenuMessage
thumb_func_end sub_80CA098
thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
@@ -2428,14 +1581,14 @@ ItemUseOutOfBattle_EvolutionStone: @ 80CA228
lsls r0, 24
lsrs r0, 24
ldr r2, _080CA23C @ =gUnknown_03004AE4
- ldr r1, _080CA240 @ =sub_8070DBC
+ ldr r1, _080CA240 @ =DoEvolutionStoneItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080CA23C: .4byte gUnknown_03004AE4
-_080CA240: .4byte sub_8070DBC
+_080CA240: .4byte DoEvolutionStoneItemEffect
thumb_func_end ItemUseOutOfBattle_EvolutionStone
thumb_func_start ItemUseInBattle_PokeBall
@@ -2463,7 +1616,7 @@ _080CA26C:
movs r3, 0x14
bl MenuZeroFillWindowRect
ldr r1, _080CA28C @ =gOtherText_BoxIsFull
- ldr r2, _080CA290 @ =sub_80A5C48
+ ldr r2, _080CA290 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2473,7 +1626,7 @@ _080CA284:
bx r0
.align 2, 0
_080CA28C: .4byte gOtherText_BoxIsFull
-_080CA290: .4byte sub_80A5C48
+_080CA290: .4byte CleanUpItemMenuMessage
thumb_func_end ItemUseInBattle_PokeBall
thumb_func_start sub_80CA294
@@ -2573,7 +1726,7 @@ ItemUseInBattle_StatIncrease: @ 80CA310
cmp r2, 0
beq _080CA374
ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA370 @ =sub_80A5C48
+ ldr r2, _080CA370 @ =CleanUpItemMenuMessage
adds r0, r5, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2584,7 +1737,7 @@ _080CA360: .4byte gUnknown_02024E6C
_080CA364: .4byte gPlayerParty
_080CA368: .4byte gScriptItemId
_080CA36C: .4byte gOtherText_WontHaveAnyEffect
-_080CA370: .4byte sub_80A5C48
+_080CA370: .4byte CleanUpItemMenuMessage
_080CA374:
ldr r0, _080CA38C @ =gTasks
lsls r1, r5, 2
@@ -2660,14 +1813,14 @@ ItemUseInBattle_Medicine: @ 80CA3F4
lsls r0, 24
lsrs r0, 24
ldr r2, _080CA408 @ =gUnknown_03004AE4
- ldr r1, _080CA40C @ =sub_806FE2C
+ ldr r1, _080CA40C @ =UseMedicine
str r1, [r2]
bl sub_80CA3C0
pop {r0}
bx r0
.align 2, 0
_080CA408: .4byte gUnknown_03004AE4
-_080CA40C: .4byte sub_806FE2C
+_080CA40C: .4byte UseMedicine
thumb_func_end ItemUseInBattle_Medicine
thumb_func_start unref_sub_80CA410
@@ -2692,14 +1845,14 @@ ItemUseInBattle_PPRecovery: @ 80CA42C
lsls r0, 24
lsrs r0, 24
ldr r2, _080CA440 @ =gUnknown_03004AE4
- ldr r1, _080CA444 @ =dp05_ether
+ ldr r1, _080CA444 @ =DoPPRecoveryItemEffect
str r1, [r2]
bl sub_80CA3C0
pop {r0}
bx r0
.align 2, 0
_080CA440: .4byte gUnknown_03004AE4
-_080CA444: .4byte dp05_ether
+_080CA444: .4byte DoPPRecoveryItemEffect
thumb_func_end ItemUseInBattle_PPRecovery
thumb_func_start unref_sub_80CA448
@@ -2745,7 +1898,7 @@ _080CA4A4: .4byte gOtherText_SnapConfusion
_080CA4A8: .4byte sub_80A7094
_080CA4AC:
ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA4C4 @ =sub_80A5C48
+ ldr r2, _080CA4C4 @ =CleanUpItemMenuMessage
adds r0, r5, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2755,7 +1908,7 @@ _080CA4B8:
bx r0
.align 2, 0
_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
-_080CA4C4: .4byte sub_80A5C48
+_080CA4C4: .4byte CleanUpItemMenuMessage
thumb_func_end unref_sub_80CA448
thumb_func_start ItemUseInBattle_Escape
@@ -2768,7 +1921,7 @@ ItemUseInBattle_Escape: @ 80CA4C8
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
- ldr r0, _080CA4F8 @ =gUnknown_020239F8
+ ldr r0, _080CA4F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -2782,7 +1935,7 @@ ItemUseInBattle_Escape: @ 80CA4C8
bl DisplayItemMessageOnField
b _080CA516
.align 2, 0
-_080CA4F8: .4byte gUnknown_020239F8
+_080CA4F8: .4byte gBattleTypeFlags
_080CA4FC: .4byte gStringVar4
_080CA500: .4byte sub_80A7094
_080CA504:
@@ -2809,7 +1962,7 @@ ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
lsrs r4, r0, 24
ldr r0, _080CA544 @ =gScriptItemId
ldrh r0, [r0]
- bl sub_8070E48
+ bl GetItemEffectType
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
@@ -2938,7 +2091,7 @@ ItemUseInBattle_EnigmaBerry: @ 80CA64C
lsrs r4, r0, 24
ldr r0, _080CA66C @ =gScriptItemId
ldrh r0, [r0]
- bl sub_8070E48
+ bl GetItemEffectType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x15
diff --git a/asm/load_save.s b/asm/load_save.s
deleted file mode 100644
index 09a9ea969..000000000
--- a/asm/load_save.s
+++ /dev/null
@@ -1,444 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CheckForFlashMemory
-CheckForFlashMemory: @ 80479CC
- push {lr}
- bl IdentifyFlash
- lsls r0, 16
- cmp r0, 0
- bne _080479E8
- ldr r1, _080479E4 @ =gUnknown_3004820
- movs r0, 0x1
- str r0, [r1]
- bl InitFlashTimer
- b _080479EE
- .align 2, 0
-_080479E4: .4byte gUnknown_3004820
-_080479E8:
- ldr r1, _080479F4 @ =gUnknown_3004820
- movs r0, 0
- str r0, [r1]
-_080479EE:
- pop {r0}
- bx r0
- .align 2, 0
-_080479F4: .4byte gUnknown_3004820
- thumb_func_end CheckForFlashMemory
-
- thumb_func_start sub_80479F8
-sub_80479F8: @ 80479F8
- ldr r0, _08047A00 @ =gSaveBlock2
- ldrb r0, [r0, 0x9]
- bx lr
- .align 2, 0
-_08047A00: .4byte gSaveBlock2
- thumb_func_end sub_80479F8
-
- thumb_func_start sub_8047A04
-sub_8047A04: @ 8047A04
- ldr r1, _08047A0C @ =gSaveBlock2
- movs r0, 0
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A0C: .4byte gSaveBlock2
- thumb_func_end sub_8047A04
-
- thumb_func_start sub_8047A10
-sub_8047A10: @ 8047A10
- ldr r1, _08047A18 @ =gSaveBlock2
- movs r0, 0x1
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A18: .4byte gSaveBlock2
- thumb_func_end sub_8047A10
-
- thumb_func_start sub_8047A1C
-sub_8047A1C: @ 8047A1C
- push {lr}
- movs r0, 0
- bl gpu_sync_bg_hide
- ldr r1, _08047A30 @ =gSaveBlock2
- movs r0, 0x1
- strb r0, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_08047A30: .4byte gSaveBlock2
- thumb_func_end sub_8047A1C
-
- thumb_func_start sub_8047A34
-sub_8047A34: @ 8047A34
- ldr r1, _08047A3C @ =gSaveBlock2
- movs r0, 0
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A3C: .4byte gSaveBlock2
- thumb_func_end sub_8047A34
-
- thumb_func_start sub_8047A40
-sub_8047A40: @ 8047A40
- push {r4-r6,lr}
- ldr r2, _08047A78 @ =gSaveBlock1
- ldr r0, _08047A7C @ =gPlayerPartyCount
- ldrb r1, [r0]
- movs r3, 0x8D
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- movs r6, 0
- movs r0, 0x8E
- lsls r0, 2
- adds r5, r2, r0
- movs r4, 0
-_08047A5A:
- ldr r1, _08047A80 @ =gPlayerParty
- adds r1, r4, r1
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x64
- adds r6, 0x1
- cmp r6, 0x5
- ble _08047A5A
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047A78: .4byte gSaveBlock1
-_08047A7C: .4byte gPlayerPartyCount
-_08047A80: .4byte gPlayerParty
- thumb_func_end sub_8047A40
-
- thumb_func_start copy_player_party_from_sav1
-copy_player_party_from_sav1: @ 8047A84
- push {r4-r6,lr}
- ldr r0, _08047AC0 @ =gPlayerPartyCount
- ldr r1, _08047AC4 @ =gSaveBlock1
- movs r2, 0x8D
- lsls r2, 2
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _08047AC8 @ =gPlayerParty
- movs r5, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r4, r0
-_08047A9E:
- ldr r1, _08047AC4 @ =gSaveBlock1
- adds r1, r5, r1
- movs r2, 0x8E
- lsls r2, 2
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _08047A9E
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047AC0: .4byte gPlayerPartyCount
-_08047AC4: .4byte gSaveBlock1
-_08047AC8: .4byte gPlayerParty
- thumb_func_end copy_player_party_from_sav1
-
- thumb_func_start sub_8047ACC
-sub_8047ACC: @ 8047ACC
- push {r4-r7,lr}
- ldr r0, _08047AFC @ =gSaveBlock1
- ldr r4, _08047B00 @ =gMapObjects
- movs r1, 0x9E
- lsls r1, 4
- adds r3, r0, r1
- movs r2, 0xF
-_08047ADA:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047ADA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047AFC: .4byte gSaveBlock1
-_08047B00: .4byte gMapObjects
- thumb_func_end sub_8047ACC
-
- thumb_func_start save_deserialize_npcs
-save_deserialize_npcs: @ 8047B04
- push {r4-r7,lr}
- ldr r0, _08047B34 @ =gSaveBlock1
- movs r1, 0x9E
- lsls r1, 4
- adds r4, r0, r1
- ldr r3, _08047B38 @ =gMapObjects
- movs r2, 0xF
-_08047B12:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047B12
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047B34: .4byte gSaveBlock1
-_08047B38: .4byte gMapObjects
- thumb_func_end save_deserialize_npcs
-
- thumb_func_start save_serialize_game
-save_serialize_game: @ 8047B3C
- push {lr}
- bl sub_8047A40
- bl sub_8047ACC
- pop {r0}
- bx r0
- thumb_func_end save_serialize_game
-
- thumb_func_start save_deserialize_game
-save_deserialize_game: @ 8047B4C
- push {lr}
- bl copy_player_party_from_sav1
- bl save_deserialize_npcs
- pop {r0}
- bx r0
- thumb_func_end save_deserialize_game
-
- thumb_func_start copy_bags_and_unk_data_from_save_blocks
-copy_bags_and_unk_data_from_save_blocks: @ 8047B5C
- push {r4-r7,lr}
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r1, 0xAC
- lsls r1, 3
- adds r3, r0, r1
- ldr r1, _08047C10 @ =gUnknown_020291F4
- movs r2, 0x13
-_08047B6A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B6A
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r2, 0xB6
- lsls r2, 3
- adds r3, r0, r2
- adds r1, 0x50
- movs r2, 0x13
-_08047B82:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B82
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r5, 0xC0
- lsls r5, 3
- adds r3, r0, r5
- adds r1, 0xA0
- movs r2, 0xF
-_08047B9A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B9A
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r6, 0xC8
- lsls r6, 3
- adds r3, r0, r6
- adds r1, 0xE0
- movs r2, 0x3F
-_08047BB2:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047BB2
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r7, 0xE8
- lsls r7, 3
- adds r3, r0, r7
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0
- movs r2, 0x2D
-_08047BCE:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047BCE
- ldr r0, _08047C10 @ =gUnknown_020291F4
- ldr r4, _08047C0C @ =gSaveBlock1
- movs r1, 0xA6
- lsls r1, 2
- adds r3, r0, r1
- ldr r2, _08047C14 @ =0x00002b4c
- mov r12, r2
- movs r2, 0xF
-_08047BE8:
- adds r1, r3, 0
- mov r5, r12
- adds r0, r4, r5
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047BE8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047C0C: .4byte gSaveBlock1
-_08047C10: .4byte gUnknown_020291F4
-_08047C14: .4byte 0x00002b4c
- thumb_func_end copy_bags_and_unk_data_from_save_blocks
-
- thumb_func_start copy_bags_and_unk_data_to_save_blocks
-copy_bags_and_unk_data_to_save_blocks: @ 8047C18
- push {r4-r7,lr}
- ldr r0, _08047CCC @ =gSaveBlock1
- ldr r3, _08047CD0 @ =gUnknown_020291F4
- movs r2, 0xAC
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0x13
-_08047C26:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C26
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- adds r3, r0, 0
- adds r3, 0x50
- movs r5, 0xB6
- lsls r5, 3
- adds r1, r5
- movs r2, 0x13
-_08047C40:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C40
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- adds r3, r0, 0
- adds r3, 0xA0
- movs r6, 0xC0
- lsls r6, 3
- adds r1, r6
- movs r2, 0xF
-_08047C5A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C5A
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- adds r3, r0, 0
- adds r3, 0xE0
- movs r7, 0xC8
- lsls r7, 3
- adds r1, r7
- movs r2, 0x3F
-_08047C74:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C74
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- movs r2, 0xF0
- lsls r2, 1
- adds r3, r0, r2
- movs r5, 0xE8
- lsls r5, 3
- adds r1, r5
- movs r2, 0x2D
-_08047C90:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C90
- ldr r0, _08047CCC @ =gSaveBlock1
- ldr r4, _08047CD0 @ =gUnknown_020291F4
- ldr r6, _08047CD4 @ =0x00002b4c
- adds r3, r0, r6
- movs r7, 0xA6
- lsls r7, 2
- mov r12, r7
- movs r2, 0xF
-_08047CAA:
- adds r1, r3, 0
- mov r5, r12
- adds r0, r4, r5
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047CAA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047CCC: .4byte gSaveBlock1
-_08047CD0: .4byte gUnknown_020291F4
-_08047CD4: .4byte 0x00002b4c
- thumb_func_end copy_bags_and_unk_data_to_save_blocks
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/macros/battle_anim.inc b/asm/macros/battle_anim.inc
index fc2777326..4ff845032 100644
--- a/asm/macros/battle_anim.inc
+++ b/asm/macros/battle_anim.inc
@@ -8,24 +8,24 @@
.2byte \id
.endm
- .macro sprite template, priority, argc=0, argv:vararg
+ .macro sprite template, priority, argv:vararg
.byte 0x02
.4byte \template
.byte \priority
- .byte \argc
- .if \argc > 0
+ .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2
+.Lsprite_\@_1:
.2byte \argv
- .endif
+.Lsprite_\@_2:
.endm
- .macro createtask addr, priority, argc=0, argv:vararg
+ .macro createtask addr, priority, argv:vararg
.byte 0x03
.4byte \addr
.byte \priority
- .byte \argc
- .if \argc > 0
+ .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2
+.Lcreatetask_\@_1:
.2byte \argv
- .endif
+.Lcreatetask_\@_2:
.endm
.macro pause delay
@@ -167,13 +167,13 @@
.2byte \bldcnt
.endm
- .macro createtask_1F addr, argc=0, argv:vararg
+ .macro createtask_1F addr, argv:vararg
.byte 0x1F
.4byte \addr
- .byte \argc
- .if \argc > 0
+ .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
+.Lcreatetask_1F_\@_1:
.2byte \argv
- .endif
+.Lcreatetask_1F_\@_2:
.endm
.macro waitsound
diff --git a/asm/mail.s b/asm/mail.s
deleted file mode 100644
index a08571018..000000000
--- a/asm/mail.s
+++ /dev/null
@@ -1,892 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80F890C
-sub_80F890C: @ 80F890C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r2, _080F8958 @ =0x02000000
- adds r1, r2, 0
- adds r1, 0xFF
- movs r0, 0x2
- strb r0, [r1]
- adds r0, 0xFE
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x82
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F895C @ =sub_80EB3FC
- str r0, [r1]
- movs r0, 0x84
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F8960 @ =ConvertEasyChatWordsToString
- str r0, [r1]
- ldrh r1, [r4, 0x20]
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _080F8964
- subs r1, 0x79
- adds r0, r2, 0
- adds r0, 0xFA
- strb r1, [r0]
- b _080F896E
- .align 2, 0
-_080F8958: .4byte 0x02000000
-_080F895C: .4byte sub_80EB3FC
-_080F8960: .4byte ConvertEasyChatWordsToString
-_080F8964:
- adds r1, r2, 0
- adds r1, 0xFA
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
-_080F896E:
- ldr r1, _080F8994 @ =0x02000000
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8980
- cmp r0, 0x1
- beq _080F899C
-_080F8980:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F8998 @ =gUnknown_083E5730
- b _080F89AC
- .align 2, 0
-_080F8994: .4byte 0x02000000
-_080F8998: .4byte gUnknown_083E5730
-_080F899C:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F89DC @ =gUnknown_083E57A4
-_080F89AC:
- adds r0, r1
- str r0, [r2]
- ldrh r0, [r4, 0x1E]
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- ldr r1, _080F89E0 @ =0xffff0000
- adds r0, r1
- movs r1, 0xCD
- lsls r1, 17
- cmp r0, r1
- bhi _080F89F8
- ldr r0, _080F89E4 @ =0x02000000
- adds r1, r0, 0
- adds r1, 0xFA
- ldrb r2, [r1]
- adds r1, r0, 0
- cmp r2, 0x6
- beq _080F89E8
- cmp r2, 0x9
- beq _080F89F0
- b _080F89FA
- .align 2, 0
-_080F89DC: .4byte gUnknown_083E57A4
-_080F89E0: .4byte 0xffff0000
-_080F89E4: .4byte 0x02000000
-_080F89E8:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x1
- b _080F8A00
-_080F89F0:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x2
- b _080F8A00
-_080F89F8:
- ldr r1, _080F8A20 @ =0x02000000
-_080F89FA:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0
-_080F8A00:
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xF4
- str r4, [r0]
- subs r0, 0x8
- str r6, [r0]
- adds r0, 0xC
- strb r5, [r0]
- ldr r0, _080F8A24 @ =sub_80F8D50
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8A20: .4byte 0x02000000
-_080F8A24: .4byte sub_80F8D50
- thumb_func_end sub_80F890C
-
- thumb_func_start sub_80F8A28
-sub_80F8A28: @ 80F8A28
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080F8A44 @ =gMain
- ldr r1, _080F8A48 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _080F8A3A
- b _080F8D3C
-_080F8A3A:
- lsls r0, 2
- ldr r1, _080F8A4C @ =_080F8A50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F8A44: .4byte gMain
-_080F8A48: .4byte 0x0000043c
-_080F8A4C: .4byte _080F8A50
- .align 2, 0
-_080F8A50:
- .4byte _080F8A9C
- .4byte _080F8AB0
- .4byte _080F8AC8
- .4byte _080F8ACE
- .4byte _080F8AD4
- .4byte _080F8ADA
- .4byte _080F8B10
- .4byte _080F8B1C
- .4byte _080F8B28
- .4byte _080F8B34
- .4byte _080F8B3A
- .4byte _080F8B54
- .4byte _080F8B78
- .4byte _080F8BA0
- .4byte _080F8C14
- .4byte _080F8C2C
- .4byte _080F8C58
- .4byte _080F8CBC
- .4byte _080F8CC6
-_080F8A9C:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- b _080F8D30
-_080F8AB0:
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, _080F8AC4 @ =0x01000200
- add r0, sp, 0x4
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8AC4: .4byte 0x01000200
-_080F8AC8:
- bl ResetPaletteFade
- b _080F8D30
-_080F8ACE:
- bl ResetTasks
- b _080F8D30
-_080F8AD4:
- bl ResetSpriteData
- b _080F8D30
-_080F8ADA:
- bl FreeAllSpritePalettes
- ldr r0, _080F8B0C @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x32
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _080F8D30
- .align 2, 0
-_080F8B0C: .4byte REG_BG0HOFS
-_080F8B10:
- ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC
- bl SetUpWindowConfig
- b _080F8D30
- .align 2, 0
-_080F8B18: .4byte gWindowConfig_81E6DFC
-_080F8B1C:
- ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC
- bl MultistepInitMenuWindowBegin
- b _080F8D30
- .align 2, 0
-_080F8B24: .4byte gWindowConfig_81E6DFC
-_080F8B28:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F8B32
- b _080F8D30
-_080F8B32:
- b _080F8D3C
-_080F8B34:
- bl MenuZeroFillScreen
- b _080F8D30
-_080F8B3A:
- mov r0, sp
- adds r0, 0x6
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _080F8B4C @ =0x06004800
- ldr r2, _080F8B50 @ =0x01000400
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8B4C: .4byte 0x06004800
-_080F8B50: .4byte 0x01000400
-_080F8B54:
- ldr r2, _080F8B70 @ =gMailGraphicsTable
- ldr r0, _080F8B74 @ =0x02000000
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- b _080F8D30
- .align 2, 0
-_080F8B70: .4byte gMailGraphicsTable
-_080F8B74: .4byte 0x02000000
-_080F8B78:
- ldr r2, _080F8B94 @ =gMailGraphicsTable
- ldr r0, _080F8B98 @ =0x02000000
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _080F8B9C @ =0x06004000
- bl LZ77UnCompVram
- b _080F8D30
- .align 2, 0
-_080F8B94: .4byte gMailGraphicsTable
-_080F8B98: .4byte 0x02000000
-_080F8B9C: .4byte 0x06004000
-_080F8BA0:
- ldr r5, _080F8C00 @ =gMailGraphicsTable
- ldr r4, _080F8C04 @ =0x02000000
- adds r4, 0xFA
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r3, _080F8C08 @ =gPlttBufferUnfaded
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x10]
- movs r2, 0xF1
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x12]
- adds r2, 0xE
- adds r0, r3, r2
- strh r1, [r0]
- ldr r1, _080F8C0C @ =gUnknown_083E562C
- ldr r2, _080F8C10 @ =gSaveBlock2
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x16]
- b _080F8D30
- .align 2, 0
-_080F8C00: .4byte gMailGraphicsTable
-_080F8C04: .4byte 0x02000000
-_080F8C08: .4byte gPlttBufferUnfaded
-_080F8C0C: .4byte gUnknown_083E562C
-_080F8C10: .4byte gSaveBlock2
-_080F8C14:
- ldr r0, _080F8C28 @ =0x02000000
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8C20
- b _080F8D30
-_080F8C20:
- bl sub_80F8DA0
- b _080F8D30
- .align 2, 0
-_080F8C28: .4byte 0x02000000
-_080F8C2C:
- ldr r0, _080F8C4C @ =0x02000000
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8C3A
- bl sub_80F8E80
-_080F8C3A:
- ldr r0, _080F8C50 @ =sub_80F8F18
- bl SetVBlankCallback
- ldr r2, _080F8C54 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _080F8D30
- .align 2, 0
-_080F8C4C: .4byte 0x02000000
-_080F8C50: .4byte sub_80F8F18
-_080F8C54: .4byte gPaletteFade
-_080F8C58:
- ldr r5, _080F8C7C @ =0x02000000
- adds r0, r5, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080F8C80
- cmp r0, 0x2
- beq _080F8C98
- b _080F8D30
- .align 2, 0
-_080F8C7C: .4byte 0x02000000
-_080F8C80:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8C94 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x60
- b _080F8CA8
- .align 2, 0
-_080F8C94: .4byte SpriteCallbackDummy
-_080F8C98:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8CB8 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x28
-_080F8CA8:
- movs r3, 0x80
- bl sub_809D3A4
- adds r1, r5, 0
- adds r1, 0xFC
- strb r0, [r1]
- b _080F8D30
- .align 2, 0
-_080F8CB8: .4byte SpriteCallbackDummy
-_080F8CBC:
- bl sub_8055870
- cmp r0, 0x1
- bne _080F8D30
- b _080F8D3C
-_080F8CC6:
- ldr r1, _080F8D14 @ =REG_BG0CNT
- ldr r2, _080F8D18 @ =0x00009f08
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D1C @ =0x00000801
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D20 @ =0x00000902
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _080F8D24 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080F8D28 @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8D2C @ =sub_80F8F58
- str r1, [r0]
- movs r0, 0x1
- b _080F8D3E
- .align 2, 0
-_080F8D14: .4byte REG_BG0CNT
-_080F8D18: .4byte 0x00009f08
-_080F8D1C: .4byte 0x00000801
-_080F8D20: .4byte 0x00000902
-_080F8D24: .4byte gPaletteFade
-_080F8D28: .4byte 0x02000000
-_080F8D2C: .4byte sub_80F8F58
-_080F8D30:
- ldr r1, _080F8D48 @ =gMain
- ldr r0, _080F8D4C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F8D3C:
- movs r0, 0
-_080F8D3E:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F8D48: .4byte gMain
-_080F8D4C: .4byte 0x0000043c
- thumb_func_end sub_80F8A28
-
- thumb_func_start sub_80F8D50
-sub_80F8D50: @ 80F8D50
- push {lr}
-_080F8D52:
- bl sub_80F8A28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D6C
- ldr r0, _080F8D68 @ =sub_80F8F2C
- bl SetMainCallback2
- b _080F8D78
- .align 2, 0
-_080F8D68: .4byte sub_80F8F2C
-_080F8D6C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D52
-_080F8D78:
- pop {r0}
- bx r0
- thumb_func_end sub_80F8D50
-
- thumb_func_start sub_80F8D7C
-sub_80F8D7C: @ 80F8D7C
- push {r4,lr}
- adds r4, r0, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8D7C
-
- thumb_func_start sub_80F8DA0
-sub_80F8DA0: @ 80F8DA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r2, _080F8E3C @ =0x02000000
- movs r0, 0x86
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080F8E04
- mov r8, r2
- adds r7, r1, 0
-_080F8DBE:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- subs r0, r5
- add r0, r8
- mov r1, r8
- adds r1, 0xF4
- lsls r2, r6, 1
- ldr r1, [r1]
- adds r1, r2
- ldr r2, [r7]
- ldr r2, [r2, 0x4]
- lsls r4, r5, 2
- adds r2, r4, r2
- ldr r2, [r2]
- lsls r2, 28
- lsrs r2, 30
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- ldr r1, [r7]
- ldr r0, [r1, 0x4]
- adds r4, r0
- ldr r0, [r4]
- lsls r0, 28
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r1, [r1]
- cmp r5, r1
- bcc _080F8DBE
-_080F8E04:
- ldr r2, _080F8E40 @ =0x020000d8
- adds r4, r2, 0
- subs r4, 0xD8
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8E48
- ldr r1, [r2, 0x1C]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- adds r2, r0, 0
- ldr r1, _080F8E44 @ =gOtherText_From
- bl StringCopy
- ldr r0, _080F8E40 @ =0x020000d8
- bl StringLength
- movs r2, 0x86
- lsls r2, 1
- adds r1, r4, r2
- ldr r1, [r1]
- ldrb r1, [r1, 0x2]
- subs r1, r0
- b _080F8E6A
- .align 2, 0
-_080F8E3C: .4byte 0x02000000
-_080F8E40: .4byte 0x020000d8
-_080F8E44: .4byte gOtherText_From
-_080F8E48:
- ldr r1, _080F8E7C @ =gOtherText_From
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r1, [r0]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- movs r1, 0x86
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
-_080F8E6A:
- adds r0, r4, 0
- adds r0, 0xF9
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8E7C: .4byte gOtherText_From
- thumb_func_end sub_80F8DA0
-
- thumb_func_start sub_80F8E80
-sub_80F8E80: @ 80F8E80
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r4, 0
- ldr r1, _080F8F10 @ =0x02000000
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080F8EF6
- mov r8, r1
- adds r7, r2, 0
-_080F8E9E:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r0, r4
- mov r1, r8
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080F8EE8
- cmp r0, 0
- beq _080F8EE8
- ldr r2, [r7]
- ldr r1, [r2, 0x4]
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r3, r0, 24
- lsrs r3, 28
- lsls r0, 30
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0x3]
- lsrs r1, r2, 4
- adds r1, r3
- lsls r2, 28
- lsrs r2, 28
- adds r2, r6, r2
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r6, r0, 24
-_080F8EE8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r7]
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F8E9E
-_080F8EF6:
- ldr r0, _080F8F14 @ =0x020000d8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- ldr r2, [r0, 0x34]
- ldrb r2, [r2, 0x1]
- bl MenuPrint
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F10: .4byte 0x02000000
-_080F8F14: .4byte 0x020000d8
- thumb_func_end sub_80F8E80
-
- thumb_func_start sub_80F8F18
-sub_80F8F18: @ 80F8F18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80F8F18
-
- thumb_func_start sub_80F8F2C
-sub_80F8F2C: @ 80F8F2C
- push {r4,lr}
- ldr r4, _080F8F54 @ =0x02000000
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8F42
- bl AnimateSprites
- bl BuildOamBuffer
-_080F8F42:
- adds r0, r4, 0
- adds r0, 0xF0
- ldr r0, [r0]
- bl _call_via_r0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F54: .4byte 0x02000000
- thumb_func_end sub_80F8F2C
-
- thumb_func_start sub_80F8F58
-sub_80F8F58: @ 80F8F58
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F8F6C
- ldr r0, _080F8F70 @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8F74 @ =sub_80F8F78
- str r1, [r0]
-_080F8F6C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F70: .4byte 0x02000000
-_080F8F74: .4byte sub_80F8F78
- thumb_func_end sub_80F8F58
-
- thumb_func_start sub_80F8F78
-sub_80F8F78: @ 80F8F78
- push {lr}
- sub sp, 0x4
- ldr r0, _080F8FA8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080F8FA0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080F8FAC @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8FB0 @ =sub_80F8FB4
- str r1, [r0]
-_080F8FA0:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F8FA8: .4byte gMain
-_080F8FAC: .4byte 0x02000000
-_080F8FB0: .4byte sub_80F8FB4
- thumb_func_end sub_80F8F78
-
- thumb_func_start sub_80F8FB4
-sub_80F8FB4: @ 80F8FB4
- push {r4,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F9012
- ldr r4, _080F9018 @ =0x02000000
- adds r0, r4, 0
- adds r0, 0xEC
- ldr r0, [r0]
- bl SetMainCallback2
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x2
- bgt _080F9002
- cmp r0, 0x1
- blt _080F9002
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r0, 16
- bl sub_809D608
- adds r0, r4, 0
- adds r0, 0xFC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F901C @ =gSprites
- adds r0, r1
- bl sub_809D510
-_080F9002:
- ldr r0, _080F9018 @ =0x02000000
- movs r2, 0x88
- lsls r2, 1
- movs r1, 0
- bl memset
- bl ResetPaletteFade
-_080F9012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9018: .4byte 0x02000000
-_080F901C: .4byte gSprites
- thumb_func_end sub_80F8FB4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mail_data.s b/asm/mail_data.s
new file mode 100644
index 000000000..4dff0a12b
--- /dev/null
+++ b/asm/mail_data.s
@@ -0,0 +1,574 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A2B18
+sub_80A2B18: @ 80A2B18
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C
+_080A2B1E:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ bl sub_80A2B40
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080A2B1E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
+ thumb_func_end sub_80A2B18
+
+ thumb_func_start sub_80A2B40
+sub_80A2B40: @ 80A2B40
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r0, _080A2B90 @ =0x0000ffff
+ adds r4, r0, 0
+ adds r1, r3, 0
+ movs r2, 0x8
+_080A2B4C:
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A2B4C
+ movs r2, 0
+ adds r6, r3, 0
+ adds r6, 0x1A
+ adds r4, r3, 0
+ adds r4, 0x12
+ movs r5, 0xFF
+_080A2B66:
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ orrs r0, r5
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080A2B66
+ adds r1, r6, 0
+ movs r2, 0
+ adds r0, r1, 0x3
+_080A2B7A:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080A2B7A
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r3, 0x1E]
+ strh r1, [r3, 0x20]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B90: .4byte 0x0000ffff
+ thumb_func_end sub_80A2B40
+
+ thumb_func_start sub_80A2B94
+sub_80A2B94: @ 80A2B94
+ 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 _080A2BBC
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _080A2BBC
+ movs r0, 0x1
+ b _080A2BBE
+_080A2BBC:
+ movs r0, 0
+_080A2BBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2B94
+
+ thumb_func_start sub_80A2BC4
+sub_80A2BC4: @ 80A2BC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ 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 r3, sp, 0x4
+ strb r2, [r3]
+ mov r10, r3
+ ldr r4, _080A2D00 @ =gSaveBlock1
+ mov r9, r4
+ mov r8, r3
+ adds r2, r3, 0
+_080A2BF2:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r5, _080A2D04 @ =0x00002b6c
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080A2C08
+ b _080A2D24
+_080A2C08:
+ movs r3, 0
+ ldr r0, _080A2D08 @ =gSaveBlock2
+ mov r12, r0
+ mov r4, r10
+ ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C
+ ldr r1, _080A2D10 @ =0x0000ffff
+ adds r5, r1, 0
+_080A2C16:
+ lsls r2, r3, 1
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r2]
+ orrs r0, r5
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bls _080A2C16
+ movs r3, 0
+ mov r2, r10
+ ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+_080A2C3A:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r4
+ mov r5, r12
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x6
+ bls _080A2C3A
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+ adds r0, r3
+ movs r1, 0
+ bl PadNameString
+ movs r3, 0
+ mov r2, r10
+ ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66
+ ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA
+_080A2C88:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r5
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A2C88
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_80A2D44
+ mov r4, r8
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ add r1, r9
+ ldr r5, _080A2D20 @ =0x00002b6a
+ adds r1, r5
+ strh r0, [r1]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r1, _080A2D04 @ =0x00002b6c
+ adds r0, r1
+ mov r2, sp
+ ldrh r2, [r2, 0x8]
+ strh r2, [r0]
+ adds r0, r7, 0
+ movs r1, 0x40
+ mov r2, r8
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldrb r0, [r4]
+ b _080A2D32
+ .align 2, 0
+_080A2D00: .4byte gSaveBlock1
+_080A2D04: .4byte 0x00002b6c
+_080A2D08: .4byte gSaveBlock2
+_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
+_080A2D10: .4byte 0x0000ffff
+_080A2D14: .4byte gSaveBlock1 + 0x2B5E
+_080A2D18: .4byte gSaveBlock1 + 0x2B66
+_080A2D1C: .4byte gSaveBlock2 + 0xA
+_080A2D20: .4byte 0x00002b6a
+_080A2D24:
+ adds r0, r1, 0x1
+ strb r0, [r3]
+ ldrb r0, [r2]
+ cmp r0, 0x5
+ bhi _080A2D30
+ b _080A2BF2
+_080A2D30:
+ movs r0, 0xFF
+_080A2D32:
+ 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_80A2BC4
+
+ thumb_func_start sub_80A2D44
+sub_80A2D44: @ 80A2D44
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC9
+ bne _080A2D5C
+ adds r0, r1, 0
+ bl sub_809D474
+ lsls r0, 16
+ ldr r1, _080A2D60 @ =0x75300000
+ adds r0, r1
+ lsrs r0, 16
+_080A2D5C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2D60: .4byte 0x75300000
+ thumb_func_end sub_80A2D44
+
+ thumb_func_start sub_80A2D64
+sub_80A2D64: @ 80A2D64
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A2D7C @ =0xffff8ad0
+ adds r2, r3, r0
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x1B
+ bhi _080A2D80
+ movs r0, 0xC9
+ strh r2, [r1]
+ b _080A2D82
+ .align 2, 0
+_080A2D7C: .4byte 0xffff8ad0
+_080A2D80:
+ adds r0, r3, 0
+_080A2D82:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D64
+
+ thumb_func_start sub_80A2D88
+sub_80A2D88: @ 80A2D88
+ 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_80A2BC4
+ add r4, sp, 0x4
+ strb r0, [r4]
+ ldrb r2, [r4]
+ cmp r2, 0xFF
+ beq _080A2DE8
+ ldr r0, _080A2DE0 @ =gSaveBlock1
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080A2DE4 @ =0x00002b4c
+ 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 _080A2DEA
+ .align 2, 0
+_080A2DE0: .4byte gSaveBlock1
+_080A2DE4: .4byte 0x00002b4c
+_080A2DE8:
+ movs r0, 0xFF
+_080A2DEA:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D88
+
+ thumb_func_start unref_sub_80A2DF4
+unref_sub_80A2DF4: @ 80A2DF4
+ movs r0, 0
+ bx lr
+ thumb_func_end unref_sub_80A2DF4
+
+ thumb_func_start sub_80A2DF8
+sub_80A2DF8: @ 80A2DF8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ bl sub_80A2B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2E46
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ add r2, sp, 0x4
+ strb r0, [r2]
+ ldr r3, _080A2E50 @ =gSaveBlock1
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080A2E54 @ =0x00002b6c
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, sp
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_080A2E46:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E50: .4byte gSaveBlock1
+_080A2E54: .4byte 0x00002b6c
+ thumb_func_end sub_80A2DF8
+
+ thumb_func_start unref_sub_80A2E58
+unref_sub_80A2E58: @ 80A2E58
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A2E70 @ =gSaveBlock1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080A2E74 @ =0x00002b6c
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080A2E70: .4byte gSaveBlock1
+_080A2E74: .4byte 0x00002b6c
+ thumb_func_end unref_sub_80A2E58
+
+ thumb_func_start sub_80A2E78
+sub_80A2E78: @ 80A2E78
+ 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, _080A2F04 @ =gSaveBlock1
+ mov r8, r0
+ ldr r2, _080A2F08 @ =0x00002b4c
+ add r2, r8
+_080A2E9E:
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r4, r0, 2
+ mov r1, r8
+ adds r0, r4, r1
+ ldr r3, _080A2F0C @ =0x00002b6c
+ adds r0, r3
+ ldrh r6, [r0]
+ cmp r6, 0
+ bne _080A2F10
+ adds r4, r2
+ adds r0, r5, 0
+ movs r1, 0x40
+ str r2, [sp, 0x8]
+ bl GetMonData
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, [sp, 0x8]
+ adds r1, r2
+ 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
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldr r0, _080A2F0C @ =0x00002b6c
+ adds r1, r0
+ strh r6, [r1]
+ 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 _080A2F1C
+ .align 2, 0
+_080A2F04: .4byte gSaveBlock1
+_080A2F08: .4byte 0x00002b4c
+_080A2F0C: .4byte 0x00002b6c
+_080A2F10:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0xF
+ bls _080A2E9E
+ movs r0, 0xFF
+_080A2F1C:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2E78
+
+ thumb_func_start itemid_is_mail
+itemid_is_mail: @ 80A2F2C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x84
+ bgt _080A2F3E
+ cmp r0, 0x79
+ blt _080A2F3E
+ movs r0, 0x1
+ b _080A2F40
+_080A2F3E:
+ movs r0, 0
+_080A2F40:
+ pop {r1}
+ bx r1
+ thumb_func_end itemid_is_mail
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s
new file mode 100644
index 000000000..b488e5f73
--- /dev/null
+++ b/asm/map_name_popup.s
@@ -0,0 +1,248 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_80A2F44
+unref_sub_80A2F44: @ 80A2F44
+ push {lr}
+ bl CloseMenu
+ bl AddMapNamePopUpWindowTask
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80A2F44
+
+ thumb_func_start AddMapNamePopUpWindowTask
+AddMapNamePopUpWindowTask: @ 80A2F54
+ push {r4,r5,lr}
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A2FE4
+ ldr r4, _080A2FAC @ =sub_80A2FF4
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A2FBC
+ adds r0, r4, 0
+ movs r1, 0x5A
+ bl CreateTask
+ ldr r4, _080A2FB0 @ =gUnknown_02038538
+ strb r0, [r4]
+ ldr r1, _080A2FB4 @ =REG_BG0VOFS
+ movs r0, 0x20
+ strh r0, [r1]
+ bl sub_80A30E0
+ ldr r2, _080A2FB8 @ =gTasks
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r5, [r0, 0x8]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ strh r1, [r0, 0xC]
+ b _080A2FE4
+ .align 2, 0
+_080A2FAC: .4byte sub_80A2FF4
+_080A2FB0: .4byte gUnknown_02038538
+_080A2FB4: .4byte REG_BG0VOFS
+_080A2FB8: .4byte gTasks
+_080A2FBC:
+ ldr r3, _080A2FEC @ =gTasks
+ ldr r2, _080A2FF0 @ =gUnknown_02038538
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x8
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x2
+ beq _080A2FD6
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+_080A2FD6:
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080A2FE4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2FEC: .4byte gTasks
+_080A2FF0: .4byte gUnknown_02038538
+ thumb_func_end AddMapNamePopUpWindowTask
+
+ thumb_func_start sub_80A2FF4
+sub_80A2FF4: @ 80A2FF4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r3, _080A3018 @ =gTasks
+ adds r4, r1, r3
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080A304C
+ cmp r2, 0x1
+ bgt _080A301C
+ cmp r2, 0
+ beq _080A3026
+ b _080A3092
+ .align 2, 0
+_080A3018: .4byte gTasks
+_080A301C:
+ cmp r2, 0x2
+ beq _080A3064
+ cmp r2, 0x4
+ beq _080A308C
+ b _080A3092
+_080A3026:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A3092
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080A3048 @ =gUnknown_02038538
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r2, [r0, 0xA]
+ b _080A3092
+ .align 2, 0
+_080A3048: .4byte gUnknown_02038538
+_080A304C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _080A3092
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080A3092
+_080A3064:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ movs r5, 0
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ ble _080A3092
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A3086
+ bl sub_80A30E0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xE]
+ b _080A3092
+_080A3086:
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080A3098
+_080A308C:
+ bl HideMapNamePopUpWindow
+ b _080A3098
+_080A3092:
+ ldr r1, _080A30A0 @ =REG_BG0VOFS
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+_080A3098:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30A0: .4byte REG_BG0VOFS
+ thumb_func_end sub_80A2FF4
+
+ thumb_func_start HideMapNamePopUpWindow
+HideMapNamePopUpWindow: @ 80A30A4
+ push {lr}
+ ldr r0, _080A30D4 @ =sub_80A2FF4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A30D0
+ bl MenuLoadTextWindowGraphics
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A30D8 @ =REG_BG0VOFS
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080A30DC @ =gUnknown_02038538
+ ldrb r0, [r0]
+ bl DestroyTask
+_080A30D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30D4: .4byte sub_80A2FF4
+_080A30D8: .4byte REG_BG0VOFS
+_080A30DC: .4byte gUnknown_02038538
+ thumb_func_end HideMapNamePopUpWindow
+
+ thumb_func_start sub_80A30E0
+sub_80A30E0: @ 80A30E0
+ push {lr}
+ sub sp, 0x14
+ movs r0, 0
+ bl MenuLoadTextWindowGraphics_OverrideFrameType
+ ldr r0, _080A3114 @ =gMapHeader
+ ldrb r1, [r0, 0x14]
+ mov r0, sp
+ movs r2, 0
+ bl sub_80FBFB4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x60
+ bl sub_8072BD8
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3114: .4byte gMapHeader
+ thumb_func_end sub_80A30E0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/matuda_debug_menu.s b/asm/matuda_debug_menu.s
deleted file mode 100644
index c2fb1f004..000000000
--- a/asm/matuda_debug_menu.s
+++ /dev/null
@@ -1,2877 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_80A9B28
-unref_sub_80A9B28: @ 80A9B28
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x11
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _080A9B6C @ =gUnknown_083C91F0
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x7
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x7
- bl InitMenu
- ldr r1, _080A9B70 @ =gCallback_03004AE8
- ldr r0, _080A9B74 @ =sub_80A9B78
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_080A9B6C: .4byte gUnknown_083C91F0
-_080A9B70: .4byte gCallback_03004AE8
-_080A9B74: .4byte sub_80A9B78
- thumb_func_end unref_sub_80A9B28
-
- thumb_func_start sub_80A9B78
-sub_80A9B78: @ 80A9B78
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _080A9B8E
- movs r0, 0
- b _080A9BB6
-_080A9B8E:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A9BB0
- ldr r2, _080A9BA8 @ =gCallback_03004AE8
- ldr r0, _080A9BAC @ =gUnknown_083C91F0
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _080A9BB6
- .align 2, 0
-_080A9BA8: .4byte gCallback_03004AE8
-_080A9BAC: .4byte gUnknown_083C91F0
-_080A9BB0:
- bl sub_8071C20
- movs r0, 0x1
-_080A9BB6:
- pop {r1}
- bx r1
- thumb_func_end sub_80A9B78
-
- thumb_func_start sub_80A9BBC
-sub_80A9BBC: @ 80A9BBC
- 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, _080A9BE0 @ =sub_80A9BE4
- movs r1, 0xFF
- bl CreateTask
- movs r0, 0x1
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080A9BE0: .4byte sub_80A9BE4
- thumb_func_end sub_80A9BBC
-
- thumb_func_start sub_80A9BE4
-sub_80A9BE4: @ 80A9BE4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A9C14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A9C10
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080A9C18 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A9C0C
- bl sub_80AF668
-_080A9C0C:
- bl sub_80C2358
-_080A9C10:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9C14: .4byte gPaletteFade
-_080A9C18: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9BE4
-
- thumb_func_start sub_80A9C1C
-sub_80A9C1C: @ 80A9C1C
- push {lr}
- ldr r1, _080A9C30 @ =gUnknown_0203869A
- movs r0, 0
- strb r0, [r1]
- bl sub_80AA10C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A9C30: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9C1C
-
- thumb_func_start sub_80A9C34
-sub_80A9C34: @ 80A9C34
- push {lr}
- bl sub_80AA10C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80A9C34
-
- thumb_func_start sub_80A9C40
-sub_80A9C40: @ 80A9C40
- push {r4,r5,lr}
- ldr r5, _080A9C88 @ =sub_80A9E3C
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080A9C8C @ =sub_80A9C98
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r0, _080A9C90 @ =sub_80A9E04
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9C94 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x1C]
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x1C]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9C88: .4byte sub_80A9E3C
-_080A9C8C: .4byte sub_80A9C98
-_080A9C90: .4byte sub_80A9E04
-_080A9C94: .4byte gTasks
- thumb_func_end sub_80A9C40
-
- thumb_func_start sub_80A9C98
-sub_80A9C98: @ 80A9C98
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80AE098
- ldr r1, _080A9CB8 @ =sub_80C8734
- ldr r2, _080A9CBC @ =sub_80A9CC0
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CB8: .4byte sub_80C8734
-_080A9CBC: .4byte sub_80A9CC0
- thumb_func_end sub_80A9C98
-
- thumb_func_start sub_80A9CC0
-sub_80A9CC0: @ 80A9CC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9CD4 @ =sub_80C88AC
- ldr r2, _080A9CD8 @ =sub_80A9CDC
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CD4: .4byte sub_80C88AC
-_080A9CD8: .4byte sub_80A9CDC
- thumb_func_end sub_80A9CC0
-
- thumb_func_start sub_80A9CDC
-sub_80A9CDC: @ 80A9CDC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9CF0 @ =sub_80C8E1C
- ldr r2, _080A9CF4 @ =sub_80A9D58
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CF0: .4byte sub_80C8E1C
-_080A9CF4: .4byte sub_80A9D58
- thumb_func_end sub_80A9CDC
-
- thumb_func_start sub_80A9CF8
-sub_80A9CF8: @ 80A9CF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A9D28 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A9D20
- ldr r0, _080A9D2C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x1C]
- bl DestroyTask
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8071C20
-_080A9D20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9D28: .4byte gReceivedRemoteLinkPlayers
-_080A9D2C: .4byte gTasks
- thumb_func_end sub_80A9CF8
-
- thumb_func_start sub_80A9D30
-sub_80A9D30: @ 80A9D30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _080A9D50 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A9D54 @ =sub_80A9CF8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9D50: .4byte gTasks
-_080A9D54: .4byte sub_80A9CF8
- thumb_func_end sub_80A9D30
-
- thumb_func_start sub_80A9D58
-sub_80A9D58: @ 80A9D58
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r1, _080A9DA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, 0x12
- adds r2, r0, r1
-_080A9D6E:
- mov r0, sp
- adds r1, r0, r3
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _080A9D6E
- mov r0, sp
- bl sub_80C4B34
- ldr r1, _080A9DAC @ =gUnknown_0203869B
- strb r0, [r1]
- ldr r0, _080A9DB0 @ =gScriptContestCategory
- ldrb r0, [r0]
- bl sub_80AE82C
- movs r0, 0
- bl sub_80B0F28
- ldr r1, _080A9DB4 @ =sub_80C8EBC
- ldr r2, _080A9DB8 @ =sub_80A9DBC
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DA8: .4byte gTasks
-_080A9DAC: .4byte gUnknown_0203869B
-_080A9DB0: .4byte gScriptContestCategory
-_080A9DB4: .4byte sub_80C8EBC
-_080A9DB8: .4byte sub_80A9DBC
- thumb_func_end sub_80A9D58
-
- thumb_func_start sub_80A9DBC
-sub_80A9DBC: @ 80A9DBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9DD0 @ =sub_80C8F34
- ldr r2, _080A9DD4 @ =sub_80A9DD8
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DD0: .4byte sub_80C8F34
-_080A9DD4: .4byte sub_80A9DD8
- thumb_func_end sub_80A9DBC
-
- thumb_func_start sub_80A9DD8
-sub_80A9DD8: @ 80A9DD8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A9E00 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1C]
- bl DestroyTask
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8071C20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E00: .4byte gTasks
- thumb_func_end sub_80A9DD8
-
- thumb_func_start sub_80A9E04
-sub_80A9E04: @ 80A9E04
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080A9E30 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x2
- bne _080A9E2A
- ldr r2, _080A9E34 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080A9E38 @ =sub_80A9D30
- str r1, [r0]
-_080A9E2A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E30: .4byte gMain
-_080A9E34: .4byte gTasks
-_080A9E38: .4byte sub_80A9D30
- thumb_func_end sub_80A9E04
-
- thumb_func_start sub_80A9E3C
-sub_80A9E3C: @ 80A9E3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl OpenLink
- movs r1, 0
- ldr r3, _080A9E74 @ =gBlockRecvBuffer
- movs r2, 0xFF
-_080A9E4C:
- lsls r0, r1, 8
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080A9E4C
- ldr r1, _080A9E78 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080A9E7C @ =sub_80A9E80
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E74: .4byte gBlockRecvBuffer
-_080A9E78: .4byte gTasks
-_080A9E7C: .4byte sub_80A9E80
- thumb_func_end sub_80A9E3C
-
- thumb_func_start sub_80A9E80
-sub_80A9E80: @ 80A9E80
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9EA0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x9
- bgt _080A9EA4
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _080A9ECC
- .align 2, 0
-_080A9EA0: .4byte gTasks
-_080A9EA4:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080A9ECC
- movs r0, 0
- strh r0, [r4, 0x8]
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _080A9EC8
- ldr r0, _080A9EC4 @ =sub_80A9ED8
- b _080A9ECA
- .align 2, 0
-_080A9EC4: .4byte sub_80A9ED8
-_080A9EC8:
- ldr r0, _080A9ED4 @ =sub_80A9F10
-_080A9ECA:
- str r0, [r4]
-_080A9ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9ED4: .4byte sub_80A9F10
- thumb_func_end sub_80A9E80
-
- thumb_func_start sub_80A9ED8
-sub_80A9ED8: @ 80A9ED8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9F08 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _080A9F02
- bl sub_8007F4C
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _080A9F0C @ =sub_80A9F10
- str r0, [r4]
-_080A9F02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9F08: .4byte gTasks
-_080A9F0C: .4byte sub_80A9F10
- thumb_func_end sub_80A9ED8
-
- thumb_func_start sub_80A9F10
-sub_80A9F10: @ 80A9F10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A9F44 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A9F3E
- bl GetMultiplayerId
- ldr r1, _080A9F48 @ =gUnknown_02038695
- strb r0, [r1]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080A9F3E
- ldr r1, _080A9F4C @ =gUnknown_0203869A
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080A9F3E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9F44: .4byte gReceivedRemoteLinkPlayers
-_080A9F48: .4byte gUnknown_02038695
-_080A9F4C: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9F10
-
- thumb_func_start sub_80A9F50
-sub_80A9F50: @ 80A9F50
- push {r4,lr}
- movs r2, 0x80
- lsls r2, 19
- movs r0, 0x40
- strh r0, [r2]
- ldrh r0, [r2]
- movs r3, 0x88
- lsls r3, 5
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080A9FB8 @ =gWindowConfig_81E6C3C
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _080A9FBC @ =gMenuWindow
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _080A9FC0 @ =REG_MOSAIC
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x44
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, _080A9FC4 @ =gUnknown_030042A4
- strh r1, [r0]
- ldr r0, _080A9FC8 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _080A9FCC @ =gUnknown_030042C0
- strh r1, [r0]
- ldr r0, _080A9FD0 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080A9FD4 @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _080A9FD8 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _080A9FDC @ =gUnknown_030041B0
- strh r1, [r0]
- ldr r0, _080A9FE0 @ =gUnknown_030041B8
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9FB8: .4byte gWindowConfig_81E6C3C
-_080A9FBC: .4byte gMenuWindow
-_080A9FC0: .4byte REG_MOSAIC
-_080A9FC4: .4byte gUnknown_030042A4
-_080A9FC8: .4byte gUnknown_030042A0
-_080A9FCC: .4byte gUnknown_030042C0
-_080A9FD0: .4byte gUnknown_030041B4
-_080A9FD4: .4byte gUnknown_03004288
-_080A9FD8: .4byte gUnknown_03004280
-_080A9FDC: .4byte gUnknown_030041B0
-_080A9FE0: .4byte gUnknown_030041B8
- thumb_func_end sub_80A9F50
-
- thumb_func_start sub_80A9FE4
-sub_80A9FE4: @ 80A9FE4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r1, _080AA054 @ =gUnknown_083C9228
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- add r5, sp, 0x8
- movs r6, 0
- ldr r1, _080AA058 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _080AA05C @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_080AA012:
- str r6, [sp, 0x8]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AA012
- str r6, [sp, 0x8]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xC0
- lsls r0, 19
- mov r1, sp
- bl sub_80034D4
- ldr r0, _080AA060 @ =gWindowConfig_81E6C3C
- bl LoadFontDefaultPalette
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA054: .4byte gUnknown_083C9228
-_080AA058: .4byte 0x040000d4
-_080AA05C: .4byte 0x85000400
-_080AA060: .4byte gWindowConfig_81E6C3C
- thumb_func_end sub_80A9FE4
-
- thumb_func_start sub_80AA064
-sub_80AA064: @ 80AA064
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- ldr r0, _080AA088 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x4
- bne _080AA084
- ldr r0, _080AA08C @ =sub_805469C
- bl SetMainCallback2
-_080AA084:
- pop {r0}
- bx r0
- .align 2, 0
-_080AA088: .4byte gMain
-_080AA08C: .4byte sub_805469C
- thumb_func_end sub_80AA064
-
- thumb_func_start sub_80AA090
-sub_80AA090: @ 80AA090
- push {lr}
- ldr r1, _080AA0E8 @ =REG_BG0HOFS
- ldr r0, _080AA0EC @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F0 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F4 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F8 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0FC @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA100 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA104 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA108 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080AA0E8: .4byte REG_BG0HOFS
-_080AA0EC: .4byte gUnknown_030042A4
-_080AA0F0: .4byte gUnknown_030042A0
-_080AA0F4: .4byte gUnknown_030042C0
-_080AA0F8: .4byte gUnknown_030041B4
-_080AA0FC: .4byte gUnknown_03004288
-_080AA100: .4byte gUnknown_03004280
-_080AA104: .4byte gUnknown_030041B0
-_080AA108: .4byte gUnknown_030041B8
- thumb_func_end sub_80AA090
-
- thumb_func_start sub_80AA10C
-sub_80AA10C: @ 80AA10C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, _080AA238 @ =gPaletteFade
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80A9F50
- bl dp12_8087EA4
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl sub_80A9FE4
- ldr r0, _080AA23C @ =sub_80AA090
- bl SetVBlankCallback
- ldr r0, _080AA240 @ =sub_80AA064
- bl SetMainCallback2
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- ldr r4, _080AA244 @ =gUnknown_02038694
- movs r0, 0
- strb r0, [r4]
- ldr r0, _080AA248 @ =gUnknown_02038570
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _080AA16A
- movs r0, 0
- movs r1, 0
- bl sub_80AE398
-_080AA16A:
- ldrb r0, [r4]
- bl sub_80AE098
- movs r5, 0
- ldr r6, _080AA24C @ =gUnknown_083C9276
- adds r0, r6, 0x1
- mov r8, r0
- ldr r7, _080AA250 @ =gUnknown_083C9364
-_080AA17A:
- lsls r2, r5, 2
- adds r0, r2, r7
- ldr r1, [r0]
- adds r2, r5
- lsls r2, 17
- movs r0, 0xA8
- lsls r0, 14
- adds r2, r0
- lsrs r2, 16
- lsls r4, r5, 1
- adds r0, r4, r6
- ldrb r3, [r0]
- add r4, r8
- ldrb r0, [r4]
- str r0, [sp]
- ldr r0, _080AA254 @ =gMenuWindow
- bl sub_8003460
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080AA17A
- ldr r1, _080AA258 @ =gScriptContestCategory
- ldr r4, _080AA25C @ =gScriptContestRank
- movs r0, 0
- strh r0, [r4]
- strh r0, [r1]
- movs r5, 0
- movs r0, 0
- bl sub_80AA5BC
- ldrb r0, [r4]
- bl sub_80AA5E8
- ldr r4, _080AA254 @ =gMenuWindow
- ldr r1, _080AA260 @ =gUnknown_083C9337
- movs r0, 0x12
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xD6
- movs r3, 0x12
- bl sub_8003460
- ldr r1, _080AA264 @ =gUnknown_083C933B
- movs r0, 0xC
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xDC
- movs r3, 0
- bl sub_8003460
- ldr r0, _080AA268 @ =gUnknown_083C92B4
- bl LoadSpriteSheet
- ldr r0, _080AA26C @ =gUnknown_083C92BC
- bl LoadSpritePalette
- movs r0, 0x3
- bl sub_80AA280
- movs r0, 0x3
- bl sub_80AA658
- movs r0, 0x3
- movs r1, 0
- bl sub_80AA614
- ldr r0, _080AA270 @ =gSpriteTemplate_83C92CC
- ldr r1, _080AA274 @ =gUnknown_083C9296
- ldrb r1, [r1, 0x3]
- ldr r2, _080AA278 @ =gUnknown_083C92A8
- ldrb r2, [r2, 0x1]
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AA27C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- movs r0, 0x3
- strh r0, [r1, 0x32]
- strh r5, [r1, 0x34]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA238: .4byte gPaletteFade
-_080AA23C: .4byte sub_80AA090
-_080AA240: .4byte sub_80AA064
-_080AA244: .4byte gUnknown_02038694
-_080AA248: .4byte gUnknown_02038570
-_080AA24C: .4byte gUnknown_083C9276
-_080AA250: .4byte gUnknown_083C9364
-_080AA254: .4byte gMenuWindow
-_080AA258: .4byte gScriptContestCategory
-_080AA25C: .4byte gScriptContestRank
-_080AA260: .4byte gUnknown_083C9337
-_080AA264: .4byte gUnknown_083C933B
-_080AA268: .4byte gUnknown_083C92B4
-_080AA26C: .4byte gUnknown_083C92BC
-_080AA270: .4byte gSpriteTemplate_83C92CC
-_080AA274: .4byte gUnknown_083C9296
-_080AA278: .4byte gUnknown_083C92A8
-_080AA27C: .4byte gSprites
- thumb_func_end sub_80AA10C
-
- thumb_func_start sub_80AA280
-sub_80AA280: @ 80AA280
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080AA2E8 @ =gMenuWindow
- movs r1, 0x1E
- str r1, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r4, _080AA2EC @ =0x02000000
- ldr r1, _080AA2F0 @ =gUnknown_083C932C
- adds r0, r4, 0
- bl StringCopy
- lsls r1, r7, 6
- ldr r0, _080AA2F4 @ =gUnknown_0203857D
- adds r1, r0
- adds r0, r4, 0
- bl StringAppend
- movs r5, 0
- ldr r6, _080AA2F8 @ =gUnknown_083C926E
- adds r0, r6, 0x1
- mov r8, r0
-_080AA2BE:
- cmp r7, r5
- bne _080AA2FC
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 17
- movs r0, 0x80
- lsls r0, 10
- adds r2, r0
- lsrs r2, 16
- lsls r1, r5, 1
- adds r0, r1, r6
- ldrb r3, [r0]
- add r1, r8
- ldrb r0, [r1]
- str r0, [sp]
- ldr r0, _080AA2E8 @ =gMenuWindow
- ldr r1, _080AA2EC @ =0x02000000
- bl sub_8003460
- b _080AA322
- .align 2, 0
-_080AA2E8: .4byte gMenuWindow
-_080AA2EC: .4byte 0x02000000
-_080AA2F0: .4byte gUnknown_083C932C
-_080AA2F4: .4byte gUnknown_0203857D
-_080AA2F8: .4byte gUnknown_083C926E
-_080AA2FC:
- lsls r1, r5, 6
- ldr r0, _080AA338 @ =gUnknown_0203857D
- adds r1, r0
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 17
- movs r0, 0x80
- lsls r0, 10
- adds r2, r0
- lsrs r2, 16
- lsls r4, r5, 1
- adds r0, r4, r6
- ldrb r3, [r0]
- add r4, r8
- ldrb r0, [r4]
- str r0, [sp]
- ldr r0, _080AA33C @ =gMenuWindow
- bl sub_8003460
-_080AA322:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080AA2BE
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA338: .4byte gUnknown_0203857D
-_080AA33C: .4byte gMenuWindow
- thumb_func_end sub_80AA280
-
- thumb_func_start sub_80AA340
-sub_80AA340: @ 80AA340
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA378 @ =0x02000000
- ldr r1, _080AA37C @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x26
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA380 @ =gMenuWindow
- ldr r1, _080AA384 @ =gUnknown_083C9282
- ldrb r3, [r1]
- ldrb r1, [r1, 0x1]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x66
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA378: .4byte 0x02000000
-_080AA37C: .4byte gUnknown_02038570
-_080AA380: .4byte gMenuWindow
-_080AA384: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA340
-
- thumb_func_start sub_80AA388
-sub_80AA388: @ 80AA388
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA3C0 @ =0x02000000
- ldr r1, _080AA3C4 @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA3C8 @ =gMenuWindow
- ldr r1, _080AA3CC @ =gUnknown_083C9282
- ldrb r3, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x6C
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA3C0: .4byte 0x02000000
-_080AA3C4: .4byte gUnknown_02038570
-_080AA3C8: .4byte gMenuWindow
-_080AA3CC: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA388
-
- thumb_func_start sub_80AA3D0
-sub_80AA3D0: @ 80AA3D0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA408 @ =0x02000000
- ldr r1, _080AA40C @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x27
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA410 @ =gMenuWindow
- ldr r1, _080AA414 @ =gUnknown_083C9282
- ldrb r3, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x72
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA408: .4byte 0x02000000
-_080AA40C: .4byte gUnknown_02038570
-_080AA410: .4byte gMenuWindow
-_080AA414: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA3D0
-
- thumb_func_start sub_80AA418
-sub_80AA418: @ 80AA418
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA450 @ =0x02000000
- ldr r1, _080AA454 @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x29
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA458 @ =gMenuWindow
- ldr r1, _080AA45C @ =gUnknown_083C9282
- ldrb r3, [r1, 0x6]
- ldrb r1, [r1, 0x7]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x78
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA450: .4byte 0x02000000
-_080AA454: .4byte gUnknown_02038570
-_080AA458: .4byte gMenuWindow
-_080AA45C: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA418
-
- thumb_func_start sub_80AA460
-sub_80AA460: @ 80AA460
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA498 @ =0x02000000
- ldr r1, _080AA49C @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA4A0 @ =gMenuWindow
- ldr r1, _080AA4A4 @ =gUnknown_083C9282
- ldrb r3, [r1, 0x8]
- ldrb r1, [r1, 0x9]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x7E
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA498: .4byte 0x02000000
-_080AA49C: .4byte gUnknown_02038570
-_080AA4A0: .4byte gMenuWindow
-_080AA4A4: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA460
-
- thumb_func_start sub_80AA4A8
-sub_80AA4A8: @ 80AA4A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA4E0 @ =0x02000000
- ldr r1, _080AA4E4 @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA4E8 @ =gMenuWindow
- ldr r1, _080AA4EC @ =gUnknown_083C9282
- ldrb r3, [r1, 0xA]
- ldrb r1, [r1, 0xB]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x84
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA4E0: .4byte 0x02000000
-_080AA4E4: .4byte gUnknown_02038570
-_080AA4E8: .4byte gMenuWindow
-_080AA4EC: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA4A8
-
- thumb_func_start sub_80AA4F0
-sub_80AA4F0: @ 80AA4F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r7, _080AA5A8 @ =gMenuWindow
- ldr r0, _080AA5AC @ =gUnknown_083C928E
- lsls r5, r6, 1
- adds r1, r5, r0
- ldrb r1, [r1]
- mov r9, r1
- adds r0, 0x1
- adds r0, r5, r0
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x7
- add r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- str r0, [sp]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- mov r2, r9
- mov r3, r10
- bl FillWindowRect_DefaultPalette
- ldr r0, _080AA5B0 @ =gUnknown_02038570
- lsls r4, 6
- adds r4, r5, r4
- adds r0, 0x1E
- adds r4, r0
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080AA5B4 @ =gMoveNames
- adds r1, r0
- lsls r2, r6, 3
- subs r2, r6
- lsls r2, 17
- movs r0, 0x8A
- lsls r0, 16
- adds r2, r0
- lsrs r2, 16
- mov r0, r10
- str r0, [sp]
- adds r0, r7, 0
- mov r3, r9
- bl sub_8003460
- ldr r0, _080AA5B8 @ =gStringVar1
- mov r9, r0
- ldrh r1, [r4]
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r6
- lsls r5, 17
- movs r0, 0xFA
- lsls r0, 16
- adds r5, r0
- lsrs r5, 16
- mov r0, r10
- str r0, [sp]
- adds r0, r7, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl sub_8003460
- 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
-_080AA5A8: .4byte gMenuWindow
-_080AA5AC: .4byte gUnknown_083C928E
-_080AA5B0: .4byte gUnknown_02038570
-_080AA5B4: .4byte gMoveNames
-_080AA5B8: .4byte gStringVar1
- thumb_func_end sub_80AA4F0
-
- thumb_func_start sub_80AA5BC
-sub_80AA5BC: @ 80AA5BC
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r2, _080AA5E0 @ =gMenuWindow
- ldr r1, _080AA5E4 @ =gUnknown_083C93B4
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x12
- str r0, [sp]
- adds r0, r2, 0
- movs r2, 0xC2
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AA5E0: .4byte gMenuWindow
-_080AA5E4: .4byte gUnknown_083C93B4
- thumb_func_end sub_80AA5BC
-
- thumb_func_start sub_80AA5E8
-sub_80AA5E8: @ 80AA5E8
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r2, _080AA60C @ =gMenuWindow
- ldr r1, _080AA610 @ =gUnknown_083C93F0
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x4
- str r0, [sp]
- adds r0, r2, 0
- movs r2, 0xE8
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AA60C: .4byte gMenuWindow
-_080AA610: .4byte gUnknown_083C93F0
- thumb_func_end sub_80AA5E8
-
- thumb_func_start sub_80AA614
-sub_80AA614: @ 80AA614
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_80AE770
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _080AA650 @ =0x02000000
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA654 @ =gMenuWindow
- movs r1, 0xC
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0xE2
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA650: .4byte 0x02000000
-_080AA654: .4byte gMenuWindow
- thumb_func_end sub_80AA614
-
- thumb_func_start sub_80AA658
-sub_80AA658: @ 80AA658
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80AA340
- adds r0, r5, 0
- bl sub_80AA388
- adds r0, r5, 0
- bl sub_80AA3D0
- adds r0, r5, 0
- bl sub_80AA418
- adds r0, r5, 0
- bl sub_80AA460
- adds r0, r5, 0
- bl sub_80AA4A8
- movs r4, 0
-_080AA684:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AA4F0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AA684
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA658
-
- thumb_func_start sub_80AA69C
-sub_80AA69C: @ 80AA69C
- push {r4-r6,lr}
- ldr r6, _080AA748 @ =gPlayerParty
- ldr r5, _080AA74C @ =gUnknown_02038695
- ldrb r2, [r5]
- lsls r2, 6
- ldr r4, _080AA750 @ =gUnknown_02038596
- adds r2, r4
- adds r0, r6, 0
- movs r1, 0x16
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x2
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x18
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x1
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x17
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x3
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x21
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x4
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x2F
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x5
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x30
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- subs r4, 0x8
- adds r2, r4
- adds r0, r6, 0
- movs r1, 0xD
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x2
- adds r0, r6, 0
- movs r1, 0xE
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x4
- adds r0, r6, 0
- movs r1, 0xF
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x6
- adds r0, r6, 0
- movs r1, 0x10
- bl SetMonData
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA748: .4byte gPlayerParty
-_080AA74C: .4byte gUnknown_02038695
-_080AA750: .4byte gUnknown_02038596
- thumb_func_end sub_80AA69C
-
- thumb_func_start sub_80AA754
-sub_80AA754: @ 80AA754
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AA774 @ =gMain
- ldrh r1, [r0, 0x30]
- cmp r1, 0x20
- beq _080AA7A2
- cmp r1, 0x20
- bgt _080AA782
- cmp r1, 0x2
- beq _080AA7F8
- cmp r1, 0x2
- bgt _080AA778
- cmp r1, 0x1
- beq _080AA7D8
- b _080AA870
- .align 2, 0
-_080AA774: .4byte gMain
-_080AA778:
- cmp r1, 0x8
- beq _080AA868
- cmp r1, 0x10
- beq _080AA7A2
- b _080AA870
-_080AA782:
- cmp r1, 0x80
- beq _080AA7C2
- cmp r1, 0x80
- bgt _080AA790
- cmp r1, 0x40
- beq _080AA7AC
- b _080AA870
-_080AA790:
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _080AA814
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- beq _080AA834
- b _080AA870
-_080AA7A2:
- ldrh r0, [r4, 0x2E]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x2E]
- b _080AA870
-_080AA7AC:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AA7BC
- movs r0, 0x8
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7BC:
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7C2:
- ldrh r1, [r4, 0x30]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x8
- bne _080AA7D2
- movs r0, 0
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7D2:
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7D8:
- ldr r2, _080AA7F4 @ =gUnknown_083C92E4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- b _080AA84E
- .align 2, 0
-_080AA7F4: .4byte gUnknown_083C92E4
-_080AA7F8:
- ldr r1, _080AA810 @ =gUnknown_083C92E4
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- movs r1, 0x1
- negs r1, r1
- b _080AA84A
- .align 2, 0
-_080AA810: .4byte gUnknown_083C92E4
-_080AA814:
- ldr r2, _080AA830 @ =gUnknown_083C92E4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- movs r1, 0xA
- b _080AA84E
- .align 2, 0
-_080AA830: .4byte gUnknown_083C92E4
-_080AA834:
- ldr r1, _080AA864 @ =gUnknown_083C92E4
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- movs r1, 0xA
- negs r1, r1
-_080AA84A:
- ldr r2, [r2]
- adds r0, r4, 0
-_080AA84E:
- bl _call_via_r2
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x34]
- lsls r1, 24
- lsrs r1, 24
- bl sub_80AA614
- b _080AA870
- .align 2, 0
-_080AA864: .4byte gUnknown_083C92E4
-_080AA868:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80AAD08
-_080AA870:
- ldr r2, _080AA898 @ =gUnknown_083C9296
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- strh r0, [r4, 0x20]
- ldr r1, _080AA89C @ =gUnknown_083C92A8
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA898: .4byte gUnknown_083C9296
-_080AA89C: .4byte gUnknown_083C92A8
- thumb_func_end sub_80AA754
-
- thumb_func_start sub_80AA8A0
-sub_80AA8A0: @ 80AA8A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r2, 24
- lsrs r0, r2, 24
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AA8C0
- strh r0, [r4, 0x32]
- bl sub_80AA280
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
-_080AA8C0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8A0
-
- thumb_func_start sub_80AA8C8
-sub_80AA8C8: @ 80AA8C8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8C8
-
- thumb_func_start sub_80AA8D8
-sub_80AA8D8: @ 80AA8D8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8D8
-
- thumb_func_start sub_80AA8E8
-sub_80AA8E8: @ 80AA8E8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x2
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8E8
-
- thumb_func_start sub_80AA8F8
-sub_80AA8F8: @ 80AA8F8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x3
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8F8
-
- thumb_func_start sub_80AA908
-sub_80AA908: @ 80AA908
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- asrs r2, 24
- adds r2, r1
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0xFF
- ble _080AA922
- movs r0, 0xFF
- b _080AA928
-_080AA922:
- cmp r2, 0
- bge _080AA928
- movs r0, 0
-_080AA928:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80AA908
-
- thumb_func_start sub_80AA930
-sub_80AA930: @ 80AA930
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA970 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x26
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x26
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA340
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA970: .4byte gUnknown_02038570
- thumb_func_end sub_80AA930
-
- thumb_func_start sub_80AA974
-sub_80AA974: @ 80AA974
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA9B4 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x28
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA388
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA9B4: .4byte gUnknown_02038570
- thumb_func_end sub_80AA974
-
- thumb_func_start sub_80AA9B8
-sub_80AA9B8: @ 80AA9B8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA9F8 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x27
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x27
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA3D0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA9F8: .4byte gUnknown_02038570
- thumb_func_end sub_80AA9B8
-
- thumb_func_start sub_80AA9FC
-sub_80AA9FC: @ 80AA9FC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAA3C @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x29
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA418
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA3C: .4byte gUnknown_02038570
- thumb_func_end sub_80AA9FC
-
- thumb_func_start sub_80AAA40
-sub_80AAA40: @ 80AAA40
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAA80 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x2A
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x2A
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA460
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA80: .4byte gUnknown_02038570
- thumb_func_end sub_80AAA40
-
- thumb_func_start sub_80AAA84
-sub_80AAA84: @ 80AAA84
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAAC4 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x2B
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x2B
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA4A8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAAC4: .4byte gUnknown_02038570
- thumb_func_end sub_80AAA84
-
- thumb_func_start sub_80AAAC8
-sub_80AAAC8: @ 80AAAC8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- asrs r2, 24
- adds r1, r2
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- movs r2, 0xB1
- lsls r2, 1
- cmp r1, r2
- ble _080AAAE6
- movs r0, 0x1
- b _080AAAEC
-_080AAAE6:
- cmp r1, 0
- bge _080AAAEC
- adds r0, r2, 0
-_080AAAEC:
- pop {r1}
- bx r1
- thumb_func_end sub_80AAAC8
-
- thumb_func_start sub_80AAAF0
-sub_80AAAF0: @ 80AAAF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAB2C @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x1E]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x1E]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB2C: .4byte gUnknown_02038570
- thumb_func_end sub_80AAAF0
-
- thumb_func_start sub_80AAB30
-sub_80AAB30: @ 80AAB30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAB6C @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x20]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB6C: .4byte gUnknown_02038570
- thumb_func_end sub_80AAB30
-
- thumb_func_start sub_80AAB70
-sub_80AAB70: @ 80AAB70
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AABAC @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x22]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AABAC: .4byte gUnknown_02038570
- thumb_func_end sub_80AAB70
-
- thumb_func_start sub_80AABB0
-sub_80AABB0: @ 80AABB0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AABEC @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x24]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AABEC: .4byte gUnknown_02038570
- thumb_func_end sub_80AABB0
-
- thumb_func_start sub_80AABF0
-sub_80AABF0: @ 80AABF0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- movs r0, 0xFF
- cmp r1, 0
- ble _080AABFE
- movs r0, 0x1
-_080AABFE:
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r5, 0x34]
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080AAC14
- movs r4, 0
- b _080AAC1A
-_080AAC14:
- cmp r0, 0x4
- ble _080AAC1A
- movs r4, 0x4
-_080AAC1A:
- lsls r4, 24
- lsrs r0, r4, 24
- bl sub_80AA5BC
- asrs r4, 24
- strh r4, [r5, 0x34]
- ldr r0, _080AAC54 @ =gScriptContestCategory
- strh r4, [r0]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080AAC58 @ =gScriptContestRank
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80AE398
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA280
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAC54: .4byte gScriptContestCategory
-_080AAC58: .4byte gScriptContestRank
- thumb_func_end sub_80AABF0
-
- thumb_func_start sub_80AAC5C
-sub_80AAC5C: @ 80AAC5C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- ble _080AAC78
- ldr r1, _080AAC74 @ =gScriptContestRank
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r4, r1, 0
- b _080AAC86
- .align 2, 0
-_080AAC74: .4byte gScriptContestRank
-_080AAC78:
- ldr r0, _080AACBC @ =gScriptContestRank
- ldrh r2, [r0]
- adds r4, r0, 0
- cmp r2, 0
- beq _080AAC86
- subs r0, r2, 0x1
- strh r0, [r4]
-_080AAC86:
- adds r1, r4, 0
- ldrh r0, [r1]
- cmp r0, 0x3
- bls _080AAC92
- movs r0, 0x3
- strh r0, [r1]
-_080AAC92:
- ldrb r0, [r4]
- bl sub_80AA5E8
- ldr r0, _080AACC0 @ =gScriptContestCategory
- ldrb r0, [r0]
- ldrb r1, [r4]
- bl sub_80AE398
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA280
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AACBC: .4byte gScriptContestRank
-_080AACC0: .4byte gScriptContestCategory
- thumb_func_end sub_80AAC5C
-
- thumb_func_start sub_80AACC4
-sub_80AACC4: @ 80AACC4
- push {lr}
- bl UpdatePaletteFade
- ldr r0, _080AACF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080AACF4
- bl sub_80AA69C
- ldr r0, _080AACFC @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AACEE
- ldr r0, _080AAD00 @ =0x02000000
- ldrb r0, [r0]
- bl sub_80AE82C
-_080AACEE:
- ldr r0, _080AAD04 @ =sub_80AB47C
- bl SetMainCallback2
-_080AACF4:
- pop {r0}
- bx r0
- .align 2, 0
-_080AACF8: .4byte gPaletteFade
-_080AACFC: .4byte gUnknown_0203869A
-_080AAD00: .4byte 0x02000000
-_080AAD04: .4byte sub_80AB47C
- thumb_func_end sub_80AACC4
-
- thumb_func_start sub_80AAD08
-sub_80AAD08: @ 80AAD08
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD32
- ldr r1, _080AAD3C @ =0x02000000
- ldrh r0, [r0, 0x34]
- movs r4, 0
- strb r0, [r1]
- ldr r0, _080AAD40 @ =sub_80AACC4
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080AAD32:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD3C: .4byte 0x02000000
-_080AAD40: .4byte sub_80AACC4
- thumb_func_end sub_80AAD08
-
- thumb_func_start sub_80AAD44
-sub_80AAD44: @ 80AAD44
- push {r4,r5,lr}
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD72
- bl sub_80AA69C
- movs r4, 0
- ldr r5, _080AAD78 @ =gUnknown_02038670
-_080AAD56:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, _080AAD7C @ =gScriptContestCategory
- ldrb r1, [r1]
- bl sub_80AE770
- strh r0, [r5]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AAD56
- ldr r0, _080AAD80 @ =sub_805469C
- bl SetMainCallback2
-_080AAD72:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD78: .4byte gUnknown_02038670
-_080AAD7C: .4byte gScriptContestCategory
-_080AAD80: .4byte sub_805469C
- thumb_func_end sub_80AAD44
-
- thumb_func_start sub_80AAD84
-sub_80AAD84: @ 80AAD84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x64
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x48]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4C]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- mov r5, r10
- adds r5, 0x1
- lsls r1, r5, 8
- ldr r0, _080AAEC4 @ =0x06018000
- subs r1, r0, r1
- movs r0, 0
- str r0, [sp, 0x44]
- ldr r4, _080AAEC8 @ =0x040000d4
- add r0, sp, 0x44
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r0, _080AAECC @ =0x85000040
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x8
- bls _080AADD0
- movs r7, 0x8
-_080AADD0:
- movs r6, 0
- mov r8, r5
- mov r1, r10
- lsls r1, 1
- str r1, [sp, 0x58]
- ldr r2, [sp, 0x48]
- adds r2, 0x20
- str r2, [sp, 0x5C]
- cmp r6, r7
- bge _080AAE1E
- add r5, sp, 0x40
- add r0, sp, 0x20
- mov r10, r0
- ldr r2, _080AAEC4 @ =0x06018000
-_080AADEC:
- mov r1, r9
- adds r0, r1, r6
- ldrb r0, [r0]
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- mov r0, sp
- adds r1, r5, 0
- str r2, [sp, 0x60]
- bl sub_80034D4
- mov r1, r8
- lsls r0, r1, 8
- ldr r2, [sp, 0x60]
- subs r0, r2, r0
- mov r1, r10
- str r1, [r4]
- str r0, [r4, 0x4]
- ldr r0, _080AAED0 @ =0x84000008
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, 0x20
- adds r6, 0x1
- cmp r6, r7
- blt _080AADEC
-_080AAE1E:
- movs r1, 0x7C
- ldr r2, [sp, 0x58]
- subs r1, r2
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080AAED4 @ =gMain
- mov r9, r0
- lsls r3, r7, 3
- add r3, r9
- ldr r0, _080AAED8 @ =gUnknown_083C9400
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- str r1, [sp, 0x50]
- str r2, [sp, 0x54]
- str r1, [r3, 0x3C]
- str r2, [r3, 0x40]
- mov r2, r8
- lsls r0, r2, 3
- movs r1, 0x80
- lsls r1, 3
- adds r2, r1, 0
- subs r2, r0
- adds r6, r3, 0
- adds r6, 0x40
- ldr r0, _080AAEDC @ =0x000003ff
- mov r8, r0
- mov r1, r8
- ands r2, r1
- ldrh r5, [r6]
- ldr r4, _080AAEE0 @ =0xfffffc00
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r2
- strh r0, [r6]
- ldrh r5, [r3, 0x3E]
- ldr r2, _080AAEE4 @ =0xfffffe00
- adds r0, r2, 0
- ands r0, r5
- ldr r1, [sp, 0x48]
- orrs r0, r1
- strh r0, [r3, 0x3E]
- adds r3, 0x3C
- add r0, sp, 0x4C
- ldrb r0, [r0]
- strb r0, [r3]
- adds r1, r7, 0x1
- lsls r1, 3
- mov r0, r9
- adds r7, r1, r0
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x54]
- str r0, [r7, 0x3C]
- str r1, [r7, 0x40]
- ldrh r0, [r6]
- lsls r0, 22
- lsrs r0, 22
- adds r0, 0x4
- adds r5, r7, 0
- adds r5, 0x40
- mov r1, r8
- ands r0, r1
- ldrh r3, [r5]
- ands r4, r3
- orrs r4, r0
- strh r4, [r5]
- ldrh r0, [r7, 0x3E]
- ands r2, r0
- ldr r0, [sp, 0x5C]
- orrs r2, r0
- strh r2, [r7, 0x3E]
- adds r1, r7, 0
- adds r1, 0x3C
- add r2, sp, 0x4C
- ldrb r2, [r2]
- strb r2, [r1]
- add sp, 0x64
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAEC4: .4byte 0x06018000
-_080AAEC8: .4byte 0x040000d4
-_080AAECC: .4byte 0x85000040
-_080AAED0: .4byte 0x84000008
-_080AAED4: .4byte gMain
-_080AAED8: .4byte gUnknown_083C9400
-_080AAEDC: .4byte 0x000003ff
-_080AAEE0: .4byte 0xfffffc00
-_080AAEE4: .4byte 0xfffffe00
- thumb_func_end sub_80AAD84
-
- thumb_func_start unref_sub_80AAEE8
-unref_sub_80AAEE8: @ 80AAEE8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- movs r0, 0
- cmp r4, 0
- bge _080AAF08
- mov r1, sp
- movs r0, 0xAE
- strb r0, [r1]
- movs r0, 0x1
-_080AAF08:
- add r0, sp
- adds r1, r4, 0
- cmp r1, 0
- bge _080AAF12
- negs r1, r1
-_080AAF12:
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- mov r0, sp
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_80AAD84
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80AAEE8
-
- thumb_func_start sub_80AAF30
-sub_80AAF30: @ 80AAF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _080AAFC0 @ =gUnknown_0203856C
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080AAFC4 @ =gUnknown_02038695
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r4, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r3, _080AAFC8 @ =gUnknown_02038690
- movs r2, 0x3
-_080AAF56:
- adds r1, r4, r3
- subs r0, r2, r4
- strb r0, [r1]
- subs r4, 0x1
- cmp r4, r5
- bgt _080AAF56
- movs r4, 0
- movs r6, 0
- ldr r7, _080AAFCC @ =gUnknown_02038670
- ldr r5, _080AAFD0 @ =gUnknown_02038570
- mov r9, r5
-_080AAF6C:
- lsls r1, r4, 1
- strh r6, [r7]
- ldr r0, _080AAFD4 @ =gUnknown_02038680
- mov r8, r0
- adds r0, r1, r0
- strh r6, [r0]
- ldr r3, _080AAFD8 @ =gUnknown_02038678
- adds r1, r3
- strh r6, [r1]
- adds r0, r5, 0
- mov r1, r9
- adds r1, 0xC0
- movs r2, 0x40
- str r3, [sp]
- bl memcpy
- adds r7, 0x2
- adds r5, 0x40
- adds r4, 0x1
- ldr r3, [sp]
- cmp r4, 0x2
- ble _080AAF6C
- ldr r0, _080AAFCC @ =gUnknown_02038670
- movs r1, 0x96
- lsls r1, 1
- strh r1, [r0, 0x6]
- movs r0, 0xC8
- lsls r0, 1
- mov r1, r8
- strh r0, [r1, 0x6]
- strh r0, [r3, 0x6]
- movs r0, 0xFE
- bl sub_80B2A7C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAFC0: .4byte gUnknown_0203856C
-_080AAFC4: .4byte gUnknown_02038695
-_080AAFC8: .4byte gUnknown_02038690
-_080AAFCC: .4byte gUnknown_02038670
-_080AAFD0: .4byte gUnknown_02038570
-_080AAFD4: .4byte gUnknown_02038680
-_080AAFD8: .4byte gUnknown_02038678
- thumb_func_end sub_80AAF30
-
- thumb_func_start sub_80AAFDC
-sub_80AAFDC: @ 80AAFDC
- push {lr}
- bl sub_80AAF30
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80AAFDC
-
- thumb_func_start sub_80AAFEC
-sub_80AAFEC: @ 80AAFEC
- push {r4,lr}
- ldr r1, _080AB01C @ =gUnknown_0203856C
- movs r0, 0
- strb r0, [r1]
- movs r4, 0
- ldr r3, _080AB020 @ =gUnknown_02038678
- ldr r2, _080AB024 @ =gUnknown_02038680
- ldr r1, _080AB028 @ =gUnknown_02038670
- movs r0, 0x3
-_080AAFFE:
- strh r4, [r1]
- strh r4, [r2]
- strh r4, [r3]
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- subs r0, 0x1
- cmp r0, 0
- bge _080AAFFE
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB01C: .4byte gUnknown_0203856C
-_080AB020: .4byte gUnknown_02038678
-_080AB024: .4byte gUnknown_02038680
-_080AB028: .4byte gUnknown_02038670
- thumb_func_end sub_80AAFEC
-
- thumb_func_start sub_80AB02C
-sub_80AB02C: @ 80AB02C
- push {r4,r5,lr}
- ldr r1, _080AB078 @ =gUnknown_02038695
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r2, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r4, _080AB07C @ =gUnknown_02038690
- movs r3, 0x3
-_080AB044:
- adds r1, r2, r4
- subs r0, r3, r2
- strb r0, [r1]
- subs r2, 0x1
- cmp r2, r5
- bgt _080AB044
- ldr r1, _080AB080 @ =gScriptContestCategory
- movs r0, 0
- strh r0, [r1]
- adds r4, r1, 0
-_080AB058:
- movs r0, 0xFF
- bl sub_80B2A7C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080AB058
- bl sub_8071C20
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB078: .4byte gUnknown_02038695
-_080AB07C: .4byte gUnknown_02038690
-_080AB080: .4byte gScriptContestCategory
- thumb_func_end sub_80AB02C
-
- thumb_func_start unref_sub_80AB084
-unref_sub_80AB084: @ 80AB084
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- ldr r0, _080AB160 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x22
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- movs r2, 0x80
- lsls r2, 19
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r2]
- ldr r3, _080AB164 @ =0x04000208
- ldrh r2, [r3]
- strh r1, [r3]
- ldr r4, _080AB168 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _080AB16C @ =REG_DISPSTAT
- movs r0, 0x8
- strh r0, [r1]
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080AB170 @ =sub_80AB184
- bl SetMainCallback2
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _080AB174 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080AB178 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_080AB108:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AB108
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r4, _080AB17C @ =gWindowConfig_81E6FD8
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r5, _080AB180 @ =gUnknown_03004210
- adds r0, r5, 0
- adds r1, r4, 0
- bl InitWindowFromConfig
- adds r0, r4, 0
- bl LoadFontDefaultPalette
- movs r0, 0x7
- str r0, [sp]
- adds r0, r5, 0
- mov r1, r8
- movs r2, 0x1
- movs r3, 0x9
- bl sub_8003460
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB160: .4byte REG_BG0HOFS
-_080AB164: .4byte 0x04000208
-_080AB168: .4byte 0x04000200
-_080AB16C: .4byte REG_DISPSTAT
-_080AB170: .4byte sub_80AB184
-_080AB174: .4byte 0x040000d4
-_080AB178: .4byte 0x85000400
-_080AB17C: .4byte gWindowConfig_81E6FD8
-_080AB180: .4byte gUnknown_03004210
- thumb_func_end unref_sub_80AB084
-
- thumb_func_start sub_80AB184
-sub_80AB184: @ 80AB184
- ldr r0, _080AB1A8 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080AB1A8: .4byte REG_BG0HOFS
- thumb_func_end sub_80AB184
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
index 7dfaa890e..3af0f2b11 100644
--- a/asm/mauville_old_man.s
+++ b/asm/mauville_old_man.s
@@ -1369,7 +1369,7 @@ sub_80F8438: @ 80F8438
bne _080F8444
movs r0, 0
_080F8444:
- bl sub_8053108
+ bl GetGameStat
pop {r1}
bx r1
thumb_func_end sub_80F8438
diff --git a/asm/metatile_behavior.s b/asm/metatile_behavior.s
deleted file mode 100644
index f81e3c0d4..000000000
--- a/asm/metatile_behavior.s
+++ /dev/null
@@ -1,2345 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8056D9C
-sub_8056D9C: @ 8056D9C
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8056D9C
-
- thumb_func_start sub_8056DA0
-sub_8056DA0: @ 8056DA0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08056DB8 @ =gUnknown_08308E2C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08056DBC
- movs r0, 0
- b _08056DBE
- .align 2, 0
-_08056DB8: .4byte gUnknown_08308E2C
-_08056DBC:
- movs r0, 0x1
-_08056DBE:
- pop {r1}
- bx r1
- thumb_func_end sub_8056DA0
-
- thumb_func_start MetatileBehavior_IsJumpEast
-MetatileBehavior_IsJumpEast: @ 8056DC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x38
- beq _08056DD2
- movs r0, 0
- b _08056DD4
-_08056DD2:
- movs r0, 0x1
-_08056DD4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpEast
-
- thumb_func_start MetatileBehavior_IsJumpWest
-MetatileBehavior_IsJumpWest: @ 8056DD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x39
- beq _08056DE6
- movs r0, 0
- b _08056DE8
-_08056DE6:
- movs r0, 0x1
-_08056DE8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpWest
-
- thumb_func_start MetatileBehavior_IsJumpNorth
-MetatileBehavior_IsJumpNorth: @ 8056DEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3A
- beq _08056DFA
- movs r0, 0
- b _08056DFC
-_08056DFA:
- movs r0, 0x1
-_08056DFC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpNorth
-
- thumb_func_start MetatileBehavior_IsJumpSouth
-MetatileBehavior_IsJumpSouth: @ 8056E00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- beq _08056E0E
- movs r0, 0
- b _08056E10
-_08056E0E:
- movs r0, 0x1
-_08056E10:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpSouth
-
- thumb_func_start sub_8056E14
-sub_8056E14: @ 8056E14
- push {lr}
- lsls r0, 24
- movs r1, 0xFE
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08056E28
- movs r0, 0
- b _08056E2A
-_08056E28:
- movs r0, 0x1
-_08056E2A:
- pop {r1}
- bx r1
- thumb_func_end sub_8056E14
-
- thumb_func_start MetatileBehavior_IsSandOrDeepSand
-MetatileBehavior_IsSandOrDeepSand: @ 8056E30
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x21
- beq _08056E3E
- cmp r0, 0x6
- bne _08056E42
-_08056E3E:
- movs r0, 0x1
- b _08056E44
-_08056E42:
- movs r0, 0
-_08056E44:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSandOrDeepSand
-
- thumb_func_start MetatileBehavior_IsDeepSand
-MetatileBehavior_IsDeepSand: @ 8056E48
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08056E56
- movs r0, 0
- b _08056E58
-_08056E56:
- movs r0, 0x1
-_08056E58:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsDeepSand
-
- thumb_func_start MetatileBehavior_IsReflective
-MetatileBehavior_IsReflective: @ 8056E5C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _08056E7A
- cmp r0, 0x16
- beq _08056E7A
- cmp r0, 0x1A
- beq _08056E7A
- cmp r0, 0x20
- beq _08056E7A
- cmp r0, 0x14
- beq _08056E7A
- cmp r0, 0x2B
- bne _08056E7E
-_08056E7A:
- movs r0, 0x1
- b _08056E80
-_08056E7E:
- movs r0, 0
-_08056E80:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsReflective
-
- thumb_func_start MetatileBehavior_IsIce
-MetatileBehavior_IsIce: @ 8056E84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- beq _08056E92
- movs r0, 0
- b _08056E94
-_08056E92:
- movs r0, 0x1
-_08056E94:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIce
-
- thumb_func_start is_tile_x69_2_warp_door
-is_tile_x69_2_warp_door: @ 8056E98
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x69
- beq _08056EA6
- movs r0, 0
- b _08056EA8
-_08056EA6:
- movs r0, 0x1
-_08056EA8:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x69_2_warp_door
-
- thumb_func_start MetatileBehavior_IsDoor
-MetatileBehavior_IsDoor: @ 8056EAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8D
- beq _08056EBA
- cmp r0, 0x69
- bne _08056EBE
-_08056EBA:
- movs r0, 0x1
- b _08056EC0
-_08056EBE:
- movs r0, 0
-_08056EC0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsDoor
-
- thumb_func_start MetatileBehavior_IsEscalator
-MetatileBehavior_IsEscalator: @ 8056EC4
- push {lr}
- lsls r0, 24
- movs r1, 0x96
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08056ED8
- movs r0, 0
- b _08056EDA
-_08056ED8:
- movs r0, 0x1
-_08056EDA:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEscalator
-
- thumb_func_start unref_sub_8056EE0
-unref_sub_8056EE0: @ 8056EE0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08056EEE
- movs r0, 0
- b _08056EF0
-_08056EEE:
- movs r0, 0x1
-_08056EF0:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8056EE0
-
- thumb_func_start MetatileBehavior_IsLadder
-MetatileBehavior_IsLadder: @ 8056EF4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x61
- beq _08056F02
- movs r0, 0
- b _08056F04
-_08056F02:
- movs r0, 0x1
-_08056F04:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsLadder
-
- thumb_func_start sub_8056F08
-sub_8056F08: @ 8056F08
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x60
- beq _08056F1A
- cmp r0, 0x6C
- beq _08056F1A
- cmp r0, 0x6E
- bne _08056F1E
-_08056F1A:
- movs r0, 0x1
- b _08056F20
-_08056F1E:
- movs r0, 0
-_08056F20:
- pop {r1}
- bx r1
- thumb_func_end sub_8056F08
-
- thumb_func_start sub_8056F24
-sub_8056F24: @ 8056F24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6E
- beq _08056F32
- movs r0, 0
- b _08056F34
-_08056F32:
- movs r0, 0x1
-_08056F34:
- pop {r1}
- bx r1
- thumb_func_end sub_8056F24
-
- thumb_func_start MetatileBehavior_IsSurfableWaterOrUnderwater
-MetatileBehavior_IsSurfableWaterOrUnderwater: @ 8056F38
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08056F50 @ =gUnknown_08308E2C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08056F54
- movs r0, 0
- b _08056F56
- .align 2, 0
-_08056F50: .4byte gUnknown_08308E2C
-_08056F54:
- movs r0, 0x1
-_08056F56:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSurfableWaterOrUnderwater
-
- thumb_func_start MetatileBehavior_IsEastArrowWarp
-MetatileBehavior_IsEastArrowWarp: @ 8056F5C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x62
- beq _08056F6A
- movs r0, 0
- b _08056F6C
-_08056F6A:
- movs r0, 0x1
-_08056F6C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEastArrowWarp
-
- thumb_func_start MetatileBehavior_IsWestArrowWarp
-MetatileBehavior_IsWestArrowWarp: @ 8056F70
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- beq _08056F7E
- movs r0, 0
- b _08056F80
-_08056F7E:
- movs r0, 0x1
-_08056F80:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWestArrowWarp
-
- thumb_func_start MetatileBehavior_IsNorthArrowWarp
-MetatileBehavior_IsNorthArrowWarp: @ 8056F84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x64
- beq _08056F92
- cmp r0, 0x1B
- bne _08056F96
-_08056F92:
- movs r0, 0x1
- b _08056F98
-_08056F96:
- movs r0, 0
-_08056F98:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsNorthArrowWarp
-
- thumb_func_start MetatileBehavior_IsSouthArrowWarp
-MetatileBehavior_IsSouthArrowWarp: @ 8056F9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x65
- beq _08056FAE
- cmp r0, 0x6D
- beq _08056FAE
- cmp r0, 0x1C
- bne _08056FB2
-_08056FAE:
- movs r0, 0x1
- b _08056FB4
-_08056FB2:
- movs r0, 0
-_08056FB4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSouthArrowWarp
-
- thumb_func_start unref_sub_8056FB8
-unref_sub_8056FB8: @ 8056FB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- adds r0, r4, 0
- bl MetatileBehavior_IsEastArrowWarp
- lsls r0, 24
- cmp r0, 0
- bne _08056FF0
- adds r0, r4, 0
- bl MetatileBehavior_IsWestArrowWarp
- lsls r0, 24
- cmp r0, 0
- bne _08056FF0
- adds r0, r4, 0
- bl MetatileBehavior_IsNorthArrowWarp
- lsls r0, 24
- cmp r0, 0
- bne _08056FF0
- adds r0, r4, 0
- bl MetatileBehavior_IsSouthArrowWarp
- lsls r0, 24
- cmp r0, 0
- beq _08056FF2
-_08056FF0:
- movs r5, 0x1
-_08056FF2:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8056FB8
-
- thumb_func_start sub_8056FFC
-sub_8056FFC: @ 8056FFC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC0
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x8
- bls _08057032
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057032
- cmp r1, 0xD0
- beq _08057032
- cmp r1, 0xD2
- beq _08057032
- cmp r1, 0x13
- beq _08057032
- cmp r1, 0x20
- beq _08057032
- cmp r1, 0xBB
- beq _08057032
- cmp r1, 0xBC
- bne _08057036
-_08057032:
- movs r0, 0x1
- b _08057038
-_08057036:
- movs r0, 0
-_08057038:
- pop {r1}
- bx r1
- thumb_func_end sub_8056FFC
-
- thumb_func_start MetatileBehavior_IsIce_2
-MetatileBehavior_IsIce_2: @ 805703C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- beq _0805704A
- movs r0, 0
- b _0805704C
-_0805704A:
- movs r0, 0x1
-_0805704C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIce_2
-
- thumb_func_start MetatileBehavior_IsTrickHouseSlipperyFloor
-MetatileBehavior_IsTrickHouseSlipperyFloor: @ 8057050
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x48
- beq _0805705E
- movs r0, 0
- b _08057060
-_0805705E:
- movs r0, 0x1
-_08057060:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsTrickHouseSlipperyFloor
-
- thumb_func_start MetatileBehavior_0x05
-MetatileBehavior_0x05: @ 8057064
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _08057072
- movs r0, 0
- b _08057074
-_08057072:
- movs r0, 0x1
-_08057074:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_0x05
-
- thumb_func_start MetatileBehavior_IsWalkNorth
-MetatileBehavior_IsWalkNorth: @ 8057078
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x42
- beq _08057086
- movs r0, 0
- b _08057088
-_08057086:
- movs r0, 0x1
-_08057088:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkNorth
-
- thumb_func_start MetatileBehavior_IsWalkSouth
-MetatileBehavior_IsWalkSouth: @ 805708C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x43
- beq _0805709A
- movs r0, 0
- b _0805709C
-_0805709A:
- movs r0, 0x1
-_0805709C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkSouth
-
- thumb_func_start MetatileBehavior_IsWalkWest
-MetatileBehavior_IsWalkWest: @ 80570A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x41
- beq _080570AE
- movs r0, 0
- b _080570B0
-_080570AE:
- movs r0, 0x1
-_080570B0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkWest
-
- thumb_func_start MetatileBehavior_IsWalkEast
-MetatileBehavior_IsWalkEast: @ 80570B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080570C2
- movs r0, 0
- b _080570C4
-_080570C2:
- movs r0, 0x1
-_080570C4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkEast
-
- thumb_func_start MetatileBehavior_IsNorthwardCurrent
-MetatileBehavior_IsNorthwardCurrent: @ 80570C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x52
- beq _080570D6
- movs r0, 0
- b _080570D8
-_080570D6:
- movs r0, 0x1
-_080570D8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsNorthwardCurrent
-
- thumb_func_start MetatileBehavior_IsSouthwardCurrent
-MetatileBehavior_IsSouthwardCurrent: @ 80570DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x53
- beq _080570EA
- movs r0, 0
- b _080570EC
-_080570EA:
- movs r0, 0x1
-_080570EC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSouthwardCurrent
-
- thumb_func_start MetatileBehavior_IsWestwardCurrent
-MetatileBehavior_IsWestwardCurrent: @ 80570F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x51
- beq _080570FE
- movs r0, 0
- b _08057100
-_080570FE:
- movs r0, 0x1
-_08057100:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWestwardCurrent
-
- thumb_func_start MetatileBehavior_IsEastwardCurrent
-MetatileBehavior_IsEastwardCurrent: @ 8057104
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x50
- beq _08057112
- movs r0, 0
- b _08057114
-_08057112:
- movs r0, 0x1
-_08057114:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEastwardCurrent
-
- thumb_func_start MetatileBehavior_IsSlideNorth
-MetatileBehavior_IsSlideNorth: @ 8057118
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x46
- beq _08057126
- movs r0, 0
- b _08057128
-_08057126:
- movs r0, 0x1
-_08057128:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideNorth
-
- thumb_func_start MetatileBehavior_IsSlideSouth
-MetatileBehavior_IsSlideSouth: @ 805712C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x47
- beq _0805713A
- movs r0, 0
- b _0805713C
-_0805713A:
- movs r0, 0x1
-_0805713C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideSouth
-
- thumb_func_start MetatileBehavior_IsSlideWest
-MetatileBehavior_IsSlideWest: @ 8057140
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x45
- beq _0805714E
- movs r0, 0
- b _08057150
-_0805714E:
- movs r0, 0x1
-_08057150:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideWest
-
- thumb_func_start MetatileBehavior_IsSlideEast
-MetatileBehavior_IsSlideEast: @ 8057154
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x44
- beq _08057162
- movs r0, 0
- b _08057164
-_08057162:
- movs r0, 0x1
-_08057164:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideEast
-
- thumb_func_start MetatileBehavior_IsCounter
-MetatileBehavior_IsCounter: @ 8057168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x80
- beq _08057176
- movs r0, 0
- b _08057178
-_08057176:
- movs r0, 0x1
-_08057178:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsCounter
-
- thumb_func_start MetatileBehavior_IsPlayerFacingTVScreen
-MetatileBehavior_IsPlayerFacingTVScreen: @ 805717C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x2
- bne _0805718E
- cmp r0, 0x86
- beq _08057192
-_0805718E:
- movs r0, 0
- b _08057194
-_08057192:
- movs r0, 0x1
-_08057194:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPlayerFacingTVScreen
-
- thumb_func_start MetatileBehavior_IsPC
-MetatileBehavior_IsPC: @ 8057198
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x83
- beq _080571A6
- movs r0, 0
- b _080571A8
-_080571A6:
- movs r0, 0x1
-_080571A8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPC
-
- thumb_func_start is_tile_x84
-is_tile_x84: @ 80571AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x84
- beq _080571BA
- movs r0, 0
- b _080571BC
-_080571BA:
- movs r0, 0x1
-_080571BC:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x84
-
- thumb_func_start sub_80571C0
-sub_80571C0: @ 80571C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x91
- beq _080571E2
- cmp r0, 0x93
- beq _080571E2
- cmp r0, 0x95
- beq _080571E2
- cmp r0, 0x97
- beq _080571E2
- cmp r0, 0x99
- beq _080571E2
- cmp r0, 0x9B
- beq _080571E2
- cmp r0, 0x9D
- bne _080571E6
-_080571E2:
- movs r0, 0x1
- b _080571E8
-_080571E6:
- movs r0, 0
-_080571E8:
- pop {r1}
- bx r1
- thumb_func_end sub_80571C0
-
- thumb_func_start sub_80571EC
-sub_80571EC: @ 80571EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x90
- beq _08057202
- cmp r0, 0x92
- beq _08057202
- cmp r0, 0x94
- beq _08057202
- cmp r0, 0x9A
- bne _08057206
-_08057202:
- movs r0, 0x1
- b _08057208
-_08057206:
- movs r0, 0
-_08057208:
- pop {r1}
- bx r1
- thumb_func_end sub_80571EC
-
- thumb_func_start sub_805720C
-sub_805720C: @ 805720C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x96
- beq _0805721A
- cmp r0, 0x9C
- bne _0805721E
-_0805721A:
- movs r0, 0x1
- b _08057220
-_0805721E:
- movs r0, 0
-_08057220:
- pop {r1}
- bx r1
- thumb_func_end sub_805720C
-
- thumb_func_start is_tile_x98
-is_tile_x98: @ 8057224
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x98
- beq _08057232
- movs r0, 0
- b _08057234
-_08057232:
- movs r0, 0x1
-_08057234:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x98
-
- thumb_func_start sub_8057238
-sub_8057238: @ 8057238
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB0
- beq _08057246
- movs r0, 0
- b _08057248
-_08057246:
- movs r0, 0x1
-_08057248:
- pop {r1}
- bx r1
- thumb_func_end sub_8057238
-
- thumb_func_start sub_805724C
-sub_805724C: @ 805724C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB1
- beq _0805725A
- movs r0, 0
- b _0805725C
-_0805725A:
- movs r0, 0x1
-_0805725C:
- pop {r1}
- bx r1
- thumb_func_end sub_805724C
-
- thumb_func_start unref_sub_8057260
-unref_sub_8057260: @ 8057260
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB2
- beq _0805726E
- movs r0, 0
- b _08057270
-_0805726E:
- movs r0, 0x1
-_08057270:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8057260
-
- thumb_func_start sub_8057274
-sub_8057274: @ 8057274
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB3
- beq _08057282
- movs r0, 0
- b _08057284
-_08057282:
- movs r0, 0x1
-_08057284:
- pop {r1}
- bx r1
- thumb_func_end sub_8057274
-
- thumb_func_start sub_8057288
-sub_8057288: @ 8057288
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB9
- beq _08057296
- movs r0, 0
- b _08057298
-_08057296:
- movs r0, 0x1
-_08057298:
- pop {r1}
- bx r1
- thumb_func_end sub_8057288
-
- thumb_func_start sub_805729C
-sub_805729C: @ 805729C
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _080572A8
- movs r0, 0
- b _080572AA
-_080572A8:
- movs r0, 0x1
-_080572AA:
- pop {r1}
- bx r1
- thumb_func_end sub_805729C
-
- thumb_func_start sub_80572B0
-sub_80572B0: @ 80572B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB7
- beq _080572BE
- movs r0, 0
- b _080572C0
-_080572BE:
- movs r0, 0x1
-_080572C0:
- pop {r1}
- bx r1
- thumb_func_end sub_80572B0
-
- thumb_func_start unref_sub_80572C4
-unref_sub_80572C4: @ 80572C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB2
- beq _080572D2
- movs r0, 0
- b _080572D4
-_080572D2:
- movs r0, 0x1
-_080572D4:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80572C4
-
- thumb_func_start sub_80572D8
-sub_80572D8: @ 80572D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB5
- beq _080572E6
- movs r0, 0
- b _080572E8
-_080572E6:
- movs r0, 0x1
-_080572E8:
- pop {r1}
- bx r1
- thumb_func_end sub_80572D8
-
- thumb_func_start sub_80572EC
-sub_80572EC: @ 80572EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC3
- beq _080572FA
- movs r0, 0
- b _080572FC
-_080572FA:
- movs r0, 0x1
-_080572FC:
- pop {r1}
- bx r1
- thumb_func_end sub_80572EC
-
- thumb_func_start sub_8057300
-sub_8057300: @ 8057300
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC2
- beq _0805730E
- movs r0, 0
- b _08057310
-_0805730E:
- movs r0, 0x1
-_08057310:
- pop {r1}
- bx r1
- thumb_func_end sub_8057300
-
- thumb_func_start sub_8057314
-sub_8057314: @ 8057314
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB8
- beq _08057322
- movs r0, 0
- b _08057324
-_08057322:
- movs r0, 0x1
-_08057324:
- pop {r1}
- bx r1
- thumb_func_end sub_8057314
-
- thumb_func_start sub_8057328
-sub_8057328: @ 8057328
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBE
- beq _08057336
- movs r0, 0
- b _08057338
-_08057336:
- movs r0, 0x1
-_08057338:
- pop {r1}
- bx r1
- thumb_func_end sub_8057328
-
- thumb_func_start sub_805733C
-sub_805733C: @ 805733C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBD
- beq _0805734A
- movs r0, 0
- b _0805734C
-_0805734A:
- movs r0, 0x1
-_0805734C:
- pop {r1}
- bx r1
- thumb_func_end sub_805733C
-
- thumb_func_start sub_8057350
-sub_8057350: @ 8057350
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBA
- beq _0805735E
- movs r0, 0
- b _08057360
-_0805735E:
- movs r0, 0x1
-_08057360:
- pop {r1}
- bx r1
- thumb_func_end sub_8057350
-
- thumb_func_start sub_8057364
-sub_8057364: @ 8057364
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBF
- beq _08057372
- movs r0, 0
- b _08057374
-_08057372:
- movs r0, 0x1
-_08057374:
- pop {r1}
- bx r1
- thumb_func_end sub_8057364
-
- thumb_func_start sub_8057378
-sub_8057378: @ 8057378
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC4
- beq _08057386
- movs r0, 0
- b _08057388
-_08057386:
- movs r0, 0x1
-_08057388:
- pop {r1}
- bx r1
- thumb_func_end sub_8057378
-
- thumb_func_start sub_805738C
-sub_805738C: @ 805738C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC5
- beq _0805739A
- movs r0, 0
- b _0805739C
-_0805739A:
- movs r0, 0x1
-_0805739C:
- pop {r1}
- bx r1
- thumb_func_end sub_805738C
-
- thumb_func_start MetatileBehavior_HasRipples
-MetatileBehavior_HasRipples: @ 80573A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080573B2
- cmp r0, 0x16
- beq _080573B2
- cmp r0, 0x14
- bne _080573B6
-_080573B2:
- movs r0, 0x1
- b _080573B8
-_080573B6:
- movs r0, 0
-_080573B8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_HasRipples
-
- thumb_func_start MetatileBehavior_IsPuddle
-MetatileBehavior_IsPuddle: @ 80573BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- beq _080573CA
- movs r0, 0
- b _080573CC
-_080573CA:
- movs r0, 0x1
-_080573CC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPuddle
-
- thumb_func_start MetatileBehavior_IsTallGrass
-MetatileBehavior_IsTallGrass: @ 80573D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080573DE
- movs r0, 0
- b _080573E0
-_080573DE:
- movs r0, 0x1
-_080573E0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsTallGrass
-
- thumb_func_start MetatileBehavior_IsLongGrass
-MetatileBehavior_IsLongGrass: @ 80573E4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080573F2
- movs r0, 0
- b _080573F4
-_080573F2:
- movs r0, 0x1
-_080573F4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsLongGrass
-
- thumb_func_start MetatileBehavior_IsBerryTreeSoil
-MetatileBehavior_IsBerryTreeSoil: @ 80573F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA0
- beq _08057406
- movs r0, 0
- b _08057408
-_08057406:
- movs r0, 0x1
-_08057408:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsBerryTreeSoil
-
- thumb_func_start MetatileBehavior_IsAsh
-MetatileBehavior_IsAsh: @ 805740C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x24
- beq _0805741A
- movs r0, 0
- b _0805741C
-_0805741A:
- movs r0, 0x1
-_0805741C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsAsh
-
- thumb_func_start MetatileBehavior_IsUnusedFootprintMetatile
-MetatileBehavior_IsUnusedFootprintMetatile: @ 8057420
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x25
- beq _0805742E
- movs r0, 0
- b _08057430
-_0805742E:
- movs r0, 0x1
-_08057430:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsUnusedFootprintMetatile
-
- thumb_func_start MetatileBehavior_IsBridge
-MetatileBehavior_IsBridge: @ 8057434
- push {lr}
- lsls r0, 24
- movs r1, 0x90
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057448
- movs r0, 0
- b _0805744A
-_08057448:
- movs r0, 0x1
-_0805744A:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsBridge
-
- thumb_func_start sub_8057450
-sub_8057450: @ 8057450
- push {lr}
- lsls r0, 24
- movs r1, 0x90
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057462
- movs r0, 0
-_08057462:
- pop {r1}
- bx r1
- thumb_func_end sub_8057450
-
- thumb_func_start MetatileBehavior_IsLandWildEncounter
-MetatileBehavior_IsLandWildEncounter: @ 8057468
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _0805748C
- adds r0, r4, 0
- bl sub_8056DA0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805748C
- movs r0, 0x1
- b _0805748E
-_0805748C:
- movs r0, 0
-_0805748E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsLandWildEncounter
-
- thumb_func_start MetatileBehavior_IsWaterWildEncounter
-MetatileBehavior_IsWaterWildEncounter: @ 8057494
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080574BA
- adds r0, r4, 0
- bl sub_8056DA0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080574BA
- movs r0, 0x1
- b _080574BC
-_080574BA:
- movs r0, 0
-_080574BC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWaterWildEncounter
-
- thumb_func_start sub_80574C4
-sub_80574C4: @ 80574C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- beq _080574D2
- movs r0, 0
- b _080574D4
-_080574D2:
- movs r0, 0x1
-_080574D4:
- pop {r1}
- bx r1
- thumb_func_end sub_80574C4
-
- thumb_func_start sub_80574D8
-sub_80574D8: @ 80574D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC
- beq _080574E6
- movs r0, 0
- b _080574E8
-_080574E6:
- movs r0, 0x1
-_080574E8:
- pop {r1}
- bx r1
- thumb_func_end sub_80574D8
-
- thumb_func_start sub_80574EC
-sub_80574EC: @ 80574EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xEF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _08057502
- cmp r1, 0x14
- bne _08057506
-_08057502:
- movs r0, 0x1
- b _08057508
-_08057506:
- movs r0, 0
-_08057508:
- pop {r1}
- bx r1
- thumb_func_end sub_80574EC
-
- thumb_func_start sub_805750C
-sub_805750C: @ 805750C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x19
- beq _0805751A
- cmp r0, 0x2A
- bne _0805751E
-_0805751A:
- movs r0, 0x1
- b _08057520
-_0805751E:
- movs r0, 0
-_08057520:
- pop {r1}
- bx r1
- thumb_func_end sub_805750C
-
- thumb_func_start MetatileBehavior_IsShallowFlowingWater
-MetatileBehavior_IsShallowFlowingWater: @ 8057524
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x17
- beq _08057536
- cmp r0, 0x1B
- beq _08057536
- cmp r0, 0x1C
- bne _0805753A
-_08057536:
- movs r0, 0x1
- b _0805753C
-_0805753A:
- movs r0, 0
-_0805753C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsShallowFlowingWater
-
- thumb_func_start sub_8057540
-sub_8057540: @ 8057540
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x26
- beq _0805754E
- movs r0, 0
- b _08057550
-_0805754E:
- movs r0, 0x1
-_08057550:
- pop {r1}
- bx r1
- thumb_func_end sub_8057540
-
- thumb_func_start sub_8057554
-sub_8057554: @ 8057554
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x27
- beq _08057562
- movs r0, 0
- b _08057564
-_08057562:
- movs r0, 0x1
-_08057564:
- pop {r1}
- bx r1
- thumb_func_end sub_8057554
-
- thumb_func_start sub_8057568
-sub_8057568: @ 8057568
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- beq _0805757A
- cmp r0, 0x11
- beq _0805757A
- cmp r0, 0x12
- bne _0805757E
-_0805757A:
- movs r0, 0x1
- b _08057580
-_0805757E:
- movs r0, 0
-_08057580:
- pop {r1}
- bx r1
- thumb_func_end sub_8057568
-
- thumb_func_start unref_sub_8057584
-unref_sub_8057584: @ 8057584
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x18
- beq _08057592
- cmp r0, 0x1A
- bne _08057596
-_08057592:
- movs r0, 0x1
- b _08057598
-_08057596:
- movs r0, 0
-_08057598:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8057584
-
- thumb_func_start sub_805759C
-sub_805759C: @ 805759C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080575BE
- adds r0, r4, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080575BE
- movs r0, 0x1
- b _080575C0
-_080575BE:
- movs r0, 0
-_080575C0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805759C
-
- thumb_func_start MetatileBehavior_IsEastBlocked
-MetatileBehavior_IsEastBlocked: @ 80575C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x30
- beq _080575E2
- cmp r0, 0x34
- beq _080575E2
- cmp r0, 0x36
- beq _080575E2
- cmp r0, 0xC1
- beq _080575E2
- cmp r0, 0xBE
- bne _080575E6
-_080575E2:
- movs r0, 0x1
- b _080575E8
-_080575E6:
- movs r0, 0
-_080575E8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEastBlocked
-
- thumb_func_start MetatileBehavior_IsWestBlocked
-MetatileBehavior_IsWestBlocked: @ 80575EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x31
- beq _08057606
- cmp r0, 0x35
- beq _08057606
- cmp r0, 0x37
- beq _08057606
- cmp r0, 0xC1
- beq _08057606
- cmp r0, 0xBE
- bne _0805760A
-_08057606:
- movs r0, 0x1
- b _0805760C
-_0805760A:
- movs r0, 0
-_0805760C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWestBlocked
-
- thumb_func_start MetatileBehavior_IsNorthBlocked
-MetatileBehavior_IsNorthBlocked: @ 8057610
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x32
- beq _08057626
- cmp r0, 0x34
- beq _08057626
- cmp r0, 0x35
- beq _08057626
- cmp r0, 0xC0
- bne _0805762A
-_08057626:
- movs r0, 0x1
- b _0805762C
-_0805762A:
- movs r0, 0
-_0805762C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsNorthBlocked
-
- thumb_func_start MetatileBehavior_IsSouthBlocked
-MetatileBehavior_IsSouthBlocked: @ 8057630
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- beq _08057646
- cmp r0, 0x36
- beq _08057646
- cmp r0, 0x37
- beq _08057646
- cmp r0, 0xC0
- bne _0805764A
-_08057646:
- movs r0, 0x1
- b _0805764C
-_0805764A:
- movs r0, 0
-_0805764C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSouthBlocked
-
- thumb_func_start MetatileBehavior_IsShortGrass
-MetatileBehavior_IsShortGrass: @ 8057650
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- beq _0805765E
- movs r0, 0
- b _08057660
-_0805765E:
- movs r0, 0x1
-_08057660:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsShortGrass
-
- thumb_func_start MetatileBehavior_IsHotSprings
-MetatileBehavior_IsHotSprings: @ 8057664
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x28
- beq _08057672
- movs r0, 0
- b _08057674
-_08057672:
- movs r0, 0x1
-_08057674:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsHotSprings
-
- thumb_func_start MetatileBehavior_IsWaterfall
-MetatileBehavior_IsWaterfall: @ 8057678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- beq _08057686
- movs r0, 0
- b _08057688
-_08057686:
- movs r0, 0x1
-_08057688:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWaterfall
-
- thumb_func_start MetatileBehavior_IsFortreeBridge
-MetatileBehavior_IsFortreeBridge: @ 805768C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x78
- beq _0805769A
- movs r0, 0
- b _0805769C
-_0805769A:
- movs r0, 0x1
-_0805769C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsFortreeBridge
-
- thumb_func_start sub_80576A0
-sub_80576A0: @ 80576A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x74
- beq _080576AE
- movs r0, 0
- b _080576B0
-_080576AE:
- movs r0, 0x1
-_080576B0:
- pop {r1}
- bx r1
- thumb_func_end sub_80576A0
-
- thumb_func_start sub_80576B4
-sub_80576B4: @ 80576B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x75
- beq _080576C2
- movs r0, 0
- b _080576C4
-_080576C2:
- movs r0, 0x1
-_080576C4:
- pop {r1}
- bx r1
- thumb_func_end sub_80576B4
-
- thumb_func_start sub_80576C8
-sub_80576C8: @ 80576C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x76
- beq _080576D6
- movs r0, 0
- b _080576D8
-_080576D6:
- movs r0, 0x1
-_080576D8:
- pop {r1}
- bx r1
- thumb_func_end sub_80576C8
-
- thumb_func_start sub_80576DC
-sub_80576DC: @ 80576DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- beq _080576EA
- movs r0, 0
- b _080576EC
-_080576EA:
- movs r0, 0x1
-_080576EC:
- pop {r1}
- bx r1
- thumb_func_end sub_80576DC
-
- thumb_func_start MetatileBehavior_IsPacifidlogLog
-MetatileBehavior_IsPacifidlogLog: @ 80576F0
- push {lr}
- lsls r0, 24
- movs r1, 0x8C
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057704
- movs r0, 0
- b _08057706
-_08057704:
- movs r0, 0x1
-_08057706:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPacifidlogLog
-
- thumb_func_start is_tile_x8C
-is_tile_x8C: @ 805770C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8C
- beq _0805771A
- movs r0, 0
- b _0805771C
-_0805771A:
- movs r0, 0x1
-_0805771C:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x8C
-
- thumb_func_start is_tile_x85
-is_tile_x85: @ 8057720
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x85
- beq _0805772E
- movs r0, 0
- b _08057730
-_0805772E:
- movs r0, 0x1
-_08057730:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x85
-
- thumb_func_start is_tile_x8B
-is_tile_x8B: @ 8057734
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8B
- beq _08057742
- movs r0, 0
- b _08057744
-_08057742:
- movs r0, 0x1
-_08057744:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x8B
-
- thumb_func_start is_tile_x8A
-is_tile_x8A: @ 8057748
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8A
- beq _08057756
- movs r0, 0
- b _08057758
-_08057756:
- movs r0, 0x1
-_08057758:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x8A
-
- thumb_func_start is_tile_x87
-is_tile_x87: @ 805775C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x87
- beq _0805776A
- movs r0, 0
- b _0805776C
-_0805776A:
- movs r0, 0x1
-_0805776C:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x87
-
- thumb_func_start MetatileBehavior_0xBB
-MetatileBehavior_0xBB: @ 8057770
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBB
- beq _0805777E
- movs r0, 0
- b _08057780
-_0805777E:
- movs r0, 0x1
-_08057780:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_0xBB
-
- thumb_func_start MetatileBehavior_0xBC
-MetatileBehavior_0xBC: @ 8057784
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBC
- beq _08057792
- movs r0, 0
- b _08057794
-_08057792:
- movs r0, 0x1
-_08057794:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_0xBC
-
- thumb_func_start sub_8057798
-sub_8057798: @ 8057798
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x29
- beq _080577A6
- movs r0, 0
- b _080577A8
-_080577A6:
- movs r0, 0x1
-_080577A8:
- pop {r1}
- bx r1
- thumb_func_end sub_8057798
-
- thumb_func_start is_role_x68
-is_role_x68: @ 80577AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x68
- beq _080577BA
- movs r0, 0
- b _080577BC
-_080577BA:
- movs r0, 0x1
-_080577BC:
- pop {r1}
- bx r1
- thumb_func_end is_role_x68
-
- thumb_func_start MetatileBehavior_IsAquaHideoutWarp
-MetatileBehavior_IsAquaHideoutWarp: @ 80577C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x67
- beq _080577CE
- movs r0, 0
- b _080577D0
-_080577CE:
- movs r0, 0x1
-_080577D0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsAquaHideoutWarp
-
- thumb_func_start MetatileBehavior_IsSurfableFishableWater
-MetatileBehavior_IsSurfableFishableWater: @ 80577D4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080577F8
- cmp r0, 0x15
- beq _080577F8
- cmp r0, 0x11
- beq _080577F8
- cmp r0, 0x12
- beq _080577F8
- cmp r0, 0x14
- beq _080577F8
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _080577FC
-_080577F8:
- movs r0, 0x1
- b _080577FE
-_080577FC:
- movs r0, 0
-_080577FE:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSurfableFishableWater
-
- thumb_func_start sub_8057804
-sub_8057804: @ 8057804
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- beq _08057812
- movs r0, 0
- b _08057814
-_08057812:
- movs r0, 0x1
-_08057814:
- pop {r1}
- bx r1
- thumb_func_end sub_8057804
-
- thumb_func_start sub_8057818
-sub_8057818: @ 8057818
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x66
- beq _08057826
- movs r0, 0
- b _08057828
-_08057826:
- movs r0, 0x1
-_08057828:
- pop {r1}
- bx r1
- thumb_func_end sub_8057818
-
- thumb_func_start sub_805782C
-sub_805782C: @ 805782C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD2
- beq _0805783A
- movs r0, 0
- b _0805783C
-_0805783A:
- movs r0, 0x1
-_0805783C:
- pop {r1}
- bx r1
- thumb_func_end sub_805782C
-
- thumb_func_start MetatileBehavior_IsMuddySlope
-MetatileBehavior_IsMuddySlope: @ 8057840
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD0
- beq _0805784E
- movs r0, 0
- b _08057850
-_0805784E:
- movs r0, 0x1
-_08057850:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsMuddySlope
-
- thumb_func_start MetatileBehavior_IsBumpySlope
-MetatileBehavior_IsBumpySlope: @ 8057854
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD1
- beq _08057862
- movs r0, 0
- b _08057864
-_08057862:
- movs r0, 0x1
-_08057864:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsBumpySlope
-
- thumb_func_start MetatileBehavior_IsIsolatedVerticalRail
-MetatileBehavior_IsIsolatedVerticalRail: @ 8057868
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD3
- beq _08057876
- movs r0, 0
- b _08057878
-_08057876:
- movs r0, 0x1
-_08057878:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIsolatedVerticalRail
-
- thumb_func_start MetatileBehavior_IsIsolatedHorizontalRail
-MetatileBehavior_IsIsolatedHorizontalRail: @ 805787C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD4
- beq _0805788A
- movs r0, 0
- b _0805788C
-_0805788A:
- movs r0, 0x1
-_0805788C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIsolatedHorizontalRail
-
- thumb_func_start MetatileBehavior_IsVerticalRail
-MetatileBehavior_IsVerticalRail: @ 8057890
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD5
- beq _0805789E
- movs r0, 0
- b _080578A0
-_0805789E:
- movs r0, 0x1
-_080578A0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsVerticalRail
-
- thumb_func_start MetatileBehavior_IsHorizontalRail
-MetatileBehavior_IsHorizontalRail: @ 80578A4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD6
- beq _080578B2
- movs r0, 0
- b _080578B4
-_080578B2:
- movs r0, 0x1
-_080578B4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsHorizontalRail
-
- thumb_func_start MetatileBehavior_IsSeaweed
-MetatileBehavior_IsSeaweed: @ 80578B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x22
- beq _080578C6
- cmp r0, 0x2A
- bne _080578CA
-_080578C6:
- movs r0, 0x1
- b _080578CC
-_080578CA:
- movs r0, 0
-_080578CC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSeaweed
-
- thumb_func_start MetatileBehavior_IsRunningDisallowed
-MetatileBehavior_IsRunningDisallowed: @ 80578D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- beq _080578EC
- cmp r0, 0x3
- beq _080578EC
- cmp r0, 0x28
- beq _080578EC
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080578F0
-_080578EC:
- movs r0, 0x1
- b _080578F2
-_080578F0:
- movs r0, 0
-_080578F2:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsRunningDisallowed
-
- thumb_func_start sub_80578F8
-sub_80578F8: @ 80578F8
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFE
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _08057912
- cmp r1, 0x24
- beq _08057912
- cmp r1, 0x9
- bne _08057916
-_08057912:
- movs r0, 0x1
- b _08057918
-_08057916:
- movs r0, 0
-_08057918:
- pop {r1}
- bx r1
- thumb_func_end sub_80578F8
-
- thumb_func_start sub_805791C
-sub_805791C: @ 805791C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8E
- beq _0805792A
- movs r0, 0
- b _0805792C
-_0805792A:
- movs r0, 0x1
-_0805792C:
- pop {r1}
- bx r1
- thumb_func_end sub_805791C
-
- thumb_func_start sub_8057930
-sub_8057930: @ 8057930
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE0
- beq _0805793E
- movs r0, 0
- b _08057940
-_0805793E:
- movs r0, 0x1
-_08057940:
- pop {r1}
- bx r1
- thumb_func_end sub_8057930
-
- thumb_func_start sub_8057944
-sub_8057944: @ 8057944
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE1
- beq _08057952
- movs r0, 0
- b _08057954
-_08057952:
- movs r0, 0x1
-_08057954:
- pop {r1}
- bx r1
- thumb_func_end sub_8057944
-
- thumb_func_start sub_8057958
-sub_8057958: @ 8057958
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE2
- beq _08057966
- movs r0, 0
- b _08057968
-_08057966:
- movs r0, 0x1
-_08057968:
- pop {r1}
- bx r1
- thumb_func_end sub_8057958
-
- thumb_func_start sub_805796C
-sub_805796C: @ 805796C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE3
- beq _0805797A
- movs r0, 0
- b _0805797C
-_0805797A:
- movs r0, 0x1
-_0805797C:
- pop {r1}
- bx r1
- thumb_func_end sub_805796C
-
- thumb_func_start sub_8057980
-sub_8057980: @ 8057980
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE4
- beq _0805798E
- movs r0, 0
- b _08057990
-_0805798E:
- movs r0, 0x1
-_08057990:
- pop {r1}
- bx r1
- thumb_func_end sub_8057980
-
- thumb_func_start sub_8057994
-sub_8057994: @ 8057994
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE5
- beq _080579A2
- movs r0, 0
- b _080579A4
-_080579A2:
- movs r0, 0x1
-_080579A4:
- pop {r1}
- bx r1
- thumb_func_end sub_8057994
-
- thumb_func_start sub_80579A8
-sub_80579A8: @ 80579A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE6
- beq _080579B6
- movs r0, 0
- b _080579B8
-_080579B6:
- movs r0, 0x1
-_080579B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80579A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/money.s b/asm/money.s
deleted file mode 100644
index 65d8b87a1..000000000
--- a/asm/money.s
+++ /dev/null
@@ -1,480 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start IsEnoughMoney
-IsEnoughMoney: @ 80B79A8
- push {lr}
- cmp r0, r1
- bcs _080B79B2
- movs r0, 0
- b _080B79B4
-_080B79B2:
- movs r0, 0x1
-_080B79B4:
- pop {r1}
- bx r1
- thumb_func_end IsEnoughMoney
-
- thumb_func_start sub_80B79B8
-sub_80B79B8: @ 80B79B8
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- adds r1, r0, r1
- cmp r0, r1
- bls _080B79CC
- ldr r0, _080B79C8 @ =0x000f423f
- b _080B79D4
- .align 2, 0
-_080B79C8: .4byte 0x000f423f
-_080B79CC:
- str r1, [r2]
- ldr r0, _080B79DC @ =0x000f423f
- cmp r1, r0
- bls _080B79D6
-_080B79D4:
- str r0, [r2]
-_080B79D6:
- pop {r0}
- bx r0
- .align 2, 0
-_080B79DC: .4byte 0x000f423f
- thumb_func_end sub_80B79B8
-
- thumb_func_start sub_80B79E0
-sub_80B79E0: @ 80B79E0
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- cmp r0, r1
- bcs _080B79EE
- movs r0, 0
- b _080B79F0
-_080B79EE:
- subs r0, r1
-_080B79F0:
- str r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_80B79E0
-
- thumb_func_start sub_80B79F8
-sub_80B79F8: @ 80B79F8
- push {r4,lr}
- adds r3, r0, 0
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r0, _080B7A0C @ =0x000f423f
- cmp r1, r0
- bls _080B7A10
- movs r2, 0x7
- b _080B7A46
- .align 2, 0
-_080B7A0C: .4byte 0x000f423f
-_080B7A10:
- ldr r0, _080B7A1C @ =0x0001869f
- cmp r1, r0
- bls _080B7A20
- movs r2, 0x6
- b _080B7A46
- .align 2, 0
-_080B7A1C: .4byte 0x0001869f
-_080B7A20:
- ldr r0, _080B7A2C @ =0x00002710
- cmp r1, r0
- bls _080B7A30
- movs r2, 0x5
- b _080B7A46
- .align 2, 0
-_080B7A2C: .4byte 0x00002710
-_080B7A30:
- ldr r0, _080B7A90 @ =0x000003e7
- movs r2, 0x4
- cmp r1, r0
- bhi _080B7A46
- movs r2, 0x3
- cmp r1, 0x63
- bhi _080B7A46
- movs r2, 0x1
- cmp r1, 0x9
- bls _080B7A46
- movs r2, 0x2
-_080B7A46:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- movs r0, 0
- subs r2, r4, r2
- cmp r0, r2
- bge _080B7A6C
- movs r4, 0
-_080B7A5E:
- strb r4, [r3]
- adds r3, 0x1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- blt _080B7A5E
-_080B7A6C:
- movs r0, 0xB7
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7A90: .4byte 0x000003e7
- thumb_func_end sub_80B79F8
-
- thumb_func_start sub_80B7A94
-sub_80B7A94: @ 80B7A94
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80B79F8
- mov r0, sp
- bl sub_8072CA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0x1
- lsls r0, 3
- cmp r2, r0
- blt _080B7ACE
- mov r0, sp
- adds r1, r6, 0
- adds r2, r7, 0
- bl MenuPrint
- b _080B7AE4
-_080B7ACE:
- adds r1, r6, 0x1
- adds r1, r5
- lsls r1, 3
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r7, 3
- mov r0, sp
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_080B7AE4:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7A94
-
- thumb_func_start sub_80B7AEC
-sub_80B7AEC: @ 80B7AEC
- push {r4-r6,lr}
- sub sp, 0x20
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r6, sp
- movs r0, 0xB7
- strb r0, [r6]
- adds r6, 0x1
- adds r0, r6, 0
- adds r1, r3, 0
- bl ConvertIntToDecimalString
- adds r6, r0, 0
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuPrint_RightAligned
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x14
- strb r0, [r6, 0x1]
- movs r0, 0
- strb r0, [r6, 0x2]
- movs r0, 0xFF
- strb r0, [r6, 0x3]
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7AEC
-
- thumb_func_start sub_80B7B34
-sub_80B7B34: @ 80B7B34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r9
- lsls r1, 8
- mov r9, r1
- ldr r4, _080B7BD8 @ =gDecoration10000_Gfx
- adds r0, r1, r4
- lsls r6, r5, 4
- subs r6, r5
- lsls r1, r6, 6
- mov r3, r8
- adds r3, 0x1
- lsls r3, 5
- ldr r2, _080B7BDC @ =0x06008000
- adds r3, r2
- adds r1, r3
- movs r2, 0x20
- str r3, [sp]
- bl CpuFastSet
- adds r4, 0x80
- add r9, r4
- adds r0, r5, 0x1
- lsls r4, r0, 4
- subs r4, r0
- lsls r1, r4, 6
- ldr r3, [sp]
- adds r1, r3
- mov r0, r9
- movs r2, 0x20
- bl CpuFastSet
- movs r3, 0
- lsls r5, 5
- mov r0, r8
- adds r7, r5, r0
- lsls r6, 1
- adds r6, 0x1
- add r6, r8
- ldr r1, _080B7BE0 @ =0xfffff000
- adds r5, r1, 0
- ldr r0, _080B7BE4 @ =0x0600f800
- mov r12, r0
- ldr r1, _080B7BE8 @ =0x0600f840
- mov r9, r1
- lsls r4, 1
- adds r4, 0x1
- add r4, r8
-_080B7BAA:
- adds r1, r7, r3
- lsls r1, 1
- mov r0, r12
- adds r2, r1, r0
- adds r0, r3, r6
- adds r0, r5
- strh r0, [r2]
- add r1, r9
- adds r0, r3, r4
- adds r0, r5
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B7BAA
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7BD8: .4byte gDecoration10000_Gfx
-_080B7BDC: .4byte 0x06008000
-_080B7BE0: .4byte 0xfffff000
-_080B7BE4: .4byte 0x0600f800
-_080B7BE8: .4byte 0x0600f840
- thumb_func_end sub_80B7B34
-
- thumb_func_start sub_80B7BEC
-sub_80B7BEC: @ 80B7BEC
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- movs r1, 0xC0
- lsls r1, 19
- adds r4, r1
- lsrs r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r3, r1
- lsrs r3, 24
- movs r1, 0x6
- adds r2, r4, 0
- bl sub_80B7A94
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7BEC
-
- thumb_func_start sub_80B7C14
-sub_80B7C14: @ 80B7C14
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- lsrs r6, r4, 24
- movs r0, 0xD0
- lsls r0, 20
- adds r4, r0
- lsrs r4, 24
- lsrs r5, r3, 24
- movs r1, 0xC0
- lsls r1, 18
- adds r3, r1
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- mov r0, r8
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80B7BEC
- ldr r0, _080B7C88 @ =gUnknown_083CF584
- bl LoadCompressedObjectPic
- ldr r0, _080B7C8C @ =gUnknown_083CF58C
- bl LoadCompressedObjectPalette
- ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C
- lsls r6, 19
- movs r1, 0x98
- lsls r1, 13
- adds r6, r1
- asrs r6, 16
- lsls r5, 19
- movs r1, 0xB0
- lsls r1, 12
- adds r5, r1
- asrs r5, 16
- adds r1, r6, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, _080B7C94 @ =gUnknown_02038734
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7C88: .4byte gUnknown_083CF584
-_080B7C8C: .4byte gUnknown_083CF58C
-_080B7C90: .4byte gSpriteTemplate_83CF56C
-_080B7C94: .4byte gUnknown_02038734
- thumb_func_end sub_80B7C14
-
- thumb_func_start RemoveMoneyLabelObject
-RemoveMoneyLabelObject: @ 80B7C98
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080B7CDC @ =gUnknown_02038734
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B7CE0 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r0, _080B7CE4 @ =0x00002722
- bl FreeSpritePaletteByTag
- adds r2, r4, 0
- adds r2, 0xD
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0x3
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl MenuZeroFillWindowRect
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7CDC: .4byte gUnknown_02038734
-_080B7CE0: .4byte gSprites
-_080B7CE4: .4byte 0x00002722
- thumb_func_end RemoveMoneyLabelObject
-
- thumb_func_start sub_80B7CE8
-sub_80B7CE8: @ 80B7CE8
- push {lr}
- ldr r0, _080B7D04 @ =gSaveBlock1
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080B7D08 @ =gSpecialVar_0x8005
- ldrh r1, [r1]
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080B7D04: .4byte gSaveBlock1
-_080B7D08: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80B7CE8
-
- thumb_func_start sub_80B7D0C
-sub_80B7D0C: @ 80B7D0C
- push {lr}
- ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490
- ldr r1, _080B7D20 @ =gSpecialVar_0x8005
- ldrh r1, [r1]
- bl sub_80B79E0
- pop {r0}
- bx r0
- .align 2, 0
-_080B7D1C: .4byte gSaveBlock1 + 0x490
-_080B7D20: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80B7D0C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s
deleted file mode 100644
index 6331199de..000000000
--- a/asm/mystery_event_menu.s
+++ /dev/null
@@ -1,581 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8146900
-sub_8146900: @ 8146900
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8146900
-
- thumb_func_start sub_8146914
-sub_8146914: @ 8146914
- push {lr}
- movs r2, 0
- ldr r1, _0814692C @ =gLinkPlayers
- ldrh r0, [r1, 0x1A]
- ldrh r1, [r1, 0x36]
- cmp r0, r1
- bne _08146924
- movs r2, 0x1
-_08146924:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814692C: .4byte gLinkPlayers
- thumb_func_end sub_8146914
-
- thumb_func_start CB2_InitMysteryEventMenu
-CB2_InitMysteryEventMenu: @ 8146930
- push {r4,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0814699C @ =sub_8146900
- bl SetVBlankCallback
- ldr r4, _081469A0 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strh r0, [r1]
- ldr r0, _081469A4 @ =Task_DestroySelf
- movs r1, 0
- bl CreateTask
- bl StopMapMusic
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- ldr r0, _081469A8 @ =sub_81469E4
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814699C: .4byte sub_8146900
-_081469A0: .4byte gWindowConfig_81E6CE4
-_081469A4: .4byte Task_DestroySelf
-_081469A8: .4byte sub_81469E4
- thumb_func_end CB2_InitMysteryEventMenu
-
- thumb_func_start sub_81469AC
-sub_81469AC: @ 81469AC
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r5, 0x1
- cmp r4, 0
- bne _081469C0
- ldr r1, _081469DC @ =gSystemText_EventLoadSuccess
- bl StringCopy
- movs r5, 0
-_081469C0:
- cmp r4, 0x2
- bne _081469C6
- movs r5, 0
-_081469C6:
- cmp r4, 0x1
- bne _081469D2
- ldr r1, _081469E0 @ =gSystemText_LoadingError
- adds r0, r6, 0
- bl StringCopy
-_081469D2:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081469DC: .4byte gSystemText_EventLoadSuccess
-_081469E0: .4byte gSystemText_LoadingError
- thumb_func_end sub_81469AC
-
- thumb_func_start sub_81469E4
-sub_81469E4: @ 81469E4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _08146A04 @ =gMain
- ldr r2, _08146A08 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _081469F8
- b _08146DA4
-_081469F8:
- lsls r0, 2
- ldr r1, _08146A0C @ =_08146A10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146A04: .4byte gMain
-_08146A08: .4byte 0x0000043c
-_08146A0C: .4byte _08146A10
- .align 2, 0
-_08146A10:
- .4byte _08146A54
- .4byte _08146A6E
- .4byte _08146A9C
- .4byte _08146AD4
- .4byte _08146B18
- .4byte _08146B26
- .4byte _08146B90
- .4byte _08146C64
- .4byte _08146C72
- .4byte _08146C94
- .4byte _08146CA0
- .4byte _08146CB4
- .4byte _08146CFC
- .4byte _08146D18
- .4byte _08146D50
- .4byte _08146D6C
- .4byte _08146D94
-_08146A54:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _08146D78
-_08146A6E:
- ldr r0, _08146A8C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08146A7C
- b _08146DA4
-_08146A7C:
- ldr r0, _08146A90 @ =gSystemText_LinkStandby
- bl sub_8072044
- ldr r1, _08146A94 @ =gMain
- ldr r2, _08146A98 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146A8C: .4byte gPaletteFade
-_08146A90: .4byte gSystemText_LinkStandby
-_08146A94: .4byte gMain
-_08146A98: .4byte 0x0000043c
-_08146A9C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146AA8
- b _08146DA4
-_08146AA8:
- ldr r1, _08146AC4 @ =gMain
- ldr r0, _08146AC8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08146ACC @ =gLinkType
- ldr r2, _08146AD0 @ =0x00005501
- adds r0, r2, 0
- strh r0, [r1]
- bl OpenLink
- b _08146DA4
- .align 2, 0
-_08146AC4: .4byte gMain
-_08146AC8: .4byte 0x0000043c
-_08146ACC: .4byte gLinkType
-_08146AD0: .4byte 0x00005501
-_08146AD4:
- ldr r0, _08146B08 @ =gLinkStatus
- ldr r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08146AE2
- b _08146C38
-_08146AE2:
- movs r0, 0x1C
- ands r1, r0
- cmp r1, 0x4
- bhi _08146AEC
- b _08146C38
-_08146AEC:
- movs r0, 0x15
- bl PlaySE
- ldr r0, _08146B0C @ =gSystemText_LoadEventPressA
- bl sub_8072044
- ldr r1, _08146B10 @ =gMain
- ldr r0, _08146B14 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146C38
- .align 2, 0
-_08146B08: .4byte gLinkStatus
-_08146B0C: .4byte gSystemText_LoadEventPressA
-_08146B10: .4byte gMain
-_08146B14: .4byte 0x0000043c
-_08146B18:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146B24
- b _08146DA4
-_08146B24:
- b _08146D7C
-_08146B26:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _08146C10
- ldr r4, _08146B64 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146B70
- movs r0, 0x5
- bl PlaySE
- bl sub_8007F4C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuDrawTextWindow
- ldr r0, _08146B68 @ =gSystemText_LoadingEvent
- movs r1, 0x7
- movs r2, 0x6
- bl MenuPrint
- ldr r2, _08146B6C @ =0x0000043c
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146B64: .4byte gMain
-_08146B68: .4byte gSystemText_LoadingEvent
-_08146B6C: .4byte 0x0000043c
-_08146B70:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08146B7A
- b _08146DA4
-_08146B7A:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r0, _08146B8C @ =0x0000043c
- adds r1, r4, r0
- b _08146C54
- .align 2, 0
-_08146B8C: .4byte 0x0000043c
-_08146B90:
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _08146C38
- ldr r0, _08146BD8 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08146BA4
- b _08146DA4
-_08146BA4:
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08146BE8
- bl sub_800832C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146BDC @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146BE0 @ =gMain
- ldr r2, _08146BE4 @ =0x0000043c
- adds r0, r2
- b _08146C26
- .align 2, 0
-_08146BD8: .4byte gReceivedRemoteLinkPlayers
-_08146BDC: .4byte gStringVar4
-_08146BE0: .4byte gMain
-_08146BE4: .4byte 0x0000043c
-_08146BE8:
- bl sub_8146914
- lsls r0, 24
- cmp r0, 0
- beq _08146C00
- ldr r0, _08146BFC @ =gSystemText_DontCutLink
- bl sub_8072044
- b _08146D7C
- .align 2, 0
-_08146BFC: .4byte gSystemText_DontCutLink
-_08146C00:
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
-_08146C10:
- ldr r4, _08146C2C @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146C30 @ =gMain
- ldr r1, _08146C34 @ =0x0000043c
- adds r0, r1
-_08146C26:
- movs r1, 0xD
- strb r1, [r0]
- b _08146DA4
- .align 2, 0
-_08146C2C: .4byte gStringVar4
-_08146C30: .4byte gMain
-_08146C34: .4byte 0x0000043c
-_08146C38:
- ldr r4, _08146C5C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08146C46
- b _08146DA4
-_08146C46:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r2, _08146C60 @ =0x0000043c
- adds r1, r4, r2
-_08146C54:
- movs r0, 0xF
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146C5C: .4byte gMain
-_08146C60: .4byte 0x0000043c
-_08146C64:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146C70
- b _08146DA4
-_08146C70:
- b _08146D7C
-_08146C72:
- bl GetBlockReceivedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08146C7E
- b _08146DA4
-_08146C7E:
- bl ResetBlockReceivedFlags
- ldr r1, _08146C8C @ =gMain
- ldr r2, _08146C90 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146C8C: .4byte gMain
-_08146C90: .4byte 0x0000043c
-_08146C94:
- ldr r0, _08146C9C @ =0x0000043c
- adds r1, r4, r0
- b _08146D82
- .align 2, 0
-_08146C9C: .4byte 0x0000043c
-_08146CA0:
- bl sub_800832C
- ldr r1, _08146CAC @ =gMain
- ldr r2, _08146CB0 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146CAC: .4byte gMain
-_08146CB0: .4byte 0x0000043c
-_08146CB4:
- ldr r0, _08146CEC @ =gReceivedRemoteLinkPlayers
- ldrb r6, [r0]
- cmp r6, 0
- bne _08146DA4
- ldr r5, _08146CF0 @ =0x02000000
- adds r0, r5, 0
- bl sub_812613C
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- str r6, [sp, 0x4]
- ldr r2, _08146CF4 @ =0x050001f5
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuSet
- ldr r0, _08146CF8 @ =gStringVar4
- adds r1, r4, 0
- bl sub_81469AC
- lsls r0, 24
- cmp r0, 0
- bne _08146D7C
- movs r0, 0
- bl sub_8125D44
- b _08146D7C
- .align 2, 0
-_08146CEC: .4byte gReceivedRemoteLinkPlayers
-_08146CF0: .4byte 0x02000000
-_08146CF4: .4byte 0x050001f5
-_08146CF8: .4byte gStringVar4
-_08146CFC:
- ldr r0, _08146D0C @ =gStringVar4
- bl sub_8072044
- ldr r1, _08146D10 @ =gMain
- ldr r2, _08146D14 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146D0C: .4byte gStringVar4
-_08146D10: .4byte gMain
-_08146D14: .4byte 0x0000043c
-_08146D18:
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08146DA4
- ldr r1, _08146D44 @ =gMain
- ldr r0, _08146D48 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08146D4C @ =gUnknown_02039338
- strb r2, [r0]
- b _08146DA4
- .align 2, 0
-_08146D44: .4byte gMain
-_08146D48: .4byte 0x0000043c
-_08146D4C: .4byte gUnknown_02039338
-_08146D50:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146DA4
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08146D68 @ =0x0000043c
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146D68: .4byte 0x0000043c
-_08146D6C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_08146D78:
- bl BeginNormalPaletteFade
-_08146D7C:
- ldr r1, _08146D8C @ =gMain
- ldr r0, _08146D90 @ =0x0000043c
- adds r1, r0
-_08146D82:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146D8C: .4byte gMain
-_08146D90: .4byte 0x0000043c
-_08146D94:
- ldr r0, _08146DFC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08146DA4
- bl DoSoftReset
-_08146DA4:
- ldr r0, _08146E00 @ =gLinkStatus
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08146DE4
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- bne _08146DE4
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146E04 @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146E08 @ =gMain
- ldr r1, _08146E0C @ =0x0000043c
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
-_08146DE4:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08146DFC: .4byte gPaletteFade
-_08146E00: .4byte gLinkStatus
-_08146E04: .4byte gStringVar4
-_08146E08: .4byte gMain
-_08146E0C: .4byte 0x0000043c
- thumb_func_end sub_81469E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index 4b8717bac..f0e842626 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -6,181 +6,6 @@
.text
- thumb_func_start sub_8126098
-sub_8126098: @ 8126098
- push {r4,lr}
- adds r4, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- lsrs r2, 16
- movs r3, 0x2
- ands r0, r3
- cmp r0, 0
- beq _081260C6
- ands r1, r3
- cmp r1, 0
- beq _081260C6
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081260C6
- movs r0, 0x80
- .ifdef SAPPHIRE
- lsls r0, 1 @ unknown difference
- .endif
- ands r0, r4
- cmp r0, 0
- beq _081260C6
- movs r0, 0x1
- b _081260C8
-_081260C6:
- movs r0, 0
-_081260C8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126098
-
- thumb_func_start sub_81260D0
-sub_81260D0: @ 81260D0
- push {lr}
- ldr r0, _081260E4 @ =gStringVar4
- ldr r1, _081260E8 @ =gOtherText_DataCannotUseVersion
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_8126160
- pop {r0}
- bx r0
- .align 2, 0
-_081260E4: .4byte gStringVar4
-_081260E8: .4byte gOtherText_DataCannotUseVersion
- thumb_func_end sub_81260D0
-
- thumb_func_start sub_81260EC
-sub_81260EC: @ 81260EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _08126114 @ =gScriptFuncs
- ldr r2, _08126118 @ =gScriptFuncs_End
- bl InitScriptContext
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetupBytecodeScript
- str r5, [r4, 0x64]
- movs r0, 0
- str r0, [r4, 0x68]
- str r0, [r4, 0x6C]
- str r0, [r4, 0x70]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126114: .4byte gScriptFuncs
-_08126118: .4byte gScriptFuncs_End
- thumb_func_end sub_81260EC
-
- thumb_func_start sub_812611C
-sub_812611C: @ 812611C
- push {r4,lr}
- adds r4, r0, 0
- bl RunScript
- lsls r0, 24
- cmp r0, 0
- beq _08126134
- ldr r0, [r4, 0x70]
- cmp r0, 0
- beq _08126134
- movs r0, 0x1
- b _08126136
-_08126134:
- movs r0, 0
-_08126136:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812611C
-
- thumb_func_start sub_812613C
-sub_812613C: @ 812613C
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _0812615C @ =gUnknown_02039288
- adds r0, r4, 0
- bl sub_81260EC
-_08126148:
- adds r0, r4, 0
- bl sub_812611C
- cmp r0, 0
- bne _08126148
- ldr r0, [r4, 0x6C]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812615C: .4byte gUnknown_02039288
- thumb_func_end sub_812613C
-
- thumb_func_start sub_8126160
-sub_8126160: @ 8126160
- ldr r1, _08126168 @ =gUnknown_02039288
- str r0, [r1, 0x6C]
- bx lr
- .align 2, 0
-_08126168: .4byte gUnknown_02039288
- thumb_func_end sub_8126160
-
- thumb_func_start sub_812616C
-sub_812616C: @ 812616C
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0
- movs r2, 0
- cmp r3, r1
- bcs _08126184
-_08126178:
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r3, r0
- adds r2, 0x1
- cmp r2, r1
- bcc _08126178
-_08126184:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812616C
-
- thumb_func_start sub_812618C
-sub_812618C: @ 812618C
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end sub_812618C
-
- thumb_func_start sub_81261A4
-sub_81261A4: @ 81261A4
- strb r1, [r0]
- lsrs r2, r1, 8
- strb r2, [r0, 0x1]
- lsrs r2, r1, 16
- strb r2, [r0, 0x2]
- lsrs r1, 24
- strb r1, [r0, 0x3]
- bx lr
- thumb_func_end sub_81261A4
-
thumb_func_start unref_sub_81261B4
unref_sub_81261B4: @ 81261B4
push {r4-r7,lr}
@@ -257,7 +82,7 @@ unref_sub_812620C: @ 812620C
adds r1, r5
subs r1, r4
adds r0, r4, 0
- bl sub_8041174
+ bl CalcCRC16
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -544,7 +369,7 @@ sub_8126438: @ 8126438
mov r7, r8
push {r7}
adds r7, r0, 0
- bl sub_80B4940
+ bl IsEnigmaBerryValid
mov r8, r0
adds r0, r7, 0
bl ScriptReadWord
@@ -560,7 +385,7 @@ sub_8126438: @ 8126438
movs r2, 0x7
bl StringCopyN
adds r0, r4, 0
- bl sub_80B48A8
+ bl SetEnigmaBerry
ldr r4, _0812648C @ =gStringVar2
adds r0, r4, 0
adds r1, r5, 0
@@ -597,7 +422,7 @@ _081264B8:
bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r7, 0x6C]
- bl sub_80B4940
+ bl IsEnigmaBerryValid
cmp r0, 0x1
bne _081264E0
ldr r0, _081264DC @ =0x0000402d
@@ -702,7 +527,7 @@ sub_8126524: @ 8126524
sub_812658C: @ 812658C
push {r4,lr}
adds r4, r0, 0
- bl sub_80690F0
+ bl EnableNationalPokedex
ldr r0, _081265A8 @ =gStringVar4
ldr r1, _081265AC @ =gOtherText_DexUpgraded
bl StringExpandPlaceholders
@@ -914,7 +739,7 @@ _08126750: .4byte gOtherText_NewTrainerInHoenn
sub_8126754: @ 8126754
push {r4,lr}
adds r4, r0, 0
- bl sub_80691BC
+ bl EnableResetRTC
ldr r0, _08126770 @ =gStringVar4
ldr r1, _08126774 @ =gSystemText_ClockAdjustmentUsable
bl StringExpandPlaceholders
@@ -987,7 +812,7 @@ sub_81267C0: @ 81267C0
adds r1, r0
subs r1, r4
adds r0, r4, 0
- bl sub_8041174
+ bl CalcCRC16
lsls r0, 16
lsrs r0, 16
cmp r5, r0
diff --git a/asm/name_string_util.s b/asm/name_string_util.s
new file mode 100644
index 000000000..3fcfd89d9
--- /dev/null
+++ b/asm/name_string_util.s
@@ -0,0 +1,76 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start PadNameString
+PadNameString: @ 814A518
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ bl StripExtCtrlCodes
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r5, 0xFC
+ bne _0814A556
+ cmp r1, 0x5
+ bhi _0814A55A
+ movs r3, 0xFC
+ movs r2, 0x7
+_0814A53A:
+ adds r0, r4, r1
+ strb r3, [r0]
+ strb r2, [r0, 0x1]
+ adds r0, r1, 0x2
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bls _0814A53A
+ b _0814A55A
+_0814A54C:
+ adds r0, r4, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0814A556:
+ cmp r1, 0x5
+ bls _0814A54C
+_0814A55A:
+ adds r1, r4, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PadNameString
+
+ thumb_func_start SanitizeNameString
+SanitizeNameString: @ 814A568
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _0814A582
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _0814A588
+_0814A582:
+ adds r0, r4, 0
+ bl StripExtCtrlCodes
+_0814A588:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SanitizeNameString
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 121b44790..76ee536c7 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -2846,7 +2846,7 @@ sub_80B6EFC: @ 80B6EFC
str r2, [sp, 0x4]
movs r2, 0x34
movs r3, 0x18
- bl sub_809D2FC
+ bl CreateMonIcon
lsls r0, 24
lsrs r0, 24
ldr r2, _080B6F40 @ =gSprites
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 8f1d9d5b7..0edec1623 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -71,7 +71,7 @@ sub_806AF4C: @ 806AF4C
lsrs r3, 24
cmp r1, 0xFF
beq _0806AF64
- ldr r0, _0806AF84 @ =gUnknown_020239F8
+ ldr r0, _0806AF84 @ =gBattleTypeFlags
strh r1, [r0]
_0806AF64:
ldr r0, _0806AF88 @ =0x0201b000
@@ -90,7 +90,7 @@ _0806AF64:
pop {r0}
bx r0
.align 2, 0
-_0806AF84: .4byte gUnknown_020239F8
+_0806AF84: .4byte gBattleTypeFlags
_0806AF88: .4byte 0x0201b000
thumb_func_end sub_806AF4C
@@ -185,7 +185,7 @@ _0806B020:
muls r2, r3
ldr r3, _0806B050 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _0806B114
.align 2, 0
_0806B048: .4byte 0x00000266
@@ -199,14 +199,14 @@ _0806B054:
adds r1, r4, r0
b _0806B0E0
_0806B060:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _0806B0D8
_0806B066:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -233,10 +233,10 @@ _0806B07A:
.align 2, 0
_0806B0A0: .4byte 0x00000266
_0806B0A4:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _0806B0D8
_0806B0AA:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _0806B0B8 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -245,7 +245,7 @@ _0806B0AA:
.align 2, 0
_0806B0B8: .4byte 0x0201b000
_0806B0BC:
- bl sub_806E53C
+ bl PartyMenuTryPrintMonsHP
b _0806B0D8
_0806B0C2:
bl nullsub_13
@@ -257,7 +257,7 @@ _0806B0C2:
.align 2, 0
_0806B0D0: .4byte 0x0201b000
_0806B0D4:
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
_0806B0D8:
ldr r1, _0806B0E8 @ =0x0201b000
movs r2, 0x99
@@ -774,10 +774,10 @@ _0806B520: .4byte REG_BG3VOFS
_0806B524: .4byte 0x0000ffff
thumb_func_end sub_806B4A8
- thumb_func_start sub_806B528
-sub_806B528: @ 806B528
+ thumb_func_start IsLinkDoubleBattle
+IsLinkDoubleBattle: @ 806B528
push {lr}
- ldr r0, _0806B53C @ =gUnknown_020239F8
+ ldr r0, _0806B53C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x4B
ands r0, r1
@@ -786,13 +786,13 @@ sub_806B528: @ 806B528
movs r0, 0
b _0806B542
.align 2, 0
-_0806B53C: .4byte gUnknown_020239F8
+_0806B53C: .4byte gBattleTypeFlags
_0806B540:
movs r0, 0x1
_0806B542:
pop {r1}
bx r1
- thumb_func_end sub_806B528
+ thumb_func_end IsLinkDoubleBattle
thumb_func_start sub_806B548
sub_806B548: @ 806B548
@@ -833,7 +833,7 @@ sub_806B58C: @ 806B58C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -844,7 +844,7 @@ sub_806B58C: @ 806B58C
.align 2, 0
_0806B5A4: .4byte gUnknown_0202E8FA
_0806B5A8:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -909,7 +909,7 @@ _0806B628:
movs r1, 0
b _0806B8A8
_0806B638:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B666
@@ -932,7 +932,7 @@ _0806B660:
ldrb r1, [r4, 0x3]
b _0806B8BC
_0806B666:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -954,7 +954,7 @@ _0806B684:
movs r1, 0x1
b _0806B8A8
_0806B694:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B6C2
@@ -977,7 +977,7 @@ _0806B6BC:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B6C2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1021,7 +1021,7 @@ _0806B714:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B71A:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B74A
@@ -1044,7 +1044,7 @@ _0806B744:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B74A:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1088,7 +1088,7 @@ _0806B79C:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B7A2:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B7D2
@@ -1112,7 +1112,7 @@ _0806B7CC:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B7D2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1159,7 +1159,7 @@ _0806B82C:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B832:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B84C
@@ -1171,7 +1171,7 @@ _0806B832:
.align 2, 0
_0806B848: .4byte gPlayerPartyCount
_0806B84C:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1714,7 +1714,7 @@ sub_806BC3C: @ 806BC3C
lsls r5, 24
lsrs r5, 24
ldr r6, _0806BCB0 @ =gUnknown_08376918
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, 2
lsls r0, 24
lsrs r0, 24
@@ -1861,7 +1861,7 @@ sub_806BD58: @ 806BD58
lsls r4, 24
lsrs r4, 24
ldr r0, _0806BD7C @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2176,8 +2176,8 @@ sub_806BF74: @ 806BF74
mov r0, r9
adds r1, r5, 0
movs r2, 0
- bl sub_806DA44
- bl sub_806B528
+ bl UpdateMonIconFrame_806DA44
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2328,7 +2328,7 @@ _0806C0CC: .4byte 0x0201b000
_0806C0D0: .4byte 0x00000261
_0806C0D4: .4byte gUnknown_083768B8
_0806C0D8:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r7, r0, 24
cmp r5, 0x5
@@ -2436,7 +2436,7 @@ _0806C1A4:
lsrs r1, 24
mov r0, r9
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r5, r0
@@ -3082,7 +3082,7 @@ sub_806C658: @ 806C658
mov r0, r8
adds r1, r6, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r6, 0x5
bhi _0806C6A8
lsls r0, r6, 1
@@ -3321,7 +3321,7 @@ _0806C84A:
lsrs r1, 24
mov r0, r8
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r3, 0x2E
ldrsh r0, [r4, r3]
cmp r6, r0
@@ -3362,7 +3362,7 @@ sub_806C890: @ 806C890
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r4, 0x5
bhi _0806C8DC
lsls r0, r4, 1
@@ -3430,7 +3430,7 @@ sub_806C92C: @ 806C92C
ldrh r0, [r1, 0x30]
lsls r0, 24
lsrs r4, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806C96A
@@ -3606,7 +3606,7 @@ sub_806CA60: @ 806CA60
movs r1, 0
bl CreateTask
ldr r0, _0806CAE8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
strb r0, [r5, 0x1]
ldrb r1, [r5, 0x1]
adds r0, r4, 0
@@ -4020,11 +4020,11 @@ _0806CDCC:
ldr r4, _0806CE1C @ =0x02001000
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x3]
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x4]
ldrb r3, [r4, 0x5]
cmp r3, 0
@@ -4515,12 +4515,12 @@ sub_806D198: @ 806D198
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
ldrb r2, [r4, 0x4]
- bl sub_806DE50
+ bl SetMonIconSpriteId_maybe
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
ldrb r2, [r4, 0x3]
- bl sub_806DE50
- bl battle_type_is_double
+ bl SetMonIconSpriteId_maybe
+ bl IsDoubleBattle
ldr r5, _0806D368 @ =gSprites
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
@@ -4541,7 +4541,7 @@ sub_806D198: @ 806D198
movs r1, 0
mov r8, r1
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
adds r3, r1
@@ -4580,9 +4580,9 @@ sub_806D198: @ 806D198
adds r1, r5
mov r9, r1
add r0, r9
- ldr r7, _0806D370 @ =sub_806DA38
+ ldr r7, _0806D370 @ =UpdateMonIconFrame_806DA38
str r7, [r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4599,7 +4599,7 @@ sub_806D198: @ 806D198
adds r2, r6
ldrb r0, [r2]
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4645,14 +4645,14 @@ sub_806D198: @ 806D198
ldrh r1, [r1, 0x2E]
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r9
- ldr r0, _0806D374 @ =sub_806DA0C
+ ldr r0, _0806D374 @ =UpdateMonIconFrame_806DA0C
str r0, [r1]
ldrb r0, [r4, 0x5]
movs r6, 0x64
@@ -4667,17 +4667,17 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
@@ -4687,23 +4687,23 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
bl nullsub_12
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
mov r0, r10
bl sub_806CC74
pop {r3-r5}
@@ -4717,8 +4717,8 @@ sub_806D198: @ 806D198
_0806D364: .4byte 0x02001000
_0806D368: .4byte gSprites
_0806D36C: .4byte gUnknown_08376678
-_0806D370: .4byte sub_806DA38
-_0806D374: .4byte sub_806DA0C
+_0806D370: .4byte UpdateMonIconFrame_806DA38
+_0806D374: .4byte UpdateMonIconFrame_806DA0C
_0806D378: .4byte gPlayerParty
thumb_func_end sub_806D198
@@ -4726,7 +4726,7 @@ _0806D378: .4byte gPlayerParty
sub_806D37C: @ 806D37C
push {r4,lr}
adds r4, r0, 0
- bl sub_809D638
+ bl UpdateMonIconFrame
ldrh r2, [r4, 0x24]
movs r0, 0x24
ldrsh r1, [r4, r0]
@@ -4740,11 +4740,11 @@ sub_806D37C: @ 806D37C
movs r1, 0
strh r0, [r4, 0x2E]
strh r1, [r4, 0x32]
- ldr r0, _0806D3A4 @ =sub_806DA38
+ ldr r0, _0806D3A4 @ =UpdateMonIconFrame_806DA38
str r0, [r4, 0x1C]
b _0806D3AE
.align 2, 0
-_0806D3A4: .4byte sub_806DA38
+_0806D3A4: .4byte UpdateMonIconFrame_806DA38
_0806D3A8:
ldrh r0, [r4, 0x2E]
adds r0, r2, r0
@@ -4890,7 +4890,7 @@ sub_806D4AC: @ 806D4AC
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
ldr r2, _0806D4FC @ =gSprites
@@ -4932,7 +4932,7 @@ sub_806D50C: @ 806D50C
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
ldr r2, _0806D534 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -5036,7 +5036,7 @@ sub_806D5B8: @ 806D5B8
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D658 @ =gUnknown_08376948
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5047,7 +5047,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5057,7 +5057,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5067,7 +5067,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5118,7 +5118,7 @@ sub_806D668: @ 806D668
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D708 @ =gUnknown_08376978
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5129,7 +5129,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5139,7 +5139,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5149,7 +5149,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5298,4 +5298,6553 @@ _0806D7F0: .4byte 0x06007180
_0806D7F4: .4byte gStatusPal_Icons
thumb_func_end sub_806D718
+ thumb_func_start SetMonIconAnimByHP
+SetMonIconAnimByHP: @ 806D7F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r5, r4
+ beq _0806D830
+ movs r2, 0x1
+ cmp r0, 0x3
+ beq _0806D830
+ movs r2, 0x2
+ cmp r0, 0x2
+ beq _0806D830
+ movs r2, 0x4
+ cmp r0, 0x1
+ bne _0806D830
+ movs r2, 0x3
+_0806D830:
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _0806D848 @ =gSprites
+ adds r0, r1
+ adds r1, r2, 0
+ bl sub_809D824
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D848: .4byte gSprites
+ thumb_func_end SetMonIconAnimByHP
+
+ thumb_func_start SetMonIconAnim
+SetMonIconAnim: @ 806D84C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl SetMonIconAnimByHP
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end SetMonIconAnim
+
+ thumb_func_start CreatePartyMenuMonIcon
+CreatePartyMenuMonIcon: @ 806D880
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806D904 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ mov r9, r0
+ ldrb r1, [r1, 0x1]
+ mov r10, r1
+ mov r0, r8
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _0806D908 @ =sub_809D62C
+ movs r2, 0x5
+ str r2, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ adds r0, r4, 0
+ mov r1, r8
+ bl SetMonIconAnim
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D904: .4byte gUnknown_08376678
+_0806D908: .4byte sub_809D62C
+ thumb_func_end CreatePartyMenuMonIcon
+
+ thumb_func_start TryCreatePartyMenuMonIcon
+TryCreatePartyMenuMonIcon: @ 806D90C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r8, r6
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806D95A
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D946
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+ b _0806D95A
+_0806D946:
+ bl IsDoubleBattle
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+_0806D95A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end TryCreatePartyMenuMonIcon
+
+ thumb_func_start unref_sub_806D964
+unref_sub_806D964: @ 806D964
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _0806D986
+_0806D96E:
+ movs r0, 0x64
+ adds r2, r4, 0
+ muls r2, r0
+ ldr r0, _0806D994 @ =gPlayerParty
+ adds r2, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl TryCreatePartyMenuMonIcon
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806D986:
+ ldr r0, _0806D998 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0806D96E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D994: .4byte gPlayerParty
+_0806D998: .4byte gPlayerPartyCount
+ thumb_func_end unref_sub_806D964
+
+ thumb_func_start CreateMonIcon_806D99C
+CreateMonIcon_806D99C: @ 806D99C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DA04 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, _0806DA08 @ =sub_809D62C
+ movs r4, 0x5
+ str r4, [sp]
+ mov r7, r8
+ ldr r4, [r7, 0x18]
+ str r4, [sp, 0x4]
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ ldrh r1, [r7, 0x10]
+ ldrh r2, [r7, 0x12]
+ adds r0, r4, 0
+ bl SetMonIconAnimByHP
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA04: .4byte gUnknown_08376678
+_0806DA08: .4byte sub_809D62C
+ thumb_func_end CreateMonIcon_806D99C
+
+ thumb_func_start UpdateMonIconFrame_806DA0C
+UpdateMonIconFrame_806DA0C: @ 806DA0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl UpdateMonIconFrame
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806DA32
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806DA30
+ ldr r0, _0806DA2C @ =0x0000fffd
+ strh r0, [r4, 0x26]
+ b _0806DA32
+ .align 2, 0
+_0806DA2C: .4byte 0x0000fffd
+_0806DA30:
+ strh r1, [r4, 0x26]
+_0806DA32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA0C
+
+ thumb_func_start UpdateMonIconFrame_806DA38
+UpdateMonIconFrame_806DA38: @ 806DA38
+ push {lr}
+ bl UpdateMonIconFrame
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA38
+
+ thumb_func_start UpdateMonIconFrame_806DA44
+UpdateMonIconFrame_806DA44: @ 806DA44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r1, 0x5
+ bhi _0806DA8E
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806DA7C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r2, r1, 2
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x2E]
+ cmp r4, 0
+ bne _0806DA84
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38
+ b _0806DA8C
+ .align 2, 0
+_0806DA7C: .4byte gSprites
+_0806DA80: .4byte UpdateMonIconFrame_806DA38
+_0806DA84:
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C
+_0806DA8C:
+ str r1, [r0]
+_0806DA8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA94: .4byte UpdateMonIconFrame_806DA0C
+ thumb_func_end UpdateMonIconFrame_806DA44
+
+ thumb_func_start LoadHeldItemIconGraphics
+LoadHeldItemIconGraphics: @ 806DA98
+ push {lr}
+ ldr r0, _0806DAAC @ =gUnknown_083765DC
+ bl LoadSpriteSheet
+ ldr r0, _0806DAB0 @ =gUnknown_083765E4
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DAAC: .4byte gUnknown_083765DC
+_0806DAB0: .4byte gUnknown_083765E4
+ thumb_func_end LoadHeldItemIconGraphics
+
+ thumb_func_start SpriteCB_HeldItemIcon
+SpriteCB_HeldItemIcon: @ 806DAB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806DAE4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _0806DAE8
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DB06
+ .align 2, 0
+_0806DAE4: .4byte gSprites
+_0806DAE8:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+_0806DB06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_HeldItemIcon
+
+ thumb_func_start CreateHeldItemIcon
+CreateHeldItemIcon: @ 806DB0C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0806DB84 @ =gSprites
+ mov r8, r0
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x43
+ ldrb r3, [r0]
+ ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xFA
+ movs r2, 0xAA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r0, r8
+ adds r5, r4, r0
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _0806DB8C @ =SpriteCB_HeldItemIcon
+ str r0, [r4]
+ strh r6, [r5, 0x3C]
+ adds r0, r5, 0
+ mov r1, r9
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DB84: .4byte gSprites
+_0806DB88: .4byte gSpriteTemplate_837660C
+_0806DB8C: .4byte SpriteCB_HeldItemIcon
+ thumb_func_end CreateHeldItemIcon
+
+ thumb_func_start CreateHeldItemIcons
+CreateHeldItemIcons: @ 806DB90
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ beq _0806DBA4
+ cmp r2, 0x1
+ beq _0806DBEC
+ b _0806DC28
+_0806DBA4:
+ movs r5, 0
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcs _0806DC28
+_0806DBAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DBE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DBD8
+ adds r0, r7, r5
+ ldrb r4, [r0]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DBD8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcc _0806DBAC
+ b _0806DC28
+ .align 2, 0
+_0806DBE8: .4byte gPlayerParty
+_0806DBEC:
+ movs r5, 0
+ b _0806DC22
+_0806DBF0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DC30 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DC1C
+ adds r0, r5, r7
+ ldrb r4, [r0, 0x6]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DC1C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0806DC22:
+ ldrb r0, [r6, 0x1]
+ cmp r5, r0
+ bcc _0806DBF0
+_0806DC28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DC30: .4byte gEnemyParty
+ thumb_func_end CreateHeldItemIcons
+
+ thumb_func_start CreateHeldItemIcons_806DC34
+CreateHeldItemIcons_806DC34: @ 806DC34
+ 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 r7, 0
+ ldr r0, _0806DCC8 @ =gSprites
+ mov r9, r0
+ movs r1, 0x1C
+ add r1, r9
+ mov r10, r1
+_0806DC50:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0806DCCC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806DCB0
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r1, r9
+ adds r6, r4, r1
+ movs r1, 0x4
+ strh r1, [r6, 0x24]
+ movs r1, 0xA
+ strh r1, [r6, 0x26]
+ strh r5, [r6, 0x3C]
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ add r1, r9
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ adds r1, r7, 0
+ bl SetHeldItemIconVisibility
+ add r4, r10
+ ldr r1, [r4]
+ adds r0, r6, 0
+ bl _call_via_r1
+_0806DCB0:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _0806DC50
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DCC8: .4byte gSprites
+_0806DCCC: .4byte gPlayerParty
+_0806DCD0: .4byte gSpriteTemplate_837660C
+ thumb_func_end CreateHeldItemIcons_806DC34
+
+ thumb_func_start CreateHeldItemIcon_806DCD4
+CreateHeldItemIcon_806DCD4: @ 806DCD4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r7, r2, 16
+ bl GetMonIconSpriteId_maybe
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806DD30 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ strh r4, [r5, 0x3C]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r6, [r0, 0x3C]
+ cmp r7, 0
+ bne _0806DD34
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DD5C
+ .align 2, 0
+_0806DD2C: .4byte gSpriteTemplate_837660C
+_0806DD30: .4byte gSprites
+_0806DD34:
+ adds r0, r7, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DD46
+ adds r0, r5, 0
+ movs r1, 0x1
+ b _0806DD4A
+_0806DD46:
+ adds r0, r5, 0
+ movs r1, 0
+_0806DD4A:
+ bl StartSpriteAnim
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0806DD5C:
+ ldr r2, _0806DD78 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DD78: .4byte gSprites
+ thumb_func_end CreateHeldItemIcon_806DCD4
+
+ thumb_func_start SpriteCB_HeldItemIcon_806DD7C
+SpriteCB_HeldItemIcon_806DD7C: @ 806DD7C
+ ldrh r2, [r0, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DD9C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ strh r2, [r0, 0x20]
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0806DD9C: .4byte gSprites
+ thumb_func_end SpriteCB_HeldItemIcon_806DD7C
+
+ thumb_func_start GetMonIconSpriteId_maybe
+GetMonIconSpriteId_maybe: @ 806DDA0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x5
+ bhi _0806DE38
+ lsls r0, 2
+ ldr r1, _0806DDB8 @ =_0806DDBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DDB8: .4byte _0806DDBC
+ .align 2, 0
+_0806DDBC:
+ .4byte _0806DE38
+ .4byte _0806DDD4
+ .4byte _0806DDE8
+ .4byte _0806DDFC
+ .4byte _0806DE10
+ .4byte _0806DE24
+_0806DDD4:
+ ldr r0, _0806DDE4 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ b _0806DE46
+ .align 2, 0
+_0806DDE4: .4byte gTasks
+_0806DDE8:
+ ldr r0, _0806DDF8 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ b _0806DE44
+ .align 2, 0
+_0806DDF8: .4byte gTasks
+_0806DDFC:
+ ldr r0, _0806DE0C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0806DE46
+ .align 2, 0
+_0806DE0C: .4byte gTasks
+_0806DE10:
+ ldr r0, _0806DE20 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ b _0806DE44
+ .align 2, 0
+_0806DE20: .4byte gTasks
+_0806DE24:
+ ldr r0, _0806DE34 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xC]
+ b _0806DE46
+ .align 2, 0
+_0806DE34: .4byte gTasks
+_0806DE38:
+ ldr r0, _0806DE4C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+_0806DE44:
+ lsrs r0, 8
+_0806DE46:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DE4C: .4byte gTasks
+ thumb_func_end GetMonIconSpriteId_maybe
+
+ thumb_func_start SetMonIconSpriteId_maybe
+SetMonIconSpriteId_maybe: @ 806DE50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r0, 0x5
+ bhi _0806DF24
+ lsls r0, 2
+ ldr r1, _0806DE6C @ =_0806DE70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DE6C: .4byte _0806DE70
+ .align 2, 0
+_0806DE70:
+ .4byte _0806DE88
+ .4byte _0806DEA0
+ .4byte _0806DEC0
+ .4byte _0806DED8
+ .4byte _0806DEF8
+ .4byte _0806DF10
+_0806DE88:
+ ldr r1, _0806DE9C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DE9C: .4byte gTasks
+_0806DEA0:
+ ldr r0, _0806DEB8 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ ldr r0, _0806DEBC @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DEB8: .4byte gTasks
+_0806DEBC: .4byte 0xffffff00
+_0806DEC0:
+ ldr r1, _0806DED4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DED4: .4byte gTasks
+_0806DED8:
+ ldr r0, _0806DEF0 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0806DEF4 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DEF0: .4byte gTasks
+_0806DEF4: .4byte 0xffffff00
+_0806DEF8:
+ ldr r1, _0806DF0C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xC]
+ b _0806DF24
+ .align 2, 0
+_0806DF0C: .4byte gTasks
+_0806DF10:
+ ldr r0, _0806DF2C @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ ldr r0, _0806DF30 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xC]
+_0806DF24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DF2C: .4byte gTasks
+_0806DF30: .4byte 0xffffff00
+ thumb_func_end SetMonIconSpriteId_maybe
+
+ thumb_func_start GetHeldItemIconSpriteIdByMon_maybe
+GetHeldItemIconSpriteIdByMon_maybe: @ 806DF34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806DF5C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DF5C: .4byte gSprites
+ thumb_func_end GetHeldItemIconSpriteIdByMon_maybe
+
+ thumb_func_start SetHeldItemIconVisibility
+SetHeldItemIconVisibility: @ 806DF60
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl GetHeldItemIconSpriteIdByMon_maybe
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0806DFA4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ bne _0806DFAC
+ ldr r1, _0806DFA8 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DFF6
+ .align 2, 0
+_0806DFA4: .4byte gPlayerParty
+_0806DFA8: .4byte gSprites
+_0806DFAC:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DFD8
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _0806DFD4 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0806DFE6
+ .align 2, 0
+_0806DFD4: .4byte gSprites
+_0806DFD8:
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r0, _0806DFFC @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+_0806DFE6:
+ bl StartSpriteAnim
+ adds r4, 0x3E
+ ldrb r1, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+_0806DFF6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DFFC: .4byte gSprites
+ thumb_func_end SetHeldItemIconVisibility
+
+ thumb_func_start box_print
+box_print: @ 806E000
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E040 @ =gTileBuffer
+ ldr r2, _0806E044 @ =0x01000100
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E04C @ =0x06014000
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E040: .4byte gTileBuffer
+_0806E044: .4byte 0x01000100
+_0806E048: .4byte gWindowConfig_81E6CAC
+_0806E04C: .4byte 0x06014000
+ thumb_func_end box_print
+
+ thumb_func_start PrintPartyMenuMonNickname
+PrintPartyMenuMonNickname: @ 806E050
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, sp
+ bl GetMonNickname
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl box_print
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PrintPartyMenuMonNickname
+
+ thumb_func_start TryPrintPartyMenuMonNickname
+TryPrintPartyMenuMonNickname: @ 806E07C
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E0BC
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E0AA
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+ b _0806E0BC
+_0806E0AA:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+_0806E0BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end TryPrintPartyMenuMonNickname
+
+ thumb_func_start PrintPartyMenuMonNicknames
+PrintPartyMenuMonNicknames: @ 806E0C4
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E0E8 @ =gPlayerParty
+_0806E0CC:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl TryPrintPartyMenuMonNickname
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E0CC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E0E8: .4byte gPlayerParty
+ thumb_func_end PrintPartyMenuMonNicknames
+
+ thumb_func_start GetMonNickname
+GetMonNickname: @ 806E0EC
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonNickname
+
+ thumb_func_start PartyMenuPutStatusTilemap
+PartyMenuPutStatusTilemap: @ 806E104
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0806E15C @ =gUnknown_08376738
+ lsrs r0, 22
+ lsls r3, r1, 1
+ adds r3, r1
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r4
+ ldrb r1, [r0]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E160 @ =0x0600f000
+ adds r4, r1, r0
+ lsls r2, 26
+ lsrs r2, 24
+ movs r3, 0
+ movs r0, 0xC6
+ lsls r0, 1
+ adds r2, r0
+ ldr r0, _0806E164 @ =0xffffb000
+ adds r5, r0, 0
+_0806E142:
+ lsls r0, r3, 1
+ adds r0, r4
+ adds r1, r2, r3
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E142
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E15C: .4byte gUnknown_08376738
+_0806E160: .4byte 0x0600f000
+_0806E164: .4byte 0xffffb000
+ thumb_func_end PartyMenuPutStatusTilemap
+
+ thumb_func_start PartyMenuClearLevelStatusTilemap
+PartyMenuClearLevelStatusTilemap: @ 806E168
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E17E
+ movs r3, 0x2
+ b _0806E186
+_0806E17E:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0806E186:
+ ldr r1, _0806E1C8 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ ldrb r1, [r2]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E1CC @ =0x0600f000
+ adds r1, r0
+ movs r3, 0
+ movs r2, 0
+_0806E1B0:
+ lsls r0, r3, 1
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E1B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E1C8: .4byte gUnknown_08376738
+_0806E1CC: .4byte 0x0600f000
+ thumb_func_end PartyMenuClearLevelStatusTilemap
+
+ thumb_func_start PartyMenuWriteTilemap
+PartyMenuWriteTilemap: @ 806E1D0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 19
+ adds r1, r2
+ lsls r1, 1
+ ldr r2, _0806E1F0 @ =0x0600f000
+ adds r1, r2
+ movs r2, 0x86
+ lsls r2, 1
+ adds r0, r2
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0806E1F0: .4byte 0x0600f000
+ thumb_func_end PartyMenuWriteTilemap
+
+ thumb_func_start PartyMenuDoPrintLevel
+PartyMenuDoPrintLevel: @ 806E1F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r3, _0806E278 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x40
+ bl PartyMenuWriteTilemap
+ ldr r6, _0806E27C @ =gStringVar1
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x12
+ strb r0, [r6, 0x1]
+ movs r0, 0x8
+ strb r0, [r6, 0x2]
+ adds r0, r6, 0x3
+ adds r1, r5, 0
+ bl ConvertIntToDecimalString
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E280 @ =gUnknown_02039460
+ ldr r2, _0806E284 @ =0x01000020
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E28C @ =0xffffff00
+ adds r1, r5, r2
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E290 @ =0x06014200
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E278: .4byte gUnknown_08376738
+_0806E27C: .4byte gStringVar1
+_0806E280: .4byte gUnknown_02039460
+_0806E284: .4byte 0x01000020
+_0806E288: .4byte gWindowConfig_81E6CAC
+_0806E28C: .4byte 0xffffff00
+_0806E290: .4byte 0x06014200
+ thumb_func_end PartyMenuDoPrintLevel
+
+ thumb_func_start PartyMenuPrintLevel
+PartyMenuPrintLevel: @ 806E294
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x38
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl PartyMenuDoPrintLevel
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintLevel
+
+ thumb_func_start PartyMenuPrintMonLevelOrStatus
+PartyMenuPrintMonLevelOrStatus: @ 806E2C0
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E32E
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E32E
+ adds r0, r5, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E2FA
+ movs r6, 0x2
+ b _0806E302
+_0806E2FA:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0806E302:
+ cmp r4, 0
+ beq _0806E31A
+ cmp r4, 0x6
+ beq _0806E31A
+ subs r2, r4, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuPutStatusTilemap
+ b _0806E324
+_0806E31A:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPrintLevel
+_0806E324:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPutNicknameTilemap
+_0806E32E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintMonLevelOrStatus
+
+ thumb_func_start PartyMenuPrintMonsLevelOrStatus
+PartyMenuPrintMonsLevelOrStatus: @ 806E334
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E358 @ =gPlayerParty
+_0806E33C:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuPrintMonLevelOrStatus
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E33C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E358: .4byte gPlayerParty
+ thumb_func_end PartyMenuPrintMonsLevelOrStatus
+
+ thumb_func_start PartyMenuDoPutNicknameTilemap
+PartyMenuDoPutNicknameTilemap: @ 806E35C
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r1, r4, 0
+ bl sub_8040D8C
+ cmp r0, 0
+ bne _0806E3BA
+ ldr r2, _0806E3A4 @ =gUnknown_08376738
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r7, 0
+ beq _0806E3A8
+ cmp r7, 0xFE
+ beq _0806E3B2
+ b _0806E3BA
+ .align 2, 0
+_0806E3A4: .4byte gUnknown_08376738
+_0806E3A8:
+ movs r0, 0x42
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+ b _0806E3BA
+_0806E3B2:
+ movs r0, 0x44
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+_0806E3BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDoPutNicknameTilemap
+
+ thumb_func_start PartyMenuPutNicknameTilemap
+PartyMenuPutNicknameTilemap: @ 806E3C0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0806E41C @ =gStringVar1
+ mov r9, r0
+ adds r0, r5, 0
+ mov r1, r9
+ bl GetMonNickname
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl GetMonGender
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl PartyMenuDoPutNicknameTilemap
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E41C: .4byte gStringVar1
+ thumb_func_end PartyMenuPutNicknameTilemap
+
+ thumb_func_start PartyMenuDoPrintHP
+PartyMenuDoPrintHP: @ 806E420
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r1, r2, 0
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r2, _0806E48C @ =gStringVar1
+ adds r0, r2, 0
+ movs r2, 0xF
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r5, 0
+ movs r2, 0x23
+ movs r3, 0x1
+ bl sub_8072C14
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E490 @ =gUnknown_02039460
+ ldr r2, _0806E494 @ =0x01000040
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E49C @ =0xffffff00
+ adds r1, r5, r2
+ ldr r2, _0806E48C @ =gStringVar1
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E4A0 @ =0x06014300
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E48C: .4byte gStringVar1
+_0806E490: .4byte gUnknown_02039460
+_0806E494: .4byte 0x01000040
+_0806E498: .4byte gWindowConfig_81E6CAC
+_0806E49C: .4byte 0xffffff00
+_0806E4A0: .4byte 0x06014300
+ thumb_func_end PartyMenuDoPrintHP
+
+ thumb_func_start PartyMenuPrintHP
+PartyMenuPrintHP: @ 806E4A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintHP
+
+ thumb_func_start PartyMenuTryPrintHP
+PartyMenuTryPrintHP: @ 806E4E8
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E534
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E534
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E522
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+ b _0806E534
+_0806E522:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+_0806E534:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryPrintHP
+
+ thumb_func_start PartyMenuTryPrintMonsHP
+PartyMenuTryPrintMonsHP: @ 806E53C
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E560 @ =gPlayerParty
+_0806E544:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryPrintHP
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E544
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E560: .4byte gPlayerParty
+ thumb_func_end PartyMenuTryPrintMonsHP
+
+ thumb_func_start unref_sub_806E564
+unref_sub_806E564: @ 806E564
+ bx lr
+ thumb_func_end unref_sub_806E564
+
+ thumb_func_start unref_sub_806E568
+unref_sub_806E568: @ 806E568
+ bx lr
+ thumb_func_end unref_sub_806E568
+
+ thumb_func_start nullsub_12
+nullsub_12: @ 806E56C
+ bx lr
+ thumb_func_end nullsub_12
+
+ thumb_func_start nullsub_13
+nullsub_13: @ 806E570
+ bx lr
+ thumb_func_end nullsub_13
+
+ thumb_func_start PartyMenuDoDrawHPBar
+PartyMenuDoDrawHPBar: @ 806E574
+ push {r4-r6,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _0806E624 @ =0xffff8000
+ str r0, [sp, 0x14]
+ str r3, [sp]
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r3, 16
+ asrs r3, 16
+ adds r0, r2, 0
+ adds r1, r3, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ cmp r3, 0x2
+ bls _0806E5BE
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5BE:
+ cmp r3, 0x2
+ bne _0806E5D2
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x5
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5D2:
+ cmp r4, 0x1
+ bhi _0806E5E6
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x6
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5E6:
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp, 0x10]
+ ldr r2, _0806E628 @ =gUnknown_08376858
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r4, [r1]
+ add r1, sp, 0x14
+ mov r0, sp
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80460C8
+ subs r4, 0x4
+ ldr r1, _0806E62C @ =0x00003109
+ adds r0, r1, 0
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x10]
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E624: .4byte 0xffff8000
+_0806E628: .4byte gUnknown_08376858
+_0806E62C: .4byte 0x00003109
+ thumb_func_end PartyMenuDoDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBar
+PartyMenuDrawHPBar: @ 806E630
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoDrawHPBar
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDrawHPBar
+
+ thumb_func_start PartyMenuTryDrawHPBar
+PartyMenuTryDrawHPBar: @ 806E674
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E6C0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E6C0
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E6AE
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+ b _0806E6C0
+_0806E6AE:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+_0806E6C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBars
+PartyMenuDrawHPBars: @ 806E6C8
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E6EC @ =gPlayerParty
+_0806E6D0:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryDrawHPBar
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E6D0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E6EC: .4byte gPlayerParty
+ thumb_func_end PartyMenuDrawHPBars
+
+ thumb_func_start sub_806E6F0
+sub_806E6F0: @ 806E6F0
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E6F0
+
+ thumb_func_start sub_806E720
+sub_806E720: @ 806E720
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, r3
+ ldrb r4, [r0]
+ lsls r4, 25
+ movs r3, 0x80
+ lsls r3, 18
+ adds r4, r3
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1E
+ subs r3, r0
+ strb r3, [r1]
+ movs r0, 0x14
+ subs r0, r4
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E720
+
+ thumb_func_start sub_806E750
+sub_806E750: @ 806E750
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r4, r1, 0
+ mov r9, r2
+ adds r6, r3, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x9
+ add r0, sp
+ mov r8, r0
+ adds r0, r5, 0
+ add r1, sp, 0x8
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_806E720
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r5, 3
+ adds r5, r4
+ ldrb r2, [r5, 0x1]
+ ldrb r3, [r5]
+ mov r4, r9
+ str r4, [sp]
+ ldr r4, [r5, 0x4]
+ str r4, [sp, 0x4]
+ bl sub_8089C50
+ add r0, sp, 0x8
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ ldrb r2, [r0]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r5]
+ str r6, [sp]
+ ldrb r0, [r5, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E750
+
+ thumb_func_start sub_806E7D0
+sub_806E7D0: @ 806E7D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ adds r5, 0x1
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_806E720
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ lsls r4, 3
+ adds r4, r6
+ ldrb r2, [r4, 0x1]
+ adds r2, r0, r2
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, r1, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E7D0
+
+ thumb_func_start sub_806E81C
+sub_806E81C: @ 806E81C
+ lsls r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsrs r0, 21
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_806E81C
+
+ .section .text_806E884
+
+
+
+ thumb_func_start sub_806E8D0
+sub_806E8D0: @ 806E8D0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r4, _0806E8FC @ =0x0201c000
+ str r2, [r4, 0x10]
+ strb r0, [r4, 0x4]
+ bl sub_806CA38
+ strb r0, [r4, 0x5]
+ strh r5, [r4, 0x6]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806E900 @ =gPlayerParty
+ adds r0, r1
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E8FC: .4byte 0x0201c000
+_0806E900: .4byte gPlayerParty
+ thumb_func_end sub_806E8D0
+
+ thumb_func_start PartyMenuUpdateMonHeldItem
+PartyMenuUpdateMonHeldItem: @ 806E904
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E93C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2BC4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0806E930
+ movs r0, 0x1
+ b _0806E958
+_0806E930:
+ ldr r1, _0806E938 @ =gUnknown_0202E8F4
+ movs r0, 0x2
+ b _0806E940
+ .align 2, 0
+_0806E938: .4byte gUnknown_0202E8F4
+_0806E93C:
+ ldr r1, _0806E960 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+_0806E940:
+ strb r0, [r1]
+ mov r0, sp
+ strb r4, [r0]
+ mov r1, sp
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x1]
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0
+_0806E958:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806E960: .4byte gUnknown_0202E8F4
+ thumb_func_end PartyMenuUpdateMonHeldItem
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem
+PartyMenuTryGiveMonHeldItem: @ 806E964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ mov r9, r5
+ ldr r2, _0806E9D4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r2
+ ldr r1, _0806E9D8 @ =TaskDummy
+ str r1, [r6]
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_806E8D0
+ ldr r4, _0806E9DC @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r7, r2, 0
+ ldr r1, _0806E9E0 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0806E9E4 @ =gUnknown_0202E8F8
+ mov r10, r0
+ movs r0, 0
+ mov r1, r10
+ strh r0, [r1]
+ cmp r2, 0
+ beq _0806EA44
+ adds r0, r2, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E9F0
+ ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EA78
+ .align 2, 0
+_0806E9D4: .4byte gTasks
+_0806E9D8: .4byte TaskDummy
+_0806E9DC: .4byte 0x0201c000
+_0806E9E0: .4byte gUnknown_0202E8F4
+_0806E9E4: .4byte gUnknown_0202E8F8
+_0806E9E8: .4byte gOtherText_MailMustBeRemoved
+_0806E9EC: .4byte party_menu_link_mon_held_item_object
+_0806E9F0:
+ ldr r0, [r4]
+ ldr r1, _0806EA30 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EA34 @ =gStringVar2
+ adds r0, r7, 0
+ bl CopyItemName
+ ldr r4, _0806EA38 @ =gStringVar4
+ ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EA40 @ =Task_ConfirmGiveHeldItem
+ movs r1, 0x5
+ bl CreateTask
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EA78
+ mov r0, r10
+ strh r7, [r0]
+ b _0806EA78
+ .align 2, 0
+_0806EA30: .4byte gStringVar1
+_0806EA34: .4byte gStringVar2
+_0806EA38: .4byte gStringVar4
+_0806EA3C: .4byte gOtherText_AlreadyHolding
+_0806EA40: .4byte Task_ConfirmGiveHeldItem
+_0806EA44:
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl PartyMenuUpdateMonHeldItem
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EA66
+ mov r1, r8
+ str r1, [r6]
+ b _0806EA78
+_0806EA66:
+ ldrb r0, [r4, 0x5]
+ mov r1, r9
+ movs r2, 0x1
+ bl DisplayGiveHeldItemMessage
+ ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806EA78:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EA88: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem
+
+ thumb_func_start party_menu_link_mon_held_item_object
+party_menu_link_mon_held_item_object: @ 806EA8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806EAC0 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EABA
+ ldr r4, _0806EAC4 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r2, _0806EAC8 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+_0806EABA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EAC0: .4byte gUnknown_0202E8F6
+_0806EAC4: .4byte 0x0201c000
+_0806EAC8: .4byte gTasks
+ thumb_func_end party_menu_link_mon_held_item_object
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem_806EACC
+PartyMenuTryGiveMonHeldItem_806EACC: @ 806EACC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EB74
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806EB30 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EB5C
+ ldr r0, [r4]
+ ldrh r1, [r4, 0x6]
+ bl PartyMenuUpdateMonHeldItem
+ ldrh r0, [r4, 0x6]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EB34
+ ldrb r0, [r4, 0x5]
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl DisplayTakeHeldItemMessage
+ b _0806EB9A
+ .align 2, 0
+_0806EB30: .4byte 0x0201c000
+_0806EB34:
+ ldrh r0, [r4, 0x6]
+ ldr r1, _0806EB50 @ =gStringVar1
+ bl CopyItemName
+ ldr r4, _0806EB54 @ =gStringVar4
+ ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ b _0806EB9A
+ .align 2, 0
+_0806EB50: .4byte gStringVar1
+_0806EB54: .4byte gStringVar4
+_0806EB58: .4byte gOtherText_TakenAndReplaced
+_0806EB5C:
+ ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ b _0806EB9A
+ .align 2, 0
+_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EB74:
+ cmp r1, 0x1
+ beq _0806EB80
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EBA8
+_0806EB80:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EB8E
+ movs r0, 0x5
+ bl PlaySE
+_0806EB8E:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+_0806EB9A:
+ ldr r0, _0806EBB0 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+_0806EBA8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBB0: .4byte gTasks
+_0806EBB4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem_806EACC
+
+ thumb_func_start Task_ConfirmGiveHeldItem
+Task_ConfirmGiveHeldItem: @ 806EBB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EBE4 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EBDE
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EBE8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBEC @ =PartyMenuTryGiveMonHeldItem_806EACC
+ str r0, [r1]
+_0806EBDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBE4: .4byte gUnknown_0202E8F6
+_0806EBE8: .4byte gTasks
+_0806EBEC: .4byte PartyMenuTryGiveMonHeldItem_806EACC
+ thumb_func_end Task_ConfirmGiveHeldItem
+
+ thumb_func_start DisplayGiveHeldItemMessage
+DisplayGiveHeldItemMessage: @ 806EBF0
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EC30 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0806EC34 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EC38 @ =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, _0806EC3C @ =gStringVar4
+ ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EC30: .4byte gPlayerParty
+_0806EC34: .4byte gStringVar1
+_0806EC38: .4byte gStringVar2
+_0806EC3C: .4byte gStringVar4
+_0806EC40: .4byte gOtherText_WasGivenToHold
+ thumb_func_end DisplayGiveHeldItemMessage
+
+ thumb_func_start PartyMenuTryGiveMonMail
+PartyMenuTryGiveMonMail: @ 806EC44
+ push {r4,r5,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ECA0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ECA4 @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ECA8 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ ldr r2, _0806ECAC @ =gUnknown_0202E8F4
+ movs r1, 0
+ strb r1, [r2]
+ movs r1, 0xF8
+ lsls r1, 6
+ adds r2, r5, r1
+ ldrb r1, [r2]
+ adds r1, 0x6
+ ldrb r2, [r2, 0x2]
+ adds r1, r2
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 2
+ ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C
+ adds r4, r2, r1
+ cmp r0, 0
+ beq _0806ECBC
+ ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806ECDA
+ .align 2, 0
+_0806ECA0: .4byte gTasks
+_0806ECA4: .4byte TaskDummy
+_0806ECA8: .4byte 0x0201c000
+_0806ECAC: .4byte gUnknown_0202E8F4
+_0806ECB0: .4byte gSaveBlock1 + 0x2B4C
+_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail
+_0806ECB8: .4byte party_menu_link_mon_held_item_object
+_0806ECBC:
+ ldr r0, [r5]
+ adds r1, r4, 0
+ bl sub_80A2D88
+ adds r0, r4, 0
+ bl sub_80A2B40
+ ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806ECDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806ECE0: .4byte gOtherText_MailTransferredMailbox
+_0806ECE4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonMail
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem_806ECE8
+PartyMenuTryGiveMonHeldItem_806ECE8: @ 806ECE8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ED38 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ED3C @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ED40 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ cmp r4, 0
+ bne _0806ED50
+ ldr r4, _0806ED44 @ =gStringVar4
+ ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EDA2
+ .align 2, 0
+_0806ED38: .4byte gTasks
+_0806ED3C: .4byte TaskDummy
+_0806ED40: .4byte 0x0201c000
+_0806ED44: .4byte gStringVar4
+_0806ED48: .4byte gOtherText_NotHoldingAnything
+_0806ED4C: .4byte party_menu_link_mon_held_item_object
+_0806ED50:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED92
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED7C
+ ldr r0, [r5]
+ bl sub_80A2DF8
+_0806ED7C:
+ ldrb r0, [r5, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl DisplayTakeHeldItemMessage
+ ldr r0, [r5]
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ b _0806ED9A
+_0806ED92:
+ ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+_0806ED9A:
+ ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806EDA2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EDB0: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem_806ECE8
+
+ thumb_func_start DisplayTakeHeldItemMessage
+DisplayTakeHeldItemMessage: @ 806EDB4
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EDF4 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0806EDF8 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EDFC @ =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, _0806EE00 @ =gStringVar4
+ ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDF4: .4byte gPlayerParty
+_0806EDF8: .4byte gStringVar1
+_0806EDFC: .4byte gStringVar2
+_0806EE00: .4byte gStringVar4
+_0806EE04: .4byte gOtherText_ReceivedTheThingFrom
+ thumb_func_end DisplayTakeHeldItemMessage
+
+ thumb_func_start DoTakeMail
+DoTakeMail: @ 806EE08
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806EE48 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806EE4C @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r4, _0806EE50 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EE58 @ =Task_ConfirmTakeHeldMail
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EE48: .4byte gTasks
+_0806EE4C: .4byte TaskDummy
+_0806EE50: .4byte 0x0201c000
+_0806EE54: .4byte gOtherText_SendRemovedMailPrompt
+_0806EE58: .4byte Task_ConfirmTakeHeldMail
+ thumb_func_end DoTakeMail
+
+ thumb_func_start Task_LoseMailMessage
+Task_LoseMailMessage: @ 806EE5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EEB0
+ ldr r5, _0806EE90 @ =0x0201c000
+ ldrh r0, [r5, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EE98
+ ldr r0, [r5]
+ bl sub_80A2DF8
+ ldr r0, _0806EE94 @ =gOtherText_MailTaken
+ movs r1, 0
+ bl sub_806E834
+ b _0806EEA0
+ .align 2, 0
+_0806EE90: .4byte 0x0201c000
+_0806EE94: .4byte gOtherText_MailTaken
+_0806EE98:
+ ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+_0806EEA0:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ b _0806EEDE
+ .align 2, 0
+_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EEB0:
+ cmp r1, 0x1
+ beq _0806EEBC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EEF0
+_0806EEBC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EECA
+ movs r0, 0x5
+ bl PlaySE
+_0806EECA:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+_0806EEDE:
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EEF8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+_0806EEF0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EEF8: .4byte gTasks
+_0806EEFC: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end Task_LoseMailMessage
+
+ thumb_func_start Task_ConfirmLoseMailMessage
+Task_ConfirmLoseMailMessage: @ 806EF00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EF2C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EF26
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EF30 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF34 @ =Task_LoseMailMessage
+ str r0, [r1]
+_0806EF26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EF2C: .4byte gUnknown_0202E8F6
+_0806EF30: .4byte gTasks
+_0806EF34: .4byte Task_LoseMailMessage
+ thumb_func_end Task_ConfirmLoseMailMessage
+
+ thumb_func_start Task_TakeHeldMail
+Task_TakeHeldMail: @ 806EF38
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EF9C
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EF70 @ =0x0201c000
+ ldr r0, [r0]
+ bl sub_80A2E78
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0806EF78
+ ldr r0, _0806EF74 @ =gOtherText_MailWasSent
+ movs r1, 0
+ bl sub_806E834
+ b _0806EF80
+ .align 2, 0
+_0806EF70: .4byte 0x0201c000
+_0806EF74: .4byte gOtherText_MailWasSent
+_0806EF78:
+ ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull
+ movs r1, 0
+ bl sub_806E834
+_0806EF80:
+ ldr r0, _0806EF94 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+ b _0806EFD8
+ .align 2, 0
+_0806EF90: .4byte gOtherText_MailboxIsFull
+_0806EF94: .4byte gTasks
+_0806EF98: .4byte party_menu_link_mon_held_item_object
+_0806EF9C:
+ cmp r1, 0x1
+ beq _0806EFA8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFD8
+_0806EFA8:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFB6
+ movs r0, 0x5
+ bl PlaySE
+_0806EFB6:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806EFE4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806EFE8 @ =Task_ConfirmLoseMailMessage
+ str r1, [r0]
+_0806EFD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
+_0806EFE4: .4byte gTasks
+_0806EFE8: .4byte Task_ConfirmLoseMailMessage
+ thumb_func_end Task_TakeHeldMail
+
+ thumb_func_start Task_ConfirmTakeHeldMail
+Task_ConfirmTakeHeldMail: @ 806EFEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F018 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F012
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F01C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F020 @ =Task_TakeHeldMail
+ str r0, [r1]
+_0806F012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F018: .4byte gUnknown_0202E8F6
+_0806F01C: .4byte gTasks
+_0806F020: .4byte Task_TakeHeldMail
+ thumb_func_end Task_ConfirmTakeHeldMail
+
+ thumb_func_start ItemIdToBattleMoveId
+ItemIdToBattleMoveId: @ 806F024
+ lsls r0, 16
+ ldr r1, _0806F034 @ =0xfedf0000
+ adds r0, r1
+ ldr r1, _0806F038 @ =gUnknown_08376504
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_0806F034: .4byte 0xfedf0000
+_0806F038: .4byte gUnknown_08376504
+ thumb_func_end ItemIdToBattleMoveId
+
+ thumb_func_start pokemon_has_move
+pokemon_has_move: @ 806F03C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+_0806F046:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl GetMonData
+ cmp r0, r5
+ bne _0806F058
+ movs r0, 0x1
+ b _0806F064
+_0806F058:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0806F046
+ movs r0, 0
+_0806F064:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_has_move
+
+ thumb_func_start TeachMonTMMove
+TeachMonTMMove: @ 806F06C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0806F0A8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F0AC @ =TaskDummy
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E8D0
+ ldr r0, _0806F0B0 @ =Task_TeamMonTMMove
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F0A8: .4byte gTasks
+_0806F0AC: .4byte TaskDummy
+_0806F0B0: .4byte Task_TeamMonTMMove
+ thumb_func_end TeachMonTMMove
+
+ thumb_func_start Task_TeamMonTMMove
+Task_TeamMonTMMove: @ 806F0B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r5, _0806F114 @ =0x0201c000
+ ldr r0, [r5]
+ ldr r1, _0806F118 @ =gStringVar1
+ bl GetMonNickname
+ ldrh r0, [r5, 0x6]
+ bl ItemIdToBattleMoveId
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _0806F11C @ =gStringVar2
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F120 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _0806F124 @ =0xfffff282
+ adds r0, r5, r1
+ strh r4, [r0]
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F138
+ ldr r4, _0806F128 @ =gStringVar4
+ ldr r1, _0806F12C @ =gOtherText_AlreadyKnows
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F130 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object
+ b _0806F1B6
+ .align 2, 0
+_0806F114: .4byte 0x0201c000
+_0806F118: .4byte gStringVar1
+_0806F11C: .4byte gStringVar2
+_0806F120: .4byte gMoveNames
+_0806F124: .4byte 0xfffff282
+_0806F128: .4byte gStringVar4
+_0806F12C: .4byte gOtherText_AlreadyKnows
+_0806F130: .4byte gTasks
+_0806F134: .4byte party_menu_link_mon_held_item_object
+_0806F138:
+ ldr r0, [r5]
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x21
+ lsls r1, 24
+ lsrs r1, 24
+ bl CanMonLearnTMHM
+ cmp r0, 0
+ bne _0806F17C
+ ldr r4, _0806F16C @ =gStringVar4
+ ldr r1, _0806F170 @ =gOtherText_NotCompatible
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F174 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object
+ b _0806F1B6
+ .align 2, 0
+_0806F16C: .4byte gStringVar4
+_0806F170: .4byte gOtherText_NotCompatible
+_0806F174: .4byte gTasks
+_0806F178: .4byte party_menu_link_mon_held_item_object
+_0806F17C:
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, _0806F194 @ =0xffff0000
+ cmp r0, r1
+ beq _0806F198
+ adds r0, r6, 0
+ bl Task_TeamMonTMMove2
+ b _0806F1B8
+ .align 2, 0
+_0806F194: .4byte 0xffff0000
+_0806F198:
+ ldr r4, _0806F1C0 @ =gStringVar4
+ ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F1C8 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F1CC @ =sub_806F358
+_0806F1B6:
+ str r1, [r0]
+_0806F1B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F1C0: .4byte gStringVar4
+_0806F1C4: .4byte gOtherText_WantsToLearn
+_0806F1C8: .4byte gTasks
+_0806F1CC: .4byte sub_806F358
+ thumb_func_end Task_TeamMonTMMove
+
+ thumb_func_start Task_TeamMonTMMove2
+Task_TeamMonTMMove2: @ 806F1D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F234 @ =gStringVar2
+ ldr r5, _0806F238 @ =0x0201c000
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F23C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F240 @ =gStringVar4
+ ldr r1, _0806F244 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, [r5]
+ movs r1, 0x4
+ bl AdjustFriendship
+ ldr r1, _0806F248 @ =0xfffff282
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0806F220
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0806F220
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_0806F220:
+ ldr r0, _0806F24C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F250 @ =Task_TeamMonTMMove3
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F234: .4byte gStringVar2
+_0806F238: .4byte 0x0201c000
+_0806F23C: .4byte gMoveNames
+_0806F240: .4byte gStringVar4
+_0806F244: .4byte gOtherText_LearnedMove
+_0806F248: .4byte 0xfffff282
+_0806F24C: .4byte gTasks
+_0806F250: .4byte Task_TeamMonTMMove3
+ thumb_func_end Task_TeamMonTMMove2
+
+ thumb_func_start Task_TeamMonTMMove3
+Task_TeamMonTMMove3: @ 806F254
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F27C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F276
+ ldr r0, _0806F280 @ =0x0000016f
+ bl PlayFanfare
+ ldr r1, _0806F284 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F288 @ =Task_TeamMonTMMove4
+ str r1, [r0]
+_0806F276:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F27C: .4byte gUnknown_0202E8F6
+_0806F280: .4byte 0x0000016f
+_0806F284: .4byte gTasks
+_0806F288: .4byte Task_TeamMonTMMove4
+ thumb_func_end Task_TeamMonTMMove3
+
+ thumb_func_start Task_TeamMonTMMove4
+Task_TeamMonTMMove4: @ 806F28C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F2F2
+ ldr r0, _0806F2D0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F2B2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806F2F2
+_0806F2B2:
+ ldr r4, _0806F2D4 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r1, _0806F2D8 @ =0xfffff282
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F2DC
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F2F2
+ .align 2, 0
+_0806F2D0: .4byte gMain
+_0806F2D4: .4byte 0x0201c000
+_0806F2D8: .4byte 0xfffff282
+_0806F2DC:
+ ldr r2, _0806F2F8 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F2F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F2F8: .4byte gTasks
+ thumb_func_end Task_TeamMonTMMove4
+
+ thumb_func_start sub_806F2FC
+sub_806F2FC: @ 806F2FC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ ldr r0, _0806F32C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F34E
+ ldr r4, _0806F330 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r1, _0806F334 @ =0xfffff282
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F338
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F34E
+ .align 2, 0
+_0806F32C: .4byte gUnknown_0202E8F6
+_0806F330: .4byte 0x0201c000
+_0806F334: .4byte 0xfffff282
+_0806F338:
+ ldr r2, _0806F354 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F34E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F354: .4byte gTasks
+ thumb_func_end sub_806F2FC
+
+ thumb_func_start sub_806F358
+sub_806F358: @ 806F358
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F384 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F37E
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F388 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F38C @ =sub_806F390
+ str r0, [r1]
+_0806F37E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F384: .4byte gUnknown_0202E8F6
+_0806F388: .4byte gTasks
+_0806F38C: .4byte sub_806F390
+ thumb_func_end sub_806F358
+
+ thumb_func_start sub_806F390
+sub_806F390: @ 806F390
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F3D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F3CC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F3D0 @ =sub_806F44C
+ str r1, [r0]
+ b _0806F3F4
+ .align 2, 0
+_0806F3C8: .4byte gOtherText_WhichMoveToForget2
+_0806F3CC: .4byte gTasks
+_0806F3D0: .4byte sub_806F44C
+_0806F3D4:
+ cmp r1, 0x1
+ beq _0806F3E0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3F4
+_0806F3E0:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3EE
+ movs r0, 0x5
+ bl PlaySE
+_0806F3EE:
+ adds r0, r5, 0
+ bl StopTryingToTeachMove_806F614
+_0806F3F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F390
+
+ thumb_func_start sub_806F3FC
+sub_806F3FC: @ 806F3FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806F438 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F430
+ ldr r0, _0806F43C @ =gPlayerParty
+ ldr r4, _0806F440 @ =0x0201c000
+ ldrb r1, [r4, 0x5]
+ ldr r2, _0806F444 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806F448 @ =sub_808B564
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl sub_809D9F0
+ adds r0, r5, 0
+ bl DestroyTask
+_0806F430:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F438: .4byte gPaletteFade
+_0806F43C: .4byte gPlayerParty
+_0806F440: .4byte 0x0201c000
+_0806F444: .4byte gPlayerPartyCount
+_0806F448: .4byte sub_808B564
+ thumb_func_end sub_806F3FC
+
+ thumb_func_start sub_806F44C
+sub_806F44C: @ 806F44C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F484 @ =gUnknown_0202E8F6
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0806F47A
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0806F488 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F48C @ =sub_806F3FC
+ str r1, [r0]
+_0806F47A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F484: .4byte gUnknown_0202E8F6
+_0806F488: .4byte gTasks
+_0806F48C: .4byte sub_806F3FC
+ thumb_func_end sub_806F44C
+
+ thumb_func_start TaughtMove
+TaughtMove: @ 806F490
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F50C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F506
+ ldr r1, _0806F510 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F514 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _0806F518 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0806F51C @ =sub_808B508
+ adds r0, r3, 0
+ bl sub_806E8D0
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r5, _0806F520 @ =0x0201c000
+ ldr r0, [r5]
+ adds r1, 0xD
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, [r5]
+ ldr r1, _0806F524 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F528 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _0806F52C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F530 @ =gStringVar4
+ ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F538 @ =TMMoveUpdateMoveSlot
+ movs r1, 0x5
+ bl CreateTask
+_0806F506:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F50C: .4byte gPaletteFade
+_0806F510: .4byte gTasks
+_0806F514: .4byte TaskDummy
+_0806F518: .4byte gScriptItemId
+_0806F51C: .4byte sub_808B508
+_0806F520: .4byte 0x0201c000
+_0806F524: .4byte gStringVar1
+_0806F528: .4byte gStringVar2
+_0806F52C: .4byte gMoveNames
+_0806F530: .4byte gStringVar4
+_0806F534: .4byte gOtherText_ForgetMove123_2
+_0806F538: .4byte TMMoveUpdateMoveSlot
+ thumb_func_end TaughtMove
+
+ thumb_func_start TMMoveUpdateMoveSlot
+TMMoveUpdateMoveSlot: @ 806F53C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F580 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F57A
+ ldr r4, _0806F584 @ =0x0201c000
+ ldr r5, [r4]
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl RemoveMonPPBonus
+ ldr r5, [r4]
+ ldrh r4, [r4, 0x8]
+ bl sub_809FA30
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl SetMonMoveSlot
+ adds r0, r6, 0
+ bl Task_TeamMonTMMove2
+_0806F57A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F580: .4byte gUnknown_0202E8F6
+_0806F584: .4byte 0x0201c000
+ thumb_func_end TMMoveUpdateMoveSlot
+
+ thumb_func_start StopTryingToTeachMove_806F588
+StopTryingToTeachMove_806F588: @ 806F588
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F5E8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F5E0
+ ldr r1, _0806F5EC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F5F0 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _0806F5F4 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0806F5F8 @ =sub_808B508
+ adds r0, r3, 0
+ bl sub_806E8D0
+ ldr r0, _0806F5FC @ =gStringVar2
+ ldr r1, _0806F600 @ =0x0201c000
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F604 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F608 @ =gStringVar4
+ ldr r1, _0806F60C @ =gOtherText_StopTryingTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F610 @ =StopTryingToTeachMove_806F67C
+ movs r1, 0x5
+ bl CreateTask
+_0806F5E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F5E8: .4byte gPaletteFade
+_0806F5EC: .4byte gTasks
+_0806F5F0: .4byte TaskDummy
+_0806F5F4: .4byte gScriptItemId
+_0806F5F8: .4byte sub_808B508
+_0806F5FC: .4byte gStringVar2
+_0806F600: .4byte 0x0201c000
+_0806F604: .4byte gMoveNames
+_0806F608: .4byte gStringVar4
+_0806F60C: .4byte gOtherText_StopTryingTo
+_0806F610: .4byte StopTryingToTeachMove_806F67C
+ thumb_func_end StopTryingToTeachMove_806F588
+
+ thumb_func_start StopTryingToTeachMove_806F614
+StopTryingToTeachMove_806F614: @ 806F614
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806F660 @ =gStringVar2
+ ldr r1, _0806F664 @ =0x0201c000
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F668 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F66C @ =gStringVar4
+ ldr r1, _0806F670 @ =gOtherText_StopTryingTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F674 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F678 @ =StopTryingToTeachMove_806F67C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F660: .4byte gStringVar2
+_0806F664: .4byte 0x0201c000
+_0806F668: .4byte gMoveNames
+_0806F66C: .4byte gStringVar4
+_0806F670: .4byte gOtherText_StopTryingTo
+_0806F674: .4byte gTasks
+_0806F678: .4byte StopTryingToTeachMove_806F67C
+ thumb_func_end StopTryingToTeachMove_806F614
+
+ thumb_func_start StopTryingToTeachMove_806F67C
+StopTryingToTeachMove_806F67C: @ 806F67C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F6A8 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F6A2
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F6AC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F6B0 @ =StopTryingToTeachMove_806F6B4
+ str r0, [r1]
+_0806F6A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F6A8: .4byte gUnknown_0202E8F6
+_0806F6AC: .4byte gTasks
+_0806F6B0: .4byte StopTryingToTeachMove_806F6B4
+ thumb_func_end StopTryingToTeachMove_806F67C
+
+ thumb_func_start StopTryingToTeachMove_806F6B4
+StopTryingToTeachMove_806F6B4: @ 806F6B4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F730
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806F710 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0806F714 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F718 @ =gStringVar2
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F71C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F720 @ =gStringVar4
+ ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F728 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F72C @ =sub_806F2FC
+ b _0806F78E
+ .align 2, 0
+_0806F710: .4byte 0x0201c000
+_0806F714: .4byte gStringVar1
+_0806F718: .4byte gStringVar2
+_0806F71C: .4byte gMoveNames
+_0806F720: .4byte gStringVar4
+_0806F724: .4byte gOtherText_DidNotLearnMove2
+_0806F728: .4byte gTasks
+_0806F72C: .4byte sub_806F2FC
+_0806F730:
+ cmp r1, 0x1
+ beq _0806F73C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F790
+_0806F73C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F74A
+ movs r0, 0x5
+ bl PlaySE
+_0806F74A:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806F798 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0806F79C @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F7A0 @ =gStringVar2
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F7A4 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F7A8 @ =gStringVar4
+ ldr r1, _0806F7AC @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F7B0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F7B4 @ =sub_806F358
+_0806F78E:
+ str r1, [r0]
+_0806F790:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F798: .4byte 0x0201c000
+_0806F79C: .4byte gStringVar1
+_0806F7A0: .4byte gStringVar2
+_0806F7A4: .4byte gMoveNames
+_0806F7A8: .4byte gStringVar4
+_0806F7AC: .4byte gOtherText_WantsToLearn
+_0806F7B0: .4byte gTasks
+_0806F7B4: .4byte sub_806F358
+ thumb_func_end StopTryingToTeachMove_806F6B4
+
+ thumb_func_start IsHMMove
+IsHMMove: @ 806F7B8
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldr r3, _0806F7D4 @ =gUnknown_08376504
+_0806F7C2:
+ adds r0, r1, 0
+ adds r0, 0x32
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _0806F7D8
+ movs r0, 0x1
+ b _0806F7E4
+ .align 2, 0
+_0806F7D4: .4byte gUnknown_08376504
+_0806F7D8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _0806F7C2
+ movs r0, 0
+_0806F7E4:
+ pop {r1}
+ bx r1
+ thumb_func_end IsHMMove
+
+ thumb_func_start sub_806F7E8
+sub_806F7E8: @ 806F7E8
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ ldr r0, _0806F898 @ =gTasks + 0x8
+ adds r3, r0
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ str r1, [r5]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ str r0, [r5, 0x4]
+ movs r4, 0x18
+ ldrsh r0, [r3, r4]
+ lsls r2, 24
+ asrs r2, 24
+ muls r0, r2
+ str r0, [r5, 0x8]
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [r5, 0x10]
+ ldr r6, _0806F89C @ =0x0201b000
+ ldr r2, _0806F8A0 @ =0x00000282
+ adds r0, r6, r2
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ cmp r2, 0x2
+ bls _0806F83E
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F83E:
+ cmp r2, 0x2
+ bne _0806F850
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x5
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F850:
+ cmp r3, 0x1
+ bhi _0806F862
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x6
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F862:
+ ldr r4, _0806F8A4 @ =gUnknown_08376858
+ bl IsDoubleBattle
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r6, r2
+ ldrb r2, [r1, 0x5]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r4
+ ldr r2, [r2]
+ ldr r4, _0806F8A8 @ =0x0000100c
+ adds r1, r6, r4
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80460C8
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806F898: .4byte gTasks + 0x8
+_0806F89C: .4byte 0x0201b000
+_0806F8A0: .4byte 0x00000282
+_0806F8A4: .4byte gUnknown_08376858
+_0806F8A8: .4byte 0x0000100c
+ thumb_func_end sub_806F7E8
+
+ thumb_func_start sub_806F8AC
+sub_806F8AC: @ 806F8AC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_806F7E8
+ ldr r1, _0806F8F4 @ =0x0201b000
+ ldr r2, _0806F8F8 @ =0x00000282
+ adds r5, r1, r2
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r4
+ beq _0806F8D4
+ b _0806F9F0
+_0806F8D4:
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1, 0xC]
+ ldr r0, [sp, 0x8]
+ negs r3, r0
+ ldr r2, [sp, 0x4]
+ adds r0, r3, r2
+ ldr r1, [sp]
+ cmp r0, r1
+ ble _0806F8FC
+ subs r1, r2
+ add r0, sp, 0x14
+ strh r1, [r0]
+ b _0806F900
+ .align 2, 0
+_0806F8F4: .4byte 0x0201b000
+_0806F8F8: .4byte 0x00000282
+_0806F8FC:
+ add r0, sp, 0x14
+ strh r3, [r0]
+_0806F900:
+ adds r5, r0, 0
+ ldr r1, _0806F940 @ =gUnknown_02024BEC
+ ldrh r0, [r5]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _0806F944 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _0806F948 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F94C @ =gStringVar2
+ ldrh r1, [r5]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r2, _0806F950 @ =gTasks
+ lsls r1, r6, 2
+ adds r0, r1, r6
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _0806F95C
+ ldr r0, _0806F954 @ =gStringVar4
+ ldr r1, _0806F958 @ =gOtherText_HPRestoredBy
+ bl StringExpandPlaceholders
+ b _0806F964
+ .align 2, 0
+_0806F940: .4byte gUnknown_02024BEC
+_0806F944: .4byte 0x0201c000
+_0806F948: .4byte gStringVar1
+_0806F94C: .4byte gStringVar2
+_0806F950: .4byte gTasks
+_0806F954: .4byte gStringVar4
+_0806F958: .4byte gOtherText_HPRestoredBy
+_0806F95C:
+ ldr r0, _0806F9D4 @ =gStringVar4
+ ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth
+ bl StringExpandPlaceholders
+_0806F964:
+ ldr r4, _0806F9DC @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl SetMonIconAnim
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0806F9E0 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _0806F9E4 @ =0xfffff261
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _0806F9D4 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, [sp, 0x4]
+ ldrh r0, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ ldr r0, [r4]
+ movs r1, 0x39
+ adds r2, r5, 0
+ bl SetMonData
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ bl sub_8032638
+ ldr r1, _0806F9E8 @ =gTasks
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F9EC @ =sub_806FB44
+ str r1, [r0]
+ b _0806FA10
+ .align 2, 0
+_0806F9D4: .4byte gStringVar4
+_0806F9D8: .4byte gOtherText_RegainedHealth
+_0806F9DC: .4byte 0x0201c000
+_0806F9E0: .4byte gUnknown_083769A8
+_0806F9E4: .4byte 0xfffff261
+_0806F9E8: .4byte gTasks
+_0806F9EC: .4byte sub_806FB44
+_0806F9F0:
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r1, r2
+ ldrb r4, [r0, 0x5]
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl PartyMenuDoPrintHP
+_0806FA10:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F8AC
+
+ thumb_func_start sub_806FA18
+sub_806FA18: @ 806FA18
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_806F7E8
+ ldr r6, _0806FAC4 @ =0x0201b000
+ ldr r1, _0806FAC8 @ =0x00000282
+ adds r7, r6, r1
+ strh r0, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0806FAE4
+ movs r0, 0x1
+ bl PlaySE
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ movs r0, 0
+ str r0, [r4, 0xC]
+ ldr r2, _0806FACC @ =gTasks
+ lsls r3, r5, 2
+ adds r3, r5
+ lsls r3, 3
+ adds r5, r3, r2
+ ldrh r0, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r0, r1
+ strh r0, [r5, 0x1E]
+ ldr r0, [r4]
+ adds r2, r3
+ adds r2, 0x1E
+ movs r1, 0x39
+ bl SetMonData
+ ldrb r0, [r4, 0x4]
+ ldr r1, _0806FAD0 @ =0xfffe6000
+ adds r6, r1
+ ldrb r1, [r6, 0x1]
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl SetMonIconAnim
+ ldr r2, _0806FAD4 @ =gSprites
+ ldrb r1, [r6, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r4, 0x5]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806FAD8 @ =gPlayerParty
+ adds r0, r1
+ str r0, [r4]
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r5, 0x1C]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5, 0x1E]
+ ldr r0, _0806FADC @ =0xffff8000
+ str r0, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ ldr r0, _0806FAE0 @ =sub_806F8AC
+ str r0, [r5]
+ ldrh r0, [r5, 0x1E]
+ strh r0, [r7]
+ b _0806FB04
+ .align 2, 0
+_0806FAC4: .4byte 0x0201b000
+_0806FAC8: .4byte 0x00000282
+_0806FACC: .4byte gTasks
+_0806FAD0: .4byte 0xfffe6000
+_0806FAD4: .4byte gSprites
+_0806FAD8: .4byte gPlayerParty
+_0806FADC: .4byte 0xffff8000
+_0806FAE0: .4byte sub_806F8AC
+_0806FAE4:
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r4, [r0, 0x5]
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r7]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl PartyMenuDoPrintHP
+_0806FB04:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806FA18
+
+ thumb_func_start sub_806FB0C
+sub_806FB0C: @ 806FB0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB38 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB32
+ ldr r3, _0806FB3C @ =gTasks
+ ldr r2, _0806FB40 @ =0x0201c000
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x10]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB38: .4byte gUnknown_0202E8F6
+_0806FB3C: .4byte gTasks
+_0806FB40: .4byte 0x0201c000
+ thumb_func_end sub_806FB0C
+
+ thumb_func_start sub_806FB44
+sub_806FB44: @ 806FB44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB70 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB6A
+ ldr r3, _0806FB74 @ =gTasks
+ ldr r2, _0806FB78 @ =0x0201c000
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x14]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB70: .4byte gUnknown_0202E8F6
+_0806FB74: .4byte gTasks
+_0806FB78: .4byte 0x0201c000
+ thumb_func_end sub_806FB44
+
+ thumb_func_start IsHPRecoveryItem
+IsHPRecoveryItem: @ 806FB7C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0806FB90
+ ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676
+ b _0806FB9A
+ .align 2, 0
+_0806FB8C: .4byte gSaveBlock1 + 0x3676
+_0806FB90:
+ ldr r1, _0806FBA8 @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0806FB9A:
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FBAC
+ movs r0, 0
+ b _0806FBAE
+ .align 2, 0
+_0806FBA8: .4byte gItemEffectTable
+_0806FBAC:
+ movs r0, 0x1
+_0806FBAE:
+ pop {r1}
+ bx r1
+ thumb_func_end IsHPRecoveryItem
+
+ thumb_func_start PartyMenuUpdateLevelOrStatus
+PartyMenuUpdateLevelOrStatus: @ 806FBB4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl PartyMenuClearLevelStatusTilemap
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl PartyMenuPrintMonLevelOrStatus
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuUpdateLevelOrStatus
+
+ thumb_func_start GetMedicineItemEffectMessage
+GetMedicineItemEffectMessage: @ 806FBD0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0x12
+ bls _0806FBE6
+ b _0806FD7C
+_0806FBE6:
+ lsls r0, 2
+ ldr r1, _0806FBF0 @ =_0806FBF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806FBF0: .4byte _0806FBF4
+ .align 2, 0
+_0806FBF4:
+ .4byte _0806FC40
+ .4byte _0806FC54
+ .4byte _0806FC68
+ .4byte _0806FC7C
+ .4byte _0806FC90
+ .4byte _0806FCA4
+ .4byte _0806FCB8
+ .4byte _0806FD7C
+ .4byte _0806FCCC
+ .4byte _0806FCF0
+ .4byte _0806FCE0
+ .4byte _0806FD20
+ .4byte _0806FD30
+ .4byte _0806FD10
+ .4byte _0806FD00
+ .4byte _0806FD7C
+ .4byte _0806FD54
+ .4byte _0806FD54
+ .4byte _0806FD68
+_0806FC40:
+ ldr r0, _0806FC4C @ =gStringVar4
+ ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC4C: .4byte gStringVar4
+_0806FC50: .4byte gOtherText_CuredPoisoning
+_0806FC54:
+ ldr r0, _0806FC60 @ =gStringVar4
+ ldr r1, _0806FC64 @ =gOtherText_WokeUp
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC60: .4byte gStringVar4
+_0806FC64: .4byte gOtherText_WokeUp
+_0806FC68:
+ ldr r0, _0806FC74 @ =gStringVar4
+ ldr r1, _0806FC78 @ =gOtherText_BurnHealed
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC74: .4byte gStringVar4
+_0806FC78: .4byte gOtherText_BurnHealed
+_0806FC7C:
+ ldr r0, _0806FC88 @ =gStringVar4
+ ldr r1, _0806FC8C @ =gOtherText_ThawedOut
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC88: .4byte gStringVar4
+_0806FC8C: .4byte gOtherText_ThawedOut
+_0806FC90:
+ ldr r0, _0806FC9C @ =gStringVar4
+ ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC9C: .4byte gStringVar4
+_0806FCA0: .4byte gOtherText_CuredParalysis
+_0806FCA4:
+ ldr r0, _0806FCB0 @ =gStringVar4
+ ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCB0: .4byte gStringVar4
+_0806FCB4: .4byte gOtherText_SnapConfusion
+_0806FCB8:
+ ldr r0, _0806FCC4 @ =gStringVar4
+ ldr r1, _0806FCC8 @ =gOtherText_GotOverLove
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCC4: .4byte gStringVar4
+_0806FCC8: .4byte gOtherText_GotOverLove
+_0806FCCC:
+ ldr r0, _0806FCD8 @ =gStringVar4
+ ldr r1, _0806FCDC @ =gOtherText_BecameHealthy
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCD8: .4byte gStringVar4
+_0806FCDC: .4byte gOtherText_BecameHealthy
+_0806FCE0:
+ ldr r0, _0806FCE8 @ =gStringVar2
+ ldr r1, _0806FCEC @ =gOtherText_Hp2
+ b _0806FD34
+ .align 2, 0
+_0806FCE8: .4byte gStringVar2
+_0806FCEC: .4byte gOtherText_Hp2
+_0806FCF0:
+ ldr r0, _0806FCF8 @ =gStringVar2
+ ldr r1, _0806FCFC @ =gOtherText_Attack
+ b _0806FD34
+ .align 2, 0
+_0806FCF8: .4byte gStringVar2
+_0806FCFC: .4byte gOtherText_Attack
+_0806FD00:
+ ldr r0, _0806FD08 @ =gStringVar2
+ ldr r1, _0806FD0C @ =gOtherText_Defense
+ b _0806FD34
+ .align 2, 0
+_0806FD08: .4byte gStringVar2
+_0806FD0C: .4byte gOtherText_Defense
+_0806FD10:
+ ldr r0, _0806FD18 @ =gStringVar2
+ ldr r1, _0806FD1C @ =gOtherText_Speed
+ b _0806FD34
+ .align 2, 0
+_0806FD18: .4byte gStringVar2
+_0806FD1C: .4byte gOtherText_Speed
+_0806FD20:
+ ldr r0, _0806FD28 @ =gStringVar2
+ ldr r1, _0806FD2C @ =gOtherText_SpAtk2
+ b _0806FD34
+ .align 2, 0
+_0806FD28: .4byte gStringVar2
+_0806FD2C: .4byte gOtherText_SpAtk2
+_0806FD30:
+ ldr r0, _0806FD44 @ =gStringVar2
+ ldr r1, _0806FD48 @ =gOtherText_SpDef2
+_0806FD34:
+ bl StringCopy
+ ldr r0, _0806FD4C @ =gStringVar4
+ ldr r1, _0806FD50 @ =gOtherText_WasRaised
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD44: .4byte gStringVar2
+_0806FD48: .4byte gOtherText_SpDef2
+_0806FD4C: .4byte gStringVar4
+_0806FD50: .4byte gOtherText_WasRaised
+_0806FD54:
+ ldr r0, _0806FD60 @ =gStringVar4
+ ldr r1, _0806FD64 @ =gOtherText_PPIncreased
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD60: .4byte gStringVar4
+_0806FD64: .4byte gOtherText_PPIncreased
+_0806FD68:
+ ldr r0, _0806FD74 @ =gStringVar4
+ ldr r1, _0806FD78 @ =gOtherText_PPRestored
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD74: .4byte gStringVar4
+_0806FD78: .4byte gOtherText_PPRestored
+_0806FD7C:
+ ldr r0, _0806FD88 @ =gStringVar4
+ ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect
+ bl StringExpandPlaceholders
+_0806FD84:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FD88: .4byte gStringVar4
+_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
+ thumb_func_end GetMedicineItemEffectMessage
+
+ thumb_func_start IsMedicineIneffective
+IsMedicineIneffective: @ 806FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bne _0806FDBC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0806FDB8 @ =0x0000012f
+ cmp r0, r1
+ bne _0806FDBC
+ movs r0, 0x1
+ b _0806FDBE
+ .align 2, 0
+_0806FDB8: .4byte 0x0000012f
+_0806FDBC:
+ movs r0, 0
+_0806FDBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end IsMedicineIneffective
+
+ thumb_func_start ExecuteTableBasedItemEffect__
+ExecuteTableBasedItemEffect__: @ 806FDC4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _0806FDF0 @ =gMain
+ ldr r1, _0806FDF4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FDFC
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, _0806FDF8 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r3, 0
+ b _0806FE16
+ .align 2, 0
+_0806FDF0: .4byte gMain
+_0806FDF4: .4byte 0x0000043d
+_0806FDF8: .4byte gPlayerParty
+_0806FDFC:
+ movs r0, 0x64
+ adds r4, r3, 0
+ muls r4, r0
+ ldr r0, _0806FE28 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r3, 0
+ bl sub_8094C20
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+_0806FE16:
+ adds r3, r6, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806FE28: .4byte gPlayerParty
+ thumb_func_end ExecuteTableBasedItemEffect__
+
+ thumb_func_start UseMedicine
+UseMedicine: @ 806FE2C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _0806FED4 @ =gTasks
+ mov r10, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r10
+ ldr r0, _0806FED8 @ =TaskDummy
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r5, _0806FEDC @ =0x0201c000
+ ldr r0, [r5]
+ adds r1, r6, 0
+ bl IsMedicineIneffective
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FEE0
+ adds r0, r6, 0
+ bl IsHPRecoveryItem
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0x1
+ bne _0806FEC2
+ ldr r0, [r5]
+ movs r1, 0x3A
+ bl GetMonData
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ mov r2, r10
+ adds r4, r1, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, [r5]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x1E]
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _0806FEC2
+ movs r0, 0
+ mov r9, r0
+ mov r1, r9
+ strh r1, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+_0806FEC2:
+ ldr r0, _0806FEDC @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _0806FEE6
+ .align 2, 0
+_0806FED4: .4byte gTasks
+_0806FED8: .4byte TaskDummy
+_0806FEDC: .4byte 0x0201c000
+_0806FEE0:
+ movs r0, 0x1
+ lsls r2, r7, 2
+ mov r8, r2
+_0806FEE6:
+ cmp r0, 0
+ beq _0806FF14
+ ldr r1, _0806FF08 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806FF10 @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ b _08070002
+ .align 2, 0
+_0806FF08: .4byte gUnknown_0202E8F4
+_0806FF0C: .4byte gOtherText_WontHaveAnyEffect
+_0806FF10: .4byte gTasks
+_0806FF14:
+ ldr r1, _0806FF30 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FF34
+ movs r0, 0x1
+ bl PlaySE
+ b _0806FF3A
+ .align 2, 0
+_0806FF30: .4byte gUnknown_0202E8F4
+_0806FF34:
+ movs r0, 0x75
+ bl PlaySE
+_0806FF3A:
+ ldr r4, _0806FF88 @ =0x0201c000
+ ldr r0, [r4]
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _0806FF4E
+ cmp r0, 0
+ bne _0806FF56
+_0806FF4E:
+ ldr r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl PartyMenuUpdateLevelOrStatus
+_0806FF56:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _0806FFC8
+ ldr r4, _0806FF88 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ ldr r2, _0806FF8C @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0x1E]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ ldr r0, _0806FF90 @ =0xffff8000
+ str r0, [r4, 0xC]
+ movs r1, 0x1E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0806FF94
+ mov r3, r9
+ strh r3, [r2, 0x24]
+ b _0806FF98
+ .align 2, 0
+_0806FF88: .4byte 0x0201c000
+_0806FF8C: .4byte gTasks
+_0806FF90: .4byte 0xffff8000
+_0806FF94:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+_0806FF98:
+ ldr r2, _0806FFB8 @ =0x0201c000
+ ldr r0, [r2, 0x10]
+ str r0, [r2, 0x14]
+ ldr r1, _0806FFBC @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806FFC0 @ =sub_806F8AC
+ str r1, [r0]
+ ldrh r0, [r0, 0x1E]
+ ldr r1, _0806FFC4 @ =0xfffff282
+ adds r2, r1
+ strh r0, [r2]
+ b _0807000A
+ .align 2, 0
+_0806FFB8: .4byte 0x0201c000
+_0806FFBC: .4byte gTasks
+_0806FFC0: .4byte sub_806F8AC
+_0806FFC4: .4byte 0xfffff282
+_0806FFC8:
+ ldr r4, _08070018 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0807001C @ =gStringVar1
+ bl GetMonNickname
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FFE6
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_0806FFE6:
+ adds r0, r6, 0
+ bl GetMedicineItemEffectMessage
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl TryPrintPartyMenuMonNickname
+ ldr r0, _08070020 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070024 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+_08070002:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070028 @ =sub_806FB0C
+ str r1, [r0]
+_0807000A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070018: .4byte 0x0201c000
+_0807001C: .4byte gStringVar1
+_08070020: .4byte gStringVar4
+_08070024: .4byte gTasks
+_08070028: .4byte sub_806FB0C
+ thumb_func_end UseMedicine
+
+ thumb_func_start IsBlueYellowRedFlute
+IsBlueYellowRedFlute: @ 807002C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x27
+ beq _0807003E
+ cmp r0, 0x29
+ beq _0807003E
+ cmp r0, 0x28
+ bne _08070042
+_0807003E:
+ movs r0, 0x1
+ b _08070044
+_08070042:
+ movs r0, 0
+_08070044:
+ pop {r1}
+ bx r1
+ thumb_func_end IsBlueYellowRedFlute
+
+ thumb_func_start sub_8070048
+sub_8070048: @ 8070048
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08070078 @ =0x0201c000
+ str r2, [r3, 0x10]
+ movs r4, 0
+ strb r0, [r3, 0x4]
+ movs r2, 0
+ strh r1, [r3, 0x6]
+ strb r2, [r3, 0x5]
+ ldr r1, _0807007C @ =sub_80701DC
+ str r1, [r3, 0x14]
+ ldr r2, _08070080 @ =0xfffff27e
+ adds r1, r3, r2
+ strh r4, [r1]
+ ldr r1, _08070084 @ =0xfffff280
+ adds r3, r1
+ strh r4, [r3]
+ bl sub_8070088
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070078: .4byte 0x0201c000
+_0807007C: .4byte sub_80701DC
+_08070080: .4byte 0xfffff27e
+_08070084: .4byte 0xfffff280
+ thumb_func_end sub_8070048
+
+ .section .text_80701DC
+
+ thumb_func_start sub_80701DC
+sub_80701DC: @ 80701DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _08070280 @ =0x0201b000
+ ldr r0, _08070284 @ =0x0000027e
+ adds r7, r6, r0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _0807023E
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08070288 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0807023A
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0807028C @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x3
+ bl task_pc_turn_off
+ ldr r0, _08070290 @ =0x00000261
+ adds r1, r6, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0807023A:
+ movs r0, 0
+ strh r0, [r7]
+_0807023E:
+ ldr r4, _08070294 @ =0x0201c000
+ ldrb r0, [r4, 0x5]
+ adds r0, 0x1
+ strb r0, [r4, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080702D8
+ ldr r1, _08070298 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0807029C @ =0xfffff280
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080702B0
+ ldr r1, _080702A0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080702A4 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _080702AC @ =sub_806FB0C
+ movs r1, 0x8
+ bl CreateTask
+ b _080702C6
+ .align 2, 0
+_08070280: .4byte 0x0201b000
+_08070284: .4byte 0x0000027e
+_08070288: .4byte gPlayerParty
+_0807028C: .4byte gUnknown_083769A8
+_08070290: .4byte 0x00000261
+_08070294: .4byte 0x0201c000
+_08070298: .4byte gUnknown_0202E8F4
+_0807029C: .4byte 0xfffff280
+_080702A0: .4byte gTasks
+_080702A4: .4byte TaskDummy
+_080702A8: .4byte gOtherText_WontHaveAnyEffect
+_080702AC: .4byte sub_806FB0C
+_080702B0:
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r1, _080702D0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+_080702C6:
+ ldr r1, _080702D4 @ =gUnknown_03005CE0
+ movs r0, 0
+ strb r0, [r1]
+ b _080702DE
+ .align 2, 0
+_080702D0: .4byte gTasks
+_080702D4: .4byte gUnknown_03005CE0
+_080702D8:
+ adds r0, r5, 0
+ bl sub_8070088
+_080702DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80701DC
+
+ thumb_func_start CreateItemUseMoveMenu
+CreateItemUseMoveMenu: @ 80702E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r5, 0
+ movs r0, 0x64
+ adds r7, r4, 0
+ muls r7, r0
+ ldr r0, _0807036C @ =gPlayerParty
+ mov r8, r0
+_0807030C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ mov r2, r8
+ adds r0, r7, r2
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _08070370 @ =gMoveNames
+ adds r0, r1
+ lsls r2, r5, 25
+ movs r1, 0xB0
+ lsls r1, 20
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x14
+ bl MenuPrint
+ cmp r4, 0
+ beq _08070340
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08070340:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0807030C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ movs r2, 0xB
+ adds r3, r6, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807036C: .4byte gPlayerParty
+_08070370: .4byte gMoveNames
+ thumb_func_end CreateItemUseMoveMenu
+
+ thumb_func_start Task_HandleItemUseMoveMenuInput
+Task_HandleItemUseMoveMenuInput: @ 8070374
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r0, _08070398 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807039C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080703E4
+ .align 2, 0
+_08070398: .4byte gMain
+_0807039C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080703B2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080703E4
+_080703B2:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080703CC
+ ldr r0, _080703C8 @ =gUnknown_08376B54
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _080703E4
+ .align 2, 0
+_080703C8: .4byte gUnknown_08376B54
+_080703CC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080703E4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080703EC @ =gUnknown_08376B54
+ ldr r1, [r0, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080703E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080703EC: .4byte gUnknown_08376B54
+ thumb_func_end Task_HandleItemUseMoveMenuInput
+
+ thumb_func_start DoPPRecoveryItemEffect
+DoPPRecoveryItemEffect: @ 80703F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r5, 0xAF
+ bne _08070410
+ ldr r0, _0807040C @ =gSaveBlock1 + 0x3676
+ b _0807041C
+ .align 2, 0
+_0807040C: .4byte gSaveBlock1 + 0x3676
+_08070410:
+ ldr r1, _08070464 @ =gItemEffectTable
+ adds r0, r5, 0
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0807041C:
+ mov r8, r0
+ ldr r7, _08070468 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _0807046C @ =TaskDummy
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r9
+ bl sub_806E8D0
+ mov r0, r8
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08070470
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ strh r1, [r0, 0x1E]
+ adds r0, r4, 0
+ bl DoRecoverPP
+ b _08070498
+ .align 2, 0
+_08070464: .4byte gItemEffectTable
+_08070468: .4byte gTasks
+_0807046C: .4byte TaskDummy
+_08070470:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xA
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _080704A4 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ bl CreateItemUseMoveMenu
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _080704A8 @ =Task_HandleItemUseMoveMenuInput
+ str r1, [r0]
+ ldr r1, _080704AC @ =gMain
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+_08070498:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704A4: .4byte 0x0201c000
+_080704A8: .4byte Task_HandleItemUseMoveMenuInput
+_080704AC: .4byte gMain
+ thumb_func_end DoPPRecoveryItemEffect
+
+ thumb_func_start ItemUseMoveMenu_HandleMoveSelection
+ItemUseMoveMenu_HandleMoveSelection: @ 80704B0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ bl GetMenuCursorPos
+ ldr r2, _080704EC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x1E]
+ adds r0, r4, 0
+ bl DoRecoverPP
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704EC: .4byte gTasks
+ thumb_func_end ItemUseMoveMenu_HandleMoveSelection
+
+ thumb_func_start ItemUseMoveMenu_HandleCancel
+ItemUseMoveMenu_HandleCancel: @ 80704F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _08070528 @ =gMain
+ ldr r1, _0807052C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807053C
+ ldr r2, _08070530 @ =gTasks
+ ldr r0, _08070534 @ =0x0201c000
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08070538 @ =SetUpBattlePokemonMenu
+ b _0807054C
+ .align 2, 0
+_08070528: .4byte gMain
+_0807052C: .4byte 0x0000043d
+_08070530: .4byte gTasks
+_08070534: .4byte 0x0201c000
+_08070538: .4byte SetUpBattlePokemonMenu
+_0807053C:
+ ldr r2, _08070564 @ =gTasks
+ ldr r0, _08070568 @ =0x0201c000
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0807056C @ =sub_808B0C0
+_0807054C:
+ str r1, [r0]
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_806D538
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070564: .4byte gTasks
+_08070568: .4byte 0x0201c000
+_0807056C: .4byte sub_808B0C0
+ thumb_func_end ItemUseMoveMenu_HandleCancel
+
+ thumb_func_start DoRecoverPP
+DoRecoverPP: @ 8070570
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r6, _080705A8 @ =0x0201c000
+ ldrb r0, [r6, 0x5]
+ ldrh r1, [r6, 0x6]
+ ldr r3, _080705AC @ =gTasks
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r7, r2, r3
+ ldrb r2, [r7, 0x1E]
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _080705B8
+ ldr r0, _080705B0 @ =gUnknown_0202E8F4
+ strb r5, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ b _080705F8
+ .align 2, 0
+_080705A8: .4byte 0x0201c000
+_080705AC: .4byte gTasks
+_080705B0: .4byte gUnknown_0202E8F4
+_080705B4: .4byte gOtherText_WontHaveAnyEffect
+_080705B8:
+ ldr r1, _0807060C @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ bl PlaySE
+ ldrh r0, [r6, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r0, [r6]
+ movs r2, 0x1E
+ ldrsh r1, [r7, r2]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _08070610 @ =gStringVar1
+ movs r1, 0xD
+ muls r1, r5
+ ldr r2, _08070614 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r6, 0x6]
+ bl GetMedicineItemEffectMessage
+ ldr r0, _08070618 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+_080705F8:
+ ldr r0, _0807061C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070620 @ =sub_806FB0C
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807060C: .4byte gUnknown_0202E8F4
+_08070610: .4byte gStringVar1
+_08070614: .4byte gMoveNames
+_08070618: .4byte gStringVar4
+_0807061C: .4byte gTasks
+_08070620: .4byte sub_806FB0C
+ thumb_func_end DoRecoverPP
+
+ thumb_func_start DoPPUpItemEffect
+DoPPUpItemEffect: @ 8070624
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0807066C @ =gTasks
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r3, r4
+ ldr r4, _08070670 @ =TaskDummy
+ str r4, [r3]
+ bl sub_806E8D0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xB
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _08070674 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ bl CreateItemUseMoveMenu
+ ldr r0, _08070678 @ =Task_HandleItemUseMoveMenuInput
+ movs r1, 0x5
+ bl CreateTask
+ ldr r1, _0807067C @ =gMain
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807066C: .4byte gTasks
+_08070670: .4byte TaskDummy
+_08070674: .4byte 0x0201c000
+_08070678: .4byte Task_HandleItemUseMoveMenuInput
+_0807067C: .4byte gMain
+ thumb_func_end DoPPUpItemEffect
+
+ thumb_func_start DoRareCandyItemEffect
+DoRareCandyItemEffect: @ 8070680
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r3, _080706E0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _080706E4 @ =TaskDummy
+ str r3, [r1]
+ adds r1, r6, 0
+ bl sub_806E8D0
+ ldr r5, _080706E8 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _080706F4
+ movs r4, 0
+ ldr r0, _080706EC @ =0xfffff264
+ adds r7, r5, r0
+_080706B2:
+ ldr r0, [r5]
+ ldr r1, _080706F0 @ =gUnknown_08376D1C
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r7, r1
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _080706B2
+ ldr r0, _080706E8 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _080706F6
+ .align 2, 0
+_080706E0: .4byte gTasks
+_080706E4: .4byte TaskDummy
+_080706E8: .4byte 0x0201c000
+_080706EC: .4byte 0xfffff264
+_080706F0: .4byte gUnknown_08376D1C
+_080706F4:
+ movs r0, 0x1
+_080706F6:
+ cmp r0, 0
+ beq _08070724
+ ldr r1, _08070718 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070720 @ =sub_806FB0C
+ movs r1, 0x5
+ bl CreateTask
+ b _0807077C
+ .align 2, 0
+_08070718: .4byte gUnknown_0202E8F4
+_0807071C: .4byte gOtherText_WontHaveAnyEffect
+_08070720: .4byte sub_806FB0C
+_08070724:
+ ldr r1, _08070784 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ bl PlayFanfareByFanfareNum
+ ldr r4, _08070788 @ =0x0201c000
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl sub_8070A20
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r0, [r4]
+ ldr r1, _0807078C @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, [r4]
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08070790 @ =gStringVar2
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, _08070794 @ =gStringVar4
+ ldr r1, _08070798 @ =gOtherText_ElevatedTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0807079C @ =Task_RareCandy1
+ movs r1, 0x5
+ bl CreateTask
+_0807077C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070784: .4byte gUnknown_0202E8F4
+_08070788: .4byte 0x0201c000
+_0807078C: .4byte gStringVar1
+_08070790: .4byte gStringVar2
+_08070794: .4byte gStringVar4
+_08070798: .4byte gOtherText_ElevatedTo
+_0807079C: .4byte Task_RareCandy1
+ thumb_func_end DoRareCandyItemEffect
+
+ thumb_func_start Task_RareCandy1
+Task_RareCandy1: @ 80707A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _080707E8
+ ldr r0, _080707F0 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080707E8
+ ldr r0, _080707F4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080707CE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080707E8
+_080707CE:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_8070848
+ ldr r0, _080707F8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080707FC @ =Task_RareCandy2
+ str r0, [r1]
+_080707E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080707F0: .4byte gUnknown_0202E8F6
+_080707F4: .4byte gMain
+_080707F8: .4byte gTasks
+_080707FC: .4byte Task_RareCandy2
+ thumb_func_end Task_RareCandy1
+
+ thumb_func_start Task_RareCandy2
+Task_RareCandy2: @ 8070800
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807083C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0807081A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08070834
+_0807081A:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_8070968
+ ldr r0, _08070840 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070844 @ =Task_RareCandy3
+ str r0, [r1]
+_08070834:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807083C: .4byte gMain
+_08070840: .4byte gTasks
+_08070844: .4byte Task_RareCandy3
+ thumb_func_end Task_RareCandy2
+
+ .section .text_8070968
+
+ thumb_func_start sub_8070968
+sub_8070968: @ 8070968
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r7, 0
+ ldr r0, _08070A10 @ =0x0201c000
+ mov r9, r0
+ ldr r1, _08070A14 @ =0xfffff264
+ add r1, r9
+ mov r10, r1
+ ldr r0, _08070A18 @ =gStringVar1
+ mov r8, r0
+_08070982:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, _08070A1C @ =gUnknown_08376D1C
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r6, r7, 0x6
+ lsls r6, 1
+ add r6, r10
+ strh r0, [r6]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ adds r4, 0xB
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 1
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ mov r0, r8
+ adds r0, 0x3
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, 0x6
+ lsls r4, 3
+ adds r4, 0x6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 3
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _08070982
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070A10: .4byte 0x0201c000
+_08070A14: .4byte 0xfffff264
+_08070A18: .4byte gStringVar1
+_08070A1C: .4byte gUnknown_08376D1C
+ thumb_func_end sub_8070968
+
+ thumb_func_start sub_8070A20
+sub_8070A20: @ 8070A20
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08070A3A
+ cmp r0, 0x6
+ bne _08070A42
+_08070A3A:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl PartyMenuUpdateLevelOrStatus
+_08070A42:
+ bl IsDoubleBattle
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuTryDrawHPBar
+ ldr r4, _08070ABC @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ bl SetMonIconAnim
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ lsls r1, r7, 1
+ adds r0, r1
+ ldr r1, _08070AC0 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _08070AC4 @ =0xfffff261
+ adds r4, r0
+ movs r0, 0x2
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070ABC: .4byte 0x0201c000
+_08070AC0: .4byte gUnknown_083769A8
+_08070AC4: .4byte 0xfffff261
+ thumb_func_end sub_8070A20
+
+ thumb_func_start Task_RareCandy3
+Task_RareCandy3: @ 8070AC8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070ADC
+ b _08070C2C
+_08070ADC:
+ ldr r0, _08070B24 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ b _08070C2C
+_08070AF4:
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl MenuZeroFillWindowRect
+ ldr r7, _08070B28 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _08070B2C @ =0xfffff282
+ adds r0, r7, r1
+ strh r5, [r0]
+ ldr r0, _08070B30 @ =0x0000fffe
+ cmp r4, r0
+ beq _08070BDC
+ cmp r4, r0
+ bgt _08070B34
+ cmp r4, 0
+ beq _08070B40
+ b _08070BF4
+ .align 2, 0
+_08070B24: .4byte gMain
+_08070B28: .4byte 0x0201c000
+_08070B2C: .4byte 0xfffff282
+_08070B30: .4byte 0x0000fffe
+_08070B34:
+ ldr r0, _08070B3C @ =0x0000ffff
+ cmp r4, r0
+ beq _08070B7C
+ b _08070BF4
+ .align 2, 0
+_08070B3C: .4byte 0x0000ffff
+_08070B40:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070B74
+ ldr r1, _08070B6C @ =gUnknown_03005E94
+ ldr r0, _08070B70 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070C2C
+ .align 2, 0
+_08070B6C: .4byte gUnknown_03005E94
+_08070B70: .4byte sub_80A53F8
+_08070B74:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070C2C
+_08070B7C:
+ ldr r0, [r7]
+ ldr r1, _08070BBC @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070BC0 @ =gStringVar2
+ ldr r5, _08070BC4 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070BC8 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070BCC @ =gStringVar4
+ ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070BD4 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070BD8 @ =sub_806F358
+ b _08070C2A
+ .align 2, 0
+_08070BBC: .4byte gStringVar1
+_08070BC0: .4byte gStringVar2
+_08070BC4: .4byte word_2024E82
+_08070BC8: .4byte gMoveNames
+_08070BCC: .4byte gStringVar4
+_08070BD0: .4byte gOtherText_WantsToLearn
+_08070BD4: .4byte gTasks
+_08070BD8: .4byte sub_806F358
+_08070BDC:
+ ldr r0, _08070BEC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070BF0 @ =sub_8070C54
+ str r0, [r1]
+ b _08070C2C
+ .align 2, 0
+_08070BEC: .4byte gTasks
+_08070BF0: .4byte sub_8070C54
+_08070BF4:
+ ldr r0, _08070C34 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070C38 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070C3C @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070C40 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070C44 @ =gStringVar4
+ ldr r1, _08070C48 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070C4C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070C50 @ =Task_TeamMonTMMove3
+_08070C2A:
+ str r1, [r0]
+_08070C2C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070C34: .4byte 0x0201c000
+_08070C38: .4byte gStringVar1
+_08070C3C: .4byte gStringVar2
+_08070C40: .4byte gMoveNames
+_08070C44: .4byte gStringVar4
+_08070C48: .4byte gOtherText_LearnedMove
+_08070C4C: .4byte gTasks
+_08070C50: .4byte Task_TeamMonTMMove3
+ thumb_func_end Task_RareCandy3
+
+ thumb_func_start sub_8070C54
+sub_8070C54: @ 8070C54
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08070C78 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _08070C7C @ =0x0000fffe
+ cmp r4, r0
+ beq _08070D28
+ cmp r4, r0
+ bgt _08070C80
+ cmp r4, 0
+ beq _08070C8C
+ b _08070D30
+ .align 2, 0
+_08070C78: .4byte 0x0201c000
+_08070C7C: .4byte 0x0000fffe
+_08070C80:
+ ldr r0, _08070C88 @ =0x0000ffff
+ cmp r4, r0
+ beq _08070CC8
+ b _08070D30
+ .align 2, 0
+_08070C88: .4byte 0x0000ffff
+_08070C8C:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070CC0
+ ldr r1, _08070CB8 @ =gUnknown_03005E94
+ ldr r0, _08070CBC @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070D68
+ .align 2, 0
+_08070CB8: .4byte gUnknown_03005E94
+_08070CBC: .4byte sub_80A53F8
+_08070CC0:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070D68
+_08070CC8:
+ ldr r0, [r7]
+ ldr r1, _08070D08 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D0C @ =gStringVar2
+ ldr r5, _08070D10 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070D14 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D18 @ =gStringVar4
+ ldr r1, _08070D1C @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070D20 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D24 @ =sub_806F358
+ b _08070D66
+ .align 2, 0
+_08070D08: .4byte gStringVar1
+_08070D0C: .4byte gStringVar2
+_08070D10: .4byte word_2024E82
+_08070D14: .4byte gMoveNames
+_08070D18: .4byte gStringVar4
+_08070D1C: .4byte gOtherText_WantsToLearn
+_08070D20: .4byte gTasks
+_08070D24: .4byte sub_806F358
+_08070D28:
+ adds r0, r6, 0
+ bl sub_8070C54
+ b _08070D68
+_08070D30:
+ ldr r0, _08070D70 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070D74 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D78 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070D7C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D80 @ =gStringVar4
+ ldr r1, _08070D84 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070D88 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D8C @ =Task_TeamMonTMMove3
+_08070D66:
+ str r1, [r0]
+_08070D68:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070D70: .4byte 0x0201c000
+_08070D74: .4byte gStringVar1
+_08070D78: .4byte gStringVar2
+_08070D7C: .4byte gMoveNames
+_08070D80: .4byte gStringVar4
+_08070D84: .4byte gOtherText_LearnedMove
+_08070D88: .4byte gTasks
+_08070D8C: .4byte Task_TeamMonTMMove3
+ thumb_func_end sub_8070C54
+
+ thumb_func_start sub_8070D90
+sub_8070D90: @ 8070D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08070DB4 @ =gTasks
+ ldr r3, _08070DB8 @ =0x0201c000
+ ldrb r2, [r3, 0x4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r4
+ ldr r2, [r3, 0x10]
+ str r2, [r1]
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070DB4: .4byte gTasks
+_08070DB8: .4byte 0x0201c000
+ thumb_func_end sub_8070D90
+
+ thumb_func_start DoEvolutionStoneItemEffect
+DoEvolutionStoneItemEffect: @ 8070DBC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08070E18 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070E1C @ =TaskDummy
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r1, _08070E20 @ =gUnknown_03005E94
+ ldr r0, _08070E24 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, _08070E28 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070E38
+ ldr r1, _08070E2C @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070E34 @ =sub_806FB0C
+ movs r1, 0x5
+ bl CreateTask
+ b _08070E40
+ .align 2, 0
+_08070E18: .4byte gTasks
+_08070E1C: .4byte TaskDummy
+_08070E20: .4byte gUnknown_03005E94
+_08070E24: .4byte sub_80A53F8
+_08070E28: .4byte 0x0201c000
+_08070E2C: .4byte gUnknown_0202E8F4
+_08070E30: .4byte gOtherText_WontHaveAnyEffect
+_08070E34: .4byte sub_806FB0C
+_08070E38:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_08070E40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end DoEvolutionStoneItemEffect
+
+ thumb_func_start GetItemEffectType
+GetItemEffectType: @ 8070E48
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _08070E5C
+ ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
+ b _08070E66
+ .align 2, 0
+_08070E58: .4byte gSaveBlock1 + 0x3676
+_08070E5C:
+ ldr r1, _08070E8C @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+_08070E66:
+ ldrb r1, [r4]
+ movs r5, 0x3F
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r3, [r4, 0x3]
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _08070E90
+_08070E88:
+ movs r0, 0
+ b _08070F8A
+ .align 2, 0
+_08070E8C: .4byte gItemEffectTable
+_08070E90:
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070E9E
+ movs r0, 0xA
+ b _08070F8A
+_08070E9E:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08070EAA
+ movs r0, 0x1
+ b _08070F8A
+_08070EAA:
+ adds r2, r5, 0
+ ands r2, r3
+ cmp r2, 0
+ bne _08070EB8
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EFA
+_08070EB8:
+ cmp r2, 0x20
+ bne _08070EC0
+ movs r0, 0x4
+ b _08070F8A
+_08070EC0:
+ cmp r2, 0x10
+ bne _08070EC8
+ movs r0, 0x3
+ b _08070F8A
+_08070EC8:
+ cmp r2, 0x8
+ bne _08070ED0
+ movs r0, 0x5
+ b _08070F8A
+_08070ED0:
+ cmp r2, 0x4
+ bne _08070ED8
+ movs r0, 0x6
+ b _08070F8A
+_08070ED8:
+ cmp r2, 0x2
+ bne _08070EE0
+ movs r0, 0x7
+ b _08070F8A
+_08070EE0:
+ cmp r2, 0x1
+ bne _08070EE8
+ movs r0, 0x8
+ b _08070F8A
+_08070EE8:
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EF6
+ cmp r2, 0
+ bne _08070EF6
+ movs r0, 0x9
+ b _08070F8A
+_08070EF6:
+ movs r0, 0xB
+ b _08070F8A
+_08070EFA:
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x44
+ ands r0, r1
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08070F0A
+ movs r0, 0x2
+ b _08070F8A
+_08070F0A:
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F18
+ movs r0, 0xC
+ b _08070F8A
+_08070F18:
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F26
+ movs r0, 0xD
+ b _08070F8A
+_08070F26:
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F34
+ movs r0, 0xE
+ b _08070F8A
+_08070F34:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F40
+ movs r0, 0xF
+ b _08070F8A
+_08070F40:
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F4C
+ movs r0, 0x10
+ b _08070F8A
+_08070F4C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F58
+ movs r0, 0x11
+ b _08070F8A
+_08070F58:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F64
+ movs r0, 0x12
+ b _08070F8A
+_08070F64:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F70
+ movs r0, 0x13
+ b _08070F8A
+_08070F70:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F7C
+ movs r0, 0x14
+ b _08070F8A
+_08070F7C:
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _08070F88
+ movs r0, 0x16
+ b _08070F8A
+_08070F88:
+ movs r0, 0x15
+_08070F8A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetItemEffectType
+
+ thumb_func_start unref_sub_8070F90
+unref_sub_8070F90: @ 8070F90
+ push {lr}
+ ldr r0, _08070FAC @ =0x00000801
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 4
+ bl FlagSet
+ ldr r0, _08070FB0 @ =0x00000802
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070FAC: .4byte 0x00000801
+_08070FB0: .4byte 0x00000802
+ thumb_func_end unref_sub_8070F90
+
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/player_pc.s b/asm/player_pc.s
index da2792564..124891c02 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -6,1185 +6,6 @@
.text
- thumb_func_start NewGameInitPCItems
-NewGameInitPCItems: @ 8139C18
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _08139C6C @ =gSaveBlock1 + 0x498
- movs r1, 0x32
- bl ClearItemSlots
- ldr r1, _08139C70 @ =gNewGamePCItems
- ldrh r0, [r1]
- cmp r0, 0
- beq _08139C64
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _08139C64
- adds r5, r1, 0
- adds r6, r5, 0x2
-_08139C36:
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- adds r1, r6
- ldrh r1, [r1]
- bl AddPCItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08139C64
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08139C64
- adds r0, r1, r6
- ldrh r0, [r0]
- cmp r0, 0
- bne _08139C36
-_08139C64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139C6C: .4byte gSaveBlock1 + 0x498
-_08139C70: .4byte gNewGamePCItems
- thumb_func_end NewGameInitPCItems
-
- thumb_func_start BedroomPC
-BedroomPC: @ 8139C74
- push {lr}
- ldr r1, _08139C9C @ =gUnknown_02039314
- ldr r0, _08139CA0 @ =gUnknown_084062B8
- str r0, [r1]
- ldr r1, _08139CA4 @ =gUnknown_030007B4
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08139CA8 @ =TaskDummy
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CAC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CB0 @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139C9C: .4byte gUnknown_02039314
-_08139CA0: .4byte gUnknown_084062B8
-_08139CA4: .4byte gUnknown_030007B4
-_08139CA8: .4byte TaskDummy
-_08139CAC: .4byte gOtherText_WhatWillYouDo
-_08139CB0: .4byte InitPlayerPCMenu
- thumb_func_end BedroomPC
-
- thumb_func_start PlayerPC
-PlayerPC: @ 8139CB4
- push {lr}
- ldr r1, _08139CDC @ =gUnknown_02039314
- ldr r0, _08139CE0 @ =gUnknown_084062BC
- str r0, [r1]
- ldr r1, _08139CE4 @ =gUnknown_030007B4
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _08139CE8 @ =TaskDummy
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CEC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CF0 @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139CDC: .4byte gUnknown_02039314
-_08139CE0: .4byte gUnknown_084062BC
-_08139CE4: .4byte gUnknown_030007B4
-_08139CE8: .4byte TaskDummy
-_08139CEC: .4byte gOtherText_WhatWillYouDo
-_08139CF0: .4byte InitPlayerPCMenu
- thumb_func_end PlayerPC
-
- thumb_func_start InitPlayerPCMenu
-InitPlayerPCMenu: @ 8139CF4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08139D50 @ =gUnknown_030007B4
- ldrb r3, [r5]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- bl MenuDrawTextWindow
- ldrb r2, [r5]
- ldr r3, _08139D54 @ =gUnknown_08406298
- ldr r0, _08139D58 @ =gUnknown_02039314
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
- ldr r1, _08139D5C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139D60 @ =PlayerPCProcessMenuInput
- str r1, [r0]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139D50: .4byte gUnknown_030007B4
-_08139D54: .4byte gUnknown_08406298
-_08139D58: .4byte gUnknown_02039314
-_08139D5C: .4byte gTasks
-_08139D60: .4byte PlayerPCProcessMenuInput
- thumb_func_end InitPlayerPCMenu
-
- thumb_func_start PlayerPCProcessMenuInput
-PlayerPCProcessMenuInput: @ 8139D64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139D88 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139D8C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08139E10
- .align 2, 0
-_08139D88: .4byte gMain
-_08139D8C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139DA2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08139E10
-_08139DA2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139DE0
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08139DD8 @ =gUnknown_08406298
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139DDC @ =gUnknown_02039314
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _08139E10
- .align 2, 0
-_08139DD8: .4byte gUnknown_08406298
-_08139DDC: .4byte gUnknown_02039314
-_08139DE0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08139E10
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08139E18 @ =gUnknown_08406298
- ldr r0, _08139E1C @ =gUnknown_030007B4
- ldrb r0, [r0]
- ldr r1, _08139E20 @ =gUnknown_02039314
- ldr r1, [r1]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08139E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E18: .4byte gUnknown_08406298
-_08139E1C: .4byte gUnknown_030007B4
-_08139E20: .4byte gUnknown_02039314
- thumb_func_end PlayerPCProcessMenuInput
-
- thumb_func_start ReshowPlayerPC
-ReshowPlayerPC: @ 8139E24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139E38 @ =gOtherText_WhatWillYouDo
- ldr r2, _08139E3C @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139E38: .4byte gOtherText_WhatWillYouDo
-_08139E3C: .4byte InitPlayerPCMenu
- thumb_func_end ReshowPlayerPC
-
- thumb_func_start PlayerPC_ItemStorage
-PlayerPC_ItemStorage: @ 8139E40
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl InitItemStorageMenu
- ldr r1, _08139E64 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139E68 @ =ItemStorageMenuProcessInput
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E64: .4byte gTasks
-_08139E68: .4byte ItemStorageMenuProcessInput
- thumb_func_end PlayerPC_ItemStorage
-
- thumb_func_start PlayerPC_Mailbox
-PlayerPC_Mailbox: @ 8139E6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_813AF3C
- ldr r1, _08139E9C @ =0x0201fe00
- movs r2, 0
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- bne _08139EA8
- ldr r1, _08139EA0 @ =gOtherText_NoMailHere
- ldr r2, _08139EA4 @ =ReshowPlayerPC
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08139ECA
- .align 2, 0
-_08139E9C: .4byte 0x0201fe00
-_08139EA0: .4byte gOtherText_NoMailHere
-_08139EA4: .4byte ReshowPlayerPC
-_08139EA8:
- strb r2, [r1]
- strb r2, [r1, 0x2]
- bl sub_813AF78
- adds r0, r4, 0
- bl sub_813A240
- adds r0, r4, 0
- bl sub_813B108
- ldr r0, _08139ED0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08139ED4 @ =sub_813B174
- str r0, [r1]
-_08139ECA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139ED0: .4byte gTasks
-_08139ED4: .4byte sub_813B174
- thumb_func_end PlayerPC_Mailbox
-
- thumb_func_start PlayerPC_Decoration
-PlayerPC_Decoration: @ 8139ED8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DoPlayerPCDecoration
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerPC_Decoration
-
- thumb_func_start PlayerPC_TurnOff
-PlayerPC_TurnOff: @ 8139EF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08139F24 @ =gUnknown_030007B4
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08139F3C
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08139F28 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08139F30
- ldr r0, _08139F2C @ =gUnknown_08152850
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F24: .4byte gUnknown_030007B4
-_08139F28: .4byte gSaveBlock2
-_08139F2C: .4byte gUnknown_08152850
-_08139F30:
- ldr r0, _08139F38 @ =gUnknown_08152C75
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F38: .4byte gUnknown_08152C75
-_08139F3C:
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08139F4C:
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerPC_TurnOff
-
- thumb_func_start InitItemStorageMenu
-InitItemStorageMenu: @ 8139F58
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _08139FAC @ =gUnknown_084062C0
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r0, _08139FB0 @ =gUnknown_08406288
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl ItemStorageMenuPrint
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139FAC: .4byte gUnknown_084062C0
-_08139FB0: .4byte gUnknown_08406288
- thumb_func_end InitItemStorageMenu
-
- thumb_func_start ItemStorageMenuPrint
-ItemStorageMenuPrint: @ 8139FB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemStorageMenuPrint
-
- thumb_func_start ItemStorageMenuProcessInput
-ItemStorageMenuProcessInput: @ 8139FD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139FF4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139FF8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813A008
- .align 2, 0
-_08139FF4: .4byte gMain
-_08139FF8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A024
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813A008:
- bl MoveMenuCursor
- ldr r4, _0813A020 @ =gUnknown_08406288
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl ItemStorageMenuPrint
- b _0813A06C
- .align 2, 0
-_0813A020: .4byte gUnknown_08406288
-_0813A024:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A050
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813A04C @ =gUnknown_084062C0
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0813A06C
- .align 2, 0
-_0813A04C: .4byte gUnknown_084062C0
-_0813A050:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A06C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813A074 @ =gUnknown_084062C0
- ldr r1, [r0, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
-_0813A06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A074: .4byte gUnknown_084062C0
- thumb_func_end ItemStorageMenuProcessInput
-
- thumb_func_start Task_ItemStorage_Deposit
-Task_ItemStorage_Deposit: @ 813A078
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813A09C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813A094
- bl sub_80A6A30
- adds r0, r4, 0
- bl DestroyTask
-_0813A094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A09C: .4byte gPaletteFade
- thumb_func_end Task_ItemStorage_Deposit
-
- thumb_func_start ItemStorage_Deposit
-ItemStorage_Deposit: @ 813A0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813A0C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813A0C4 @ =Task_ItemStorage_Deposit
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0C0: .4byte gTasks
-_0813A0C4: .4byte Task_ItemStorage_Deposit
- thumb_func_end ItemStorage_Deposit
-
- thumb_func_start sub_813A0C8
-sub_813A0C8: @ 813A0C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A0E8
- ldr r0, _0813A0F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813A0F4 @ =ItemStorageMenuProcessInput
- str r0, [r1]
-_0813A0E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0F0: .4byte gTasks
-_0813A0F4: .4byte ItemStorageMenuProcessInput
- thumb_func_end sub_813A0C8
-
- thumb_func_start sub_813A0F8
-sub_813A0F8: @ 813A0F8
- push {lr}
- bl MenuDisplayMessageBox
- movs r0, 0x1
- bl InitItemStorageMenu
- ldr r0, _0813A114 @ =sub_813A0C8
- movs r1, 0
- bl CreateTask
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813A114: .4byte sub_813A0C8
- thumb_func_end sub_813A0F8
-
- thumb_func_start ItemStorage_Withdraw
-ItemStorage_Withdraw: @ 813A118
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A174 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl CountUsedPCItemSlots
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A17C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- strh r0, [r4, 0xC]
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A178 @ =sub_813A280
- str r1, [r0]
- b _0813A188
- .align 2, 0
-_0813A174: .4byte gTasks + 0x8
-_0813A178: .4byte sub_813A280
-_0813A17C:
- ldr r1, _0813A190 @ =gOtherText_NoItems
- ldr r2, _0813A194 @ =PlayerPC_ItemStorage
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A188:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A190: .4byte gOtherText_NoItems
-_0813A194: .4byte PlayerPC_ItemStorage
- thumb_func_end ItemStorage_Withdraw
-
- thumb_func_start ItemStorage_Toss
-ItemStorage_Toss: @ 813A198
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A1F8 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl CountUsedPCItemSlots
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A200
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A1FC @ =sub_813A280
- str r1, [r0]
- b _0813A20C
- .align 2, 0
-_0813A1F8: .4byte gTasks + 0x8
-_0813A1FC: .4byte sub_813A280
-_0813A200:
- ldr r1, _0813A214 @ =gOtherText_NoItems
- ldr r2, _0813A218 @ =PlayerPC_ItemStorage
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A214: .4byte gOtherText_NoItems
-_0813A218: .4byte PlayerPC_ItemStorage
- thumb_func_end ItemStorage_Toss
-
- thumb_func_start ItemStorage_Exit
-ItemStorage_Exit: @ 813A21C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl ReshowPlayerPC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemStorage_Exit
-
- thumb_func_start sub_813A240
-sub_813A240: @ 813A240
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813A260 @ =gTasks + 0x8
- adds r1, r0
- ldrh r2, [r1, 0x4]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- ble _0813A264
- movs r0, 0x8
- b _0813A266
- .align 2, 0
-_0813A260: .4byte gTasks + 0x8
-_0813A264:
- adds r0, r2, 0x1
-_0813A266:
- strh r0, [r1, 0x8]
- ldr r1, _0813A274 @ =0x0201fe00
- ldrb r0, [r1, 0x3]
- cmp r0, 0x7
- bls _0813A278
- movs r0, 0x8
- b _0813A27A
- .align 2, 0
-_0813A274: .4byte 0x0201fe00
-_0813A278:
- adds r0, 0x1
-_0813A27A:
- strb r0, [r1, 0x1]
- pop {r0}
- bx r0
- thumb_func_end sub_813A240
-
- thumb_func_start sub_813A280
-sub_813A280: @ 813A280
- 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, _0813A2DC @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r2, _0813A2E0 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A306
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813A2E4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A2CC
- b _0813A460
-_0813A2CC:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _0813A34C
- b _0813A358
- .align 2, 0
-_0813A2DC: .4byte gTasks + 0x8
-_0813A2E0: .4byte gMain
-_0813A2E4:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A2EE
- b _0813A460
-_0813A2EE:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- b _0813A394
-_0813A306:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A3A0
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _0813A370
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A340
- b _0813A460
-_0813A340:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813A358
-_0813A34C:
- ldr r0, _0813A354 @ =0x0000ffff
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A354: .4byte 0x0000ffff
-_0813A358:
- ldr r0, _0813A36C @ =gSaveBlock1
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A36C: .4byte gSaveBlock1
-_0813A370:
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r1, 0x12
- ldrsh r0, [r4, r1]
-_0813A394:
- cmp r0, 0
- beq _0813A460
- movs r0, 0
- bl MoveMenuCursor
- b _0813A460
-_0813A3A0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0813A3F0
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A3E8
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A3DC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- strh r0, [r4, 0x12]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldr r0, _0813A3E4 @ =0x0000fff7
- bl sub_813AD58
-_0813A3DC:
- adds r0, r5, 0
- bl sub_813ABE8
- b _0813A460
- .align 2, 0
-_0813A3E4: .4byte 0x0000fff7
-_0813A3E8:
- movs r0, 0x5
- bl PlaySE
- b _0813A420
-_0813A3F0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A430
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A420
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A44A
- adds r0, r5, 0
- bl sub_813A4B4
- b _0813A460
-_0813A420:
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AA30
- adds r0, r5, 0
- bl sub_813AE0C
- b _0813A460
-_0813A430:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A452
- bl sub_8072DEC
-_0813A44A:
- adds r0, r5, 0
- bl sub_813A468
- b _0813A460
-_0813A452:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_813AA30
- adds r0, r6, 0
- bl sub_813AE0C
-_0813A460:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813A280
-
- thumb_func_start sub_813A468
-sub_813A468: @ 813A468
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl BuyMenuFreeMemory
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl MenuDisplayMessageBox
- ldr r0, _0813A4AC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x14]
- bl InitItemStorageMenu
- ldr r0, _0813A4B0 @ =ItemStorageMenuProcessInput
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A4AC: .4byte gTasks
-_0813A4B0: .4byte ItemStorageMenuProcessInput
- thumb_func_end sub_813A468
-
- thumb_func_start sub_813A4B4
-sub_813A4B4: @ 813A4B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0813A500 @ =gTasks + 0x8
- adds r4, r0, r1
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A518
- ldr r1, _0813A504 @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A508 @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A50C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A6FC
- b _0813A570
- .align 2, 0
-_0813A500: .4byte gTasks + 0x8
-_0813A504: .4byte gSaveBlock1
-_0813A508: .4byte 0x0000049a
-_0813A50C:
- ldr r0, _0813A514 @ =0x0000fffe
- bl sub_813AD58
- b _0813A542
- .align 2, 0
-_0813A514: .4byte 0x0000fffe
-_0813A518:
- ldr r1, _0813A534 @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A538 @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A53C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A794
- b _0813A570
- .align 2, 0
-_0813A534: .4byte gSaveBlock1
-_0813A538: .4byte 0x0000049a
-_0813A53C:
- ldr r0, _0813A578 @ =0x0000fffc
- bl sub_813AD58
-_0813A542:
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r0, 0x6
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- ldr r1, _0813A57C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A580 @ =sub_813A584
- str r1, [r0]
-_0813A570:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A578: .4byte 0x0000fffc
-_0813A57C: .4byte gTasks
-_0813A580: .4byte sub_813A584
- thumb_func_end sub_813A4B4
-
thumb_func_start sub_813A584
sub_813A584: @ 813A584
push {r4-r7,lr}
@@ -2574,7 +1395,7 @@ _0813B036:
mov r0, r8
bl StringCopy
mov r0, r8
- bl sub_814A568
+ bl SanitizeNameString
mov r0, r8
movs r1, 0x15
adds r2, r5, 0
@@ -2862,7 +1683,7 @@ sub_813B294: @ 813B294
adds r0, r4, 0
bl StringCopy
adds r0, r4, 0
- bl sub_814A568
+ bl SanitizeNameString
ldr r4, _0813B2F4 @ =gStringVar4
ldr r1, _0813B2F8 @ =gOtherText_WhatWillYouDoMail
adds r0, r4, 0
@@ -3079,7 +1900,7 @@ sub_813B454: @ 813B454
adds r0, r1
ldr r1, _0813B49C @ =sub_813B4F0
movs r2, 0x1
- bl sub_80F890C
+ bl HandleReadMail
adds r0, r4, 0
bl DestroyTask
_0813B488:
diff --git a/asm/pokeball.s b/asm/pokeball.s
new file mode 100644
index 000000000..57e4a5a21
--- /dev/null
+++ b/asm/pokeball.s
@@ -0,0 +1,2787 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8046400
+sub_8046400: @ 8046400
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _08046450 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r6, _08046454 @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08046458 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0804645C @ =sub_8046464
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08046460 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ ldrb r0, [r6]
+ strh r0, [r1, 0xE]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08046450: .4byte gUnknown_02024E6D
+_08046454: .4byte gUnknown_02024A60
+_08046458: .4byte 0x02017810
+_0804645C: .4byte sub_8046464
+_08046460: .4byte gTasks
+ thumb_func_end sub_8046400
+
+ thumb_func_start sub_8046464
+sub_8046464: @ 8046464
+ 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 r10, r0
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _08046498 @ =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0804649C
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ b _08046616
+ .align 2, 0
+_08046498: .4byte gTasks
+_0804649C:
+ ldrh r0, [r1, 0xC]
+ mov r8, r0
+ ldrb r5, [r1, 0xE]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080464C8
+ ldr r1, _080464C0 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080464C4 @ =gEnemyParty
+ b _080464D6
+ .align 2, 0
+_080464C0: .4byte gUnknown_02024A6A
+_080464C4: .4byte gEnemyParty
+_080464C8:
+ ldr r1, _08046544 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08046548 @ =gPlayerParty
+_080464D6:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80478DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0804654C @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ movs r1, 0x20
+ movs r2, 0x50
+ movs r3, 0x1D
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08046550 @ =gSprites
+ mov r9, r2
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r6, r0, 2
+ adds r4, r6, r2
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ movs r3, 0
+ strh r3, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ mov r2, r8
+ cmp r2, 0xFE
+ beq _0804655C
+ cmp r2, 0xFF
+ bne _08046598
+ ldr r0, _08046554 @ =gUnknown_02024C08
+ strb r5, [r0]
+ movs r0, 0x18
+ strh r0, [r4, 0x20]
+ movs r0, 0x44
+ strh r0, [r4, 0x22]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _08046558 @ =sub_8047074
+ str r1, [r0]
+ b _080465A6
+ .align 2, 0
+_08046544: .4byte gUnknown_02024A6A
+_08046548: .4byte gPlayerParty
+_0804654C: .4byte gSpriteTemplate_820AAB4
+_08046550: .4byte gSprites
+_08046554: .4byte gUnknown_02024C08
+_08046558: .4byte sub_8047074
+_0804655C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x18
+ strh r0, [r4, 0x22]
+ ldr r0, _08046590 @ =gUnknown_02024C08
+ strb r5, [r0]
+ movs r3, 0
+ strh r3, [r4, 0x2E]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _08046594 @ =sub_8047254
+ str r1, [r0]
+ b _080465A6
+ .align 2, 0
+_08046590: .4byte gUnknown_02024C08
+_08046594: .4byte sub_8047254
+_08046598:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _080465C4 @ =gUnknown_02024C08
+ strb r0, [r1]
+ movs r0, 0x1
+ str r0, [sp]
+_080465A6:
+ ldr r0, _080465C8 @ =gSprites
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r4, r1, r0
+ ldr r5, _080465C4 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strh r0, [r4, 0x3A]
+ ldr r2, [sp]
+ cmp r2, 0
+ bne _080465CC
+ mov r0, r10
+ bl DestroyTask
+ b _08046616
+ .align 2, 0
+_080465C4: .4byte gUnknown_02024C08
+_080465C8: .4byte gSprites
+_080465CC:
+ movs r0, 0x22
+ strh r0, [r4, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r4, 0x36]
+ ldr r0, _08046628 @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ mov r3, r10
+ strh r3, [r4, 0x6]
+ ldr r1, _0804662C @ =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r5]
+ strh r1, [r0, 0x10]
+ ldr r1, _08046630 @ =TaskDummy
+ str r1, [r0]
+ movs r0, 0x3D
+ bl PlaySE
+_08046616:
+ 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
+_08046628: .4byte 0x0000ffd8
+_0804662C: .4byte gTasks
+_08046630: .4byte TaskDummy
+ thumb_func_end sub_8046464
+
+ thumb_func_start objc_0804ABD4
+objc_0804ABD4: @ 8046634
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080466D4
+ ldrb r6, [r7, 0x6]
+ ldr r1, _080466E0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrb r5, [r0, 0x10]
+ ldrb r0, [r0, 0xC]
+ mov r8, r0
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r7, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r2, [r7, 0x22]
+ adds r0, r2
+ strh r0, [r7, 0x22]
+ strh r1, [r7, 0x24]
+ strh r1, [r7, 0x26]
+ strh r1, [r7, 0x38]
+ adds r0, r5, 0
+ bl sub_8047978
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ ldrh r0, [r7, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ adds r3, r4, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x2E]
+ strh r5, [r7, 0x3A]
+ mov r0, r8
+ strh r0, [r7, 0x3C]
+ adds r0, r6, 0
+ bl DestroyTask
+ ldr r0, _080466E4 @ =sub_80466E8
+ str r0, [r7, 0x1C]
+_080466D4:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080466E0: .4byte gTasks
+_080466E4: .4byte sub_80466E8
+ thumb_func_end objc_0804ABD4
+
+ thumb_func_start sub_80466E8
+sub_80466E8: @ 80466E8
+ ldr r1, _080466F0 @ =sub_80466F4
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080466F0: .4byte sub_80466F4
+ thumb_func_end sub_80466E8
+
+ thumb_func_start sub_80466F4
+sub_80466F4: @ 80466F4
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x38]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0804674E
+ strh r7, [r6, 0x38]
+ ldr r0, _08046754 @ =sub_8046760
+ str r0, [r6, 0x1C]
+ ldr r5, _08046758 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0804675C @ =gSprites
+ adds r0, r4
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl AnimateSprite
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x30]
+_0804674E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046754: .4byte sub_8046760
+_08046758: .4byte gUnknown_02024BE0
+_0804675C: .4byte gSprites
+ thumb_func_end sub_80466F4
+
+ thumb_func_start sub_8046760
+sub_8046760: @ 8046760
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _08046778
+ movs r0, 0x3C
+ bl PlaySE
+_08046778:
+ ldr r6, _080467C4 @ =gSprites
+ ldr r5, _080467C8 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080467D0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ 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]
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldr r0, _080467CC @ =sub_80467F8
+ str r0, [r4, 0x1C]
+ b _080467F0
+ .align 2, 0
+_080467C4: .4byte gSprites
+_080467C8: .4byte gUnknown_02024BE0
+_080467CC: .4byte sub_80467F8
+_080467D0:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x60
+ strh r0, [r1, 0x30]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r1, 0x26]
+_080467F0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046760
+
+ thumb_func_start sub_80467F8
+sub_80467F8: @ 80467F8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046840
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08046840
+ strh r1, [r4, 0x34]
+ movs r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ movs r0, 0
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldr r0, _08046848 @ =sub_804684C
+ str r0, [r4, 0x1C]
+_08046840:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046848: .4byte sub_804684C
+ thumb_func_end sub_80467F8
+
+ thumb_func_start sub_804684C
+sub_804684C: @ 804684C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0
+ beq _08046862
+ cmp r1, 0x1
+ beq _080468D6
+ b _08046902
+_08046862:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ adds r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x3F
+ ble _08046902
+ ldrh r0, [r4, 0x36]
+ subs r0, 0xA
+ strh r0, [r4, 0x36]
+ ldr r1, _080468AC @ =0x00000101
+ adds r0, r2, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _0804689E
+ movs r5, 0x1
+_0804689E:
+ cmp r0, 0x2
+ beq _080468BE
+ cmp r0, 0x2
+ bgt _080468B0
+ cmp r0, 0x1
+ beq _080468B6
+ b _080468CE
+ .align 2, 0
+_080468AC: .4byte 0x00000101
+_080468B0:
+ cmp r0, 0x3
+ beq _080468C6
+ b _080468CE
+_080468B6:
+ movs r0, 0x38
+ bl PlaySE
+ b _08046902
+_080468BE:
+ movs r0, 0x39
+ bl PlaySE
+ b _08046902
+_080468C6:
+ movs r0, 0x3A
+ bl PlaySE
+ b _08046902
+_080468CE:
+ movs r0, 0x3B
+ bl PlaySE
+ b _08046902
+_080468D6:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ subs r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ subs r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _08046902
+ strh r5, [r4, 0x38]
+ ldr r0, _08046928 @ =0xffffff00
+ ands r0, r2
+ strh r0, [r4, 0x34]
+_08046902:
+ cmp r5, 0
+ beq _0804693A
+ movs r5, 0
+ strh r5, [r4, 0x34]
+ movs r0, 0x40
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08046930
+ ldr r0, _0804692C @ =sub_8046C78
+ str r0, [r4, 0x1C]
+ b _0804693A
+ .align 2, 0
+_08046928: .4byte 0xffffff00
+_0804692C: .4byte sub_8046C78
+_08046930:
+ ldr r0, _08046940 @ =sub_8046944
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+_0804693A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046940: .4byte sub_8046944
+ thumb_func_end sub_804684C
+
+ thumb_func_start sub_8046944
+sub_8046944: @ 8046944
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08046978
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _08046980 @ =sub_8046984
+ str r0, [r4, 0x1C]
+ movs r0, 0x17
+ bl PlaySE
+_08046978:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046980: .4byte sub_8046984
+ thumb_func_end sub_8046944
+
+ thumb_func_start sub_8046984
+sub_8046984: @ 8046984
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x4
+ bhi _08046A84
+ lsls r0, r1, 2
+ ldr r1, _0804699C @ =_080469A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804699C: .4byte _080469A0
+ .align 2, 0
+_080469A0:
+ .4byte _080469B4
+ .4byte _080469E6
+ .4byte _080469B4
+ .4byte _08046A3A
+ .4byte _08046A84
+_080469B4:
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x24]
+ adds r1, r0, r2
+ strh r1, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bls _08046ACA
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ b _08046ACA
+_080469E6:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08046A2C
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _08046A22
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _08046ACA
+_08046A22:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _08046ACA
+_08046A2C:
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _08046ACA
+_08046A3A:
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x34]
+ adds r0, r2
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08046A5C
+ ldr r0, _08046A58 @ =sub_8046C78
+ str r0, [r4, 0x1C]
+ b _08046ACA
+ .align 2, 0
+_08046A58: .4byte sub_8046C78
+_08046A5C:
+ cmp r1, 0x4
+ bne _08046A70
+ cmp r0, 0x3
+ bne _08046A70
+ ldr r0, _08046A6C @ =sub_8046E7C
+ str r0, [r4, 0x1C]
+ b _08046A76
+ .align 2, 0
+_08046A6C: .4byte sub_8046E7C
+_08046A70:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+_08046A76:
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ b _08046ACA
+_08046A84:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08046ACA
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _08046AB8 @ =0xffffff00
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _08046ABC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _08046AC4
+ .align 2, 0
+_08046AB8: .4byte 0xffffff00
+_08046ABC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08046AC4:
+ movs r0, 0x17
+ bl PlaySE
+_08046ACA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046984
+
+ thumb_func_start sub_8046AD0
+sub_8046AD0: @ 8046AD0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08046AFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r6, [r0, 0xC]
+ ldrb r3, [r0, 0xA]
+ ldrh r5, [r0, 0x8]
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x20
+ bhi _08046B88
+ lsls r0, 2
+ ldr r1, _08046B00 @ =_08046B04
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08046AFC: .4byte gTasks
+_08046B00: .4byte _08046B04
+ .align 2, 0
+_08046B04:
+ .4byte _08046B88
+ .4byte _08046BA6
+ .4byte _08046BB2
+ .4byte _08046BF6
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046BD0
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046C08
+ .4byte _08046C20
+ .4byte _08046C48
+_08046B88:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _08046BA0
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x18]
+ b _08046C72
+_08046BA0:
+ adds r0, r6, 0x1
+ strh r0, [r1, 0x26]
+ b _08046C72
+_08046BA6:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlayCry1
+ b _08046BEE
+_08046BB2:
+ bl StopCryAndClearCrySongs
+ ldr r1, _08046BCC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x1C]
+ movs r1, 0x14
+ strh r1, [r0, 0x26]
+ b _08046C72
+ .align 2, 0
+_08046BCC: .4byte gTasks
+_08046BD0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _08046C5A
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl PlayCry4
+_08046BEE:
+ adds r0, r4, 0
+ bl DestroyTask
+ b _08046C72
+_08046BF6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x6
+ strh r1, [r0, 0x1C]
+ movs r1, 0x1E
+ strh r1, [r0, 0x26]
+ b _08046C72
+_08046C08:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r3, 0x1C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08046C5A
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+_08046C20:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _08046C72
+ bl StopCryAndClearCrySongs
+ ldr r0, _08046C44 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08046C72
+ .align 2, 0
+_08046C44: .4byte gTasks
+_08046C48:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ beq _08046C60
+_08046C5A:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x1C]
+ b _08046C72
+_08046C60:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0
+ bl PlayCry4
+ adds r0, r4, 0
+ bl DestroyTask
+_08046C72:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046AD0
+
+ thumb_func_start sub_8046C78
+sub_8046C78: @ 8046C78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_8047978
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ ldrh r0, [r6, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldrh r1, [r6, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ movs r2, 0xE
+ adds r3, r4, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x2E]
+ ldr r0, _08046D0C @ =sub_8046E9C
+ str r0, [r6, 0x1C]
+ ldr r0, _08046D10 @ =gMain
+ ldr r1, _08046D14 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08046CE8
+ b _08046E1C
+_08046CE8:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046D20
+ ldr r1, _08046D18 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08046D1C @ =gEnemyParty
+ adds r0, r1, r0
+ movs r3, 0x19
+ mov r8, r3
+ b _08046D34
+ .align 2, 0
+_08046D0C: .4byte sub_8046E9C
+_08046D10: .4byte gMain
+_08046D14: .4byte 0x0000043d
+_08046D18: .4byte gUnknown_02024A6A
+_08046D1C: .4byte gEnemyParty
+_08046D20:
+ ldr r1, _08046D90 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08046D94 @ =gPlayerParty
+ adds r0, r1, r0
+ movs r1, 0xE7
+ mov r8, r1
+_08046D34:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08046D5A
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bne _08046DAE
+_08046D5A:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046D98 @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046D9C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DA4
+ bl IsBGMPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046DA0 @ =gMPlay_BGM
+ bl m4aMPlayStop
+ b _08046DAE
+ .align 2, 0
+_08046D90: .4byte gUnknown_02024A6A
+_08046D94: .4byte gPlayerParty
+_08046D98: .4byte 0x02017840
+_08046D9C: .4byte gBattleTypeFlags
+_08046DA0: .4byte gMPlay_BGM
+_08046DA4:
+ ldr r0, _08046DC8 @ =gMPlay_BGM
+ ldr r1, _08046DCC @ =0x0000ffff
+ movs r2, 0x80
+ bl m4aMPlayVolumeControl
+_08046DAE:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DC4
+ ldr r0, _08046DD0 @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08046DD4
+_08046DC4:
+ movs r4, 0
+ b _08046DF6
+ .align 2, 0
+_08046DC8: .4byte gMPlay_BGM
+_08046DCC: .4byte 0x0000ffff
+_08046DD0: .4byte 0x02017840
+_08046DD4:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08046DF0
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bne _08046DF4
+_08046DF0:
+ movs r4, 0x1
+ b _08046DF6
+_08046DF4:
+ movs r4, 0x2
+_08046DF6:
+ ldr r0, _08046E6C @ =sub_8046AD0
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08046E70 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r7, [r1, 0x8]
+ mov r3, r8
+ lsls r0, r3, 24
+ asrs r0, 24
+ strh r0, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r2, [r1, 0x26]
+_08046E1C:
+ ldr r5, _08046E74 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08046E78 @ =gSprites
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r3, 0x3A
+ ldrsh r0, [r6, r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl AnimateSprite
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r0, 0x30]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046E6C: .4byte sub_8046AD0
+_08046E70: .4byte gTasks
+_08046E74: .4byte gUnknown_02024BE0
+_08046E78: .4byte gSprites
+ thumb_func_end sub_8046C78
+
+ thumb_func_start sub_8046E7C
+sub_8046E7C: @ 8046E7C
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08046E98 @ =sub_8046FBC
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ bx lr
+ .align 2, 0
+_08046E98: .4byte sub_8046FBC
+ thumb_func_end sub_8046E7C
+
+ thumb_func_start sub_8046E9C
+sub_8046E9C: @ 8046E9C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r7, 0
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, _08046F00 @ =gSprites
+ ldr r0, _08046F04 @ =gUnknown_02024BE0
+ adds r3, r4, r0
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046EDE
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08046EDE:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _08046F08
+ adds r0, r1, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r7, 0x1
+ b _08046F24
+ .align 2, 0
+_08046F00: .4byte gSprites
+_08046F04: .4byte gUnknown_02024BE0
+_08046F08:
+ ldr r2, _08046FA8 @ =0xfffffee0
+ adds r0, r2, 0
+ ldrh r2, [r1, 0x30]
+ adds r0, r2
+ strh r0, [r1, 0x30]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+_08046F24:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046FA0
+ cmp r7, 0
+ beq _08046FA0
+ ldr r2, _08046FAC @ =gSprites
+ ldr r0, _08046FB0 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ ldr r0, _08046FB4 @ =gUnknown_02024E6D
+ strb r2, [r0]
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ ldr r4, _08046FB8 @ =0x02017810
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r5, 0
+ bl DestroySprite
+ movs r3, 0
+ movs r5, 0x8
+ adds r2, r4, 0
+ movs r4, 0x3
+_08046F78:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08046F84
+ adds r3, 0x1
+_08046F84:
+ adds r2, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08046F78
+ cmp r3, 0x4
+ bne _08046FA0
+ movs r4, 0
+_08046F92:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_804794C
+ adds r4, 0x1
+ cmp r4, 0xB
+ ble _08046F92
+_08046FA0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046FA8: .4byte 0xfffffee0
+_08046FAC: .4byte gSprites
+_08046FB0: .4byte gUnknown_02024BE0
+_08046FB4: .4byte gUnknown_02024E6D
+_08046FB8: .4byte 0x02017810
+ thumb_func_end sub_8046E9C
+
+ thumb_func_start sub_8046FBC
+sub_8046FBC: @ 8046FBC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r6, 0x36]
+ adds r0, 0x1
+ strh r0, [r6, 0x36]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x28
+ beq _08047056
+ cmp r1, 0x5F
+ bne _08046FF4
+ ldr r0, _08046FEC @ =gUnknown_02024E6D
+ movs r1, 0
+ strb r1, [r0]
+ bl m4aMPlayAllStop
+ ldr r0, _08046FF0 @ =0x00000173
+ bl PlaySE
+ b _08047056
+ .align 2, 0
+_08046FEC: .4byte gUnknown_02024E6D
+_08046FF0: .4byte 0x00000173
+_08046FF4:
+ ldr r0, _0804705C @ =0x0000013b
+ cmp r1, r0
+ bne _08047056
+ ldr r5, _08047060 @ =gSprites
+ ldr r4, _08047064 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r6, 0
+ bl DestroySpriteAndFreeResources
+ ldr r0, _08047068 @ =gMain
+ ldr r1, _0804706C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08047056
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 2
+ ldr r0, _08047070 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_08047056:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804705C: .4byte 0x0000013b
+_08047060: .4byte gSprites
+_08047064: .4byte gUnknown_02024BE0
+_08047068: .4byte gMain
+_0804706C: .4byte 0x0000043d
+_08047070: .4byte 0x02017810
+ thumb_func_end sub_8046FBC
+
+ thumb_func_start sub_8047074
+sub_8047074: @ 8047074
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x19
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x18
+ strh r0, [r4, 0x36]
+ ldr r0, _080470BC @ =0x0000ffe2
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x6]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080470C0 @ =sub_80470C4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080470BC: .4byte 0x0000ffe2
+_080470C0: .4byte sub_80470C4
+ thumb_func_end sub_8047074
+
+ thumb_func_start sub_80470C4
+sub_80470C4: @ 80470C4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x3C]
+ movs r1, 0xFF
+ mov r8, r1
+ lsrs r0, 8
+ subs r0, 0x23
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2C
+ bhi _080471B8
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _08047126
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ adds r6, r1, 0
+ ands r6, r0
+ ldrh r0, [r5, 0x32]
+ adds r7, r1, 0
+ ands r7, r0
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ movs r1, 0x3
+ bl __divsi3
+ movs r1, 0x2
+ negs r1, r1
+ adds r4, r1, 0
+ ands r0, r4
+ orrs r6, r0
+ strh r6, [r5, 0x30]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r1, 0x3
+ bl __divsi3
+ ands r0, r4
+ orrs r7, r0
+ strh r7, [r5, 0x32]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl StartSpriteAffineAnim
+_08047126:
+ ldrh r4, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078B5C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x3
+ bl __divsi3
+ adds r1, r0, 0
+ ldrh r0, [r5, 0x3C]
+ adds r0, r1
+ strh r0, [r5, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ mov r2, r8
+ ands r0, r2
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r5, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x6]
+ lsls r0, 16
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08047176
+ strh r4, [r5, 0x2E]
+ b _0804717E
+_08047176:
+ lsls r0, r4, 16
+ asrs r0, 16
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+_0804717E:
+ ldrh r0, [r5, 0x3C]
+ lsrs r0, 8
+ cmp r0, 0x4F
+ ble _08047220
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ adds r6, r1, 0
+ ands r6, r0
+ ldrh r0, [r5, 0x32]
+ adds r7, r1, 0
+ ands r7, r0
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ movs r1, 0x2
+ negs r1, r1
+ adds r2, r1, 0
+ ands r0, r2
+ orrs r0, r6
+ strh r0, [r5, 0x30]
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ands r0, r2
+ orrs r0, r7
+ strh r0, [r5, 0x32]
+ b _08047220
+_080471B8:
+ adds r0, r5, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047220
+ 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]
+ ldrb r0, [r5, 0x6]
+ strh r0, [r5, 0x3A]
+ strh r1, [r5, 0x2E]
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047214
+ ldr r0, _0804720C @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08047214
+ movs r0, 0x3A
+ ldrsh r4, [r5, r0]
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _08047214
+ ldr r0, _08047210 @ =sub_8047230
+ b _08047216
+ .align 2, 0
+_0804720C: .4byte 0x02017840
+_08047210: .4byte sub_8047230
+_08047214:
+ ldr r0, _0804722C @ =sub_8046C78
+_08047216:
+ str r0, [r5, 0x1C]
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_08047220:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804722C: .4byte sub_8046C78
+ thumb_func_end sub_80470C4
+
+ thumb_func_start sub_8047230
+sub_8047230: @ 8047230
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _0804724A
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldr r0, _08047250 @ =sub_8046C78
+ str r0, [r2, 0x1C]
+_0804724A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047250: .4byte sub_8046C78
+ thumb_func_end sub_8047230
+
+ thumb_func_start sub_8047254
+sub_8047254: @ 8047254
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080472A4
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080472A0
+ ldr r0, _08047298 @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080472A0
+ movs r0, 0x3A
+ ldrsh r4, [r5, r0]
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080472A0
+ ldr r0, _0804729C @ =sub_8047230
+ b _080472A2
+ .align 2, 0
+_08047298: .4byte 0x02017840
+_0804729C: .4byte sub_8047230
+_080472A0:
+ ldr r0, _080472AC @ =sub_8046C78
+_080472A2:
+ str r0, [r5, 0x1C]
+_080472A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080472AC: .4byte sub_8046C78
+ thumb_func_end sub_8047254
+
+ thumb_func_start sub_80472B0
+sub_80472B0: @ 80472B0
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0
+ str r4, [sp]
+ bl sub_814086C
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80472B0
+
+ thumb_func_start sub_80472D8
+sub_80472D8: @ 80472D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80472D8
+
+ thumb_func_start CreatePokeballSprite
+CreatePokeballSprite: @ 80472F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r9, r2
+ mov r10, r3
+ ldr r6, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ ldr r0, [sp, 0x2C]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080473BC @ =gUnknown_0820A92C
+ bl LoadCompressedObjectPic
+ ldr r0, _080473C0 @ =gUnknown_0820A98C
+ bl LoadCompressedObjectPalette
+ ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4
+ mov r1, r9
+ mov r2, r10
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080473C8 @ =gSprites
+ mov r8, r3
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r1, r4, r3
+ strh r5, [r1, 0x2E]
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ add r2, r8
+ ldrh r0, [r2, 0x20]
+ strh r0, [r1, 0x38]
+ ldrh r0, [r2, 0x22]
+ strh r0, [r1, 0x3A]
+ mov r0, r9
+ strh r0, [r2, 0x20]
+ mov r3, r10
+ strh r3, [r2, 0x22]
+ strh r7, [r1, 0x30]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r1, 0x32]
+ mov r3, sp
+ ldrh r3, [r3, 0x30]
+ strh r3, [r1, 0x34]
+ ldr r3, [sp, 0x30]
+ lsrs r0, r3, 16
+ strh r0, [r1, 0x36]
+ movs r0, 0x3
+ ands r6, r0
+ lsls r6, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r6
+ strb r0, [r1, 0x5]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _080473CC @ =sub_80473D0
+ str r0, [r4]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ 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
+_080473BC: .4byte gUnknown_0820A92C
+_080473C0: .4byte gUnknown_0820A98C
+_080473C4: .4byte gSpriteTemplate_820AAB4
+_080473C8: .4byte gSprites
+_080473CC: .4byte sub_80473D0
+ thumb_func_end CreatePokeballSprite
+
+ thumb_func_start sub_80473D0
+sub_80473D0: @ 80473D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r1, [r6, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0804747C
+ ldrh r0, [r6, 0x2E]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r6, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r4, [r6, 0x34]
+ ldrh r0, [r6, 0x36]
+ lsls r0, 16
+ orrs r4, r0
+ adds r0, r6, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804740A
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0804740C
+_0804740A:
+ movs r5, 0
+_0804740C:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r3, r5, 0
+ bl sub_80472B0
+ movs r0, 0x1
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_80472D8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x30]
+ ldr r0, _08047474 @ =sub_804748C
+ str r0, [r6, 0x1C]
+ ldr r0, _08047478 @ =gSprites
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ adds r4, r0
+ 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 StartSpriteAffineAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r4, 0x30]
+ strh r5, [r6, 0x3C]
+ b _08047480
+ .align 2, 0
+_08047474: .4byte sub_804748C
+_08047478: .4byte gSprites
+_0804747C:
+ subs r0, r1, 0x1
+ strh r0, [r6, 0x30]
+_08047480:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80473D0
+
+ thumb_func_start sub_804748C
+sub_804748C: @ 804748C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ mov r12, r0
+ movs r6, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080474B6
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080474B6:
+ ldr r0, _08047544 @ =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r5, r1, r0
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080474D8
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0x1
+ mov r12, r1
+_080474D8:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r7, 0x20
+ ldrsh r1, [r4, r7]
+ subs r0, r1
+ movs r1, 0x3C
+ ldrsh r2, [r4, r1]
+ muls r0, r2
+ cmp r0, 0
+ bge _080474EE
+ adds r0, 0x7F
+_080474EE:
+ asrs r0, 7
+ ldrh r7, [r4, 0x20]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r7, 0x22
+ ldrsh r1, [r4, r7]
+ subs r0, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _0804750A
+ adds r0, 0x7F
+_0804750A:
+ asrs r0, 7
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r3, [r5, 0x20]
+ strh r0, [r5, 0x22]
+ ldrh r2, [r4, 0x3C]
+ movs r7, 0x3C
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x7F
+ bgt _0804754C
+ ldr r1, _08047548 @ =gSineTable
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _08047530
+ adds r0, 0x7
+_08047530:
+ asrs r0, 3
+ negs r0, r0
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r2, 0x4
+ strh r1, [r4, 0x3C]
+ strh r0, [r5, 0x24]
+ strh r0, [r5, 0x26]
+ b _0804755A
+ .align 2, 0
+_08047544: .4byte gSprites
+_08047548: .4byte gSineTable
+_0804754C:
+ ldrh r0, [r4, 0x38]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r5, 0x22]
+ strh r6, [r5, 0x24]
+ strh r6, [r5, 0x26]
+ movs r6, 0x1
+_0804755A:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08047578
+ mov r2, r12
+ cmp r2, 0
+ beq _08047578
+ cmp r6, 0
+ beq _08047578
+ adds r0, r4, 0
+ bl DestroySpriteAndFreeResources
+_08047578:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804748C
+
+ thumb_func_start sub_8047580
+sub_8047580: @ 8047580
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r5, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ ldr r0, [sp, 0x28]
+ mov r9, r0
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _08047624 @ =gUnknown_0820A92C
+ bl LoadCompressedObjectPic
+ ldr r0, _08047628 @ =gUnknown_0820A98C
+ bl LoadCompressedObjectPalette
+ ldr r0, _0804762C @ =gSpriteTemplate_820AAB4
+ adds r1, r6, 0
+ mov r2, r8
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _08047630 @ =gSprites
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r6
+ mov r1, r10
+ strh r1, [r2, 0x2E]
+ mov r4, r9
+ strh r4, [r2, 0x30]
+ strh r7, [r2, 0x32]
+ mov r1, sp
+ ldrh r1, [r1, 0x2C]
+ strh r1, [r2, 0x34]
+ ldr r4, [sp, 0x2C]
+ lsrs r1, r4, 16
+ strh r1, [r2, 0x36]
+ movs r1, 0x3
+ ands r5, r1
+ lsls r5, 2
+ ldrb r4, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r5
+ strb r1, [r2, 0x5]
+ adds r6, 0x1C
+ adds r3, r6
+ ldr r1, _08047634 @ =sub_8047638
+ str r1, [r3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08047624: .4byte gUnknown_0820A92C
+_08047628: .4byte gUnknown_0820A98C
+_0804762C: .4byte gSpriteTemplate_820AAB4
+_08047630: .4byte gSprites
+_08047634: .4byte sub_8047638
+ thumb_func_end sub_8047580
+
+ thumb_func_start sub_8047638
+sub_8047638: @ 8047638
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080476D0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r5, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ orrs r5, r0
+ adds r0, r4, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08047672
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08047674
+_08047672:
+ movs r6, 0
+_08047674:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r4, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r3, r6, 0
+ bl sub_80472B0
+ movs r0, 0x1
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80472D8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ ldr r0, _080476C8 @ =sub_80476E0
+ str r0, [r4, 0x1C]
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ ldr r0, _080476CC @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ strh r5, [r4, 0x30]
+ b _080476D4
+ .align 2, 0
+_080476C8: .4byte sub_80476E0
+_080476CC: .4byte gSprites
+_080476D0:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+_080476D4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8047638
+
+ thumb_func_start sub_80476E0
+sub_80476E0: @ 80476E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080476F8
+ movs r0, 0x3C
+ bl PlaySE
+_080476F8:
+ ldrh r1, [r5, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08047734 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0804773C
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r5, 0x38]
+ ldr r0, _08047738 @ =sub_8047754
+ str r0, [r5, 0x1C]
+ b _0804774C
+ .align 2, 0
+_08047734: .4byte gSprites
+_08047738: .4byte sub_8047754
+_0804773C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x60
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+_0804774C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80476E0
+
+ thumb_func_start sub_8047754
+sub_8047754: @ 8047754
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08047768
+ ldr r0, _0804776C @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_08047768:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804776C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8047754
+
+ thumb_func_start obj_delete_and_free_associated_resources_
+obj_delete_and_free_associated_resources_: @ 8047770
+ push {lr}
+ bl DestroySpriteAndFreeResources
+ pop {r0}
+ bx r0
+ thumb_func_end obj_delete_and_free_associated_resources_
+
+ thumb_func_start sub_804777C
+sub_804777C: @ 804777C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _080477FC @ =gUnknown_03004340
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _08047800 @ =gSprites
+ adds r4, r0, r6
+ movs r1, 0
+ movs r0, 0x5
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r0, 0x73
+ strh r0, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ ldr r0, _08047804 @ =sub_8047830
+ str r0, [r4, 0x1C]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080477CA
+ ldrh r0, [r4, 0x2E]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080477CA:
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r6
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080477F4
+ ldr r0, _08047808 @ =sub_804780C
+ str r0, [r4, 0x1C]
+_080477F4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080477FC: .4byte gUnknown_03004340
+_08047800: .4byte gSprites
+_08047804: .4byte sub_8047830
+_08047808: .4byte sub_804780C
+ thumb_func_end sub_804777C
+
+ thumb_func_start sub_804780C
+sub_804780C: @ 804780C
+ 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, 0x14
+ bne _08047826
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldr r0, _0804782C @ =sub_8047830
+ str r0, [r1, 0x1C]
+_08047826:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804782C: .4byte sub_8047830
+ thumb_func_end sub_804780C
+
+ thumb_func_start sub_8047830
+sub_8047830: @ 8047830
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ ldrh r1, [r2, 0x30]
+ subs r0, r1
+ strh r0, [r2, 0x26]
+ ldr r0, [r2, 0x24]
+ cmp r0, 0
+ bne _0804784E
+ ldr r0, _08047854 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_0804784E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047854: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8047830
+
+ thumb_func_start sub_8047858
+sub_8047858: @ 8047858
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08047890 @ =oamc_804BEB4
+ adds r0, r5, 0
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08047894 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r2
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r0, _08047898 @ =gUnknown_03004340
+ adds r4, r0
+ ldrb r0, [r4]
+ strh r0, [r3, 0x30]
+ adds r2, 0x1C
+ adds r1, r2
+ str r5, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047890: .4byte oamc_804BEB4
+_08047894: .4byte gSprites
+_08047898: .4byte gUnknown_03004340
+ thumb_func_end sub_8047858
+
+ thumb_func_start oamc_804BEB4
+oamc_804BEB4: @ 804789C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080478D8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r0, [r3, 0x2E]
+ movs r2, 0
+ strh r0, [r1, 0x26]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080478D4
+ strh r2, [r1, 0x24]
+ strh r2, [r1, 0x26]
+ adds r0, r3, 0
+ bl DestroySprite
+_080478D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080478D8: .4byte gSprites
+ thumb_func_end oamc_804BEB4
+
+ thumb_func_start sub_80478DC
+sub_80478DC: @ 80478DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08047938 @ =gUnknown_0820A92C
+ lsls r6, r4, 3
+ adds r5, r6, r0
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _0804793C @ =0xffff0000
+ cmp r0, r1
+ bne _08047904
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08047940 @ =gUnknown_0820A98C
+ adds r0, r6, r0
+ bl LoadCompressedObjectPalette
+_08047904:
+ cmp r4, 0x6
+ beq _08047930
+ cmp r4, 0x6
+ blt _08047914
+ cmp r4, 0xB
+ bgt _08047914
+ cmp r4, 0xA
+ bge _08047930
+_08047914:
+ ldr r1, _08047938 @ =gUnknown_0820A92C
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ bl GetSpriteTileStartByTag
+ adds r1, r0, 0
+ lsls r1, 16
+ ldr r0, _08047944 @ =gUnknown_08D030D0
+ lsrs r1, 11
+ ldr r2, _08047948 @ =0x06010100
+ adds r1, r2
+ bl LZDecompressVram
+_08047930:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047938: .4byte gUnknown_0820A92C
+_0804793C: .4byte 0xffff0000
+_08047940: .4byte gUnknown_0820A98C
+_08047944: .4byte gUnknown_08D030D0
+_08047948: .4byte 0x06010100
+ thumb_func_end sub_80478DC
+
+ thumb_func_start sub_804794C
+sub_804794C: @ 804794C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r0, _08047970 @ =gUnknown_0820A92C
+ lsrs r4, 21
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r0, _08047974 @ =gUnknown_0820A98C
+ adds r4, r0
+ ldrh r0, [r4, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047970: .4byte gUnknown_0820A92C
+_08047974: .4byte gUnknown_0820A98C
+ thumb_func_end sub_804794C
+
+ thumb_func_start sub_8047978
+sub_8047978: @ 8047978
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080479A4
+ ldr r1, _0804799C @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080479A0 @ =gEnemyParty
+ b _080479B2
+ .align 2, 0
+_0804799C: .4byte gUnknown_02024A6A
+_080479A0: .4byte gEnemyParty
+_080479A4:
+ ldr r1, _080479C4 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080479C8 @ =gPlayerParty
+_080479B2:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080479C4: .4byte gUnknown_02024A6A
+_080479C8: .4byte gPlayerParty
+ thumb_func_end sub_8047978
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
new file mode 100644
index 000000000..d39a4b3ca
--- /dev/null
+++ b/asm/pokeblock.s
@@ -0,0 +1,2675 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810B674
+sub_810B674: @ 810B674
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B674
+
+ thumb_func_start sub_810B68C
+sub_810B68C: @ 810B68C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
+ ldr r2, _0810B6B4 @ =0x06007800
+ ldr r0, _0810B6B8 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0810B6BC @ =0x80000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
+_0810B6B4: .4byte 0x06007800
+_0810B6B8: .4byte 0x040000d4
+_0810B6BC: .4byte 0x80000400
+ thumb_func_end sub_810B68C
+
+ thumb_func_start sub_810B6C0
+sub_810B6C0: @ 810B6C0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0810B6DC @ =gMain
+ ldr r1, _0810B6E0 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _0810B6D2
+ b _0810B960
+_0810B6D2:
+ lsls r0, 2
+ ldr r1, _0810B6E4 @ =_0810B6E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810B6DC: .4byte gMain
+_0810B6E0: .4byte 0x0000043c
+_0810B6E4: .4byte _0810B6E8
+ .align 2, 0
+_0810B6E8:
+ .4byte _0810B734
+ .4byte _0810B764
+ .4byte _0810B76A
+ .4byte _0810B78C
+ .4byte _0810B792
+ .4byte _0810B7B4
+ .4byte _0810B7C0
+ .4byte _0810B7DC
+ .4byte _0810B7E8
+ .4byte _0810B804
+ .4byte _0810B810
+ .4byte _0810B830
+ .4byte _0810B84C
+ .4byte _0810B86A
+ .4byte _0810B894
+ .4byte _0810B89E
+ .4byte _0810B8C4
+ .4byte _0810B914
+ .4byte _0810B934
+_0810B734:
+ bl sub_80F9438
+ bl sub_80F9368
+ ldr r1, _0810B754 @ =REG_BG2CNT
+ ldr r2, _0810B758 @ =0x00000f0a
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0810B75C @ =gMain
+ ldr r0, _0810B760 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B754: .4byte REG_BG2CNT
+_0810B758: .4byte 0x00000f0a
+_0810B75C: .4byte gMain
+_0810B760: .4byte 0x0000043c
+_0810B764:
+ bl remove_some_task
+ b _0810B91C
+_0810B76A:
+ bl ResetPaletteFade
+ ldr r2, _0810B780 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _0810B784 @ =gMain
+ ldr r0, _0810B788 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B780: .4byte gPaletteFade
+_0810B784: .4byte gMain
+_0810B788: .4byte 0x0000043c
+_0810B78C:
+ bl ResetSpriteData
+ b _0810B91C
+_0810B792:
+ ldr r0, _0810B7A8 @ =gUnknown_02039244
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0810B79E
+ bl ResetTasks
+_0810B79E:
+ ldr r1, _0810B7AC @ =gMain
+ ldr r0, _0810B7B0 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7A8: .4byte gUnknown_02039244
+_0810B7AC: .4byte gMain
+_0810B7B0: .4byte 0x0000043c
+_0810B7B4:
+ ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
+ bl SetUpWindowConfig
+ b _0810B91C
+ .align 2, 0
+_0810B7BC: .4byte gWindowConfig_81E6E34
+_0810B7C0:
+ ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
+ bl SetUpWindowConfig
+ ldr r1, _0810B7D4 @ =gMain
+ ldr r0, _0810B7D8 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7D0: .4byte gWindowConfig_81E6E50
+_0810B7D4: .4byte gMain
+_0810B7D8: .4byte 0x0000043c
+_0810B7DC:
+ ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
+ bl MultistepInitMenuWindowBegin
+ b _0810B91C
+ .align 2, 0
+_0810B7E4: .4byte gWindowConfig_81E6E34
+_0810B7E8:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0810B7F2
+ b _0810B960
+_0810B7F2:
+ ldr r1, _0810B7FC @ =gMain
+ ldr r0, _0810B800 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7FC: .4byte gMain
+_0810B800: .4byte 0x0000043c
+_0810B804:
+ ldr r0, _0810B80C @ =gWindowConfig_81E6E50
+ bl MultistepInitMenuWindowBegin
+ b _0810B91C
+ .align 2, 0
+_0810B80C: .4byte gWindowConfig_81E6E50
+_0810B810:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0810B81A
+ b _0810B960
+_0810B81A:
+ ldr r0, _0810B828 @ =0x02000000
+ ldr r1, _0810B82C @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _0810B91C
+ .align 2, 0
+_0810B828: .4byte 0x02000000
+_0810B82C: .4byte 0x0001ffff
+_0810B830:
+ bl sub_810B998
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810B83C
+ b _0810B960
+_0810B83C:
+ ldr r1, _0810B844 @ =gMain
+ ldr r0, _0810B848 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B844: .4byte gMain
+_0810B848: .4byte 0x0000043c
+_0810B84C:
+ bl sub_80F944C
+ bl LoadScrollIndicatorPalette
+ movs r0, 0
+ movs r1, 0xB0
+ movs r2, 0x8
+ bl CreateVerticalScrollIndicators
+ movs r0, 0x1
+ movs r1, 0xB0
+ movs r2, 0x98
+ bl CreateVerticalScrollIndicators
+ b _0810B91C
+_0810B86A:
+ movs r0, 0x38
+ movs r1, 0x40
+ movs r2, 0
+ bl sub_810BA50
+ ldr r1, _0810B884 @ =0x02000000
+ ldr r2, _0810B888 @ =0x0001fffe
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, _0810B88C @ =gMain
+ ldr r0, _0810B890 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B884: .4byte 0x02000000
+_0810B888: .4byte 0x0001fffe
+_0810B88C: .4byte gMain
+_0810B890: .4byte 0x0000043c
+_0810B894:
+ bl sub_810BC98
+ bl sub_810BD08
+ b _0810B91C
+_0810B89E:
+ bl sub_810BB0C
+ bl sub_810BB30
+ ldr r0, _0810B8B8 @ =gUnknown_02039248
+ ldrb r0, [r0, 0x1]
+ bl sub_810BC84
+ ldr r1, _0810B8BC @ =gMain
+ ldr r0, _0810B8C0 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B8B8: .4byte gUnknown_02039248
+_0810B8BC: .4byte gMain
+_0810B8C0: .4byte 0x0000043c
+_0810B8C4:
+ ldr r3, _0810B8FC @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _0810B900 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0810B904 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0810B908 @ =sub_810B68C
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0810B90C @ =gMain
+ ldr r0, _0810B910 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B8FC: .4byte 0x04000208
+_0810B900: .4byte 0x04000200
+_0810B904: .4byte REG_DISPSTAT
+_0810B908: .4byte sub_810B68C
+_0810B90C: .4byte gMain
+_0810B910: .4byte 0x0000043c
+_0810B914:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0810B960
+_0810B91C:
+ ldr r1, _0810B92C @ =gMain
+ ldr r2, _0810B930 @ =0x0000043c
+ adds r1, r2
+_0810B922:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810B960
+ .align 2, 0
+_0810B92C: .4byte gMain
+_0810B930: .4byte 0x0000043c
+_0810B934:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _0810B958 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0810B95C @ =sub_810B674
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _0810B962
+ .align 2, 0
+_0810B958: .4byte gPaletteFade
+_0810B95C: .4byte sub_810B674
+_0810B960:
+ movs r0, 0
+_0810B962:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B6C0
+
+ thumb_func_start sub_810B96C
+sub_810B96C: @ 810B96C
+ push {lr}
+_0810B96E:
+ bl sub_810B6C0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810B988
+ ldr r0, _0810B984 @ =sub_810BF7C
+ movs r1, 0
+ bl CreateTask
+ b _0810B994
+ .align 2, 0
+_0810B984: .4byte sub_810BF7C
+_0810B988:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810B96E
+_0810B994:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B96C
+
+ thumb_func_start sub_810B998
+sub_810B998: @ 810B998
+ push {lr}
+ ldr r0, _0810B9B0 @ =0x02000000
+ ldr r1, _0810B9B4 @ =0x0001ffff
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810BA48
+ lsls r0, 2
+ ldr r1, _0810B9B8 @ =_0810B9BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810B9B0: .4byte 0x02000000
+_0810B9B4: .4byte 0x0001ffff
+_0810B9B8: .4byte _0810B9BC
+ .align 2, 0
+_0810B9BC:
+ .4byte _0810B9D0
+ .4byte _0810B9E4
+ .4byte _0810B9F8
+ .4byte _0810BA08
+ .4byte _0810BA28
+_0810B9D0:
+ ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
+ ldr r1, _0810B9E0 @ =0x06008000
+ bl LZDecompressVram
+ b _0810BA0E
+ .align 2, 0
+_0810B9DC: .4byte gMenuPokeblock_Gfx
+_0810B9E0: .4byte 0x06008000
+_0810B9E4:
+ ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
+ ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
+ bl sub_800D238
+ b _0810BA0E
+ .align 2, 0
+_0810B9F0: .4byte gMenuPokeblock_Tilemap
+_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
+_0810B9F8:
+ ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
+ movs r1, 0
+ movs r2, 0xC0
+ bl LoadCompressedPalette
+ b _0810BA0E
+ .align 2, 0
+_0810BA04: .4byte gMenuPokeblock_Pal
+_0810BA08:
+ ldr r0, _0810BA1C @ =gUnknown_083F7F74
+ bl LoadCompressedObjectPic
+_0810BA0E:
+ ldr r1, _0810BA20 @ =0x02000000
+ ldr r0, _0810BA24 @ =0x0001ffff
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810BA48
+ .align 2, 0
+_0810BA1C: .4byte gUnknown_083F7F74
+_0810BA20: .4byte 0x02000000
+_0810BA24: .4byte 0x0001ffff
+_0810BA28:
+ ldr r0, _0810BA3C @ =gUnknown_083F7F7C
+ bl LoadCompressedObjectPalette
+ ldr r0, _0810BA40 @ =0x02000000
+ ldr r1, _0810BA44 @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0810BA4A
+ .align 2, 0
+_0810BA3C: .4byte gUnknown_083F7F7C
+_0810BA40: .4byte 0x02000000
+_0810BA44: .4byte 0x0001ffff
+_0810BA48:
+ movs r0, 0
+_0810BA4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B998
+
+ thumb_func_start sub_810BA50
+sub_810BA50: @ 810BA50
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810BA78: .4byte gSpriteTemplate_83F7F84
+ thumb_func_end sub_810BA50
+
+ thumb_func_start sub_810BA7C
+sub_810BA7C: @ 810BA7C
+ push {lr}
+ ldr r1, _0810BA98 @ =gUnknown_02039244
+ strb r0, [r1]
+ ldrb r2, [r1]
+ cmp r2, 0x2
+ beq _0810BAA8
+ cmp r2, 0x3
+ beq _0810BAC0
+ ldr r1, _0810BA9C @ =gUnknown_03000758
+ ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
+ str r0, [r1]
+ ldr r1, _0810BAA4 @ =gUnknown_0203924C
+ movs r0, 0x3
+ b _0810BACA
+ .align 2, 0
+_0810BA98: .4byte gUnknown_02039244
+_0810BA9C: .4byte gUnknown_03000758
+_0810BAA0: .4byte gUnknown_083F7F1C
+_0810BAA4: .4byte gUnknown_0203924C
+_0810BAA8:
+ ldr r0, _0810BAB4 @ =gUnknown_03000758
+ ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
+ str r1, [r0]
+ ldr r0, _0810BABC @ =gUnknown_0203924C
+ strb r2, [r0]
+ b _0810BACC
+ .align 2, 0
+_0810BAB4: .4byte gUnknown_03000758
+_0810BAB8: .4byte gUnknown_083F7F1F
+_0810BABC: .4byte gUnknown_0203924C
+_0810BAC0:
+ ldr r1, _0810BAD0 @ =gUnknown_03000758
+ ldr r0, _0810BAD4 @ =gUnknown_083F7F21
+ str r0, [r1]
+ ldr r1, _0810BAD8 @ =gUnknown_0203924C
+ movs r0, 0x2
+_0810BACA:
+ strb r0, [r1]
+_0810BACC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BAD0: .4byte gUnknown_03000758
+_0810BAD4: .4byte gUnknown_083F7F21
+_0810BAD8: .4byte gUnknown_0203924C
+ thumb_func_end sub_810BA7C
+
+ thumb_func_start sub_810BADC
+sub_810BADC: @ 810BADC
+ push {lr}
+ movs r0, 0x2
+ bl sub_810BA7C
+ ldr r0, _0810BAF0 @ =sub_810B96C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BAF0: .4byte sub_810B96C
+ thumb_func_end sub_810BADC
+
+ thumb_func_start sub_810BAF4
+sub_810BAF4: @ 810BAF4
+ push {lr}
+ movs r0, 0x3
+ bl sub_810BA7C
+ ldr r0, _0810BB08 @ =sub_810B96C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB08: .4byte sub_810B96C
+ thumb_func_end sub_810BAF4
+
+ thumb_func_start sub_810BB0C
+sub_810BB0C: @ 810BB0C
+ push {lr}
+ ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810BB2C @ =0x00000111
+ bl ItemId_GetItem
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x48
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB28: .4byte gWindowConfig_81E6E34
+_0810BB2C: .4byte 0x00000111
+ thumb_func_end sub_810BB0C
+
+ thumb_func_start sub_810BB30
+sub_810BB30: @ 810BB30
+ push {lr}
+ ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810BB74 @ =gContestStatsText_Spicy
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, _0810BB78 @ =gContestStatsText_Dry
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _0810BB7C @ =gContestStatsText_Sweet
+ movs r1, 0x2
+ movs r2, 0x11
+ bl MenuPrint
+ ldr r0, _0810BB80 @ =gContestStatsText_Bitter
+ movs r1, 0x8
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, _0810BB84 @ =gContestStatsText_Sour
+ movs r1, 0x8
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB70: .4byte gWindowConfig_81E6E34
+_0810BB74: .4byte gContestStatsText_Spicy
+_0810BB78: .4byte gContestStatsText_Dry
+_0810BB7C: .4byte gContestStatsText_Sweet
+_0810BB80: .4byte gContestStatsText_Bitter
+_0810BB84: .4byte gContestStatsText_Sour
+ thumb_func_end sub_810BB30
+
+ thumb_func_start sub_810BB88
+sub_810BB88: @ 810BB88
+ 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
+ ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ mov r6, r8
+ adds r0, r6, 0
+ adds r0, 0x8
+ cmp r6, r0
+ bgt _0810BC6C
+ ldr r0, _0810BBF8 @ =gStringVar1
+ mov r9, r0
+ ldr r1, _0810BBFC @ =gSaveBlock1
+ mov r10, r1
+_0810BBB0:
+ mov r1, r8
+ subs r0, r6, r1
+ lsls r0, 25
+ lsrs r7, r0, 24
+ ldr r0, _0810BC00 @ =gUnknown_02039248
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ bne _0810BC08
+ mov r0, r9
+ ldr r1, _0810BC04 @ =gContestStatsText_StowCase
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_8072C74
+ movs r2, 0x1
+ orrs r2, r7
+ mov r0, r9
+ movs r1, 0xF
+ bl MenuPrint
+ mov r0, r8
+ adds r0, 0x8
+ cmp r6, r0
+ beq _0810BC6C
+ adds r1, r7, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xF
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ b _0810BC6C
+ .align 2, 0
+_0810BBF4: .4byte gWindowConfig_81E6E34
+_0810BBF8: .4byte gStringVar1
+_0810BBFC: .4byte gSaveBlock1
+_0810BC00: .4byte gUnknown_02039248
+_0810BC04: .4byte gContestStatsText_StowCase
+_0810BC08:
+ lsls r5, r6, 3
+ mov r1, r10
+ adds r0, r5, r1
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _0810BC7C @ =gPokeblockNames
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, r9
+ movs r2, 0x5E
+ movs r3, 0
+ bl sub_8072C74
+ adds r4, r0, 0
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x14
+ strb r0, [r4, 0x1]
+ movs r0, 0x6
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+ ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
+ adds r5, r0
+ adds r0, r5, 0
+ bl sub_810C9B0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r2, 0x1
+ orrs r2, r7
+ mov r0, r9
+ movs r1, 0xF
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r0, 0x8
+ cmp r6, r0
+ ble _0810BBB0
+_0810BC6C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BC7C: .4byte gPokeblockNames
+_0810BC80: .4byte gSaveBlock1 + 0x7F8
+ thumb_func_end sub_810BB88
+
+ thumb_func_start sub_810BC84
+sub_810BC84: @ 810BC84
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810BB88
+ movs r0, 0
+ bl sub_810BDAC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BC84
+
+ thumb_func_start sub_810BC98
+sub_810BC98: @ 810BC98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ ldr r0, _0810BD00 @ =gSaveBlock1
+ mov r9, r0
+_0810BCA6:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ mov r8, r1
+ cmp r5, 0x27
+ bhi _0810BCE8
+ lsls r1, r2, 3
+ mov r2, r9
+ adds r0, r1, r2
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r7, r0, r2
+ ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
+ mov r12, r0
+ adds r6, r1, r0
+_0810BCC4:
+ ldrb r0, [r7]
+ cmp r0, 0
+ bne _0810BCDE
+ ldr r3, [r6]
+ ldr r4, [r6, 0x4]
+ lsls r2, r5, 3
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ str r0, [r6]
+ str r1, [r6, 0x4]
+ str r3, [r2]
+ str r4, [r2, 0x4]
+_0810BCDE:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x27
+ bls _0810BCC4
+_0810BCE8:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x26
+ bls _0810BCA6
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BD00: .4byte gSaveBlock1
+_0810BD04: .4byte gSaveBlock1 + 0x7F8
+ thumb_func_end sub_810BC98
+
+ thumb_func_start sub_810BD08
+sub_810BD08: @ 810BD08
+ push {r4,r5,lr}
+ ldr r1, _0810BD5C @ =gUnknown_02039248
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ movs r2, 0
+ ldr r5, _0810BD60 @ =gSaveBlock1
+ movs r4, 0xFF
+ lsls r4, 3
+ adds r3, r1, 0
+_0810BD1A:
+ lsls r0, r2, 3
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810BD2C
+ ldrb r0, [r3, 0x2]
+ adds r0, 0x1
+ strb r0, [r3, 0x2]
+_0810BD2C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x27
+ bls _0810BD1A
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x7
+ bls _0810BD3E
+ movs r0, 0x8
+_0810BD3E:
+ strb r0, [r1, 0x3]
+ ldrb r2, [r1, 0x1]
+ adds r0, r2, 0
+ adds r0, 0x8
+ ldrb r3, [r1, 0x2]
+ cmp r0, r3
+ ble _0810BD54
+ cmp r2, 0
+ beq _0810BD54
+ subs r0, r2, 0x1
+ strb r0, [r1, 0x1]
+_0810BD54:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BD5C: .4byte gUnknown_02039248
+_0810BD60: .4byte gSaveBlock1
+ thumb_func_end sub_810BD08
+
+ thumb_func_start sub_810BD64
+sub_810BD64: @ 810BD64
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r5, _0810BDA4 @ =gUnknown_02039248
+ ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
+_0810BD70:
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, 0x1
+ lsls r0, 5
+ adds r1, r2, 0
+ adds r1, 0xF
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r0, 0x40
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _0810BD70
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BDA4: .4byte gUnknown_02039248
+_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
+ thumb_func_end sub_810BD64
+
+ thumb_func_start sub_810BDAC
+sub_810BDAC: @ 810BDAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810BDCC
+ ldr r0, _0810BDC4 @ =0x00001005
+ ldr r1, _0810BDC8 @ =0x00001014
+ bl sub_810BD64
+ b _0810BDD4
+ .align 2, 0
+_0810BDC4: .4byte 0x00001005
+_0810BDC8: .4byte 0x00001014
+_0810BDCC:
+ ldr r0, _0810BDE8 @ =0x00002005
+ ldr r1, _0810BDEC @ =0x00002014
+ bl sub_810BD64
+_0810BDD4:
+ ldr r0, _0810BDF0 @ =gUnknown_02039248
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0810BDF4
+ movs r0, 0
+ movs r1, 0
+ bl sub_80F979C
+ b _0810BDFC
+ .align 2, 0
+_0810BDE8: .4byte 0x00002005
+_0810BDEC: .4byte 0x00002014
+_0810BDF0: .4byte gUnknown_02039248
+_0810BDF4:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+_0810BDFC:
+ ldr r2, _0810BE1C @ =gUnknown_02039248
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bls _0810BE20
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _0810BE20
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+ b _0810BE28
+ .align 2, 0
+_0810BE1C: .4byte gUnknown_02039248
+_0810BE20:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+_0810BE28:
+ movs r6, 0
+ ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
+ movs r0, 0xF
+ mov r8, r0
+_0810BE30:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 18
+ ldr r1, _0810BE98 @ =0x000001a1
+ adds r4, r1
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r5, r4, r1
+ ldr r1, _0810BE9C @ =gUnknown_02039248
+ ldrb r2, [r1]
+ ldrb r0, [r1, 0x1]
+ adds r0, r2, r0
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810BEB8
+ lsls r0, 3
+ ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
+ adds r0, r1
+ adds r4, r6, 0x1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_810CA9C
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810BEA4
+ lsls r1, r5, 1
+ adds r1, r7
+ lsls r2, r6, 12
+ adds r0, r2, 0
+ adds r0, 0x17
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ adds r2, 0x18
+ strh r2, [r0]
+ b _0810BECC
+ .align 2, 0
+_0810BE94: .4byte gBGTilemapBuffers + 0x1000
+_0810BE98: .4byte 0x000001a1
+_0810BE9C: .4byte gUnknown_02039248
+_0810BEA0: .4byte gSaveBlock1 + 0x7F8
+_0810BEA4:
+ lsls r0, r5, 1
+ adds r0, r7
+ mov r1, r8
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ strh r1, [r0]
+ b _0810BECC
+_0810BEB8:
+ lsls r0, r5, 1
+ adds r0, r7
+ mov r1, r8
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ strh r1, [r0]
+ adds r4, r6, 0x1
+_0810BECC:
+ lsls r0, r4, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bls _0810BE30
+ ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810BF14 @ =gUnknown_02039248
+ ldrb r2, [r0]
+ ldrb r1, [r0, 0x1]
+ adds r2, r1
+ ldrb r0, [r0, 0x2]
+ cmp r2, r0
+ beq _0810BF20
+ ldr r4, _0810BF18 @ =gStringVar1
+ lsls r0, r2, 3
+ ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
+ adds r0, r1
+ bl sub_810C9E8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0x11
+ bl MenuPrint
+ b _0810BF2C
+ .align 2, 0
+_0810BF10: .4byte gWindowConfig_81E6E34
+_0810BF14: .4byte gUnknown_02039248
+_0810BF18: .4byte gStringVar1
+_0810BF1C: .4byte gSaveBlock1 + 0x7F8
+_0810BF20:
+ movs r0, 0xB
+ movs r1, 0x11
+ movs r2, 0xC
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0810BF2C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BDAC
+
+ thumb_func_start sub_810BF38
+sub_810BF38: @ 810BF38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0810BF6C @ =gSprites
+ ldr r0, _0810BF70 @ =0x02000000
+ ldr r1, _0810BF74 @ =0x0001fffe
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0810BF78 @ =sub_810C8D4
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_810BDAC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BF6C: .4byte gSprites
+_0810BF70: .4byte 0x02000000
+_0810BF74: .4byte 0x0001fffe
+_0810BF78: .4byte sub_810C8D4
+ thumb_func_end sub_810BF38
+
+ thumb_func_start sub_810BF7C
+sub_810BF7C: @ 810BF7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _0810BFB8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810BF94
+ b _0810C0B8
+_0810BF94:
+ ldr r2, _0810BFBC @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810BFCE
+ ldr r4, _0810BFC0 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810BFC4
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ b _0810C00A
+ .align 2, 0
+_0810BFB8: .4byte gPaletteFade
+_0810BFBC: .4byte gMain
+_0810BFC0: .4byte gUnknown_02039248
+_0810BFC4:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0810C0B8
+ subs r0, 0x1
+ b _0810C002
+_0810BFCE:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C012
+ ldr r4, _0810BFF0 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0810BFF4
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810C00A
+ .align 2, 0
+_0810BFF0: .4byte gUnknown_02039248
+_0810BFF4:
+ ldrb r1, [r4, 0x1]
+ ldrb r0, [r4]
+ adds r0, r1, r0
+ ldrb r2, [r4, 0x2]
+ cmp r0, r2
+ beq _0810C0B8
+ adds r0, r1, 0x1
+_0810C002:
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ bl sub_810BB88
+_0810C00A:
+ movs r0, 0
+ bl sub_810BF38
+ b _0810C0B8
+_0810C012:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C05C
+ ldr r4, _0810C050 @ =gUnknown_02039248
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ adds r0, r1
+ ldrb r1, [r4, 0x2]
+ cmp r0, r1
+ beq _0810C0B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_810BDAC
+ ldr r1, _0810C054 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r4, 0x1]
+ ldrb r2, [r4]
+ adds r1, r2
+ strh r1, [r0, 0x8]
+ ldr r1, _0810C058 @ =sub_810C0C8
+ str r1, [r0]
+ b _0810C0B8
+ .align 2, 0
+_0810C050: .4byte gUnknown_02039248
+_0810C054: .4byte gTasks
+_0810C058: .4byte sub_810C0C8
+_0810C05C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C09C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0810C088 @ =gUnknown_02039248
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _0810C094
+ ldr r1, _0810C08C @ =gScriptResult
+ ldr r2, _0810C090 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_810C31C
+ b _0810C0B8
+ .align 2, 0
+_0810C088: .4byte gUnknown_02039248
+_0810C08C: .4byte gScriptResult
+_0810C090: .4byte 0x0000ffff
+_0810C094:
+ adds r0, r5, 0
+ bl sub_810C368
+ b _0810C0B8
+_0810C09C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C0B8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0810C0C0 @ =gScriptResult
+ ldr r2, _0810C0C4 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_810C31C
+_0810C0B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C0C0: .4byte gScriptResult
+_0810C0C4: .4byte 0x0000ffff
+ thumb_func_end sub_810BF7C
+
+ thumb_func_start sub_810C0C8
+sub_810C0C8: @ 810C0C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _0810C0F4 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C110
+ ldr r4, _0810C0F8 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810C0FC
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ b _0810C158
+ .align 2, 0
+_0810C0F4: .4byte gMain
+_0810C0F8: .4byte gUnknown_02039248
+_0810C0FC:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0810C1BA
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ b _0810C150
+_0810C110:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C168
+ ldr r4, _0810C134 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0810C138
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810C158
+ .align 2, 0
+_0810C134: .4byte gUnknown_02039248
+_0810C138:
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ adds r0, r1
+ ldrb r1, [r4, 0x2]
+ cmp r0, r1
+ beq _0810C1BA
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+_0810C150:
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ bl sub_810BB88
+_0810C158:
+ movs r0, 0x1
+ bl sub_810BF38
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_810C1C8
+ b _0810C1BA
+_0810C168:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C17A
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C190
+_0810C17A:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ adds r0, r5, 0
+ bl sub_810C23C
+ b _0810C1AC
+_0810C190:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C1BA
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ movs r0, 0
+ bl sub_810BDAC
+_0810C1AC:
+ ldr r0, _0810C1C0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810C1C4 @ =sub_810BF7C
+ str r0, [r1]
+_0810C1BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C1C0: .4byte gTasks
+_0810C1C4: .4byte sub_810BF7C
+ thumb_func_end sub_810C0C8
+
+ thumb_func_start sub_810C1C8
+sub_810C1C8: @ 810C1C8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ ldr r6, _0810C22C @ =0x00001005
+ cmp r1, 0
+ bne _0810C1D8
+ movs r6, 0x5
+_0810C1D8:
+ ldr r1, _0810C230 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _0810C234 @ =gUnknown_02039248
+ ldrb r1, [r2, 0x1]
+ ldrh r0, [r0, 0x8]
+ subs r0, r1
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r0, 0x8
+ bhi _0810C226
+ asrs r0, r1, 16
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0810C226
+ movs r2, 0
+ lsls r0, 1
+ adds r1, r0, 0x1
+ lsls r5, r1, 5
+ ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
+ adds r0, 0x2
+ lsls r4, r0, 5
+_0810C208:
+ adds r0, r2, 0
+ adds r0, 0xF
+ adds r1, r5, r0
+ lsls r1, 1
+ adds r1, r3
+ strh r6, [r1]
+ adds r0, r4, r0
+ lsls r0, 1
+ adds r0, r3
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _0810C208
+_0810C226:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C22C: .4byte 0x00001005
+_0810C230: .4byte gTasks
+_0810C234: .4byte gUnknown_02039248
+_0810C238: .4byte gBGTilemapBuffers + 0x1000
+ thumb_func_end sub_810C1C8
+
+ thumb_func_start sub_810C23C
+sub_810C23C: @ 810C23C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r7, _0810C25C @ =gUnknown_02039248
+ ldrb r0, [r7]
+ ldrb r2, [r7, 0x1]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r7, 0x2]
+ cmp r0, r2
+ bne _0810C260
+ movs r0, 0
+ bl sub_810BDAC
+ b _0810C2A2
+ .align 2, 0
+_0810C25C: .4byte gUnknown_02039248
+_0810C260:
+ ldr r4, _0810C2A8 @ =gSaveBlock1
+ lsls r3, r0, 3
+ movs r0, 0xFF
+ lsls r0, 3
+ adds r4, r0
+ adds r3, r4
+ ldr r5, [r3]
+ ldr r6, [r3, 0x4]
+ ldr r0, _0810C2AC @ =gTasks
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 3
+ adds r2, r0
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r3]
+ str r1, [r3, 0x4]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ lsls r0, 3
+ adds r0, r4
+ str r5, [r0]
+ str r6, [r0, 0x4]
+ ldrb r0, [r7, 0x1]
+ bl sub_810BB88
+ movs r0, 0
+ bl sub_810BDAC
+_0810C2A2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C2A8: .4byte gSaveBlock1
+_0810C2AC: .4byte gTasks
+ thumb_func_end sub_810C23C
+
+ thumb_func_start sub_810C2B0
+sub_810C2B0: @ 810C2B0
+ push {lr}
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+ bl BuyMenuFreeMemory
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C2B0
+
+ thumb_func_start sub_810C2C8
+sub_810C2C8: @ 810C2C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810C308 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C300
+ ldr r4, _0810C30C @ =gUnknown_02039244
+ ldrb r0, [r4]
+ cmp r0, 0x3
+ bne _0810C2E8
+ ldr r1, _0810C310 @ =gUnknown_0300485C
+ ldr r0, _0810C314 @ =sub_8080990
+ str r0, [r1]
+_0810C2E8:
+ bl sub_810C2B0
+ ldr r0, _0810C318 @ =gUnknown_083F7EA8
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0810C300:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C308: .4byte gPaletteFade
+_0810C30C: .4byte gUnknown_02039244
+_0810C310: .4byte gUnknown_0300485C
+_0810C314: .4byte sub_8080990
+_0810C318: .4byte gUnknown_083F7EA8
+ thumb_func_end sub_810C2C8
+
+ thumb_func_start sub_810C31C
+sub_810C31C: @ 810C31C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r5, 0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0810C358 @ =gUnknown_02039244
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0810C342
+ ldr r0, _0810C35C @ =gScriptItemId
+ strh r5, [r0]
+_0810C342:
+ ldr r0, _0810C360 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810C364 @ =sub_810C2C8
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C358: .4byte gUnknown_02039244
+_0810C35C: .4byte gScriptItemId
+_0810C360: .4byte gTasks
+_0810C364: .4byte sub_810C2C8
+ thumb_func_end sub_810C31C
+
+ thumb_func_start sub_810C368
+sub_810C368: @ 810C368
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _0810C3E8 @ =gUnknown_02039244
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0810C37C
+ movs r4, 0x2
+_0810C37C:
+ movs r0, 0
+ bl sub_80F98A4
+ movs r0, 0x1
+ bl sub_80F98A4
+ ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
+ bl BasicInitMenuWindow
+ adds r1, r4, 0x4
+ movs r0, 0x7
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ adds r4, 0x5
+ ldr r5, _0810C3F0 @ =gUnknown_0203924C
+ ldrb r2, [r5]
+ ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
+ ldr r0, _0810C3F8 @ =gUnknown_03000758
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x8
+ adds r1, r4, 0
+ bl PrintMenuItemsReordered
+ ldrb r3, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl InitMenu
+ ldr r2, _0810C3FC @ =gScriptItemId
+ ldr r1, _0810C400 @ =gUnknown_02039248
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ strh r0, [r2]
+ ldr r1, _0810C404 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C408 @ =sub_810C40C
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C3E8: .4byte gUnknown_02039244
+_0810C3EC: .4byte gWindowConfig_81E6E50
+_0810C3F0: .4byte gUnknown_0203924C
+_0810C3F4: .4byte gUnknown_083F7EF4
+_0810C3F8: .4byte gUnknown_03000758
+_0810C3FC: .4byte gScriptItemId
+_0810C400: .4byte gUnknown_02039248
+_0810C404: .4byte gTasks
+_0810C408: .4byte sub_810C40C
+ thumb_func_end sub_810C368
+
+ thumb_func_start sub_810C40C
+sub_810C40C: @ 810C40C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _0810C43C @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C440
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0810C4BC
+ .align 2, 0
+_0810C43C: .4byte gMain
+_0810C440:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C46C
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810C468 @ =gUnknown_0203924C
+ ldrb r1, [r1]
+ subs r1, 0x1
+ cmp r0, r1
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0810C4BC
+ .align 2, 0
+_0810C468: .4byte gUnknown_0203924C
+_0810C46C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C4A8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810C4A4 @ =gUnknown_03000758
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0810C4BC
+ .align 2, 0
+_0810C4A0: .4byte gUnknown_083F7EF4
+_0810C4A4: .4byte gUnknown_03000758
+_0810C4A8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_810C748
+_0810C4BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C40C
+
+ thumb_func_start sub_810C4C4
+sub_810C4C4: @ 810C4C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0810C4F8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C4F0
+ bl sub_810C2B0
+ ldr r0, _0810C4FC @ =gScriptItemId
+ ldrh r0, [r0]
+ lsls r0, 3
+ ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
+ adds r0, r1
+ ldr r1, _0810C504 @ =sub_810B96C
+ bl sub_8136130
+ adds r0, r4, 0
+ bl DestroyTask
+_0810C4F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C4F8: .4byte gPaletteFade
+_0810C4FC: .4byte gScriptItemId
+_0810C500: .4byte gSaveBlock1 + 0x7F8
+_0810C504: .4byte sub_810B96C
+ thumb_func_end sub_810C4C4
+
+ thumb_func_start sub_810C508
+sub_810C508: @ 810C508
+ 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, _0810C538 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C53C @ =sub_810C4C4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C538: .4byte gTasks
+_0810C53C: .4byte sub_810C4C4
+ thumb_func_end sub_810C508
+
+ thumb_func_start sub_810C540
+sub_810C540: @ 810C540
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
+ bl BasicInitMenuWindow
+ bl sub_8072DEC
+ movs r0, 0x7
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r0, _0810C5A4 @ =gStringVar1
+ ldr r4, _0810C5A8 @ =gPokeblockNames
+ ldr r3, _0810C5AC @ =gSaveBlock1
+ ldr r2, _0810C5B0 @ =gUnknown_02039248
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r4
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r4, _0810C5B4 @ =gStringVar4
+ ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0810C5BC @ =sub_810C5EC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C5A0: .4byte gWindowConfig_81E6E50
+_0810C5A4: .4byte gStringVar1
+_0810C5A8: .4byte gPokeblockNames
+_0810C5AC: .4byte gSaveBlock1
+_0810C5B0: .4byte gUnknown_02039248
+_0810C5B4: .4byte gStringVar4
+_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
+_0810C5BC: .4byte sub_810C5EC
+ thumb_func_end sub_810C540
+
+ thumb_func_start sub_810C5C0
+sub_810C5C0: @ 810C5C0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ ldr r1, _0810C5E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C5E8 @ =sub_810C540
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C5E4: .4byte gTasks
+_0810C5E8: .4byte sub_810C540
+ thumb_func_end sub_810C5C0
+
+ thumb_func_start sub_810C5EC
+sub_810C5EC: @ 810C5EC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0810C60C @ =gUnknown_083F7F24
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C60C: .4byte gUnknown_083F7F24
+ thumb_func_end sub_810C5EC
+
+ thumb_func_start sub_810C610
+sub_810C610: @ 810C610
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C658 @ =gUnknown_02039248
+ ldrb r0, [r1, 0x1]
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810CA6C
+ ldr r5, _0810C65C @ =gStringVar4
+ ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0810C664 @ =sub_810C704
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ bl sub_810BC98
+ bl sub_810BD08
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C658: .4byte gUnknown_02039248
+_0810C65C: .4byte gStringVar4
+_0810C660: .4byte gContestStatsText_WasThrownAway
+_0810C664: .4byte sub_810C704
+ thumb_func_end sub_810C610
+
+ thumb_func_start sub_810C668
+sub_810C668: @ 810C668
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ ldr r2, _0810C6CC @ =gUnknown_02039248
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bls _0810C698
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _0810C698
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+_0810C698:
+ ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
+ bl BasicInitMenuWindow
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C6D4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C6D8 @ =sub_810BF7C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C6CC: .4byte gUnknown_02039248
+_0810C6D0: .4byte gWindowConfig_81E6E50
+_0810C6D4: .4byte gTasks
+_0810C6D8: .4byte sub_810BF7C
+ thumb_func_end sub_810C668
+
+ thumb_func_start sub_810C6DC
+sub_810C6DC: @ 810C6DC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0810C700 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C6F6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C6FC
+_0810C6F6:
+ adds r0, r2, 0
+ bl sub_810C668
+_0810C6FC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C700: .4byte gMain
+ thumb_func_end sub_810C6DC
+
+ thumb_func_start sub_810C704
+sub_810C704: @ 810C704
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0810C738 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810C73C @ =gUnknown_02039248
+ ldrb r0, [r0, 0x1]
+ bl sub_810BC84
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ ldr r1, _0810C740 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C744 @ =sub_810C6DC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C738: .4byte gWindowConfig_81E6E34
+_0810C73C: .4byte gUnknown_02039248
+_0810C740: .4byte gTasks
+_0810C744: .4byte sub_810C6DC
+ thumb_func_end sub_810C704
+
+ thumb_func_start sub_810C748
+sub_810C748: @ 810C748
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ bl sub_8072DEC
+ movs r0, 0x7
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C780 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C784 @ =sub_810BF7C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C780: .4byte gTasks
+_0810C784: .4byte sub_810BF7C
+ thumb_func_end sub_810C748
+
+ thumb_func_start sub_810C788
+sub_810C788: @ 810C788
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0810C834 @ =gEnemyParty
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _0810C838 @ =gScriptItemId
+ ldrh r1, [r7]
+ lsls r1, 3
+ ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
+ adds r1, r5
+ bl sub_810CAE4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810C840 @ =gUnknown_030041C0
+ ldr r2, _0810C844 @ =gPokeblockNames
+ ldr r1, _0810C848 @ =0xfffff808
+ adds r5, r1
+ ldrh r1, [r7]
+ lsls r1, 3
+ adds r1, r5
+ movs r6, 0xFF
+ lsls r6, 3
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldrb r0, [r7]
+ bl sub_810CA6C
+ ldrh r0, [r7]
+ lsls r0, 3
+ adds r0, r5
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ strh r0, [r7]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0
+ bne _0810C7F4
+ adds r0, 0x1
+ strh r0, [r7]
+_0810C7F4:
+ cmp r4, 0
+ ble _0810C7FE
+ ldrh r0, [r7]
+ adds r0, 0x2
+ strh r0, [r7]
+_0810C7FE:
+ cmp r4, 0
+ bge _0810C808
+ ldrh r0, [r7]
+ adds r0, 0x3
+ strh r0, [r7]
+_0810C808:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0810C84C @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C850 @ =sub_810C2C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C834: .4byte gEnemyParty
+_0810C838: .4byte gScriptItemId
+_0810C83C: .4byte gSaveBlock1 + 0x7F8
+_0810C840: .4byte gUnknown_030041C0
+_0810C844: .4byte gPokeblockNames
+_0810C848: .4byte 0xfffff808
+_0810C84C: .4byte gTasks
+_0810C850: .4byte sub_810C2C8
+ thumb_func_end sub_810C788
+
+ thumb_func_start sub_810C854
+sub_810C854: @ 810C854
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _0810C8B8 @ =gScriptItemId
+ ldrb r0, [r4]
+ bl SafariZoneActivatePokeblockFeeder
+ ldr r0, _0810C8BC @ =gStringVar1
+ ldr r3, _0810C8C0 @ =gPokeblockNames
+ ldr r2, _0810C8C4 @ =gSaveBlock1
+ ldrh r1, [r4]
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r1, _0810C8C8 @ =gScriptResult
+ ldrh r0, [r4]
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810CA6C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0810C8CC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C8D0 @ =sub_810C2C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C8B8: .4byte gScriptItemId
+_0810C8BC: .4byte gStringVar1
+_0810C8C0: .4byte gPokeblockNames
+_0810C8C4: .4byte gSaveBlock1
+_0810C8C8: .4byte gScriptResult
+_0810C8CC: .4byte gTasks
+_0810C8D0: .4byte sub_810C2C8
+ thumb_func_end sub_810C854
+
+ thumb_func_start sub_810C8D4
+sub_810C8D4: @ 810C8D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ ble _0810C8E4
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0810C8E4:
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _0810C8F2
+ cmp r5, 0x1
+ beq _0810C918
+ b _0810C944
+_0810C8F2:
+ 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, _0810C914 @ =gUnknown_083F7F70
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ b _0810C944
+ .align 2, 0
+_0810C914: .4byte gUnknown_083F7F70
+_0810C918:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _0810C944
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ strh r2, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, _0810C94C @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_0810C944:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C94C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_810C8D4
+
+ thumb_func_start sub_810C950
+sub_810C950: @ 810C950
+ lsls r0, 24
+ ldr r1, _0810C988 @ =gSaveBlock1
+ lsrs r0, 21
+ adds r0, r1
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _0810C98C @ =0x000007f9
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0810C990 @ =0x000007fe
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0810C988: .4byte gSaveBlock1
+_0810C98C: .4byte 0x000007f9
+_0810C990: .4byte 0x000007fe
+ thumb_func_end sub_810C950
+
+ thumb_func_start sub_810C994
+sub_810C994: @ 810C994
+ push {r4,lr}
+ movs r4, 0
+_0810C998:
+ adds r0, r4, 0
+ bl sub_810C950
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x27
+ bls _0810C998
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C994
+
+ thumb_func_start sub_810C9B0
+sub_810C9B0: @ 810C9B0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x1
+_0810C9C0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bcs _0810C9D8
+ adds r5, r0, 0
+_0810C9D8:
+ adds r1, r4, 0
+ cmp r1, 0x4
+ bls _0810C9C0
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810C9B0
+
+ thumb_func_start sub_810C9E8
+sub_810C9E8: @ 810C9E8
+ push {lr}
+ movs r1, 0x6
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x63
+ bls _0810C9FA
+ movs r0, 0x63
+_0810C9FA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810C9E8
+
+ thumb_func_start sub_810CA00
+sub_810CA00: @ 810CA00
+ push {lr}
+ movs r1, 0
+ ldr r3, _0810CA1C @ =gSaveBlock1
+ movs r2, 0xFF
+ lsls r2, 3
+_0810CA0A:
+ lsls r0, r1, 3
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CA20
+ lsls r0, r1, 24
+ asrs r0, 24
+ b _0810CA2E
+ .align 2, 0
+_0810CA1C: .4byte gSaveBlock1
+_0810CA20:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x27
+ bls _0810CA0A
+ movs r0, 0x1
+ negs r0, r0
+_0810CA2E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA00
+
+ thumb_func_start sub_810CA34
+sub_810CA34: @ 810CA34
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_810CA00
+ lsls r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _0810CA64
+ ldr r0, _0810CA60 @ =gSaveBlock1
+ lsls r2, 3
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ adds r2, r0
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x1
+ b _0810CA66
+ .align 2, 0
+_0810CA60: .4byte gSaveBlock1
+_0810CA64:
+ movs r0, 0
+_0810CA66:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA34
+
+ thumb_func_start sub_810CA6C
+sub_810CA6C: @ 810CA6C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0810CA90 @ =gSaveBlock1
+ lsls r0, r2, 3
+ adds r0, r1
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810CA94
+ adds r0, r2, 0
+ bl sub_810C950
+ movs r0, 0x1
+ b _0810CA96
+ .align 2, 0
+_0810CA90: .4byte gSaveBlock1
+_0810CA94:
+ movs r0, 0
+_0810CA96:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA6C
+
+ thumb_func_start sub_810CA9C
+sub_810CA9C: @ 810CA9C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _0810CAAC
+ ldrb r0, [r0]
+ b _0810CADE
+_0810CAAC:
+ cmp r1, 0x1
+ bne _0810CAB4
+ ldrb r0, [r0, 0x1]
+ b _0810CADE
+_0810CAB4:
+ cmp r1, 0x2
+ bne _0810CABC
+ ldrb r0, [r0, 0x2]
+ b _0810CADE
+_0810CABC:
+ cmp r1, 0x3
+ bne _0810CAC4
+ ldrb r0, [r0, 0x3]
+ b _0810CADE
+_0810CAC4:
+ cmp r1, 0x4
+ bne _0810CACC
+ ldrb r0, [r0, 0x4]
+ b _0810CADE
+_0810CACC:
+ cmp r1, 0x5
+ bne _0810CAD4
+ ldrb r0, [r0, 0x5]
+ b _0810CADE
+_0810CAD4:
+ cmp r2, 0x6
+ beq _0810CADC
+ movs r0, 0
+ b _0810CADE
+_0810CADC:
+ ldrb r0, [r0, 0x6]
+_0810CADE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA9C
+
+ thumb_func_start sub_810CAE4
+sub_810CAE4: @ 810CAE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ movs r4, 0
+ ldr r1, _0810CB40 @ =gUnknown_083F7E28
+ mov r9, r1
+ lsls r1, r0, 2
+ adds r7, r1, r0
+_0810CAFE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_810CA9C
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ ble _0810CB2A
+ adds r0, r7, r4
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r1, r0
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_0810CB2A:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ bls _0810CAFE
+ lsls r0, r6, 16
+ asrs r0, 16
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810CB40: .4byte gUnknown_083F7E28
+ thumb_func_end sub_810CAE4
+
+ thumb_func_start sub_810CB44
+sub_810CB44: @ 810CB44
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ ldr r1, _0810CB64 @ =gPokeblockNames
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CB64: .4byte gPokeblockNames
+ thumb_func_end sub_810CB44
+
+ thumb_func_start sub_810CB68
+sub_810CB68: @ 810CB68
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r7, _0810CB98 @ =gPokeblockNames
+_0810CB74:
+ lsls r1, r4, 3
+ ldr r0, _0810CB9C @ =gUnknown_083F7F9C
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_810CAE4
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810CBA0
+ adds r0, r4, 0x1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl StringCopy
+ movs r0, 0x1
+ b _0810CBAC
+ .align 2, 0
+_0810CB98: .4byte gPokeblockNames
+_0810CB9C: .4byte gUnknown_083F7F9C
+_0810CBA0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0810CB74
+ movs r0, 0
+_0810CBAC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CB68
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81473B8.s b/asm/pokeblock_feed.s
index 6c26c034a..7df634399 100644
--- a/asm/rom_81473B8.s
+++ b/asm/pokeblock_feed.s
@@ -6,603 +6,6 @@
.text
- thumb_func_start sub_81473B8
-sub_81473B8: @ 81473B8
- push {lr}
- ldr r0, _081473E8 @ =0x0000084f
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08147400
- ldr r2, _081473EC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081473F0 @ =0x00004718
- cmp r1, r0
- bne _08147400
- ldr r1, [r2]
- ldr r0, _081473F4 @ =0x0003000a
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473F8 @ =0x00030009
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473FC @ =0x0003000b
- cmp r1, r0
- bne _08147400
-_081473E4:
- movs r0, 0x1
- b _08147402
- .align 2, 0
-_081473E8: .4byte 0x0000084f
-_081473EC: .4byte gSaveBlock1
-_081473F0: .4byte 0x00004718
-_081473F4: .4byte 0x0003000a
-_081473F8: .4byte 0x00030009
-_081473FC: .4byte 0x0003000b
-_08147400:
- movs r0, 0
-_08147402:
- pop {r1}
- bx r1
- thumb_func_end sub_81473B8
-
- thumb_func_start sub_8147408
-sub_8147408: @ 8147408
- push {lr}
- ldr r2, _08147460 @ =0x0000022a
- movs r0, 0x10
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147464 @ =0x0000022b
- movs r0, 0x11
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147468 @ =0x00000e32
- movs r0, 0x10
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _0814746C @ =0x00000233
- movs r0, 0x11
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _08147470 @ =0x00000e34
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147474 @ =0x0000084f
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147460: .4byte 0x0000022a
-_08147464: .4byte 0x0000022b
-_08147468: .4byte 0x00000e32
-_0814746C: .4byte 0x00000233
-_08147470: .4byte 0x00000e34
-_08147474: .4byte 0x0000084f
- thumb_func_end sub_8147408
-
- thumb_func_start sub_8147478
-sub_8147478: @ 8147478
- push {r4,lr}
- ldr r4, _081474B4 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _081474B8 @ =0x0000017d
- cmp r0, r1
- bne _081474C0
- bl CalculatePlayerPartyCount
- ldr r0, _081474BC @ =gPlayerPartyCount
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r4, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0x9D
- lsls r1, 1
- cmp r0, r1
- bne _081474C0
- movs r0, 0x1
- b _081474C2
- .align 2, 0
-_081474B4: .4byte gPlayerParty
-_081474B8: .4byte 0x0000017d
-_081474BC: .4byte gPlayerPartyCount
-_081474C0:
- movs r0, 0
-_081474C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8147478
-
- thumb_func_start sub_81474C8
-sub_81474C8: @ 81474C8
- push {lr}
- movs r0, 0x85
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0814750C
- ldr r2, _081474FC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- movs r0, 0xC3
- lsls r0, 3
- cmp r1, r0
- bne _0814750C
- ldr r1, [r2]
- ldr r0, _08147500 @ =0x0017000a
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147504 @ =0x00170009
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147508 @ =0x0017000b
- cmp r1, r0
- bne _0814750C
-_081474F8:
- movs r0, 0x1
- b _0814750E
- .align 2, 0
-_081474FC: .4byte gSaveBlock1
-_08147500: .4byte 0x0017000a
-_08147504: .4byte 0x00170009
-_08147508: .4byte 0x0017000b
-_0814750C:
- movs r0, 0
-_0814750E:
- pop {r1}
- bx r1
- thumb_func_end sub_81474C8
-
- thumb_func_start sub_8147514
-sub_8147514: @ 8147514
- push {lr}
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- ldr r2, _08147574 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147578 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814757C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147580 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147584 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- movs r0, 0x85
- lsls r0, 4
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147574: .4byte 0x0000022a
-_08147578: .4byte 0x0000022b
-_0814757C: .4byte 0x00000e32
-_08147580: .4byte 0x00000233
-_08147584: .4byte 0x00000e34
- thumb_func_end sub_8147514
-
- thumb_func_start sub_8147588
-sub_8147588: @ 8147588
- push {lr}
- ldr r0, _081475AC @ =0x00000852
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081475BC
- ldr r2, _081475B0 @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081475B4 @ =0x00004418
- cmp r1, r0
- bne _081475BC
- ldr r1, [r2]
- ldr r0, _081475B8 @ =0x00190008
- cmp r1, r0
- bne _081475BC
- movs r0, 0x1
- b _081475BE
- .align 2, 0
-_081475AC: .4byte 0x00000852
-_081475B0: .4byte gSaveBlock1
-_081475B4: .4byte 0x00004418
-_081475B8: .4byte 0x00190008
-_081475BC:
- movs r0, 0
-_081475BE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147588
-
- thumb_func_start sub_81475C4
-sub_81475C4: @ 81475C4
- push {lr}
- ldr r0, _081475D8 @ =gUnknown_0202FF84
- ldr r1, _081475DC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x3C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_081475D8: .4byte gUnknown_0202FF84
-_081475DC: .4byte gUnknown_03005CE0
- thumb_func_end sub_81475C4
-
- thumb_func_start FldEff_UseFlyAncientTomb
-FldEff_UseFlyAncientTomb: @ 81475E0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147604 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08147608 @ =sub_814760C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08147604: .4byte gTasks
-_08147608: .4byte sub_814760C
- thumb_func_end FldEff_UseFlyAncientTomb
-
- thumb_func_start sub_814760C
-sub_814760C: @ 814760C
- push {lr}
- movs r0, 0x3C
- bl FieldEffectActiveListRemove
- bl sub_814761C
- pop {r0}
- bx r0
- thumb_func_end sub_814760C
-
- thumb_func_start sub_814761C
-sub_814761C: @ 814761C
- push {lr}
- ldr r2, _08147674 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147678 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814767C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147680 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147684 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147688 @ =0x00000852
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147674: .4byte 0x0000022a
-_08147678: .4byte 0x0000022b
-_0814767C: .4byte 0x00000e32
-_08147680: .4byte 0x00000233
-_08147684: .4byte 0x00000e34
-_08147688: .4byte 0x00000852
- thumb_func_end sub_814761C
-
- thumb_func_start sub_814768C
-sub_814768C: @ 814768C
- push {lr}
- ldr r0, _081476A8 @ =0x00000851
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081476A2
- ldr r0, _081476AC @ =sub_81476B0
- movs r1, 0x50
- bl CreateTask
-_081476A2:
- pop {r0}
- bx r0
- .align 2, 0
-_081476A8: .4byte 0x00000851
-_081476AC: .4byte sub_81476B0
- thumb_func_end sub_814768C
-
- thumb_func_start sub_81476B0
-sub_81476B0: @ 81476B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081476D4 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0814776A
- lsls r0, 2
- ldr r1, _081476D8 @ =_081476DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081476D4: .4byte gTasks + 0x8
-_081476D8: .4byte _081476DC
- .align 2, 0
-_081476DC:
- .4byte _081476F0
- .4byte _081476FE
- .4byte _08147730
- .4byte _08147748
- .4byte _0814775A
-_081476F0:
- movs r1, 0xE1
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4]
- b _0814776A
-_081476FE:
- bl sub_8147774
- cmp r0, 0
- beq _08147716
- bl MenuZeroFillScreen
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- strh r0, [r4]
- b _0814776A
-_08147716:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- bl MenuZeroFillScreen
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x1E
- strh r0, [r4, 0x2]
- b _0814776A
-_08147730:
- bl sub_8147774
- cmp r0, 0
- beq _08147748
- bl sub_8064E2C
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- b _0814776A
-_08147748:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- movs r0, 0x4
- strh r0, [r4]
- b _0814776A
-_0814775A:
- bl sub_8064E2C
- ldr r0, _08147770 @ =gUnknown_0815EF19
- bl ScriptContext1_SetupScript
- adds r0, r5, 0
- bl DestroyTask
-_0814776A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147770: .4byte gUnknown_0815EF19
- thumb_func_end sub_81476B0
-
- thumb_func_start sub_8147774
-sub_8147774: @ 8147774
- push {lr}
- movs r1, 0xFF
- ldr r0, _081477A4 @ =gSaveBlock2
- ldrb r2, [r0, 0x13]
- cmp r2, 0x1
- bne _08147788
- movs r3, 0xC0
- lsls r3, 2
- adds r0, r3, 0
- orrs r1, r0
-_08147788:
- cmp r2, 0x2
- bne _08147794
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- orrs r1, r0
-_08147794:
- ldr r0, _081477A8 @ =gMain
- ldrh r0, [r0, 0x2E]
- ands r1, r0
- cmp r1, 0
- bne _081477AC
- movs r0, 0
- b _081477AE
- .align 2, 0
-_081477A4: .4byte gSaveBlock2
-_081477A8: .4byte gMain
-_081477AC:
- movs r0, 0x1
-_081477AE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147774
-
- thumb_func_start sub_81477B4
-sub_81477B4: @ 81477B4
- push {lr}
- ldr r0, _081477E8 @ =sub_814782C
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081477EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x2
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x32
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_081477E8: .4byte sub_814782C
-_081477EC: .4byte gTasks
- thumb_func_end sub_81477B4
-
- thumb_func_start sub_81477F0
-sub_81477F0: @ 81477F0
- push {lr}
- ldr r0, _08147824 @ =sub_814782C
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147828 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x2
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_08147824: .4byte sub_814782C
-_08147828: .4byte gTasks
- thumb_func_end sub_81477F0
-
- thumb_func_start sub_814782C
-sub_814782C: @ 814782C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0814788C @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _08147884
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08147884
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl InstallCameraPanAheadCallback
-_08147884:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814788C: .4byte gTasks
- thumb_func_end sub_814782C
-
thumb_func_start sub_8147890
sub_8147890: @ 8147890
push {lr}
@@ -962,7 +365,7 @@ _08147B70:
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
b _08147C40
.align 2, 0
_08147BAC: .4byte gMonFrontPicTable
diff --git a/asm/pokedex.s b/asm/pokedex.s
index fe069bcf8..8fd971840 100644
--- a/asm/pokedex.s
+++ b/asm/pokedex.s
@@ -158,7 +158,7 @@ _080908A0:
movs r2, 0
movs r3, 0xD0
bl sub_8072BD8
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _080908CC
adds r0, r6, 0
@@ -719,8 +719,8 @@ GetPokemonCategory: @ 8090D3C
_08090D50: .4byte gPokedexEntries
thumb_func_end GetPokemonCategory
- thumb_func_start sub_8090D54
-sub_8090D54: @ 8090D54
+ thumb_func_start GetPokedexHeightWeight
+GetPokedexHeightWeight: @ 8090D54
push {lr}
lsls r0, 16
lsrs r2, r0, 16
@@ -754,7 +754,7 @@ _08090D88:
bx r1
.align 2, 0
_08090D8C: .4byte gPokedexEntries
- thumb_func_end sub_8090D54
+ thumb_func_end GetPokedexHeightWeight
thumb_func_start sub_8090D90
sub_8090D90: @ 8090D90
@@ -2336,7 +2336,7 @@ _08091958:
str r4, [sp, 0x8]
movs r4, 0x1
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
b _080919CE
.align 2, 0
_0809198C: .4byte gMonFrontPicTable
@@ -2367,7 +2367,7 @@ _0809199C:
str r4, [sp, 0x8]
movs r4, 0x1
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
_080919CE:
ldr r0, _08091A40 @ =gMonPaletteTable
adds r0, r6, r0
@@ -3018,7 +3018,7 @@ _08091EA6:
movs r1, 0x1
movs r2, 0x7E
bl LoadPalette
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _08091F10
movs r4, 0
@@ -3377,7 +3377,7 @@ sub_80921B0: @ 80921B0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080921E4
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
ldr r6, _080921DC @ =gUnknown_083B586C
cmp r0, 0
bne _080921F0
@@ -3388,7 +3388,7 @@ _080921D8: .4byte gTasks
_080921DC: .4byte gUnknown_083B586C
_080921E0: .4byte gUnknown_083B58A4
_080921E4:
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
ldr r6, _0809221C @ =gUnknown_083B5850
cmp r0, 0
bne _080921F0
@@ -3458,7 +3458,7 @@ _08092230:
bl sub_8092E10
ldr r4, _080922C8 @ =gSaveBlock2
strb r0, [r4, 0x19]
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _08092288
movs r0, 0
@@ -4269,7 +4269,7 @@ _08092904:
.align 2, 0
_08092910: .4byte gUnknown_083B57FC
_08092914:
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _08092940
ldr r2, _0809293C @ =gUnknown_083B57FC
@@ -4647,7 +4647,7 @@ sub_8092B68: @ 8092B68
movs r2, 0x40
movs r3, 0x1
bl MenuPrint_PixelCoords
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
beq _08092C5E
ldrh r0, [r6, 0xE]
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
new file mode 100644
index 000000000..d4bb815b3
--- /dev/null
+++ b/asm/pokemon_3.s
@@ -0,0 +1,2826 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_803F938
+unref_sub_803F938: @ 803F938
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r1, 0
+ mov r10, r2
+ lsls r0, 16
+ movs r1, 0x9A
+ lsls r1, 17
+ cmp r0, r1
+ bne _0803FA42
+ ldr r1, _0803FA04 @ =gUnknown_081FAF4C
+ ldr r0, [r1]
+ cmp r10, r0
+ beq _0803FA42
+ ldr r0, [r1, 0x8]
+ cmp r10, r0
+ beq _0803FA42
+ movs r6, 0
+_0803F962:
+ lsls r3, r6, 3
+ adds r3, r6
+ lsls r3, 2
+ ldr r0, _0803FA08 @ =gSpindaSpotGraphics
+ adds r4, r3, r0
+ ldrb r1, [r4]
+ adds r1, 0xF8
+ movs r2, 0xF
+ adds r0, r5, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ ldrb r1, [r4, 0x1]
+ adds r1, 0xF8
+ movs r0, 0xF0
+ ands r0, r5
+ lsrs r0, 4
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ lsrs r5, 8
+ str r5, [sp, 0x4]
+ adds r6, 0x1
+ str r6, [sp]
+ mov r9, r3
+_0803F99A:
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r3, _0803FA0C @ =gSpindaSpotGraphics + 0x2
+ adds r0, r3
+ ldrh r3, [r0]
+ mov r4, r12
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r7, r1, 0x1
+ adds r2, 0x1
+ mov r8, r2
+ cmp r4, r0
+ bge _0803FA30
+ lsrs r0, r1, 3
+ lsls r6, r0, 8
+ movs r0, 0x7
+ ands r1, r0
+ lsls r5, r1, 2
+_0803F9BE:
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _0803F9C6
+ adds r0, r4, 0x7
+_0803F9C6:
+ asrs r0, 3
+ lsls r2, r0, 5
+ add r2, r10
+ lsls r0, 3
+ subs r0, r4, r0
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r2, r0
+ adds r2, r6
+ adds r2, r5
+ movs r1, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FA24
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FA10
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x20
+ bhi _0803FA24
+ adds r0, r1, 0
+ adds r0, 0x40
+ b _0803FA22
+ .align 2, 0
+_0803FA04: .4byte gUnknown_081FAF4C
+_0803FA08: .4byte gSpindaSpotGraphics
+_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
+_0803FA10:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _0803FA24
+ adds r0, r1, 0x4
+_0803FA22:
+ strb r0, [r2]
+_0803FA24:
+ asrs r3, 1
+ adds r4, 0x1
+ mov r0, r12
+ adds r0, 0x10
+ cmp r4, r0
+ blt _0803F9BE
+_0803FA30:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ mov r2, r8
+ cmp r2, 0xF
+ ble _0803F99A
+ ldr r5, [sp, 0x4]
+ ldr r6, [sp]
+ cmp r6, 0x3
+ ble _0803F962
+_0803FA42:
+ 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 unref_sub_803F938
+
+ thumb_func_start DrawSpindaSpots
+DrawSpindaSpots: @ 803FA54
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r1, 0
+ str r2, [sp]
+ lsls r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x9A
+ lsls r1, 17
+ cmp r0, r1
+ bne _0803FB56
+ cmp r3, 0
+ beq _0803FB56
+ movs r6, 0
+_0803FA78:
+ lsls r3, r6, 3
+ adds r3, r6
+ lsls r3, 2
+ ldr r0, _0803FB1C @ =gSpindaSpotGraphics
+ adds r4, r3, r0
+ ldrb r1, [r4]
+ adds r1, 0xF8
+ movs r2, 0xF
+ adds r0, r5, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ ldrb r1, [r4, 0x1]
+ adds r1, 0xF8
+ movs r0, 0xF0
+ ands r0, r5
+ lsrs r0, 4
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ lsrs r5, 8
+ str r5, [sp, 0x4]
+ adds r6, 0x1
+ mov r10, r6
+ mov r9, r3
+_0803FAB0:
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r3, _0803FB20 @ =gSpindaSpotGraphics + 0x2
+ adds r0, r3
+ ldrh r3, [r0]
+ mov r4, r12
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r7, r1, 0x1
+ adds r2, 0x1
+ mov r8, r2
+ cmp r4, r0
+ bge _0803FB44
+ lsrs r0, r1, 3
+ lsls r6, r0, 8
+ movs r0, 0x7
+ ands r1, r0
+ lsls r5, r1, 2
+_0803FAD4:
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _0803FADC
+ adds r0, r4, 0x7
+_0803FADC:
+ asrs r0, 3
+ lsls r2, r0, 5
+ ldr r1, [sp]
+ adds r2, r1, r2
+ lsls r0, 3
+ subs r0, r4, r0
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r2, r0
+ adds r2, r6
+ adds r2, r5
+ movs r1, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FB38
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FB24
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x20
+ bhi _0803FB38
+ adds r0, r1, 0
+ adds r0, 0x40
+ b _0803FB36
+ .align 2, 0
+_0803FB1C: .4byte gSpindaSpotGraphics
+_0803FB20: .4byte gSpindaSpotGraphics + 0x2
+_0803FB24:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _0803FB38
+ adds r0, r1, 0x4
+_0803FB36:
+ strb r0, [r2]
+_0803FB38:
+ asrs r3, 1
+ adds r4, 0x1
+ mov r0, r12
+ adds r0, 0x10
+ cmp r4, r0
+ blt _0803FAD4
+_0803FB44:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ mov r2, r8
+ cmp r2, 0xF
+ ble _0803FAB0
+ ldr r5, [sp, 0x4]
+ mov r6, r10
+ cmp r6, 0x3
+ ble _0803FA78
+_0803FB56:
+ 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 DrawSpindaSpots
+
+ .if REVISION >= 1
+ thumb_func_start sub_803FB68
+sub_803FB68: @ 803FB68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r0, =gStringVar1
+ mov r9, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ mov r2, r9
+ bl GetMonData
+ mov r4, sp
+ adds r0, r5, 0
+ movs r1, 0x3
+ mov r2, sp
+ bl GetMonData
+ strb r0, [r4, 0x0]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0803FBC4
+ movs r6, 0xB
+ adds r0, r7, 0
+ muls r0, r6
+ ldr r4, =gSpeciesNames
+ adds r0, r4
+ mov r1, r9
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0803FBC4
+ mov r2, r8
+ muls r2, r6
+ adds r2, r4
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+_0803FBC4:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_803FB68
+ .else
+ thumb_func_start sub_803FB68
+sub_803FB68: @ 803FB68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r5, _0803FBB4 @ =gStringVar1
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ movs r6, 0xB
+ adds r0, r4, 0
+ muls r0, r6
+ ldr r4, _0803FBB8 @ =gSpeciesNames
+ adds r0, r4
+ adds r1, r5, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0803FBA8
+ mov r2, r8
+ muls r2, r6
+ adds r2, r4
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl SetMonData
+_0803FBA8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803FBB4: .4byte gStringVar1
+_0803FBB8: .4byte gSpeciesNames
+ thumb_func_end sub_803FB68
+ .endif
+
+ thumb_func_start sub_803FBBC
+sub_803FBBC: @ 803FBBC
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _0803FBE4 @ =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, 0x2
+ bgt _0803FBE8
+ cmp r0, 0x1
+ bge _0803FBF0
+ cmp r0, 0
+ beq _0803FBEC
+ b _0803FBF2
+ .align 2, 0
+_0803FBE4: .4byte gLinkPlayers
+_0803FBE8:
+ cmp r0, 0x3
+ bne _0803FBF2
+_0803FBEC:
+ movs r5, 0
+ b _0803FBF2
+_0803FBF0:
+ movs r5, 0x1
+_0803FBF2:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FBBC
+
+ thumb_func_start sub_803FBFC
+sub_803FBFC: @ 803FBFC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r2, _0803FC20 @ =gLinkPlayers
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x18]
+ cmp r0, 0x2
+ bgt _0803FC24
+ cmp r0, 0x1
+ bge _0803FC2C
+ cmp r0, 0
+ beq _0803FC28
+ b _0803FC2E
+ .align 2, 0
+_0803FC20: .4byte gLinkPlayers
+_0803FC24:
+ cmp r0, 0x3
+ bne _0803FC2E
+_0803FC28:
+ movs r3, 0
+ b _0803FC2E
+_0803FC2C:
+ movs r3, 0x1
+_0803FC2E:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FBFC
+
+ thumb_func_start sub_803FC34
+sub_803FC34: @ 803FC34
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r1, _0803FC40 @ =gLinkPlayers
+ b _0803FC4C
+ .align 2, 0
+_0803FC40: .4byte gLinkPlayers
+_0803FC44:
+ adds r1, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _0803FC52
+_0803FC4C:
+ ldrh r0, [r1, 0x18]
+ cmp r0, r3
+ bne _0803FC44
+_0803FC52:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FC34
+
+ thumb_func_start sub_803FC58
+sub_803FC58: @ 803FC58
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0803FC70 @ =gTrainers
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0x2]
+ movs r0, 0x7F
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0803FC70: .4byte gTrainers
+ thumb_func_end sub_803FC58
+
+ thumb_func_start nature_stat_mod
+nature_stat_mod: @ 803FC74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0xFF
+ lsls r0, 24
+ adds r2, r0
+ lsrs r2, 24
+ cmp r2, 0x4
+ bls _0803FC92
+ adds r0, r3, 0
+ b _0803FCCE
+_0803FC92:
+ ldr r0, _0803FCB4 @ =gNatureStatTable
+ lsls r1, r4, 2
+ adds r1, r4
+ subs r1, 0x1
+ adds r1, r5, r1
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0803FCB8
+ cmp r1, 0x1
+ bne _0803FCCC
+ movs r0, 0x6E
+ b _0803FCBA
+ .align 2, 0
+_0803FCB4: .4byte gNatureStatTable
+_0803FCB8:
+ movs r0, 0x5A
+_0803FCBA:
+ muls r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ b _0803FCCE
+_0803FCCC:
+ adds r0, r3, 0
+_0803FCCE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end nature_stat_mod
+
+ thumb_func_start AdjustFriendship
+AdjustFriendship: @ 803FCD4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r7, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803FD34
+ ldr r0, _0803FD14 @ =gMain
+ ldr r1, _0803FD18 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FD20
+ ldr r0, _0803FD1C @ =gEnigmaBerries
+ ldrb r4, [r0, 0x7]
+ b _0803FD3C
+ .align 2, 0
+_0803FD14: .4byte gMain
+_0803FD18: .4byte 0x0000043d
+_0803FD1C: .4byte gEnigmaBerries
+_0803FD20:
+ ldr r0, _0803FD2C @ =gSaveBlock1
+ ldr r1, _0803FD30 @ =0x00003688
+ adds r0, r1
+ ldrb r4, [r0]
+ b _0803FD3C
+ .align 2, 0
+_0803FD2C: .4byte gSaveBlock1
+_0803FD30: .4byte 0x00003688
+_0803FD34:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0803FD3C:
+ cmp r6, 0
+ bne _0803FD42
+ b _0803FE56
+_0803FD42:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ bne _0803FD4C
+ b _0803FE56
+_0803FD4C:
+ movs r6, 0
+ adds r0, r7, 0
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x63
+ ble _0803FD6A
+ movs r6, 0x1
+_0803FD6A:
+ cmp r0, 0xC7
+ ble _0803FD74
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0803FD74:
+ cmp r5, 0x5
+ bne _0803FD84
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0803FE56
+_0803FD84:
+ cmp r5, 0x3
+ bne _0803FDB4
+ ldr r0, _0803FE60 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FE56
+ ldr r2, _0803FE64 @ =gTrainers
+ ldr r0, _0803FE68 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ adds r0, r1, 0
+ subs r0, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0803FDB4
+ cmp r1, 0x20
+ bne _0803FE56
+_0803FDB4:
+ ldr r1, _0803FE6C @ =gUnknown_082082FE
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ ble _0803FDDA
+ cmp r4, 0x1B
+ bne _0803FDDA
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0803FDDA:
+ lsls r2, 24
+ asrs r2, 24
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, r2
+ mov r1, sp
+ strh r0, [r1]
+ cmp r2, 0
+ ble _0803FE2C
+ adds r0, r7, 0
+ movs r1, 0x26
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xB
+ bne _0803FE08
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x1
+ mov r1, sp
+ strh r0, [r1]
+_0803FE08:
+ adds r0, r7, 0
+ movs r1, 0x23
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ bl sav1_map_get_name
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0803FE2C
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x1
+ mov r1, sp
+ strh r0, [r1]
+_0803FE2C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0803FE3C
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+_0803FE3C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ ble _0803FE4C
+ movs r1, 0xFF
+ mov r0, sp
+ strh r1, [r0]
+_0803FE4C:
+ adds r0, r7, 0
+ movs r1, 0x20
+ mov r2, sp
+ bl SetMonData
+_0803FE56:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803FE60: .4byte gBattleTypeFlags
+_0803FE64: .4byte gTrainers
+_0803FE68: .4byte gTrainerBattleOpponent
+_0803FE6C: .4byte gUnknown_082082FE
+ thumb_func_end AdjustFriendship
+
+ thumb_func_start MonGainEVs
+MonGainEVs: @ 803FE70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ mov r8, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+ movs r7, 0
+ movs r6, 0
+_0803FE84:
+ adds r1, r6, 0
+ adds r1, 0x1A
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ mov r2, sp
+ adds r1, r2, r6
+ strb r0, [r1]
+ ldrb r0, [r1]
+ adds r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0803FE84
+ movs r6, 0
+ b _08040006
+_0803FEA8:
+ mov r0, r8
+ movs r1, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ movs r2, 0x1
+ cmp r0, 0
+ beq _0803FEBA
+ movs r2, 0x2
+_0803FEBA:
+ cmp r6, 0x5
+ bhi _0803FF5C
+ lsls r0, r6, 2
+ ldr r1, _0803FEC8 @ =_0803FECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803FEC8: .4byte _0803FECC
+ .align 2, 0
+_0803FECC:
+ .4byte _0803FEE4
+ .4byte _0803FEF8
+ .4byte _0803FF0C
+ .4byte _0803FF20
+ .4byte _0803FF34
+ .4byte _0803FF48
+_0803FEE4:
+ ldr r0, _0803FEF4 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 30
+ b _0803FF56
+ .align 2, 0
+_0803FEF4: .4byte gBaseStats
+_0803FEF8:
+ ldr r0, _0803FF08 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0803FF54
+ .align 2, 0
+_0803FF08: .4byte gBaseStats
+_0803FF0C:
+ ldr r0, _0803FF1C @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 26
+ b _0803FF56
+ .align 2, 0
+_0803FF1C: .4byte gBaseStats
+_0803FF20:
+ ldr r0, _0803FF30 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsrs r0, 6
+ b _0803FF58
+ .align 2, 0
+_0803FF30: .4byte gBaseStats
+_0803FF34:
+ ldr r0, _0803FF44 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 30
+ b _0803FF56
+ .align 2, 0
+_0803FF44: .4byte gBaseStats
+_0803FF48:
+ ldr r0, _0803FF84 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xB]
+_0803FF54:
+ lsls r0, 28
+_0803FF56:
+ lsrs r0, 30
+_0803FF58:
+ adds r4, r0, 0
+ muls r4, r2
+_0803FF5C:
+ mov r0, r8
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803FFA8
+ ldr r0, _0803FF88 @ =gMain
+ ldr r1, _0803FF8C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FF94
+ ldr r0, _0803FF90 @ =gEnigmaBerries
+ ldrb r0, [r0, 0x7]
+ b _0803FFB0
+ .align 2, 0
+_0803FF84: .4byte gBaseStats
+_0803FF88: .4byte gMain
+_0803FF8C: .4byte 0x0000043d
+_0803FF90: .4byte gEnigmaBerries
+_0803FF94:
+ ldr r0, _0803FFA0 @ =gSaveBlock1
+ ldr r2, _0803FFA4 @ =0x00003688
+ adds r0, r2
+ ldrb r0, [r0]
+ b _0803FFB0
+ .align 2, 0
+_0803FFA0: .4byte gSaveBlock1
+_0803FFA4: .4byte 0x00003688
+_0803FFA8:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0803FFB0:
+ cmp r0, 0x18
+ bne _0803FFB8
+ lsls r0, r4, 17
+ lsrs r4, r0, 16
+_0803FFB8:
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ adds r1, r7, r2
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ ble _0803FFD0
+ adds r0, r2, r0
+ adds r1, r7, r4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0803FFD0:
+ mov r0, sp
+ adds r2, r0, r6
+ ldrb r3, [r2]
+ lsls r0, r4, 16
+ asrs r1, r0, 16
+ adds r0, r3, r1
+ cmp r0, 0xFF
+ ble _0803FFEC
+ adds r0, r1, 0
+ adds r0, 0xFF
+ adds r1, r3, r4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0803FFEC:
+ adds r0, r3, r4
+ strb r0, [r2]
+ adds r0, r7, r4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r1, r6, 0
+ adds r1, 0x1A
+ mov r0, r8
+ bl SetMonData
+ adds r6, 0x1
+ cmp r6, 0x5
+ bgt _0804000E
+_08040006:
+ ldr r0, _0804001C @ =0x000001fd
+ cmp r7, r0
+ bhi _0804000E
+ b _0803FEA8
+_0804000E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804001C: .4byte 0x000001fd
+ thumb_func_end MonGainEVs
+
+ thumb_func_start GetMonEVCount
+GetMonEVCount: @ 8040020
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ movs r4, 0
+_08040028:
+ adds r1, r4, 0
+ adds r1, 0x1A
+ adds r0, r6, 0
+ movs r2, 0
+ bl GetMonData
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08040028
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonEVCount
+
+ thumb_func_start RandomlyGivePartyPokerus
+RandomlyGivePartyPokerus: @ 8040048
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x80
+ lsls r0, 7
+ cmp r5, r0
+ beq _0804006E
+ movs r0, 0x80
+ lsls r0, 8
+ cmp r5, r0
+ beq _0804006E
+ movs r0, 0xC0
+ lsls r0, 8
+ cmp r5, r0
+ bne _08040104
+_0804006E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x64
+ muls r0, r5
+ adds r4, r6, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0804006E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0804006E
+ ldr r1, _0804010C @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _08040104
+ mov r4, sp
+_080400B8:
+ bl Random
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r4]
+ cmp r0, 0
+ beq _080400B8
+ movs r0, 0xF0
+ mov r1, sp
+ ldrb r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _080400DA
+ movs r0, 0x7
+ ands r1, r0
+ mov r0, sp
+ strb r1, [r0]
+_080400DA:
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ orrs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ movs r1, 0xF3
+ ands r1, r0
+ mov r0, sp
+ strb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, r6, r0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_08040104:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804010C: .4byte gBitTable
+ thumb_func_end RandomlyGivePartyPokerus
+
+ thumb_func_start CheckPartyPokerus
+CheckPartyPokerus: @ 8040110
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ movs r6, 0x1
+ movs r5, 0
+ cmp r4, 0
+ beq _08040158
+_08040124:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0804014C
+ movs r0, 0x64
+ muls r0, r3
+ adds r0, r7, r0
+ movs r1, 0x22
+ movs r2, 0
+ str r3, [sp]
+ bl GetMonData
+ movs r1, 0xF
+ ands r1, r0
+ ldr r3, [sp]
+ cmp r1, 0
+ beq _0804014C
+ orrs r5, r6
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_0804014C:
+ adds r3, 0x1
+ lsls r6, 1
+ lsrs r4, 1
+ cmp r4, 0
+ bne _08040124
+ b _0804016C
+_08040158:
+ adds r0, r7, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0
+ beq _0804016C
+ movs r5, 0x1
+_0804016C:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckPartyPokerus
+
+ thumb_func_start CheckPartyHasHadPokerus
+CheckPartyHasHadPokerus: @ 8040178
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ movs r6, 0x1
+ movs r5, 0
+ cmp r4, 0
+ beq _080401BC
+_0804018C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080401B0
+ movs r0, 0x64
+ muls r0, r3
+ adds r0, r7, r0
+ movs r1, 0x22
+ movs r2, 0
+ str r3, [sp]
+ bl GetMonData
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _080401B0
+ orrs r5, r6
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080401B0:
+ adds r3, 0x1
+ lsls r6, 1
+ lsrs r4, 1
+ cmp r4, 0
+ bne _0804018C
+ b _080401CC
+_080401BC:
+ adds r0, r7, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _080401CC
+ movs r5, 0x1
+_080401CC:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckPartyHasHadPokerus
+
+ thumb_func_start UpdatePartyPokerusTime
+UpdatePartyPokerusTime: @ 80401D8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+ mov r6, sp
+_080401E4:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08040224 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0804023C
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r6]
+ movs r1, 0xF
+ adds r2, r0, 0
+ ands r1, r2
+ cmp r1, 0
+ beq _0804023C
+ cmp r1, r7
+ bcc _0804021E
+ cmp r7, 0x4
+ bls _08040228
+_0804021E:
+ movs r0, 0xF0
+ ands r0, r2
+ b _0804022A
+ .align 2, 0
+_08040224: .4byte gPlayerParty
+_08040228:
+ subs r0, r2, r7
+_0804022A:
+ strb r0, [r6]
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0804024C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_0804023C:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080401E4
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804024C: .4byte gPlayerParty
+ thumb_func_end UpdatePartyPokerusTime
+
+ thumb_func_start PartySpreadPokerus
+PartySpreadPokerus: @ 8040250
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080402F6
+ movs r5, 0
+_0804026C:
+ movs r0, 0x64
+ adds r6, r5, 0
+ muls r6, r0
+ adds r4, r7, r6
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _080402F0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ mov r0, sp
+ strb r1, [r0]
+ cmp r1, 0
+ beq _080402F0
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080402F0
+ cmp r5, 0
+ beq _080402C6
+ adds r0, r6, 0
+ subs r0, 0x64
+ adds r4, r7, r0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0
+ bne _080402C6
+ adds r0, r4, 0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_080402C6:
+ cmp r5, 0x5
+ beq _080402F0
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, 0x64
+ adds r4, r7, r0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0
+ bne _080402F0
+ adds r0, r4, 0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+_080402F0:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0804026C
+_080402F6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartySpreadPokerus
+
+ thumb_func_start TryIncrementMonLevel
+TryIncrementMonLevel: @ 8040300
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ adds r0, 0x1
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x19
+ movs r2, 0
+ bl GetMonData
+ ldr r5, _08040358 @ =gExperienceTables
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r2, 2
+ ldr r3, _0804035C @ =gBaseStats
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r3
+ ldrb r3, [r1, 0x13]
+ movs r1, 0xCA
+ lsls r1, 1
+ muls r1, r3
+ adds r2, r1
+ adds r2, r5
+ ldr r1, [r2]
+ cmp r0, r1
+ bhi _08040360
+ movs r0, 0
+ b _0804036C
+ .align 2, 0
+_08040358: .4byte gExperienceTables
+_0804035C: .4byte gBaseStats
+_08040360:
+ adds r0, r6, 0
+ movs r1, 0x38
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0x1
+_0804036C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end TryIncrementMonLevel
+
+ thumb_func_start CanMonLearnTMHM
+CanMonLearnTMHM: @ 8040374
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r5, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r3, r1, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _08040396
+ movs r0, 0
+ b _080403C2
+_08040396:
+ cmp r4, 0x1F
+ bls _080403B4
+ adds r0, r4, 0
+ subs r0, 0x20
+ movs r2, 0x1
+ lsls r2, r0
+ ldr r0, _080403B0 @ =gTMHMLearnsets
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r2
+ b _080403C2
+ .align 2, 0
+_080403B0: .4byte gTMHMLearnsets
+_080403B4:
+ movs r1, 0x1
+ lsls r1, r5
+ ldr r2, _080403C8 @ =gTMHMLearnsets
+ lsls r0, r3, 3
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+_080403C2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080403C8: .4byte gTMHMLearnsets
+ thumb_func_end CanMonLearnTMHM
+
+ thumb_func_start sub_80403CC
+sub_80403CC: @ 80403CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r6, r0, 0
+ str r1, [sp, 0x8]
+ movs r0, 0
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ movs r5, 0
+ mov r4, sp
+_08040402:
+ adds r1, r5, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4]
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08040402
+ movs r5, 0
+ ldr r6, _08040510 @ =gLevelUpLearnsets
+ lsls r1, r7, 2
+ adds r2, r1, r6
+ ldr r3, [r2]
+ ldrh r0, [r3]
+ ldr r4, _08040514 @ =0x0000ffff
+ str r1, [sp, 0x14]
+ cmp r0, r4
+ beq _080404FC
+ mov r9, r2
+ str r3, [sp, 0x10]
+_08040430:
+ lsls r2, r5, 1
+ ldr r1, [sp, 0x10]
+ adds r0, r2, r1
+ ldrh r3, [r0]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r3
+ ldr r4, [sp, 0xC]
+ lsls r1, r4, 9
+ adds r7, r2, 0
+ adds r5, 0x1
+ mov r12, r5
+ cmp r0, r1
+ bgt _080404E6
+ movs r4, 0
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _08040518 @ =0x000001ff
+ ands r0, r3
+ cmp r1, r0
+ beq _08040480
+ ldr r0, [sp, 0x14]
+ ldr r1, _08040510 @ =gLevelUpLearnsets
+ adds r6, r0, r1
+ ldr r2, _08040518 @ =0x000001ff
+ mov r8, r2
+ mov r3, sp
+ adds r5, r7, 0
+_08040468:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08040480
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040468
+_08040480:
+ cmp r4, 0x4
+ bne _080404E6
+ movs r4, 0
+ cmp r4, r10
+ bge _080404C4
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, [sp, 0x8]
+ ldrh r2, [r0]
+ ldr r0, _08040518 @ =0x000001ff
+ ands r0, r1
+ cmp r2, r0
+ beq _080404C4
+ ldr r1, [sp, 0x14]
+ ldr r2, _08040510 @ =gLevelUpLearnsets
+ adds r6, r1, r2
+ ldr r0, _08040518 @ =0x000001ff
+ mov r8, r0
+ ldr r3, [sp, 0x8]
+ adds r5, r7, 0
+_080404AC:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, r10
+ bge _080404C4
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _080404AC
+_080404C4:
+ cmp r4, r10
+ bne _080404E6
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r2, r4, 1
+ ldr r1, [sp, 0x8]
+ adds r2, r1
+ mov r4, r9
+ ldr r0, [r4]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, _08040518 @ =0x000001ff
+ ands r0, r1
+ strh r0, [r2]
+_080404E6:
+ mov r5, r12
+ cmp r5, 0x13
+ bgt _080404FC
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r2, _08040514 @ =0x0000ffff
+ cmp r0, r2
+ bne _08040430
+_080404FC:
+ mov r0, r10
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040510: .4byte gLevelUpLearnsets
+_08040514: .4byte 0x0000ffff
+_08040518: .4byte 0x000001ff
+ thumb_func_end sub_80403CC
+
+ thumb_func_start sub_804051C
+sub_804051C: @ 804051C
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ movs r5, 0
+ movs r4, 0
+ ldr r1, _08040568 @ =gLevelUpLearnsets
+ lsrs r0, 14
+ adds r0, r1
+ ldr r2, [r0]
+ ldrh r0, [r2]
+ ldr r1, _0804056C @ =0x0000ffff
+ cmp r0, r1
+ beq _08040560
+ ldr r0, _08040570 @ =0x000001ff
+ mov r12, r0
+ adds r7, r1, 0
+ adds r3, r2, 0
+_0804053E:
+ adds r1, r5, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 1
+ adds r1, r6
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ strh r0, [r1]
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x13
+ bgt _08040560
+ ldrh r0, [r3]
+ cmp r0, r7
+ bne _0804053E
+_08040560:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040568: .4byte gLevelUpLearnsets
+_0804056C: .4byte 0x0000ffff
+_08040570: .4byte 0x000001ff
+ thumb_func_end sub_804051C
+
+ thumb_func_start sub_8040574
+sub_8040574: @ 8040574
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ adds r6, r0, 0
+ movs r0, 0
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x30]
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bne _080405B0
+ movs r0, 0
+ b _080406BA
+_080405B0:
+ movs r5, 0
+ lsls r4, 2
+ str r4, [sp, 0x38]
+ mov r4, sp
+_080405B8:
+ adds r1, r5, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4]
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080405B8
+ movs r5, 0
+ ldr r3, _080406CC @ =gLevelUpLearnsets
+ ldr r2, [sp, 0x38]
+ adds r1, r2, r3
+ ldr r0, [r1]
+ ldrh r0, [r0]
+ ldr r2, _080406D0 @ =0x0000ffff
+ cmp r0, r2
+ beq _080406B8
+ mov r9, r1
+ mov r4, sp
+ adds r4, 0x8
+ str r4, [sp, 0x34]
+_080405E8:
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r2, r5, 1
+ adds r0, r2, r0
+ ldrh r3, [r0]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r3
+ ldr r4, [sp, 0x30]
+ lsls r1, r4, 9
+ adds r7, r2, 0
+ adds r5, 0x1
+ mov r12, r5
+ cmp r0, r1
+ bgt _080406A2
+ movs r4, 0
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080406D4 @ =0x000001ff
+ ands r0, r3
+ cmp r1, r0
+ beq _0804063A
+ ldr r0, [sp, 0x38]
+ ldr r1, _080406CC @ =gLevelUpLearnsets
+ adds r6, r0, r1
+ ldr r2, _080406D4 @ =0x000001ff
+ mov r8, r2
+ mov r3, sp
+ adds r5, r7, 0
+_08040622:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0804063A
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040622
+_0804063A:
+ cmp r4, 0x4
+ bne _080406A2
+ movs r4, 0
+ cmp r4, r10
+ bge _08040680
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, [sp, 0x34]
+ ldrh r2, [r0]
+ ldr r0, _080406D4 @ =0x000001ff
+ ands r0, r1
+ add r1, sp, 0x8
+ cmp r2, r0
+ beq _08040680
+ ldr r2, [sp, 0x38]
+ ldr r0, _080406CC @ =gLevelUpLearnsets
+ adds r6, r2, r0
+ ldr r2, _080406D4 @ =0x000001ff
+ mov r8, r2
+ adds r3, r1, 0
+ adds r5, r7, 0
+_08040668:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, r10
+ bge _08040680
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040668
+_08040680:
+ cmp r4, r10
+ bne _080406A2
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r2, r4, 1
+ ldr r4, [sp, 0x34]
+ adds r2, r4, r2
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, _080406D4 @ =0x000001ff
+ ands r0, r1
+ strh r0, [r2]
+_080406A2:
+ mov r5, r12
+ cmp r5, 0x13
+ bgt _080406B8
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r4, _080406D0 @ =0x0000ffff
+ cmp r0, r4
+ bne _080405E8
+_080406B8:
+ mov r0, r10
+_080406BA:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080406CC: .4byte gLevelUpLearnsets
+_080406D0: .4byte 0x0000ffff
+_080406D4: .4byte 0x000001ff
+ thumb_func_end sub_8040574
+
+ thumb_func_start SpeciesToPokedexNum
+SpeciesToPokedexNum: @ 80406D8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl IsNationalPokedexEnabled
+ cmp r0, 0
+ beq _080406F2
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ b _0804070A
+_080406F2:
+ adds r0, r4, 0
+ bl SpeciesToHoennPokedexNum
+ adds r4, r0, 0
+ cmp r4, 0xCA
+ bls _08040708
+ ldr r0, _08040704 @ =0x0000ffff
+ b _0804070A
+ .align 2, 0
+_08040704: .4byte 0x0000ffff
+_08040708:
+ adds r0, r4, 0
+_0804070A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end SpeciesToPokedexNum
+
+ thumb_func_start sub_8040710
+sub_8040710: @ 8040710
+ push {lr}
+ ldr r1, _08040724 @ =gUnknown_02024E84
+ movs r2, 0
+ adds r0, r1, 0x3
+_08040718:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08040718
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08040724: .4byte gUnknown_02024E84
+ thumb_func_end sub_8040710
+
+ thumb_func_start sub_8040728
+sub_8040728: @ 8040728
+ push {lr}
+ ldr r0, _0804073C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08040744
+ ldr r0, _08040740 @ =0x000001cf
+ b _080408B2
+ .align 2, 0
+_0804073C: .4byte gBattleTypeFlags
+_08040740: .4byte 0x000001cf
+_08040744:
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ beq _08040754
+ movs r0, 0xE7
+ lsls r0, 1
+ b _080408B2
+_08040754:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0804075E
+ b _080408A8
+_0804075E:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08040768
+ b _080408B0
+_08040768:
+ ldr r3, _0804078C @ =gTrainers
+ ldr r2, _08040790 @ =gTrainerBattleOpponent
+ ldrh r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x2
+ cmp r0, 0x31
+ bls _08040780
+ b _080408A8
+_08040780:
+ lsls r0, 2
+ ldr r1, _08040794 @ =_08040798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804078C: .4byte gTrainers
+_08040790: .4byte gTrainerBattleOpponent
+_08040794: .4byte _08040798
+ .align 2, 0
+_08040798:
+ .4byte _08040860
+ .4byte _08040866
+ .4byte _08040866
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A0
+ .4byte _0804086C
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _08040872
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _0804087C
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _08040860
+ .4byte _08040866
+ .4byte _08040866
+_08040860:
+ movs r0, 0xE9
+ lsls r0, 1
+ b _080408B2
+_08040866:
+ movs r0, 0xE5
+ lsls r0, 1
+ b _080408B2
+_0804086C:
+ movs r0, 0xE6
+ lsls r0, 1
+ b _080408B2
+_08040872:
+ ldr r0, _08040878 @ =0x000001cd
+ b _080408B2
+ .align 2, 0
+_08040878: .4byte 0x000001cd
+_0804087C:
+ ldrh r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08040898 @ =gTrainers + 0x4
+ adds r0, r1
+ ldr r1, _0804089C @ =gUnknown_08400E42
+ bl StringCompare
+ cmp r0, 0
+ beq _080408A8
+ movs r0, 0xE8
+ lsls r0, 1
+ b _080408B2
+ .align 2, 0
+_08040898: .4byte gTrainers + 0x4
+_0804089C: .4byte gUnknown_08400E42
+_080408A0:
+ ldr r0, _080408A4 @ =0x000001d1
+ b _080408B2
+ .align 2, 0
+_080408A4: .4byte 0x000001d1
+_080408A8:
+ ldr r0, _080408AC @ =0x000001cb
+ b _080408B2
+ .align 2, 0
+_080408AC: .4byte 0x000001cb
+_080408B0:
+ ldr r0, _080408B8 @ =0x000001c9
+_080408B2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080408B8: .4byte 0x000001c9
+ thumb_func_end sub_8040728
+
+ thumb_func_start sub_80408BC
+sub_80408BC: @ 80408BC
+ push {lr}
+ bl ResetMapMusic
+ bl m4aMPlayAllStop
+ bl sub_8040728
+ lsls r0, 16
+ lsrs r0, 16
+ bl PlayBGM
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80408BC
+
+ thumb_func_start current_map_music_set__default_for_battle
+current_map_music_set__default_for_battle: @ 80408D8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl ResetMapMusic
+ bl m4aMPlayAllStop
+ cmp r4, 0
+ beq _080408F2
+ adds r0, r4, 0
+ bl PlayNewMapMusic
+ b _080408FE
+_080408F2:
+ bl sub_8040728
+ lsls r0, 16
+ lsrs r0, 16
+ bl PlayNewMapMusic
+_080408FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end current_map_music_set__default_for_battle
+
+ thumb_func_start pokemon_get_pal
+pokemon_get_pal: @ 8040904
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl species_and_otid_get_pal
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_get_pal
+
+ thumb_func_start species_and_otid_get_pal
+species_and_otid_get_pal: @ 804093C
+ push {r4,r5,lr}
+ adds r3, r2, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _08040958
+ ldr r0, _08040954 @ =gMonPaletteTable
+ ldr r0, [r0]
+ b _08040984
+ .align 2, 0
+_08040954: .4byte gMonPaletteTable
+_08040958:
+ lsrs r0, r1, 16
+ ldr r2, _08040974 @ =0x0000ffff
+ ands r1, r2
+ eors r0, r1
+ lsrs r1, r3, 16
+ eors r0, r1
+ ands r3, r2
+ eors r0, r3
+ cmp r0, 0x7
+ bls _0804097C
+ ldr r0, _08040978 @ =gMonPaletteTable
+ lsls r1, r4, 3
+ b _08040980
+ .align 2, 0
+_08040974: .4byte 0x0000ffff
+_08040978: .4byte gMonPaletteTable
+_0804097C:
+ ldr r0, _0804098C @ =gMonShinyPaletteTable
+ lsls r1, r5, 3
+_08040980:
+ adds r1, r0
+ ldr r0, [r1]
+_08040984:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804098C: .4byte gMonShinyPaletteTable
+ thumb_func_end species_and_otid_get_pal
+
+ thumb_func_start sub_8040990
+sub_8040990: @ 8040990
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80409C8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040990
+
+ thumb_func_start sub_80409C8
+sub_80409C8: @ 80409C8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsrs r0, r1, 16
+ ldr r3, _080409E8 @ =0x0000ffff
+ ands r1, r3
+ eors r0, r1
+ lsrs r1, r2, 16
+ eors r0, r1
+ ands r2, r3
+ eors r0, r2
+ cmp r0, 0x7
+ bls _080409F0
+ lsls r0, r4, 3
+ ldr r1, _080409EC @ =gMonPaletteTable
+ b _080409F4
+ .align 2, 0
+_080409E8: .4byte 0x0000ffff
+_080409EC: .4byte gMonPaletteTable
+_080409F0:
+ lsls r0, r4, 3
+ ldr r1, _080409FC @ =gMonShinyPaletteTable
+_080409F4:
+ adds r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080409FC: .4byte gMonShinyPaletteTable
+ thumb_func_end sub_80409C8
+
+ thumb_func_start sub_8040A00
+sub_8040A00: @ 8040A00
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, _08040A24 @ =gUnknown_0820831A
+ ldrh r0, [r2]
+ ldr r1, _08040A28 @ =0x0000ffff
+ cmp r0, r1
+ beq _08040A32
+ adds r4, r1, 0
+ adds r1, r2, 0
+_08040A14:
+ ldrh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ cmp r0, r3
+ bne _08040A2C
+ movs r0, 0x1
+ b _08040A34
+ .align 2, 0
+_08040A24: .4byte gUnknown_0820831A
+_08040A28: .4byte 0x0000ffff
+_08040A2C:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08040A14
+_08040A32:
+ movs r0, 0
+_08040A34:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040A00
+
+ thumb_func_start sub_8040A3C
+sub_8040A3C: @ 8040A3C
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08040A50 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x19]
+ lsrs r0, 7
+ bx lr
+ .align 2, 0
+_08040A50: .4byte gBaseStats
+ thumb_func_end sub_8040A3C
+
+ thumb_func_start sub_8040A54
+sub_8040A54: @ 8040A54
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08040A78 @ =gUnknown_083F7E28
+ lsls r1, r0, 2
+ adds r1, r0
+ adds r1, r4
+ adds r1, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040A78: .4byte gUnknown_083F7E28
+ thumb_func_end sub_8040A54
+
+ thumb_func_start sub_8040A7C
+sub_8040A7C: @ 8040A7C
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl GetNatureFromPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08040AA0 @ =gUnknown_083F7E28
+ lsls r1, r0, 2
+ adds r1, r0
+ adds r1, r4
+ adds r1, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040AA0: .4byte gUnknown_083F7E28
+ thumb_func_end sub_8040A7C
+
+ thumb_func_start sub_8040AA4
+sub_8040AA4: @ 8040AA4
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r1, 0x7
+ mov r2, sp
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ mov r1, sp
+ bl sub_8040AD0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040AA4
+
+ thumb_func_start sub_8040AD0
+sub_8040AD0: @ 8040AD0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ ldr r3, _08040B10 @ =gSaveBlock2
+ ldrb r2, [r3, 0xA]
+ ldrb r1, [r3, 0xB]
+ lsls r1, 8
+ orrs r2, r1
+ ldrb r1, [r3, 0xC]
+ lsls r1, 16
+ orrs r2, r1
+ ldrb r1, [r3, 0xD]
+ lsls r1, 24
+ orrs r2, r1
+ cmp r0, r2
+ bne _08040B14
+ movs r4, 0
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _08040B0C
+ adds r2, r5, 0
+_08040AF8:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08040B14
+ adds r2, 0x1
+ adds r4, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _08040AF8
+_08040B0C:
+ movs r0, 0
+ b _08040B16
+ .align 2, 0
+_08040B10: .4byte gSaveBlock2
+_08040B14:
+ movs r0, 0x1
+_08040B16:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040AD0
+
+ thumb_func_start sub_8040B1C
+sub_8040B1C: @ 8040B1C
+ push {lr}
+ bl pokemon_restore_pp
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040B1C
+
+ thumb_func_start pokemon_restore_pp
+pokemon_restore_pp: @ 8040B28
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r6, 0
+_08040B30:
+ adds r4, r6, 0
+ adds r4, 0xD
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08040B7C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetBoxMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x15
+ movs r2, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r6, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl CalculatePPWithBonus
+ mov r1, sp
+ strb r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r5, 0
+ mov r2, sp
+ bl SetBoxMonData
+_08040B7C:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08040B30
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end pokemon_restore_pp
+
+ thumb_func_start sub_8040B8C
+sub_8040B8C: @ 8040B8C
+ push {r4,r5,lr}
+ ldr r1, _08040BCC @ =byte_2024C06
+ ldr r2, _08040BD0 @ =0x02000000
+ ldr r3, _08040BD4 @ =0x000160c0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r5, _08040BD8 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x4
+ strb r0, [r5, 0x1]
+ ldr r0, _08040BDC @ =0x00016054
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x4]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08040BE4
+ ldr r1, _08040BE0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ b _08040BEE
+ .align 2, 0
+_08040BCC: .4byte byte_2024C06
+_08040BD0: .4byte 0x02000000
+_08040BD4: .4byte 0x000160c0
+_08040BD8: .4byte gUnknown_030041C0
+_08040BDC: .4byte 0x00016054
+_08040BE0: .4byte gUnknown_02024A6A
+_08040BE4:
+ ldr r0, _08040C24 @ =gUnknown_02024A6A
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+_08040BEE:
+ strb r0, [r5, 0x3]
+ ldr r4, _08040C28 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r4]
+ movs r0, 0x4
+ strb r0, [r4, 0x1]
+ ldr r1, _08040C2C @ =gUnknown_02024E6C
+ ldrb r0, [r1]
+ strb r0, [r4, 0x2]
+ ldr r2, _08040C24 @ =gUnknown_02024A6A
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ strb r0, [r4, 0x3]
+ movs r0, 0xFF
+ strb r0, [r4, 0x4]
+ ldr r0, _08040C30 @ =gUnknown_083FFCCA
+ ldr r1, _08040C34 @ =gStringVar4
+ bl sub_8120FFC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08040C24: .4byte gUnknown_02024A6A
+_08040C28: .4byte gUnknown_03004290
+_08040C2C: .4byte gUnknown_02024E6C
+_08040C30: .4byte gUnknown_083FFCCA
+_08040C34: .4byte gStringVar4
+ thumb_func_end sub_8040B8C
+
+ thumb_func_start sub_8040C38
+sub_8040C38: @ 8040C38
+ push {r4,r5,lr}
+ ldr r0, _08040C90 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _08040C94 @ =0x00002008
+ ands r0, r1
+ cmp r0, 0
+ bne _08040CAC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r4, _08040C98 @ =gEnemyParty
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08040C9C @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r3, r1, 2
+ adds r1, r3, r2
+ ldrh r0, [r1, 0xC]
+ ldrh r1, [r1, 0xE]
+ cmp r0, r1
+ beq _08040C82
+ cmp r5, 0x2C
+ bls _08040CAC
+ cmp r5, 0x5E
+ bhi _08040CA0
+_08040C82:
+ adds r2, 0xC
+ adds r2, r3, r2
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ b _08040CAC
+ .align 2, 0
+_08040C90: .4byte gBattleTypeFlags
+_08040C94: .4byte 0x00002008
+_08040C98: .4byte gEnemyParty
+_08040C9C: .4byte gBaseStats
+_08040CA0:
+ adds r2, 0xE
+ adds r2, r3, r2
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+_08040CAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040C38
+
+ thumb_func_start sub_8040CB4
+sub_8040CB4: @ 8040CB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_8040CE0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040CB4
+
+ thumb_func_start sub_8040CE0
+sub_8040CE0: @ 8040CE0
+ push {r4,lr}
+ movs r4, 0
+ lsrs r2, r0, 16
+ ldr r3, _08040D04 @ =0x0000ffff
+ ands r0, r3
+ eors r2, r0
+ lsrs r0, r1, 16
+ eors r2, r0
+ ands r1, r3
+ eors r2, r1
+ cmp r2, 0x7
+ bhi _08040CFA
+ movs r4, 0x1
+_08040CFA:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D04: .4byte 0x0000ffff
+ thumb_func_end sub_8040CE0
+
+ thumb_func_start sub_8040D08
+sub_8040D08: @ 8040D08
+ push {r4,lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08040D38 @ =gLinkPlayers
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x18]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_803FC34
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, 0x8
+ adds r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D38: .4byte gLinkPlayers
+ thumb_func_end sub_8040D08
+
+ thumb_func_start sub_8040D3C
+sub_8040D3C: @ 8040D3C
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r0, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ cmp r1, 0x20
+ beq _08040D54
+ cmp r1, 0x1D
+ bne _08040D7E
+_08040D54:
+ cmp r2, 0x2
+ bne _08040D68
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _08040D64 @ =gSpeciesNames
+ adds r1, r0
+ b _08040D70
+ .align 2, 0
+_08040D64: .4byte gSpeciesNames
+_08040D68:
+ ldr r1, _08040D88 @ =gUnknown_08208337
+ cmp r0, 0x20
+ bne _08040D70
+ subs r1, 0xB
+_08040D70:
+ adds r0, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ movs r3, 0
+ cmp r0, 0
+ bne _08040D7E
+ movs r3, 0x1
+_08040D7E:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D88: .4byte gUnknown_08208337
+ thumb_func_end sub_8040D3C
+
+ thumb_func_start sub_8040D8C
+sub_8040D8C: @ 8040D8C
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0xFC
+ bne _08040DA2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x15
+ bne _08040DA2
+ movs r2, 0x1
+_08040DA2:
+ adds r0, r3, 0
+ bl sub_8040D3C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040D8C
+
+ thumb_func_start unref_sub_8040DAC
+unref_sub_8040DAC: @ 8040DAC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_8040D3C
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8040DAC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s
new file mode 100644
index 000000000..a63779b28
--- /dev/null
+++ b/asm/pokemon_icon.s
@@ -0,0 +1,788 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_809D26C
+unref_sub_809D26C: @ 809D26C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D2E0 @ =gOamData_83BC5E8
+ str r4, [sp]
+ ldr r5, _0809D2E4 @ =gMonIconTable
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C
+ str r4, [sp, 0x8]
+ ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D2F0 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldr r4, _0809D2F4 @ =0x0000dac0
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D2F8 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D2E0: .4byte gOamData_83BC5E8
+_0809D2E4: .4byte gMonIconTable
+_0809D2E8: .4byte gSpriteAnimTable_83BC62C
+_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
+_0809D2F0: .4byte gMonIconPaletteIndices
+_0809D2F4: .4byte 0x0000dac0
+_0809D2F8: .4byte gSprites
+ thumb_func_end unref_sub_809D26C
+
+ thumb_func_start CreateMonIcon
+CreateMonIcon: @ 809D2FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [sp, 0x48]
+ ldr r1, [sp, 0x4C]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0809D38C @ =gOamData_83BC5E8
+ str r0, [sp, 0x18]
+ adds r0, r4, 0
+ bl GetMonIconPtr
+ str r0, [sp, 0x1C]
+ ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C
+ str r0, [sp, 0x20]
+ ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660
+ str r0, [sp, 0x24]
+ str r5, [sp, 0x28]
+ ldr r0, _0809D398 @ =gMonIconPaletteIndices
+ adds r0, r4, r0
+ ldr r1, _0809D39C @ =0x0000dac0
+ adds r5, r1, 0
+ ldrb r0, [r0]
+ adds r1, r5, r0
+ add r0, sp, 0x2C
+ strh r1, [r0]
+ add r1, sp, 0x18
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _0809D35A
+ mov r0, sp
+ strh r5, [r0, 0x14]
+_0809D35A:
+ lsls r1, r7, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r8
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D3A0 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D38C: .4byte gOamData_83BC5E8
+_0809D390: .4byte gSpriteAnimTable_83BC62C
+_0809D394: .4byte gSpriteAffineAnimTable_83BC660
+_0809D398: .4byte gMonIconPaletteIndices
+_0809D39C: .4byte 0x0000dac0
+_0809D3A0: .4byte gSprites
+ thumb_func_end CreateMonIcon
+
+ thumb_func_start sub_809D3A4
+sub_809D3A4: @ 809D3A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D418 @ =gOamData_83BC5E8
+ str r4, [sp]
+ ldr r5, _0809D41C @ =gMonIconTable
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C
+ str r4, [sp, 0x8]
+ ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D428 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldr r4, _0809D42C @ =0x0000dac0
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D430 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D418: .4byte gOamData_83BC5E8
+_0809D41C: .4byte gMonIconTable
+_0809D420: .4byte gSpriteAnimTable_83BC62C
+_0809D424: .4byte gSpriteAffineAnimTable_83BC660
+_0809D428: .4byte gMonIconPaletteIndices
+_0809D42C: .4byte 0x0000dac0
+_0809D430: .4byte gSprites
+ thumb_func_end sub_809D3A4
+
+ thumb_func_start mon_icon_convert_unown_species_id
+mon_icon_convert_unown_species_id: @ 809D434
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, SPECIES_UNOWN
+ bne _0809D45E
+ adds r0, r1, 0
+ bl sub_809D474
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0809D450
+ movs r0, SPECIES_UNOWN
+ b _0809D45A
+_0809D450:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_0809D45A:
+ adds r1, r0, 0
+ b _0809D46C
+_0809D45E:
+ movs r0, 0xCE
+ lsls r0, 1
+ adds r1, r2, 0
+ cmp r1, r0
+ bls _0809D46C
+ movs r1, 0x82
+ lsls r1, 1
+_0809D46C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end mon_icon_convert_unown_species_id
+
+ thumb_func_start sub_809D474
+sub_809D474: @ 809D474
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D474
+
+ thumb_func_start sub_809D4A8
+sub_809D4A8: @ 809D4A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_80A2D64
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, SPECIES_UNOWN
+ bne _0809D4DE
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809D4CE
+ mov r1, sp
+ adds r0, SPECIES_UNOWN
+ b _0809D4D6
+_0809D4CE:
+ mov r1, sp
+ movs r2, 0xCE
+ lsls r2, 1
+ adds r0, r2
+_0809D4D6:
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r0, [r0]
+ b _0809D4EA
+_0809D4DE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+_0809D4EA:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D4A8
+
+ thumb_func_start GetMonIconPtr
+GetMonIconPtr: @ 809D4F4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ ldr r1, _0809D50C @ =gMonIconTable
+ lsrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D50C: .4byte gMonIconTable
+ thumb_func_end GetMonIconPtr
+
+ thumb_func_start sub_809D510
+sub_809D510: @ 809D510
+ push {lr}
+ bl sub_809D7E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D510
+
+ thumb_func_start sub_809D51C
+sub_809D51C: @ 809D51C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D53C @ =gMonIconPaletteTable
+_0809D522:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadSpritePalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D522
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D53C: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D51C
+
+ thumb_func_start unref_sub_809D540
+unref_sub_809D540: @ 809D540
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D552
+ movs r1, 0x82
+ lsls r1, 1
+_0809D552:
+ ldr r0, _0809D578 @ =gMonIconPaletteIndices
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D57C @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D572
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D572:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D578: .4byte gMonIconPaletteIndices
+_0809D57C: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D540
+
+ thumb_func_start sub_809D580
+sub_809D580: @ 809D580
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D5AC @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D5B0 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D5A6
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D5A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5AC: .4byte gMonIconPaletteIndices
+_0809D5B0: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D580
+
+ thumb_func_start unref_sub_809D5B4
+unref_sub_809D5B4: @ 809D5B4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D5D4 @ =gMonIconPaletteTable
+_0809D5BA:
+ lsls r0, r4, 3
+ adds r0, r5
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D5BA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5D4: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5B4
+
+ thumb_func_start unref_sub_809D5D8
+unref_sub_809D5D8: @ 809D5D8
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D5EA
+ movs r1, 0x82
+ lsls r1, 1
+_0809D5EA:
+ ldr r0, _0809D600 @ =gMonIconPaletteIndices
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D604 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D600: .4byte gMonIconPaletteIndices
+_0809D604: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5D8
+
+ thumb_func_start sub_809D608
+sub_809D608: @ 809D608
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D624 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D628 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D624: .4byte gMonIconPaletteIndices
+_0809D628: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D608
+
+ thumb_func_start sub_809D62C
+sub_809D62C: @ 809D62C
+ push {lr}
+ bl UpdateMonIconFrame
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D62C
+
+ thumb_func_start UpdateMonIconFrame
+UpdateMonIconFrame: @ 809D638
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ movs r7, 0
+ adds r6, r4, 0
+ adds r6, 0x2C
+ ldrb r2, [r6]
+ movs r0, 0x3F
+ mov r9, r0
+ ands r0, r2
+ cmp r0, 0
+ bne _0809D6EC
+ movs r1, 0x2A
+ adds r1, r4
+ mov r8, r1
+ ldrb r1, [r1]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ adds r5, r4, 0
+ adds r5, 0x2B
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r3, r0
+ beq _0809D682
+ adds r0, 0x1
+ cmp r3, r0
+ bne _0809D686
+ b _0809D700
+_0809D682:
+ strb r7, [r5]
+ b _0809D700
+_0809D686:
+ ldr r2, _0809D6E4 @ =gSpriteImageSizes
+ ldrb r1, [r4, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r4, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ adds r1, r2, 0
+ muls r1, r3
+ ldr r0, [r4, 0xC]
+ adds r0, r1
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r3, _0809D6E8 @ =0x06010000
+ adds r1, r3
+ bl RequestSpriteCopy
+ mov r0, r8
+ ldrb r1, [r0]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 10
+ lsrs r0, 26
+ mov r1, r9
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldrb r7, [r5]
+ b _0809D700
+ .align 2, 0
+_0809D6E4: .4byte gSpriteImageSizes
+_0809D6E8: .4byte 0x06010000
+_0809D6EC:
+ lsls r0, r2, 26
+ lsrs r0, 26
+ subs r0, 0x1
+ movs r1, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r6]
+_0809D700:
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end UpdateMonIconFrame
+
+ thumb_func_start CreateMonIconSprite
+CreateMonIconSprite: @ 809D710
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x38
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp, 0x30]
+ ldr r2, _0809D7D8 @ =gSpriteImageSizes
+ mov r0, r9
+ ldr r6, [r0]
+ ldrb r1, [r6, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r6, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ ldr r1, _0809D7DC @ =0xffff0000
+ add r3, sp, 0x30
+ ldr r0, [r3, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r3, 0x4]
+ add r1, sp, 0x18
+ ldr r0, _0809D7E0 @ =0x0000ffff
+ strh r0, [r1]
+ mov r0, r9
+ ldrh r2, [r0, 0x14]
+ mov r0, sp
+ adds r0, 0x1A
+ strh r2, [r0]
+ str r6, [sp, 0x1C]
+ mov r2, r9
+ ldr r0, [r2, 0x8]
+ str r0, [sp, 0x20]
+ str r3, [sp, 0x24]
+ ldr r0, [r2, 0xC]
+ str r0, [sp, 0x28]
+ ldr r0, [r2, 0x10]
+ str r0, [sp, 0x2C]
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _0809D7E4 @ =gSprites
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r4, r3, r6
+ adds r5, r4, 0
+ adds r5, 0x2C
+ ldrb r1, [r5]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r5]
+ adds r4, 0x3F
+ ldrb r2, [r4]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r4]
+ adds r6, 0xC
+ adds r3, r6
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ str r1, [r3]
+ add sp, 0x38
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D7D8: .4byte gSpriteImageSizes
+_0809D7DC: .4byte 0xffff0000
+_0809D7E0: .4byte 0x0000ffff
+_0809D7E4: .4byte gSprites
+ thumb_func_end CreateMonIconSprite
+
+ thumb_func_start sub_809D7E8
+sub_809D7E8: @ 809D7E8
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0
+ str r1, [sp]
+ ldr r3, _0809D81C @ =gSpriteImageSizes
+ ldrb r2, [r0, 0x3]
+ lsrs r2, 6
+ lsls r2, 1
+ ldrb r1, [r0, 0x1]
+ lsrs r1, 6
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r3
+ ldrh r3, [r2]
+ ldr r2, _0809D820 @ =0xffff0000
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r3
+ str r1, [sp, 0x4]
+ mov r1, sp
+ str r1, [r0, 0xC]
+ bl DestroySprite
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D81C: .4byte gSpriteImageSizes
+_0809D820: .4byte 0xffff0000
+ thumb_func_end sub_809D7E8
+
+ thumb_func_start sub_809D824
+sub_809D824: @ 809D824
+ mov r12, r0
+ adds r0, 0x2A
+ movs r3, 0
+ strb r1, [r0]
+ mov r2, r12
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, r12
+ adds r0, 0x2B
+ strb r3, [r0]
+ bx lr
+ thumb_func_end sub_809D824
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
new file mode 100644
index 000000000..a8a0ce89d
--- /dev/null
+++ b/asm/pokemon_item_effect.s
@@ -0,0 +1,1970 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ExecuteTableBasedItemEffect_
+ExecuteTableBasedItemEffect_: @ 803E18C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0
+ str r4, [sp]
+ bl sub_803E1B0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ExecuteTableBasedItemEffect_
+
+ thumb_func_start sub_803E1B0
+sub_803E1B0: @ 803E1B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ mov r8, r0
+ ldr r0, [sp, 0x5C]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ movs r0, 0x1
+ str r0, [sp, 0x1C]
+ movs r1, 0x6
+ str r1, [sp, 0x24]
+ movs r2, 0
+ str r2, [sp, 0x2C]
+ movs r3, 0x4
+ str r3, [sp, 0x34]
+ mov r0, r8
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803E240
+ ldr r0, _0803E21C @ =gMain
+ ldr r4, _0803E220 @ =0x0000043d
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E22C
+ ldr r2, _0803E224 @ =gEnigmaBerries
+ ldr r0, _0803E228 @ =gUnknown_02024E6C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ b _0803E248
+ .align 2, 0
+_0803E21C: .4byte gMain
+_0803E220: .4byte 0x0000043d
+_0803E224: .4byte gEnigmaBerries
+_0803E228: .4byte gUnknown_02024E6C
+_0803E22C:
+ ldr r0, _0803E238 @ =gSaveBlock1
+ ldr r5, _0803E23C @ =0x00003688
+ adds r0, r5
+ ldrb r0, [r0]
+ b _0803E248
+ .align 2, 0
+_0803E238: .4byte gSaveBlock1
+_0803E23C: .4byte 0x00003688
+_0803E240:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0803E248:
+ str r0, [sp, 0x30]
+ ldr r1, _0803E2A4 @ =gUnknown_02024C0B
+ ldr r0, _0803E2A8 @ =gUnknown_02024E6C
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r0, _0803E2AC @ =gMain
+ ldr r1, _0803E2B0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0803E2E8
+ ldr r0, _0803E2B4 @ =gUnknown_02024A60
+ strb r2, [r0]
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2B8 @ =gUnknown_02024A68
+ ldr r4, [sp, 0x8]
+ subs r4, 0xD
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0803E2F4
+ ldr r2, _0803E2BC @ =gUnknown_02024A6A
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r3, [r0]
+ ldr r5, [sp, 0xC]
+ lsls r0, r5, 16
+ lsrs r1, r0, 16
+ adds r5, r0, 0
+ cmp r3, r1
+ bne _0803E2C0
+ ldr r0, [sp, 0x18]
+ str r0, [sp, 0x34]
+ b _0803E2F4
+ .align 2, 0
+_0803E2A4: .4byte gUnknown_02024C0B
+_0803E2A8: .4byte gUnknown_02024E6C
+_0803E2AC: .4byte gMain
+_0803E2B0: .4byte 0x0000043d
+_0803E2B4: .4byte gUnknown_02024A60
+_0803E2B8: .4byte gUnknown_02024A68
+_0803E2BC: .4byte gUnknown_02024A6A
+_0803E2C0:
+ ldr r1, [sp, 0x18]
+ adds r1, 0x2
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2E4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0803E2F4
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsrs r0, r5, 16
+ cmp r1, r0
+ bne _0803E2C0
+ ldr r2, [sp, 0x18]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ str r0, [sp, 0x34]
+ b _0803E2F4
+ .align 2, 0
+_0803E2E4: .4byte gUnknown_02024A68
+_0803E2E8:
+ ldr r0, _0803E310 @ =gUnknown_02024A60
+ strb r1, [r0]
+ movs r3, 0x4
+ str r3, [sp, 0x34]
+ ldr r4, [sp, 0x8]
+ subs r4, 0xD
+_0803E2F4:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ cmp r0, 0xA5
+ bhi _0803E36C
+ ldr r1, _0803E314 @ =gItemEffectTable
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0803E318
+ ldr r4, [sp, 0x8]
+ cmp r4, 0xAF
+ beq _0803E31E
+ b _0803E36C
+ .align 2, 0
+_0803E310: .4byte gUnknown_02024A60
+_0803E314: .4byte gItemEffectTable
+_0803E318:
+ ldr r5, [sp, 0x8]
+ cmp r5, 0xAF
+ bne _0803E372
+_0803E31E:
+ ldr r0, _0803E340 @ =gMain
+ ldr r1, _0803E344 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E350
+ ldr r0, _0803E348 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0803E34C @ =gUnknown_02024DF8
+ adds r0, r1
+ b _0803E372
+ .align 2, 0
+_0803E340: .4byte gMain
+_0803E344: .4byte 0x0000043d
+_0803E348: .4byte gUnknown_02024A60
+_0803E34C: .4byte gUnknown_02024DF8
+_0803E350:
+ ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
+ str r2, [sp, 0x20]
+ b _0803E374
+ .align 2, 0
+_0803E358: .4byte gSaveBlock1 + 0x3676
+_0803E35C:
+ mov r0, r8
+ movs r2, 0
+ ldr r3, [sp, 0xC]
+ bl BeginEvolutionScene
+ movs r0, 0
+ bl _0803F15C
+_0803E36C:
+ movs r0, 0x1
+ bl _0803F15C
+_0803E372:
+ str r0, [sp, 0x20]
+_0803E374:
+ movs r3, 0
+ str r3, [sp, 0x18]
+_0803E378:
+ ldr r4, [sp, 0x18]
+ cmp r4, 0x5
+ bls _0803E382
+ bl _0803F14C
+_0803E382:
+ lsls r0, r4, 2
+ ldr r1, _0803E38C @ =_0803E390
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803E38C: .4byte _0803E390
+ .align 2, 0
+_0803E390:
+ .4byte _0803E3A8
+ .4byte _0803E474
+ .4byte _0803E508
+ .4byte _0803E59C
+ .4byte _0803E77C
+ .4byte _0803EE1E
+_0803E3A8:
+ ldr r5, [sp, 0x20]
+ ldr r0, [sp, 0x18]
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r0, _0803E460 @ =gMain
+ ldr r1, _0803E464 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803E3F0
+ ldr r1, _0803E468 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r0, _0803E46C @ =0xfff0ffff
+ ands r1, r0
+ str r1, [r2]
+ movs r3, 0
+ str r3, [sp, 0x1C]
+_0803E3F0:
+ ldrb r1, [r6]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E41E
+ ldr r1, _0803E468 @ =gBattleMons
+ ldr r0, _0803E470 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0803E41E
+ orrs r1, r3
+ str r1, [r2]
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E41E:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E42C
+ bl _0803F14C
+_0803E42C:
+ ldr r6, _0803E468 @ =gBattleMons
+ ldr r5, _0803E470 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x19]
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E446
+ bl _0803F14C
+_0803E446:
+ adds r0, r2, r3
+ strb r0, [r1, 0x19]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ bgt _0803E45A
+ b _0803E74E
+_0803E45A:
+ movs r0, 0xC
+ strb r0, [r1, 0x19]
+ b _0803E74E
+ .align 2, 0
+_0803E460: .4byte gMain
+_0803E464: .4byte 0x0000043d
+_0803E468: .4byte gBattleMons
+_0803E46C: .4byte 0xfff0ffff
+_0803E470: .4byte gUnknown_02024A60
+_0803E474:
+ ldr r0, [sp, 0x20]
+ ldr r1, [sp, 0x18]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ lsls r3, r0, 24
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _0803E4BA
+ ldr r7, _0803E500 @ =gBattleMons
+ ldr r5, _0803E504 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r7
+ ldrb r2, [r1, 0x1A]
+ movs r0, 0x1A
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0803E4BA
+ lsrs r0, r3, 28
+ adds r0, r2, r0
+ strb r0, [r1, 0x1A]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r7
+ movs r0, 0x1A
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E4B6
+ movs r0, 0xC
+ strb r0, [r1, 0x1A]
+_0803E4B6:
+ movs r2, 0
+ str r2, [sp, 0x1C]
+_0803E4BA:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E4C8
+ bl _0803F14C
+_0803E4C8:
+ ldr r6, _0803E500 @ =gBattleMons
+ ldr r5, _0803E504 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x1B]
+ movs r0, 0x1B
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E4E2
+ bl _0803F14C
+_0803E4E2:
+ adds r0, r2, r3
+ strb r0, [r1, 0x1B]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x1B
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E4F8
+ movs r0, 0xC
+ strb r0, [r1, 0x1B]
+_0803E4F8:
+ movs r3, 0
+ str r3, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E500: .4byte gBattleMons
+_0803E504: .4byte gUnknown_02024A60
+_0803E508:
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x18]
+ adds r2, r4, r5
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ lsls r3, r0, 24
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _0803E54E
+ ldr r7, _0803E594 @ =gBattleMons
+ ldr r5, _0803E598 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r7
+ ldrb r2, [r1, 0x1E]
+ movs r0, 0x1E
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0803E54E
+ lsrs r0, r3, 28
+ adds r0, r2, r0
+ strb r0, [r1, 0x1E]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r7
+ movs r0, 0x1E
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E54A
+ movs r0, 0xC
+ strb r0, [r1, 0x1E]
+_0803E54A:
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E54E:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E55C
+ bl _0803F14C
+_0803E55C:
+ ldr r6, _0803E594 @ =gBattleMons
+ ldr r5, _0803E598 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x1C]
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E576
+ bl _0803F14C
+_0803E576:
+ adds r0, r2, r3
+ strb r0, [r1, 0x1C]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E58C
+ movs r0, 0xC
+ strb r0, [r1, 0x1C]
+_0803E58C:
+ movs r1, 0
+ str r1, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E594: .4byte gBattleMons
+_0803E598: .4byte gUnknown_02024A60
+_0803E59C:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x18]
+ adds r2, r3, r4
+ ldrb r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _0803E5E4
+ ldr r5, _0803E758 @ =gUnknown_02024C80
+ ldr r4, _0803E75C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0803E5E4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x5
+ strb r0, [r1, 0x2]
+ movs r5, 0
+ str r5, [sp, 0x1C]
+_0803E5E4:
+ ldrb r1, [r6]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E646
+ mov r0, r8
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x64
+ beq _0803E646
+ ldr r5, _0803E760 @ =gExperienceTables
+ mov r0, r8
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0803E764 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r1
+ adds r4, r0
+ adds r4, r5
+ ldr r0, [r4]
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E646:
+ ldrb r1, [r6]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E682
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x7
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E682
+ ldr r1, [sp, 0x34]
+ cmp r1, 0x4
+ beq _0803E67E
+ ldr r1, _0803E768 @ =gBattleMons
+ movs r0, 0x58
+ ldr r3, [sp, 0x34]
+ adds r2, r3, 0
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _0803E76C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+_0803E67E:
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E682:
+ ldrb r1, [r6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6A2
+ ldr r2, _0803E770 @ =0x00000f88
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6A2
+ movs r5, 0
+ str r5, [sp, 0x1C]
+_0803E6A2:
+ ldrb r1, [r6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6C2
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x10
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6C2
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E6C2:
+ ldrb r1, [r6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6E2
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x20
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6E2
+ movs r1, 0
+ str r1, [sp, 0x1C]
+_0803E6E2:
+ ldrb r1, [r6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E702
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x40
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E702
+ movs r2, 0
+ str r2, [sp, 0x1C]
+_0803E702:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E710
+ bl _0803F14C
+_0803E710:
+ ldr r0, _0803E774 @ =gMain
+ ldr r3, _0803E778 @ =0x0000043d
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E724
+ bl _0803F14C
+_0803E724:
+ ldr r4, [sp, 0x34]
+ cmp r4, 0x4
+ bne _0803E72E
+ bl _0803F14C
+_0803E72E:
+ ldr r1, _0803E768 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E746
+ bl _0803F14C
+_0803E746:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+_0803E74E:
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E758: .4byte gUnknown_02024C80
+_0803E75C: .4byte gUnknown_02024A60
+_0803E760: .4byte gExperienceTables
+_0803E764: .4byte gBaseStats
+_0803E768: .4byte gBattleMons
+_0803E76C: .4byte 0xf7ffffff
+_0803E770: .4byte 0x00000f88
+_0803E774: .4byte gMain
+_0803E778: .4byte 0x0000043d
+_0803E77C:
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x18]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r0, 0x20
+ mov r3, r10
+ ands r0, r3
+ cmp r0, 0
+ beq _0803E854
+ movs r0, 0xDF
+ ands r3, r0
+ mov r10, r3
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803E880 @ =gUnknown_08208238
+ ldr r4, [sp, 0x10]
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ ands r0, r1
+ lsls r1, r4, 1
+ lsrs r0, r1
+ str r0, [sp]
+ adds r5, r4, 0
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ ldr r0, [sp]
+ cmp r0, 0x2
+ bhi _0803E854
+ ldr r0, [sp, 0x28]
+ cmp r0, 0x4
+ bls _0803E854
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803E884 @ =gUnknown_08208240
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x15
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x28]
+ subs r0, r3
+ str r0, [sp]
+ ldr r4, [sp, 0x10]
+ adds r4, 0x11
+ mov r0, r8
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E854:
+ movs r5, 0
+ str r5, [sp, 0x28]
+ mov r0, r10
+ cmp r0, 0
+ bne _0803E862
+ bl _0803F14C
+_0803E862:
+ movs r0, 0x1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E86E
+ b _0803EE0A
+_0803E86E:
+ ldr r2, [sp, 0x28]
+ cmp r2, 0x7
+ bls _0803E876
+ b _0803EE0A
+_0803E876:
+ lsls r0, r2, 2
+ ldr r1, _0803E888 @ =_0803E88C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803E880: .4byte gUnknown_08208238
+_0803E884: .4byte gUnknown_08208240
+_0803E888: .4byte _0803E88C
+ .align 2, 0
+_0803E88C:
+ .4byte _0803E8AC
+ .4byte _0803E8AC
+ .4byte _0803E934
+ .4byte _0803EB5C
+ .4byte _0803EE0A
+ .4byte _0803EE0A
+ .4byte _0803EE0A
+ .4byte _0803EDF4
+_0803E8AC:
+ mov r0, r8
+ bl GetMonEVCount
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803E8EC @ =0x000001fd
+ cmp r5, r0
+ bls _0803E8BE
+ b _0803E36C
+_0803E8BE:
+ ldr r0, _0803E8F0 @ =gUnknown_082082F2
+ ldr r3, [sp, 0x28]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ str r1, [sp]
+ cmp r1, 0x63
+ bls _0803E8D8
+ b _0803EE0A
+_0803E8D8:
+ ldr r4, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x64
+ bls _0803E8F4
+ adds r0, 0x64
+ subs r4, r0, r1
+ b _0803E8F6
+ .align 2, 0
+_0803E8EC: .4byte 0x000001fd
+_0803E8F0: .4byte gUnknown_082082F2
+_0803E8F4:
+ adds r4, r0, 0
+_0803E8F6:
+ adds r1, r5, r4
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ bls _0803E904
+ adds r0, r4, r0
+ subs r4, r0, r1
+_0803E904:
+ ldr r0, [sp]
+ adds r0, r4
+ str r0, [sp]
+ ldr r0, _0803E930 @ =gUnknown_082082F2
+ ldr r3, [sp, 0x28]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ movs r4, 0
+ str r4, [sp, 0x1C]
+ b _0803EE0A
+ .align 2, 0
+_0803E930: .4byte gUnknown_082082F2
+_0803E934:
+ movs r0, 0x10
+ mov r5, r10
+ ands r0, r5
+ cmp r0, 0
+ beq _0803E9F4
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0803E954
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ b _0803EC9E
+_0803E954:
+ ldr r0, _0803E99C @ =gMain
+ ldr r1, _0803E9A0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r4, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EA0A
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803E9B4
+ ldr r2, _0803E9A4 @ =gUnknown_02024C0C
+ ldr r1, _0803E9A8 @ =gBitTable
+ ldr r3, [sp, 0x34]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldr r1, _0803E9AC @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, [sp, 0x34]
+ bl CopyPlayerPartyMonToBattleData
+ ldr r0, _0803E9B0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ b _0803E9CC
+ .align 2, 0
+_0803E99C: .4byte gMain
+_0803E9A0: .4byte 0x0000043d
+_0803E9A4: .4byte gUnknown_02024C0C
+_0803E9A8: .4byte gBitTable
+_0803E9AC: .4byte gUnknown_02024A6A
+_0803E9B0: .4byte gUnknown_02024A60
+_0803E9B4:
+ ldr r3, _0803E9E4 @ =gUnknown_02024C0C
+ ldr r1, _0803E9E8 @ =gBitTable
+ ldr r2, _0803E9EC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ eors r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r3]
+ bics r0, r1
+ strb r0, [r3]
+ ldrb r0, [r2]
+_0803E9CC:
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EA0A
+ ldr r1, _0803E9F0 @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0xFE
+ bhi _0803EA0A
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0803EA0A
+ .align 2, 0
+_0803E9E4: .4byte gUnknown_02024C0C
+_0803E9E8: .4byte gBitTable
+_0803E9EC: .4byte gUnknown_02024A60
+_0803E9F0: .4byte gUnknown_030042E0
+_0803E9F4:
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0803EA0A
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ b _0803EC9E
+_0803EA0A:
+ ldr r1, [sp, 0x24]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ ldr r4, [sp, 0x20]
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ str r1, [sp]
+ adds r0, r1, 0
+ cmp r0, 0xFE
+ beq _0803EA4C
+ cmp r0, 0xFE
+ bhi _0803EA2C
+ cmp r0, 0xFD
+ beq _0803EA62
+ b _0803EA6C
+_0803EA2C:
+ cmp r1, 0xFF
+ bne _0803EA6C
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ subs r4, r0
+ str r4, [sp]
+ b _0803EA6C
+_0803EA4C:
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ lsrs r0, 1
+ str r0, [sp]
+ cmp r0, 0
+ bne _0803EA6C
+ movs r0, 0x1
+ b _0803EA6A
+_0803EA62:
+ ldr r0, _0803EB24 @ =0x02000000
+ ldr r5, _0803EB28 @ =0x000160fa
+ adds r0, r5
+ ldrb r0, [r0]
+_0803EA6A:
+ str r0, [sp]
+_0803EA6C:
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ beq _0803EB4C
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _0803EB40
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803EAB8
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+_0803EAB8:
+ mov r0, r8
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803EB2C @ =gMain
+ ldr r1, _0803EB30 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EB48
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803EB48
+ ldr r1, _0803EB34 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldr r1, [sp]
+ strh r1, [r0, 0x28]
+ movs r0, 0x10
+ mov r3, r10
+ ands r0, r3
+ cmp r0, 0
+ bne _0803EB48
+ ldr r4, _0803EB38 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EB48
+ ldr r1, _0803EB3C @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0xFE
+ bhi _0803EB08
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+_0803EB08:
+ ldrb r5, [r4]
+ add r0, sp, 0x34
+ ldrb r0, [r0]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ strb r5, [r4]
+ b _0803EB48
+ .align 2, 0
+_0803EB24: .4byte 0x02000000
+_0803EB28: .4byte 0x000160fa
+_0803EB2C: .4byte gMain
+_0803EB30: .4byte 0x0000043d
+_0803EB34: .4byte gBattleMons
+_0803EB38: .4byte gUnknown_02024A60
+_0803EB3C: .4byte gUnknown_030042E0
+_0803EB40:
+ ldr r1, _0803EB58 @ =gUnknown_02024BEC
+ ldr r0, [sp]
+ negs r0, r0
+ str r0, [r1]
+_0803EB48:
+ movs r1, 0
+ str r1, [sp, 0x1C]
+_0803EB4C:
+ movs r0, 0xEF
+ mov r2, r10
+ ands r2, r0
+ mov r10, r2
+ b _0803EE0A
+ .align 2, 0
+_0803EB58: .4byte gUnknown_02024BEC
+_0803EB5C:
+ movs r7, 0x2
+ mov r0, r10
+ ands r0, r7
+ cmp r0, 0
+ beq _0803EB68
+ b _0803ECB8
+_0803EB68:
+ movs r5, 0
+ ldr r3, [sp, 0x24]
+ adds r3, 0x1
+ str r3, [sp, 0x38]
+_0803EB70:
+ movs r4, 0x11
+ adds r4, r5
+ mov r9, r4
+ mov r0, r8
+ mov r1, r9
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ adds r7, r5, 0
+ adds r7, 0xD
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r5, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ beq _0803EC92
+ ldr r2, [sp, 0x20]
+ ldr r3, [sp, 0x24]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ adds r0, r1, r0
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803EC28
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_0803EC28:
+ mov r0, r8
+ mov r1, r9
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803ECA4 @ =gMain
+ ldr r4, _0803ECA8 @ =0x0000043d
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EC8E
+ ldr r0, [sp, 0x34]
+ cmp r0, 0x4
+ beq _0803EC8E
+ ldr r4, _0803ECAC @ =gBattleMons
+ movs r0, 0x58
+ ldr r1, [sp, 0x34]
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EC8E
+ ldr r1, _0803ECB0 @ =gUnknown_02024CA8
+ ldr r2, [sp, 0x34]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0803ECB4 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EC8E
+ adds r0, r5, r3
+ adds r1, r4, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldr r1, [sp]
+ strb r1, [r0]
+_0803EC8E:
+ movs r3, 0
+ str r3, [sp, 0x1C]
+_0803EC92:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _0803EC9A
+ b _0803EB70
+_0803EC9A:
+ ldr r4, [sp, 0x38]
+ lsls r0, r4, 24
+_0803EC9E:
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ b _0803EE0A
+ .align 2, 0
+_0803ECA4: .4byte gMain
+_0803ECA8: .4byte 0x0000043d
+_0803ECAC: .4byte gBattleMons
+_0803ECB0: .4byte gUnknown_02024CA8
+_0803ECB4: .4byte gBitTable
+_0803ECB8:
+ ldr r6, [sp, 0x10]
+ adds r6, 0x11
+ mov r0, r8
+ adds r1, r6, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r5, [sp, 0x10]
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp]
+ cmp r2, r0
+ bne _0803ED00
+ b _0803EE0A
+_0803ED00:
+ ldr r1, [sp, 0x24]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ ldr r0, [sp, 0x20]
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ adds r0, r2, r0
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803ED74
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_0803ED74:
+ mov r0, r8
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803EDE0 @ =gMain
+ ldr r1, _0803EDE4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EDD8
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803EDD8
+ ldr r4, _0803EDE8 @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r2, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _0803EDD8
+ ldr r1, _0803EDEC @ =gUnknown_02024CA8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0803EDF0 @ =gBitTable
+ ldr r5, [sp, 0x10]
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EDD8
+ adds r0, r5, r3
+ adds r1, r4, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldr r1, [sp]
+ strb r1, [r0]
+_0803EDD8:
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ b _0803EE0A
+ .align 2, 0
+_0803EDE0: .4byte gMain
+_0803EDE4: .4byte 0x0000043d
+_0803EDE8: .4byte gBattleMons
+_0803EDEC: .4byte gUnknown_02024CA8
+_0803EDF0: .4byte gBitTable
+_0803EDF4:
+ mov r0, r8
+ movs r1, 0x2
+ ldr r2, [sp, 0x8]
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0803EE0A
+ bl _0803E35C
+_0803EE0A:
+ ldr r1, [sp, 0x28]
+ adds r1, 0x1
+ str r1, [sp, 0x28]
+ mov r2, r10
+ lsrs r2, 1
+ mov r10, r2
+ cmp r2, 0
+ beq _0803EE1C
+ b _0803E862
+_0803EE1C:
+ b _0803F14C
+_0803EE1E:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x18]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r5, 0
+ str r5, [sp, 0x28]
+ cmp r0, 0
+ bne _0803EE32
+ b _0803F14C
+_0803EE32:
+ movs r0, 0x1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _0803EE3E
+ b _0803F13A
+_0803EE3E:
+ ldr r2, [sp, 0x28]
+ cmp r2, 0x7
+ bls _0803EE46
+ b _0803F13A
+_0803EE46:
+ lsls r0, r2, 2
+ ldr r1, _0803EE50 @ =_0803EE54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803EE50: .4byte _0803EE54
+ .align 2, 0
+_0803EE54:
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EEF8
+ .4byte _0803EFCC
+ .4byte _0803F026
+ .4byte _0803F07C
+_0803EE74:
+ mov r0, r8
+ bl GetMonEVCount
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803EEBC @ =0x000001fd
+ cmp r5, r0
+ bls _0803EE88
+ bl _0803E36C
+_0803EE88:
+ ldr r0, _0803EEC0 @ =gUnknown_082082F2
+ ldr r4, [sp, 0x28]
+ adds r4, 0x2
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ str r1, [sp]
+ adds r2, r4, 0
+ cmp r1, 0x63
+ bls _0803EEA6
+ b _0803F13A
+_0803EEA6:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x64
+ bls _0803EEC4
+ adds r0, 0x64
+ subs r4, r0, r1
+ b _0803EEC6
+ .align 2, 0
+_0803EEBC: .4byte 0x000001fd
+_0803EEC0: .4byte gUnknown_082082F2
+_0803EEC4:
+ adds r4, r0, 0
+_0803EEC6:
+ adds r1, r5, r4
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ bls _0803EED4
+ adds r0, r4, r0
+ subs r4, r0, r1
+_0803EED4:
+ ldr r0, [sp]
+ adds r0, r4
+ str r0, [sp]
+ ldr r0, _0803EEF4 @ =gUnknown_082082F2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ b _0803F130
+ .align 2, 0
+_0803EEF4: .4byte gUnknown_082082F2
+_0803EEF8:
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803EFC0 @ =gUnknown_08208238
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ ands r0, r1
+ lsls r1, r2, 1
+ lsrs r0, r1
+ str r0, [sp]
+ cmp r0, 0x2
+ bls _0803EF18
+ b _0803F13A
+_0803EF18:
+ adds r5, r2, 0
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r1, _0803EFC4 @ =gUnknown_0820823C
+ ldr r3, [sp, 0x10]
+ adds r1, r3, r1
+ ldrb r2, [r1]
+ ands r2, r0
+ str r2, [sp]
+ ldr r0, _0803EFC8 @ =gUnknown_08208240
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r2, r0
+ str r2, [sp]
+ mov r0, r8
+ movs r1, 0x15
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, r4
+ str r0, [sp]
+ ldr r4, [sp, 0x10]
+ adds r4, 0x11
+ mov r0, r8
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0
+ str r4, [sp, 0x1C]
+ b _0803F13A
+ .align 2, 0
+_0803EFC0: .4byte gUnknown_08208238
+_0803EFC4: .4byte gUnknown_0820823C
+_0803EFC8: .4byte gUnknown_08208240
+_0803EFCC:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0803EFDC
+ b _0803F130
+_0803EFDC:
+ ldr r5, [sp, 0x1C]
+ cmp r5, 0
+ beq _0803EFE4
+ b _0803F130
+_0803EFE4:
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0
+ beq _0803EFEC
+ b _0803F130
+_0803EFEC:
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ str r5, [sp, 0x4]
+ ldr r3, [sp, 0x2C]
+ lsls r4, r3, 24
+ asrs r1, r4, 24
+ cmp r1, 0
+ ble _0803F0D0
+ ldr r0, [sp, 0x30]
+ cmp r0, 0x1B
+ bne _0803F0D0
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ adds r0, r5, r0
+ str r0, [sp, 0x4]
+ adds r2, r4, 0
+ b _0803F0DC
+_0803F026:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0803F130
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xC7
+ bhi _0803F130
+ ldr r2, [sp, 0x1C]
+ cmp r2, 0
+ bne _0803F130
+ ldr r3, [sp, 0x2C]
+ cmp r3, 0
+ bne _0803F130
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x24]
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ str r4, [sp, 0x4]
+ ldr r0, [sp, 0x2C]
+ lsls r5, r0, 24
+ asrs r1, r5, 24
+ cmp r1, 0
+ ble _0803F076
+ ldr r2, [sp, 0x30]
+ cmp r2, 0x1B
+ beq _0803F0BE
+_0803F076:
+ ldr r3, [sp, 0x2C]
+ lsls r2, r3, 24
+ b _0803F0D4
+_0803F07C:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0803F130
+ ldr r4, [sp, 0x1C]
+ cmp r4, 0
+ bne _0803F130
+ ldr r5, [sp, 0x2C]
+ cmp r5, 0
+ bne _0803F130
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ str r4, [sp, 0x4]
+ ldr r3, [sp, 0x2C]
+ lsls r5, r3, 24
+ asrs r1, r5, 24
+ cmp r1, 0
+ ble _0803F0D0
+ ldr r0, [sp, 0x30]
+ cmp r0, 0x1B
+ bne _0803F0D0
+_0803F0BE:
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ adds r0, r4, r0
+ str r0, [sp, 0x4]
+ adds r2, r5, 0
+ b _0803F0DC
+_0803F0D0:
+ ldr r1, [sp, 0x2C]
+ lsls r2, r1, 24
+_0803F0D4:
+ asrs r1, r2, 24
+ ldr r0, [sp, 0x4]
+ adds r0, r1
+ str r0, [sp, 0x4]
+_0803F0DC:
+ cmp r2, 0
+ ble _0803F112
+ mov r0, r8
+ movs r1, 0x26
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xB
+ bne _0803F0F4
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+_0803F0F4:
+ mov r0, r8
+ movs r1, 0x23
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ bl sav1_map_get_name
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0803F112
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+_0803F112:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bge _0803F11C
+ movs r0, 0
+ str r0, [sp, 0x4]
+_0803F11C:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0xFF
+ ble _0803F126
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+_0803F126:
+ add r2, sp, 0x4
+ mov r0, r8
+ movs r1, 0x20
+ bl SetMonData
+_0803F130:
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+_0803F13A:
+ ldr r2, [sp, 0x28]
+ adds r2, 0x1
+ str r2, [sp, 0x28]
+ mov r3, r10
+ lsrs r3, 1
+ mov r10, r3
+ cmp r3, 0
+ beq _0803F14C
+ b _0803EE32
+_0803F14C:
+ ldr r4, [sp, 0x18]
+ adds r4, 0x1
+ str r4, [sp, 0x18]
+ cmp r4, 0x5
+ bgt _0803F15A
+ bl _0803E378
+_0803F15A:
+ ldr r0, [sp, 0x1C]
+_0803F15C:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803E1B0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s
new file mode 100644
index 000000000..6a3fbb170
--- /dev/null
+++ b/asm/pokemon_menu.s
@@ -0,0 +1,3438 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8089A70
+sub_8089A70: @ 8089A70
+ push {lr}
+ ldr r0, _08089A88 @ =gPaletteFade
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl OpenPartyMenu
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089A88: .4byte gPaletteFade
+ thumb_func_end sub_8089A70
+
+ thumb_func_start sub_8089A8C
+sub_8089A8C: @ 8089A8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _08089AD0 @ =gUnknown_0202FFA9
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _08089AD4 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089AD8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08089AE0
+ ldr r4, _08089ADC @ =gUnknown_0202FFAA
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl AppendToList
+ b _08089BC8
+ .align 2, 0
+_08089AD0: .4byte gUnknown_0202FFA9
+_08089AD4: .4byte gUnknown_03005CE0
+_08089AD8: .4byte gPlayerParty
+_08089ADC: .4byte gUnknown_0202FFAA
+_08089AE0:
+ movs r6, 0
+ ldr r0, _08089B24 @ =gUnknown_0839F554
+ ldrh r0, [r0]
+ mov r8, r0
+_08089AE8:
+ movs r4, 0
+ adds r7, r6, 0x1
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _08089B48
+ ldr r5, _08089B24 @ =gUnknown_0839F554
+_08089AF4:
+ ldr r0, _08089B28 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089B2C @ =gPlayerParty
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08089B38
+ adds r2, r4, 0
+ adds r2, 0xA
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _08089B30 @ =gUnknown_0202FFAA
+ ldr r1, _08089B34 @ =gUnknown_0202FFA9
+ bl AppendToList
+ b _08089B48
+ .align 2, 0
+_08089B24: .4byte gUnknown_0839F554
+_08089B28: .4byte gUnknown_03005CE0
+_08089B2C: .4byte gPlayerParty
+_08089B30: .4byte gUnknown_0202FFAA
+_08089B34: .4byte gUnknown_0202FFA9
+_08089B38:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ bne _08089AF4
+_08089B48:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08089AE8
+ ldr r4, _08089BA4 @ =gUnknown_0202FFAA
+ ldr r5, _08089BA8 @ =gUnknown_0202FFA9
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08089B76
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+_08089B76:
+ ldr r0, _08089BB0 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r6, 0
+ subs r1, 0x64
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _08089BB4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl AppendToList
+ b _08089BBE
+ .align 2, 0
+_08089BA4: .4byte gUnknown_0202FFAA
+_08089BA8: .4byte gUnknown_0202FFA9
+_08089BAC: .4byte gPlayerParty + 1 * 0x64
+_08089BB0: .4byte gUnknown_03005CE0
+_08089BB4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl AppendToList
+_08089BBE:
+ ldr r0, _08089BD4 @ =gUnknown_0202FFAA
+ ldr r1, _08089BD8 @ =gUnknown_0202FFA9
+ movs r2, 0x3
+ bl AppendToList
+_08089BC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089BD4: .4byte gUnknown_0202FFAA
+_08089BD8: .4byte gUnknown_0202FFA9
+ thumb_func_end sub_8089A8C
+
+ thumb_func_start sub_8089BDC
+sub_8089BDC: @ 8089BDC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r7, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x5
+ bl sub_806D538
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r3, r0, 1
+ adds r3, r6, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl MenuDrawTextWindow
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ str r7, [sp]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, r8
+ ldr r3, [sp, 0x1C]
+ bl PrintMenuItemsReordered
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089BDC
+
+ thumb_func_start sub_8089C50
+sub_8089C50: @ 8089C50
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r4, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_8089BDC
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089C50
+
+ thumb_func_start sub_8089C7C
+sub_8089C7C: @ 8089C7C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _08089CC8 @ =gUnknown_0202FFA9
+ ldrb r0, [r6]
+ lsls r0, 1
+ movs r4, 0x12
+ subs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r6]
+ ldr r0, _08089CCC @ =gPokemonMenuActions
+ str r0, [sp]
+ ldr r0, _08089CD0 @ =gUnknown_0202FFAA
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ str r0, [sp, 0x8]
+ movs r0, 0x13
+ adds r1, r4, 0
+ movs r2, 0xA
+ bl sub_8089BDC
+ movs r2, 0x1
+ orrs r2, r4
+ ldrb r3, [r6]
+ str r5, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ bl InitMenu
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089CC8: .4byte gUnknown_0202FFA9
+_08089CCC: .4byte gPokemonMenuActions
+_08089CD0: .4byte gUnknown_0202FFAA
+ thumb_func_end sub_8089C7C
+
+ thumb_func_start sub_8089CD4
+sub_8089CD4: @ 8089CD4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089D00 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089D84
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08089D04
+ cmp r0, 0x2
+ beq _08089D60
+ b _08089D84
+ .align 2, 0
+_08089D00: .4byte gPaletteFade
+_08089D04:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08089D48 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089D4C @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08089D50 @ =gStringVar1
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r0, _08089D54 @ =gUnknown_0202FFA8
+ strb r5, [r0]
+ movs r0, 0
+ bl sub_8089C7C
+ ldr r1, _08089D58 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D5C @ =sub_8089D94
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089D84
+ .align 2, 0
+_08089D48: .4byte gUnknown_03005CE0
+_08089D4C: .4byte gPlayerParty
+_08089D50: .4byte gStringVar1
+_08089D54: .4byte gUnknown_0202FFA8
+_08089D58: .4byte gTasks
+_08089D5C: .4byte sub_8089D94
+_08089D60:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08089D8C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D90 @ =sub_8089E4C
+ str r1, [r0]
+_08089D84:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089D8C: .4byte gTasks
+_08089D90: .4byte sub_8089E4C
+ thumb_func_end sub_8089CD4
+
+ thumb_func_start sub_8089D94
+sub_8089D94: @ 8089D94
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _08089DC8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08089E44
+ ldr r2, _08089DCC @ =gMain
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _08089DD4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _08089DD0 @ =gUnknown_0202FFA8
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DC8: .4byte gPaletteFade
+_08089DCC: .4byte gMain
+_08089DD0: .4byte gUnknown_0202FFA8
+_08089DD4:
+ cmp r1, 0x80
+ bne _08089DF0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _08089DEC @ =gUnknown_0202FFA8
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DEC: .4byte gUnknown_0202FFA8
+_08089DF0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E30
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08089E24 @ =gPokemonMenuActions
+ ldr r2, _08089E28 @ =gUnknown_0202FFAA
+ ldr r0, _08089E2C @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_08089E1A:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089E44
+ .align 2, 0
+_08089E24: .4byte gPokemonMenuActions
+_08089E28: .4byte gUnknown_0202FFAA
+_08089E2C: .4byte gUnknown_0202FFA8
+_08089E30:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E44
+ adds r0, r5, 0
+ bl PokemonMenu_Cancel
+ adds r0, r5, 0
+ bl sub_808B5B4
+_08089E44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089D94
+
+ thumb_func_start sub_8089E4C
+sub_8089E4C: @ 8089E4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089E78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08089E72
+ ldr r0, _08089E7C @ =gUnknown_03005CE0
+ strb r1, [r0]
+ ldr r0, _08089E80 @ =sub_805469C
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08089E72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089E78: .4byte gPaletteFade
+_08089E7C: .4byte gUnknown_03005CE0
+_08089E80: .4byte sub_805469C
+ thumb_func_end sub_8089E4C
+
+ thumb_func_start sub_8089E84
+sub_8089E84: @ 8089E84
+ push {lr}
+ ldr r0, _08089EAC @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089EB0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08089EB4 @ =gStringVar1
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r1, _08089EB8 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_8089C7C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089EAC: .4byte gUnknown_03005CE0
+_08089EB0: .4byte gPlayerParty
+_08089EB4: .4byte gStringVar1
+_08089EB8: .4byte gUnknown_0202FFA8
+ thumb_func_end sub_8089E84
+
+ thumb_func_start sub_8089EBC
+sub_8089EBC: @ 8089EBC
+ push {r4,r5,lr}
+ ldr r4, _08089EC4 @ =0x0201b260
+ ldr r5, _08089EC8 @ =gUnknown_020384F0
+ b _08089ED8
+ .align 2, 0
+_08089EC4: .4byte 0x0201b260
+_08089EC8: .4byte gUnknown_020384F0
+_08089ECC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08089F04
+_08089ED8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08089ECC
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r1, _08089F0C @ =gUnknown_03005CE0
+ ldrb r0, [r5]
+ strb r0, [r1]
+ bl sub_8089E84
+ ldr r0, _08089F10 @ =sub_806AEDC
+ bl SetMainCallback2
+_08089F04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F0C: .4byte gUnknown_03005CE0
+_08089F10: .4byte sub_806AEDC
+ thumb_func_end sub_8089EBC
+
+ thumb_func_start sub_8089F14
+sub_8089F14: @ 8089F14
+ push {lr}
+ ldr r2, _08089F38 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _08089F3C @ =sub_8089D94
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08089F40 @ =sub_8089EBC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F38: .4byte gPaletteFade
+_08089F3C: .4byte sub_8089D94
+_08089F40: .4byte sub_8089EBC
+ thumb_func_end sub_8089F14
+
+ thumb_func_start sub_8089F44
+sub_8089F44: @ 8089F44
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _08089FAC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089FA2
+ ldr r2, _08089FB0 @ =gSprites
+ ldr r1, _08089FB4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _08089FB8 @ =0x0201b000
+ ldr r1, _08089FBC @ =0x00000262
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08089FC0 @ =gPlayerParty
+ ldr r1, _08089FC4 @ =gPlayerPartyCount
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08089FC8 @ =sub_8089F14
+ str r5, [sp]
+ adds r1, r4, 0
+ bl ShowPokemonSummaryScreen
+_08089FA2:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FAC: .4byte gPaletteFade
+_08089FB0: .4byte gSprites
+_08089FB4: .4byte gTasks
+_08089FB8: .4byte 0x0201b000
+_08089FBC: .4byte 0x00000262
+_08089FC0: .4byte gPlayerParty
+_08089FC4: .4byte gPlayerPartyCount
+_08089FC8: .4byte sub_8089F14
+ thumb_func_end sub_8089F44
+
+ thumb_func_start PokemonMenu_Summary
+PokemonMenu_Summary: @ 8089FCC
+ 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, _08089FFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A000 @ =sub_8089F44
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FFC: .4byte gTasks
+_0808A000: .4byte sub_8089F44
+ thumb_func_end PokemonMenu_Summary
+
+ thumb_func_start sub_808A004
+sub_808A004: @ 808A004
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A024 @ =sub_806CA60
+ ldr r2, _0808A028 @ =sub_8089CD4
+ bl SetTaskFuncWithFollowupFunc
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A024: .4byte sub_806CA60
+_0808A028: .4byte sub_8089CD4
+ thumb_func_end sub_808A004
+
+ thumb_func_start PokemonMenu_Switch
+PokemonMenu_Switch: @ 808A02C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r0, _0808A054 @ =0x02001000
+ ldr r1, _0808A058 @ =sub_806CD5C
+ str r1, [r0, 0xC]
+ ldr r1, _0808A05C @ =0x0001a272
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_808A004
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A054: .4byte 0x02001000
+_0808A058: .4byte sub_806CD5C
+_0808A05C: .4byte 0x0001a272
+ thumb_func_end PokemonMenu_Switch
+
+ thumb_func_start sub_808A060
+sub_808A060: @ 808A060
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0808A086
+ ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0808A086
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A086:
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0808A0A4
+ ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _0808A0A4
+ movs r0, 0x1
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A0A4:
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0E0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A0D8 @ =gUnknown_0839F578
+ ldr r2, _0808A0DC @ =gPokemonMenuActions
+ ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r3, [r0]
+ movs r0, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A0F6
+ .align 2, 0
+_0808A0D0: .4byte gMain
+_0808A0D4: .4byte gUnknown_0202FFA8
+_0808A0D8: .4byte gUnknown_0839F578
+_0808A0DC: .4byte gPokemonMenuActions
+_0808A0E0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0F6
+ ldr r1, _0808A0FC @ =gUnknown_0839F578
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl PokemonMenu_CancelSubmenu
+_0808A0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A0FC: .4byte gUnknown_0839F578
+ thumb_func_end sub_808A060
+
+ thumb_func_start sub_808A100
+sub_808A100: @ 808A100
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A130 @ =gUnknown_0839F578
+ ldr r2, _0808A134 @ =gPokemonMenuActions
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ movs r0, 0xD
+ movs r1, 0x2
+ bl sub_806D538
+ ldr r1, _0808A138 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A13C @ =sub_808A060
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A130: .4byte gUnknown_0839F578
+_0808A134: .4byte gPokemonMenuActions
+_0808A138: .4byte gTasks
+_0808A13C: .4byte sub_808A060
+ thumb_func_end sub_808A100
+
+ thumb_func_start PokemonMenu_Item
+PokemonMenu_Item: @ 808A140
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r1, _0808A174 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A178 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A17C @ =sub_808A100
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A174: .4byte gUnknown_0202FFA8
+_0808A178: .4byte gTasks
+_0808A17C: .4byte sub_808A100
+ thumb_func_end PokemonMenu_Item
+
+ thumb_func_start sub_808A180
+sub_808A180: @ 808A180
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A1D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A1CA
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A1D4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808A1DC @ =sub_808A520
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808A1CA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A1D0: .4byte gPaletteFade
+_0808A1D4: .4byte gPlayerParty
+_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
+_0808A1DC: .4byte sub_808A520
+ thumb_func_end sub_808A180
+
+ thumb_func_start sub_808A1E0
+sub_808A1E0: @ 808A1E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A21C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808A216
+ adds r0, r4, 0
+ bl sub_806CA38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl SetHeldItemIconVisibility
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A220 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A224 @ =sub_8089CD4
+ str r1, [r0]
+_0808A216:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A21C: .4byte gUnknown_0202E8F6
+_0808A220: .4byte gTasks
+_0808A224: .4byte sub_8089CD4
+ thumb_func_end sub_808A1E0
+
+ thumb_func_start sub_808A228
+sub_808A228: @ 808A228
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A268 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A278
+ ldr r0, _0808A26C @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808A278
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A270 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A274 @ =sub_808A180
+ str r1, [r0]
+ b _0808A29A
+ .align 2, 0
+_0808A268: .4byte gScriptItemId
+_0808A26C: .4byte gUnknown_0202E8F4
+_0808A270: .4byte gTasks
+_0808A274: .4byte sub_808A180
+_0808A278:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _0808A2A4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808A2A8 @ =sub_8089CD4
+ str r0, [r1]
+_0808A29A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2A4: .4byte gTasks
+_0808A2A8: .4byte sub_8089CD4
+ thumb_func_end sub_808A228
+
+ thumb_func_start sub_808A2AC
+sub_808A2AC: @ 808A2AC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0808A2D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A2CA
+ ldr r0, _0808A2D4 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808A2D8 @ =sub_808A228
+ adds r0, r3, 0
+ bl PartyMenuTryGiveMonHeldItem
+_0808A2CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2D0: .4byte gPaletteFade
+_0808A2D4: .4byte gScriptItemId
+_0808A2D8: .4byte sub_808A228
+ thumb_func_end sub_808A2AC
+
+ thumb_func_start sub_808A2DC
+sub_808A2DC: @ 808A2DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A324 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808A32C @ =sub_808A520
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A324: .4byte gPlayerParty
+_0808A328: .4byte gSaveBlock1 + 0x2B4C
+_0808A32C: .4byte sub_808A520
+ thumb_func_end sub_808A2DC
+
+ thumb_func_start sub_808A330
+sub_808A330: @ 808A330
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A344 @ =gScriptItemId
+ ldrh r1, [r1]
+ ldr r2, _0808A348 @ =sub_808A2DC
+ bl PartyMenuTryGiveMonHeldItem
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A344: .4byte gScriptItemId
+_0808A348: .4byte sub_808A2DC
+ thumb_func_end sub_808A330
+
+ thumb_func_start sub_808A34C
+sub_808A34C: @ 808A34C
+ push {lr}
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A34C
+
+ thumb_func_start sub_808A358
+sub_808A358: @ 808A358
+ push {r4,lr}
+ ldr r4, _0808A360 @ =0x0201b260
+ b _0808A370
+ .align 2, 0
+_0808A360: .4byte 0x0201b260
+_0808A364:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A394
+_0808A370:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A364
+ ldrb r0, [r4]
+ ldr r1, _0808A39C @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A3A0 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808A394:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A39C: .4byte gUnknown_03005CE0
+_0808A3A0: .4byte sub_806AEDC
+ thumb_func_end sub_808A358
+
+ thumb_func_start sub_808A3A4
+sub_808A3A4: @ 808A3A4
+ push {r4,r5,lr}
+ ldr r4, _0808A3D8 @ =0x0201b260
+ adds r5, r4, 0x2
+_0808A3AA:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3E4
+ ldrb r0, [r4]
+ ldr r1, _0808A3DC @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ movs r0, 0x3
+ strb r0, [r5]
+ bl sub_8089E84
+ ldr r0, _0808A3E0 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _0808A3F0
+ .align 2, 0
+_0808A3D8: .4byte 0x0201b260
+_0808A3DC: .4byte gUnknown_03005CE0
+_0808A3E0: .4byte sub_806AEDC
+_0808A3E4:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3AA
+_0808A3F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A3A4
+
+ thumb_func_start sub_808A3F8
+sub_808A3F8: @ 808A3F8
+ push {r4,lr}
+ ldr r0, _0808A460 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A47E
+ ldr r0, _0808A464 @ =sub_808A330
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _0808A468 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BD58
+ ldr r0, _0808A46C @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_806C994
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BF74
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A470 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808A478
+ ldr r0, _0808A474 @ =sub_808A34C
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A460: .4byte gScriptItemId
+_0808A464: .4byte sub_808A330
+_0808A468: .4byte gPaletteFade
+_0808A46C: .4byte gUnknown_03005CE0
+_0808A470: .4byte gPlayerParty
+_0808A474: .4byte sub_808A34C
+_0808A478:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A47E:
+ ldr r2, _0808A4A4 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A4A8 @ =gScriptItemId
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0808A4B4
+ ldr r2, _0808A4AC @ =sub_808A2AC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808A4B0 @ =sub_808A358
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A4A4: .4byte gPaletteFade
+_0808A4A8: .4byte gScriptItemId
+_0808A4AC: .4byte sub_808A2AC
+_0808A4B0: .4byte sub_808A358
+_0808A4B4:
+ ldr r2, _0808A4CC @ =sub_8089D94
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _0808A4D0 @ =sub_808A3A4
+ bl SetMainCallback2
+_0808A4C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A4CC: .4byte sub_8089D94
+_0808A4D0: .4byte sub_808A3A4
+ thumb_func_end sub_808A3F8
+
+ thumb_func_start sub_808A4D4
+sub_808A4D4: @ 808A4D4
+ push {r4,lr}
+ ldr r4, _0808A4DC @ =0x0201b260
+ b _0808A4EC
+ .align 2, 0
+_0808A4DC: .4byte 0x0201b260
+_0808A4E0:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A510
+_0808A4EC:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A4E0
+ ldrb r0, [r4]
+ ldr r1, _0808A518 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A51C @ =sub_806AEDC
+ bl SetMainCallback2
+_0808A510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A518: .4byte gUnknown_03005CE0
+_0808A51C: .4byte sub_806AEDC
+ thumb_func_end sub_808A4D4
+
+ thumb_func_start sub_808A520
+sub_808A520: @ 808A520
+ push {r4-r7,lr}
+ ldr r2, _0808A584 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A588 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808A59C
+ ldr r7, _0808A58C @ =gUnknown_0202E8F8
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808A542
+ movs r1, 0x1
+ bl RemoveBagItem
+_0808A542:
+ ldr r6, _0808A590 @ =gUnknown_03005CE0
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808A594 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl sub_80A2DF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r2, _0808A598 @ =sub_8089CD4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ b _0808A5A8
+ .align 2, 0
+_0808A584: .4byte gPaletteFade
+_0808A588: .4byte gScriptResult
+_0808A58C: .4byte gUnknown_0202E8F8
+_0808A590: .4byte gUnknown_03005CE0
+_0808A594: .4byte gPlayerParty
+_0808A598: .4byte sub_8089CD4
+_0808A59C:
+ ldr r2, _0808A5B4 @ =sub_808A5BC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808A5A8:
+ ldr r0, _0808A5B8 @ =sub_808A4D4
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5B4: .4byte sub_808A5BC
+_0808A5B8: .4byte sub_808A4D4
+ thumb_func_end sub_808A520
+
+ thumb_func_start sub_808A5BC
+sub_808A5BC: @ 808A5BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A5F0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A5EA
+ ldr r0, _0808A5F4 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ ldr r1, _0808A5F8 @ =gScriptItemId
+ ldrh r1, [r1]
+ movs r2, 0
+ bl DisplayGiveHeldItemMessage
+ ldr r1, _0808A5FC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A600 @ =sub_808A1E0
+ str r1, [r0]
+_0808A5EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5F0: .4byte gPaletteFade
+_0808A5F4: .4byte gUnknown_03005CE0
+_0808A5F8: .4byte gScriptItemId
+_0808A5FC: .4byte gTasks
+_0808A600: .4byte sub_808A1E0
+ thumb_func_end sub_808A5BC
+
+ thumb_func_start sub_808A604
+sub_808A604: @ 808A604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A628 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A622
+ ldr r0, _0808A62C @ =sub_80A61D0
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A622:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A628: .4byte gPaletteFade
+_0808A62C: .4byte sub_80A61D0
+ thumb_func_end sub_808A604
+
+ thumb_func_start PokemonMenu_GiveItem
+PokemonMenu_GiveItem: @ 808A630
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808A66C @ =gUnknown_0202E8F5
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A670 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A674 @ =sub_808A604
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A66C: .4byte gUnknown_0202E8F5
+_0808A670: .4byte gTasks
+_0808A674: .4byte sub_808A604
+ thumb_func_end PokemonMenu_GiveItem
+
+ thumb_func_start sub_808A678
+sub_808A678: @ 808A678
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808A8D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A678
+
+ thumb_func_start PokemonMenu_TakeItem
+PokemonMenu_TakeItem: @ 808A688
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6B4 @ =sub_808A678
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonHeldItem_806ECE8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6B4: .4byte sub_808A678
+ thumb_func_end PokemonMenu_TakeItem
+
+ thumb_func_start PokemonMenu_TakeMail
+PokemonMenu_TakeMail: @ 808A6B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6E4 @ =sub_808A678
+ adds r0, r4, 0
+ bl DoTakeMail
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6E4: .4byte sub_808A678
+ thumb_func_end PokemonMenu_TakeMail
+
+ thumb_func_start PokemonMenu_Mail
+PokemonMenu_Mail: @ 808A6E8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r1, _0808A728 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A72C @ =gUnknown_0839F584
+ ldr r2, _0808A730 @ =gPokemonMenuActions
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ ldr r1, _0808A734 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A738 @ =sub_808A73C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A728: .4byte gUnknown_0202FFA8
+_0808A72C: .4byte gUnknown_0839F584
+_0808A730: .4byte gPokemonMenuActions
+_0808A734: .4byte gTasks
+_0808A738: .4byte sub_808A73C
+ thumb_func_end PokemonMenu_Mail
+
+ thumb_func_start sub_808A73C
+sub_808A73C: @ 808A73C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A764 @ =gMain
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x40
+ bne _0808A77A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A768 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0808A770
+ ldr r0, _0808A76C @ =gUnknown_0839F584
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A774
+ .align 2, 0
+_0808A764: .4byte gMain
+_0808A768: .4byte gUnknown_0202FFA8
+_0808A76C: .4byte gUnknown_0839F584
+_0808A770:
+ movs r0, 0x1
+ negs r0, r0
+_0808A774:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A77A:
+ ldr r0, _0808A7A0 @ =gMain
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x80
+ bne _0808A7B4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A7A4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ ldr r1, _0808A7A8 @ =gUnknown_0839F584
+ ldrb r2, [r1]
+ subs r1, r2, 0x1
+ cmp r0, r1
+ bne _0808A7AC
+ movs r0, 0x1
+ subs r0, r2
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A7AE
+ .align 2, 0
+_0808A7A0: .4byte gMain
+_0808A7A4: .4byte gUnknown_0202FFA8
+_0808A7A8: .4byte gUnknown_0839F584
+_0808A7AC:
+ movs r0, 0x1
+_0808A7AE:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A7B4:
+ ldr r0, _0808A7E0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A7F0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A7E4 @ =gUnknown_0839F584
+ ldr r2, _0808A7E8 @ =gPokemonMenuActions
+ ldr r0, _0808A7EC @ =gUnknown_0202FFA8
+ ldrb r3, [r0]
+ movs r0, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A806
+ .align 2, 0
+_0808A7E0: .4byte gMain
+_0808A7E4: .4byte gUnknown_0839F584
+_0808A7E8: .4byte gPokemonMenuActions
+_0808A7EC: .4byte gUnknown_0202FFA8
+_0808A7F0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A806
+ ldr r1, _0808A80C @ =gUnknown_0839F584
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl PokemonMenu_Cancel
+_0808A806:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A80C: .4byte gUnknown_0839F584
+ thumb_func_end sub_808A73C
+
+ thumb_func_start PokemonMenu_ReadMail
+PokemonMenu_ReadMail: @ 808A810
+ 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, _0808A840 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A844 @ =sub_808A848
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A840: .4byte gTasks
+_0808A844: .4byte sub_808A848
+ thumb_func_end PokemonMenu_ReadMail
+
+ thumb_func_start sub_808A848
+sub_808A848: @ 808A848
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A898 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A890
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A89C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C
+ adds r0, r1
+ ldr r1, _0808A8A4 @ =sub_808A8A8
+ movs r2, 0x1
+ bl HandleReadMail
+_0808A890:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A898: .4byte gPaletteFade
+_0808A89C: .4byte gPlayerParty
+_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
+_0808A8A4: .4byte sub_808A8A8
+ thumb_func_end sub_808A848
+
+ thumb_func_start sub_808A8A8
+sub_808A8A8: @ 808A8A8
+ push {lr}
+ ldr r1, _0808A8C4 @ =gUnknown_020384F0
+ ldr r0, _0808A8C8 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0808A8CC @ =0x0201b000
+ ldr r1, _0808A8D0 @ =0x00000262
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ bl sub_8089F14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A8C4: .4byte gUnknown_020384F0
+_0808A8C8: .4byte gUnknown_03005CE0
+_0808A8CC: .4byte 0x0201b000
+_0808A8D0: .4byte 0x00000262
+ thumb_func_end sub_808A8A8
+
+ thumb_func_start sub_808A8D4
+sub_808A8D4: @ 808A8D4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A90C @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A910 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A914 @ =sub_8089CD4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A90C: .4byte gUnknown_0202FFA8
+_0808A910: .4byte gTasks
+_0808A914: .4byte sub_8089CD4
+ thumb_func_end sub_808A8D4
+
+ thumb_func_start PokemonMenu_Cancel
+PokemonMenu_Cancel: @ 808A918
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_808A8D4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end PokemonMenu_Cancel
+
+ thumb_func_start PokemonMenu_CancelSubmenu
+PokemonMenu_CancelSubmenu: @ 808A938
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808A978 @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ bl sub_8089C7C
+ ldr r1, _0808A97C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A980 @ =sub_8089D94
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A978: .4byte gUnknown_0202FFA8
+_0808A97C: .4byte gTasks
+_0808A980: .4byte sub_8089D94
+ thumb_func_end PokemonMenu_CancelSubmenu
+
+ thumb_func_start PokemonMenu_FieldMove
+PokemonMenu_FieldMove: @ 808A984
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0808A9D0 @ =gTasks + 0x8
+ adds r4, r6, r7
+ bl sub_8072DEC
+ ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
+ ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0xA
+ strh r0, [r4, 0x16]
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A9DC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0808AABA
+ movs r0, 0x9
+ b _0808AAB2
+ .align 2, 0
+_0808A9D0: .4byte gTasks + 0x8
+_0808A9D4: .4byte gUnknown_0202FFAA
+_0808A9D8: .4byte gUnknown_0202FFA8
+_0808A9DC:
+ ldrh r1, [r4, 0x16]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ bgt _0808AA2C
+ ldr r2, _0808AA20 @ =0x00000807
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AA2C
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge
+ movs r1, 0x1
+ bl sub_806E834
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0808AA28 @ =sub_808AAF0
+ str r1, [r0]
+ b _0808AADA
+ .align 2, 0
+_0808AA20: .4byte 0x00000807
+_0808AA24: .4byte gOtherText_CantBeUsedBadge
+_0808AA28: .4byte sub_808AAF0
+_0808AA2C:
+ ldr r1, _0808AA78 @ =gFieldMoveFuncs
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AA90
+ ldr r1, _0808AA7C @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0808AA88
+ ldr r1, _0808AA80 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808AA84 @ =sub_808AB34
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0808AADA
+ .align 2, 0
+_0808AA78: .4byte gFieldMoveFuncs
+_0808AA7C: .4byte gUnknown_0202FFA8
+_0808AA80: .4byte gTasks
+_0808AA84: .4byte sub_808AB34
+_0808AA88:
+ adds r0, r5, 0
+ bl sub_8133D28
+ b _0808AADA
+_0808AA90:
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _0808AABA
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AABA
+ movs r0, 0x8
+_0808AAB2:
+ movs r1, 0
+ bl sub_806D538
+ b _0808AACC
+_0808AABA:
+ ldr r0, _0808AAE4 @ =gFieldMoveFuncs
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x4]
+ movs r1, 0
+ bl sub_806D538
+_0808AACC:
+ ldr r0, _0808AAE8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808AAEC @ =sub_808ABF4
+ str r0, [r1]
+_0808AADA:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AAE4: .4byte gFieldMoveFuncs
+_0808AAE8: .4byte gTasks
+_0808AAEC: .4byte sub_808ABF4
+ thumb_func_end PokemonMenu_FieldMove
+
+ thumb_func_start sub_808AAF0
+sub_808AAF0: @ 808AAF0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB2C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808AB24
+ ldr r0, _0808AB30 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB12
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AB24
+_0808AB12:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl PokemonMenu_Cancel
+_0808AB24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB2C: .4byte gUnknown_0202E8F6
+_0808AB30: .4byte gMain
+ thumb_func_end sub_808AAF0
+
+ thumb_func_start sub_808AB34
+sub_808AB34: @ 808AB34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB6C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB84
+ ldr r0, _0808AB70 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x1E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bne _0808AB62
+ bl ShouldDoBrailleFlyEffect
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AB78
+_0808AB62:
+ ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ b _0808AB7E
+ .align 2, 0
+_0808AB6C: .4byte gPaletteFade
+_0808AB70: .4byte gTasks
+_0808AB74: .4byte c2_exit_to_overworld_2_switch
+_0808AB78:
+ ldr r0, _0808AB8C @ =sub_80FC074
+ bl SetMainCallback2
+_0808AB7E:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808AB84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB8C: .4byte sub_80FC074
+ thumb_func_end sub_808AB34
+
+ thumb_func_start sub_808AB90
+sub_808AB90: @ 808AB90
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _0808ABA4 @ =sub_808ABA8
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABA4: .4byte sub_808ABA8
+ thumb_func_end sub_808AB90
+
+ thumb_func_start sub_808ABA8
+sub_808ABA8: @ 808ABA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808ABDE
+ ldr r0, _0808ABE4 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ABE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0808ABEC @ =gUnknown_0202FF84
+ str r0, [r1]
+ ldr r0, _0808ABF0 @ =gUnknown_03005CE4
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r0, r4, 0
+ bl DestroyTask
+_0808ABDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABE4: .4byte gUnknown_03005CE0
+_0808ABE8: .4byte gPlayerParty
+_0808ABEC: .4byte gUnknown_0202FF84
+_0808ABF0: .4byte gUnknown_03005CE4
+ thumb_func_end sub_808ABA8
+
+ thumb_func_start sub_808ABF4
+sub_808ABF4: @ 808ABF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AC28 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AC0E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AC20
+_0808AC0E:
+ movs r0, 0x1
+ movs r1, 0x11
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl PokemonMenu_Cancel
+_0808AC20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC28: .4byte gMain
+ thumb_func_end sub_808ABF4
+
+ thumb_func_start sub_808AC2C
+sub_808AC2C: @ 808AC2C
+ push {lr}
+ ldr r0, _0808AC40 @ =gUnknown_0202FF84
+ ldr r1, _0808AC44 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x9
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC40: .4byte gUnknown_0202FF84
+_0808AC44: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AC2C
+
+ thumb_func_start SetUpFieldMove_Surf
+SetUpFieldMove_Surf: @ 808AC48
+ push {lr}
+ bl PartyHasMonWithSurf
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ ldr r1, _0808AC74 @ =gUnknown_0300485C
+ ldr r0, _0808AC78 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AC7C @ =gUnknown_03005CE4
+ ldr r0, _0808AC80 @ =sub_808AC2C
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AC86
+ .align 2, 0
+_0808AC74: .4byte gUnknown_0300485C
+_0808AC78: .4byte sub_808AB90
+_0808AC7C: .4byte gUnknown_03005CE4
+_0808AC80: .4byte sub_808AC2C
+_0808AC84:
+ movs r0, 0
+_0808AC86:
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Surf
+
+ thumb_func_start sub_808AC8C
+sub_808AC8C: @ 808AC8C
+ push {lr}
+ ldr r0, _0808ACA0 @ =gUnknown_0202FF84
+ ldr r1, _0808ACA4 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x1F
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ACA0: .4byte gUnknown_0202FF84
+_0808ACA4: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AC8C
+
+ thumb_func_start SetUpFieldMove_Fly
+SetUpFieldMove_Fly: @ 808ACA8
+ push {lr}
+ bl ShouldDoBrailleFlyEffect
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808ACD0
+ ldr r1, _0808ACC0 @ =gUnknown_0300485C
+ ldr r0, _0808ACC4 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808ACC8 @ =gUnknown_03005CE4
+ ldr r0, _0808ACCC @ =DoBrailleFlyEffect
+ b _0808ACF2
+ .align 2, 0
+_0808ACC0: .4byte gUnknown_0300485C
+_0808ACC4: .4byte sub_808AB90
+_0808ACC8: .4byte gUnknown_03005CE4
+_0808ACCC: .4byte DoBrailleFlyEffect
+_0808ACD0:
+ ldr r0, _0808ACE4 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808ACE8
+ movs r0, 0
+ b _0808ACF6
+ .align 2, 0
+_0808ACE4: .4byte gMapHeader
+_0808ACE8:
+ ldr r1, _0808ACFC @ =gUnknown_0300485C
+ ldr r0, _0808AD00 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AD04 @ =gUnknown_03005CE4
+ ldr r0, _0808AD08 @ =sub_808AC8C
+_0808ACF2:
+ str r0, [r1]
+ movs r0, 0x1
+_0808ACF6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ACFC: .4byte gUnknown_0300485C
+_0808AD00: .4byte sub_808AB90
+_0808AD04: .4byte gUnknown_03005CE4
+_0808AD08: .4byte sub_808AC8C
+ thumb_func_end SetUpFieldMove_Fly
+
+ thumb_func_start sub_808AD0C
+sub_808AD0C: @ 808AD0C
+ push {r4,lr}
+ ldr r4, _0808AD14 @ =0x0201b260
+ b _0808AD24
+ .align 2, 0
+_0808AD14: .4byte 0x0201b260
+_0808AD18:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AD48
+_0808AD24:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AD18
+ ldrb r0, [r4]
+ ldr r1, _0808AD50 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808AD54 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808AD48:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD50: .4byte gUnknown_03005CE0
+_0808AD54: .4byte sub_806AEDC
+ thumb_func_end sub_808AD0C
+
+ thumb_func_start sub_808AD58
+sub_808AD58: @ 808AD58
+ push {lr}
+ ldr r2, _0808AD7C @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _0808AD80 @ =sub_8089CD4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ ldr r0, _0808AD84 @ =sub_808AD0C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD7C: .4byte gPaletteFade
+_0808AD80: .4byte sub_8089CD4
+_0808AD84: .4byte sub_808AD0C
+ thumb_func_end sub_808AD58
+
+ thumb_func_start unref_sub_808AD88
+unref_sub_808AD88: @ 808AD88
+ push {lr}
+ ldr r0, _0808ADA4 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ADA8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADA4: .4byte gUnknown_03005CE0
+_0808ADA8: .4byte gPlayerParty
+ thumb_func_end unref_sub_808AD88
+
+ thumb_func_start sub_808ADAC
+sub_808ADAC: @ 808ADAC
+ push {lr}
+ ldr r0, _0808ADC0 @ =gUnknown_0202FF84
+ ldr r1, _0808ADC4 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ADC0: .4byte gUnknown_0202FF84
+_0808ADC4: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808ADAC
+
+ thumb_func_start SetUpFieldMove_Dive
+SetUpFieldMove_Dive: @ 808ADC8
+ push {lr}
+ bl sub_8068F18
+ ldr r1, _0808ADE0 @ =gUnknown_0202FF84
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0808ADE4
+ movs r0, 0
+ b _0808ADF2
+ .align 2, 0
+_0808ADE0: .4byte gUnknown_0202FF84
+_0808ADE4:
+ ldr r1, _0808ADF8 @ =gUnknown_0300485C
+ ldr r0, _0808ADFC @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AE00 @ =gUnknown_03005CE4
+ ldr r0, _0808AE04 @ =sub_808ADAC
+ str r0, [r1]
+ movs r0, 0x1
+_0808ADF2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADF8: .4byte gUnknown_0300485C
+_0808ADFC: .4byte sub_808AB90
+_0808AE00: .4byte gUnknown_03005CE4
+_0808AE04: .4byte sub_808ADAC
+ thumb_func_end SetUpFieldMove_Dive
+
+ thumb_func_start sub_808AE08
+sub_808AE08: @ 808AE08
+ push {lr}
+ ldr r0, _0808AE1C @ =gUnknown_0202FF84
+ ldr r1, _0808AE20 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2B
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AE1C: .4byte gUnknown_0202FF84
+_0808AE20: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AE08
+
+ thumb_func_start SetUpFieldMove_Waterfall
+SetUpFieldMove_Waterfall: @ 808AE24
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ bl IsPlayerSurfingNorth
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ ldr r1, _0808AE70 @ =gUnknown_0300485C
+ ldr r0, _0808AE74 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AE78 @ =gUnknown_03005CE4
+ ldr r0, _0808AE7C @ =sub_808AE08
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AE82
+ .align 2, 0
+_0808AE70: .4byte gUnknown_0300485C
+_0808AE74: .4byte sub_808AB90
+_0808AE78: .4byte gUnknown_03005CE4
+_0808AE7C: .4byte sub_808AE08
+_0808AE80:
+ movs r0, 0
+_0808AE82:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Waterfall
+
+ thumb_func_start sub_808AE8C
+sub_808AE8C: @ 808AE8C
+ push {r4-r6,lr}
+ ldr r0, _0808AED8 @ =gScriptItemId
+ ldrb r0, [r0]
+ subs r0, 0x21
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_0808AE9A:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AEDC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF10
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AECE
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl CanMonLearnTMHM
+ cmp r0, 0
+ bne _0808AEE0
+_0808AECE:
+ adds r0, r5, 0
+ movs r1, 0x9A
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AED8: .4byte gScriptItemId
+_0808AEDC: .4byte gPlayerParty
+_0808AEE0:
+ ldr r0, _0808AF04 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AF08
+ adds r0, r5, 0
+ movs r1, 0xA8
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AF04: .4byte gScriptItemId
+_0808AF08:
+ adds r0, r5, 0
+ movs r1, 0x8C
+ bl sub_806BC3C
+_0808AF10:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AE9A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AE8C
+
+ thumb_func_start sub_808AF20
+sub_808AF20: @ 808AF20
+ push {r4,r5,lr}
+ movs r5, 0
+_0808AF24:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AF78 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF66
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AF58
+ ldr r0, _0808AF7C @ =gScriptItemId
+ ldrh r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ cmp r0, 0
+ bne _0808AF66
+_0808AF58:
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806BC3C
+_0808AF66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AF24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AF78: .4byte gPlayerParty
+_0808AF7C: .4byte gScriptItemId
+ thumb_func_end sub_808AF20
+
+ thumb_func_start sub_808AF80
+sub_808AF80: @ 808AF80
+ push {r4,r5,lr}
+ ldr r5, _0808AFB0 @ =0x0201b260
+_0808AF84:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B00C
+ ldr r0, _0808AFB4 @ =gUnknown_02038561
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808AFC6
+ ldr r0, _0808AFB8 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AFBC
+ cmp r0, 0x2
+ beq _0808AFC2
+ b _0808AFC6
+ .align 2, 0
+_0808AFB0: .4byte 0x0201b260
+_0808AFB4: .4byte gUnknown_02038561
+_0808AFB8: .4byte gScriptItemId
+_0808AFBC:
+ bl sub_808AE8C
+ b _0808AFC6
+_0808AFC2:
+ bl sub_808AF20
+_0808AFC6:
+ ldr r4, _0808B000 @ =gUnknown_03005CE0
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bhi _0808AFE2
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B004 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AFE6
+_0808AFE2:
+ movs r0, 0
+ strb r0, [r4]
+_0808AFE6:
+ ldrb r0, [r5]
+ ldr r1, _0808B000 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B008 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _0808B018
+ .align 2, 0
+_0808B000: .4byte gUnknown_03005CE0
+_0808B004: .4byte gPlayerParty
+_0808B008: .4byte sub_806AEDC
+_0808B00C:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AF84
+_0808B018:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AF80
+
+ thumb_func_start sub_808B020
+sub_808B020: @ 808B020
+ push {lr}
+ ldr r2, _0808B040 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808B044 @ =gUnknown_02038561
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B0A0
+ cmp r0, 0x1
+ bgt _0808B048
+ cmp r0, 0
+ beq _0808B052
+ b _0808B0AC
+ .align 2, 0
+_0808B040: .4byte gPaletteFade
+_0808B044: .4byte gUnknown_02038561
+_0808B048:
+ cmp r0, 0x3
+ beq _0808B0A0
+ cmp r0, 0x4
+ beq _0808B08C
+ b _0808B0AC
+_0808B052:
+ ldr r0, _0808B070 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B078
+ ldr r2, _0808B074 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x14
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B070: .4byte gScriptItemId
+_0808B074: .4byte sub_808B0C0
+_0808B078:
+ ldr r2, _0808B088 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x3
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B088: .4byte sub_808B0C0
+_0808B08C:
+ ldr r2, _0808B09C @ =sub_808B1EC
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B09C: .4byte sub_808B1EC
+_0808B0A0:
+ ldr r2, _0808B0B8 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x4
+ bl sub_806AF4C
+_0808B0AC:
+ ldr r0, _0808B0BC @ =sub_808AF80
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B0B8: .4byte sub_808B0C0
+_0808B0BC: .4byte sub_808AF80
+ thumb_func_end sub_808B020
+
+ thumb_func_start sub_808B0C0
+sub_808B0C0: @ 808B0C0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B0EC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0808B1CE
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _0808B0F0
+ cmp r0, 0x2
+ beq _0808B184
+ b _0808B1CE
+ .align 2, 0
+_0808B0EC: .4byte gPaletteFade
+_0808B0F0:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B118 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B11C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0808B120
+ movs r0, 0x20
+ bl PlaySE
+ b _0808B1CE
+ .align 2, 0
+_0808B118: .4byte gUnknown_03005CE0
+_0808B11C: .4byte gPlayerParty
+_0808B120:
+ bl sub_806D5A4
+ ldr r5, _0808B16C @ =gUnknown_02038561
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0808B13C
+ ldr r3, _0808B170 @ =gUnknown_03004AE4
+ ldr r0, _0808B174 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B178 @ =sub_808B224
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B13C:
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _0808B154
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0808B174 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B17C @ =sub_808B2EC
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonHeldItem
+_0808B154:
+ ldrb r0, [r5]
+ cmp r0, 0x3
+ bne _0808B1CE
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808B180 @ =sub_808B2B4
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonMail
+ b _0808B1CE
+ .align 2, 0
+_0808B16C: .4byte gUnknown_02038561
+_0808B170: .4byte gUnknown_03004AE4
+_0808B174: .4byte gScriptItemId
+_0808B178: .4byte sub_808B224
+_0808B17C: .4byte sub_808B2EC
+_0808B180: .4byte sub_808B2B4
+_0808B184:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B1D8 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _0808B1DC @ =gUnknown_02038561
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _0808B1BA
+ ldr r0, _0808B1E0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E4 @ =sub_808B25C
+ str r0, [r1]
+_0808B1BA:
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _0808B1CE
+ ldr r0, _0808B1E0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E8 @ =sub_808B2B4
+ str r0, [r1]
+_0808B1CE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B1D8: .4byte gUnknown_03005CE0
+_0808B1DC: .4byte gUnknown_02038561
+_0808B1E0: .4byte gTasks
+_0808B1E4: .4byte sub_808B25C
+_0808B1E8: .4byte sub_808B2B4
+ thumb_func_end sub_808B0C0
+
+ thumb_func_start sub_808B1EC
+sub_808B1EC: @ 808B1EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B214 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B20E
+ ldr r3, _0808B218 @ =gUnknown_03004AE4
+ ldr r0, _0808B21C @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B220 @ =sub_808B224
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B20E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B214: .4byte gPaletteFade
+_0808B218: .4byte gUnknown_03004AE4
+_0808B21C: .4byte gScriptItemId
+_0808B220: .4byte sub_808B224
+ thumb_func_end sub_808B1EC
+
+ thumb_func_start sub_808B224
+sub_808B224: @ 808B224
+ 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, _0808B254 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B258 @ =sub_808B25C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B254: .4byte gTasks
+_0808B258: .4byte sub_808B25C
+ thumb_func_end sub_808B224
+
+ thumb_func_start sub_808B25C
+sub_808B25C: @ 808B25C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B280 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B27A
+ ldr r0, _0808B284 @ =sub_80A5B40
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B27A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B280: .4byte gPaletteFade
+_0808B284: .4byte sub_80A5B40
+ thumb_func_end sub_808B25C
+
+ thumb_func_start sub_808B288
+sub_808B288: @ 808B288
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B2AC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B2A6
+ ldr r0, _0808B2B0 @ =sub_813B6F8
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B2A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2AC: .4byte gPaletteFade
+_0808B2B0: .4byte sub_813B6F8
+ thumb_func_end sub_808B288
+
+ thumb_func_start sub_808B2B4
+sub_808B2B4: @ 808B2B4
+ 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, _0808B2E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B2E8 @ =sub_808B288
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2E4: .4byte gTasks
+_0808B2E8: .4byte sub_808B288
+ thumb_func_end sub_808B2B4
+
+ thumb_func_start sub_808B2EC
+sub_808B2EC: @ 808B2EC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B31C @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0808B328
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B320 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B324 @ =sub_808B338
+ str r1, [r0]
+ b _0808B32E
+ .align 2, 0
+_0808B31C: .4byte gUnknown_0202E8F4
+_0808B320: .4byte gTasks
+_0808B324: .4byte sub_808B338
+_0808B328:
+ adds r0, r4, 0
+ bl sub_808B224
+_0808B32E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B2EC
+
+ thumb_func_start sub_808B338
+sub_808B338: @ 808B338
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808B38C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B384
+ adds r0, r5, 0
+ bl sub_806CA38
+ ldr r1, _0808B390 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B394 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808B39C @ =sub_808B3EC
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808B384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B38C: .4byte gPaletteFade
+_0808B390: .4byte gUnknown_03005CE0
+_0808B394: .4byte gPlayerParty
+_0808B398: .4byte gSaveBlock1 + 0x2B4C
+_0808B39C: .4byte sub_808B3EC
+ thumb_func_end sub_808B338
+
+ thumb_func_start sub_808B3A0
+sub_808B3A0: @ 808B3A0
+ push {r4,lr}
+ ldr r4, _0808B3A8 @ =0x0201b260
+ b _0808B3B8
+ .align 2, 0
+_0808B3A8: .4byte 0x0201b260
+_0808B3AC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B3DC
+_0808B3B8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B3AC
+ ldrb r0, [r4]
+ ldr r1, _0808B3E4 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B3E8 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808B3DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B3E4: .4byte gUnknown_03005CE0
+_0808B3E8: .4byte sub_806AEDC
+ thumb_func_end sub_808B3A0
+
+ thumb_func_start sub_808B3EC
+sub_808B3EC: @ 808B3EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0808B464 @ =gPaletteFade
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B468 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808B480
+ ldr r7, _0808B46C @ =gUnknown_0202E8F8
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808B416
+ movs r1, 0x1
+ bl RemoveBagItem
+_0808B416:
+ ldr r6, _0808B470 @ =gUnknown_03005CE0
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808B474 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl sub_80A2DF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r0, _0808B478 @ =sub_808B25C
+ movs r1, 0x5
+ bl CreateTask
+ mov r0, r8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B47C @ =sub_806AEDC
+ b _0808B48E
+ .align 2, 0
+_0808B464: .4byte gPaletteFade
+_0808B468: .4byte gScriptResult
+_0808B46C: .4byte gUnknown_0202E8F8
+_0808B470: .4byte gUnknown_03005CE0
+_0808B474: .4byte gPlayerParty
+_0808B478: .4byte sub_808B25C
+_0808B47C: .4byte sub_806AEDC
+_0808B480:
+ ldr r2, _0808B49C @ =sub_808B4A4
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808B4A0 @ =sub_808B3A0
+_0808B48E:
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B49C: .4byte sub_808B4A4
+_0808B4A0: .4byte sub_808B3A0
+ thumb_func_end sub_808B3EC
+
+ thumb_func_start sub_808B4A4
+sub_808B4A4: @ 808B4A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B4D8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B4D2
+ ldr r0, _0808B4DC @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ ldr r1, _0808B4E0 @ =gScriptItemId
+ ldrh r1, [r1]
+ movs r2, 0x1
+ bl DisplayGiveHeldItemMessage
+ ldr r1, _0808B4E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B4E8 @ =sub_808B4EC
+ str r1, [r0]
+_0808B4D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B4D8: .4byte gPaletteFade
+_0808B4DC: .4byte gUnknown_03005CE0
+_0808B4E0: .4byte gScriptItemId
+_0808B4E4: .4byte gTasks
+_0808B4E8: .4byte sub_808B4EC
+ thumb_func_end sub_808B4A4
+
+ thumb_func_start sub_808B4EC
+sub_808B4EC: @ 808B4EC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _0808B504 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B500
+ adds r0, r1, 0
+ bl sub_808B224
+_0808B500:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B504: .4byte gUnknown_0202E8F6
+ thumb_func_end sub_808B4EC
+
+ thumb_func_start sub_808B508
+sub_808B508: @ 808B508
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808B224
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B508
+
+ thumb_func_start sub_808B518
+sub_808B518: @ 808B518
+ push {r4,lr}
+ ldr r4, _0808B520 @ =0x0201b260
+ b _0808B530
+ .align 2, 0
+_0808B520: .4byte 0x0201b260
+_0808B524:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B554
+_0808B530:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B524
+ ldrb r0, [r4]
+ ldr r1, _0808B55C @ =gUnknown_020384F0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B560 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808B554:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B55C: .4byte gUnknown_020384F0
+_0808B560: .4byte sub_806AEDC
+ thumb_func_end sub_808B518
+
+ thumb_func_start sub_808B564
+sub_808B564: @ 808B564
+ push {lr}
+ ldr r2, _0808B58C @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _0808B594
+ ldr r2, _0808B590 @ =TaughtMove
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B5A0
+ .align 2, 0
+_0808B58C: .4byte gPaletteFade
+_0808B590: .4byte TaughtMove
+_0808B594:
+ ldr r2, _0808B5AC @ =StopTryingToTeachMove_806F588
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808B5A0:
+ ldr r0, _0808B5B0 @ =sub_808B518
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5AC: .4byte StopTryingToTeachMove_806F588
+_0808B5B0: .4byte sub_808B518
+ thumb_func_end sub_808B564
+
+ thumb_func_start sub_808B5B4
+sub_808B5B4: @ 808B5B4
+ push {lr}
+ ldr r3, _0808B5D8 @ =gUnknown_03005CF0
+ ldr r2, _0808B5DC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _0808B5E0 @ =sub_808B5E4
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5D8: .4byte gUnknown_03005CF0
+_0808B5DC: .4byte gTasks
+_0808B5E0: .4byte sub_808B5E4
+ thumb_func_end sub_808B5B4
+
+ thumb_func_start sub_808B5E4
+sub_808B5E4: @ 808B5E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0808B602
+ ldr r1, _0808B608 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B60C @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0808B602:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B608: .4byte gTasks
+_0808B60C: .4byte gUnknown_03005CF0
+ thumb_func_end sub_808B5E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
new file mode 100644
index 000000000..801c941d1
--- /dev/null
+++ b/asm/pokemon_storage_system.s
@@ -0,0 +1,15417 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8095904
+sub_8095904: @ 8095904
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ str r0, [sp]
+ adds r7, r1, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x3C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r0, [sp]
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r4, 0
+ bne _08095988
+ movs r5, 0
+ cmp r5, r8
+ bcs _08095A2E
+_0809593E:
+ ldr r1, [sp]
+ adds r0, r1, r5
+ ldrb r2, [r0]
+ ldr r0, _08095980 @ =0x0000fff0
+ ands r0, r2
+ lsls r0, 6
+ movs r1, 0xF
+ ands r2, r1
+ lsls r2, 5
+ adds r0, r2
+ ldr r1, _08095984 @ =gFont3LatinGlyphs
+ adds r4, r0, r1
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x10
+ bl CpuSet
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r3, [sp, 0x4]
+ adds r1, r7, r3
+ movs r2, 0x10
+ bl CpuSet
+ adds r7, 0x20
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _0809593E
+ b _08095A2E
+ .align 2, 0
+_08095980: .4byte 0x0000fff0
+_08095984: .4byte gFont3LatinGlyphs
+_08095988:
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x8]
+ lsls r0, r1, 28
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ mov r2, r8
+ lsls r0, r2, 21
+ movs r1, 0
+ lsrs r0, 1
+ str r0, [sp, 0x10]
+_0809599E:
+ movs r5, 0
+ ldr r3, [sp, 0x4]
+ adds r3, r7, r3
+ str r3, [sp, 0x14]
+ adds r0, r1, 0x1
+ str r0, [sp, 0x18]
+ cmp r5, r8
+ bcs _08095A12
+ movs r2, 0xF
+ mov r12, r2
+ lsls r1, 9
+ ldr r0, _08095A40 @ =gFont3LatinGlyphs
+ adds r1, r0
+ mov r10, r1
+_080959BA:
+ ldr r3, [sp]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ ldr r0, _08095A44 @ =0x0000fff0
+ ands r0, r1
+ lsls r0, 6
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 5
+ adds r0, r1
+ mov r3, r10
+ adds r4, r0, r3
+ movs r6, 0
+ adds r5, 0x1
+_080959D6:
+ ldrb r0, [r4]
+ movs r3, 0xF0
+ ands r3, r0
+ mov r2, r12
+ ands r2, r0
+ cmp r3, 0
+ bne _080959E6
+ ldr r3, [sp, 0xC]
+_080959E6:
+ cmp r2, 0
+ bne _080959EC
+ ldr r2, [sp, 0x8]
+_080959EC:
+ mov r0, r9
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r1, [sp, 0x40]
+ adds r0, r1, r0
+ orrs r3, r2
+ strb r3, [r0]
+ adds r4, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1F
+ bls _080959D6
+ lsls r0, r5, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080959BA
+_08095A12:
+ ldr r0, [sp, 0x40]
+ adds r1, r7, 0
+ ldr r3, [sp, 0x10]
+ lsrs r2, r3, 16
+ bl CpuSet
+ ldr r7, [sp, 0x14]
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _0809599E
+_08095A2E:
+ 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
+_08095A40: .4byte gFont3LatinGlyphs
+_08095A44: .4byte 0x0000fff0
+ thumb_func_end sub_8095904
+
+ thumb_func_start unref_sub_8095A48
+unref_sub_8095A48: @ 8095A48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r6, 0
+_08095A60:
+ movs r3, 0
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ beq _08095ACE
+_08095A6C:
+ mov r0, sp
+ adds r0, r3
+ adds r0, 0x8
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bhi _08095AA8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ bne _08095A6C
+ cmp r3, 0
+ beq _08095ACE
+ movs r6, 0x1
+ cmp r3, 0x3
+ bhi _08095AA8
+ movs r2, 0
+_08095A96:
+ adds r0, r3, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ add r0, sp
+ adds r0, 0x8
+ strb r2, [r0]
+ cmp r3, 0x3
+ bls _08095A96
+_08095AA8:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x8
+ movs r0, 0xFF
+ strb r0, [r1]
+ str r7, [sp]
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r5, 0
+ mov r2, r8
+ movs r3, 0x80
+ bl sub_8095904
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ cmp r6, 0
+ beq _08095A60
+_08095ACE:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8095A48
+
+ thumb_func_start sub_8095ADC
+sub_8095ADC: @ 8095ADC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ movs r5, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_08095AF0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08095B20 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r0, r6, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095B0C
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08095B0C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _08095AF0
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095B20: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_8095ADC
+
+ thumb_func_start sub_8095B24
+sub_8095B24: @ 8095B24
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r5, r0, 5
+_08095B36:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08095B54 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r0, r5, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _08095B58
+ lsls r0, r4, 16
+ asrs r0, 16
+ b _08095B66
+ .align 2, 0
+_08095B54: .4byte gPokemonStorage + 0x4
+_08095B58:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _08095B36
+ movs r0, 0x1
+ negs r0, r0
+_08095B66:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095B24
+
+ thumb_func_start sub_8095B6C
+sub_8095B6C: @ 8095B6C
+ push {r4-r6,lr}
+ movs r5, 0
+ movs r6, 0
+_08095B72:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095BB0 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095B9A
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08095B9A
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08095B9A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08095B72
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095BB0: .4byte gPlayerParty
+ thumb_func_end sub_8095B6C
+
+ thumb_func_start CountAlivePartyMonsExceptOne
+CountAlivePartyMonsExceptOne: @ 8095BB4
+ push {r4-r7,lr}
+ lsls r0, 24
+ movs r5, 0
+ movs r6, 0
+ lsrs r7, r0, 24
+_08095BBE:
+ cmp r5, r7
+ beq _08095BF6
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095C0C @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095BF6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08095BF6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08095BF6
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08095BF6:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08095BBE
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C0C: .4byte gPlayerParty
+ thumb_func_end CountAlivePartyMonsExceptOne
+
+ thumb_func_start sub_8095C10
+sub_8095C10: @ 8095C10
+ push {lr}
+ ldr r0, _08095C24 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ bl CountAlivePartyMonsExceptOne
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C24: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_8095C10
+
+ thumb_func_start StorageSystemGetPartySize
+StorageSystemGetPartySize: @ 8095C28
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_08095C2E:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08095C5C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095C46
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08095C46:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x5
+ bls _08095C2E
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C5C: .4byte gPlayerParty
+ thumb_func_end StorageSystemGetPartySize
+
+ thumb_func_start unref_sub_8095C60
+unref_sub_8095C60: @ 8095C60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r2, 16
+ lsrs r4, 16
+ bl StringCopy
+ adds r1, r0, 0
+ adds r5, r4
+ cmp r1, r5
+ bcs _08095C7E
+ movs r0, 0
+_08095C76:
+ strb r0, [r1]
+ adds r1, 0x1
+ cmp r1, r5
+ bcc _08095C76
+_08095C7E:
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8095C60
+
+ thumb_func_start sub_8095C8C
+sub_8095C8C: @ 8095C8C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ adds r7, r3, 0
+ ldr r5, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ ldr r0, [sp, 0x24]
+ mov r9, r0
+ ldr r0, [sp, 0x28]
+ ldr r3, [sp, 0x2C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ mov r0, r9
+ lsls r0, 17
+ mov r9, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r6, r2
+ adds r0, r4, 0
+ muls r0, r3
+ adds r0, r5
+ lsls r0, 1
+ adds r7, r0
+ movs r4, 0
+ cmp r4, r8
+ bcs _08095CFC
+ mov r0, r9
+ lsrs r0, 1
+ mov r9, r0
+ lsls r5, r3, 1
+_08095CE2:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl CpuSet
+ adds r6, 0x40
+ adds r7, r5
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _08095CE2
+_08095CFC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095C8C
+
+ thumb_func_start unref_sub_8095D08
+unref_sub_8095D08: @ 8095D08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r4, r2
+ lsls r3, 17
+ lsrs r0, r3, 16
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r0, r10
+ bcs _08095DB2
+ movs r6, 0x80
+ lsls r6, 5
+ mov r5, sp
+ ldr r7, _08095D74 @ =0x040000d4
+ lsrs r3, 17
+ mov r9, r3
+ mov r1, r9
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r1, r2
+ mov r9, r1
+_08095D4E:
+ adds r3, r4, 0
+ ldr r2, [sp, 0x4]
+ movs r1, 0x40
+ adds r1, r4
+ mov r8, r1
+ adds r0, 0x1
+ mov r12, r0
+ cmp r2, r6
+ bhi _08095D78
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ str r2, [r7]
+ str r4, [r7, 0x4]
+ mov r0, r9
+ str r0, [r7, 0x8]
+ ldr r0, [r7, 0x8]
+ b _08095DA6
+ .align 2, 0
+_08095D74: .4byte 0x040000d4
+_08095D78:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, _08095DC4 @ =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ ldr r0, _08095DC8 @ =0x81000800
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r6
+ subs r2, r6
+ cmp r2, r6
+ bhi _08095D78
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r2, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_08095DA6:
+ mov r4, r8
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r10
+ bcc _08095D4E
+_08095DB2:
+ 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
+_08095DC4: .4byte 0x040000d4
+_08095DC8: .4byte 0x81000800
+ thumb_func_end unref_sub_8095D08
+
+ thumb_func_start StorageSystemGetNextMonIndex
+StorageSystemGetNextMonIndex: @ 8095DCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r0, r3, 24
+ cmp r0, 0
+ beq _08095DE8
+ cmp r0, 0x2
+ bne _08095DEC
+_08095DE8:
+ movs r2, 0x1
+ b _08095DEE
+_08095DEC:
+ ldr r2, _08095E38 @ =0x0000ffff
+_08095DEE:
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08095E44
+ lsls r0, r1, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _08095E90
+ cmp r1, r7
+ bgt _08095E90
+_08095E10:
+ asrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _08095E3C
+ asrs r0, r6, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _08095E90
+ cmp r2, r7
+ ble _08095E10
+ b _08095E90
+ .align 2, 0
+_08095E38: .4byte 0x0000ffff
+_08095E3C:
+ adds r0, r4, 0
+ b _08095E94
+_08095E40:
+ adds r0, r5, 0
+ b _08095E94
+_08095E44:
+ lsls r0, r1, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _08095E90
+ cmp r1, r7
+ bgt _08095E90
+_08095E5C:
+ asrs r5, r0, 16
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095E80
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095E40
+_08095E80:
+ asrs r0, r6, 16
+ adds r0, r5, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _08095E90
+ cmp r2, r7
+ ble _08095E5C
+_08095E90:
+ movs r0, 0x1
+ negs r0, r0
+_08095E94:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end StorageSystemGetNextMonIndex
+
+ thumb_func_start StorageSystemClearMessageWindow
+StorageSystemClearMessageWindow: @ 8095EA0
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ pop {r0}
+ bx r0
+ thumb_func_end StorageSystemClearMessageWindow
+
+ thumb_func_start Task_PokemonStorageSystem
+Task_PokemonStorageSystem: @ 8095EB4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08095ED8 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08095ECE
+ b _080960F4
+_08095ECE:
+ lsls r0, 2
+ ldr r1, _08095EDC @ =_08095EE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08095ED8: .4byte gTasks
+_08095EDC: .4byte _08095EE0
+ .align 2, 0
+_08095EE0:
+ .4byte _08095EF4
+ .4byte _08095F1C
+ .4byte _08095F30
+ .4byte _08096042
+ .4byte _080960DC
+_08095EF4:
+ ldrb r0, [r4, 0xA]
+ bl StorageSystemCreatePrimaryMenu
+ bl MenuDisplayMessageBox
+ ldr r1, _08095F18 @ =gUnknown_083B600C
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ b _08095F28
+ .align 2, 0
+_08095F18: .4byte gUnknown_083B600C
+_08095F1C:
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095F28
+ b _080960F4
+_08095F28:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080960F4
+_08095F30:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08095FC8
+ cmp r1, r0
+ bgt _08095F52
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08095F58
+ b _08095FE8
+_08095F52:
+ cmp r1, 0x3
+ beq _08095FC8
+ b _08095FE8
+_08095F58:
+ ldrh r3, [r4, 0xA]
+ strh r3, [r4, 0xE]
+ ldr r2, _08095FC0 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08095F76
+ subs r0, r3, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08095F76
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+_08095F76:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08095F92
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08095F92
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_08095F92:
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _08095FA2
+ b _080960F4
+_08095FA2:
+ strh r2, [r4, 0xA]
+ bl StorageSystemClearMessageWindow
+ ldr r0, _08095FC4 @ =gUnknown_083B600C
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ b _080960F4
+ .align 2, 0
+_08095FC0: .4byte gMain
+_08095FC4: .4byte gUnknown_083B600C
+_08095FC8:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080960F4
+_08095FE8:
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _08096008
+ bl StorageSystemGetPartySize
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08096008
+ bl StorageSystemClearMessageWindow
+ ldr r0, _08096004 @ =gPCText_PartyFull2
+ b _08096022
+ .align 2, 0
+_08096004: .4byte gPCText_PartyFull2
+_08096008:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08096034
+ bl StorageSystemGetPartySize
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08096034
+ bl StorageSystemClearMessageWindow
+ ldr r0, _08096030 @ =gPCText_OnlyOne
+_08096022:
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ b _080960F4
+ .align 2, 0
+_08096030: .4byte gPCText_OnlyOne
+_08096034:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080960F4
+_08096042:
+ ldr r0, _08096088 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r3, 0x3
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080960B8
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08096090
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0809606A
+ strh r3, [r4, 0xA]
+_0809606A:
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ bl StorageSystemClearMessageWindow
+ ldr r1, _0809608C @ =gUnknown_083B600C
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ b _080960C2
+ .align 2, 0
+_08096088: .4byte gMain
+_0809608C: .4byte gUnknown_083B600C
+_08096090:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080960F4
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080960A8
+ strh r2, [r4, 0xA]
+_080960A8:
+ movs r0, 0x1
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+_080960B8:
+ bl StorageSystemClearMessageWindow
+ ldr r1, _080960D8 @ =gUnknown_083B600C
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+_080960C2:
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080960F4
+ .align 2, 0
+_080960D8: .4byte gUnknown_083B600C
+_080960DC:
+ ldr r0, _080960FC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080960F4
+ ldrb r0, [r4, 0xC]
+ bl task_intro_29
+ adds r0, r5, 0
+ bl DestroyTask
+_080960F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080960FC: .4byte gPaletteFade
+ thumb_func_end Task_PokemonStorageSystem
+
+ thumb_func_start ShowPokemonStorageSystem
+ShowPokemonStorageSystem: @ 8096100
+ push {lr}
+ ldr r0, _08096128 @ =Task_PokemonStorageSystem
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809612C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096128: .4byte Task_PokemonStorageSystem
+_0809612C: .4byte gTasks
+ thumb_func_end ShowPokemonStorageSystem
+
+ thumb_func_start sub_8096130
+sub_8096130: @ 8096130
+ push {lr}
+ ldr r0, _0809615C @ =Task_PokemonStorageSystem
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08096160 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _08096164 @ =gUnknown_02038474
+ ldrb r0, [r0]
+ strh r0, [r1, 0xA]
+ bl pal_fill_black
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809615C: .4byte Task_PokemonStorageSystem
+_08096160: .4byte gTasks
+_08096164: .4byte gUnknown_02038474
+ thumb_func_end sub_8096130
+
+ thumb_func_start StorageSystemCreatePrimaryMenu
+StorageSystemCreatePrimaryMenu: @ 8096168
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _080961A4 @ =gUnknown_083B600C
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ str r4, [sp]
+ movs r0, 0xC
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961A4: .4byte gUnknown_083B600C
+ thumb_func_end StorageSystemCreatePrimaryMenu
+
+ thumb_func_start sub_80961A8
+sub_80961A8: @ 80961A8
+ push {lr}
+ ldr r1, _080961C4 @ =gUnknown_02038474
+ ldr r0, _080961C8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ strb r0, [r1]
+ ldr r1, _080961CC @ =gUnknown_0300485C
+ ldr r0, _080961D0 @ =sub_8096130
+ str r0, [r1]
+ ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961C4: .4byte gUnknown_02038474
+_080961C8: .4byte gUnknown_083B6DB4
+_080961CC: .4byte gUnknown_0300485C
+_080961D0: .4byte sub_8096130
+_080961D4: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80961A8
+
+ thumb_func_start sub_80961D8
+sub_80961D8: @ 80961D8
+ push {r4-r7,lr}
+ ldr r1, _08096258 @ =gPokemonStorage
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ adds r7, r1, 0x4
+_080961E4:
+ movs r4, 0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_080961F0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r7
+ adds r0, r6, r0
+ bl ZeroBoxMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _080961F0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _080961E4
+ movs r5, 0
+_08096214:
+ lsls r0, r5, 3
+ adds r0, r5
+ ldr r6, _0809625C @ =gPokemonStorage + 0x8344
+ adds r0, r6
+ ldr r1, _08096260 @ =gPCText_BOX
+ bl StringCopy
+ adds r4, r5, 0x1
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ lsls r4, 16
+ lsrs r5, r4, 16
+ cmp r5, 0xD
+ bls _08096214
+ movs r5, 0
+ adds r3, r6, 0
+ adds r3, 0x7E
+ movs r2, 0x3
+_0809623E:
+ adds r0, r5, r3
+ adds r1, r5, 0
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _0809623E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096258: .4byte gPokemonStorage
+_0809625C: .4byte gPokemonStorage + 0x8344
+_08096260: .4byte gPCText_BOX
+ thumb_func_end sub_80961D8
+
+ thumb_func_start sub_8096264
+sub_8096264: @ 8096264
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x20
+ mov r8, r0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r9, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080962F4 @ =gBoxSelectionPopupPalette
+ str r0, [sp, 0x18]
+ ldr r1, _080962F8 @ =0xffff0000
+ add r5, sp, 0x18
+ ldr r0, [r5, 0x4]
+ ands r0, r1
+ orrs r0, r6
+ str r0, [r5, 0x4]
+ mov r1, sp
+ ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r1, 0x4]
+ strh r4, [r1, 0x6]
+ ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles
+ str r0, [sp, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ strh r0, [r1, 0xC]
+ adds r0, r4, 0x1
+ strh r0, [r1, 0xE]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ adds r0, r5, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ bl LoadSpriteSheets
+ ldr r0, _08096304 @ =gUnknown_02038478
+ mov r1, r8
+ str r1, [r0]
+ movs r0, 0x90
+ lsls r0, 2
+ add r0, r8
+ strh r4, [r0]
+ ldr r0, _08096308 @ =0x00000242
+ add r0, r8
+ strh r6, [r0]
+ ldr r0, _0809630C @ =0x0000023e
+ add r8, r0
+ mov r0, r9
+ mov r1, r8
+ strb r0, [r1]
+ add sp, 0x20
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080962F4: .4byte gBoxSelectionPopupPalette
+_080962F8: .4byte 0xffff0000
+_080962FC: .4byte gBoxSelectionPopupCenterTiles
+_08096300: .4byte gBoxSelectionPopupSidesTiles
+_08096304: .4byte gUnknown_02038478
+_08096308: .4byte 0x00000242
+_0809630C: .4byte 0x0000023e
+ thumb_func_end sub_8096264
+
+ thumb_func_start sub_8096310
+sub_8096310: @ 8096310
+ push {r4,r5,lr}
+ ldr r4, _08096344 @ =gUnknown_02038478
+ ldr r0, [r4]
+ ldr r1, _08096348 @ =0x00000242
+ adds r0, r1
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ movs r5, 0x90
+ lsls r5, 2
+ adds r0, r5
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096344: .4byte gUnknown_02038478
+_08096348: .4byte 0x00000242
+ thumb_func_end sub_8096310
+
+ thumb_func_start sub_809634C
+sub_809634C: @ 809634C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80963D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809634C
+
+ thumb_func_start sub_809635C
+sub_809635C: @ 809635C
+ push {lr}
+ bl sub_809658C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809635C
+
+ thumb_func_start sub_8096368
+sub_8096368: @ 8096368
+ push {lr}
+ ldr r0, _08096380 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08096384
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xC9
+ b _080963CC
+ .align 2, 0
+_08096380: .4byte gMain
+_08096384:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080963A4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080963A0 @ =gUnknown_02038478
+ ldr r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ b _080963CC
+ .align 2, 0
+_080963A0: .4byte gUnknown_02038478
+_080963A4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080963B8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_809662C
+ b _080963CA
+_080963B8:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080963CA
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80965F8
+_080963CA:
+ movs r0, 0xC8
+_080963CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096368
+
+ thumb_func_start sub_80963D0
+sub_80963D0: @ 80963D0
+ push {r4-r6,lr}
+ sub sp, 0x3C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x34]
+ str r1, [sp, 0x38]
+ movs r1, 0xC0
+ lsls r1, 24
+ ldr r0, [sp, 0x34]
+ orrs r0, r1
+ str r0, [sp, 0x34]
+ ldr r1, _08096564 @ =0xffff0fff
+ add r4, sp, 0x34
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ add r1, sp, 0x1C
+ movs r2, 0
+ strh r2, [r1]
+ mov r0, sp
+ adds r0, 0x1E
+ strh r2, [r0]
+ str r4, [sp, 0x20]
+ ldr r0, _08096568 @ =gDummySpriteAnimTable
+ str r0, [sp, 0x24]
+ str r2, [sp, 0x28]
+ ldr r0, _0809656C @ =gDummySpriteAffineAnimTable
+ str r0, [sp, 0x2C]
+ ldr r0, _08096570 @ =SpriteCallbackDummy
+ str r0, [sp, 0x30]
+ add r0, sp, 0x4
+ movs r2, 0x18
+ bl memcpy
+ ldr r6, _08096574 @ =gUnknown_02038478
+ ldr r0, [r6]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ strb r5, [r0]
+ add r2, sp, 0x4
+ ldr r1, [r6]
+ movs r5, 0x90
+ lsls r5, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r3, _08096578 @ =0x00000242
+ adds r1, r3
+ ldrh r0, [r1]
+ strh r0, [r2, 0x2]
+ adds r0, r2, 0
+ movs r1, 0xA0
+ movs r2, 0x60
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809657C @ =gSprites
+ adds r0, r1
+ str r0, [r3]
+ ldrb r2, [r4, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ add r1, sp, 0x4
+ adds r3, r5
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r0, _08096580 @ =gSpriteAnimTable_83B604C
+ str r0, [sp, 0xC]
+ movs r4, 0
+_08096488:
+ ldr r0, [r6]
+ ldr r1, _08096584 @ =0x0000023e
+ adds r0, r1
+ ldrb r3, [r0]
+ add r0, sp, 0x4
+ movs r1, 0x7C
+ movs r2, 0x50
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [r6]
+ lsls r3, r4, 2
+ adds r2, 0x4
+ adds r2, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809657C @ =gSprites
+ adds r1, r0, r1
+ str r1, [r2]
+ movs r5, 0
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _080964C2
+ movs r0, 0xC4
+ strh r0, [r1, 0x20]
+ movs r5, 0x2
+_080964C2:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080964E6
+ ldr r1, [r6]
+ adds r1, 0x4
+ adds r1, r3
+ ldr r2, [r1]
+ movs r0, 0x70
+ strh r0, [r2, 0x22]
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080964E6:
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08096488
+ movs r4, 0
+ ldr r5, _08096574 @ =gUnknown_02038478
+_08096504:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 19
+ movs r3, 0xF8
+ lsls r3, 15
+ adds r0, r3
+ lsrs r0, 16
+ lsls r2, r4, 24
+ lsrs r2, 24
+ ldr r1, [r5]
+ ldr r3, _08096584 @ =0x0000023e
+ adds r1, r3
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0x58
+ movs r3, 0
+ bl sub_809A9A0
+ adds r2, r0, 0
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, 0x20
+ adds r0, r1
+ str r2, [r0]
+ cmp r2, 0
+ beq _0809654C
+ movs r1, 0x1
+ cmp r4, 0
+ bne _08096544
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_08096544:
+ strh r1, [r2, 0x2E]
+ ldr r1, [r0]
+ ldr r0, _08096588 @ =sub_8096784
+ str r0, [r1, 0x1C]
+_0809654C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08096504
+ bl sub_809665C
+ add sp, 0x3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096564: .4byte 0xffff0fff
+_08096568: .4byte gDummySpriteAnimTable
+_0809656C: .4byte gDummySpriteAffineAnimTable
+_08096570: .4byte SpriteCallbackDummy
+_08096574: .4byte gUnknown_02038478
+_08096578: .4byte 0x00000242
+_0809657C: .4byte gSprites
+_08096580: .4byte gSpriteAnimTable_83B604C
+_08096584: .4byte 0x0000023e
+_08096588: .4byte sub_8096784
+ thumb_func_end sub_80963D0
+
+ thumb_func_start sub_809658C
+sub_809658C: @ 809658C
+ push {r4-r6,lr}
+ ldr r4, _080965F4 @ =gUnknown_02038478
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965A2
+ bl DestroySprite
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_080965A2:
+ movs r5, 0
+ adds r6, r4, 0
+_080965A6:
+ ldr r0, [r6]
+ lsls r4, r5, 2
+ adds r0, 0x4
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965C2
+ bl DestroySprite
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080965C2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080965A6
+ movs r5, 0
+_080965CE:
+ ldr r0, _080965F4 @ =gUnknown_02038478
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965E2
+ bl DestroySprite
+_080965E2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080965CE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080965F4: .4byte gUnknown_02038478
+ thumb_func_end sub_809658C
+
+ thumb_func_start sub_80965F8
+sub_80965F8: @ 80965F8
+ push {lr}
+ ldr r2, _08096628 @ =gUnknown_02038478
+ ldr r1, [r2]
+ movs r0, 0x8F
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bls _0809661E
+ ldr r0, [r2]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0809661E:
+ bl sub_809665C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096628: .4byte gUnknown_02038478
+ thumb_func_end sub_80965F8
+
+ thumb_func_start sub_809662C
+sub_809662C: @ 809662C
+ push {lr}
+ ldr r0, _08096644 @ =gUnknown_02038478
+ ldr r2, [r0]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096648
+ subs r1, r0, 0x1
+ b _0809664A
+ .align 2, 0
+_08096644: .4byte gUnknown_02038478
+_08096648:
+ movs r1, 0xD
+_0809664A:
+ movs r3, 0x8F
+ lsls r3, 2
+ adds r0, r2, r3
+ strb r1, [r0]
+ bl sub_809665C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809662C
+
+ thumb_func_start sub_809665C
+sub_809665C: @ 809665C
+ push {r4-r7,lr}
+ ldr r5, _080966B4 @ =gUnknown_02038478
+ ldr r0, [r5]
+ movs r4, 0x8F
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8095ADC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080966B8 @ =gStringVar1
+ movs r6, 0xFC
+ strb r6, [r2]
+ movs r0, 0x4
+ strb r0, [r2, 0x1]
+ movs r0, 0xF
+ strb r0, [r2, 0x2]
+ movs r0, 0x1
+ strb r0, [r2, 0x3]
+ movs r0, 0xE
+ strb r0, [r2, 0x4]
+ adds r2, 0x5
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ ldr r0, _080966BC @ =gPokemonStorage + 0x8344
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFE
+ strb r0, [r2]
+ strb r6, [r2, 0x1]
+ movs r0, 0x11
+ strb r0, [r2, 0x2]
+ cmp r7, 0x9
+ bhi _080966C0
+ movs r0, 0x28
+ b _080966C2
+ .align 2, 0
+_080966B4: .4byte gUnknown_02038478
+_080966B8: .4byte gStringVar1
+_080966BC: .4byte gPokemonStorage + 0x8344
+_080966C0:
+ movs r0, 0x22
+_080966C2:
+ strb r0, [r2, 0x3]
+ adds r2, 0x4
+ adds r0, r2, 0
+ adds r1, r7, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ movs r0, 0xA4
+ strb r0, [r2, 0x1]
+ movs r0, 0xA1
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080966F0 @ =gStringVar1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80966F4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080966F0: .4byte gStringVar1
+ thumb_func_end sub_809665C
+
+ thumb_func_start sub_80966F4
+sub_80966F4: @ 80966F4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08096764 @ =gUnknown_02038478
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ bl GetSpriteTileStartByTag
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 11
+ lsls r4, 8
+ ldr r2, _08096768 @ =0x06010000
+ adds r4, r2
+ adds r6, r4
+ lsls r5, 5
+ adds r6, r5
+ ldr r0, _0809676C @ =gUnknown_083B6DB8
+ ldr r5, [r0]
+ mov r1, sp
+ ldr r2, _08096770 @ =0x00001111
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _08096774 @ =0x040000d4
+ str r1, [r4]
+ str r5, [r4, 0x4]
+ ldr r0, _08096778 @ =0x81000200
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0809677C @ =gWindowConfig_81E6D38
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8004E3C
+ str r5, [r4]
+ str r6, [r4, 0x4]
+ ldr r0, _08096780 @ =0x80000200
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096764: .4byte gUnknown_02038478
+_08096768: .4byte 0x06010000
+_0809676C: .4byte gUnknown_083B6DB8
+_08096770: .4byte 0x00001111
+_08096774: .4byte 0x040000d4
+_08096778: .4byte 0x81000200
+_0809677C: .4byte gWindowConfig_81E6D38
+_08096780: .4byte 0x80000200
+ thumb_func_end sub_80966F4
+
+ thumb_func_start sub_8096784
+sub_8096784: @ 8096784
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080967B4
+ strh r2, [r1, 0x30]
+ ldrh r0, [r1, 0x2E]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ ldrh r0, [r1, 0x32]
+ adds r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080967B4
+ strh r2, [r1, 0x32]
+ strh r2, [r1, 0x24]
+_080967B4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096784
+
+ thumb_func_start task_intro_29
+task_intro_29: @ 80967B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080967D0 @ =gUnknown_0203847D
+ strb r0, [r1]
+ ldr r1, _080967D4 @ =0x02000000
+ strb r0, [r1, 0x5]
+ ldr r0, _080967D8 @ =sub_8096884
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080967D0: .4byte gUnknown_0203847D
+_080967D4: .4byte 0x02000000
+_080967D8: .4byte sub_8096884
+ thumb_func_end task_intro_29
+
+ thumb_func_start sub_80967DC
+sub_80967DC: @ 80967DC
+ ldr r0, _08096800 @ =REG_BG0HOFS
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08096800: .4byte REG_BG0HOFS
+ thumb_func_end sub_80967DC
+
+ thumb_func_start sub_8096804
+sub_8096804: @ 8096804
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r1, _0809683C @ =gReservedSpriteTileCount
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08096840 @ =0x02000020
+ adds r1, r0, 0
+ adds r1, 0x8
+ movs r2, 0x8
+ bl sub_809CFDC
+ ldr r1, _08096844 @ =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809683C: .4byte gReservedSpriteTileCount
+_08096840: .4byte 0x02000020
+_08096844: .4byte gKeyRepeatStartDelay
+ thumb_func_end sub_8096804
+
+ thumb_func_start sub_8096848
+sub_8096848: @ 8096848
+ push {lr}
+ bl sub_809B0D4
+ ldr r2, _08096868 @ =gUnknown_0203847C
+ movs r1, 0
+ ldr r0, _0809686C @ =0x02000000
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809685C
+ movs r1, 0x1
+_0809685C:
+ strb r1, [r2]
+ ldr r1, _08096870 @ =gUnknown_0203847E
+ movs r0, 0
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096868: .4byte gUnknown_0203847C
+_0809686C: .4byte 0x02000000
+_08096870: .4byte gUnknown_0203847E
+ thumb_func_end sub_8096848
+
+ thumb_func_start sub_8096874
+sub_8096874: @ 8096874
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_8096874
+
+ thumb_func_start sub_8096884
+sub_8096884: @ 8096884
+ push {lr}
+ ldr r0, _080968A0 @ =gMain
+ ldr r1, _080968A4 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _08096894
+ b _08096986
+_08096894:
+ lsls r0, 2
+ ldr r1, _080968A8 @ =_080968AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080968A0: .4byte gMain
+_080968A4: .4byte 0x0000043c
+_080968A8: .4byte _080968AC
+ .align 2, 0
+_080968AC:
+ .4byte _080968D4
+ .4byte _080968E8
+ .4byte _080968F4
+ .4byte _08096904
+ .4byte _0809690E
+ .4byte _08096918
+ .4byte _0809691E
+ .4byte _08096924
+ .4byte _0809692A
+ .4byte _08096964
+_080968D4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_8096804
+ b _0809697A
+_080968E8:
+ ldr r0, _080968F0 @ =gWindowConfig_81E6D00
+ bl SetUpWindowConfig
+ b _0809697A
+ .align 2, 0
+_080968F0: .4byte gWindowConfig_81E6D00
+_080968F4:
+ ldr r0, _08096900 @ =gWindowConfig_81E6D00
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _0809697A
+ .align 2, 0
+_08096900: .4byte gWindowConfig_81E6D00
+_08096904:
+ bl sub_80967DC
+ bl sub_8096848
+ b _0809697A
+_0809690E:
+ bl sub_8098B48
+ bl sub_809AA24
+ b _0809697A
+_08096918:
+ bl sub_8097DE0
+ b _0809697A
+_0809691E:
+ bl sub_8097E70
+ b _0809697A
+_08096924:
+ bl sub_8098400
+ b _0809697A
+_0809692A:
+ ldr r0, _08096950 @ =gPokemonStorage
+ ldrb r0, [r0]
+ bl sub_8099BF8
+ ldr r2, _08096954 @ =0x02000000
+ ldr r1, _08096958 @ =0x000012bc
+ adds r0, r2, r1
+ movs r1, 0xA
+ strh r1, [r0]
+ ldr r1, _0809695C @ =0x000012be
+ adds r2, r1
+ ldr r1, _08096960 @ =0x0000dacb
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ b _0809697A
+ .align 2, 0
+_08096950: .4byte gPokemonStorage
+_08096954: .4byte 0x02000000
+_08096958: .4byte 0x000012bc
+_0809695C: .4byte 0x000012be
+_08096960: .4byte 0x0000dacb
+_08096964:
+ bl sub_8096874
+ ldr r0, _0809698C @ =sub_8096BF0
+ bl sub_8096BE0
+ ldr r0, _08096990 @ =sub_8096B38
+ bl SetMainCallback2
+ ldr r0, _08096994 @ =sub_8096AFC
+ bl SetVBlankCallback
+_0809697A:
+ ldr r1, _08096998 @ =gMain
+ ldr r0, _0809699C @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08096986:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809698C: .4byte sub_8096BF0
+_08096990: .4byte sub_8096B38
+_08096994: .4byte sub_8096AFC
+_08096998: .4byte gMain
+_0809699C: .4byte 0x0000043c
+ thumb_func_end sub_8096884
+
+ thumb_func_start sub_80969A0
+sub_80969A0: @ 80969A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080969BC @ =gMain
+ ldr r1, _080969C0 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _080969B2
+ b _08096AE4
+_080969B2:
+ lsls r0, 2
+ ldr r1, _080969C4 @ =_080969C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080969BC: .4byte gMain
+_080969C0: .4byte 0x0000043c
+_080969C4: .4byte _080969C8
+ .align 2, 0
+_080969C8:
+ .4byte _080969F4
+ .4byte _08096A34
+ .4byte _08096A40
+ .4byte _08096A50
+ .4byte _08096A56
+ .4byte _08096A60
+ .4byte _08096A66
+ .4byte _08096A6C
+ .4byte _08096A72
+ .4byte _08096AAC
+ .4byte _08096AC8
+_080969F4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08096A28 @ =0x02000000
+ ldr r0, _08096A2C @ =gUnknown_0203847D
+ ldrb r0, [r0]
+ strb r0, [r1, 0x5]
+ bl sub_8096804
+ ldr r4, _08096A30 @ =gUnknown_0203847F
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _08096A1A
+ bl sub_809BBC0
+_08096A1A:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08096AD8
+ bl sub_809BD14
+ b _08096AD8
+ .align 2, 0
+_08096A28: .4byte 0x02000000
+_08096A2C: .4byte gUnknown_0203847D
+_08096A30: .4byte gUnknown_0203847F
+_08096A34:
+ ldr r0, _08096A3C @ =gWindowConfig_81E6D00
+ bl SetUpWindowConfig
+ b _08096AD8
+ .align 2, 0
+_08096A3C: .4byte gWindowConfig_81E6D00
+_08096A40:
+ ldr r0, _08096A4C @ =gWindowConfig_81E6D00
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _08096AD8
+ .align 2, 0
+_08096A4C: .4byte gWindowConfig_81E6D00
+_08096A50:
+ bl sub_80967DC
+ b _08096AD8
+_08096A56:
+ bl sub_8098B48
+ bl sub_809AA98
+ b _08096AD8
+_08096A60:
+ bl sub_8097DE0
+ b _08096AD8
+_08096A66:
+ bl sub_8097E70
+ b _08096AD8
+_08096A6C:
+ bl sub_8098400
+ b _08096AD8
+_08096A72:
+ ldr r0, _08096A98 @ =gPokemonStorage
+ ldrb r0, [r0]
+ bl sub_8099BF8
+ ldr r2, _08096A9C @ =0x02000000
+ ldr r1, _08096AA0 @ =0x000012bc
+ adds r0, r2, r1
+ movs r1, 0xA
+ strh r1, [r0]
+ ldr r1, _08096AA4 @ =0x000012be
+ adds r2, r1
+ ldr r1, _08096AA8 @ =0x0000dacb
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ b _08096AD8
+ .align 2, 0
+_08096A98: .4byte gPokemonStorage
+_08096A9C: .4byte 0x02000000
+_08096AA0: .4byte 0x000012bc
+_08096AA4: .4byte 0x000012be
+_08096AA8: .4byte 0x0000dacb
+_08096AAC:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08096AC4 @ =sub_8096AFC
+ bl SetVBlankCallback
+ b _08096AD8
+ .align 2, 0
+_08096AC4: .4byte sub_8096AFC
+_08096AC8:
+ bl sub_8096874
+ ldr r0, _08096AEC @ =sub_8096C68
+ bl sub_8096BE0
+ ldr r0, _08096AF0 @ =sub_8096B38
+ bl SetMainCallback2
+_08096AD8:
+ ldr r1, _08096AF4 @ =gMain
+ ldr r0, _08096AF8 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08096AE4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096AEC: .4byte sub_8096C68
+_08096AF0: .4byte sub_8096B38
+_08096AF4: .4byte gMain
+_08096AF8: .4byte 0x0000043c
+ thumb_func_end sub_80969A0
+
+ thumb_func_start sub_8096AFC
+sub_8096AFC: @ 8096AFC
+ push {lr}
+ ldr r2, _08096B2C @ =REG_BG2HOFS
+ ldr r1, _08096B30 @ =0x02000000
+ ldr r3, _08096B34 @ =0x000008b4
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, 0x4
+ ldrh r0, [r1, 0xA]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_809CFF0
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096B2C: .4byte REG_BG2HOFS
+_08096B30: .4byte 0x02000000
+_08096B34: .4byte 0x000008b4
+ thumb_func_end sub_8096AFC
+
+ thumb_func_start sub_8096B38
+sub_8096B38: @ 8096B38
+ push {lr}
+ ldr r0, _08096B58 @ =0x02000000
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_8097E44
+ bl sub_8098734
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096B58: .4byte 0x02000000
+ thumb_func_end sub_8096B38
+
+ thumb_func_start sub_8096B5C
+sub_8096B5C: @ 8096B5C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _08096B70 @ =0x02000000
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ beq _08096B74
+ cmp r0, 0x1
+ beq _08096BAC
+ b _08096BCC
+ .align 2, 0
+_08096B70: .4byte 0x02000000
+_08096B74:
+ ldr r1, _08096B98 @ =0x00002690
+ adds r0, r4, r1
+ ldr r0, [r0]
+ ldr r2, _08096B9C @ =0x0000268d
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ ldr r3, _08096BA0 @ =0x0000268c
+ adds r2, r4, r3
+ ldrb r2, [r2]
+ ldr r3, _08096BA4 @ =sub_80969A0
+ ldr r5, _08096BA8 @ =0x0000268e
+ adds r4, r5
+ ldrb r4, [r4]
+ str r4, [sp]
+ bl ShowPokemonSummaryScreen
+ b _08096BCC
+ .align 2, 0
+_08096B98: .4byte 0x00002690
+_08096B9C: .4byte 0x0000268d
+_08096BA0: .4byte 0x0000268c
+_08096BA4: .4byte sub_80969A0
+_08096BA8: .4byte 0x0000268e
+_08096BAC:
+ ldr r0, _08096BD4 @ =gPokemonStorage
+ ldrb r2, [r0]
+ lsls r1, r2, 3
+ adds r1, r2
+ ldr r2, _08096BD8 @ =0x00008344
+ adds r0, r2
+ adds r1, r0
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _08096BDC @ =sub_80969A0
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl DoNamingScreen
+_08096BCC:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096BD4: .4byte gPokemonStorage
+_08096BD8: .4byte 0x00008344
+_08096BDC: .4byte sub_80969A0
+ thumb_func_end sub_8096B5C
+
+ thumb_func_start sub_8096BE0
+sub_8096BE0: @ 8096BE0
+ ldr r1, _08096BEC @ =0x02000000
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_08096BEC: .4byte 0x02000000
+ thumb_func_end sub_8096BE0
+
+ thumb_func_start sub_8096BF0
+sub_8096BF0: @ 8096BF0
+ push {r4,lr}
+ ldr r4, _08096C04 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x1
+ beq _08096C16
+ cmp r0, 0x1
+ bgt _08096C08
+ cmp r0, 0
+ beq _08096C0E
+ b _08096C5C
+ .align 2, 0
+_08096C04: .4byte 0x02000000
+_08096C08:
+ cmp r0, 0x2
+ beq _08096C4C
+ b _08096C5C
+_08096C0E:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ b _08096C38
+_08096C16:
+ movs r0, 0x2
+ bl PlaySE
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08096C48 @ =0x0000dad0
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5CD4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+_08096C38:
+ movs r2, 0
+ bl BlendPalettes
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08096C5C
+ .align 2, 0
+_08096C48: .4byte 0x0000dad0
+_08096C4C:
+ bl sub_80C5DCC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096C5C
+ ldr r0, _08096C64 @ =sub_8096C84
+ bl sub_8096BE0
+_08096C5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C64: .4byte sub_8096C84
+ thumb_func_end sub_8096BF0
+
+ thumb_func_start sub_8096C68
+sub_8096C68: @ 8096C68
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096C7A
+ ldr r0, _08096C80 @ =sub_8096C84
+ bl sub_8096BE0
+_08096C7A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C80: .4byte sub_8096C84
+ thumb_func_end sub_8096C68
+
+ thumb_func_start sub_8096C84
+sub_8096C84: @ 8096C84
+ push {r4,lr}
+ ldr r0, _08096C9C @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x6
+ bls _08096C90
+ b _08096FBA
+_08096C90:
+ lsls r0, 2
+ ldr r1, _08096CA0 @ =_08096CA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096C9C: .4byte 0x02000000
+_08096CA0: .4byte _08096CA4
+ .align 2, 0
+_08096CA4:
+ .4byte _08096CC0
+ .4byte _08096EE0
+ .4byte _08096F1C
+ .4byte _08096F60
+ .4byte _08096F80
+ .4byte _08096F8A
+ .4byte _08096FA4
+_08096CC0:
+ bl sub_809CA40
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0xF
+ bls _08096CD0
+ b _08096FBA
+_08096CD0:
+ lsls r0, 2
+ ldr r1, _08096CDC @ =_08096CE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096CDC: .4byte _08096CE0
+ .align 2, 0
+_08096CE0:
+ .4byte _08096D20
+ .4byte _08096FBA
+ .4byte _08096FBA
+ .4byte _08096D94
+ .4byte _08096D34
+ .4byte _08096D5C
+ .4byte _08096DAC
+ .4byte _08096DC0
+ .4byte _08096DD4
+ .4byte _08096DFC
+ .4byte _08096E30
+ .4byte _08096EB8
+ .4byte _08096E70
+ .4byte _08096E8C
+ .4byte _08096ECC
+ .4byte _08096DA0
+_08096D20:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08096D30 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096D30: .4byte 0x02000000
+_08096D34:
+ ldr r4, _08096D48 @ =0x02000000
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ beq _08096D4C
+ movs r0, 0x10
+ bl sub_8098898
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096D48: .4byte 0x02000000
+_08096D4C:
+ bl sub_809B0D4
+ ldr r0, _08096D58 @ =sub_8096FC8
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D58: .4byte sub_8096FC8
+_08096D5C:
+ ldr r4, _08096D88 @ =0x02000000
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ beq _08096D66
+ b _08096FBA
+_08096D66:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096D80
+ ldr r1, _08096D8C @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E4C
+_08096D80:
+ ldr r0, _08096D90 @ =sub_8097004
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D88: .4byte 0x02000000
+_08096D8C: .4byte 0x000011f2
+_08096D90: .4byte sub_8097004
+_08096D94:
+ ldr r0, _08096D9C @ =sub_8097BA0
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D9C: .4byte sub_8097BA0
+_08096DA0:
+ ldr r0, _08096DA8 @ =sub_8097CC0
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DA8: .4byte sub_8097CC0
+_08096DAC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096DBC @ =sub_809789C
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DBC: .4byte sub_809789C
+_08096DC0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096DD0 @ =sub_8097078
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DD0: .4byte sub_8097078
+_08096DD4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08096DF0 @ =0x02000000
+ ldr r0, _08096DF4 @ =gPokemonStorage
+ ldrb r0, [r0]
+ adds r0, 0x1
+ ldr r2, _08096DF8 @ =0x000008b2
+ adds r1, r4, r2
+ strh r0, [r1]
+ cmp r0, 0xD
+ ble _08096E18
+ movs r0, 0
+ b _08096E16
+ .align 2, 0
+_08096DF0: .4byte 0x02000000
+_08096DF4: .4byte gPokemonStorage
+_08096DF8: .4byte 0x000008b2
+_08096DFC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08096E24 @ =0x02000000
+ ldr r0, _08096E28 @ =gPokemonStorage
+ ldrb r0, [r0]
+ subs r0, 0x1
+ ldr r2, _08096E2C @ =0x000008b2
+ adds r1, r4, r2
+ strh r0, [r1]
+ cmp r0, 0
+ bge _08096E18
+ movs r0, 0xD
+_08096E16:
+ strh r0, [r1]
+_08096E18:
+ ldrb r0, [r1]
+ bl sub_8099C70
+ movs r0, 0x2
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096E24: .4byte 0x02000000
+_08096E28: .4byte gPokemonStorage
+_08096E2C: .4byte 0x000008b2
+_08096E30:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E96
+ ldr r4, _08096E54 @ =0x02000000
+ ldr r1, _08096E58 @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096E5C
+_08096E4C:
+ movs r0, 0x5
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096E54: .4byte 0x02000000
+_08096E58: .4byte 0x000011f2
+_08096E5C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096E6C @ =sub_809746C
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096E6C: .4byte sub_809746C
+_08096E70:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E96
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096E88 @ =sub_80972A8
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096E88: .4byte sub_80972A8
+_08096E8C:
+ bl sub_809BEBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096EA4
+_08096E96:
+ ldr r1, _08096EA0 @ =0x02000000
+ movs r0, 0x4
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096EA0: .4byte 0x02000000
+_08096EA4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EB4 @ =c3_0808DC50
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EB4: .4byte c3_0808DC50
+_08096EB8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EC8 @ =sub_8097390
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EC8: .4byte sub_8097390
+_08096ECC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EDC @ =sub_80972FC
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EDC: .4byte sub_80972FC
+_08096EE0:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FBA
+ bl sub_809BF48
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096EFA
+ bl sub_80986E8
+ b _08096EFE
+_08096EFA:
+ bl sub_8098710
+_08096EFE:
+ ldr r4, _08096F14 @ =0x02000000
+ ldr r2, _08096F18 @ =0x000011f6
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096F0E
+ bl BoxSetMosaic
+_08096F0E:
+ movs r0, 0
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096F14: .4byte 0x02000000
+_08096F18: .4byte 0x000011f6
+_08096F1C:
+ bl sub_8099D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FBA
+ ldr r1, _08096F50 @ =gPokemonStorage
+ ldr r0, _08096F54 @ =0x02000000
+ ldr r2, _08096F58 @ =0x000008b2
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08096F5C @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096F70
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096F70
+ bl sub_809B440
+ bl BoxSetMosaic
+ b _08096F70
+ .align 2, 0
+_08096F50: .4byte gPokemonStorage
+_08096F54: .4byte 0x02000000
+_08096F58: .4byte 0x000008b2
+_08096F5C: .4byte gUnknown_0203847C
+_08096F60:
+ ldr r0, _08096F78 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08096FBA
+ bl sub_8098A5C
+_08096F70:
+ ldr r1, _08096F7C @ =0x02000000
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096F78: .4byte gMain
+_08096F7C: .4byte 0x02000000
+_08096F80:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _08096F92
+_08096F8A:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_08096F92:
+ bl sub_8098898
+ ldr r1, _08096FA0 @ =0x02000000
+ movs r0, 0x6
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096FA0: .4byte 0x02000000
+_08096FA4:
+ ldr r0, _08096FC0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08096FBA
+ bl sub_8098A5C
+ ldr r0, _08096FC4 @ =sub_8096C84
+ bl sub_8096BE0
+_08096FBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096FC0: .4byte gMain
+_08096FC4: .4byte sub_8096C84
+ thumb_func_end sub_8096C84
+
+ thumb_func_start sub_8096FC8
+sub_8096FC8: @ 8096FC8
+ push {r4,lr}
+ ldr r4, _08096FD8 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08096FDC
+ cmp r0, 0x1
+ beq _08096FE8
+ b _08096FF8
+ .align 2, 0
+_08096FD8: .4byte 0x02000000
+_08096FDC:
+ bl sub_809880C
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08096FF8
+_08096FE8:
+ bl sub_8098830
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FF8
+ ldr r0, _08097000 @ =sub_8096C84
+ bl sub_8096BE0
+_08096FF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097000: .4byte sub_8096C84
+ thumb_func_end sub_8096FC8
+
+ thumb_func_start sub_8097004
+sub_8097004: @ 8097004
+ push {r4,lr}
+ ldr r4, _08097018 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x1
+ beq _0809702E
+ cmp r0, 0x1
+ bgt _0809701C
+ cmp r0, 0
+ beq _08097022
+ b _0809706A
+ .align 2, 0
+_08097018: .4byte 0x02000000
+_0809701C:
+ cmp r0, 0x2
+ beq _0809704C
+ b _0809706A
+_08097022:
+ movs r0, 0x5
+ bl PlaySE
+ bl add_to_c3_somehow
+ b _08097044
+_0809702E:
+ bl sub_80985CC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809706A
+ bl sub_809B0F4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809B0C0
+_08097044:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809706A
+_0809704C:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809706A
+ ldr r1, _08097070 @ =0x000011f6
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097064
+ bl BoxSetMosaic
+_08097064:
+ ldr r0, _08097074 @ =sub_8096C84
+ bl sub_8096BE0
+_0809706A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097070: .4byte 0x000011f6
+_08097074: .4byte sub_8096C84
+ thumb_func_end sub_8097004
+
+ thumb_func_start sub_8097078
+sub_8097078: @ 8097078
+ push {r4,lr}
+ ldr r0, _08097090 @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x5
+ bls _08097084
+ b _0809729A
+_08097084:
+ lsls r0, 2
+ ldr r1, _08097094 @ =_08097098
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097090: .4byte 0x02000000
+_08097094: .4byte _08097098
+ .align 2, 0
+_08097098:
+ .4byte _080970B0
+ .4byte _080970C8
+ .4byte _08097258
+ .4byte _0809726C
+ .4byte _08097262
+ .4byte _08097284
+_080970B0:
+ movs r0, 0x4
+ bl sub_8098898
+ bl sub_809CE84
+ ldr r1, _080970C4 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_080970C4: .4byte 0x02000000
+_080970C8:
+ bl sub_809CF30
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bls _080970D8
+ b _0809729A
+_080970D8:
+ lsls r0, 2
+ ldr r1, _080970E4 @ =_080970E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080970E4: .4byte _080970E8
+ .align 2, 0
+_080970E8:
+ .4byte _08097110
+ .4byte _08097110
+ .4byte _08097190
+ .4byte _08097178
+ .4byte _08097120
+ .4byte _08097158
+ .4byte _08097140
+ .4byte _08097230
+ .4byte _080971CC
+ .4byte _08097244
+_08097110:
+ bl sub_8098A5C
+ ldr r0, _0809711C @ =sub_8096C84
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809711C: .4byte sub_8096C84
+_08097120:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080971D6
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _0809713C @ =sub_80972A8
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809713C: .4byte sub_80972A8
+_08097140:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097154 @ =sub_80972FC
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097154: .4byte sub_80972FC
+_08097158:
+ bl sub_809BEBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080971D6
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097174 @ =c3_0808DC50
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097174: .4byte c3_0808DC50
+_08097178:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _0809718C @ =sub_8097390
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809718C: .4byte sub_8097390
+_08097190:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080971D6
+ ldr r4, _080971C0 @ =0x02000000
+ ldr r1, _080971C4 @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097210
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _080971C8 @ =sub_809746C
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_080971C0: .4byte 0x02000000
+_080971C4: .4byte 0x000011f2
+_080971C8: .4byte sub_809746C
+_080971CC:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ beq _080971E4
+_080971D6:
+ ldr r1, _080971E0 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_080971E0: .4byte 0x02000000
+_080971E4:
+ ldr r4, _080971F8 @ =0x02000000
+ ldr r1, _080971FC @ =0x000011f9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097200
+ movs r0, 0x4
+ strb r0, [r4, 0x4]
+ b _0809729A
+ .align 2, 0
+_080971F8: .4byte 0x02000000
+_080971FC: .4byte 0x000011f9
+_08097200:
+ ldr r1, _08097218 @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809721C
+_08097210:
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ b _0809729A
+ .align 2, 0
+_08097218: .4byte 0x000011f2
+_0809721C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0809722C @ =sub_8097594
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809722C: .4byte sub_8097594
+_08097230:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08097240 @ =sub_8097788
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097240: .4byte sub_8097788
+_08097244:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08097254 @ =sub_80977E4
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097254: .4byte sub_80977E4
+_08097258:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _08097274
+_08097262:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x11
+ b _08097274
+_0809726C:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_08097274:
+ bl sub_8098898
+ ldr r1, _08097280 @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_08097280: .4byte 0x02000000
+_08097284:
+ ldr r0, _080972A0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809729A
+ bl sub_8098A5C
+ ldr r0, _080972A4 @ =sub_8096C84
+ bl sub_8096BE0
+_0809729A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080972A0: .4byte gMain
+_080972A4: .4byte sub_8096C84
+ thumb_func_end sub_8097078
+
+ thumb_func_start sub_80972A8
+sub_80972A8: @ 80972A8
+ push {r4,lr}
+ ldr r4, _080972B8 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080972BC
+ cmp r0, 0x1
+ beq _080972CA
+ b _080972F2
+ .align 2, 0
+_080972B8: .4byte 0x02000000
+_080972BC:
+ movs r0, 0
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080972F2
+_080972CA:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _080972F2
+ ldr r0, _080972E4 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080972EC
+ ldr r0, _080972E8 @ =sub_8097858
+ bl sub_8096BE0
+ b _080972F2
+ .align 2, 0
+_080972E4: .4byte gUnknown_0203847C
+_080972E8: .4byte sub_8097858
+_080972EC:
+ ldr r0, _080972F8 @ =sub_8096C84
+ bl sub_8096BE0
+_080972F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080972F8: .4byte sub_8096C84
+ thumb_func_end sub_80972A8
+
+ thumb_func_start sub_80972FC
+sub_80972FC: @ 80972FC
+ push {r4,lr}
+ ldr r4, _0809730C @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08097310
+ cmp r0, 0x1
+ beq _0809731E
+ b _08097346
+ .align 2, 0
+_0809730C: .4byte 0x02000000
+_08097310:
+ movs r0, 0x1
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097346
+_0809731E:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097346
+ ldr r0, _08097338 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097340
+ ldr r0, _0809733C @ =sub_8097858
+ bl sub_8096BE0
+ b _08097346
+ .align 2, 0
+_08097338: .4byte gUnknown_0203847C
+_0809733C: .4byte sub_8097858
+_08097340:
+ ldr r0, _0809734C @ =sub_8096C84
+ bl sub_8096BE0
+_08097346:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809734C: .4byte sub_8096C84
+ thumb_func_end sub_80972FC
+
+ thumb_func_start c3_0808DC50
+c3_0808DC50: @ 8097350
+ push {r4,lr}
+ ldr r4, _08097360 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08097364
+ cmp r0, 0x1
+ beq _08097372
+ b _08097386
+ .align 2, 0
+_08097360: .4byte 0x02000000
+_08097364:
+ movs r0, 0x2
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097386
+_08097372:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097386
+ bl BoxSetMosaic
+ ldr r0, _0809738C @ =sub_8096C84
+ bl sub_8096BE0
+_08097386:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809738C: .4byte sub_8096C84
+ thumb_func_end c3_0808DC50
+
+ thumb_func_start sub_8097390
+sub_8097390: @ 8097390
+ push {lr}
+ ldr r0, _080973A4 @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x5
+ bhi _08097462
+ lsls r0, 2
+ ldr r1, _080973A8 @ =_080973AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080973A4: .4byte 0x02000000
+_080973A8: .4byte _080973AC
+ .align 2, 0
+_080973AC:
+ .4byte _080973C4
+ .4byte _080973FC
+ .4byte _0809741C
+ .4byte _0809742C
+ .4byte _0809743E
+ .4byte _0809745C
+_080973C4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080973E4
+ movs r0, 0xE
+ bl sub_8098898
+ ldr r1, _080973E0 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_080973E0: .4byte 0x02000000
+_080973E4:
+ bl sub_809B0E0
+ movs r0, 0
+ bl sub_809B100
+ ldr r1, _080973F8 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_080973F8: .4byte 0x02000000
+_080973FC:
+ ldr r0, _08097414 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097462
+ bl sub_8098A5C
+ ldr r0, _08097418 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097462
+ .align 2, 0
+_08097414: .4byte gMain
+_08097418: .4byte sub_8096C84
+_0809741C:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ bl sub_809880C
+ b _0809744C
+_0809742C:
+ bl sub_8098830
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ movs r0, 0x1
+ bl sub_809B100
+ b _0809744C
+_0809743E:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ bl sub_80987DC
+_0809744C:
+ ldr r1, _08097458 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_08097458: .4byte 0x02000000
+_0809745C:
+ ldr r0, _08097468 @ =sub_8097004
+ bl sub_8096BE0
+_08097462:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097468: .4byte sub_8097004
+ thumb_func_end sub_8097390
+
+ thumb_func_start sub_809746C
+sub_809746C: @ 809746C
+ push {r4,lr}
+ ldr r0, _08097484 @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x4
+ bls _08097478
+ b _08097584
+_08097478:
+ lsls r0, 2
+ ldr r1, _08097488 @ =_0809748C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097484: .4byte 0x02000000
+_08097488: .4byte _0809748C
+ .align 2, 0
+_0809748C:
+ .4byte _080974A0
+ .4byte _080974D8
+ .4byte _08097534
+ .4byte _08097548
+ .4byte _0809756C
+_080974A0:
+ movs r0, 0x6
+ bl sub_8098898
+ ldr r4, _080974C8 @ =0x02002370
+ ldr r2, _080974CC @ =0x0000daca
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r3, 0x3
+ bl sub_8096264
+ ldr r0, _080974D0 @ =gUnknown_0203847E
+ ldrb r0, [r0]
+ bl sub_809634C
+ ldr r0, _080974D4 @ =0xffffdc90
+ adds r4, r0
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097584
+ .align 2, 0
+_080974C8: .4byte 0x02002370
+_080974CC: .4byte 0x0000daca
+_080974D0: .4byte gUnknown_0203847E
+_080974D4: .4byte 0xffffdc90
+_080974D8:
+ bl sub_8096368
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xC8
+ beq _08097584
+ cmp r4, 0xC9
+ bne _080974F6
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ b _0809755E
+_080974F6:
+ adds r0, r4, 0
+ bl sub_809B62C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097518
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ ldr r1, _08097514 @ =0x02000000
+ movs r0, 0x2
+ b _08097522
+ .align 2, 0
+_08097514: .4byte 0x02000000
+_08097518:
+ movs r0, 0x8
+ bl sub_8098898
+ ldr r1, _0809752C @ =0x02000000
+ movs r0, 0x4
+_08097522:
+ strb r0, [r1, 0x4]
+ ldr r0, _08097530 @ =gUnknown_0203847E
+ strb r4, [r0]
+ b _08097584
+ .align 2, 0
+_0809752C: .4byte 0x02000000
+_08097530: .4byte gUnknown_0203847E
+_08097534:
+ bl party_compaction
+ bl sub_8099310
+ ldr r1, _08097544 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ b _08097582
+ .align 2, 0
+_08097544: .4byte 0x02000000
+_08097548:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097584
+ bl sub_809B6BC
+ bl BoxSetMosaic
+ bl sub_80987DC
+_0809755E:
+ ldr r0, _08097568 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097584
+ .align 2, 0
+_08097568: .4byte sub_8096C84
+_0809756C:
+ ldr r0, _0809758C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097584
+ movs r0, 0x6
+ bl sub_8098898
+ ldr r1, _08097590 @ =0x02000000
+ movs r0, 0x1
+_08097582:
+ strb r0, [r1, 0x4]
+_08097584:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809758C: .4byte gMain
+_08097590: .4byte 0x02000000
+ thumb_func_end sub_809746C
+
+ thumb_func_start sub_8097594
+sub_8097594: @ 8097594
+ push {r4,lr}
+ ldr r0, _080975AC @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0xD
+ bls _080975A0
+ b _0809777A
+_080975A0:
+ lsls r0, 2
+ ldr r1, _080975B0 @ =_080975B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080975AC: .4byte 0x02000000
+_080975B0: .4byte _080975B4
+ .align 2, 0
+_080975B4:
+ .4byte _080975EC
+ .4byte _08097600
+ .4byte _0809763A
+ .4byte _0809766E
+ .4byte _0809767A
+ .4byte _08097690
+ .4byte _080976C8
+ .4byte _080976E0
+ .4byte _080976EC
+ .4byte _080976F0
+ .4byte _08097704
+ .4byte _08097720
+ .4byte _08097732
+ .4byte _08097764
+_080975EC:
+ movs r0, 0x9
+ bl sub_8098898
+ movs r0, 0x1
+ bl sub_8098A38
+ ldr r1, _0809761C @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+_08097600:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0809762C
+ cmp r1, 0
+ bgt _08097620
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097626
+ b _0809777A
+ .align 2, 0
+_0809761C: .4byte 0x02000000
+_08097620:
+ cmp r1, 0x1
+ beq _08097626
+ b _0809777A
+_08097626:
+ bl sub_8098A5C
+ b _080976E0
+_0809762C:
+ bl sub_8098A5C
+ bl sub_809B7D4
+ bl sub_809B6DC
+ b _08097744
+_0809763A:
+ bl sub_809B960
+ bl sub_809B734
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809764A
+ b _0809777A
+_0809764A:
+ ldr r4, _08097650 @ =0x02000000
+ b _0809765A
+ .align 2, 0
+_08097650: .4byte 0x02000000
+_08097654:
+ cmp r0, 0
+ bne _0809765A
+ b _08097758
+_0809765A:
+ bl sub_809B960
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _08097654
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809777A
+_0809766E:
+ bl sub_809B760
+ bl sub_809801C
+ movs r0, 0xA
+ b _08097740
+_0809767A:
+ ldr r0, _0809768C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08097688
+ b _0809777A
+_08097688:
+ movs r0, 0xB
+ b _08097740
+ .align 2, 0
+_0809768C: .4byte gMain
+_08097690:
+ ldr r0, _080976B4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ ldr r0, _080976B8 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080976BC
+ bl party_compaction
+ bl sub_8099310
+ b _08097744
+ .align 2, 0
+_080976B4: .4byte gMain
+_080976B8: .4byte gUnknown_0203847C
+_080976BC:
+ ldr r1, _080976C4 @ =0x02000000
+ movs r0, 0x7
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_080976C4: .4byte 0x02000000
+_080976C8:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809777A
+ bl sub_809B440
+ bl BoxSetMosaic
+ bl sub_80987DC
+ b _08097744
+_080976E0:
+ ldr r0, _080976E8 @ =sub_8096C84
+ bl sub_8096BE0
+ b _0809777A
+ .align 2, 0
+_080976E8: .4byte sub_8096C84
+_080976EC:
+ movs r0, 0xA
+ b _08097740
+_080976F0:
+ ldr r0, _08097700 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ movs r0, 0x15
+ b _08097740
+ .align 2, 0
+_08097700: .4byte gMain
+_08097704:
+ ldr r0, _0809771C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ bl sub_8099958
+ b _08097744
+ .align 2, 0
+_0809771C: .4byte gMain
+_08097720:
+ bl sub_8099990
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809777A
+ bl sub_809B7AC
+ movs r0, 0x13
+ b _08097740
+_08097732:
+ ldr r0, _08097750 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ movs r0, 0x14
+_08097740:
+ bl sub_8098898
+_08097744:
+ ldr r1, _08097754 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_08097750: .4byte gMain
+_08097754: .4byte 0x02000000
+_08097758:
+ ldr r1, _08097760 @ =0x02000000
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_08097760: .4byte 0x02000000
+_08097764:
+ ldr r0, _08097780 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ ldr r0, _08097784 @ =sub_8096C84
+ bl sub_8096BE0
+_0809777A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097780: .4byte gMain
+_08097784: .4byte sub_8096C84
+ thumb_func_end sub_8097594
+
+ thumb_func_start sub_8097788
+sub_8097788: @ 8097788
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0809779C @ =0x02000000
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0
+ beq _080977A0
+ cmp r4, 0x1
+ beq _080977BC
+ b _080977D4
+ .align 2, 0
+_0809779C: .4byte 0x02000000
+_080977A0:
+ bl sub_809BC18
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _080977D4
+_080977BC:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080977D4
+ ldr r0, _080977DC @ =gUnknown_0203847F
+ strb r1, [r0]
+ strb r1, [r5, 0x6]
+ ldr r0, _080977E0 @ =sub_8096B5C
+ bl SetMainCallback2
+_080977D4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080977DC: .4byte gUnknown_0203847F
+_080977E0: .4byte sub_8096B5C
+ thumb_func_end sub_8097788
+
+ thumb_func_start sub_80977E4
+sub_80977E4: @ 80977E4
+ push {r4,lr}
+ ldr r4, _080977F4 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080977F8
+ cmp r0, 0x1
+ beq _08097824
+ b _0809784C
+ .align 2, 0
+_080977F4: .4byte 0x02000000
+_080977F8:
+ movs r0, 0xC
+ bl sub_8098898
+ ldr r0, _08097820 @ =0x000011f7
+ adds r2, r4, r0
+ ldrb r1, [r2]
+ movs r3, 0x96
+ lsls r3, 5
+ adds r0, r4, r3
+ strb r1, [r0]
+ ldrb r0, [r2]
+ movs r1, 0xB0
+ movs r2, 0x10
+ bl sub_80F7418
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809784C
+ .align 2, 0
+_08097820: .4byte 0x000011f7
+_08097824:
+ bl sub_80F7500
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809784C
+ bl sub_80F7470
+ bl sub_8098A5C
+ movs r1, 0x96
+ lsls r1, 5
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_809BDD8
+ bl sub_809801C
+ ldr r0, _08097854 @ =sub_8096C84
+ bl sub_8096BE0
+_0809784C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097854: .4byte sub_8096C84
+ thumb_func_end sub_80977E4
+
+ thumb_func_start sub_8097858
+sub_8097858: @ 8097858
+ push {r4,lr}
+ ldr r4, _08097868 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0809786C
+ cmp r0, 0x1
+ beq _0809787C
+ b _08097890
+ .align 2, 0
+_08097868: .4byte 0x02000000
+_0809786C:
+ bl party_compaction
+ bl sub_8099310
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097890
+_0809787C:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097890
+ bl sub_80987DC
+ ldr r0, _08097898 @ =sub_8096C84
+ bl sub_8096BE0
+_08097890:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097898: .4byte sub_8096C84
+ thumb_func_end sub_8097858
+
+ thumb_func_start sub_809789C
+sub_809789C: @ 809789C
+ push {r4,lr}
+ ldr r4, _080978AC @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080978B0
+ cmp r0, 0x1
+ beq _080978C2
+ b _08097968
+ .align 2, 0
+_080978AC: .4byte 0x02000000
+_080978B0:
+ movs r0, 0x1
+ bl sub_8098898
+ bl sub_809CE84
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097968
+_080978C2:
+ bl sub_809CF30
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bhi _08097968
+ lsls r0, 2
+ ldr r1, _080978DC @ =_080978E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080978DC: .4byte _080978E0
+ .align 2, 0
+_080978E0:
+ .4byte _08097914
+ .4byte _08097914
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097958
+ .4byte _08097940
+ .4byte _0809792C
+_08097914:
+ movs r0, 0x1
+ bl sub_809A860
+ bl sub_8098A5C
+ ldr r0, _08097928 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_08097928: .4byte sub_8096C84
+_0809792C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0809793C @ =sub_8097B44
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_0809793C: .4byte sub_8097B44
+_08097940:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097954 @ =sub_8097974
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_08097954: .4byte sub_8097974
+_08097958:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097970 @ =sub_8097A64
+ bl sub_8096BE0
+_08097968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097970: .4byte sub_8097A64
+ thumb_func_end sub_809789C
+
+ thumb_func_start sub_8097974
+sub_8097974: @ 8097974
+ push {r4,r5,lr}
+ ldr r5, _08097988 @ =0x02000000
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x1
+ beq _080979A2
+ cmp r0, 0x1
+ bgt _0809798C
+ cmp r0, 0
+ beq _08097996
+ b _08097A5A
+ .align 2, 0
+_08097988: .4byte 0x02000000
+_0809798C:
+ cmp r0, 0x2
+ beq _080979FC
+ cmp r0, 0x3
+ beq _08097A44
+ b _08097A5A
+_08097996:
+ bl sub_8098A80
+ movs r0, 0x2
+ bl sub_8098898
+ b _08097A3C
+_080979A2:
+ bl sub_809CF30
+ ldr r1, _080979CC @ =0x00000d5e
+ adds r4, r5, r1
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080979D4
+ movs r0, 0x1
+ bl sub_809A860
+ bl sub_8098A5C
+ ldr r0, _080979D0 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097A5A
+ .align 2, 0
+_080979CC: .4byte 0x00000d5e
+_080979D0: .4byte sub_8096C84
+_080979D4:
+ cmp r0, r1
+ blt _08097A5A
+ cmp r0, 0xF
+ bgt _08097A5A
+ cmp r0, 0xC
+ blt _08097A5A
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ subs r0, 0xC
+ strh r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8098AA8
+ movs r0, 0x3
+ bl sub_8098898
+ b _08097A3C
+_080979FC:
+ bl sub_809CF30
+ movs r1, 0xD6
+ lsls r1, 4
+ adds r4, r5, r1
+ strh r0, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _08097A5A
+ adds r0, 0x1
+ cmp r1, r0
+ bne _08097A24
+ bl sub_8098A5C
+ movs r0, 0
+ strb r0, [r5, 0x4]
+ b _08097A5A
+_08097A24:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldrh r0, [r4]
+ subs r0, 0x10
+ strh r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8099DCC
+_08097A3C:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097A5A
+_08097A44:
+ bl sub_8099E08
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097A5A
+ movs r0, 0x1
+ bl sub_809A860
+ ldr r0, _08097A60 @ =sub_8096C84
+ bl sub_8096BE0
+_08097A5A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097A60: .4byte sub_8096C84
+ thumb_func_end sub_8097974
+
+ thumb_func_start sub_8097A64
+sub_8097A64: @ 8097A64
+ push {r4,r5,lr}
+ ldr r5, _08097A78 @ =0x02000000
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x1
+ beq _08097AB0
+ cmp r0, 0x1
+ bgt _08097A7C
+ cmp r0, 0
+ beq _08097A86
+ b _08097B32
+ .align 2, 0
+_08097A78: .4byte 0x02000000
+_08097A7C:
+ cmp r0, 0x2
+ beq _08097B00
+ cmp r0, 0x3
+ beq _08097B18
+ b _08097B32
+_08097A86:
+ movs r0, 0x5
+ bl sub_8098898
+ ldr r1, _08097AA4 @ =0x00002370
+ adds r0, r5, r1
+ ldr r2, _08097AA8 @ =0x0000daca
+ movs r1, 0x7
+ movs r3, 0x3
+ bl sub_8096264
+ ldr r0, _08097AAC @ =gPokemonStorage
+ ldrb r0, [r0]
+ bl sub_809634C
+ b _08097B0A
+ .align 2, 0
+_08097AA4: .4byte 0x00002370
+_08097AA8: .4byte 0x0000daca
+_08097AAC: .4byte gPokemonStorage
+_08097AB0:
+ bl sub_8096368
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08097AF4 @ =0x000008b2
+ adds r4, r5, r2
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC8
+ beq _08097B32
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC9
+ beq _08097AE4
+ adds r1, r0, 0
+ ldr r0, _08097AF8 @ =gPokemonStorage
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08097B0A
+_08097AE4:
+ movs r0, 0x1
+ bl sub_809A860
+ ldr r0, _08097AFC @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097B32
+ .align 2, 0
+_08097AF4: .4byte 0x000008b2
+_08097AF8: .4byte gPokemonStorage
+_08097AFC: .4byte sub_8096C84
+_08097B00:
+ ldr r1, _08097B14 @ =0x000008b2
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_8099C70
+_08097B0A:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097B32
+ .align 2, 0
+_08097B14: .4byte 0x000008b2
+_08097B18:
+ bl sub_8099D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097B32
+ ldr r1, _08097B38 @ =gPokemonStorage
+ ldr r2, _08097B3C @ =0x000008b2
+ adds r0, r5, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08097B40 @ =sub_8096C84
+ bl sub_8096BE0
+_08097B32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097B38: .4byte gPokemonStorage
+_08097B3C: .4byte 0x000008b2
+_08097B40: .4byte sub_8096C84
+ thumb_func_end sub_8097A64
+
+ thumb_func_start sub_8097B44
+sub_8097B44: @ 8097B44
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08097B58 @ =0x02000000
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0
+ beq _08097B5C
+ cmp r4, 0x1
+ beq _08097B78
+ b _08097B8E
+ .align 2, 0
+_08097B58: .4byte 0x02000000
+_08097B5C:
+ bl sub_809BB90
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097B8E
+_08097B78:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097B8E
+ ldr r0, _08097B98 @ =gUnknown_0203847F
+ strb r4, [r0]
+ strb r4, [r5, 0x6]
+ ldr r0, _08097B9C @ =sub_8096B5C
+ bl SetMainCallback2
+_08097B8E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097B98: .4byte gUnknown_0203847F
+_08097B9C: .4byte sub_8096B5C
+ thumb_func_end sub_8097B44
+
+ thumb_func_start sub_8097BA0
+sub_8097BA0: @ 8097BA0
+ push {r4,lr}
+ ldr r0, _08097BB8 @ =0x02000000
+ ldrb r1, [r0, 0x4]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _08097BAE
+ b _08097CB0
+_08097BAE:
+ lsls r0, r1, 2
+ ldr r1, _08097BBC @ =_08097BC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097BB8: .4byte 0x02000000
+_08097BBC: .4byte _08097BC0
+ .align 2, 0
+_08097BC0:
+ .4byte _08097BD4
+ .4byte _08097C18
+ .4byte _08097C2C
+ .4byte _08097C74
+ .4byte _08097C98
+_08097BD4:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097BF8
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_8098898
+ ldr r1, _08097BF4 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097BF4: .4byte 0x02000000
+_08097BF8:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_8098898
+ movs r0, 0
+ bl sub_8098A38
+ ldr r1, _08097C14 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C14: .4byte 0x02000000
+_08097C18:
+ ldr r0, _08097C28 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097CB0
+ b _08097C4A
+ .align 2, 0
+_08097C28: .4byte gMain
+_08097C2C:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08097C5C
+ cmp r1, 0
+ bgt _08097C46
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097C4A
+ b _08097CB0
+_08097C46:
+ cmp r1, 0x1
+ bne _08097CB0
+_08097C4A:
+ bl sub_8098A5C
+ ldr r0, _08097C58 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097CB0
+ .align 2, 0
+_08097C58: .4byte sub_8096C84
+_08097C5C:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r1, _08097C70 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C70: .4byte 0x02000000
+_08097C74:
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08097C94 @ =0x0000dad0
+ strh r0, [r4, 0xE]
+ movs r0, 0x14
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5E38
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C94: .4byte 0x0000dad0
+_08097C98:
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097CB0
+ bl CalculatePlayerPartyCount
+ ldr r1, _08097CB8 @ =gPlayerPartyCount
+ strb r0, [r1]
+ ldr r0, _08097CBC @ =sub_80961A8
+ bl SetMainCallback2
+_08097CB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097CB8: .4byte gPlayerPartyCount
+_08097CBC: .4byte sub_80961A8
+ thumb_func_end sub_8097BA0
+
+ thumb_func_start sub_8097CC0
+sub_8097CC0: @ 8097CC0
+ push {r4,lr}
+ ldr r0, _08097CD8 @ =0x02000000
+ ldrb r1, [r0, 0x4]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _08097CCE
+ b _08097DD0
+_08097CCE:
+ lsls r0, r1, 2
+ ldr r1, _08097CDC @ =_08097CE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097CD8: .4byte 0x02000000
+_08097CDC: .4byte _08097CE0
+ .align 2, 0
+_08097CE0:
+ .4byte _08097CF4
+ .4byte _08097D38
+ .4byte _08097D4C
+ .4byte _08097D94
+ .4byte _08097DB8
+_08097CF4:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097D18
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_8098898
+ ldr r1, _08097D14 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D14: .4byte 0x02000000
+_08097D18:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x12
+ bl sub_8098898
+ movs r0, 0
+ bl sub_8098A38
+ ldr r1, _08097D34 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D34: .4byte 0x02000000
+_08097D38:
+ ldr r0, _08097D48 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097DD0
+ b _08097D6C
+ .align 2, 0
+_08097D48: .4byte gMain
+_08097D4C:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08097D6C
+ cmp r1, 0
+ bgt _08097D66
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097D7C
+ b _08097DD0
+_08097D66:
+ cmp r1, 0x1
+ beq _08097D7C
+ b _08097DD0
+_08097D6C:
+ bl sub_8098A5C
+ ldr r0, _08097D78 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097DD0
+ .align 2, 0
+_08097D78: .4byte sub_8096C84
+_08097D7C:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r1, _08097D90 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D90: .4byte 0x02000000
+_08097D94:
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08097DB4 @ =0x0000dad0
+ strh r0, [r4, 0xE]
+ movs r0, 0x14
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5E38
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097DB4: .4byte 0x0000dad0
+_08097DB8:
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097DD0
+ bl CalculatePlayerPartyCount
+ ldr r1, _08097DD8 @ =gPlayerPartyCount
+ strb r0, [r1]
+ ldr r0, _08097DDC @ =sub_80961A8
+ bl SetMainCallback2
+_08097DD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097DD8: .4byte gPlayerPartyCount
+_08097DDC: .4byte sub_80961A8
+ thumb_func_end sub_8097CC0
+
+ thumb_func_start sub_8097DE0
+sub_8097DE0: @ 8097DE0
+ push {lr}
+ ldr r1, _08097E1C @ =0x02000000
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ ldr r1, _08097E20 @ =REG_BG3CNT
+ ldr r2, _08097E24 @ =0x00001e0f
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile
+ ldr r2, _08097E2C @ =0x0600e000
+ ldr r0, _08097E30 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08097E34 @ =0x80000010
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap
+ ldr r1, _08097E3C @ =0x0600f000
+ bl LZ77UnCompVram
+ ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette
+ movs r1, 0xD0
+ movs r2, 0x10
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097E1C: .4byte 0x02000000
+_08097E20: .4byte REG_BG3CNT
+_08097E24: .4byte 0x00001e0f
+_08097E28: .4byte gPokemonStorageScrollingBGTile
+_08097E2C: .4byte 0x0600e000
+_08097E30: .4byte 0x040000d4
+_08097E34: .4byte 0x80000010
+_08097E38: .4byte gPokemonStorageScrollingBGTilemap
+_08097E3C: .4byte 0x0600f000
+_08097E40: .4byte gPokemonStorageScrollingBGPalette
+ thumb_func_end sub_8097DE0
+
+ thumb_func_start sub_8097E44
+sub_8097E44: @ 8097E44
+ push {lr}
+ ldr r1, _08097E6C @ =0x02000000
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08097E66
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x1
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_08097E66:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097E6C: .4byte 0x02000000
+ thumb_func_end sub_8097E44
+
+ thumb_func_start sub_8097E70
+sub_8097E70: @ 8097E70
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx
+ ldr r1, _08097F30 @ =0x06005000
+ bl LZ77UnCompVram
+ ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap
+ ldr r4, _08097F38 @ =gUnknown_02039760
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r0, _08097F3C @ =0x06007800
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ movs r1, 0x14
+ str r1, [sp, 0xC]
+ movs r1, 0
+ movs r2, 0
+ adds r3, r4, 0
+ bl sub_809D034
+ ldr r0, _08097F40 @ =gPSSMenu1_Pal
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F44 @ =gPSSMenu2_Pal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F48 @ =gUnknown_083B6D74
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F4C @ =gUnknown_083B6D94
+ movs r1, 0xC0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2
+ adds r0, r4, 0
+ movs r1, 0xF1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xF2
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0xF3
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x16
+ movs r1, 0xF4
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x12
+ movs r1, 0xF6
+ movs r2, 0x4
+ bl LoadPalette
+ adds r4, 0x2
+ adds r0, r4, 0
+ movs r1, 0xFF
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _08097F54 @ =gWaveformSpritePalette
+ bl LoadSpritePalette
+ bl sub_80980D4
+ bl sub_8097F58
+ bl sub_8097FB8
+ bl sub_809801C
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097F2C: .4byte gPSSMenuHeader_Gfx
+_08097F30: .4byte 0x06005000
+_08097F34: .4byte gPSSMenuHeader_Tilemap
+_08097F38: .4byte gUnknown_02039760
+_08097F3C: .4byte 0x06007800
+_08097F40: .4byte gPSSMenu1_Pal
+_08097F44: .4byte gPSSMenu2_Pal
+_08097F48: .4byte gUnknown_083B6D74
+_08097F4C: .4byte gUnknown_083B6D94
+_08097F50: .4byte gUnknownPalette_81E6692+0x2
+_08097F54: .4byte gWaveformSpritePalette
+ thumb_func_end sub_8097E70
+
+ thumb_func_start sub_8097F58
+sub_8097F58: @ 8097F58
+ push {r4,lr}
+ ldr r1, _08097FA4 @ =0x0000dace
+ movs r0, 0xD
+ movs r2, 0
+ bl sub_80F7940
+ ldr r4, _08097FA8 @ =0x02000000
+ ldr r1, _08097FAC @ =0x000012ac
+ adds r3, r4, r1
+ str r0, [r3]
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, [r3]
+ adds r0, 0x43
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r3]
+ movs r0, 0x28
+ strh r0, [r1, 0x20]
+ ldr r1, [r3]
+ movs r0, 0x95
+ strh r0, [r1, 0x22]
+ movs r0, 0xD
+ bl GetSpriteTileStartByTag
+ ldr r1, _08097FB0 @ =0x000012b8
+ adds r4, r1
+ lsls r0, 16
+ lsrs r0, 11
+ ldr r1, _08097FB4 @ =0x06010000
+ adds r0, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097FA4: .4byte 0x0000dace
+_08097FA8: .4byte 0x02000000
+_08097FAC: .4byte 0x000012ac
+_08097FB0: .4byte 0x000012b8
+_08097FB4: .4byte 0x06010000
+ thumb_func_end sub_8097F58
+
+ thumb_func_start sub_8097FB8
+sub_8097FB8: @ 8097FB8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0809800C @ =gWaveformSpriteSheet
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r4, 0
+ ldr r5, _08098010 @ =0x020012b0
+_08097FD0:
+ lsls r1, r4, 6
+ subs r1, r4
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC
+ movs r2, 0x9
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r4, 2
+ adds r2, r5
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08098018 @ =gSprites
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08097FD0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809800C: .4byte gWaveformSpriteSheet
+_08098010: .4byte 0x020012b0
+_08098014: .4byte gSpriteTemplate_83B6EFC
+_08098018: .4byte gSprites
+ thumb_func_end sub_8097FB8
+
+ thumb_func_start sub_809801C
+sub_809801C: @ 809801C
+ push {lr}
+ ldr r1, _0809803C @ =0x02000000
+ ldr r2, _08098040 @ =0x000011f0
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ subs r2, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_80981F0
+ bl sub_80982B4
+ bl sub_8098350
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809803C: .4byte 0x02000000
+_08098040: .4byte 0x000011f0
+ thumb_func_end sub_809801C
+
+ thumb_func_start BoxSetMosaic
+BoxSetMosaic: @ 8098044
+ push {lr}
+ bl sub_809801C
+ ldr r0, _08098084 @ =0x02000000
+ movs r1, 0x9C
+ lsls r1, 6
+ adds r3, r0, r1
+ ldr r2, [r3]
+ cmp r2, 0
+ beq _08098080
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r1, [r3]
+ movs r0, 0xA
+ strh r0, [r1, 0x2E]
+ ldr r1, [r3]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, [r3]
+ ldr r0, _08098088 @ =sub_8098090
+ str r0, [r1, 0x1C]
+ ldr r2, _0809808C @ =REG_MOSAIC
+ ldr r0, [r3]
+ ldrh r0, [r0, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+_08098080:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098084: .4byte 0x02000000
+_08098088: .4byte sub_8098090
+_0809808C: .4byte REG_MOSAIC
+ thumb_func_end BoxSetMosaic
+
+ thumb_func_start sub_8098090
+sub_8098090: @ 8098090
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ subs r0, r1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080980A6
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+_080980A6:
+ ldr r2, _080980CC @ =REG_MOSAIC
+ ldrh r0, [r3, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080980C8
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3, 0x1]
+ ldr r0, _080980D0 @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+_080980C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080980CC: .4byte REG_MOSAIC
+_080980D0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098090
+
+ thumb_func_start sub_80980D4
+sub_80980D4: @ 80980D4
+ push {r4,r5,lr}
+ sub sp, 0x28
+ ldr r0, _08098150 @ =gUnknown_083B6DCC
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _08098154 @ =gUnknown_083B6DD4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r1, 0
+ add r5, sp, 0x18
+ ldr r4, _0809815C @ =0x02002784
+ movs r3, 0
+ ldr r2, _08098160 @ =0x000007ff
+_08098102:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _08098102
+ movs r1, 0
+ ldr r3, _08098164 @ =0x02002704
+ movs r2, 0
+_08098116:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _08098116
+ ldr r0, _08098168 @ =0x02000000
+ movs r1, 0x9C
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080981C4
+ add r0, sp, 0x20
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _080981C4
+ b _080981B0
+ .align 2, 0
+_08098150: .4byte gUnknown_083B6DCC
+_08098154: .4byte gUnknown_083B6DD4
+_08098158: .4byte gSpriteTemplate_83B6DDC
+_0809815C: .4byte 0x02002784
+_08098160: .4byte 0x000007ff
+_08098164: .4byte 0x02002704
+_08098168: .4byte 0x02000000
+_0809816C:
+ ldr r2, _0809819C @ =0x02000000
+ movs r0, 0x9C
+ lsls r0, 6
+ adds r3, r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080981A0 @ =gSprites
+ adds r0, r1
+ str r0, [r3]
+ lsls r0, r4, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ ldr r3, _080981A4 @ =0x000026fa
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r4, _080981A8 @ =0x000026fc
+ adds r2, r4
+ lsls r0, r5, 5
+ ldr r1, _080981AC @ =0x06010000
+ adds r0, r1
+ str r0, [r2]
+ b _080981C4
+ .align 2, 0
+_0809819C: .4byte 0x02000000
+_080981A0: .4byte gSprites
+_080981A4: .4byte 0x000026fa
+_080981A8: .4byte 0x000026fc
+_080981AC: .4byte 0x06010000
+_080981B0:
+ mov r0, sp
+ movs r1, 0x28
+ movs r2, 0x30
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _0809816C
+_080981C4:
+ ldr r0, _080981E8 @ =0x02000000
+ movs r2, 0x9C
+ lsls r2, 6
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080981DE
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ ldr r0, _080981EC @ =0x0000dac7
+ bl FreeSpritePaletteByTag
+_080981DE:
+ add sp, 0x28
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080981E8: .4byte 0x02000000
+_080981EC: .4byte 0x0000dac7
+ thumb_func_end sub_80980D4
+
+ thumb_func_start sub_80981F0
+sub_80981F0: @ 80981F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r6, _08098274 @ =0x02000000
+ movs r0, 0x9C
+ lsls r0, 6
+ adds r0, r6
+ mov r8, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080982A6
+ cmp r4, 0
+ beq _0809829C
+ lsls r0, r4, 3
+ ldr r1, _08098278 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r2, _0809827C @ =gMonFrontPicCoords
+ lsls r1, r4, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r2, _08098280 @ =0x00004784
+ adds r3, r6, r2
+ ldr r2, _08098284 @ =0x00002784
+ adds r5, r6, r2
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r2, 0x1
+ bl HandleLoadSpecialPokePic
+ ldr r1, _08098288 @ =0x000011e8
+ adds r0, r6, r1
+ ldr r0, [r0]
+ ldr r2, _0809828C @ =0x00002704
+ adds r4, r6, r2
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r1, _08098290 @ =0x000026fc
+ adds r0, r6, r1
+ ldr r1, [r0]
+ ldr r2, _08098294 @ =0x04000200
+ adds r0, r5, 0
+ bl CpuSet
+ ldr r2, _08098298 @ =0x000026fa
+ adds r0, r6, r2
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _080982A6
+ .align 2, 0
+_08098274: .4byte 0x02000000
+_08098278: .4byte gMonFrontPicTable
+_0809827C: .4byte gMonFrontPicCoords
+_08098280: .4byte 0x00004784
+_08098284: .4byte 0x00002784
+_08098288: .4byte 0x000011e8
+_0809828C: .4byte 0x00002704
+_08098290: .4byte 0x000026fc
+_08098294: .4byte 0x04000200
+_08098298: .4byte 0x000026fa
+_0809829C:
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080982A6:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80981F0
+
+ thumb_func_start sub_80982B4
+sub_80982B4: @ 80982B4
+ push {r4,lr}
+ ldr r4, _080982E4 @ =0x02000000
+ ldr r1, _080982E8 @ =0x000011f0
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080982F4
+ ldr r2, _080982EC @ =0x000011f7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r2, 0xC1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ bl sub_80F7A10
+ ldr r1, _080982F0 @ =0x000012ac
+ adds r0, r4, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _08098302
+ .align 2, 0
+_080982E4: .4byte 0x02000000
+_080982E8: .4byte 0x000011f0
+_080982EC: .4byte 0x000011f7
+_080982F0: .4byte 0x000012ac
+_080982F4:
+ ldr r2, _08098348 @ =0x000012ac
+ adds r0, r4, r2
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_08098302:
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0xB
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ ldr r4, _0809834C @ =0x0200127a
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x10
+ bl MenuPrint
+ adds r0, r4, 0
+ subs r0, 0x6B
+ movs r1, 0x1
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r4, 0
+ subs r0, 0x46
+ movs r1, 0
+ movs r2, 0xD
+ bl MenuPrint
+ subs r4, 0x21
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098348: .4byte 0x000012ac
+_0809834C: .4byte 0x0200127a
+ thumb_func_end sub_80982B4
+
+ thumb_func_start sub_8098350
+sub_8098350: @ 8098350
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r5, _080983A0 @ =0x02000000
+ ldr r1, _080983A4 @ =0x000011f0
+ adds r0, r5, r1
+ ldrh r2, [r0]
+ cmp r2, 0
+ beq _080983B4
+ ldr r0, _080983A8 @ =0x06007800
+ ldr r3, _080983AC @ =gUnknown_02039760
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809D034
+ movs r4, 0
+ ldr r0, _080983B0 @ =0x000012b0
+ adds r5, r0
+_08098382:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08098382
+ b _080983EC
+ .align 2, 0
+_080983A0: .4byte 0x02000000
+_080983A4: .4byte 0x000011f0
+_080983A8: .4byte 0x06007800
+_080983AC: .4byte gUnknown_02039760
+_080983B0: .4byte 0x000012b0
+_080983B4:
+ ldr r0, _080983F4 @ =0x06007800
+ ldr r3, _080983F8 @ =gUnknown_02039760
+ movs r1, 0xA
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809D034
+ movs r4, 0
+ ldr r1, _080983FC @ =0x000012b0
+ adds r5, r1
+_080983D4:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r1, r4, 25
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080983D4
+_080983EC:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080983F4: .4byte 0x06007800
+_080983F8: .4byte gUnknown_02039760
+_080983FC: .4byte 0x000012b0
+ thumb_func_end sub_8098350
+
+ thumb_func_start sub_8098400
+sub_8098400: @ 8098400
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r1, _0809847C @ =REG_BG1CNT
+ ldr r2, _08098480 @ =0x00000f01
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08098484 @ =gPSSMenuMisc_Gfx
+ ldr r1, _08098488 @ =0x06006800
+ bl LZ77UnCompVram
+ ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap
+ ldr r5, _08098490 @ =0x020000a8
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ ldr r0, _08098494 @ =gPSSMenu3_Pal
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08098498 @ =gPSSMenu4_Pal
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _0809849C @ =0x06007800
+ add r1, sp, 0x10
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080984A0 @ =0x040000d4
+ str r1, [r0]
+ str r4, [r0, 0x4]
+ ldr r1, _080984A4 @ =0x81000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8098780
+ ldr r0, _080984A8 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080984AC
+ movs r0, 0x1
+ bl sub_8098690
+ movs r0, 0x1
+ bl sub_8099200
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0xC
+ str r0, [sp, 0x8]
+ movs r0, 0x16
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_809D034
+ b _080984CC
+ .align 2, 0
+_0809847C: .4byte REG_BG1CNT
+_08098480: .4byte 0x00000f01
+_08098484: .4byte gPSSMenuMisc_Gfx
+_08098488: .4byte 0x06006800
+_0809848C: .4byte gPSSMenuMisc_Tilemap
+_08098490: .4byte 0x020000a8
+_08098494: .4byte gPSSMenu3_Pal
+_08098498: .4byte gPSSMenu4_Pal
+_0809849C: .4byte 0x06007800
+_080984A0: .4byte 0x040000d4
+_080984A4: .4byte 0x81000400
+_080984A8: .4byte gUnknown_0203847C
+_080984AC:
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0xC
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_809D034
+ movs r0, 0x1
+ bl sub_8098690
+_080984CC:
+ ldr r0, _080984E0 @ =0x02000000
+ ldr r1, _080984E4 @ =0x000008af
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080984E0: .4byte 0x02000000
+_080984E4: .4byte 0x000008af
+ thumb_func_end sub_8098400
+
+ thumb_func_start sub_80984E8
+sub_80984E8: @ 80984E8
+ push {lr}
+ ldr r1, _08098510 @ =0x02000000
+ ldr r0, _08098514 @ =0x000008a8
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x14
+ strh r0, [r2]
+ ldr r0, _08098518 @ =0x000008aa
+ adds r2, r1, r0
+ movs r0, 0x2
+ strh r0, [r2]
+ ldr r0, _0809851C @ =0x000008ad
+ adds r1, r0
+ strb r3, [r1]
+ movs r0, 0
+ bl sub_8099200
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098510: .4byte 0x02000000
+_08098514: .4byte 0x000008a8
+_08098518: .4byte 0x000008aa
+_0809851C: .4byte 0x000008ad
+ thumb_func_end sub_80984E8
+
+ thumb_func_start sub_8098520
+sub_8098520: @ 8098520
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r3, _08098578 @ =0x02000000
+ ldr r0, _0809857C @ =0x000008ad
+ adds r5, r3, r0
+ ldrb r0, [r5]
+ cmp r0, 0x14
+ beq _08098592
+ ldr r0, _08098580 @ =0x000008a8
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ movs r4, 0
+ strh r0, [r1]
+ ldr r0, _08098584 @ =0x000008aa
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ ldr r0, _08098588 @ =0x06007800
+ adds r3, 0xA8
+ str r4, [sp]
+ ldrh r1, [r1]
+ str r1, [sp, 0x4]
+ movs r1, 0xC
+ str r1, [sp, 0x8]
+ ldrh r1, [r2]
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+ movs r2, 0
+ bl sub_809D034
+ movs r0, 0x8
+ bl sub_80994A8
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _0809858C
+ movs r0, 0x1
+ b _08098594
+ .align 2, 0
+_08098578: .4byte 0x02000000
+_0809857C: .4byte 0x000008ad
+_08098580: .4byte 0x000008a8
+_08098584: .4byte 0x000008aa
+_08098588: .4byte 0x06007800
+_0809858C:
+ ldr r1, _0809859C @ =gUnknown_0203847C
+ movs r0, 0x1
+ strb r0, [r1]
+_08098592:
+ movs r0, 0
+_08098594:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809859C: .4byte gUnknown_0203847C
+ thumb_func_end sub_8098520
+
+ thumb_func_start add_to_c3_somehow
+add_to_c3_somehow: @ 80985A0
+ ldr r1, _080985BC @ =0x02000000
+ ldr r0, _080985C0 @ =0x000008a8
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, _080985C4 @ =0x000008aa
+ adds r2, r1, r0
+ movs r0, 0x16
+ strh r0, [r2]
+ ldr r0, _080985C8 @ =0x000008ad
+ adds r1, r0
+ strb r3, [r1]
+ bx lr
+ .align 2, 0
+_080985BC: .4byte 0x02000000
+_080985C0: .4byte 0x000008a8
+_080985C4: .4byte 0x000008aa
+_080985C8: .4byte 0x000008ad
+ thumb_func_end add_to_c3_somehow
+
+ thumb_func_start sub_80985CC
+sub_80985CC: @ 80985CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r3, _08098640 @ =0x02000000
+ ldr r0, _08098644 @ =0x000008ad
+ adds r6, r3, r0
+ ldrb r0, [r6]
+ cmp r0, 0x14
+ beq _0809867A
+ ldr r2, _08098648 @ =0x000008a8
+ adds r1, r3, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ mov r9, r2
+ strh r0, [r1]
+ ldr r0, _0809864C @ =0x000008aa
+ adds r4, r3, r0
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldr r5, _08098650 @ =0x06007800
+ adds r3, 0xA8
+ mov r8, r3
+ str r2, [sp]
+ ldrh r0, [r1]
+ str r0, [sp, 0x4]
+ movs r7, 0xC
+ str r7, [sp, 0x8]
+ ldrh r0, [r4]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl sub_809D034
+ ldrh r2, [r4]
+ movs r4, 0x1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0xA
+ movs r3, 0xC
+ bl sub_809D16C
+ movs r0, 0x8
+ negs r0, r0
+ bl sub_80994A8
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _08098654
+ movs r0, 0x1
+ b _0809867C
+ .align 2, 0
+_08098640: .4byte 0x02000000
+_08098644: .4byte 0x000008ad
+_08098648: .4byte 0x000008a8
+_0809864C: .4byte 0x000008aa
+_08098650: .4byte 0x06007800
+_08098654:
+ ldr r0, _0809868C @ =gUnknown_0203847C
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_809954C
+ bl party_compaction
+ str r7, [sp]
+ mov r2, r9
+ str r2, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0x15
+ movs r2, 0
+ mov r3, r8
+ bl sub_809D034
+_0809867A:
+ movs r0, 0
+_0809867C:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809868C: .4byte gUnknown_0203847C
+ thumb_func_end sub_80985CC
+
+ thumb_func_start sub_8098690
+sub_8098690: @ 8098690
+ push {lr}
+ sub sp, 0x10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080986C0
+ ldr r0, _080986B8 @ =0x06007800
+ ldr r3, _080986BC @ =0x020000a8
+ movs r1, 0xC
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x15
+ movs r2, 0
+ bl sub_809D034
+ b _080986DA
+ .align 2, 0
+_080986B8: .4byte 0x06007800
+_080986BC: .4byte 0x020000a8
+_080986C0:
+ ldr r0, _080986E0 @ =0x06007800
+ ldr r3, _080986E4 @ =0x020000a8
+ movs r1, 0xC
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r1, 0x15
+ movs r2, 0
+ bl sub_809D034
+_080986DA:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080986E0: .4byte 0x06007800
+_080986E4: .4byte 0x020000a8
+ thumb_func_end sub_8098690
+
+ thumb_func_start sub_80986E8
+sub_80986E8: @ 80986E8
+ ldr r1, _08098704 @ =0x02000000
+ ldr r2, _08098708 @ =0x000008af
+ adds r0, r1, r2
+ movs r3, 0x1
+ strb r3, [r0]
+ movs r0, 0x8B
+ lsls r0, 4
+ adds r2, r1, r0
+ movs r0, 0x1E
+ strb r0, [r2]
+ ldr r2, _0809870C @ =0x000008b1
+ adds r1, r2
+ strb r3, [r1]
+ bx lr
+ .align 2, 0
+_08098704: .4byte 0x02000000
+_08098708: .4byte 0x000008af
+_0809870C: .4byte 0x000008b1
+ thumb_func_end sub_80986E8
+
+ thumb_func_start sub_8098710
+sub_8098710: @ 8098710
+ push {lr}
+ ldr r0, _0809872C @ =0x02000000
+ ldr r2, _08098730 @ =0x000008af
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08098728
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8098690
+_08098728:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809872C: .4byte 0x02000000
+_08098730: .4byte 0x000008af
+ thumb_func_end sub_8098710
+
+ thumb_func_start sub_8098734
+sub_8098734: @ 8098734
+ push {lr}
+ ldr r2, _08098774 @ =0x02000000
+ ldr r1, _08098778 @ =0x000008af
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08098770
+ movs r0, 0x8B
+ lsls r0, 4
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bls _08098770
+ movs r0, 0
+ strb r0, [r1]
+ movs r3, 0
+ ldr r0, _0809877C @ =0x000008b1
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08098768
+ movs r3, 0x1
+_08098768:
+ strb r3, [r1]
+ ldrb r0, [r1]
+ bl sub_8098690
+_08098770:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098774: .4byte 0x02000000
+_08098778: .4byte 0x000008af
+_0809877C: .4byte 0x000008b1
+ thumb_func_end sub_8098734
+
+ thumb_func_start sub_8098780
+sub_8098780: @ 8098780
+ push {r4-r6,lr}
+ sub sp, 0x10
+ movs r4, 0x1
+ ldr r6, _080987D4 @ =0x020000a8
+ movs r5, 0x80
+ lsls r5, 9
+_0809878C:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080987D8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080987A0
+ movs r0, 0x1
+_080987A0:
+ movs r1, 0x10
+ cmp r0, 0
+ beq _080987A8
+ movs r1, 0xC
+_080987A8:
+ lsrs r2, r5, 16
+ str r1, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0xC0
+ lsls r0, 10
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _0809878C
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080987D4: .4byte 0x020000a8
+_080987D8: .4byte gPlayerParty
+ thumb_func_end sub_8098780
+
+ thumb_func_start sub_80987DC
+sub_80987DC: @ 80987DC
+ push {lr}
+ sub sp, 0x10
+ bl sub_8098780
+ ldr r0, _08098804 @ =0x06007800
+ ldr r3, _08098808 @ =0x020000a8
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xC
+ str r1, [sp, 0x8]
+ movs r1, 0x16
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+ movs r2, 0
+ bl sub_809D034
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098804: .4byte 0x06007800
+_08098808: .4byte 0x020000a8
+ thumb_func_end sub_80987DC
+
+ thumb_func_start sub_809880C
+sub_809880C: @ 809880C
+ push {lr}
+ ldr r0, _08098828 @ =0x02000000
+ ldr r1, _0809882C @ =0x000008ae
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x6
+ bl PlaySE
+ bl sub_80984E8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098828: .4byte 0x02000000
+_0809882C: .4byte 0x000008ae
+ thumb_func_end sub_809880C
+
+ thumb_func_start sub_8098830
+sub_8098830: @ 8098830
+ push {r4,r5,lr}
+ ldr r5, _08098848 @ =0x02000000
+ ldr r0, _0809884C @ =0x000008ae
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08098866
+ cmp r0, 0x1
+ bgt _08098850
+ cmp r0, 0
+ beq _08098856
+ b _08098890
+ .align 2, 0
+_08098848: .4byte 0x02000000
+_0809884C: .4byte 0x000008ae
+_08098850:
+ cmp r0, 0x2
+ beq _0809888C
+ b _08098890
+_08098856:
+ bl sub_8098520
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098890
+ bl sub_809B068
+ b _0809887E
+_08098866:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098890
+ ldr r1, _08098888 @ =0x000011f6
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809887E
+ bl BoxSetMosaic
+_0809887E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08098890
+ .align 2, 0
+_08098888: .4byte 0x000011f6
+_0809888C:
+ movs r0, 0
+ b _08098892
+_08098890:
+ movs r0, 0x1
+_08098892:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098830
+
+ thumb_func_start sub_8098898
+sub_8098898: @ 8098898
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0xA
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _080988C4 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x6
+ bls _080988B8
+ b _080989F4
+_080988B8:
+ lsls r0, 2
+ ldr r1, _080988C8 @ =_080988CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080988C4: .4byte gUnknown_083B6DF4
+_080988C8: .4byte _080988CC
+ .align 2, 0
+_080988CC:
+ .4byte _080989F4
+ .4byte _08098930
+ .4byte _080988E8
+ .4byte _08098974
+ .4byte _08098954
+ .4byte _08098910
+ .4byte _080989B8
+_080988E8:
+ ldr r4, _08098904 @ =0x02002694
+ ldr r1, _08098908 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _0809890C @ =0xffffeb66
+ adds r4, r0
+ adds r0, r2, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_08098904: .4byte 0x02002694
+_08098908: .4byte gUnknown_083B6DF4
+_0809890C: .4byte 0xffffeb66
+_08098910:
+ ldr r4, _08098928 @ =0x02002694
+ ldr r1, _0809892C @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r4, 0x50
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_08098928: .4byte 0x02002694
+_0809892C: .4byte gUnknown_083B6DF4
+_08098930:
+ ldr r0, _08098948 @ =0x02002694
+ ldr r2, _0809894C @ =0xffffeb66
+ adds r1, r0, r2
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08098950 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ b _080989FE
+ .align 2, 0
+_08098948: .4byte 0x02002694
+_0809894C: .4byte 0xffffeb66
+_08098950: .4byte gUnknown_083B6DF4
+_08098954:
+ ldr r0, _0809896C @ =0x02002694
+ adds r1, r0, 0
+ adds r1, 0x50
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08098970 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ b _080989FE
+ .align 2, 0
+_0809896C: .4byte 0x02002694
+_08098970: .4byte gUnknown_083B6DF4
+_08098974:
+ ldr r1, _080989AC @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r4, r6, r4
+ adds r4, 0x1
+ ldr r5, _080989B0 @ =0x02002694
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080989B4 @ =0xffffeb66
+ adds r5, r0
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_080989AC: .4byte gUnknown_083B6DF4
+_080989B0: .4byte 0x02002694
+_080989B4: .4byte 0xffffeb66
+_080989B8:
+ ldr r1, _080989EC @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r4, r6, r4
+ subs r4, 0x1
+ ldr r5, _080989F0 @ =0x02002694
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl StringCopy
+ adds r2, r0, 0
+ subs r0, r2, 0x1
+ adds r5, 0x50
+ adds r1, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_080989EC: .4byte gUnknown_083B6DF4
+_080989F0: .4byte 0x02002694
+_080989F4:
+ ldr r0, _08098A2C @ =0x02002694
+ ldr r2, _08098A30 @ =gUnknown_083B6DF4
+ lsls r1, r5, 3
+ adds r1, r2
+ ldr r1, [r1]
+_080989FE:
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _08098A34 @ =0x020026a6
+ adds r3, r0, 0
+ subs r3, 0x12
+ cmp r2, r0
+ bcs _08098A18
+ movs r1, 0
+_08098A10:
+ strb r1, [r2]
+ adds r2, 0x1
+ cmp r2, r0
+ bcc _08098A10
+_08098A18:
+ movs r0, 0xFF
+ strb r0, [r2]
+ adds r0, r3, 0
+ movs r1, 0xB
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098A2C: .4byte 0x02002694
+_08098A30: .4byte gUnknown_083B6DF4
+_08098A34: .4byte 0x020026a6
+ thumb_func_end sub_8098898
+
+ thumb_func_start sub_8098A38
+sub_8098A38: @ 8098A38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0
+ bl DisplayYesNoMenu
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl MoveMenuCursor
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A38
+
+ thumb_func_start sub_8098A5C
+sub_8098A5C: @ 8098A5C
+ push {lr}
+ bl sub_8072DEC
+ movs r0, 0xA
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A5C
+
+ thumb_func_start sub_8098A80
+sub_8098A80: @ 8098A80
+ push {lr}
+ bl sub_809CDCC
+ movs r0, 0xC
+ bl sub_809CDEC
+ movs r0, 0xD
+ bl sub_809CDEC
+ movs r0, 0xE
+ bl sub_809CDEC
+ movs r0, 0xF
+ bl sub_809CDEC
+ bl sub_809CE84
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A80
+
+ thumb_func_start sub_8098AA8
+sub_8098AA8: @ 8098AA8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_809CDCC
+ cmp r4, 0x1
+ beq _08098AE6
+ cmp r4, 0x1
+ bgt _08098AC2
+ cmp r4, 0
+ beq _08098ACC
+ b _08098B32
+_08098AC2:
+ cmp r5, 0x2
+ beq _08098B00
+ cmp r5, 0x3
+ beq _08098B1A
+ b _08098B32
+_08098ACC:
+ movs r0, 0x10
+ bl sub_809CDEC
+ movs r0, 0x11
+ bl sub_809CDEC
+ movs r0, 0x12
+ bl sub_809CDEC
+ movs r0, 0x13
+ bl sub_809CDEC
+ b _08098B32
+_08098AE6:
+ movs r0, 0x14
+ bl sub_809CDEC
+ movs r0, 0x15
+ bl sub_809CDEC
+ movs r0, 0x16
+ bl sub_809CDEC
+ movs r0, 0x17
+ bl sub_809CDEC
+ b _08098B32
+_08098B00:
+ movs r0, 0x18
+ bl sub_809CDEC
+ movs r0, 0x19
+ bl sub_809CDEC
+ movs r0, 0x1A
+ bl sub_809CDEC
+ movs r0, 0x1B
+ bl sub_809CDEC
+ b _08098B32
+_08098B1A:
+ movs r0, 0x1C
+ bl sub_809CDEC
+ movs r0, 0x1D
+ bl sub_809CDEC
+ movs r0, 0x1E
+ bl sub_809CDEC
+ movs r0, 0x1F
+ bl sub_809CDEC
+_08098B32:
+ bl sub_809CE84
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098AA8
+
+ thumb_func_start get_preferred_box
+get_preferred_box: @ 8098B3C
+ ldr r0, _08098B44 @ =gPokemonStorage
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08098B44: .4byte gPokemonStorage
+ thumb_func_end get_preferred_box
+
+ thumb_func_start sub_8098B48
+sub_8098B48: @ 8098B48
+ push {r4,r5,lr}
+ bl sub_809D51C
+ movs r2, 0
+ ldr r1, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r1]
+ ldr r4, _08098BDC @ =0x000010d0
+ adds r3, r0, r4
+ movs r4, 0
+ adds r5, r1, 0
+_08098B5C:
+ lsls r0, r2, 1
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _08098B5C
+ movs r2, 0
+ ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 5
+ adds r3, r0, r1
+ movs r1, 0
+_08098B7A:
+ lsls r0, r2, 1
+ adds r0, r3, r0
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _08098B7A
+ movs r2, 0
+ ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r4, _08098BE0 @ =0x00001038
+ adds r3, r0, r4
+ movs r1, 0
+_08098B96:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ str r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _08098B96
+ movs r2, 0
+ ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08098BE4 @ =0x00001050
+ adds r3, r0, r1
+ movs r1, 0
+_08098BB2:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ str r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _08098BB2
+ ldr r0, [r5]
+ ldr r2, _08098BE8 @ =0x00001034
+ adds r1, r0, r2
+ movs r2, 0
+ str r2, [r1]
+ ldr r4, _08098BEC @ =0x00000d5c
+ adds r0, r4
+ strh r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098BD8: .4byte gUnknown_083B6DB4
+_08098BDC: .4byte 0x000010d0
+_08098BE0: .4byte 0x00001038
+_08098BE4: .4byte 0x00001050
+_08098BE8: .4byte 0x00001034
+_08098BEC: .4byte 0x00000d5c
+ thumb_func_end sub_8098B48
+
+ thumb_func_start sub_8098BF0
+sub_8098BF0: @ 8098BF0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _08098C38 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _08098C3C @ =0x000025b4
+ adds r4, r5, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x7
+ str r1, [sp, 0x4]
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8099AFC
+ ldr r1, _08098C40 @ =0x00001034
+ adds r5, r1
+ str r0, [r5]
+ ldr r1, _08098C44 @ =sub_80999C4
+ str r1, [r0, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098C38: .4byte gUnknown_083B6DB4
+_08098C3C: .4byte 0x000025b4
+_08098C40: .4byte 0x00001034
+_08098C44: .4byte sub_80999C4
+ thumb_func_end sub_8098BF0
+
+ thumb_func_start sub_8098C48
+sub_8098C48: @ 8098C48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _08098CCC @ =gPokemonStorage + 0x4
+ adds r6, r0, r1
+ movs r0, 0
+ mov r8, r0
+ movs r7, 0
+_08098C6A:
+ movs r5, 0
+ adds r1, r7, 0x1
+ mov r9, r1
+_08098C70:
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08098CD8
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ lsls r2, r5, 1
+ adds r2, r5
+ lsls r2, 19
+ movs r3, 0xC8
+ lsls r3, 15
+ adds r2, r3
+ asrs r2, 16
+ lsls r3, r7, 1
+ adds r3, r7
+ lsls r3, 19
+ movs r0, 0xB0
+ lsls r0, 14
+ adds r3, r0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x12
+ subs r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ asrs r3, 16
+ bl sub_8099AFC
+ ldr r1, _08098CD0 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ mov r3, r8
+ lsls r2, r3, 2
+ ldr r3, _08098CD4 @ =0x00001050
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ b _08098CE8
+ .align 2, 0
+_08098CCC: .4byte gPokemonStorage + 0x4
+_08098CD0: .4byte gUnknown_083B6DB4
+_08098CD4: .4byte 0x00001050
+_08098CD8:
+ ldr r0, _08098D18 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08098D1C @ =0x00001050
+ adds r0, r3
+ adds r0, r1
+ str r4, [r0]
+_08098CE8:
+ adds r6, 0x50
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08098C70
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _08098C6A
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098D18: .4byte gUnknown_083B6DB4
+_08098D1C: .4byte 0x00001050
+ thumb_func_end sub_8098C48
+
+ thumb_func_start sub_8098D20
+sub_8098D20: @ 8098D20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r2, r1, 4
+ subs r2, r1
+ lsls r2, 5
+ lsls r0, r4, 2
+ mov r9, r0
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08098DD4 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r7, r2, r0
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _08098DC4
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ adds r6, r0, 0
+ lsls r0, r6, 24
+ lsrs r0, 24
+ lsls r5, r0, 1
+ adds r5, r0
+ lsls r5, 19
+ movs r1, 0xC8
+ lsls r1, 15
+ adds r5, r1
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 19
+ movs r2, 0xB0
+ lsls r2, 14
+ adds r4, r2
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x12
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ mov r0, r8
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8099AFC
+ ldr r1, _08098DD8 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _08098DDC @ =0x00001050
+ adds r1, r2
+ add r1, r9
+ str r0, [r1]
+_08098DC4:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098DD4: .4byte gPokemonStorage + 0x4
+_08098DD8: .4byte gUnknown_083B6DB4
+_08098DDC: .4byte 0x00001050
+ thumb_func_end sub_8098D20
+
+ thumb_func_start sub_8098DE0
+sub_8098DE0: @ 8098DE0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r2, 0
+ ldr r0, _08098E18 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08098E1C @ =0x00001050
+ adds r3, r0, r1
+ movs r6, 0x1
+ ldr r5, _08098E20 @ =sub_8098E68
+_08098DF4:
+ lsls r0, r2, 2
+ adds r1, r3, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08098E08
+ strh r4, [r0, 0x32]
+ ldr r0, [r1]
+ strh r6, [r0, 0x36]
+ ldr r0, [r1]
+ str r5, [r0, 0x1C]
+_08098E08:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _08098DF4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E18: .4byte gUnknown_083B6DB4
+_08098E1C: .4byte 0x00001050
+_08098E20: .4byte sub_8098E68
+ thumb_func_end sub_8098DE0
+
+ thumb_func_start sub_8098E24
+sub_8098E24: @ 8098E24
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08098E40
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ b _08098E56
+_08098E40:
+ ldr r0, _08098E5C @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r3, _08098E60 @ =0x00001178
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r2, 0x34]
+ strh r0, [r2, 0x20]
+ ldr r0, _08098E64 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_08098E56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E5C: .4byte gUnknown_083B6DB4
+_08098E60: .4byte 0x00001178
+_08098E64: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098E24
+
+ thumb_func_start sub_8098E68
+sub_8098E68: @ 8098E68
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x36]
+ movs r3, 0x36
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08098E7C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x36]
+ b _08098E98
+_08098E7C:
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ subs r0, 0x45
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB6
+ bls _08098E98
+ ldr r0, _08098E9C @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_08098E98:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E9C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098E68
+
+ thumb_func_start sub_8098EA0
+sub_8098EA0: @ 8098EA0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r0, _08098ED8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08098EDC @ =0x00001050
+ adds r7, r0, r1
+_08098EB0:
+ lsls r0, r5, 2
+ adds r4, r7, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08098EC2
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_08098EC2:
+ adds r0, r5, 0x6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _08098EB0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098ED8: .4byte gUnknown_083B6DB4
+_08098EDC: .4byte 0x00001050
+ thumb_func_end sub_8098EA0
+
+ thumb_func_start sub_8098EE0
+sub_8098EE0: @ 8098EE0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x8]
+ lsls r2, 16
+ movs r0, 0x2C
+ str r0, [sp, 0x10]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 19
+ movs r1, 0xC8
+ lsls r1, 15
+ adds r0, r1
+ lsrs r0, 16
+ mov r10, r0
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ lsrs r3, r2, 16
+ str r3, [sp, 0xC]
+ asrs r2, 16
+ adds r1, r0, 0
+ muls r1, r2
+ mov r4, r10
+ subs r1, r4, r1
+ movs r0, 0x12
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ movs r0, 0
+ str r0, [sp, 0x14]
+ mov r9, r0
+ ldr r0, _08098FF8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _08098FFC @ =0x0000117d
+ adds r2, r0
+ mov r8, r2
+ ldr r3, _08099000 @ =0x00001050
+ adds r3, r0, r3
+ str r3, [sp, 0x20]
+ lsls r1, 16
+ str r1, [sp, 0x1C]
+_08098F42:
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r7, r6, 2
+ adds r1, r7, r6
+ lsls r1, 4
+ ldr r2, _08099004 @ =gPokemonStorage + 0x4
+ adds r4, r1, r2
+ adds r0, r4
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _08098FC8
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r0, r4
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ ldr r2, [sp, 0x10]
+ lsls r3, r2, 16
+ asrs r3, 16
+ movs r0, 0x2
+ str r0, [sp]
+ ldr r4, [sp, 0x18]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ ldr r4, [sp, 0x1C]
+ asrs r2, r4, 16
+ bl sub_8099AFC
+ ldr r2, [sp, 0x20]
+ adds r1, r2, r7
+ str r0, [r1]
+ cmp r0, 0
+ beq _08098FC8
+ mov r3, sp
+ ldrh r3, [r3, 0x8]
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ mov r4, sp
+ ldrh r4, [r4, 0xC]
+ strh r4, [r0, 0x32]
+ ldr r0, [r1]
+ mov r2, r10
+ strh r2, [r0, 0x34]
+ ldr r1, [r1]
+ ldr r0, _08099008 @ =sub_8098E24
+ str r0, [r1, 0x1C]
+ ldr r0, [sp, 0x14]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+_08098FC8:
+ adds r0, r6, 0x6
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x10]
+ adds r0, 0x18
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x4
+ bls _08098F42
+ ldr r0, [sp, 0x14]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098FF8: .4byte gUnknown_083B6DB4
+_08098FFC: .4byte 0x0000117d
+_08099000: .4byte 0x00001050
+_08099004: .4byte gPokemonStorage + 0x4
+_08099008: .4byte sub_8098E24
+ thumb_func_end sub_8098EE0
+
+ thumb_func_start sub_809900C
+sub_809900C: @ 809900C
+ push {r4-r6,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _08099058 @ =gUnknown_083B6DB4
+ ldr r5, [r4]
+ ldr r3, _0809905C @ =0x0000117c
+ adds r2, r5, r3
+ movs r3, 0
+ strb r3, [r2]
+ ldr r6, _08099060 @ =0x0000117d
+ adds r2, r5, r6
+ strb r0, [r2]
+ ldr r2, _08099064 @ =0x0000117b
+ adds r0, r5, r2
+ strb r1, [r0]
+ subs r6, 0xB
+ adds r2, r5, r6
+ movs r0, 0x20
+ strh r0, [r2]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ negs r0, r0
+ adds r6, 0x4
+ adds r2, r5, r6
+ strh r0, [r2]
+ ldr r2, _08099068 @ =0x00001178
+ adds r0, r5, r2
+ strh r3, [r0]
+ cmp r1, 0
+ ble _08099070
+ ldr r3, _0809906C @ =0x0000117a
+ adds r1, r5, r3
+ movs r0, 0
+ b _08099076
+ .align 2, 0
+_08099058: .4byte gUnknown_083B6DB4
+_0809905C: .4byte 0x0000117c
+_08099060: .4byte 0x0000117d
+_08099064: .4byte 0x0000117b
+_08099068: .4byte 0x00001178
+_0809906C: .4byte 0x0000117a
+_08099070:
+ ldr r6, _080990A0 @ =0x0000117a
+ adds r1, r5, r6
+ movs r0, 0x5
+_08099076:
+ strb r0, [r1]
+ ldr r2, [r4]
+ ldr r1, _080990A0 @ =0x0000117a
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x64
+ ldr r3, _080990A4 @ =0x00001174
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r6, _080990A8 @ =0x00001176
+ adds r2, r6
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ bl sub_8098DE0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080990A0: .4byte 0x0000117a
+_080990A4: .4byte 0x00001174
+_080990A8: .4byte 0x00001176
+ thumb_func_end sub_809900C
+
+ thumb_func_start sub_80990AC
+sub_80990AC: @ 80990AC
+ push {r4-r6,lr}
+ ldr r0, _080990D4 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _080990D8 @ =0x00001172
+ adds r3, r4, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _080990C0
+ subs r0, 0x1
+ strh r0, [r3]
+_080990C0:
+ ldr r1, _080990DC @ =0x0000117c
+ adds r6, r4, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08099138
+ cmp r0, 0x1
+ bgt _080990E0
+ cmp r0, 0
+ beq _080990E8
+ b _080991F0
+ .align 2, 0
+_080990D4: .4byte gUnknown_083B6DB4
+_080990D8: .4byte 0x00001172
+_080990DC: .4byte 0x0000117c
+_080990E0:
+ cmp r0, 0x2
+ bne _080990E6
+ b _080991E0
+_080990E6:
+ b _080991F0
+_080990E8:
+ ldr r2, _0809912C @ =0x00001174
+ adds r5, r4, r2
+ ldr r3, _08099130 @ =0x00001176
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBA
+ bhi _08099104
+ b _080991F8
+_08099104:
+ adds r2, 0x6
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_8098EA0
+ ldr r3, _08099134 @ =0x0000117b
+ adds r0, r4, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _080991F8
+ .align 2, 0
+_0809912C: .4byte 0x00001174
+_08099130: .4byte 0x00001176
+_08099134: .4byte 0x0000117b
+_08099138:
+ ldr r2, _08099194 @ =0x00001174
+ adds r1, r4, r2
+ ldr r5, _08099198 @ =0x00001176
+ adds r2, r4, r5
+ ldrh r0, [r2]
+ ldrh r5, [r1]
+ adds r0, r5
+ strh r0, [r1]
+ ldr r0, _0809919C @ =0x0000117a
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ ldrh r1, [r3]
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ bl sub_8098EE0
+ ldr r2, _080991A0 @ =0x00001178
+ adds r1, r4, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, _080991A4 @ =0x0000117b
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ ble _08099178
+ ldrb r0, [r5]
+ cmp r0, 0x5
+ beq _08099182
+_08099178:
+ cmp r1, 0
+ bge _080991B0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080991B0
+_08099182:
+ ldr r0, _080991A8 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _080991AC @ =0x0000117c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080991F8
+ .align 2, 0
+_08099194: .4byte 0x00001174
+_08099198: .4byte 0x00001176
+_0809919C: .4byte 0x0000117a
+_080991A0: .4byte 0x00001178
+_080991A4: .4byte 0x0000117b
+_080991A8: .4byte gUnknown_083B6DB4
+_080991AC: .4byte 0x0000117c
+_080991B0:
+ ldr r0, _080991D0 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r5, _080991D4 @ =0x0000117a
+ adds r3, r1, r5
+ ldr r2, _080991D8 @ =0x0000117b
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldrb r5, [r3]
+ adds r0, r5
+ movs r2, 0
+ strb r0, [r3]
+ ldr r0, _080991DC @ =0x0000117c
+ adds r1, r0
+ strb r2, [r1]
+ b _080991F8
+ .align 2, 0
+_080991D0: .4byte gUnknown_083B6DB4
+_080991D4: .4byte 0x0000117a
+_080991D8: .4byte 0x0000117b
+_080991DC: .4byte 0x0000117c
+_080991E0:
+ ldr r1, _080991F4 @ =0x00001178
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080991F8
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080991F0:
+ movs r0, 0
+ b _080991FA
+ .align 2, 0
+_080991F4: .4byte 0x00001178
+_080991F8:
+ movs r0, 0x1
+_080991FA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80990AC
+
+ thumb_func_start sub_8099200
+sub_8099200: @ 8099200
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080992A0 @ =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x68
+ movs r3, 0x40
+ bl sub_8099AFC
+ ldr r1, _080992A4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _080992A8 @ =0x00001038
+ adds r1, r2
+ str r0, [r1]
+ movs r7, 0x1
+ movs r6, 0x1
+_08099246:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _080992A0 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080992AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ subs r0, r6, 0x1
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r3, 19
+ movs r0, 0x80
+ lsls r0, 13
+ adds r3, r0
+ asrs r3, 16
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x98
+ bl sub_8099AFC
+ ldr r1, _080992A4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ lsls r2, r6, 2
+ ldr r3, _080992A8 @ =0x00001038
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080992BA
+ .align 2, 0
+_080992A0: .4byte gPlayerParty
+_080992A4: .4byte gUnknown_083B6DB4
+_080992A8: .4byte 0x00001038
+_080992AC:
+ ldr r0, _08099308 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0809930C @ =0x00001038
+ adds r0, r2
+ adds r0, r1
+ str r5, [r0]
+_080992BA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _08099246
+ mov r3, r8
+ cmp r3, 0
+ bne _080992FA
+ movs r6, 0
+ cmp r6, r7
+ bcs _080992FA
+ ldr r0, _08099308 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809930C @ =0x00001038
+ adds r3, r0, r1
+ movs r4, 0x4
+_080992DA:
+ lsls r1, r6, 2
+ adds r1, r3, r1
+ ldr r2, [r1]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0xA0
+ strh r0, [r2, 0x22]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080992DA
+_080992FA:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099308: .4byte gUnknown_083B6DB4
+_0809930C: .4byte 0x00001038
+ thumb_func_end sub_8099200
+
+ thumb_func_start sub_8099310
+sub_8099310: @ 8099310
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08099368 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _0809936C @ =0x00001171
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ movs r6, 0
+ mov r8, r2
+ ldr r7, _0809936C @ =0x00001171
+ add r7, r8
+_0809932C:
+ lsls r1, r5, 2
+ ldr r0, _08099370 @ =0x00001038
+ add r0, r8
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099354
+ cmp r5, r6
+ beq _0809934E
+ adds r1, r6, 0
+ bl sub_8099388
+ movs r0, 0
+ str r0, [r4]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+_0809934E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08099354:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809932C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099368: .4byte gUnknown_083B6DB4
+_0809936C: .4byte 0x00001171
+_08099370: .4byte 0x00001038
+ thumb_func_end sub_8099310
+
+ thumb_func_start sub_8099374
+sub_8099374: @ 8099374
+ ldr r0, _08099380 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099384 @ =0x00001171
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08099380: .4byte gUnknown_083B6DB4
+_08099384: .4byte 0x00001171
+ thumb_func_end sub_8099374
+
+ thumb_func_start sub_8099388
+sub_8099388: @ 8099388
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ strh r1, [r2, 0x30]
+ cmp r1, 0
+ bne _0809939C
+ movs r3, 0x68
+ movs r4, 0x40
+ b _080993AE
+_0809939C:
+ movs r3, 0x98
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 19
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+_080993AE:
+ ldrh r0, [r2, 0x20]
+ lsls r0, 3
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x22]
+ lsls r0, 3
+ strh r0, [r2, 0x34]
+ lsls r1, r3, 3
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080993C8
+ adds r0, 0x7
+_080993C8:
+ asrs r0, 3
+ strh r0, [r2, 0x36]
+ lsls r0, r4, 16
+ asrs r0, 13
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ subs r0, r1
+ cmp r0, 0
+ bge _080993DC
+ adds r0, 0x7
+_080993DC:
+ asrs r0, 3
+ strh r0, [r2, 0x38]
+ movs r0, 0x8
+ strh r0, [r2, 0x3A]
+ ldr r0, _080993F0 @ =sub_80993F4
+ str r0, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080993F0: .4byte sub_80993F4
+ thumb_func_end sub_8099388
+
+ thumb_func_start sub_80993F4
+sub_80993F4: @ 80993F4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08099424
+ ldrh r0, [r3, 0x36]
+ ldrh r4, [r3, 0x32]
+ adds r0, r4
+ strh r0, [r3, 0x32]
+ ldrh r1, [r3, 0x38]
+ ldrh r4, [r3, 0x34]
+ adds r1, r4
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r3, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r3, 0x22]
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _08099468
+_08099424:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08099434
+ movs r0, 0x68
+ strh r0, [r3, 0x20]
+ movs r0, 0x40
+ b _08099446
+_08099434:
+ movs r0, 0x98
+ strh r0, [r3, 0x20]
+ movs r4, 0x30
+ ldrsh r1, [r3, r4]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x10
+_08099446:
+ strh r0, [r3, 0x22]
+ ldr r0, _08099470 @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+ ldr r0, _08099474 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 2
+ ldr r4, _08099478 @ =0x00001038
+ adds r0, r2, r4
+ adds r0, r1
+ str r3, [r0]
+ ldr r0, _0809947C @ =0x00001171
+ adds r2, r0
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+_08099468:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099470: .4byte SpriteCallbackDummy
+_08099474: .4byte gUnknown_083B6DB4
+_08099478: .4byte 0x00001038
+_0809947C: .4byte 0x00001171
+ thumb_func_end sub_80993F4
+
+ thumb_func_start sub_8099480
+sub_8099480: @ 8099480
+ push {r4,lr}
+ ldr r0, _080994A0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _080994A4 @ =0x00001034
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099498
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_08099498:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080994A0: .4byte gUnknown_083B6DB4
+_080994A4: .4byte 0x00001034
+ thumb_func_end sub_8099480
+
+ thumb_func_start sub_80994A8
+sub_80994A8: @ 80994A8
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r1, _080994FC @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _08099500 @ =0x00001038
+ adds r5, r1, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r6, 0x5
+ negs r6, r6
+_080994BC:
+ lsls r0, r3, 2
+ adds r2, r5, r0
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _0809950E
+ ldrh r0, [r1, 0x22]
+ adds r0, r4, r0
+ strh r0, [r1, 0x22]
+ ldr r2, [r2]
+ ldrh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x22]
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _08099504
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0809950E
+ .align 2, 0
+_080994FC: .4byte gUnknown_083B6DB4
+_08099500: .4byte 0x00001038
+_08099504:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r2]
+_0809950E:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080994BC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80994A8
+
+ thumb_func_start sub_8099520
+sub_8099520: @ 8099520
+ push {r4,lr}
+ lsls r0, 24
+ ldr r1, _08099544 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ lsrs r0, 22
+ ldr r2, _08099548 @ =0x00001038
+ adds r1, r2
+ adds r4, r1, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0809953E
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_0809953E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099544: .4byte gUnknown_083B6DB4
+_08099548: .4byte 0x00001038
+ thumb_func_end sub_8099520
+
+ thumb_func_start sub_809954C
+sub_809954C: @ 809954C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _0809957C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099580 @ =0x00001038
+ adds r6, r0, r1
+_08099558:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0809956A
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_0809956A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08099558
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809957C: .4byte gUnknown_083B6DB4
+_08099580: .4byte 0x00001038
+ thumb_func_end sub_809954C
+
+ thumb_func_start sub_8099584
+sub_8099584: @ 8099584
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ cmp r4, 0
+ bne _080995B4
+ ldr r3, _080995AC @ =gUnknown_083B6DB4
+ ldr r0, [r3]
+ ldr r5, _080995B0 @ =0x00001034
+ adds r2, r0, r5
+ lsls r1, 2
+ adds r5, 0x4
+ adds r0, r5
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r4, [r0]
+ b _080995D0
+ .align 2, 0
+_080995AC: .4byte gUnknown_083B6DB4
+_080995B0: .4byte 0x00001034
+_080995B4:
+ cmp r4, 0x1
+ bne _080995F4
+ ldr r3, _080995FC @ =gUnknown_083B6DB4
+ ldr r0, [r3]
+ ldr r1, _08099600 @ =0x00001034
+ adds r2, r0, r1
+ lsls r1, r5, 2
+ ldr r4, _08099604 @ =0x00001050
+ adds r0, r4
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ movs r1, 0
+ str r1, [r0]
+_080995D0:
+ ldr r2, [r3]
+ ldr r5, _08099600 @ =0x00001034
+ adds r2, r5
+ ldr r1, [r2]
+ ldr r0, _08099608 @ =sub_80999C4
+ str r0, [r1, 0x1C]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080995F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080995FC: .4byte gUnknown_083B6DB4
+_08099600: .4byte 0x00001034
+_08099604: .4byte 0x00001050
+_08099608: .4byte sub_80999C4
+ thumb_func_end sub_8099584
+
+ thumb_func_start sub_809960C
+sub_809960C: @ 809960C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r0, 0xE
+ bne _08099654
+ ldr r4, _08099648 @ =gUnknown_083B6DB4
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ ldr r2, _0809964C @ =0x00001038
+ adds r3, r0, r2
+ adds r3, r1
+ ldr r1, _08099650 @ =0x00001034
+ adds r0, r1
+ ldr r2, [r0]
+ str r2, [r3]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r3]
+ adds r0, 0x43
+ movs r1, 0xB
+ strb r1, [r0]
+ b _0809968A
+ .align 2, 0
+_08099648: .4byte gUnknown_083B6DB4
+_0809964C: .4byte 0x00001038
+_08099650: .4byte 0x00001034
+_08099654:
+ ldr r5, _080996A0 @ =gUnknown_083B6DB4
+ ldr r0, [r5]
+ lsls r1, r6, 2
+ ldr r2, _080996A4 @ =0x00001050
+ adds r3, r0, r2
+ adds r3, r1
+ ldr r1, _080996A8 @ =0x00001034
+ adds r0, r1
+ ldr r2, [r0]
+ str r2, [r3]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r4, [r3]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl __umodsi3
+ movs r1, 0x12
+ subs r1, r0
+ adds r4, 0x43
+ strb r1, [r4]
+ adds r4, r5, 0
+_0809968A:
+ ldr r1, [r4]
+ ldr r2, _080996A8 @ =0x00001034
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r0, _080996AC @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ movs r0, 0
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080996A0: .4byte gUnknown_083B6DB4
+_080996A4: .4byte 0x00001050
+_080996A8: .4byte 0x00001034
+_080996AC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809960C
+
+ thumb_func_start sub_80996B0
+sub_80996B0: @ 80996B0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0xE
+ bne _080996D8
+ ldr r3, _080996CC @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _080996D0 @ =0x000010c8
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _080996D4 @ =0x00001038
+ b _080996E4
+ .align 2, 0
+_080996CC: .4byte gUnknown_083B6DB4
+_080996D0: .4byte 0x000010c8
+_080996D4: .4byte 0x00001038
+_080996D8:
+ ldr r3, _08099704 @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _08099708 @ =0x000010c8
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _0809970C @ =0x00001050
+_080996E4:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ ldr r1, [r3]
+ ldr r2, _08099710 @ =0x00001034
+ adds r0, r1, r2
+ ldr r2, [r0]
+ ldr r0, _08099714 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ ldr r4, _08099718 @ =0x00001170
+ adds r1, r4
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099704: .4byte gUnknown_083B6DB4
+_08099708: .4byte 0x000010c8
+_0809970C: .4byte 0x00001050
+_08099710: .4byte 0x00001034
+_08099714: .4byte SpriteCallbackDummy
+_08099718: .4byte 0x00001170
+ thumb_func_end sub_80996B0
+
+ thumb_func_start sub_809971C
+sub_809971C: @ 809971C
+ push {r4-r7,lr}
+ ldr r0, _08099730 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _08099734 @ =0x00001170
+ adds r7, r2, r0
+ ldrb r0, [r7]
+ cmp r0, 0x10
+ bne _08099738
+ movs r0, 0
+ b _08099800
+ .align 2, 0
+_08099730: .4byte gUnknown_083B6DB4
+_08099734: .4byte 0x00001170
+_08099738:
+ adds r0, 0x1
+ strb r0, [r7]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809975E
+ ldr r1, _08099808 @ =0x000010c8
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x1
+ strh r0, [r1, 0x22]
+ ldr r4, _0809980C @ =0x00001034
+ adds r0, r2, r4
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+_0809975E:
+ ldr r0, _08099808 @ =0x000010c8
+ adds r5, r2, r0
+ ldr r0, [r5]
+ ldr r1, [r0]
+ ldr r3, _08099810 @ =gSineTable
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bge _08099778
+ adds r0, 0xF
+_08099778:
+ asrs r0, 4
+ strh r0, [r1, 0x24]
+ ldr r0, _0809980C @ =0x00001034
+ adds r6, r2, r0
+ ldr r1, [r6]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _08099792
+ adds r0, 0xF
+_08099792:
+ asrs r0, 4
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r7]
+ cmp r0, 0x8
+ bne _080997DE
+ ldr r4, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ movs r2, 0xC
+ ands r2, r0
+ ldrb r3, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldr r2, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r2, 0x43
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x5]
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080997DE:
+ ldrb r0, [r7]
+ cmp r0, 0x10
+ bne _080997FE
+ ldr r1, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ str r0, [r6]
+ ldr r0, [r5]
+ str r1, [r0]
+ ldr r1, [r6]
+ ldr r0, _08099814 @ =sub_80999C4
+ str r0, [r1, 0x1C]
+ ldr r0, [r5]
+ ldr r1, [r0]
+ ldr r0, _08099818 @ =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_080997FE:
+ movs r0, 0x1
+_08099800:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08099808: .4byte 0x000010c8
+_0809980C: .4byte 0x00001034
+_08099810: .4byte gSineTable
+_08099814: .4byte sub_80999C4
+_08099818: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809971C
+
+ thumb_func_start sub_809981C
+sub_809981C: @ 809981C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0x1
+ beq _08099858
+ cmp r0, 0x1
+ bgt _08099836
+ cmp r0, 0
+ beq _0809983C
+ b _080998C0
+_08099836:
+ cmp r2, 0x2
+ beq _0809987C
+ b _080998C0
+_0809983C:
+ ldr r3, _0809984C @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _08099850 @ =0x000010cc
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _08099854 @ =0x00001038
+ b _08099864
+ .align 2, 0
+_0809984C: .4byte gUnknown_083B6DB4
+_08099850: .4byte 0x000010cc
+_08099854: .4byte 0x00001038
+_08099858:
+ ldr r3, _08099870 @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _08099874 @ =0x000010cc
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _08099878 @ =0x00001050
+_08099864:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0
+ b _0809988A
+ .align 2, 0
+_08099870: .4byte gUnknown_083B6DB4
+_08099874: .4byte 0x000010cc
+_08099878: .4byte 0x00001050
+_0809987C:
+ ldr r0, _080998C8 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r3, _080998CC @ =0x000010cc
+ adds r2, r1, r3
+ ldr r4, _080998D0 @ =0x00001034
+ adds r1, r4
+ str r1, [r2]
+_0809988A:
+ ldr r0, [r0]
+ ldr r1, _080998CC @ =0x000010cc
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080998C0
+ bl InitSpriteAffineAnim
+ ldr r0, [r4]
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _080998D4 @ =gUnknown_083B6F5C
+ str r0, [r1, 0x10]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_080998C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080998C8: .4byte gUnknown_083B6DB4
+_080998CC: .4byte 0x000010cc
+_080998D0: .4byte 0x00001034
+_080998D4: .4byte gUnknown_083B6F5C
+ thumb_func_end sub_809981C
+
+ thumb_func_start sub_80998D8
+sub_80998D8: @ 80998D8
+ push {lr}
+ ldr r0, _080998FC @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099900 @ =0x000010cc
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080998F8
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _08099904
+_080998F8:
+ movs r0, 0
+ b _0809991A
+ .align 2, 0
+_080998FC: .4byte gUnknown_083B6DB4
+_08099900: .4byte 0x000010cc
+_08099904:
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08099918
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+_08099918:
+ movs r0, 0x1
+_0809991A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80998D8
+
+ thumb_func_start sub_8099920
+sub_8099920: @ 8099920
+ push {r4,lr}
+ ldr r0, _08099950 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099954 @ =0x000010cc
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809994A
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl sub_8099BE0
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_0809994A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099950: .4byte gUnknown_083B6DB4
+_08099954: .4byte 0x000010cc
+ thumb_func_end sub_8099920
+
+ thumb_func_start sub_8099958
+sub_8099958: @ 8099958
+ push {lr}
+ ldr r0, _08099988 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809998C @ =0x000010cc
+ adds r3, r0, r1
+ ldr r0, [r3]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08099982
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08099982:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099988: .4byte gUnknown_083B6DB4
+_0809998C: .4byte 0x000010cc
+ thumb_func_end sub_8099958
+
+ thumb_func_start sub_8099990
+sub_8099990: @ 8099990
+ push {lr}
+ ldr r0, _080999A4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _080999A8 @ =0x000010cc
+ adds r2, r0, r1
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080999AC
+ movs r0, 0
+ b _080999C0
+ .align 2, 0
+_080999A4: .4byte gUnknown_083B6DB4
+_080999A8: .4byte 0x000010cc
+_080999AC:
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080999BE
+ movs r0, 0
+ str r0, [r2]
+_080999BE:
+ movs r0, 0x1
+_080999C0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099990
+
+ thumb_func_start sub_80999C4
+sub_80999C4: @ 80999C4
+ ldr r1, _080999E4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ movs r2, 0x8E
+ lsls r2, 5
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r2, [r1]
+ ldrh r1, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r1, r2
+ adds r1, 0x4
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080999E4: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_80999C4
+
+ thumb_func_start sub_80999E8
+sub_80999E8: @ 80999E8
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, _08099A58 @ =gUnknown_083B6DB4
+ ldr r0, [r1]
+ movs r2, 0x89
+ lsls r2, 5
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, r3
+ beq _08099A20
+ adds r6, r2, 0
+ movs r5, 0x89
+ lsls r5, 5
+_08099A08:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _08099A20
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _08099A08
+_08099A20:
+ cmp r4, 0x28
+ bne _08099A60
+ movs r4, 0
+ ldr r0, [r2]
+ movs r5, 0x89
+ lsls r5, 5
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08099A4E
+ adds r6, r2, 0
+_08099A36:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _08099A4E
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08099A36
+_08099A4E:
+ cmp r4, 0x28
+ bne _08099A60
+ ldr r0, _08099A5C @ =0x0000ffff
+ b _08099A94
+ .align 2, 0
+_08099A58: .4byte gUnknown_083B6DB4
+_08099A5C: .4byte 0x0000ffff
+_08099A60:
+ ldr r1, [r2]
+ lsls r2, r4, 1
+ movs r5, 0x89
+ lsls r5, 5
+ adds r0, r1, r5
+ adds r0, r2
+ strh r3, [r0]
+ ldr r0, _08099A9C @ =0x000010d0
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r4, 20
+ lsrs r4, 16
+ ldr r1, _08099AA0 @ =gMonIconTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r1, r4, 5
+ ldr r2, _08099AA4 @ =0x06010000
+ adds r1, r2
+ ldr r2, _08099AA8 @ =0x04000080
+ bl CpuSet
+ adds r0, r4, 0
+_08099A94:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08099A9C: .4byte 0x000010d0
+_08099AA0: .4byte gMonIconTable
+_08099AA4: .4byte 0x06010000
+_08099AA8: .4byte 0x04000080
+ thumb_func_end sub_80999E8
+
+ thumb_func_start sub_8099AAC
+sub_8099AAC: @ 8099AAC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0
+ ldr r0, _08099AE4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 5
+ adds r5, r0, r1
+ subs r1, 0x50
+ adds r4, r0, r1
+ ldr r0, _08099AE8 @ =0x0000ffff
+ adds r7, r0, 0
+_08099AC6:
+ lsls r1, r3, 1
+ adds r2, r5, r1
+ ldrh r0, [r2]
+ cmp r0, r6
+ bne _08099AEC
+ adds r1, r4, r1
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ands r0, r7
+ cmp r0, 0
+ bne _08099AF6
+ strh r0, [r2]
+ b _08099AF6
+ .align 2, 0
+_08099AE4: .4byte gUnknown_083B6DB4
+_08099AE8: .4byte 0x0000ffff
+_08099AEC:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x27
+ bls _08099AC6
+_08099AF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099AAC
+
+ thumb_func_start sub_8099AFC
+sub_8099AFC: @ 8099AFC
+ 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, 16
+ lsrs r6, r0, 16
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x18]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r9, r5
+ mov r2, sp
+ ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ adds r0, r6, 0
+ bl mon_icon_convert_unown_species_id
+ mov r10, r0
+ mov r6, r10
+ mov r2, sp
+ ldr r1, _08099BB0 @ =gMonIconPaletteIndices
+ adds r1, r6, r1
+ ldr r3, _08099BB4 @ =0x0000dac0
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2, 0x2]
+ adds r0, r6, 0
+ bl sub_80999E8
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0, 0
+ ldr r0, _08099BB8 @ =0x0000ffff
+ cmp r5, r0
+ beq _08099BCE
+ ldr r7, [sp, 0x18]
+ lsls r1, r7, 16
+ asrs r1, 16
+ mov r0, r8
+ lsls r2, r0, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r9
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _08099BC8
+ ldr r1, _08099BBC @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, _08099BC0 @ =0x000003ff
+ ands r2, r5
+ ldrh r3, [r0, 0x4]
+ ldr r1, _08099BC4 @ =0xfffffc00
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ movs r1, 0x3
+ ands r4, r1
+ lsls r3, r4, 2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r3
+ strb r1, [r0, 0x5]
+ mov r1, r10
+ strh r1, [r0, 0x2E]
+ b _08099BD0
+ .align 2, 0
+_08099BAC: .4byte gSpriteTemplate_83B6F14
+_08099BB0: .4byte gMonIconPaletteIndices
+_08099BB4: .4byte 0x0000dac0
+_08099BB8: .4byte 0x0000ffff
+_08099BBC: .4byte gSprites
+_08099BC0: .4byte 0x000003ff
+_08099BC4: .4byte 0xfffffc00
+_08099BC8:
+ adds r0, r6, 0
+ bl sub_8099AAC
+_08099BCE:
+ movs r0, 0
+_08099BD0:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099AFC
+
+ thumb_func_start sub_8099BE0
+sub_8099BE0: @ 8099BE0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ bl sub_8099AAC
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099BE0
+
+ thumb_func_start sub_8099BF8
+sub_8099BF8: @ 8099BF8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08099C50 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099C54 @ =0x000008ba
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r2, _08099C58 @ =0x000008b4
+ adds r0, r2
+ strh r1, [r0]
+ str r1, [sp]
+ ldr r1, _08099C5C @ =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ ldr r0, _08099C60 @ =0x0600d000
+ str r0, [r1, 0x4]
+ ldr r0, _08099C64 @ =0x85000400
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8099EB0
+ adds r0, r4, 0
+ bl sub_809A23C
+ bl sub_809A6DC
+ adds r0, r4, 0
+ bl sub_8098C48
+ ldr r1, _08099C68 @ =REG_BG2CNT
+ ldr r2, _08099C6C @ =0x00005a0a
+ adds r0, r2, 0
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099C50: .4byte gUnknown_083B6DB4
+_08099C54: .4byte 0x000008ba
+_08099C58: .4byte 0x000008b4
+_08099C5C: .4byte 0x040000d4
+_08099C60: .4byte 0x0600d000
+_08099C64: .4byte 0x85000400
+_08099C68: .4byte REG_BG2CNT
+_08099C6C: .4byte 0x00005a0a
+ thumb_func_end sub_8099BF8
+
+ thumb_func_start sub_8099C70
+sub_8099C70: @ 8099C70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ bl sub_8099D90
+ lsls r0, 24
+ asrs r4, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8099EB0
+ ldr r0, _08099D10 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 1
+ ldr r3, _08099D14 @ =0x000008b6
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r0, _08099D18 @ =0x000008b8
+ adds r1, r2, r0
+ movs r0, 0x20
+ strh r0, [r1]
+ ldr r1, _08099D1C @ =0x000008bb
+ adds r0, r2, r1
+ strb r5, [r0]
+ movs r1, 0
+ cmp r4, 0
+ bgt _08099CAE
+ movs r1, 0x5
+_08099CAE:
+ ldr r3, _08099D20 @ =0x000008bc
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _08099D24 @ =0x000008be
+ adds r0, r2, r1
+ strh r4, [r0]
+ movs r1, 0x38
+ cmp r4, 0
+ ble _08099CC6
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r3, 0
+_08099CC6:
+ movs r3, 0x8C
+ lsls r3, 4
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r1, 0
+ cmp r4, 0
+ bgt _08099CD6
+ movs r1, 0x5
+_08099CD6:
+ ldr r3, _08099D28 @ =0x000008c2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _08099D2C @ =0x000008c4
+ adds r0, r2, r1
+ strh r4, [r0]
+ adds r3, 0x4
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08099D30 @ =0x000008c8
+ adds r1, r2, r0
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809900C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809A3D0
+ adds r0, r4, 0
+ bl sub_809A774
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099D10: .4byte gUnknown_083B6DB4
+_08099D14: .4byte 0x000008b6
+_08099D18: .4byte 0x000008b8
+_08099D1C: .4byte 0x000008bb
+_08099D20: .4byte 0x000008bc
+_08099D24: .4byte 0x000008be
+_08099D28: .4byte 0x000008c2
+_08099D2C: .4byte 0x000008c4
+_08099D30: .4byte 0x000008c8
+ thumb_func_end sub_8099C70
+
+ thumb_func_start sub_8099D34
+sub_8099D34: @ 8099D34
+ push {r4,lr}
+ bl sub_80990AC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08099D78 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _08099D7C @ =0x000008b8
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _08099D88
+ ldr r4, _08099D80 @ =0x000008b4
+ adds r2, r1, r4
+ adds r4, 0x2
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ ldrh r1, [r2]
+ adds r0, r1
+ ldr r1, _08099D84 @ =0x000001ff
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3]
+ subs r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08099D74
+ bl sub_809A598
+ bl sub_809A810
+_08099D74:
+ movs r0, 0x1
+ b _08099D8A
+ .align 2, 0
+_08099D78: .4byte gUnknown_083B6DB4
+_08099D7C: .4byte 0x000008b8
+_08099D80: .4byte 0x000008b4
+_08099D84: .4byte 0x000001ff
+_08099D88:
+ adds r0, r2, 0
+_08099D8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099D34
+
+ thumb_func_start sub_8099D90
+sub_8099D90: @ 8099D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0
+ cmp r1, r4
+ beq _08099DBA
+_08099DA4:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xD
+ bls _08099DB0
+ movs r1, 0
+_08099DB0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r1, r4
+ bne _08099DA4
+_08099DBA:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, 0x6
+ bhi _08099DC4
+ movs r0, 0x1
+_08099DC4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099D90
+
+ thumb_func_start sub_8099DCC
+sub_8099DCC: @ 8099DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08099DF8 @ =gPokemonStorage
+ ldr r2, _08099DFC @ =0x000083c2
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0
+ strb r4, [r0]
+ ldr r0, _08099E00 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _08099E04 @ =0x00001032
+ adds r0, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099DF8: .4byte gPokemonStorage
+_08099DFC: .4byte 0x000083c2
+_08099E00: .4byte gUnknown_083B6DB4
+_08099E04: .4byte 0x00001032
+ thumb_func_end sub_8099DCC
+
+ thumb_func_start sub_8099E08
+sub_8099E08: @ 8099E08
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08099E24 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _08099E28 @ =0x00001032
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08099E54
+ cmp r0, 0x1
+ bgt _08099E2C
+ cmp r0, 0
+ beq _08099E36
+ b _08099EA6
+ .align 2, 0
+_08099E24: .4byte gUnknown_083B6DB4
+_08099E28: .4byte 0x00001032
+_08099E2C:
+ cmp r0, 0x2
+ beq _08099E90
+ cmp r0, 0x3
+ beq _08099EA2
+ b _08099EA6
+_08099E36:
+ ldr r1, _08099E4C @ =0x00000d08
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldr r1, _08099E50 @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08099E9A
+ .align 2, 0
+_08099E4C: .4byte 0x00000d08
+_08099E50: .4byte 0x0000ffff
+_08099E54:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08099EA6
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8099EB0
+ bl sub_809A654
+ ldr r1, _08099E88 @ =0x00000d08
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldr r1, _08099E8C @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08099E9A
+ .align 2, 0
+_08099E88: .4byte 0x00000d08
+_08099E8C: .4byte 0x0000ffff
+_08099E90:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08099EA6
+_08099E9A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08099EA6
+_08099EA2:
+ movs r0, 0
+ b _08099EA8
+_08099EA6:
+ movs r0, 0x1
+_08099EA8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099E08
+
+ thumb_func_start sub_8099EB0
+sub_8099EB0: @ 8099EB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r1, 0
+ beq _08099ED8
+ ldr r0, _08099F38 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r2, 0
+ ldr r3, _08099F3C @ =0x000008ba
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08099ED0
+ movs r2, 0x1
+_08099ED0:
+ strb r2, [r1]
+ ldr r0, _08099F40 @ =0x0600d000
+ bl sub_809A14C
+_08099ED8:
+ ldr r0, _08099F44 @ =gPokemonStorage
+ ldr r1, _08099F48 @ =0x000083c2
+ adds r0, r1
+ adds r0, r4, r0
+ ldrb r4, [r0]
+ lsls r4, 4
+ ldr r0, _08099F4C @ =gWallpaperTable
+ adds r4, r0
+ ldr r0, [r4, 0xC]
+ ldr r1, _08099F38 @ =gUnknown_083B6DB4
+ ldr r5, [r1]
+ ldr r2, _08099F3C @ =0x000008ba
+ adds r6, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 20
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r3
+ lsrs r1, 16
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, [r4, 0x8]
+ ldr r1, _08099F50 @ =0x00000d62
+ adds r5, r1
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ ldr r0, _08099F40 @ =0x0600d000
+ lsls r2, r7, 24
+ asrs r2, 24
+ ldrb r3, [r6]
+ adds r1, r5, 0
+ bl sub_8099F58
+ ldr r0, [r4]
+ ldrb r1, [r6]
+ lsls r1, 13
+ ldr r2, _08099F54 @ =0x06008000
+ adds r1, r2
+ bl LZ77UnCompVram
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099F38: .4byte gUnknown_083B6DB4
+_08099F3C: .4byte 0x000008ba
+_08099F40: .4byte 0x0600d000
+_08099F44: .4byte gPokemonStorage
+_08099F48: .4byte 0x000083c2
+_08099F4C: .4byte gWallpaperTable
+_08099F50: .4byte 0x00000d62
+_08099F54: .4byte 0x06008000
+ thumb_func_end sub_8099EB0
+
+ thumb_func_start sub_8099F58
+sub_8099F58: @ 8099F58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r9, r0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, r3, 8
+ str r0, [sp]
+ lsls r0, r3, 1
+ adds r0, r3
+ adds r0, 0x4
+ lsls r0, 28
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ ldr r0, _08099FB8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099FBC @ =0x000008b4
+ adds r0, r1
+ ldrh r1, [r0]
+ lsrs r1, 3
+ adds r1, 0xA
+ lsrs r0, r2, 24
+ mov r8, r0
+ asrs r2, 24
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ movs r0, 0x3F
+ ands r1, r0
+ str r1, [sp, 0x8]
+ adds r2, r1, 0
+ cmp r2, 0xC
+ bgt _08099FC0
+ movs r6, 0x14
+ movs r3, 0
+ lsls r0, r2, 1
+ adds r0, 0x80
+ mov r1, r9
+ adds r4, r1, r0
+ movs r7, 0
+ b _0809A020
+ .align 2, 0
+_08099FB8: .4byte gUnknown_083B6DB4
+_08099FBC: .4byte 0x000008b4
+_08099FC0:
+ cmp r2, 0x1F
+ bgt _08099FE6
+ movs r0, 0x20
+ subs r0, r2
+ lsls r0, 16
+ movs r1, 0x14
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r0, r2, 1
+ adds r0, 0x80
+ mov r2, r9
+ adds r4, r2, r0
+ movs r7, 0x88
+ lsls r7, 4
+ add r7, r9
+ b _0809A020
+_08099FE6:
+ cmp r2, 0x2C
+ bgt _08099FFE
+ movs r6, 0x14
+ movs r3, 0
+ lsls r0, r2, 1
+ movs r1, 0x84
+ lsls r1, 4
+ adds r0, r1
+ mov r2, r9
+ adds r4, r2, r0
+ movs r7, 0
+ b _0809A020
+_08099FFE:
+ movs r0, 0x40
+ subs r0, r2
+ lsls r0, 16
+ movs r1, 0x14
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r0, r2, 1
+ movs r1, 0x84
+ lsls r1, 4
+ adds r0, r1
+ mov r2, r9
+ adds r4, r2, r0
+ mov r7, r9
+ adds r7, 0x80
+_0809A020:
+ movs r1, 0
+ mov r0, r8
+ lsls r0, 24
+ str r0, [sp, 0x14]
+ lsls r0, r6, 16
+ asrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ str r3, [sp, 0xC]
+ asrs r2, r3, 16
+ str r2, [sp, 0x10]
+_0809A036:
+ movs r3, 0
+ adds r0, r4, 0
+ adds r0, 0x40
+ str r0, [sp, 0x18]
+ adds r2, r7, 0
+ adds r2, 0x40
+ str r2, [sp, 0x1C]
+ adds r1, 0x1
+ mov r10, r1
+ cmp r3, r8
+ bge _0809A07A
+ ldr r0, _0809A0D4 @ =0x00000fff
+ mov r12, r0
+ movs r6, 0xF0
+ lsls r6, 8
+_0809A054:
+ ldrh r2, [r5]
+ mov r0, r12
+ ands r0, r2
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, r6, 0
+ ands r1, r2
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r1
+ orrs r1, r0
+ lsls r0, r3, 1
+ adds r0, r4
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r8
+ blt _0809A054
+_0809A07A:
+ movs r3, 0
+ ldr r0, [sp, 0x10]
+ cmp r3, r0
+ bge _0809A0B4
+ ldr r1, _0809A0D4 @ =0x00000fff
+ mov r12, r1
+ movs r6, 0xF0
+ lsls r6, 8
+ ldr r2, [sp, 0xC]
+ asrs r4, r2, 16
+_0809A08E:
+ ldrh r2, [r5]
+ mov r0, r12
+ ands r0, r2
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, r6, 0
+ ands r1, r2
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r1
+ orrs r1, r0
+ lsls r0, r3, 1
+ adds r0, r7
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ blt _0809A08E
+_0809A0B4:
+ ldr r4, [sp, 0x18]
+ ldr r7, [sp, 0x1C]
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x11
+ bls _0809A036
+ ldr r0, [sp, 0x14]
+ asrs r2, r0, 24
+ cmp r2, 0
+ beq _0809A13A
+ cmp r2, 0
+ ble _0809A0D8
+ ldr r1, [sp, 0x8]
+ adds r1, 0x14
+ b _0809A0DC
+ .align 2, 0
+_0809A0D4: .4byte 0x00000fff
+_0809A0D8:
+ ldr r1, [sp, 0x8]
+ subs r1, 0x4
+_0809A0DC:
+ movs r0, 0x3F
+ ands r1, r0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ cmp r0, 0x1F
+ bgt _0809A0EE
+ lsls r0, 1
+ adds r0, 0x80
+ b _0809A0F6
+_0809A0EE:
+ lsls r0, 1
+ movs r2, 0x84
+ lsls r2, 4
+ adds r0, r2
+_0809A0F6:
+ mov r1, r9
+ adds r2, r1, r0
+ movs r3, 0
+ movs r6, 0
+_0809A0FE:
+ movs r1, 0
+ adds r5, r3, 0x1
+ lsls r3, r4, 16
+_0809A104:
+ strh r6, [r2]
+ adds r2, 0x40
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x11
+ bls _0809A104
+ asrs r0, r3, 16
+ adds r4, r0, 0x1
+ movs r0, 0x3F
+ ands r4, r0
+ adds r0, r4, 0
+ cmp r0, 0x1F
+ bgt _0809A126
+ lsls r0, 1
+ adds r0, 0x80
+ b _0809A12E
+_0809A126:
+ lsls r0, 1
+ movs r2, 0x84
+ lsls r2, 4
+ adds r0, r2
+_0809A12E:
+ mov r1, r9
+ adds r2, r1, r0
+ lsls r0, r5, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _0809A0FE
+_0809A13A:
+ 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_8099F58
+
+ thumb_func_start sub_809A14C
+sub_809A14C: @ 809A14C
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ ldr r0, _0809A174 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809A178 @ =0x000008b4
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 3
+ adds r3, r0, 0
+ adds r3, 0x1E
+ movs r0, 0x3F
+ ands r3, r0
+ adds r0, r3, 0
+ cmp r0, 0x1F
+ bgt _0809A17C
+ lsls r0, 1
+ movs r6, 0x98
+ lsls r6, 3
+ adds r0, r6
+ b _0809A184
+ .align 2, 0
+_0809A174: .4byte gUnknown_083B6DB4
+_0809A178: .4byte 0x000008b4
+_0809A17C:
+ lsls r0, 1
+ movs r1, 0xC8
+ lsls r1, 4
+ adds r0, r1
+_0809A184:
+ adds r2, r0
+ movs r0, 0
+ movs r5, 0
+ movs r4, 0x3F
+_0809A18C:
+ strh r5, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ ands r3, r4
+ adds r1, r3, 0
+ cmp r1, 0
+ bne _0809A19E
+ ldr r6, _0809A1B8 @ =0xfffff7c0
+ adds r2, r6
+_0809A19E:
+ cmp r1, 0x20
+ bne _0809A1A8
+ movs r1, 0xF8
+ lsls r1, 3
+ adds r2, r1
+_0809A1A8:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2B
+ bls _0809A18C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A1B8: .4byte 0xfffff7c0
+ thumb_func_end sub_809A14C
+
+ thumb_func_start sub_809A1BC
+sub_809A1BC: @ 809A1BC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _0809A228 @ =gUnknown_083B6DB8
+ ldr r5, [r0]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _0809A22C @ =0x040000d4
+ str r1, [r4]
+ str r5, [r4, 0x4]
+ movs r6, 0x80
+ lsls r6, 1
+ ldr r0, _0809A230 @ =0x81000100
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0809A234 @ =gWindowConfig_81E6D38
+ adds r1, r5, 0
+ str r3, [sp, 0x4]
+ bl sub_8004E3C
+ str r5, [r4]
+ ldr r3, [sp, 0x4]
+ str r3, [r4, 0x4]
+ ldr r1, _0809A238 @ =0x80000040
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r5, r6
+ str r0, [r4]
+ adds r0, r3, 0
+ adds r0, 0x80
+ str r0, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r5, 0
+ adds r0, 0x80
+ str r0, [r4]
+ adds r6, r3, r6
+ str r6, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r5, r0
+ str r5, [r4]
+ adds r3, r0
+ str r3, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A228: .4byte gUnknown_083B6DB8
+_0809A22C: .4byte 0x040000d4
+_0809A230: .4byte 0x81000100
+_0809A234: .4byte gWindowConfig_81E6D38
+_0809A238: .4byte 0x80000040
+ thumb_func_end sub_809A1BC
+
+ thumb_func_start sub_809A23C
+sub_809A23C: @ 809A23C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0809A384 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r1, _0809A388 @ =0x000008ca
+ adds r7, r5, r1
+ str r7, [sp, 0x18]
+ mov r2, sp
+ adds r2, 0x18
+ str r2, [sp, 0x20]
+ ldr r0, _0809A38C @ =0x00030200
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r3, _0809A390 @ =0x00000ccc
+ adds r0, r5, r3
+ str r0, [sp]
+ ldr r4, _0809A394 @ =0x0000dac8
+ strh r4, [r1, 0x4]
+ str r0, [sp, 0x8]
+ ldr r6, _0809A398 @ =0xffffdac9
+ strh r6, [r1, 0xC]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ ldr r0, _0809A39C @ =gPokemonStorage
+ mov r9, r0
+ ldr r0, _0809A3A0 @ =0x000083c2
+ add r0, r9
+ add r0, r8
+ ldrb r1, [r0]
+ ldr r2, _0809A3A4 @ =gUnknown_083BB0A8
+ lsls r1, 2
+ adds r0, r1, r2
+ ldrh r3, [r0]
+ ldr r6, _0809A3A8 @ =0x00000ce8
+ adds r0, r5, r6
+ strh r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrh r1, [r1]
+ ldr r2, _0809A3AC @ =0x00000cea
+ adds r0, r5, r2
+ strh r1, [r0]
+ mov r0, sp
+ bl LoadSpritePalettes
+ ldr r3, _0809A3B0 @ =0x00000d08
+ adds r6, r5, r3
+ movs r0, 0xFC
+ lsls r0, 2
+ str r0, [r6]
+ adds r0, r4, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ movs r2, 0x87
+ lsls r2, 1
+ mov r10, r2
+ add r1, r10
+ ldr r3, _0809A3B4 @ =0x00000cec
+ adds r2, r5, r3
+ strh r1, [r2]
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ ldr r0, [r6]
+ orrs r0, r1
+ str r0, [r6]
+ ldr r0, _0809A3B8 @ =0x0000dac9
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ add r1, r10
+ ldr r2, _0809A3BC @ =0x00000cee
+ adds r5, r2
+ strh r1, [r5]
+ lsls r4, r0
+ ldr r0, [r6]
+ orrs r0, r4
+ str r0, [r6]
+ mov r3, r8
+ lsls r4, r3, 3
+ add r4, r8
+ ldr r6, _0809A3C0 @ =0x00008344
+ add r9, r6
+ add r4, r9
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl sub_809A1BC
+ ldr r0, [sp, 0x20]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809A6D0
+ movs r4, 0
+ lsls r0, 16
+ asrs r6, r0, 16
+_0809A328:
+ lsls r1, r4, 5
+ adds r1, r6, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8
+ movs r2, 0x1C
+ movs r3, 0x17
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _0809A384 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ lsls r0, r4, 2
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r2, r5, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809A3C8 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _0809A328
+ ldr r6, _0809A3CC @ =0x00000cca
+ adds r1, r5, r6
+ movs r0, 0
+ strb r0, [r1]
+ 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
+_0809A384: .4byte gUnknown_083B6DB4
+_0809A388: .4byte 0x000008ca
+_0809A38C: .4byte 0x00030200
+_0809A390: .4byte 0x00000ccc
+_0809A394: .4byte 0x0000dac8
+_0809A398: .4byte 0xffffdac9
+_0809A39C: .4byte gPokemonStorage
+_0809A3A0: .4byte 0x000083c2
+_0809A3A4: .4byte gUnknown_083BB0A8
+_0809A3A8: .4byte 0x00000ce8
+_0809A3AC: .4byte 0x00000cea
+_0809A3B0: .4byte 0x00000d08
+_0809A3B4: .4byte 0x00000cec
+_0809A3B8: .4byte 0x0000dac9
+_0809A3BC: .4byte 0x00000cee
+_0809A3C0: .4byte 0x00008344
+_0809A3C4: .4byte gSpriteTemplate_83BB2B8
+_0809A3C8: .4byte gSprites
+_0809A3CC: .4byte 0x00000cca
+ thumb_func_end sub_809A23C
+
+ thumb_func_start sub_809A3D0
+sub_809A3D0: @ 809A3D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r3, _0809A43C @ =gUnknown_083B6DB4
+ ldr r5, [r3]
+ ldr r1, _0809A440 @ =0x000008ca
+ adds r0, r5, r1
+ str r0, [sp, 0x18]
+ add r2, sp, 0x18
+ ldr r4, _0809A444 @ =0x0000ffff
+ mov r9, r4
+ movs r6, 0xC0
+ lsls r6, 10
+ mov r8, r6
+ ldr r0, _0809A448 @ =0x00030200
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ movs r1, 0
+ ldr r7, _0809A450 @ =0x00000cca
+ adds r4, r5, r7
+ ldrb r0, [r4]
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _0809A41E
+ movs r1, 0x1
+_0809A41E:
+ strb r1, [r4]
+ cmp r1, 0
+ bne _0809A458
+ ldr r0, [r6, 0x4]
+ mov r1, r9
+ ands r0, r1
+ mov r4, r8
+ orrs r0, r4
+ str r0, [r6, 0x4]
+ ldr r7, _0809A454 @ =0x00000cec
+ adds r0, r5, r7
+ ldrh r0, [r0]
+ mov r8, r0
+ b _0809A478
+ .align 2, 0
+_0809A43C: .4byte gUnknown_083B6DB4
+_0809A440: .4byte 0x000008ca
+_0809A444: .4byte 0x0000ffff
+_0809A448: .4byte 0x00030200
+_0809A44C: .4byte gSpriteTemplate_83BB2B8
+_0809A450: .4byte 0x00000cca
+_0809A454: .4byte 0x00000cec
+_0809A458:
+ ldr r0, [r6, 0x4]
+ mov r1, r9
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ orrs r0, r1
+ str r0, [r6, 0x4]
+ ldr r4, _0809A570 @ =0x00000cec
+ adds r0, r5, r4
+ ldrh r0, [r0]
+ mov r8, r0
+ mov r1, sp
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r0, _0809A574 @ =0x0000dac9
+ strh r0, [r1, 0x2]
+_0809A478:
+ ldr r0, [r3]
+ ldr r7, _0809A578 @ =0x000008ca
+ adds r0, r7
+ ldr r1, [sp, 0x28]
+ lsls r5, r1, 3
+ adds r5, r1
+ ldr r4, _0809A57C @ =gPokemonStorage + 0x8344
+ adds r5, r4
+ adds r1, r5, 0
+ bl sub_809A1BC
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ adds r4, 0x7E
+ ldr r3, [sp, 0x28]
+ adds r4, r3, r4
+ ldrb r0, [r4]
+ lsls r0, 2
+ ldr r1, _0809A580 @ =gUnknown_083BB0A8
+ adds r0, r1
+ mov r1, r8
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r5, 0
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809A6D0
+ lsls r0, 16
+ mov r4, r10
+ lsls r2, r4, 24
+ asrs r2, 24
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 6
+ lsrs r6, r0, 16
+ str r6, [sp, 0x20]
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x24]
+ movs r7, 0
+ negs r2, r2
+ mov r9, r2
+ movs r0, 0x1
+ mov r10, r0
+_0809A4DE:
+ lsls r1, r7, 5
+ mov r8, r1
+ ldr r3, [sp, 0x24]
+ lsls r1, r3, 16
+ asrs r1, 16
+ add r1, r8
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x1C
+ movs r3, 0x17
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809A584 @ =gUnknown_083B6DB4
+ ldr r4, [r1]
+ lsls r6, r7, 2
+ ldr r1, _0809A588 @ =0x00000cf8
+ adds r2, r4, r1
+ adds r2, r6
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0809A58C @ =gSprites
+ adds r1, r0
+ str r1, [r2]
+ mov r3, r9
+ lsls r5, r3, 1
+ add r5, r9
+ lsls r5, 1
+ strh r5, [r1, 0x2E]
+ ldr r1, [r2]
+ ldr r3, [sp, 0x20]
+ lsls r0, r3, 16
+ asrs r0, 16
+ add r0, r8
+ strh r0, [r1, 0x30]
+ ldr r0, [r2]
+ mov r1, r10
+ strh r1, [r0, 0x32]
+ ldr r0, [r2]
+ ldr r1, _0809A590 @ =sub_809A5E8
+ str r1, [r0, 0x1C]
+ lsls r1, r7, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r4, r3
+ adds r4, r6
+ ldr r0, [r4]
+ strh r5, [r0, 0x2E]
+ ldr r0, [r4]
+ mov r6, r10
+ strh r6, [r0, 0x30]
+ ldr r1, [r4]
+ ldr r0, _0809A594 @ =sub_809A61C
+ str r0, [r1, 0x1C]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _0809A4DE
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A570: .4byte 0x00000cec
+_0809A574: .4byte 0x0000dac9
+_0809A578: .4byte 0x000008ca
+_0809A57C: .4byte gPokemonStorage + 0x8344
+_0809A580: .4byte gUnknown_083BB0A8
+_0809A584: .4byte gUnknown_083B6DB4
+_0809A588: .4byte 0x00000cf8
+_0809A58C: .4byte gSprites
+_0809A590: .4byte sub_809A5E8
+_0809A594: .4byte sub_809A61C
+ thumb_func_end sub_809A3D0
+
+ thumb_func_start sub_809A598
+sub_809A598: @ 809A598
+ push {lr}
+ ldr r0, _0809A5B0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809A5B4 @ =0x00000cca
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809A5B8
+ movs r0, 0x4
+ bl FreeSpriteTilesByTag
+ b _0809A5BE
+ .align 2, 0
+_0809A5B0: .4byte gUnknown_083B6DB4
+_0809A5B4: .4byte 0x00000cca
+_0809A5B8:
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+_0809A5BE:
+ ldr r0, _0809A5E0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r2, r0, r3
+ adds r3, 0x8
+ adds r1, r0, r3
+ ldr r1, [r1]
+ str r1, [r2]
+ ldr r2, _0809A5E4 @ =0x00000cf4
+ adds r1, r0, r2
+ adds r3, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A5E0: .4byte gUnknown_083B6DB4
+_0809A5E4: .4byte 0x00000cf4
+ thumb_func_end sub_809A598
+
+ thumb_func_start sub_809A5E8
+sub_809A5E8: @ 809A5E8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0809A5FC
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ b _0809A614
+_0809A5FC:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _0809A614
+ ldr r0, _0809A618 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_0809A614:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A618: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809A5E8
+
+ thumb_func_start sub_809A61C
+sub_809A61C: @ 809A61C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0809A630
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ b _0809A64E
+_0809A630:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _0809A64E
+ adds r0, r2, 0
+ bl DestroySprite
+_0809A64E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809A61C
+
+ thumb_func_start sub_809A654
+sub_809A654: @ 809A654
+ push {lr}
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809A690 @ =gPokemonStorage
+ ldr r2, _0809A694 @ =0x000083c2
+ adds r1, r2
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0809A698 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r3, _0809A69C @ =0x00000cca
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809A6A8
+ lsls r0, r1, 2
+ ldr r1, _0809A6A0 @ =gUnknown_083BB0A8
+ adds r0, r1
+ adds r3, 0x22
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, _0809A6A4 @ =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+ b _0809A6C0
+ .align 2, 0
+_0809A690: .4byte gPokemonStorage
+_0809A694: .4byte 0x000083c2
+_0809A698: .4byte gUnknown_083B6DB4
+_0809A69C: .4byte 0x00000cca
+_0809A6A0: .4byte gUnknown_083BB0A8
+_0809A6A4: .4byte gPlttBufferUnfaded
+_0809A6A8:
+ lsls r0, r1, 2
+ ldr r1, _0809A6C4 @ =gUnknown_083BB0A8
+ adds r0, r1
+ ldr r3, _0809A6C8 @ =0x00000cee
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, _0809A6CC @ =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+_0809A6C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A6C4: .4byte gUnknown_083BB0A8
+_0809A6C8: .4byte 0x00000cee
+_0809A6CC: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_809A654
+
+ thumb_func_start sub_809A6D0
+sub_809A6D0: @ 809A6D0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 25
+ movs r0, 0xB0
+ subs r0, r1
+ bx lr
+ thumb_func_end sub_809A6D0
+
+ thumb_func_start sub_809A6DC
+sub_809A6DC: @ 809A6DC
+ push {r4,r5,lr}
+ ldr r0, _0809A760 @ =gUnknown_083BB288
+ bl LoadSpriteSheet
+ ldr r0, _0809A764 @ =gUnknown_083BB290
+ bl LoadSpritePalette
+ movs r5, 0
+_0809A6EC:
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 19
+ movs r0, 0xB8
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0
+ movs r2, 0x1C
+ movs r3, 0x15
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0809A73E
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809A76C @ =gSprites
+ adds r4, r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r0, 0x1
+ cmp r5, 0
+ bne _0809A72C
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_0809A72C:
+ strh r0, [r4, 0x34]
+ ldr r0, _0809A770 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+_0809A73E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _0809A6EC
+ bl sub_809BF2C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809A758
+ movs r0, 0x1
+ bl sub_809A860
+_0809A758:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A760: .4byte gUnknown_083BB288
+_0809A764: .4byte gUnknown_083BB290
+_0809A768: .4byte gSpriteTemplate_83BB2F0
+_0809A76C: .4byte gSprites
+_0809A770: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A6DC
+
+ thumb_func_start sub_809A774
+sub_809A774: @ 809A774
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0
+ ldr r7, _0809A7C4 @ =gUnknown_083B6DB4
+ ldr r0, [r7]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r3, r0, r1
+ movs r5, 0
+ movs r4, 0x2
+_0809A78A:
+ lsls r1, r2, 2
+ adds r1, r3, r1
+ ldr r0, [r1]
+ strh r5, [r0, 0x24]
+ ldr r0, [r1]
+ strh r4, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A78A
+ lsls r0, r6, 24
+ cmp r0, 0
+ bge _0809A7CC
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, _0809A7C8 @ =0x00000d04
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0x48
+ b _0809A7E8
+ .align 2, 0
+_0809A7C4: .4byte gUnknown_083B6DB4
+_0809A7C8: .4byte 0x00000d04
+_0809A7CC:
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, _0809A80C @ =0x00000d04
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0xF8
+_0809A7E8:
+ strh r2, [r0, 0x32]
+ ldr r0, [r1]
+ strh r2, [r0, 0x32]
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r1, r2
+ ldr r2, [r0]
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ ldr r0, _0809A80C @ =0x00000d04
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A80C: .4byte 0x00000d04
+ thumb_func_end sub_809A774
+
+ thumb_func_start sub_809A810
+sub_809A810: @ 809A810
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _0809A85C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r4, r0, r1
+ movs r5, 0
+ movs r6, 0x5
+ negs r6, r6
+_0809A824:
+ lsls r1, r3, 2
+ adds r1, r4, r1
+ ldr r2, [r1]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 3
+ adds r0, 0x5C
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ strh r5, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _0809A824
+ movs r0, 0x1
+ bl sub_809A860
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A85C: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A810
+
+ thumb_func_start sub_809A860
+sub_809A860: @ 809A860
+ push {r4,r5,lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809A89C
+ movs r2, 0
+ ldr r0, _0809A898 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r4, r0, r1
+ movs r3, 0
+ movs r5, 0x1
+_0809A878:
+ lsls r1, r2, 2
+ adds r1, r4, r1
+ ldr r0, [r1]
+ strh r5, [r0, 0x2E]
+ ldr r0, [r1]
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x32]
+ ldr r0, [r1]
+ strh r3, [r0, 0x36]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A878
+ b _0809A8BC
+ .align 2, 0
+_0809A898: .4byte gUnknown_083B6DB4
+_0809A89C:
+ movs r2, 0
+ ldr r0, _0809A8C4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r3, 0xD0
+ lsls r3, 4
+ adds r1, r0, r3
+ movs r3, 0
+_0809A8AA:
+ lsls r0, r2, 2
+ adds r0, r1, r0
+ ldr r0, [r0]
+ strh r3, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A8AA
+_0809A8BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A8C4: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A860
+
+ thumb_func_start sub_809A8C8
+sub_809A8C8: @ 809A8C8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _0809A994
+ lsls r0, 2
+ ldr r1, _0809A8E0 @ =_0809A8E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809A8E0: .4byte _0809A8E4
+ .align 2, 0
+_0809A8E4:
+ .4byte _0809A8F8
+ .4byte _0809A8FE
+ .4byte _0809A92C
+ .4byte _0809A932
+ .4byte _0809A984
+_0809A8F8:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ b _0809A994
+_0809A8FE:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0809A994
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x24]
+ adds r0, r3
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0809A994
+ strh r1, [r2, 0x32]
+ strh r1, [r2, 0x24]
+ b _0809A994
+_0809A92C:
+ movs r0, 0x3
+ strh r0, [r2, 0x2E]
+ b _0809A994
+_0809A932:
+ ldr r0, _0809A97C @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809A980 @ =0x000008b6
+ adds r1, r0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ subs r0, 0x49
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAE
+ bls _0809A958
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_0809A958:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809A994
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x4
+ strh r0, [r2, 0x2E]
+ b _0809A994
+ .align 2, 0
+_0809A97C: .4byte gUnknown_083B6DB4
+_0809A980: .4byte 0x000008b6
+_0809A984:
+ ldr r0, _0809A998 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809A99C @ =0x000008b6
+ adds r0, r1
+ ldrh r1, [r2, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r2, 0x20]
+_0809A994:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A998: .4byte gUnknown_083B6DB4
+_0809A99C: .4byte 0x000008b6
+ thumb_func_end sub_809A8C8
+
+ thumb_func_start sub_809A9A0
+sub_809A9A0: @ 809A9A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0809AA18
+ movs r1, 0x1
+ ands r1, r7
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _0809AA10 @ =gSprites
+ adds r6, r4, r5
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ movs r0, 0x3
+ mov r1, r8
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0809AA14 @ =SpriteCallbackDummy
+ str r0, [r4]
+ adds r0, r6, 0
+ b _0809AA1A
+ .align 2, 0
+_0809AA0C: .4byte gSpriteTemplate_83BB2F0
+_0809AA10: .4byte gSprites
+_0809AA14: .4byte SpriteCallbackDummy
+_0809AA18:
+ movs r0, 0
+_0809AA1A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809A9A0
+
+ thumb_func_start sub_809AA24
+sub_809AA24: @ 809AA24
+ push {lr}
+ ldr r0, _0809AA38 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ cmp r1, 0x1
+ beq _0809AA40
+ ldr r1, _0809AA3C @ =gUnknown_020384E4
+ movs r0, 0
+ strb r0, [r1]
+ b _0809AA44
+ .align 2, 0
+_0809AA38: .4byte gUnknown_083B6DB4
+_0809AA3C: .4byte gUnknown_020384E4
+_0809AA40:
+ ldr r0, _0809AA78 @ =gUnknown_020384E4
+ strb r1, [r0]
+_0809AA44:
+ ldr r0, _0809AA7C @ =gUnknown_020384E5
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0809AA80 @ =gUnknown_020384E6
+ strb r1, [r0]
+ ldr r0, _0809AA84 @ =gUnknown_020384E7
+ strb r1, [r0]
+ ldr r0, _0809AA88 @ =gUnknown_020384E8
+ strb r1, [r0]
+ ldr r0, _0809AA8C @ =gUnknown_020384E9
+ strb r1, [r0]
+ bl sub_809B0D4
+ bl sub_809CC04
+ ldr r0, _0809AA90 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809AA94 @ =0x000011e2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AA78: .4byte gUnknown_020384E4
+_0809AA7C: .4byte gUnknown_020384E5
+_0809AA80: .4byte gUnknown_020384E6
+_0809AA84: .4byte gUnknown_020384E7
+_0809AA88: .4byte gUnknown_020384E8
+_0809AA8C: .4byte gUnknown_020384E9
+_0809AA90: .4byte gUnknown_083B6DB4
+_0809AA94: .4byte 0x000011e2
+ thumb_func_end sub_809AA24
+
+ thumb_func_start sub_809AA98
+sub_809AA98: @ 809AA98
+ push {lr}
+ bl sub_809CC04
+ bl sub_809C028
+ ldr r0, _0809AAC0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809AAC4 @ =0x000011e2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0809AAC8 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809AABA
+ bl sub_8098BF0
+_0809AABA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AAC0: .4byte gUnknown_083B6DB4
+_0809AAC4: .4byte 0x000011e2
+_0809AAC8: .4byte gUnknown_020384E6
+ thumb_func_end sub_809AA98
+
+ thumb_func_start sub_809AACC
+sub_809AACC: @ 809AACC
+ push {r4-r6,lr}
+ adds r4, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r0, 0x4
+ bhi _0809AB84
+ lsls r0, 2
+ ldr r1, _0809AAE8 @ =_0809AAEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809AAE8: .4byte _0809AAEC
+ .align 2, 0
+_0809AAEC:
+ .4byte _0809AB00
+ .4byte _0809AB2E
+ .4byte _0809AB56
+ .4byte _0809AB5E
+ .4byte _0809AB7C
+_0809AB00:
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x64
+ strh r1, [r4]
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x20
+ strh r1, [r6]
+ b _0809AB84
+_0809AB2E:
+ cmp r5, 0
+ bne _0809AB3A
+ movs r0, 0x68
+ strh r0, [r4]
+ movs r0, 0x34
+ b _0809AB82
+_0809AB3A:
+ cmp r5, 0x6
+ bne _0809AB46
+ movs r0, 0x98
+ strh r0, [r4]
+ movs r0, 0x84
+ b _0809AB82
+_0809AB46:
+ movs r0, 0x98
+ strh r0, [r4]
+ subs r1, r5, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ b _0809AB82
+_0809AB56:
+ movs r0, 0xA2
+ strh r0, [r4]
+ movs r0, 0xC
+ b _0809AB82
+_0809AB5E:
+ ldr r0, _0809AB78 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ movs r1, 0xE
+ cmp r0, 0
+ beq _0809AB6A
+ movs r1, 0x8
+_0809AB6A:
+ strh r1, [r6]
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, 0x78
+ strh r0, [r4]
+ b _0809AB84
+ .align 2, 0
+_0809AB78: .4byte gUnknown_020384E6
+_0809AB7C:
+ movs r0, 0xA0
+ strh r0, [r4]
+ movs r0, 0x60
+_0809AB82:
+ strh r0, [r6]
+_0809AB84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809AACC
+
+ thumb_func_start sub_809AB8C
+sub_809AB8C: @ 809AB8C
+ push {lr}
+ ldr r0, _0809ABB4 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809ABC0
+ cmp r0, 0x1
+ bne _0809ABF8
+ ldr r0, _0809ABB8 @ =gUnknown_020384E5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809ABBC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ b _0809ABEA
+ .align 2, 0
+_0809ABB4: .4byte gUnknown_020384E4
+_0809ABB8: .4byte gUnknown_020384E5
+_0809ABBC: .4byte gPlayerParty
+_0809ABC0:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809ABF0 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809ABF4 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0xB
+ bl GetBoxMonData
+_0809ABEA:
+ lsls r0, 16
+ lsrs r0, 16
+ b _0809ABFA
+ .align 2, 0
+_0809ABF0: .4byte gUnknown_020384E5
+_0809ABF4: .4byte gPokemonStorage + 0x4
+_0809ABF8:
+ movs r0, 0
+_0809ABFA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AB8C
+
+ thumb_func_start sub_809AC00
+sub_809AC00: @ 809AC00
+ push {r4-r6,lr}
+ ldr r0, _0809AC14 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809AC18 @ =0x000011dc
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0809AC1C
+ movs r0, 0
+ b _0809AD2C
+ .align 2, 0
+_0809AC14: .4byte gUnknown_083B6DB4
+_0809AC18: .4byte 0x000011dc
+_0809AC1C:
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809AD0C
+ ldr r1, _0809ACF4 @ =0x000011c8
+ adds r3, r4, r1
+ ldr r2, _0809ACF8 @ =0x000011d0
+ adds r1, r4, r2
+ ldr r0, [r3]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r3]
+ ldr r6, _0809ACFC @ =0x000011cc
+ adds r2, r4, r6
+ ldr r0, _0809AD00 @ =0x000011d4
+ adds r1, r4, r0
+ ldr r0, [r2]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r5, r4, r1
+ ldr r1, [r5]
+ ldr r0, [r3]
+ asrs r0, 8
+ strh r0, [r1, 0x20]
+ ldr r1, [r5]
+ ldr r0, [r2]
+ asrs r0, 8
+ strh r0, [r1, 0x22]
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ cmp r0, r3
+ ble _0809AC78
+ ldr r6, _0809AD04 @ =0xffffff00
+ adds r0, r2, r6
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x40
+ strh r0, [r1, 0x20]
+_0809AC78:
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x20]
+ movs r6, 0x20
+ ldrsh r0, [r1, r6]
+ cmp r0, 0x3F
+ bgt _0809AC90
+ movs r0, 0x40
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r3, r0
+ strh r0, [r1, 0x20]
+_0809AC90:
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xB0
+ ble _0809ACA8
+ adds r0, r2, 0
+ subs r0, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, 0x10
+ strh r0, [r1, 0x22]
+_0809ACA8:
+ ldr r2, [r5]
+ ldrh r3, [r2, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r2, r6]
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _0809ACC4
+ subs r0, r1, r3
+ movs r1, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r0
+ strh r1, [r2, 0x22]
+_0809ACC4:
+ ldr r0, _0809AD08 @ =0x000011e3
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809AD2A
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809AD2A
+ ldr r2, [r5]
+ adds r2, 0x3F
+ ldrb r3, [r2]
+ lsrs r1, r3, 1
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 1
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _0809AD2A
+ .align 2, 0
+_0809ACF4: .4byte 0x000011c8
+_0809ACF8: .4byte 0x000011d0
+_0809ACFC: .4byte 0x000011cc
+_0809AD00: .4byte 0x000011d4
+_0809AD04: .4byte 0xffffff00
+_0809AD08: .4byte 0x000011e3
+_0809AD0C:
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r2, r4, r1
+ ldr r1, [r2]
+ ldr r3, _0809AD34 @ =0x000011d8
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, [r2]
+ ldr r6, _0809AD38 @ =0x000011da
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ bl sub_809AFB8
+_0809AD2A:
+ movs r0, 0x1
+_0809AD2C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809AD34: .4byte 0x000011d8
+_0809AD38: .4byte 0x000011da
+ thumb_func_end sub_809AC00
+
+ thumb_func_start sub_809AD3C
+sub_809AD3C: @ 809AD3C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r6, sp
+ adds r6, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_809AACC
+ ldr r0, _0809AD88 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ movs r2, 0x8F
+ lsls r2, 5
+ adds r0, r1, r2
+ strb r4, [r0]
+ ldr r3, _0809AD8C @ =0x000011e1
+ adds r0, r1, r3
+ strb r5, [r0]
+ mov r0, sp
+ ldrh r2, [r0]
+ subs r3, 0x9
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r6]
+ ldr r2, _0809AD90 @ =0x000011da
+ adds r1, r2
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AD88: .4byte gUnknown_083B6DB4
+_0809AD8C: .4byte 0x000011e1
+_0809AD90: .4byte 0x000011da
+ thumb_func_end sub_809AD3C
+
+ thumb_func_start sub_809AD94
+sub_809AD94: @ 809AD94
+ push {r4-r7,lr}
+ ldr r0, _0809ADB0 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r3, _0809ADB4 @ =0x000011de
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0809ADBC
+ ldr r0, _0809ADB8 @ =0x000011dc
+ adds r1, r2, r0
+ movs r0, 0xC
+ b _0809ADC2
+ .align 2, 0
+_0809ADB0: .4byte gUnknown_083B6DB4
+_0809ADB4: .4byte 0x000011de
+_0809ADB8: .4byte 0x000011dc
+_0809ADBC:
+ ldr r3, _0809AE04 @ =0x000011dc
+ adds r1, r2, r3
+ movs r0, 0x6
+_0809ADC2:
+ strh r0, [r1]
+ ldr r2, [r4]
+ ldr r0, _0809AE08 @ =0x000011e3
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809ADDA
+ ldr r3, _0809AE04 @ =0x000011dc
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsrs r0, 1
+ strb r0, [r1]
+_0809ADDA:
+ ldr r1, _0809AE0C @ =0x000011de
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809AE14
+ cmp r1, 0x1
+ beq _0809AE30
+ ldr r3, _0809AE10 @ =0x000011da
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ b _0809AE46
+ .align 2, 0
+_0809AE04: .4byte 0x000011dc
+_0809AE08: .4byte 0x000011e3
+_0809AE0C: .4byte 0x000011de
+_0809AE10: .4byte 0x000011da
+_0809AE14:
+ ldr r3, _0809AE2C @ =0x000011da
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _0809AE46
+ .align 2, 0
+_0809AE2C: .4byte 0x000011da
+_0809AE30:
+ ldr r3, _0809AE74 @ =0x000011da
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_0809AE46:
+ subs r7, r1, r0
+ ldr r2, [r4]
+ ldr r3, _0809AE78 @ =0x000011df
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809AE80
+ cmp r1, 0x1
+ beq _0809AE9C
+ ldr r1, _0809AE7C @ =0x000011d8
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ b _0809AEB2
+ .align 2, 0
+_0809AE74: .4byte 0x000011da
+_0809AE78: .4byte 0x000011df
+_0809AE7C: .4byte 0x000011d8
+_0809AE80:
+ ldr r3, _0809AE98 @ =0x000011d8
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _0809AEB2
+ .align 2, 0
+_0809AE98: .4byte 0x000011d8
+_0809AE9C:
+ ldr r3, _0809AF00 @ =0x000011d8
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_0809AEB2:
+ subs r0, r1, r0
+ lsls r7, 8
+ lsls r0, 8
+ ldr r4, [r4]
+ ldr r3, _0809AF04 @ =0x000011d0
+ adds r6, r4, r3
+ ldr r1, _0809AF08 @ =0x000011dc
+ adds r5, r4, r1
+ ldrh r1, [r5]
+ bl __divsi3
+ str r0, [r6]
+ ldr r2, _0809AF0C @ =0x000011d4
+ adds r6, r4, r2
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ bl __divsi3
+ str r0, [r6]
+ ldr r3, _0809AF10 @ =0x000011c8
+ adds r2, r4, r3
+ movs r0, 0x8E
+ lsls r0, 5
+ adds r1, r4, r0
+ ldr r0, [r1]
+ movs r3, 0x20
+ ldrsh r0, [r0, r3]
+ lsls r0, 8
+ str r0, [r2]
+ ldr r0, _0809AF14 @ =0x000011cc
+ adds r4, r0
+ ldr r0, [r1]
+ movs r1, 0x22
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AF00: .4byte 0x000011d8
+_0809AF04: .4byte 0x000011d0
+_0809AF08: .4byte 0x000011dc
+_0809AF0C: .4byte 0x000011d4
+_0809AF10: .4byte 0x000011c8
+_0809AF14: .4byte 0x000011cc
+ thumb_func_end sub_809AD94
+
+ thumb_func_start sub_809AF18
+sub_809AF18: @ 809AF18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_809AD3C
+ bl sub_809AD94
+ ldr r0, _0809AFA4 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809AF46
+ ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+_0809AF46:
+ cmp r4, 0x1
+ bne _0809AF70
+ ldr r0, _0809AFAC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _0809AF70
+ ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _0809AFB0 @ =0x000011e2
+ adds r1, r0, r2
+ strb r4, [r1]
+ ldr r1, _0809AFB4 @ =0x000011c4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+_0809AF70:
+ cmp r4, 0
+ beq _0809AF9E
+ cmp r4, 0
+ blt _0809AF9E
+ cmp r4, 0x3
+ bgt _0809AF9E
+ ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _0809AFB4 @ =0x000011c4
+ adds r2, r0
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r2, [r2]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+_0809AF9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AFA4: .4byte gUnknown_020384E6
+_0809AFA8: .4byte gUnknown_083B6DB4
+_0809AFAC: .4byte gUnknown_020384E4
+_0809AFB0: .4byte 0x000011e2
+_0809AFB4: .4byte 0x000011c4
+ thumb_func_end sub_809AF18
+
+ thumb_func_start sub_809AFB8
+sub_809AFB8: @ 809AFB8
+ push {r4,r5,lr}
+ ldr r5, _0809B000 @ =gUnknown_020384E4
+ ldr r0, _0809B004 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ movs r1, 0x8F
+ lsls r1, 5
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r1, _0809B008 @ =gUnknown_020384E5
+ ldr r2, _0809B00C @ =0x000011e1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0809B010 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809AFEA
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_0809AFEA:
+ bl sub_809BF74
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0x1
+ beq _0809B020
+ cmp r0, 0x1
+ bgt _0809B014
+ cmp r0, 0
+ beq _0809B034
+ b _0809B05E
+ .align 2, 0
+_0809B000: .4byte gUnknown_020384E4
+_0809B004: .4byte gUnknown_083B6DB4
+_0809B008: .4byte gUnknown_020384E5
+_0809B00C: .4byte 0x000011e1
+_0809B010: .4byte gUnknown_020384E6
+_0809B014:
+ cmp r0, 0x2
+ bne _0809B05E
+ movs r0, 0x1
+ bl sub_809A860
+ b _0809B05E
+_0809B020:
+ ldr r2, _0809B030 @ =0x000011c4
+ adds r0, r4, r2
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0xC
+ strb r1, [r0]
+ b _0809B05E
+ .align 2, 0
+_0809B030: .4byte 0x000011c4
+_0809B034:
+ ldr r0, _0809B064 @ =0x000011c4
+ adds r2, r4, r0
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ adds r0, 0x43
+ movs r1, 0x14
+ strb r1, [r0]
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_0809B05E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B064: .4byte 0x000011c4
+ thumb_func_end sub_809AFB8
+
+ thumb_func_start sub_809B068
+sub_809B068: @ 809B068
+ push {lr}
+ ldr r0, _0809B078 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809B07C
+ movs r3, 0
+ b _0809B08A
+ .align 2, 0
+_0809B078: .4byte gUnknown_020384E6
+_0809B07C:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ bls _0809B08A
+ movs r3, 0x5
+_0809B08A:
+ ldr r0, _0809B0B8 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r2, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809B0AA
+ ldr r0, _0809B0BC @ =0x000011e3
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0809B0AA:
+ movs r0, 0x1
+ adds r1, r3, 0
+ bl sub_809AF18
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B0B8: .4byte gUnknown_083B6DB4
+_0809B0BC: .4byte 0x000011e3
+ thumb_func_end sub_809B068
+
+ thumb_func_start sub_809B0C0
+sub_809B0C0: @ 809B0C0
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_809AF18
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B0C0
+
+ thumb_func_start sub_809B0D4
+sub_809B0D4: @ 809B0D4
+ ldr r1, _0809B0DC @ =gUnknown_020384EA
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0809B0DC: .4byte gUnknown_020384EA
+ thumb_func_end sub_809B0D4
+
+ thumb_func_start sub_809B0E0
+sub_809B0E0: @ 809B0E0
+ ldr r0, _0809B0EC @ =gUnknown_020384EA
+ ldr r1, _0809B0F0 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0809B0EC: .4byte gUnknown_020384EA
+_0809B0F0: .4byte gUnknown_020384E5
+ thumb_func_end sub_809B0E0
+
+ thumb_func_start sub_809B0F4
+sub_809B0F4: @ 809B0F4
+ ldr r0, _0809B0FC @ =gUnknown_020384EA
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809B0FC: .4byte gUnknown_020384EA
+ thumb_func_end sub_809B0F4
+
+ thumb_func_start sub_809B100
+sub_809B100: @ 809B100
+ lsls r0, 24
+ ldr r1, _0809B120 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B124 @ =0x000012a4
+ adds r3, r1, r2
+ ldr r2, _0809B128 @ =gUnknown_083BBBC8
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0809B12C @ =0x000012a8
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0809B120: .4byte gUnknown_083B6DB4
+_0809B124: .4byte 0x000012a4
+_0809B128: .4byte gUnknown_083BBBC8
+_0809B12C: .4byte 0x000012a8
+ thumb_func_end sub_809B100
+
+ thumb_func_start sub_809B130
+sub_809B130: @ 809B130
+ push {lr}
+ ldr r0, _0809B148 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B14C @ =0x000012a4
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B148: .4byte gUnknown_083B6DB4
+_0809B14C: .4byte 0x000012a4
+ thumb_func_end sub_809B130
+
+ thumb_func_start sub_809B150
+sub_809B150: @ 809B150
+ push {r4,r5,lr}
+ ldr r0, _0809B16C @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _0809B170 @ =0x000012a8
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _0809B1A0
+ cmp r0, 0x1
+ bgt _0809B174
+ cmp r0, 0
+ beq _0809B17E
+ b _0809B1CE
+ .align 2, 0
+_0809B16C: .4byte gUnknown_083B6DB4
+_0809B170: .4byte 0x000012a8
+_0809B174:
+ cmp r0, 0x2
+ beq _0809B1BE
+ cmp r0, 0x3
+ beq _0809B186
+ b _0809B1CE
+_0809B17E:
+ ldr r0, _0809B18C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B190
+_0809B186:
+ movs r0, 0
+ b _0809B1D0
+ .align 2, 0
+_0809B18C: .4byte gUnknown_020384E6
+_0809B190:
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _0809B1C8
+_0809B1A0:
+ bl sub_809B324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B1CE
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ bl sub_809B384
+ b _0809B1C8
+_0809B1BE:
+ bl sub_809B358
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B1CE
+_0809B1C8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0809B1CE:
+ movs r0, 0x1
+_0809B1D0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B150
+
+ thumb_func_start sub_809B1D8
+sub_809B1D8: @ 809B1D8
+ push {r4,r5,lr}
+ ldr r0, _0809B1F4 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809B1F8 @ =0x000012a8
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0809B220
+ cmp r0, 0x1
+ bgt _0809B1FC
+ cmp r0, 0
+ beq _0809B202
+ b _0809B244
+ .align 2, 0
+_0809B1F4: .4byte gUnknown_083B6DB4
+_0809B1F8: .4byte 0x000012a8
+_0809B1FC:
+ cmp r0, 0x2
+ beq _0809B240
+ b _0809B244
+_0809B202:
+ bl sub_809B324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B244
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ bl sub_809B3E0
+ b _0809B238
+_0809B220:
+ bl sub_809B358
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B244
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_0809B238:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0809B244
+_0809B240:
+ movs r0, 0
+ b _0809B246
+_0809B244:
+ movs r0, 0x1
+_0809B246:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B1D8
+
+ thumb_func_start sub_809B24C
+sub_809B24C: @ 809B24C
+ push {r4,r5,lr}
+ ldr r0, _0809B268 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809B26C @ =0x000012a8
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0809B2E0
+ cmp r0, 0x1
+ bgt _0809B270
+ cmp r0, 0
+ beq _0809B276
+ b _0809B31C
+ .align 2, 0
+_0809B268: .4byte gUnknown_083B6DB4
+_0809B26C: .4byte 0x000012a8
+_0809B270:
+ cmp r0, 0x2
+ beq _0809B318
+ b _0809B31C
+_0809B276:
+ ldr r0, _0809B290 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B298
+ cmp r0, 0x1
+ bne _0809B318
+ ldr r2, _0809B294 @ =0x000012a9
+ adds r1, r4, r2
+ movs r0, 0xE
+ b _0809B2A0
+ .align 2, 0
+_0809B290: .4byte gUnknown_020384E4
+_0809B294: .4byte 0x000012a9
+_0809B298:
+ bl get_preferred_box
+ ldr r2, _0809B2D0 @ =0x000012a9
+ adds r1, r4, r2
+_0809B2A0:
+ strb r0, [r1]
+ ldr r0, _0809B2D4 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r2, _0809B2D0 @ =0x000012a9
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldr r1, _0809B2D8 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ bl sub_80996B0
+ ldr r0, _0809B2DC @ =0x000012a8
+ adds r4, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0809B31C
+ .align 2, 0
+_0809B2D0: .4byte 0x000012a9
+_0809B2D4: .4byte gUnknown_083B6DB4
+_0809B2D8: .4byte gUnknown_020384E5
+_0809B2DC: .4byte 0x000012a8
+_0809B2E0:
+ bl sub_809971C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B31C
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ ldr r2, _0809B310 @ =0x000012a9
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldr r1, _0809B314 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ bl diegohint1
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0809B31C
+ .align 2, 0
+_0809B310: .4byte 0x000012a9
+_0809B314: .4byte gUnknown_020384E5
+_0809B318:
+ movs r0, 0
+ b _0809B31E
+_0809B31C:
+ movs r0, 0x1
+_0809B31E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B24C
+
+ thumb_func_start sub_809B324
+sub_809B324: @ 809B324
+ push {lr}
+ ldr r0, _0809B348 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0809B33E
+ cmp r0, 0x8
+ beq _0809B34C
+_0809B33E:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _0809B350
+ .align 2, 0
+_0809B348: .4byte gUnknown_083B6DB4
+_0809B34C:
+ movs r0, 0
+ b _0809B352
+_0809B350:
+ movs r0, 0x1
+_0809B352:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B324
+
+ thumb_func_start sub_809B358
+sub_809B358: @ 809B358
+ push {lr}
+ ldr r0, _0809B378 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0809B37C
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x1
+ strh r0, [r1, 0x26]
+ movs r0, 0x1
+ b _0809B37E
+ .align 2, 0
+_0809B378: .4byte gUnknown_083B6DB4
+_0809B37C:
+ movs r0, 0
+_0809B37E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B358
+
+ thumb_func_start sub_809B384
+sub_809B384: @ 809B384
+ push {r4,lr}
+ ldr r0, _0809B3AC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B3B4
+ cmp r0, 0x1
+ bne _0809B3D2
+ ldr r4, _0809B3B0 @ =gUnknown_020384E5
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_809B44C
+ ldrb r1, [r4]
+ movs r0, 0
+ bl sub_8099584
+ b _0809B3CC
+ .align 2, 0
+_0809B3AC: .4byte gUnknown_020384E4
+_0809B3B0: .4byte gUnknown_020384E5
+_0809B3B4:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0809B3D8 @ =gUnknown_020384E5
+ ldrb r1, [r4]
+ bl sub_809B44C
+ ldrb r1, [r4]
+ movs r0, 0x1
+ bl sub_8099584
+_0809B3CC:
+ ldr r1, _0809B3DC @ =gUnknown_020384E6
+ movs r0, 0x1
+ strb r0, [r1]
+_0809B3D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B3D8: .4byte gUnknown_020384E5
+_0809B3DC: .4byte gUnknown_020384E6
+ thumb_func_end sub_809B384
+
+ thumb_func_start sub_809B3E0
+sub_809B3E0: @ 809B3E0
+ push {r4,r5,lr}
+ ldr r0, _0809B408 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B410
+ cmp r0, 0x1
+ bne _0809B432
+ ldr r4, _0809B40C @ =gUnknown_020384E5
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl diegohint2
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_809960C
+ b _0809B42C
+ .align 2, 0
+_0809B408: .4byte gUnknown_020384E4
+_0809B40C: .4byte gUnknown_020384E5
+_0809B410:
+ bl get_preferred_box
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _0809B438 @ =gUnknown_020384E5
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl diegohint2
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_809960C
+_0809B42C:
+ ldr r1, _0809B43C @ =gUnknown_020384E6
+ movs r0, 0
+ strb r0, [r1]
+_0809B432:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B438: .4byte gUnknown_020384E5
+_0809B43C: .4byte gUnknown_020384E6
+ thumb_func_end sub_809B3E0
+
+ thumb_func_start sub_809B440
+sub_809B440: @ 809B440
+ push {lr}
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B440
+
+ thumb_func_start sub_809B44C
+sub_809B44C: @ 809B44C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0xE
+ bne _0809B488
+ ldr r0, _0809B478 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B47C @ =0x000025b4
+ adds r0, r1
+ ldr r3, _0809B480 @ =gPlayerParty
+ ldr r1, _0809B484 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ b _0809B4AA
+ .align 2, 0
+_0809B478: .4byte gUnknown_083B6DB4
+_0809B47C: .4byte 0x000025b4
+_0809B480: .4byte gPlayerParty
+_0809B484: .4byte gUnknown_020384E5
+_0809B488:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 4
+ ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B4C4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B4C8 @ =0x000025b4
+ adds r1, r2
+ bl sub_803B4B4
+_0809B4AA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809B548
+ ldr r0, _0809B4CC @ =gUnknown_020384E7
+ strb r4, [r0]
+ ldr r0, _0809B4D0 @ =gUnknown_020384E8
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B4C0: .4byte gPokemonStorage + 0x4
+_0809B4C4: .4byte gUnknown_083B6DB4
+_0809B4C8: .4byte 0x000025b4
+_0809B4CC: .4byte gUnknown_020384E7
+_0809B4D0: .4byte gUnknown_020384E8
+ thumb_func_end sub_809B44C
+
+ thumb_func_start diegohint2
+diegohint2: @ 809B4D4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r6, 0xE
+ bne _0809B508
+ ldr r1, _0809B4FC @ =gPlayerParty
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, r1
+ ldr r1, _0809B500 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B504 @ =0x000025b4
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _0809B536
+ .align 2, 0
+_0809B4FC: .4byte gPlayerParty
+_0809B500: .4byte gUnknown_083B6DB4
+_0809B504: .4byte 0x000025b4
+_0809B508:
+ ldr r0, _0809B53C @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809B540 @ =0x000025b4
+ adds r4, r0
+ adds r0, r4, 0
+ bl pokemon_restore_pp
+ ldr r3, _0809B544 @ =gPokemonStorage
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ lsls r2, r6, 2
+ adds r2, r6
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 5
+ adds r0, r1
+ adds r0, r3
+ adds r0, 0x4
+ adds r1, r4, 0
+ movs r2, 0x50
+ bl memcpy
+_0809B536:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B53C: .4byte gUnknown_083B6DB4
+_0809B540: .4byte 0x000025b4
+_0809B544: .4byte gPokemonStorage
+ thumb_func_end diegohint2
+
+ thumb_func_start sub_809B548
+sub_809B548: @ 809B548
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r0, 0xE
+ bne _0809B568
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _0809B564 @ =gPlayerParty
+ adds r0, r1
+ bl ZeroMonData
+ b _0809B582
+ .align 2, 0
+_0809B564: .4byte gPlayerParty
+_0809B568:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809B588 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ bl ZeroBoxMonData
+_0809B582:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B588: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_809B548
+
+ thumb_func_start diegohint1
+diegohint1: @ 809B58C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r5, 0xE
+ bne _0809B5C0
+ ldr r0, _0809B5B4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B5B8 @ =0x00002618
+ adds r0, r1
+ ldr r2, _0809B5BC @ =gPlayerParty
+ movs r1, 0x64
+ muls r1, r6
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _0809B5E2
+ .align 2, 0
+_0809B5B4: .4byte gUnknown_083B6DB4
+_0809B5B8: .4byte 0x00002618
+_0809B5BC: .4byte gPlayerParty
+_0809B5C0:
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 4
+ ldr r2, _0809B614 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B618 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B61C @ =0x00002618
+ adds r1, r2
+ bl sub_803B4B4
+_0809B5E2:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl diegohint2
+ ldr r0, _0809B618 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809B620 @ =0x000025b4
+ adds r4, r1, r0
+ ldr r2, _0809B61C @ =0x00002618
+ adds r1, r2
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_809C04C
+ ldr r0, _0809B624 @ =gUnknown_020384E7
+ strb r5, [r0]
+ ldr r0, _0809B628 @ =gUnknown_020384E8
+ strb r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B614: .4byte gPokemonStorage + 0x4
+_0809B618: .4byte gUnknown_083B6DB4
+_0809B61C: .4byte 0x00002618
+_0809B620: .4byte 0x000025b4
+_0809B624: .4byte gUnknown_020384E7
+_0809B628: .4byte gUnknown_020384E8
+ thumb_func_end diegohint1
+
+ thumb_func_start sub_809B62C
+sub_809B62C: @ 809B62C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_8095B24
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0809B64A
+ movs r0, 0
+ b _0809B6AC
+_0809B64A:
+ ldr r5, _0809B668 @ =gUnknown_020384E6
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0809B66C
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ bl sub_8099480
+ movs r0, 0
+ strb r0, [r5]
+ b _0809B686
+ .align 2, 0
+_0809B668: .4byte gUnknown_020384E6
+_0809B66C:
+ ldr r5, _0809B6B4 @ =gUnknown_020384E5
+ ldrb r1, [r5]
+ movs r0, 0xE
+ bl sub_809B44C
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ ldrb r0, [r5]
+ bl sub_8099520
+_0809B686:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bne _0809B698
+ lsrs r0, r4, 24
+ bl sub_8098D20
+_0809B698:
+ ldr r0, _0809B6B8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x1
+_0809B6AC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B6B4: .4byte gUnknown_020384E5
+_0809B6B8: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B62C
+
+ thumb_func_start sub_809B6BC
+sub_809B6BC: @ 809B6BC
+ push {lr}
+ ldr r0, _0809B6D8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B6D8: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B6BC
+
+ thumb_func_start sub_809B6DC
+sub_809B6DC: @ 809B6DC
+ push {lr}
+ ldr r0, _0809B6EC @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B6F0
+ movs r2, 0x2
+ b _0809B700
+ .align 2, 0
+_0809B6EC: .4byte gUnknown_020384E6
+_0809B6F0:
+ ldr r0, _0809B720 @ =gUnknown_020384E4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0x1
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r2, r0, 31
+_0809B700:
+ ldr r0, _0809B724 @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_809981C
+ ldr r0, _0809B728 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _0809B72C @ =0x000026e4
+ adds r0, r1, r2
+ ldr r2, _0809B730 @ =0x000011fa
+ adds r1, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B720: .4byte gUnknown_020384E4
+_0809B724: .4byte gUnknown_020384E5
+_0809B728: .4byte gUnknown_083B6DB4
+_0809B72C: .4byte 0x000026e4
+_0809B730: .4byte 0x000011fa
+ thumb_func_end sub_809B6DC
+
+ thumb_func_start sub_809B734
+sub_809B734: @ 809B734
+ push {lr}
+ bl sub_80998D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809B744
+ movs r0, 0x1
+ b _0809B758
+_0809B744:
+ ldr r0, _0809B75C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0
+_0809B758:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B75C: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B734
+
+ thumb_func_start sub_809B760
+sub_809B760: @ 809B760
+ push {lr}
+ bl sub_8099920
+ ldr r1, _0809B774 @ =gUnknown_020384E6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809B778
+ movs r0, 0
+ strb r0, [r1]
+ b _0809B79E
+ .align 2, 0
+_0809B774: .4byte gUnknown_020384E6
+_0809B778:
+ ldr r0, _0809B788 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809B78C
+ movs r2, 0xE
+ b _0809B794
+ .align 2, 0
+_0809B788: .4byte gUnknown_020384E4
+_0809B78C:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0809B794:
+ ldr r0, _0809B7A8 @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_809B548
+_0809B79E:
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B7A8: .4byte gUnknown_020384E5
+ thumb_func_end sub_809B760
+
+ thumb_func_start sub_809B7AC
+sub_809B7AC: @ 809B7AC
+ push {lr}
+ ldr r0, _0809B7CC @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B7C8
+ ldr r0, _0809B7D0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_0809B7C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B7CC: .4byte gUnknown_020384E6
+_0809B7D0: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B7AC
+
+ thumb_func_start sub_809B7D4
+sub_809B7D4: @ 809B7D4
+ push {r4-r6,lr}
+ ldr r0, _0809B804 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B81C
+ ldr r0, _0809B808 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r1, _0809B80C @ =0x00002618
+ adds r0, r4, r1
+ ldr r2, _0809B810 @ =0x000025b4
+ adds r1, r4, r2
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, _0809B814 @ =0x00002682
+ adds r1, r4, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _0809B818 @ =0x00002683
+ adds r4, r1
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4]
+ b _0809B8A6
+ .align 2, 0
+_0809B804: .4byte gUnknown_020384E6
+_0809B808: .4byte gUnknown_083B6DB4
+_0809B80C: .4byte 0x00002618
+_0809B810: .4byte 0x000025b4
+_0809B814: .4byte 0x00002682
+_0809B818: .4byte 0x00002683
+_0809B81C:
+ ldr r0, _0809B84C @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809B864
+ ldr r0, _0809B850 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809B854 @ =0x00002618
+ adds r0, r4, r2
+ ldr r3, _0809B858 @ =gPlayerParty
+ ldr r1, _0809B85C @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, _0809B860 @ =0x00002682
+ adds r4, r0
+ movs r0, 0xE
+ b _0809B896
+ .align 2, 0
+_0809B84C: .4byte gUnknown_020384E4
+_0809B850: .4byte gUnknown_083B6DB4
+_0809B854: .4byte 0x00002618
+_0809B858: .4byte gPlayerParty
+_0809B85C: .4byte gUnknown_020384E5
+_0809B860: .4byte 0x00002682
+_0809B864:
+ ldr r5, _0809B8FC @ =gPokemonStorage
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809B900 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r2, r5, 0x4
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B904 @ =gUnknown_083B6DB4
+ ldr r4, [r1]
+ ldr r2, _0809B908 @ =0x00002618
+ adds r1, r4, r2
+ bl sub_803B4B4
+ ldrb r0, [r5]
+ ldr r1, _0809B90C @ =0x00002682
+ adds r4, r1
+_0809B896:
+ strb r0, [r4]
+ ldr r0, _0809B904 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B900 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ ldr r2, _0809B910 @ =0x00002683
+ adds r0, r2
+ strb r1, [r0]
+_0809B8A6:
+ ldr r0, _0809B904 @ =gUnknown_083B6DB4
+ ldr r6, [r0]
+ ldr r0, _0809B914 @ =0x0000267e
+ adds r4, r6, r0
+ movs r0, 0
+ strb r0, [r4]
+ ldr r1, _0809B918 @ =0x0000267f
+ adds r5, r6, r1
+ strb r0, [r5]
+ ldr r0, _0809B91C @ =0x00002686
+ adds r2, r6, r0
+ movs r0, 0x39
+ strh r0, [r2]
+ ldr r0, _0809B920 @ =0x00002688
+ adds r1, r6, r0
+ ldr r0, _0809B924 @ =0x00000123
+ strh r0, [r1]
+ ldr r0, _0809B928 @ =0x0000268a
+ adds r1, r6, r0
+ ldr r0, _0809B92C @ =0x00000163
+ strh r0, [r1]
+ ldr r1, _0809B908 @ =0x00002618
+ adds r0, r6, r1
+ movs r1, 0x50
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r2, 0x1
+ ands r1, r2
+ strb r1, [r4]
+ lsrs r0, 17
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0809B934
+ ldr r2, _0809B930 @ =0x0000267d
+ adds r1, r6, r2
+ movs r0, 0
+ strb r0, [r1]
+ b _0809B940
+ .align 2, 0
+_0809B8FC: .4byte gPokemonStorage
+_0809B900: .4byte gUnknown_020384E5
+_0809B904: .4byte gUnknown_083B6DB4
+_0809B908: .4byte 0x00002618
+_0809B90C: .4byte 0x00002682
+_0809B910: .4byte 0x00002683
+_0809B914: .4byte 0x0000267e
+_0809B918: .4byte 0x0000267f
+_0809B91C: .4byte 0x00002686
+_0809B920: .4byte 0x00002688
+_0809B924: .4byte 0x00000123
+_0809B928: .4byte 0x0000268a
+_0809B92C: .4byte 0x00000163
+_0809B930: .4byte 0x0000267d
+_0809B934:
+ ldr r2, _0809B954 @ =0x0000267d
+ adds r0, r6, r2
+ strb r1, [r0]
+ subs r2, 0x1
+ adds r0, r6, r2
+ strb r1, [r0]
+_0809B940:
+ ldr r0, _0809B958 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B95C @ =0x00002684
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B954: .4byte 0x0000267d
+_0809B958: .4byte gUnknown_083B6DB4
+_0809B95C: .4byte 0x00002684
+ thumb_func_end sub_809B7D4
+
+ thumb_func_start sub_809B960
+sub_809B960: @ 809B960
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0809B988 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r3, _0809B98C @ =0x0000267d
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ mov r12, r0
+ cmp r1, 0
+ beq _0809B994
+ ldr r7, _0809B990 @ =0x0000267c
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _0809BB5C
+ .align 2, 0
+_0809B988: .4byte gUnknown_083B6DB4
+_0809B98C: .4byte 0x0000267d
+_0809B990: .4byte 0x0000267c
+_0809B994:
+ ldr r1, _0809B9A4 @ =0x00002684
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809B9A8
+ cmp r0, 0x1
+ beq _0809BA84
+ b _0809BB58
+ .align 2, 0
+_0809B9A4: .4byte 0x00002684
+_0809B9A8:
+ movs r5, 0
+ movs r6, 0
+_0809B9AC:
+ mov r2, r12
+ ldr r4, [r2]
+ ldr r3, _0809BA28 @ =0x00002682
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xE
+ bne _0809B9CC
+ ldr r7, _0809BA2C @ =0x00002683
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r5
+ beq _0809BA02
+_0809B9CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0809BA30 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0809BA34 @ =0x00002686
+ adds r2, r4, r1
+ movs r1, 0x50
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0809B9F0
+ ldr r2, _0809BA38 @ =0x0000267e
+ adds r0, r4, r2
+ strb r6, [r0]
+_0809B9F0:
+ movs r0, 0x2
+ ands r3, r0
+ ldr r7, _0809BA3C @ =gUnknown_083B6DB4
+ mov r12, r7
+ cmp r3, 0
+ beq _0809BA02
+ ldr r1, _0809BA40 @ =0x0000267f
+ adds r0, r4, r1
+ strb r6, [r0]
+_0809BA02:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809B9AC
+ mov r3, r12
+ ldr r2, [r3]
+ ldr r7, _0809BA38 @ =0x0000267e
+ adds r0, r2, r7
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809BA4C
+ ldr r1, _0809BA44 @ =0x0000267d
+ adds r0, r2, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r3, _0809BA48 @ =0x0000267c
+ b _0809BB54
+ .align 2, 0
+_0809BA28: .4byte 0x00002682
+_0809BA2C: .4byte 0x00002683
+_0809BA30: .4byte gPlayerParty
+_0809BA34: .4byte 0x00002686
+_0809BA38: .4byte 0x0000267e
+_0809BA3C: .4byte gUnknown_083B6DB4
+_0809BA40: .4byte 0x0000267f
+_0809BA44: .4byte 0x0000267d
+_0809BA48: .4byte 0x0000267c
+_0809BA4C:
+ movs r7, 0x9A
+ lsls r7, 6
+ adds r0, r2, r7
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809BA68 @ =0x00002681
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r7, 0x4
+ adds r1, r2, r7
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0809BB58
+ .align 2, 0
+_0809BA68: .4byte 0x00002681
+_0809BA6C:
+ ldr r1, _0809BA7C @ =0x0000267d
+ adds r0, r2, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r7, _0809BA80 @ =0x0000267c
+ adds r0, r2, r7
+ strb r3, [r0]
+ b _0809BB3C
+ .align 2, 0
+_0809BA7C: .4byte 0x0000267d
+_0809BA80: .4byte 0x0000267c
+_0809BA84:
+ movs r5, 0
+ mov r9, r12
+ adds r4, r2, 0
+ movs r0, 0x9A
+ lsls r0, 6
+ adds r6, r4, r0
+ ldr r1, _0809BB6C @ =0x0000267f
+ adds r1, r4
+ mov r8, r1
+ ldr r2, _0809BB70 @ =0x0000ffff
+ mov r10, r2
+_0809BA9A:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r3, _0809BB74 @ =0x00002681
+ adds r1, r4, r3
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809BB78 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x50
+ ldr r7, _0809BB7C @ =0x00002686
+ adds r2, r4, r7
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _0809BB00
+ ldr r1, _0809BB80 @ =0x00002682
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ mov r1, r10
+ ands r1, r0
+ mov r0, r10
+ ands r0, r2
+ cmp r1, r0
+ beq _0809BB00
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0809BAF2
+ ldr r2, _0809BB84 @ =0x0000267e
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+_0809BAF2:
+ movs r0, 0x2
+ ands r3, r0
+ cmp r3, 0
+ beq _0809BB00
+ movs r0, 0
+ mov r3, r8
+ strb r0, [r3]
+_0809BB00:
+ mov r7, r9
+ ldr r2, [r7]
+ ldr r0, _0809BB74 @ =0x00002681
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r7, _0809BB88 @ =gUnknown_083B6DB4
+ mov r12, r7
+ cmp r0, 0x1D
+ ble _0809BB32
+ strb r3, [r1]
+ movs r0, 0x9A
+ lsls r0, 6
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xD
+ bgt _0809BA6C
+_0809BB32:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _0809BA9A
+_0809BB3C:
+ mov r1, r12
+ ldr r2, [r1]
+ ldr r3, _0809BB84 @ =0x0000267e
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809BB58
+ ldr r7, _0809BB8C @ =0x0000267d
+ adds r0, r2, r7
+ movs r1, 0x1
+ strb r1, [r0]
+ subs r3, 0x2
+_0809BB54:
+ adds r0, r2, r3
+ strb r1, [r0]
+_0809BB58:
+ movs r0, 0x1
+ negs r0, r0
+_0809BB5C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BB6C: .4byte 0x0000267f
+_0809BB70: .4byte 0x0000ffff
+_0809BB74: .4byte 0x00002681
+_0809BB78: .4byte gPokemonStorage + 0x4
+_0809BB7C: .4byte 0x00002686
+_0809BB80: .4byte 0x00002682
+_0809BB84: .4byte 0x0000267e
+_0809BB88: .4byte gUnknown_083B6DB4
+_0809BB8C: .4byte 0x0000267d
+ thumb_func_end sub_809B960
+
+ thumb_func_start sub_809BB90
+sub_809BB90: @ 809BB90
+ push {lr}
+ ldr r0, _0809BBB0 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BBAA
+ ldr r0, _0809BBB4 @ =gUnknown_02038480
+ ldr r1, _0809BBB8 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809BBBC @ =0x000025b4
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+_0809BBAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BBB0: .4byte gUnknown_020384E6
+_0809BBB4: .4byte gUnknown_02038480
+_0809BBB8: .4byte gUnknown_083B6DB4
+_0809BBBC: .4byte 0x000025b4
+ thumb_func_end sub_809BB90
+
+ thumb_func_start sub_809BBC0
+sub_809BBC0: @ 809BBC0
+ push {lr}
+ ldr r0, _0809BBE4 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BC08
+ ldr r0, _0809BBE8 @ =gUnknown_020384E7
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _0809BBF8
+ ldr r0, _0809BBEC @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809BBF0 @ =0x000025b4
+ adds r0, r1
+ ldr r1, _0809BBF4 @ =gUnknown_02038480
+ movs r2, 0x64
+ bl memcpy
+ b _0809BC08
+ .align 2, 0
+_0809BBE4: .4byte gUnknown_020384E6
+_0809BBE8: .4byte gUnknown_020384E7
+_0809BBEC: .4byte gUnknown_083B6DB4
+_0809BBF0: .4byte 0x000025b4
+_0809BBF4: .4byte gUnknown_02038480
+_0809BBF8:
+ ldr r0, _0809BC0C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809BC10 @ =0x000025b4
+ adds r0, r1
+ ldr r1, _0809BC14 @ =gUnknown_02038480
+ movs r2, 0x50
+ bl memcpy
+_0809BC08:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BC0C: .4byte gUnknown_083B6DB4
+_0809BC10: .4byte 0x000025b4
+_0809BC14: .4byte gUnknown_02038480
+ thumb_func_end sub_809BBC0
+
+ thumb_func_start sub_809BC18
+sub_809BC18: @ 809BC18
+ push {r4,r5,lr}
+ ldr r0, _0809BC48 @ =gUnknown_020384E6
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _0809BC64
+ bl sub_809BB90
+ ldr r0, _0809BC4C @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _0809BC50 @ =0x00002690
+ adds r1, r2, r0
+ ldr r0, _0809BC54 @ =gUnknown_02038480
+ str r0, [r1]
+ ldr r1, _0809BC58 @ =0x0000268d
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809BC5C @ =0x0000268c
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0809BC60 @ =0x0000268e
+ adds r2, r0
+ strb r1, [r2]
+ b _0809BCF2
+ .align 2, 0
+_0809BC48: .4byte gUnknown_020384E6
+_0809BC4C: .4byte gUnknown_083B6DB4
+_0809BC50: .4byte 0x00002690
+_0809BC54: .4byte gUnknown_02038480
+_0809BC58: .4byte 0x0000268d
+_0809BC5C: .4byte 0x0000268c
+_0809BC60: .4byte 0x0000268e
+_0809BC64:
+ ldr r0, _0809BC9C @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BCBC
+ ldr r0, _0809BCA0 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809BCA4 @ =0x00002690
+ adds r1, r4, r2
+ ldr r0, _0809BCA8 @ =gPlayerParty
+ str r0, [r1]
+ ldr r0, _0809BCAC @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ ldr r3, _0809BCB0 @ =0x0000268d
+ adds r0, r4, r3
+ strb r1, [r0]
+ bl StorageSystemGetPartySize
+ subs r0, 0x1
+ ldr r2, _0809BCB4 @ =0x0000268c
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r3, _0809BCB8 @ =0x0000268e
+ adds r4, r3
+ strb r5, [r4]
+ b _0809BCF2
+ .align 2, 0
+_0809BC9C: .4byte gUnknown_020384E4
+_0809BCA0: .4byte gUnknown_083B6DB4
+_0809BCA4: .4byte 0x00002690
+_0809BCA8: .4byte gPlayerParty
+_0809BCAC: .4byte gUnknown_020384E5
+_0809BCB0: .4byte 0x0000268d
+_0809BCB4: .4byte 0x0000268c
+_0809BCB8: .4byte 0x0000268e
+_0809BCBC:
+ ldr r0, _0809BCF8 @ =gUnknown_083B6DB4
+ ldr r3, [r0]
+ ldr r0, _0809BCFC @ =0x00002690
+ adds r4, r3, r0
+ ldr r2, _0809BD00 @ =gPokemonStorage
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r2, 0x4
+ adds r0, r2
+ str r0, [r4]
+ ldr r0, _0809BD04 @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ ldr r2, _0809BD08 @ =0x0000268d
+ adds r0, r3, r2
+ strb r1, [r0]
+ ldr r0, _0809BD0C @ =0x0000268c
+ adds r1, r3, r0
+ movs r0, 0x1D
+ strb r0, [r1]
+ ldr r1, _0809BD10 @ =0x0000268e
+ adds r3, r1
+ movs r0, 0x5
+ strb r0, [r3]
+_0809BCF2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BCF8: .4byte gUnknown_083B6DB4
+_0809BCFC: .4byte 0x00002690
+_0809BD00: .4byte gPokemonStorage
+_0809BD04: .4byte gUnknown_020384E5
+_0809BD08: .4byte 0x0000268d
+_0809BD0C: .4byte 0x0000268c
+_0809BD10: .4byte 0x0000268e
+ thumb_func_end sub_809BC18
+
+ thumb_func_start sub_809BD14
+sub_809BD14: @ 809BD14
+ push {lr}
+ ldr r0, _0809BD24 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BD28
+ bl sub_809BBC0
+ b _0809BD30
+ .align 2, 0
+_0809BD24: .4byte gUnknown_020384E6
+_0809BD28:
+ ldr r0, _0809BD34 @ =gUnknown_020384E5
+ ldr r1, _0809BD38 @ =0x02018000
+ ldrb r1, [r1, 0x9]
+ strb r1, [r0]
+_0809BD30:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BD34: .4byte gUnknown_020384E5
+_0809BD38: .4byte 0x02018000
+ thumb_func_end sub_809BD14
+
+ thumb_func_start party_compaction
+party_compaction: @ 809BD3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _0809BD88 @ =0x0000ffff
+ movs r6, 0
+ movs r5, 0
+ movs r0, 0x64
+ mov r9, r0
+ ldr r1, _0809BD8C @ =gPlayerParty
+ mov r8, r1
+ subs r0, 0x65
+ mov r10, r0
+_0809BD58:
+ mov r0, r9
+ muls r0, r6
+ mov r1, r8
+ adds r4, r0, r1
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809BD90
+ cmp r6, r5
+ beq _0809BD80
+ mov r0, r9
+ muls r0, r5
+ add r0, r8
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+_0809BD80:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _0809BD9A
+ .align 2, 0
+_0809BD88: .4byte 0x0000ffff
+_0809BD8C: .4byte gPlayerParty
+_0809BD90:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, r10
+ bne _0809BD9A
+ adds r7, r6, 0
+_0809BD9A:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _0809BD58
+ lsls r7, 16
+ cmp r5, 0x5
+ bhi _0809BDC2
+ movs r6, 0x64
+ ldr r4, _0809BDD4 @ =gPlayerParty
+_0809BDAE:
+ adds r0, r5, 0
+ muls r0, r6
+ adds r0, r4
+ bl ZeroMonData
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809BDAE
+_0809BDC2:
+ asrs r0, r7, 16
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BDD4: .4byte gPlayerParty
+ thumb_func_end party_compaction
+
+ thumb_func_start sub_809BDD8
+sub_809BDD8: @ 809BDD8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ ldr r1, _0809BE04 @ =gUnknown_083B6DB4
+ ldr r2, [r1]
+ ldr r3, _0809BE08 @ =0x000011f7
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldr r0, _0809BE0C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BE14
+ ldr r1, _0809BE10 @ =0x000025b4
+ adds r0, r2, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _0809BE68
+ .align 2, 0
+_0809BE04: .4byte gUnknown_083B6DB4
+_0809BE08: .4byte 0x000011f7
+_0809BE0C: .4byte gUnknown_020384E6
+_0809BE10: .4byte 0x000025b4
+_0809BE14:
+ ldr r4, _0809BE70 @ =gUnknown_020384E4
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x1
+ bne _0809BE34
+ ldr r0, _0809BE74 @ =gUnknown_020384E5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809BE78 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+_0809BE34:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _0809BE68
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809BE74 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809BE7C @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetBoxMonData
+_0809BE68:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BE70: .4byte gUnknown_020384E4
+_0809BE74: .4byte gUnknown_020384E5
+_0809BE78: .4byte gPlayerParty
+_0809BE7C: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_809BDD8
+
+ thumb_func_start sub_809BE80
+sub_809BE80: @ 809BE80
+ push {lr}
+ ldr r0, _0809BEA8 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BEB4
+ ldr r0, _0809BEAC @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809BEB4
+ ldr r0, _0809BEB0 @ =gUnknown_020384E5
+ ldrb r0, [r0]
+ bl CountAlivePartyMonsExceptOne
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BEB4
+ movs r0, 0x1
+ b _0809BEB6
+ .align 2, 0
+_0809BEA8: .4byte gUnknown_020384E4
+_0809BEAC: .4byte gUnknown_020384E6
+_0809BEB0: .4byte gUnknown_020384E5
+_0809BEB4:
+ movs r0, 0
+_0809BEB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809BE80
+
+ thumb_func_start sub_809BEBC
+sub_809BEBC: @ 809BEBC
+ push {lr}
+ ldr r0, _0809BF00 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BF18
+ ldr r0, _0809BF04 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BEFC
+ ldr r0, _0809BF08 @ =gUnknown_020384E5
+ ldrb r0, [r0]
+ bl CountAlivePartyMonsExceptOne
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BEFC
+ ldr r0, _0809BF0C @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _0809BF10 @ =0x000011f9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809BF18
+ ldr r2, _0809BF14 @ =0x000025b4
+ adds r0, r1, r2
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0809BF18
+_0809BEFC:
+ movs r0, 0x1
+ b _0809BF1A
+ .align 2, 0
+_0809BF00: .4byte gUnknown_020384E6
+_0809BF04: .4byte gUnknown_020384E4
+_0809BF08: .4byte gUnknown_020384E5
+_0809BF0C: .4byte gUnknown_083B6DB4
+_0809BF10: .4byte 0x000011f9
+_0809BF14: .4byte 0x000025b4
+_0809BF18:
+ movs r0, 0
+_0809BF1A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809BEBC
+
+ thumb_func_start sub_809BF20
+sub_809BF20: @ 809BF20
+ ldr r0, _0809BF28 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809BF28: .4byte gUnknown_020384E6
+ thumb_func_end sub_809BF20
+
+ thumb_func_start sub_809BF2C
+sub_809BF2C: @ 809BF2C
+ push {lr}
+ movs r1, 0
+ ldr r0, _0809BF44 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bne _0809BF3E
+ movs r1, 0x1
+_0809BF3E:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BF44: .4byte gUnknown_020384E4
+ thumb_func_end sub_809BF2C
+
+ thumb_func_start sub_809BF48
+sub_809BF48: @ 809BF48
+ push {lr}
+ movs r1, 0
+ ldr r0, _0809BF6C @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _0809BF66
+ ldr r0, _0809BF70 @ =gUnknown_020384E5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BF66
+ movs r1, 0x1
+_0809BF66:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BF6C: .4byte gUnknown_020384E4
+_0809BF70: .4byte gUnknown_020384E5
+ thumb_func_end sub_809BF48
+
+ thumb_func_start sub_809BF74
+sub_809BF74: @ 809BF74
+ push {r4,lr}
+ ldr r0, _0809BFA8 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ movs r2, 0
+ ldr r3, _0809BFAC @ =gUnknown_020384E6
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0809BF86
+ movs r2, 0x1
+_0809BF86:
+ ldr r4, _0809BFB0 @ =0x000011f6
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0809C018
+ ldr r0, _0809BFB4 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _0809BFBE
+ cmp r0, 0x1
+ bgt _0809BFB8
+ cmp r0, 0
+ beq _0809BFEE
+ b _0809C018
+ .align 2, 0
+_0809BFA8: .4byte gUnknown_083B6DB4
+_0809BFAC: .4byte gUnknown_020384E6
+_0809BFB0: .4byte 0x000011f6
+_0809BFB4: .4byte gUnknown_020384E4
+_0809BFB8:
+ cmp r0, 0x3
+ bgt _0809C018
+ b _0809BFE4
+_0809BFBE:
+ ldr r1, _0809BFDC @ =gUnknown_020384E5
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0809BFE4
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809BFE0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl sub_809C04C
+ b _0809C018
+ .align 2, 0
+_0809BFDC: .4byte gUnknown_020384E5
+_0809BFE0: .4byte gPlayerParty
+_0809BFE4:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_809C04C
+ b _0809C018
+_0809BFEE:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809C020 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809C024 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_809C04C
+_0809C018:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C020: .4byte gUnknown_020384E5
+_0809C024: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_809BF74
+
+ thumb_func_start sub_809C028
+sub_809C028: @ 809C028
+ push {lr}
+ ldr r0, _0809C03C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809C044
+ ldr r0, _0809C040 @ =gUnknown_02038480
+ movs r1, 0
+ bl sub_809C04C
+ b _0809C048
+ .align 2, 0
+_0809C03C: .4byte gUnknown_020384E6
+_0809C040: .4byte gUnknown_02038480
+_0809C044:
+ bl sub_809BF74
+_0809C048:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809C028
+
+ thumb_func_start sub_809C04C
+sub_809C04C: @ 809C04C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809C0FC @ =gUnknown_083B6DB4
+ ldr r6, [r0]
+ ldr r2, _0809C100 @ =0x000011f2
+ adds r2, r6
+ mov r8, r2
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r2]
+ cmp r1, 0
+ bne _0809C120
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetMonData
+ ldr r2, _0809C104 @ =0x000011f0
+ adds r1, r6, r2
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809C08C
+ b _0809C1EC
+_0809C08C:
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetMonData
+ ldr r2, _0809C108 @ =0x000011f9
+ adds r1, r6, r2
+ strb r0, [r1]
+ ldr r0, _0809C10C @ =0x000011fa
+ adds r4, r6, r0
+ adds r0, r7, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r7, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r2, _0809C110 @ =0x000011f8
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl GetMonData
+ ldr r2, _0809C114 @ =0x000011f7
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r2, _0809C118 @ =0x000011ec
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r0, r7, 0
+ bl pokemon_get_pal
+ ldr r2, _0809C11C @ =0x000011e8
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r0, r7, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetMonData
+ b _0809C1B2
+ .align 2, 0
+_0809C0FC: .4byte gUnknown_083B6DB4
+_0809C100: .4byte 0x000011f2
+_0809C104: .4byte 0x000011f0
+_0809C108: .4byte 0x000011f9
+_0809C10C: .4byte 0x000011fa
+_0809C110: .4byte 0x000011f8
+_0809C114: .4byte 0x000011f7
+_0809C118: .4byte 0x000011ec
+_0809C11C: .4byte 0x000011e8
+_0809C120:
+ cmp r1, 0x1
+ bne _0809C1D4
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ ldr r2, _0809C1B8 @ =0x000011f0
+ adds r5, r6, r2
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809C1EC
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl GetBoxMonData
+ mov r9, r0
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ ldr r2, _0809C1BC @ =0x000011f9
+ adds r1, r6, r2
+ strb r0, [r1]
+ ldr r0, _0809C1C0 @ =0x000011fa
+ adds r4, r6, r0
+ adds r0, r7, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetBoxMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r7, 0
+ bl GetLevelFromBoxMonExp
+ ldr r2, _0809C1C4 @ =0x000011f8
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl GetBoxMonData
+ ldr r2, _0809C1C8 @ =0x000011f7
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r2, r0, 0
+ ldr r0, _0809C1CC @ =0x000011ec
+ adds r4, r6, r0
+ str r2, [r4]
+ ldrh r0, [r5]
+ mov r1, r9
+ bl species_and_otid_get_pal
+ ldr r2, _0809C1D0 @ =0x000011e8
+ adds r1, r6, r2
+ str r0, [r1]
+ ldrh r0, [r5]
+ ldr r1, [r4]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetBoxMonData
+_0809C1B2:
+ mov r1, r8
+ strh r0, [r1]
+ b _0809C1DE
+ .align 2, 0
+_0809C1B8: .4byte 0x000011f0
+_0809C1BC: .4byte 0x000011f9
+_0809C1C0: .4byte 0x000011fa
+_0809C1C4: .4byte 0x000011f8
+_0809C1C8: .4byte 0x000011f7
+_0809C1CC: .4byte 0x000011ec
+_0809C1D0: .4byte 0x000011e8
+_0809C1D4:
+ ldr r2, _0809C220 @ =0x000011f0
+ adds r0, r6, r2
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0]
+_0809C1DE:
+ ldr r0, _0809C224 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809C220 @ =0x000011f0
+ adds r0, r4, r2
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _0809C23C
+_0809C1EC:
+ ldr r0, _0809C224 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809C228 @ =0x000011fa
+ adds r2, r1, r0
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r0, _0809C22C @ =0x0000120f
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r0, _0809C230 @ =0x00001234
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r0, _0809C234 @ =0x00001259
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r2, _0809C238 @ =0x0000127a
+ adds r1, r2
+ strb r0, [r1]
+ b _0809C43E
+ .align 2, 0
+_0809C220: .4byte 0x000011f0
+_0809C224: .4byte gUnknown_083B6DB4
+_0809C228: .4byte 0x000011fa
+_0809C22C: .4byte 0x0000120f
+_0809C230: .4byte 0x00001234
+_0809C234: .4byte 0x00001259
+_0809C238: .4byte 0x0000127a
+_0809C23C:
+ ldr r2, _0809C28C @ =0x000011f9
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809C2A4
+ ldr r0, _0809C290 @ =0x0000120f
+ adds r7, r4, r0
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x4
+ strb r0, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r0, 0x1
+ strb r0, [r7, 0x4]
+ ldr r1, _0809C294 @ =0x00001214
+ adds r7, r4, r1
+ adds r2, 0x1
+ adds r1, r4, r2
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r0, _0809C298 @ =0x00001234
+ adds r1, r4, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r2, _0809C29C @ =0x00001259
+ adds r1, r4, r2
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ ldr r0, _0809C2A0 @ =0x0000127a
+ adds r1, r4, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ b _0809C43E
+ .align 2, 0
+_0809C28C: .4byte 0x000011f9
+_0809C290: .4byte 0x0000120f
+_0809C294: .4byte 0x00001214
+_0809C298: .4byte 0x00001234
+_0809C29C: .4byte 0x00001259
+_0809C2A0: .4byte 0x0000127a
+_0809C2A4:
+ cmp r1, 0x20
+ beq _0809C2AC
+ cmp r1, 0x1D
+ bne _0809C2B0
+_0809C2AC:
+ movs r1, 0xFF
+ str r1, [sp]
+_0809C2B0:
+ ldr r0, _0809C388 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809C38C @ =0x0000120f
+ adds r7, r4, r2
+ movs r0, 0xFC
+ mov r9, r0
+ strb r0, [r7]
+ movs r1, 0x4
+ mov r8, r1
+ strb r1, [r7, 0x1]
+ movs r2, 0xF
+ strb r2, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r6, 0x1
+ strb r6, [r7, 0x4]
+ ldr r1, _0809C390 @ =0x00001214
+ adds r7, r4, r1
+ ldr r2, _0809C394 @ =0x000011fa
+ adds r1, r4, r2
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r0, _0809C398 @ =0x00001234
+ adds r7, r4, r0
+ mov r1, r9
+ strb r1, [r7]
+ mov r2, r8
+ strb r2, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r1, 0
+ strb r1, [r7, 0x3]
+ strb r6, [r7, 0x4]
+ mov r2, r9
+ strb r2, [r7, 0x5]
+ movs r0, 0x13
+ mov r10, r0
+ strb r0, [r7, 0x6]
+ movs r1, 0x7
+ strb r1, [r7, 0x7]
+ movs r0, 0xBA
+ strb r0, [r7, 0x8]
+ ldr r2, _0809C39C @ =0x0000123d
+ adds r7, r4, r2
+ ldr r1, _0809C3A0 @ =0x000011f0
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _0809C3A4 @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ mov r2, r9
+ strb r2, [r7]
+ mov r0, r10
+ strb r0, [r7, 0x1]
+ movs r0, 0x50
+ strb r0, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ ldr r1, _0809C3A8 @ =0x00001259
+ adds r7, r4, r1
+ strb r2, [r7]
+ mov r2, r8
+ strb r2, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r1, 0
+ strb r1, [r7, 0x3]
+ strb r6, [r7, 0x4]
+ mov r2, r9
+ strb r2, [r7, 0x5]
+ mov r0, r10
+ strb r0, [r7, 0x6]
+ movs r6, 0x8
+ strb r6, [r7, 0x7]
+ ldr r1, _0809C3AC @ =0x00001261
+ adds r7, r4, r1
+ movs r0, 0x34
+ strb r0, [r7]
+ ldr r2, _0809C3B0 @ =0x00001262
+ adds r7, r4, r2
+ ldr r0, _0809C3B4 @ =0x000011f8
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r7, 0
+ movs r2, 0x22
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ mov r1, r9
+ strb r1, [r7]
+ movs r0, 0x11
+ strb r0, [r7, 0x1]
+ strb r6, [r7, 0x2]
+ adds r7, 0x3
+ ldr r2, [sp]
+ cmp r2, 0
+ beq _0809C3B8
+ cmp r2, 0xFE
+ beq _0809C3D0
+ b _0809C3EA
+ .align 2, 0
+_0809C388: .4byte gUnknown_083B6DB4
+_0809C38C: .4byte 0x0000120f
+_0809C390: .4byte 0x00001214
+_0809C394: .4byte 0x000011fa
+_0809C398: .4byte 0x00001234
+_0809C39C: .4byte 0x0000123d
+_0809C3A0: .4byte 0x000011f0
+_0809C3A4: .4byte gSpeciesNames
+_0809C3A8: .4byte 0x00001259
+_0809C3AC: .4byte 0x00001261
+_0809C3B0: .4byte 0x00001262
+_0809C3B4: .4byte 0x000011f8
+_0809C3B8:
+ mov r0, r9
+ strb r0, [r7]
+ mov r1, r8
+ strb r1, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ mov r2, sp
+ ldrb r2, [r2]
+ strb r2, [r7, 0x3]
+ movs r0, 0x5
+ strb r0, [r7, 0x4]
+ movs r0, 0xB5
+ b _0809C3E6
+_0809C3D0:
+ mov r0, r9
+ strb r0, [r7]
+ mov r1, r8
+ strb r1, [r7, 0x1]
+ movs r0, 0x6
+ strb r0, [r7, 0x2]
+ movs r2, 0
+ strb r2, [r7, 0x3]
+ movs r0, 0x7
+ strb r0, [r7, 0x4]
+ movs r0, 0xB6
+_0809C3E6:
+ strb r0, [r7, 0x5]
+ adds r7, 0x6
+_0809C3EA:
+ movs r5, 0xFF
+ strb r5, [r7]
+ ldr r0, _0809C450 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r1, _0809C454 @ =0x0000127a
+ adds r7, r2, r1
+ ldr r0, _0809C458 @ =0x000011f2
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _0809C43C
+ movs r4, 0xFC
+ strb r4, [r7]
+ movs r1, 0x4
+ strb r1, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r0, 0x1
+ strb r0, [r7, 0x4]
+ ldr r0, _0809C45C @ =0x0000127f
+ adds r7, r2, r0
+ strb r4, [r7]
+ movs r0, 0x6
+ strb r0, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ ldr r1, _0809C460 @ =0x00001282
+ adds r7, r2, r1
+ ldrh r0, [r3]
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ strb r4, [r7]
+ movs r0, 0x7
+ strb r0, [r7, 0x1]
+ adds r7, 0x2
+_0809C43C:
+ strb r5, [r7]
+_0809C43E:
+ 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
+_0809C450: .4byte gUnknown_083B6DB4
+_0809C454: .4byte 0x0000127a
+_0809C458: .4byte 0x000011f2
+_0809C45C: .4byte 0x0000127f
+_0809C460: .4byte 0x00001282
+ thumb_func_end sub_809C04C
+
+ thumb_func_start sub_809C464
+sub_809C464: @ 809C464
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0809C4D8 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r2, _0809C4DC @ =gUnknown_020384E5
+ ldrb r4, [r2]
+ ldr r0, _0809C4E0 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809C4E4 @ =0x000011de
+ adds r7, r1, r0
+ movs r0, 0
+ strb r0, [r7]
+ ldr r3, _0809C4E8 @ =0x000011df
+ adds r5, r1, r3
+ strb r0, [r5]
+ adds r3, 0x4
+ adds r6, r1, r3
+ strb r0, [r6]
+ ldr r0, _0809C4EC @ =gMain
+ mov r12, r0
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _0809C4A0
+ b _0809C62A
+_0809C4A0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C4F0
+ movs r1, 0x1
+ mov r9, r1
+ lsls r0, r4, 24
+ movs r3, 0xC0
+ lsls r3, 19
+ adds r0, r3
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1D
+ bgt _0809C4BE
+ b _0809C648
+_0809C4BE:
+ movs r1, 0x3
+ mov r8, r1
+ subs r0, 0x1E
+ lsls r0, 24
+ asrs r0, 24
+ bl __divsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r3, r9
+ strb r3, [r7]
+ strb r3, [r6]
+ b _0809C648
+ .align 2, 0
+_0809C4D8: .4byte gUnknown_020384E4
+_0809C4DC: .4byte gUnknown_020384E5
+_0809C4E0: .4byte gUnknown_083B6DB4
+_0809C4E4: .4byte 0x000011de
+_0809C4E8: .4byte 0x000011df
+_0809C4EC: .4byte gMain
+_0809C4F0:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C524
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C514
+ lsls r0, r4, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ b _0809C63C
+_0809C514:
+ movs r0, 0xFF
+ strb r0, [r5]
+ lsls r0, r4, 24
+ movs r3, 0xA0
+ lsls r3, 19
+ adds r0, r3
+ lsrs r4, r0, 24
+ b _0809C648
+_0809C524:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C554
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, 0x1
+ movs r1, 0x6
+ bl __modsi3
+ cmp r0, 0
+ beq _0809C548
+ lsls r0, r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ b _0809C63C
+_0809C548:
+ mov r3, r9
+ strb r3, [r5]
+ lsls r0, r4, 24
+ movs r1, 0xFB
+ lsls r1, 24
+ b _0809C63C
+_0809C554:
+ mov r3, r12
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C56A
+ movs r0, 0x1
+ mov r9, r0
+ movs r1, 0x2
+ mov r8, r1
+ b _0809C646
+_0809C56A:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C5D4
+ bl sub_809CAB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C5D4
+ ldr r0, _0809C588 @ =gUnknown_020384E9
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809C58C
+ movs r0, 0x8
+ b _0809C658
+ .align 2, 0
+_0809C588: .4byte gUnknown_020384E9
+_0809C58C:
+ movs r0, 0
+ bl sub_809CE4C
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _0809C5D4
+ lsls r0, 2
+ ldr r1, _0809C5A8 @ =_0809C5AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C5A8: .4byte _0809C5AC
+ .align 2, 0
+_0809C5AC:
+ .4byte _0809C5C0
+ .4byte _0809C5C4
+ .4byte _0809C5C8
+ .4byte _0809C5CC
+ .4byte _0809C5D0
+_0809C5C0:
+ movs r0, 0xB
+ b _0809C658
+_0809C5C4:
+ movs r0, 0xC
+ b _0809C658
+_0809C5C8:
+ movs r0, 0xD
+ b _0809C658
+_0809C5CC:
+ movs r0, 0xE
+ b _0809C658
+_0809C5D0:
+ movs r0, 0xF
+ b _0809C658
+_0809C5D4:
+ ldr r2, _0809C5E4 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C5E8
+ movs r0, 0x10
+ b _0809C658
+ .align 2, 0
+_0809C5E4: .4byte gMain
+_0809C5E8:
+ ldr r0, _0809C600 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0809C612
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C604
+ movs r0, 0xA
+ b _0809C658
+ .align 2, 0
+_0809C600: .4byte gSaveBlock2
+_0809C604:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C612
+ movs r0, 0x9
+ b _0809C658
+_0809C612:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C624
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C658
+_0809C624:
+ movs r3, 0
+ mov r9, r3
+ b _0809C656
+_0809C62A:
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x5
+ ble _0809C642
+ lsls r0, r4, 24
+ movs r1, 0xFA
+ lsls r1, 24
+_0809C63C:
+ adds r0, r1
+ lsrs r4, r0, 24
+ b _0809C648
+_0809C642:
+ movs r3, 0x2
+ mov r8, r3
+_0809C646:
+ movs r4, 0
+_0809C648:
+ mov r0, r9
+ cmp r0, 0
+ beq _0809C656
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_809AF18
+_0809C656:
+ mov r0, r9
+_0809C658:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C464
+
+ thumb_func_start sub_809C664
+sub_809C664: @ 809C664
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0809C6D8 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ mov r10, r0
+ ldr r7, _0809C6DC @ =gUnknown_020384E5
+ ldrb r4, [r7]
+ ldr r2, _0809C6E0 @ =gUnknown_083B6DB4
+ ldr r5, [r2]
+ ldr r1, _0809C6E4 @ =0x000011df
+ adds r0, r5, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809C6E8 @ =0x000011de
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r3, 0x5
+ adds r0, r5, r3
+ strb r1, [r0]
+ mov r9, r1
+ mov r8, r1
+ ldr r1, _0809C6EC @ =gMain
+ ldrh r3, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r3
+ adds r6, r7, 0
+ mov r12, r2
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _0809C6A8
+ b _0809C81C
+_0809C6A8:
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C6F0
+ lsls r0, r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x6
+ ble _0809C6C2
+ movs r4, 0
+_0809C6C2:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ bne _0809C6D0
+ b _0809C83C
+_0809C6D0:
+ movs r2, 0x1
+ mov r8, r2
+ b _0809C842
+ .align 2, 0
+_0809C6D8: .4byte gUnknown_020384E4
+_0809C6DC: .4byte gUnknown_020384E5
+_0809C6E0: .4byte gUnknown_083B6DB4
+_0809C6E4: .4byte 0x000011df
+_0809C6E8: .4byte 0x000011de
+_0809C6EC: .4byte gMain
+_0809C6F0:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C714
+ ldrb r1, [r6]
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0
+ beq _0809C714
+ movs r3, 0x1
+ mov r8, r3
+ ldr r2, _0809C710 @ =0x000011e2
+ adds r0, r5, r2
+ strb r1, [r0]
+ movs r4, 0
+ b _0809C83C
+ .align 2, 0
+_0809C710: .4byte 0x000011e2
+_0809C714:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C748
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0
+ bne _0809C73C
+ movs r3, 0x1
+ mov r8, r3
+ mov r1, r12
+ ldr r0, [r1]
+ ldr r2, _0809C738 @ =0x000011e2
+ adds r0, r2
+ ldrb r4, [r0]
+ b _0809C83C
+ .align 2, 0
+_0809C738: .4byte 0x000011e2
+_0809C73C:
+ movs r3, 0x6
+ mov r8, r3
+ movs r0, 0
+ mov r10, r0
+ movs r4, 0
+ b _0809C83C
+_0809C748:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C7D0
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x6
+ bne _0809C76E
+ mov r1, r12
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809C768
+ movs r0, 0x4
+ b _0809C84C
+_0809C768:
+ movs r2, 0x1
+ mov r9, r2
+ b _0809C7D0
+_0809C76E:
+ bl sub_809CAB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C7D0
+ ldr r0, _0809C784 @ =gUnknown_020384E9
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809C788
+ movs r0, 0x8
+ b _0809C84C
+ .align 2, 0
+_0809C784: .4byte gUnknown_020384E9
+_0809C788:
+ movs r0, 0
+ bl sub_809CE4C
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _0809C7D0
+ lsls r0, 2
+ ldr r1, _0809C7A4 @ =_0809C7A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C7A4: .4byte _0809C7A8
+ .align 2, 0
+_0809C7A8:
+ .4byte _0809C7BC
+ .4byte _0809C7C0
+ .4byte _0809C7C4
+ .4byte _0809C7C8
+ .4byte _0809C7CC
+_0809C7BC:
+ movs r0, 0xB
+ b _0809C84C
+_0809C7C0:
+ movs r0, 0xC
+ b _0809C84C
+_0809C7C4:
+ movs r0, 0xD
+ b _0809C84C
+_0809C7C8:
+ movs r0, 0xE
+ b _0809C84C
+_0809C7CC:
+ movs r0, 0xF
+ b _0809C84C
+_0809C7D0:
+ ldr r2, _0809C7EC @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C7F8
+ ldr r0, _0809C7F0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809C7F4
+ movs r0, 0x10
+ b _0809C84C
+ .align 2, 0
+_0809C7EC: .4byte gMain
+_0809C7F0: .4byte gUnknown_083B6DB4
+_0809C7F4:
+ movs r3, 0x1
+ mov r9, r3
+_0809C7F8:
+ mov r0, r9
+ cmp r0, 0
+ beq _0809C80A
+ movs r1, 0x6
+ mov r8, r1
+ movs r2, 0
+ mov r10, r2
+ movs r4, 0
+ b _0809C83C
+_0809C80A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C83C
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C84C
+_0809C81C:
+ lsls r0, r4, 24
+ movs r3, 0xFF
+ lsls r3, 24
+ adds r0, r3
+ lsrs r4, r0, 24
+ cmp r0, 0
+ bge _0809C82C
+ movs r4, 0x6
+_0809C82C:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r7, r1]
+ cmp r0, r1
+ beq _0809C83C
+ movs r0, 0x1
+ mov r8, r0
+_0809C83C:
+ mov r1, r8
+ cmp r1, 0
+ beq _0809C84A
+_0809C842:
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_809AF18
+_0809C84A:
+ mov r0, r8
+_0809C84C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C664
+
+ thumb_func_start sub_809C85C
+sub_809C85C: @ 809C85C
+ push {r4-r6,lr}
+ ldr r0, _0809C894 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r1, _0809C898 @ =0x000011df
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809C89C @ =0x000011de
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0809C8A0 @ =0x000011e3
+ adds r2, r0
+ strb r1, [r2]
+ ldr r1, _0809C8A4 @ =gMain
+ ldrh r3, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r3
+ cmp r0, 0
+ bne _0809C91A
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C8A8
+ movs r4, 0x1
+ movs r0, 0
+ movs r5, 0x2
+ b _0809C922
+ .align 2, 0
+_0809C894: .4byte gUnknown_083B6DB4
+_0809C898: .4byte 0x000011df
+_0809C89C: .4byte 0x000011de
+_0809C8A0: .4byte 0x000011e3
+_0809C8A4: .4byte gMain
+_0809C8A8:
+ ldrh r2, [r1, 0x2C]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0809C8CC
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0809C8DE
+ ldr r0, _0809C8D0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0809C8E2
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C8D4
+_0809C8CC:
+ movs r0, 0xA
+ b _0809C93E
+ .align 2, 0
+_0809C8D0: .4byte gSaveBlock2
+_0809C8D4:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C8E2
+_0809C8DE:
+ movs r0, 0x9
+ b _0809C93E
+_0809C8E2:
+ ldrh r1, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C8FA
+ movs r0, 0
+ bl sub_809A860
+ bl sub_809CA8C
+ movs r0, 0x7
+ b _0809C93E
+_0809C8FA:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C906
+ movs r0, 0x10
+ b _0809C93E
+_0809C906:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C916
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C93E
+_0809C916:
+ movs r4, 0
+ b _0809C93C
+_0809C91A:
+ movs r4, 0x1
+ movs r0, 0x3
+ movs r5, 0
+ strb r4, [r2]
+_0809C922:
+ cmp r4, 0
+ beq _0809C93C
+ lsls r6, r0, 24
+ cmp r0, 0x2
+ beq _0809C932
+ movs r0, 0
+ bl sub_809A860
+_0809C932:
+ lsrs r0, r6, 24
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl sub_809AF18
+_0809C93C:
+ adds r0, r4, 0
+_0809C93E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C85C
+
+ thumb_func_start sub_809C944
+sub_809C944: @ 809C944
+ push {r4-r7,lr}
+ ldr r0, _0809C988 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ mov r12, r0
+ ldr r7, _0809C98C @ =gUnknown_020384E5
+ ldrb r3, [r7]
+ ldr r0, _0809C990 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809C994 @ =0x000011df
+ adds r5, r1, r0
+ movs r0, 0
+ strb r0, [r5]
+ ldr r2, _0809C998 @ =0x000011de
+ adds r4, r1, r2
+ strb r0, [r4]
+ adds r2, 0x5
+ adds r1, r2
+ strb r0, [r1]
+ ldr r6, _0809C99C @ =gMain
+ ldrh r2, [r6, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _0809CA14
+ movs r0, 0x88
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9A0
+ movs r6, 0x1
+ movs r0, 0x2
+ mov r12, r0
+ movs r3, 0
+ b _0809CA2A
+ .align 2, 0
+_0809C988: .4byte gUnknown_020384E4
+_0809C98C: .4byte gUnknown_020384E5
+_0809C990: .4byte gUnknown_083B6DB4
+_0809C994: .4byte 0x000011df
+_0809C998: .4byte 0x000011de
+_0809C99C: .4byte gMain
+_0809C9A0:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9C0
+ movs r6, 0x1
+ lsls r0, r3, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r3, r0, 24
+ cmp r0, 0
+ bge _0809CA2C
+ movs r0, 0xFF
+ strb r0, [r5]
+ movs r3, 0x1
+ b _0809CA2C
+_0809C9C0:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9E0
+ movs r6, 0x1
+ lsls r0, r3, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ ble _0809CA2C
+ strb r6, [r5]
+ movs r3, 0
+ b _0809CA2C
+_0809C9E0:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C9F4
+ movs r0, 0x4
+ cmp r3, 0
+ bne _0809CA3A
+ movs r0, 0x5
+ b _0809CA3A
+_0809C9F4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CA00
+ movs r0, 0x10
+ b _0809CA3A
+_0809CA00:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CA10
+ bl sub_809CD88
+ movs r0, 0
+ b _0809CA3A
+_0809CA10:
+ movs r6, 0
+ b _0809CA38
+_0809CA14:
+ movs r6, 0x1
+ movs r0, 0
+ mov r12, r0
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0
+ ldrsb r0, [r7, r0]
+ movs r3, 0x1D
+ cmp r0, 0
+ bne _0809CA2A
+ movs r3, 0x18
+_0809CA2A:
+ strb r6, [r1]
+_0809CA2C:
+ cmp r6, 0
+ beq _0809CA38
+ mov r0, r12
+ adds r1, r3, 0
+ bl sub_809AF18
+_0809CA38:
+ adds r0, r6, 0
+_0809CA3A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C944
+
+ thumb_func_start sub_809CA40
+sub_809CA40: @ 809CA40
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r0, _0809CA6C @ =gUnknown_083BBBD4
+ ldr r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0809CA84
+ ldr r5, _0809CA70 @ =gUnknown_020384E4
+_0809CA50:
+ lsls r0, r3, 3
+ adds r2, r0, r4
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bne _0809CA74
+ ldr r0, [r2]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809CA86
+ .align 2, 0
+_0809CA6C: .4byte gUnknown_083BBBD4
+_0809CA70: .4byte gUnknown_020384E4
+_0809CA74:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r0, r3, 3
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0809CA50
+_0809CA84:
+ movs r0, 0
+_0809CA86:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CA40
+
+ thumb_func_start sub_809CA8C
+sub_809CA8C: @ 809CA8C
+ push {lr}
+ bl sub_809CDCC
+ movs r0, 0x9
+ bl sub_809CDEC
+ movs r0, 0xA
+ bl sub_809CDEC
+ movs r0, 0xB
+ bl sub_809CDEC
+ movs r0, 0
+ bl sub_809CDEC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809CA8C
+
+ thumb_func_start sub_809CAB0
+sub_809CAB0: @ 809CAB0
+ push {lr}
+ bl sub_809CDCC
+ bl sub_809AB8C
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0809CAD4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ beq _0809CADE
+ cmp r0, 0x1
+ bgt _0809CAD8
+ cmp r0, 0
+ beq _0809CAEA
+ b _0809CB24
+ .align 2, 0
+_0809CAD4: .4byte gUnknown_083B6DB4
+_0809CAD8:
+ cmp r0, 0x2
+ beq _0809CAF6
+ b _0809CB24
+_0809CADE:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x1
+ bl sub_809CDEC
+ b _0809CB28
+_0809CAEA:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x2
+ bl sub_809CDEC
+ b _0809CB28
+_0809CAF6:
+ ldr r0, _0809CB0C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809CB18
+ cmp r1, 0
+ beq _0809CB10
+ movs r0, 0x4
+ bl sub_809CDEC
+ b _0809CB28
+ .align 2, 0
+_0809CB0C: .4byte gUnknown_020384E6
+_0809CB10:
+ movs r0, 0x5
+ bl sub_809CDEC
+ b _0809CB28
+_0809CB18:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x3
+ bl sub_809CDEC
+ b _0809CB28
+_0809CB24:
+ movs r0, 0
+ b _0809CB6E
+_0809CB28:
+ movs r0, 0x6
+ bl sub_809CDEC
+ ldr r0, _0809CB4C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x2
+ bne _0809CB5A
+ ldr r0, _0809CB50 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _0809CB54
+ movs r0, 0x2
+ bl sub_809CDEC
+ b _0809CB5A
+ .align 2, 0
+_0809CB4C: .4byte gUnknown_083B6DB4
+_0809CB50: .4byte gUnknown_020384E4
+_0809CB54:
+ movs r0, 0x1
+ bl sub_809CDEC
+_0809CB5A:
+ movs r0, 0x8
+ bl sub_809CDEC
+ movs r0, 0x7
+ bl sub_809CDEC
+ movs r0, 0
+ bl sub_809CDEC
+ movs r0, 0x1
+_0809CB6E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CAB0
+
+ thumb_func_start sub_809CB74
+sub_809CB74: @ 809CB74
+ ldr r1, _0809CB90 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ movs r2, 0x8E
+ lsls r2, 5
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r1, [r1]
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x14
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0809CB90: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809CB74
+
+ thumb_func_start unref_sub_809CB94
+unref_sub_809CB94: @ 809CB94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0809CBBC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809CBC8
+ ldr r2, _0809CBC0 @ =gPlayerParty
+ ldr r0, _0809CBC4 @ =gUnknown_020384E5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r4, 0
+ movs r2, 0x50
+ bl memcpy
+ b _0809CBF6
+ .align 2, 0
+_0809CBBC: .4byte gUnknown_020384E4
+_0809CBC0: .4byte gPlayerParty
+_0809CBC4: .4byte gUnknown_020384E5
+_0809CBC8:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0809CBFC @ =gPokemonStorage
+ ldr r1, _0809CC00 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ adds r1, r0
+ adds r1, r3
+ adds r1, 0x4
+ adds r0, r4, 0
+ movs r2, 0x50
+ bl memcpy
+_0809CBF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CBFC: .4byte gPokemonStorage
+_0809CC00: .4byte gUnknown_020384E5
+ thumb_func_end unref_sub_809CB94
+
+ thumb_func_start sub_809CC04
+sub_809CC04: @ 809CC04
+ push {r4-r7,lr}
+ sub sp, 0x34
+ mov r1, sp
+ ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ add r4, sp, 0x18
+ adds r1, r4, 0
+ ldr r0, _0809CCB4 @ =gHandCursorSpritePalettes
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ ldr r0, _0809CCB8 @ =0x0000dac6
+ bl IndexOfSpritePaletteTag
+ ldr r1, _0809CCBC @ =gUnknown_083B6DB4
+ ldr r6, [r1]
+ ldr r4, _0809CCC0 @ =0x000011e4
+ adds r7, r6, r4
+ strb r0, [r7]
+ ldr r0, _0809CCC4 @ =0x0000dad1
+ bl IndexOfSpritePaletteTag
+ ldr r5, _0809CCC8 @ =0x000011e5
+ adds r1, r6, r5
+ strb r0, [r1]
+ ldr r0, _0809CCCC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ ldr r1, _0809CCD0 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ add r4, sp, 0x30
+ mov r5, sp
+ adds r5, 0x32
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_809AACC
+ ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0809CCE4
+ movs r5, 0x8E
+ lsls r5, 5
+ adds r4, r6, r5
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0809CCD8 @ =gSprites
+ adds r1, r0
+ str r1, [r4]
+ ldr r0, _0809CCDC @ =gUnknown_020384E9
+ ldrb r0, [r0]
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, _0809CCE0 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809CCEE
+ ldr r0, [r4]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _0809CCEE
+ .align 2, 0
+_0809CCB0: .4byte gHandCursorSpriteSheets
+_0809CCB4: .4byte gHandCursorSpritePalettes
+_0809CCB8: .4byte 0x0000dac6
+_0809CCBC: .4byte gUnknown_083B6DB4
+_0809CCC0: .4byte 0x000011e4
+_0809CCC4: .4byte 0x0000dad1
+_0809CCC8: .4byte 0x000011e5
+_0809CCCC: .4byte gUnknown_020384E4
+_0809CCD0: .4byte gUnknown_020384E5
+_0809CCD4: .4byte gSpriteTemplate_83BBC70
+_0809CCD8: .4byte gSprites
+_0809CCDC: .4byte gUnknown_020384E9
+_0809CCE0: .4byte gUnknown_020384E6
+_0809CCE4:
+ movs r0, 0x8E
+ lsls r0, 5
+ adds r1, r6, r0
+ movs r0, 0
+ str r0, [r1]
+_0809CCEE:
+ ldr r0, _0809CD00 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809CD04
+ movs r3, 0xC
+ movs r5, 0x1
+ b _0809CD08
+ .align 2, 0
+_0809CD00: .4byte gUnknown_020384E4
+_0809CD04:
+ movs r3, 0x14
+ movs r5, 0x2
+_0809CD08:
+ ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88
+ movs r1, 0
+ movs r2, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0809CD6C
+ ldr r0, _0809CD5C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809CD60 @ =0x000011c4
+ adds r4, r0, r1
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0809CD64 @ =gSprites
+ adds r1, r0
+ str r1, [r4]
+ lsls r3, r5, 2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldr r0, _0809CD68 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809CD78
+ ldr r0, [r4]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0809CD78
+ .align 2, 0
+_0809CD58: .4byte gSpriteTemplate_83BBC88
+_0809CD5C: .4byte gUnknown_083B6DB4
+_0809CD60: .4byte 0x000011c4
+_0809CD64: .4byte gSprites
+_0809CD68: .4byte gUnknown_020384E4
+_0809CD6C:
+ ldr r0, _0809CD80 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _0809CD84 @ =0x000011c4
+ adds r0, r2
+ movs r1, 0
+ str r1, [r0]
+_0809CD78:
+ add sp, 0x34
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CD80: .4byte gUnknown_083B6DB4
+_0809CD84: .4byte 0x000011c4
+ thumb_func_end sub_809CC04
+
+ thumb_func_start sub_809CD88
+sub_809CD88: @ 809CD88
+ push {lr}
+ ldr r2, _0809CDC0 @ =gUnknown_020384E9
+ movs r1, 0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _0809CD96
+ movs r1, 0x1
+_0809CD96:
+ strb r1, [r2]
+ ldr r0, _0809CDC4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r1, r0, r3
+ ldr r3, [r1]
+ ldr r1, _0809CDC8 @ =0x000011e4
+ adds r0, r1
+ ldrb r2, [r2]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r1, 4
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CDC0: .4byte gUnknown_020384E9
+_0809CDC4: .4byte gUnknown_083B6DB4
+_0809CDC8: .4byte 0x000011e4
+ thumb_func_end sub_809CD88
+
+ thumb_func_start sub_809CDCC
+sub_809CDCC: @ 809CDCC
+ ldr r0, _0809CDE0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _0809CDE4 @ =0x000011b8
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _0809CDE8 @ =0x000011b9
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0809CDE0: .4byte gUnknown_083B6DB4
+_0809CDE4: .4byte 0x000011b8
+_0809CDE8: .4byte 0x000011b9
+ thumb_func_end sub_809CDCC
+
+ thumb_func_start sub_809CDEC
+sub_809CDEC: @ 809CDEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0809CE3C @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _0809CE40 @ =0x000011b8
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x6
+ bhi _0809CE36
+ adds r1, r0, 0
+ lsls r1, 3
+ movs r2, 0x8C
+ lsls r2, 5
+ adds r1, r2
+ adds r1, r5, r1
+ ldr r2, _0809CE44 @ =gUnknown_083BBCA0
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0x7
+ lsrs r1, 3
+ ldr r2, _0809CE48 @ =0x000011b9
+ adds r0, r5, r2
+ ldrb r2, [r0]
+ cmp r1, r2
+ bls _0809CE30
+ strb r1, [r0]
+_0809CE30:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0809CE36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CE3C: .4byte gUnknown_083B6DB4
+_0809CE40: .4byte 0x000011b8
+_0809CE44: .4byte gUnknown_083BBCA0
+_0809CE48: .4byte 0x000011b9
+ thumb_func_end sub_809CDEC
+
+ thumb_func_start sub_809CE4C
+sub_809CE4C: @ 809CE4C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0809CE70 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r3, _0809CE74 @ =0x000011b8
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _0809CE7C
+ lsls r0, r2, 3
+ ldr r2, _0809CE78 @ =0x00001184
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ b _0809CE80
+ .align 2, 0
+_0809CE70: .4byte gUnknown_083B6DB4
+_0809CE74: .4byte 0x000011b8
+_0809CE78: .4byte 0x00001184
+_0809CE7C:
+ movs r0, 0x1
+ negs r0, r0
+_0809CE80:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CE4C
+
+ thumb_func_start sub_809CE84
+sub_809CE84: @ 809CE84
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _0809CF20 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809CF24 @ =0x000011b8
+ adds r0, r4
+ mov r8, r0
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0xE
+ subs r1, r0
+ ldr r3, _0809CF28 @ =0x000011bc
+ adds r6, r4, r3
+ movs r0, 0
+ mov r10, r0
+ strh r1, [r6]
+ ldr r1, _0809CF2C @ =0x000011b9
+ adds r1, r4
+ mov r9, r1
+ ldrb r1, [r1]
+ movs r0, 0x1C
+ subs r0, r1
+ subs r3, 0x2
+ adds r5, r4, r3
+ strh r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuDrawTextWindow
+ ldrb r0, [r5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r8
+ ldrb r2, [r3]
+ movs r3, 0x8C
+ lsls r3, 5
+ adds r4, r3
+ adds r3, r4, 0
+ bl PrintMenuItems
+ ldrb r1, [r5]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r4, r8
+ ldrb r3, [r4]
+ mov r0, r10
+ str r0, [sp]
+ mov r4, r9
+ ldrb r0, [r4]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CF20: .4byte gUnknown_083B6DB4
+_0809CF24: .4byte 0x000011b8
+_0809CF28: .4byte 0x000011bc
+_0809CF2C: .4byte 0x000011b9
+ thumb_func_end sub_809CE84
+
+ thumb_func_start sub_809CF30
+sub_809CF30: @ 809CF30
+ push {r4,r5,lr}
+ movs r5, 0x2
+ negs r5, r5
+ ldr r4, _0809CF6C @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809CF86
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF52
+ movs r0, 0x5
+ bl PlaySE
+ adds r5, 0x1
+_0809CF52:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF70
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0809CF8E
+ .align 2, 0
+_0809CF6C: .4byte gMain
+_0809CF70:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF8E
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0809CF8E
+_0809CF86:
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0809CF8E:
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ beq _0809CFB2
+ bl sub_8072DEC
+ ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _0809CFD4 @ =0x000011ba
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_0809CFB2:
+ cmp r5, 0
+ blt _0809CFC4
+ ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ lsls r1, r5, 3
+ ldr r2, _0809CFD8 @ =0x00001184
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+_0809CFC4:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809CFD0: .4byte gUnknown_083B6DB4
+_0809CFD4: .4byte 0x000011ba
+_0809CFD8: .4byte 0x00001184
+ thumb_func_end sub_809CF30
+
+ thumb_func_start sub_809CFDC
+sub_809CFDC: @ 809CFDC
+ ldr r3, _0809CFEC @ =gUnknown_020384EC
+ str r0, [r3]
+ str r1, [r0]
+ movs r1, 0
+ strb r2, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_0809CFEC: .4byte gUnknown_020384EC
+ thumb_func_end sub_809CFDC
+
+ thumb_func_start sub_809CFF0
+sub_809CFF0: @ 809CFF0
+ push {r4,r5,lr}
+ ldr r2, _0809D030 @ =gUnknown_020384EC
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0809D02A
+ movs r4, 0
+ ldrb r1, [r1, 0x4]
+ cmp r4, r1
+ bcs _0809D022
+ adds r5, r2, 0
+_0809D006:
+ ldr r0, [r5]
+ lsls r1, r4, 4
+ ldr r0, [r0]
+ adds r0, r1
+ ldr r1, [r0, 0xC]
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcc _0809D006
+_0809D022:
+ ldr r0, _0809D030 @ =gUnknown_020384EC
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+_0809D02A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D030: .4byte gUnknown_020384EC
+ thumb_func_end sub_809CFF0
+
+ thumb_func_start sub_809D034
+sub_809D034: @ 809D034
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ mov r9, r3
+ ldr r0, [sp, 0x20]
+ ldr r3, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _0809D0A4 @ =gUnknown_020384EC
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x4]
+ adds r1, r0, 0
+ ldrb r7, [r2, 0x5]
+ cmp r1, r7
+ bcs _0809D0AC
+ adds r0, 0x1
+ strb r0, [r2, 0x4]
+ lsls r0, r1, 4
+ ldr r2, [r2]
+ adds r2, r0
+ lsls r0, r4, 1
+ strh r0, [r2, 0x8]
+ lsls r0, r6, 6
+ add r0, r8
+ mov r4, r10
+ lsls r1, r4, 1
+ adds r0, r1
+ str r0, [r2, 0x4]
+ lsls r0, r3, 6
+ add r0, r9
+ mov r7, r12
+ lsls r1, r7, 1
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r2, 0xA]
+ ldr r0, _0809D0A8 @ =sub_809D0BC
+ str r0, [r2, 0xC]
+ movs r0, 0x1
+ b _0809D0AE
+ .align 2, 0
+_0809D0A4: .4byte gUnknown_020384EC
+_0809D0A8: .4byte sub_809D0BC
+_0809D0AC:
+ movs r0, 0
+_0809D0AE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D034
+
+ thumb_func_start sub_809D0BC
+sub_809D0BC: @ 809D0BC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r6, [r0]
+ ldr r5, [r0, 0x4]
+ ldrh r7, [r0, 0xA]
+ ldrh r2, [r0, 0x8]
+ movs r4, 0
+ cmp r4, r7
+ bcs _0809D0F2
+ lsrs r2, 1
+ mov r8, r2
+ ldr r0, _0809D100 @ =0x001fffff
+ mov r9, r0
+_0809D0DA:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ mov r3, r9
+ ands r2, r3
+ bl CpuSet
+ adds r5, 0x40
+ adds r6, 0x40
+ adds r4, 0x1
+ cmp r4, r7
+ bcc _0809D0DA
+_0809D0F2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D100: .4byte 0x001fffff
+ thumb_func_end sub_809D0BC
+
+ thumb_func_start sub_809D104
+sub_809D104: @ 809D104
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ mov r8, r6
+ ldr r6, [sp, 0x24]
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r5, 16
+ lsls r4, 16
+ mov r7, r8
+ lsls r7, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsrs r4, 10
+ adds r3, r4
+ lsrs r5, 15
+ adds r5, r3, r5
+ lsls r3, r2, 6
+ adds r3, r0, r3
+ lsrs r1, 15
+ adds r4, r3, r1
+ adds r2, r6
+ lsls r2, 6
+ adds r6, r0, r2
+ lsrs r2, r7, 15
+ cmp r4, r6
+ bcs _0809D15C
+ lsrs r7, r2, 1
+ ldr r0, _0809D168 @ =0x001fffff
+ mov r8, r0
+_0809D148:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r7
+ bl CpuSet
+ adds r4, 0x40
+ adds r5, 0x40
+ cmp r4, r6
+ bcc _0809D148
+_0809D15C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D168: .4byte 0x001fffff
+ thumb_func_end sub_809D104
+
+ thumb_func_start sub_809D16C
+sub_809D16C: @ 809D16C
+ push {r4-r7,lr}
+ mov r12, r0
+ ldr r0, [sp, 0x14]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0809D1B4 @ =gUnknown_020384EC
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ adds r2, r0, 0
+ ldrb r7, [r1, 0x5]
+ cmp r2, r7
+ bcs _0809D1BC
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ lsls r0, r2, 4
+ ldr r1, [r1]
+ adds r1, r0
+ lsls r0, r3, 1
+ strh r0, [r1, 0x8]
+ lsls r0, r4, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r12
+ str r0, [r1, 0x4]
+ strh r5, [r1, 0xA]
+ ldr r0, _0809D1B8 @ =sub_809D1C4
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ b _0809D1BE
+ .align 2, 0
+_0809D1B4: .4byte gUnknown_020384EC
+_0809D1B8: .4byte sub_809D1C4
+_0809D1BC:
+ movs r0, 0
+_0809D1BE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D16C
+
+ thumb_func_start sub_809D1C4
+sub_809D1C4: @ 809D1C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r0, 0
+ ldrh r1, [r6, 0xA]
+ cmp r0, r1
+ bcs _0809D252
+ movs r7, 0x80
+ lsls r7, 5
+ mov r5, sp
+ ldr r2, _0809D210 @ =0x040000d4
+ mov r8, r2
+ movs r1, 0x81
+ lsls r1, 24
+ mov r10, r1
+_0809D1EA:
+ ldr r2, [r6, 0x4]
+ ldrh r3, [r6, 0x8]
+ mov r12, r2
+ adds r0, 0x1
+ mov r9, r0
+ cmp r3, r7
+ bhi _0809D214
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ mov r0, r8
+ str r2, [r0]
+ mov r1, r12
+ str r1, [r0, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+ mov r1, r8
+ b _0809D23C
+ .align 2, 0
+_0809D210: .4byte 0x040000d4
+_0809D214:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, _0809D264 @ =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0809D268 @ =0x81000800
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r7
+ subs r3, r7
+ cmp r3, r7
+ bhi _0809D214
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+_0809D23C:
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, r12
+ adds r0, 0x40
+ str r0, [r6, 0x4]
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r0, 16
+ ldrh r2, [r6, 0xA]
+ cmp r0, r2
+ bcc _0809D1EA
+_0809D252:
+ 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
+_0809D264: .4byte 0x040000d4
+_0809D268: .4byte 0x81000800
+ thumb_func_end sub_809D1C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
new file mode 100644
index 000000000..25144558d
--- /dev/null
+++ b/asm/pokemon_summary_screen.s
@@ -0,0 +1,8776 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_809D844
+sub_809D844: @ 809D844
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D844
+
+ thumb_func_start sub_809D85C
+sub_809D85C: @ 809D85C
+ push {lr}
+ ldr r1, _0809D8A0 @ =REG_BG1HOFS
+ ldr r0, _0809D8A4 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8A8 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8AC @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B0 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B4 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B8 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D8A0: .4byte REG_BG1HOFS
+_0809D8A4: .4byte gUnknown_030042C0
+_0809D8A8: .4byte gUnknown_030041B4
+_0809D8AC: .4byte gUnknown_03004288
+_0809D8B0: .4byte gUnknown_03004280
+_0809D8B4: .4byte gUnknown_030041B0
+_0809D8B8: .4byte gUnknown_030041B8
+ thumb_func_end sub_809D85C
+
+ thumb_func_start ShowPokemonSummaryScreen
+ShowPokemonSummaryScreen: @ 809D8BC
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r4, 24
+ lsrs r7, r4, 24
+ ldr r6, _0809D904 @ =gPaletteFade
+ ldrb r4, [r6, 0x8]
+ movs r5, 0x80
+ orrs r4, r5
+ strb r4, [r6, 0x8]
+ ldr r5, _0809D908 @ =0x02018000
+ str r0, [r5]
+ movs r4, 0
+ strb r7, [r5, 0x8]
+ strb r1, [r5, 0x9]
+ strb r2, [r5, 0xA]
+ str r3, [r5, 0x4]
+ adds r0, r5, 0
+ adds r0, 0x74
+ strb r4, [r0]
+ adds r1, r5, 0
+ adds r1, 0x79
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x7C
+ movs r1, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strb r1, [r0]
+ subs r0, 0x5
+ strb r1, [r0]
+ cmp r7, 0x4
+ bls _0809D90C
+ movs r0, 0x1
+ strb r0, [r5, 0xE]
+ b _0809D90E
+ .align 2, 0
+_0809D904: .4byte gPaletteFade
+_0809D908: .4byte 0x02018000
+_0809D90C:
+ strb r1, [r5, 0xE]
+_0809D90E:
+ cmp r7, 0x6
+ bhi _0809D9D6
+ lsls r0, r7, 2
+ ldr r1, _0809D91C @ =_0809D920
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809D91C: .4byte _0809D920
+ .align 2, 0
+_0809D920:
+ .4byte _0809D93C
+ .4byte _0809D9BC
+ .4byte _0809D992
+ .4byte _0809D9D6
+ .4byte _0809D966
+ .4byte _0809D93C
+ .4byte _0809D9BC
+_0809D93C:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x7
+ strb r0, [r1]
+ b _0809D9D6
+_0809D966:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r2, 0x9
+ movs r0, 0x7
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x7B
+ b _0809D9D4
+_0809D992:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x76
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r0, 0x1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ strb r2, [r0]
+ adds r0, 0x1
+ strb r3, [r0]
+ subs r0, 0x6
+ strb r3, [r0]
+ b _0809D9D6
+_0809D9BC:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x77
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+_0809D9D4:
+ strb r1, [r0]
+_0809D9D6:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ strb r0, [r5, 0xB]
+ ldr r0, _0809D9EC @ =sub_809DE44
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D9EC: .4byte sub_809DE44
+ thumb_func_end ShowPokemonSummaryScreen
+
+ thumb_func_start sub_809D9F0
+sub_809D9F0: @ 809D9F0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r4, 0x2
+ str r4, [sp]
+ bl ShowPokemonSummaryScreen
+ ldr r0, _0809DA18 @ =0x02018000
+ adds r0, 0x7C
+ strh r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA18: .4byte 0x02018000
+ thumb_func_end sub_809D9F0
+
+ thumb_func_start sub_809DA1C
+sub_809DA1C: @ 809DA1C
+ push {lr}
+ ldr r0, _0809DA30 @ =0x02018000
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x6
+ bhi _0809DA78
+ lsls r0, 2
+ ldr r1, _0809DA34 @ =_0809DA38
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DA30: .4byte 0x02018000
+_0809DA34: .4byte _0809DA38
+ .align 2, 0
+_0809DA38:
+ .4byte _0809DA54
+ .4byte _0809DA6C
+ .4byte _0809DA64
+ .4byte _0809DA64
+ .4byte _0809DA5C
+ .4byte _0809DA54
+ .4byte _0809DA6C
+_0809DA54:
+ ldr r0, _0809DA58 @ =SummaryScreenHandleKeyInput
+ b _0809DA6E
+ .align 2, 0
+_0809DA58: .4byte SummaryScreenHandleKeyInput
+_0809DA5C:
+ ldr r0, _0809DA60 @ =SummaryScreenHandleKeyInput
+ b _0809DA6E
+ .align 2, 0
+_0809DA60: .4byte SummaryScreenHandleKeyInput
+_0809DA64:
+ ldr r0, _0809DA68 @ =sub_809EB40
+ b _0809DA6E
+ .align 2, 0
+_0809DA68: .4byte sub_809EB40
+_0809DA6C:
+ ldr r0, _0809DA7C @ =sub_809E3FC
+_0809DA6E:
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _0809DA80 @ =0x02018000
+ strb r0, [r1, 0xF]
+_0809DA78:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA7C: .4byte sub_809E3FC
+_0809DA80: .4byte 0x02018000
+ thumb_func_end sub_809DA1C
+
+ thumb_func_start sub_809DA84
+sub_809DA84: @ 809DA84
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _0809DAA4 @ =gMain
+ ldr r2, _0809DAA8 @ =0x0000043c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x16
+ bls _0809DA98
+ b _0809DE00
+_0809DA98:
+ lsls r0, 2
+ ldr r1, _0809DAAC @ =_0809DAB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DAA4: .4byte gMain
+_0809DAA8: .4byte 0x0000043c
+_0809DAAC: .4byte _0809DAB0
+ .align 2, 0
+_0809DAB0:
+ .4byte _0809DB0C
+ .4byte _0809DB18
+ .4byte _0809DB2C
+ .4byte _0809DB32
+ .4byte _0809DB80
+ .4byte _0809DB94
+ .4byte _0809DBA0
+ .4byte _0809DBBC
+ .4byte _0809DBC8
+ .4byte _0809DBDC
+ .4byte _0809DC2C
+ .4byte _0809DC48
+ .4byte _0809DC5C
+ .4byte _0809DC90
+ .4byte _0809DCB0
+ .4byte _0809DCC4
+ .4byte _0809DCF8
+ .4byte _0809DD02
+ .4byte _0809DD30
+ .4byte _0809DD3C
+ .4byte _0809DD68
+ .4byte _0809DD98
+ .4byte _0809DDE0
+_0809DB0C:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ b _0809DDE8
+_0809DB18:
+ bl remove_some_task
+ ldr r1, _0809DB24 @ =gMain
+ ldr r2, _0809DB28 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB24: .4byte gMain
+_0809DB28: .4byte 0x0000043c
+_0809DB2C:
+ bl FreeAllSpritePalettes
+ b _0809DDE8
+_0809DB32:
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _0809DB74 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _0809DB78 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_0809DB48:
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0809DB48
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0809DB7C @ =0x0000043c
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DB74: .4byte 0x040000d4
+_0809DB78: .4byte 0x85000400
+_0809DB7C: .4byte 0x0000043c
+_0809DB80:
+ bl sub_809DE64
+ ldr r1, _0809DB8C @ =gMain
+ ldr r2, _0809DB90 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB8C: .4byte gMain
+_0809DB90: .4byte 0x0000043c
+_0809DB94:
+ ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C
+ bl SetUpWindowConfig
+ b _0809DDE8
+ .align 2, 0
+_0809DB9C: .4byte gWindowConfig_81E6E6C
+_0809DBA0:
+ ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C
+ bl MultistepInitMenuWindowBegin
+ ldr r1, _0809DBB4 @ =gMain
+ ldr r2, _0809DBB8 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBB0: .4byte gWindowConfig_81E6E6C
+_0809DBB4: .4byte gMain
+_0809DBB8: .4byte 0x0000043c
+_0809DBBC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0809DBC6
+ b _0809DE38
+_0809DBC6:
+ b _0809DDE8
+_0809DBC8:
+ bl sub_809DA1C
+ ldr r1, _0809DBD4 @ =gMain
+ ldr r2, _0809DBD8 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBD4: .4byte gMain
+_0809DBD8: .4byte 0x0000043c
+_0809DBDC:
+ ldr r1, _0809DC08 @ =gSummaryScreenTextTiles
+ ldr r2, _0809DC0C @ =0x0600d000
+ ldr r0, _0809DC10 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC14 @ =0x800000a0
+ str r1, [r0, 0x8]
+ ldr r1, [r0, 0x8]
+ ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles
+ ldr r2, _0809DC1C @ =0x0600d140
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC20 @ =0x80000080
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0809DC24 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0809DC28 @ =0x0000043c
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DC08: .4byte gSummaryScreenTextTiles
+_0809DC0C: .4byte 0x0600d000
+_0809DC10: .4byte 0x040000d4
+_0809DC14: .4byte 0x800000a0
+_0809DC18: .4byte gSummaryScreenButtonTiles
+_0809DC1C: .4byte 0x0600d140
+_0809DC20: .4byte 0x80000080
+_0809DC24: .4byte 0x02018000
+_0809DC28: .4byte 0x0000043c
+_0809DC2C:
+ bl sub_809DF00
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC38
+ b _0809DE38
+_0809DC38:
+ ldr r0, _0809DC44 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DC44: .4byte 0x02018000
+_0809DC48:
+ bl sub_80A18C4
+ ldr r1, _0809DC54 @ =gMain
+ ldr r2, _0809DC58 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DC54: .4byte gMain
+_0809DC58: .4byte 0x0000043c
+_0809DC5C:
+ ldr r4, _0809DC78 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC7C
+ movs r0, 0
+ bl sub_80A12D0
+ b _0809DC82
+ .align 2, 0
+_0809DC78: .4byte 0x02018010
+_0809DC7C:
+ movs r0, 0xA
+ bl sub_80A12D0
+_0809DC82:
+ ldr r0, _0809DC8C @ =0x02018010
+ bl sub_80A0EA4
+ b _0809DDE8
+ .align 2, 0
+_0809DC8C: .4byte 0x02018010
+_0809DC90:
+ bl sub_80A1950
+ ldr r0, _0809DCA4 @ =0x02018010
+ bl sub_80A1D84
+ ldr r1, _0809DCA8 @ =gMain
+ ldr r2, _0809DCAC @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCA4: .4byte 0x02018010
+_0809DCA8: .4byte gMain
+_0809DCAC: .4byte 0x0000043c
+_0809DCB0:
+ ldr r4, _0809DCC0 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_80A1DE8
+ adds r4, 0x64
+ movs r0, 0
+ strb r0, [r4]
+ b _0809DDE8
+ .align 2, 0
+_0809DCC0: .4byte 0x02018010
+_0809DCC4:
+ ldr r4, _0809DCEC @ =0x02018010
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ subs r4, 0x10
+ strb r0, [r4, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809DCE0
+ b _0809DE38
+_0809DCE0:
+ movs r0, 0
+ strb r0, [r5]
+ ldr r1, _0809DCF0 @ =gMain
+ ldr r2, _0809DCF4 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCEC: .4byte 0x02018010
+_0809DCF0: .4byte gMain
+_0809DCF4: .4byte 0x0000043c
+_0809DCF8:
+ bl sub_809E044
+ bl sub_80A0EE8
+ b _0809DDE8
+_0809DD02:
+ ldr r1, _0809DD20 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bhi _0809DD18
+ ldr r0, _0809DD24 @ =gUnknown_083C1580
+ ldrb r1, [r1, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_0809DD18:
+ ldr r1, _0809DD28 @ =gMain
+ ldr r2, _0809DD2C @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD20: .4byte 0x02018000
+_0809DD24: .4byte gUnknown_083C1580
+_0809DD28: .4byte gMain
+_0809DD2C: .4byte 0x0000043c
+_0809DD30:
+ ldr r0, _0809DD38 @ =0x02018010
+ bl sub_809FAC8
+ b _0809DDE8
+ .align 2, 0
+_0809DD38: .4byte 0x02018010
+_0809DD3C:
+ ldr r2, _0809DD58 @ =gUnknown_083C1598
+ ldr r0, _0809DD5C @ =0x02018000
+ ldrb r1, [r0, 0xB]
+ lsls r1, 2
+ adds r1, r2
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r1, _0809DD60 @ =gMain
+ ldr r2, _0809DD64 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD58: .4byte gUnknown_083C1598
+_0809DD5C: .4byte 0x02018000
+_0809DD60: .4byte gMain
+_0809DD64: .4byte 0x0000043c
+_0809DD68:
+ ldr r0, _0809DD84 @ =0x02018010
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809DD8C
+ ldr r1, _0809DD88 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809DDE8
+ .align 2, 0
+_0809DD84: .4byte 0x02018010
+_0809DD88: .4byte gUnknown_030041B0
+_0809DD8C:
+ ldr r0, _0809DD94 @ =gUnknown_030041B0
+ strh r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DD94: .4byte gUnknown_030041B0
+_0809DD98:
+ bl sub_809EBC4
+ ldr r0, _0809DDB8 @ =0x02018000
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809DDBC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1654
+ b _0809DDCC
+ .align 2, 0
+_0809DDB8: .4byte 0x02018000
+_0809DDBC:
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1654
+_0809DDCC:
+ bl sub_80A0DD0
+ ldr r1, _0809DDD8 @ =gMain
+ ldr r2, _0809DDDC @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DDD8: .4byte gMain
+_0809DDDC: .4byte 0x0000043c
+_0809DDE0:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809DE38
+_0809DDE8:
+ ldr r1, _0809DDF8 @ =gMain
+ ldr r0, _0809DDFC @ =0x0000043c
+ adds r1, r0
+_0809DDEE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809DE38
+ .align 2, 0
+_0809DDF8: .4byte gMain
+_0809DDFC: .4byte 0x0000043c
+_0809DE00:
+ ldr r0, _0809DE2C @ =sub_809D85C
+ bl SetVBlankCallback
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r0, _0809DE30 @ =sub_809D844
+ bl SetMainCallback2
+ ldr r2, _0809DE34 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ movs r0, 0x1
+ b _0809DE3A
+ .align 2, 0
+_0809DE2C: .4byte sub_809D85C
+_0809DE30: .4byte sub_809D844
+_0809DE34: .4byte gPaletteFade
+_0809DE38:
+ movs r0, 0
+_0809DE3A:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809DA84
+
+ thumb_func_start sub_809DE44
+sub_809DE44: @ 809DE44
+ push {lr}
+_0809DE46:
+ bl sub_809DA84
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809DE5E
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809DE46
+_0809DE5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809DE44
+
+ thumb_func_start sub_809DE64
+sub_809DE64: @ 809DE64
+ ldr r1, _0809DED0 @ =REG_BG0CNT
+ ldr r2, _0809DED4 @ =0x00001e08
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DED8 @ =0x00004801
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEDC @ =0x00004a02
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEE0 @ =0x00005c03
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE4 @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE8 @ =gUnknown_030041B4
+ strh r0, [r1]
+ ldr r1, _0809DEEC @ =gUnknown_03004288
+ strh r0, [r1]
+ ldr r1, _0809DEF0 @ =gUnknown_03004280
+ strh r0, [r1]
+ ldr r1, _0809DEF4 @ =gUnknown_030041B0
+ strh r0, [r1]
+ ldr r1, _0809DEF8 @ =gUnknown_030041B8
+ strh r0, [r1]
+ ldr r1, _0809DEFC @ =REG_BG0HOFS
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x32
+ strh r0, [r1]
+ subs r1, 0x50
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0809DED0: .4byte REG_BG0CNT
+_0809DED4: .4byte 0x00001e08
+_0809DED8: .4byte 0x00004801
+_0809DEDC: .4byte 0x00004a02
+_0809DEE0: .4byte 0x00005c03
+_0809DEE4: .4byte gUnknown_030042C0
+_0809DEE8: .4byte gUnknown_030041B4
+_0809DEEC: .4byte gUnknown_03004288
+_0809DEF0: .4byte gUnknown_03004280
+_0809DEF4: .4byte gUnknown_030041B0
+_0809DEF8: .4byte gUnknown_030041B8
+_0809DEFC: .4byte REG_BG0HOFS
+ thumb_func_end sub_809DE64
+
+ thumb_func_start sub_809DF00
+sub_809DF00: @ 809DF00
+ push {lr}
+ ldr r0, _0809DF18 @ =0x02018000
+ adds r0, 0x74
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _0809DF0E
+ b _0809E030
+_0809DF0E:
+ lsls r0, 2
+ ldr r1, _0809DF1C @ =_0809DF20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DF18: .4byte 0x02018000
+_0809DF1C: .4byte _0809DF20
+ .align 2, 0
+_0809DF20:
+ .4byte _0809DF54
+ .4byte _0809DF64
+ .4byte _0809DF74
+ .4byte _0809DF88
+ .4byte _0809DF9C
+ .4byte _0809DFAC
+ .4byte _0809DFC4
+ .4byte _0809DFD4
+ .4byte _0809DFE0
+ .4byte _0809DFEC
+ .4byte _0809DFF8
+ .4byte _0809E004
+ .4byte _0809E010
+_0809DF54:
+ ldr r0, _0809DF60 @ =gStatusScreen_Gfx
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF60: .4byte gStatusScreen_Gfx
+_0809DF64:
+ ldr r0, _0809DF6C @ =gUnknown_08E73508
+ ldr r1, _0809DF70 @ =0x0600e000
+ b _0809DFB0
+ .align 2, 0
+_0809DF6C: .4byte gUnknown_08E73508
+_0809DF70: .4byte 0x0600e000
+_0809DF74:
+ ldr r0, _0809DF80 @ =gUnknown_08E74E88
+ ldr r1, _0809DF84 @ =0x0600e800
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF80: .4byte gUnknown_08E74E88
+_0809DF84: .4byte 0x0600e800
+_0809DF88:
+ ldr r0, _0809DF94 @ =gStatusScreen_Tilemap
+ ldr r1, _0809DF98 @ =0x06004800
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF94: .4byte gStatusScreen_Tilemap
+_0809DF98: .4byte 0x06004800
+_0809DF9C:
+ ldr r0, _0809DFA4 @ =gUnknown_08E73E88
+ ldr r1, _0809DFA8 @ =0x06005800
+ b _0809DFB0
+ .align 2, 0
+_0809DFA4: .4byte gUnknown_08E73E88
+_0809DFA8: .4byte 0x06005800
+_0809DFAC:
+ ldr r0, _0809DFBC @ =gUnknown_08E74688
+ ldr r1, _0809DFC0 @ =0x06006800
+_0809DFB0:
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ b _0809E030
+ .align 2, 0
+_0809DFBC: .4byte gUnknown_08E74688
+_0809DFC0: .4byte 0x06006800
+_0809DFC4:
+ ldr r0, _0809DFD0 @ =gStatusScreen_Pal
+ movs r1, 0
+ movs r2, 0xA0
+ bl LoadCompressedPalette
+ b _0809E030
+ .align 2, 0
+_0809DFD0: .4byte gStatusScreen_Pal
+_0809DFD4:
+ ldr r0, _0809DFDC @ =gUnknown_083C11B8
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFDC: .4byte gUnknown_083C11B8
+_0809DFE0:
+ ldr r0, _0809DFE8 @ =gUnknown_083C1270
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFE8: .4byte gUnknown_083C1270
+_0809DFEC:
+ ldr r0, _0809DFF4 @ =gUnknown_083C12F4
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFF4: .4byte gUnknown_083C12F4
+_0809DFF8:
+ ldr r0, _0809E000 @ =gUnknown_083C12FC
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E000: .4byte gUnknown_083C12FC
+_0809E004:
+ ldr r0, _0809E00C @ =gUnknown_083C1278
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E00C: .4byte gUnknown_083C1278
+_0809E010:
+ ldr r0, _0809E028 @ =gMoveTypes_Pal
+ movs r1, 0xE8
+ lsls r1, 1
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r0, _0809E02C @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0809E03C
+ .align 2, 0
+_0809E028: .4byte gMoveTypes_Pal
+_0809E02C: .4byte 0x02018000
+_0809E030:
+ ldr r1, _0809E040 @ =0x02018000
+ adds r1, 0x74
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+_0809E03C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E040: .4byte 0x02018000
+ thumb_func_end sub_809DF00
+
+ thumb_func_start sub_809E044
+sub_809E044: @ 809E044
+ push {r4,r5,lr}
+ ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C
+ adds r0, r4, 0
+ movs r1, 0x81
+ movs r2, 0x2
+ bl LoadPalette
+ adds r5, r4, 0x2
+ adds r0, r5, 0
+ movs r1, 0x88
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0x8F
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0x89
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x12
+ adds r0, r5, 0
+ movs r1, 0xD1
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x8
+ movs r1, 0xD3
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD5
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xD7
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x14
+ movs r1, 0xD9
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0xC
+ movs r1, 0xDB
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x18
+ movs r1, 0xDD
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x6
+ adds r0, r5, 0
+ movs r1, 0xDE
+ movs r2, 0x2
+ bl LoadPalette
+ subs r4, 0x1A
+ adds r0, r4, 0
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _0809E0F8 @ =gFontDefaultPalette
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xF9
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
+_0809E0F8: .4byte gFontDefaultPalette
+ thumb_func_end sub_809E044
+
+ thumb_func_start SummaryScreenExit
+SummaryScreenExit: @ 809E0FC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0809E134 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E138 @ =sub_809E13C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E134: .4byte gTasks
+_0809E138: .4byte sub_809E13C
+ thumb_func_end SummaryScreenExit
+
+ thumb_func_start sub_809E13C
+sub_809E13C: @ 809E13C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809E182
+ ldr r0, _0809E188 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E182
+ ldr r1, _0809E18C @ =gUnknown_020384F0
+ ldr r4, _0809E190 @ =0x02018000
+ ldrb r0, [r4, 0x9]
+ strb r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl StopCryAndClearCrySongs
+ ldr r0, _0809E194 @ =gMPlay_BGM
+ ldr r1, _0809E198 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, [r4, 0x4]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0809E182:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E188: .4byte gPaletteFade
+_0809E18C: .4byte gUnknown_020384F0
+_0809E190: .4byte 0x02018000
+_0809E194: .4byte gMPlay_BGM
+_0809E198: .4byte 0x0000ffff
+ thumb_func_end sub_809E13C
+
+ thumb_func_start SummaryScreenHandleKeyInput
+SummaryScreenHandleKeyInput: @ 809E19C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E1C8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E25A
+ ldr r5, _0809E1CC @ =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1D0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleUpDownInput
+ b _0809E25A
+ .align 2, 0
+_0809E1C8: .4byte gPaletteFade
+_0809E1CC: .4byte gMain
+_0809E1D0:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1E2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleUpDownInput
+ b _0809E25A
+_0809E1E2:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E1F6
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E202
+_0809E1F6:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E25A
+_0809E202:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E218
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E222
+_0809E218:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E25A
+_0809E222:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E24C
+ ldr r5, _0809E248 @ =0x02018000
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0x1
+ bls _0809E23A
+ adds r0, r4, 0
+ bl SummaryScreenHandleAButton
+_0809E23A:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809E25A
+ adds r0, r4, 0
+ bl SummaryScreenExit
+ b _0809E25A
+ .align 2, 0
+_0809E248: .4byte 0x02018000
+_0809E24C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E25A
+ adds r0, r4, 0
+ bl SummaryScreenExit
+_0809E25A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end SummaryScreenHandleKeyInput
+
+ thumb_func_start sub_809E260
+sub_809E260: @ 809E260
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E29C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E276
+ b _0809E3EE
+_0809E276:
+ ldr r5, _0809E2A0 @ =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2AC
+ ldr r1, _0809E2A4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E2A8 @ =0x02018079
+ adds r0, r4, 0
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E29C: .4byte gPaletteFade
+_0809E2A0: .4byte gMain
+_0809E2A4: .4byte gTasks
+_0809E2A8: .4byte 0x02018079
+_0809E2AC:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2D8
+ ldr r1, _0809E2D0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E2D4 @ =0x02018079
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E2D0: .4byte gTasks
+_0809E2D4: .4byte 0x02018079
+_0809E2D8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E2EC
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E324
+_0809E2EC:
+ ldr r1, _0809E320 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x3
+ bne _0809E314
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E308
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E314
+_0809E308:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E314:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E3EE
+ .align 2, 0
+_0809E320: .4byte 0x02018000
+_0809E324:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E33A
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E37C
+_0809E33A:
+ ldr r1, _0809E378 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E3EE
+ cmp r0, 0x2
+ bne _0809E36C
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E360
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E36C
+_0809E360:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E36C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E3EE
+ .align 2, 0
+_0809E378: .4byte 0x02018000
+_0809E37C:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3D4
+ adds r0, r4, 0
+ bl sub_809F7D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809E3A0
+ ldr r0, _0809E3BC @ =0x02018000
+ adds r5, r0, 0
+ adds r5, 0x79
+ ldrb r0, [r5]
+ cmp r0, 0x4
+ bne _0809E3C4
+_0809E3A0:
+ ldr r0, _0809E3BC @ =0x02018000
+ adds r1, r0, 0
+ adds r1, 0x79
+ ldrb r1, [r1]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl SummaryScreenExit
+ b _0809E3EE
+ .align 2, 0
+_0809E3BC: .4byte 0x02018000
+_0809E3C0: .4byte gSpecialVar_0x8005
+_0809E3C4:
+ movs r0, 0x20
+ bl PlaySE
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_809F9D0
+ b _0809E3EE
+_0809E3D4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3EE
+ ldr r0, _0809E3F4 @ =0x02018000
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl SummaryScreenExit
+_0809E3EE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E3F4: .4byte 0x02018000
+_0809E3F8: .4byte gSpecialVar_0x8005
+ thumb_func_end sub_809E260
+
+ thumb_func_start sub_809E3FC
+sub_809E3FC: @ 809E3FC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r0, _0809E438 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E502
+ ldr r0, _0809E43C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E448
+ ldr r1, _0809E440 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E444 @ =0x02018079
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E438: .4byte gPaletteFade
+_0809E43C: .4byte gMain
+_0809E440: .4byte gTasks
+_0809E444: .4byte 0x02018079
+_0809E448:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E474
+ ldr r1, _0809E46C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E470 @ =0x02018079
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E46C: .4byte gTasks
+_0809E470: .4byte 0x02018079
+_0809E474:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E4EE
+ ldr r4, _0809E4A8 @ =0x02018000
+ adds r6, r4, 0
+ adds r6, 0x79
+ ldrb r0, [r6]
+ cmp r0, 0x4
+ beq _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809E508
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E4AC
+ movs r0, 0x20
+ bl PlaySE
+ b _0809E502
+ .align 2, 0
+_0809E4A8: .4byte 0x02018000
+_0809E4AC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7A
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_80A1B40
+ movs r0, 0x13
+ bl sub_80A1A30
+ ldr r1, _0809E4D8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E4DC @ =sub_809E534
+ str r1, [r0]
+ b _0809E502
+ .align 2, 0
+_0809E4D8: .4byte gTasks
+_0809E4DC: .4byte sub_809E534
+_0809E4E0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+ b _0809E502
+_0809E4EE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E502
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+_0809E502:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E3FC
+
+ thumb_func_start sub_809E508
+sub_809E508: @ 809E508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0x1
+_0809E50E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809F760
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809E520
+ movs r0, 0x1
+ b _0809E52C
+_0809E520:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0809E50E
+ movs r0, 0
+_0809E52C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809E508
+
+ thumb_func_start sub_809E534
+sub_809E534: @ 809E534
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r3, 0
+ ldr r0, _0809E564 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E570
+ ldr r1, _0809E568 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ subs r1, 0x4
+ ldr r2, _0809E56C @ =0x0201807a
+ adds r0, r3, 0
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E564: .4byte gMain
+_0809E568: .4byte gTasks
+_0809E56C: .4byte 0x0201807a
+_0809E570:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E59C
+ ldr r1, _0809E594 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E598 @ =0x0201807a
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E594: .4byte gTasks
+_0809E598: .4byte 0x0201807a
+_0809E59C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5AE
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E83C
+ b _0809E5C0
+_0809E5AE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5C0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r2, 0
+ bl sub_809E83C
+_0809E5C0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E534
+
+ thumb_func_start sub_809E5C4
+sub_809E5C4: @ 809E5C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r1, _0809E6D0 @ =0x02018000
+ ldr r5, [r1]
+ ldrb r2, [r1, 0x9]
+ movs r0, 0x64
+ muls r0, r2
+ adds r5, r0
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r1, 0x7A
+ ldrb r6, [r1]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E6D4 @ =gUnknown_08208238
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E6D0: .4byte 0x02018000
+_0809E6D4: .4byte gUnknown_08208238
+ thumb_func_end sub_809E5C4
+
+ thumb_func_start sub_809E6D8
+sub_809E6D8: @ 809E6D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r2, _0809E7E8 @ =0x02018000
+ ldr r5, [r2]
+ ldrb r1, [r2, 0x9]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r5, r0
+ adds r0, r2, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r2, 0x7A
+ ldrb r6, [r2]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetBoxMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetBoxMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetBoxMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetBoxMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetBoxMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E7EC @ =gUnknown_08208238
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetBoxMonData
+ 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
+_0809E7E8: .4byte 0x02018000
+_0809E7EC: .4byte gUnknown_08208238
+ thumb_func_end sub_809E6D8
+
+ thumb_func_start sub_809E7F0
+sub_809E7F0: @ 809E7F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E828
+ ldr r1, _0809E830 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x74
+ movs r0, 0
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0x10
+ adds r1, 0x79
+ bl sub_80A0428
+ ldr r1, _0809E834 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E838 @ =sub_809E3FC
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_80A2078
+_0809E828:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E830: .4byte 0x02018000
+_0809E834: .4byte gTasks
+_0809E838: .4byte sub_809E3FC
+ thumb_func_end sub_809E7F0
+
+ thumb_func_start sub_809E83C
+sub_809E83C: @ 809E83C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ bl sub_80A1B1C
+ movs r0, 0
+ bl sub_80A1B40
+ cmp r4, 0x1
+ bne _0809E8C0
+ ldr r1, _0809E87C @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x79
+ adds r2, r1, 0
+ adds r2, 0x7A
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E8CA
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809E880
+ bl sub_809E5C4
+ b _0809E884
+ .align 2, 0
+_0809E87C: .4byte 0x02018000
+_0809E880:
+ bl sub_809E6D8
+_0809E884:
+ ldr r4, _0809E8B4 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x79
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809F678
+ adds r1, r4, 0
+ adds r1, 0x74
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0809E8B8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E8BC @ =sub_809E7F0
+ str r1, [r0]
+ b _0809E8DE
+ .align 2, 0
+_0809E8B4: .4byte 0x02018000
+_0809E8B8: .4byte gTasks
+_0809E8BC: .4byte sub_809E7F0
+_0809E8C0:
+ ldr r0, _0809E8E4 @ =0x02018010
+ adds r1, r0, 0
+ adds r1, 0x69
+ bl sub_80A0428
+_0809E8CA:
+ ldr r0, _0809E8E8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809E8EC @ =sub_809E3FC
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_80A2078
+_0809E8DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E8E4: .4byte 0x02018010
+_0809E8E8: .4byte gTasks
+_0809E8EC: .4byte sub_809E3FC
+ thumb_func_end sub_809E83C
+
+ thumb_func_start sub_809E8F0
+sub_809E8F0: @ 809E8F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r1, 0
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x5
+ bl PlaySE
+ mov r1, r9
+ ldrb r6, [r1]
+ ldr r1, _0809E944 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r2, 0
+ lsls r4, 24
+ asrs r4, 24
+ mov r10, r4
+ lsls r7, r0, 24
+_0809E930:
+ lsls r0, r6, 24
+ asrs r0, 24
+ add r0, r10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ asrs r1, r0, 24
+ cmp r0, r7
+ ble _0809E948
+ movs r6, 0
+ b _0809E94E
+ .align 2, 0
+_0809E944: .4byte gTasks
+_0809E948:
+ cmp r1, 0
+ bge _0809E94E
+ lsrs r6, r7, 24
+_0809E94E:
+ lsls r4, r6, 24
+ lsrs r1, r4, 24
+ ldr r0, _0809EA10 @ =0x02018010
+ str r2, [sp, 0x4]
+ bl sub_809F760
+ lsls r0, 16
+ adds r5, r4, 0
+ ldr r2, [sp, 0x4]
+ cmp r0, 0
+ bne _0809E97A
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E97A
+ lsls r0, r2, 24
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _0809E930
+_0809E97A:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bne _0809E996
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E996
+ ldr r0, _0809EA14 @ =0x02018000
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ mov r2, r8
+ lsls r7, r2, 2
+ cmp r0, 0
+ beq _0809E9AC
+_0809E996:
+ ldr r2, _0809EA18 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0x1
+ bne _0809E9D0
+_0809E9AC:
+ lsrs r4, r5, 24
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1654
+ ldr r1, _0809EA18 @ =gTasks
+ mov r3, r8
+ adds r0, r7, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x22]
+ movs r0, 0
+ str r0, [sp]
+_0809E9D0:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _0809E9FE
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ bne _0809E9FE
+ ldr r0, _0809EA14 @ =0x02018000
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809E9FE
+ movs r4, 0x2
+ negs r4, r4
+ lsrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1654
+_0809E9FE:
+ mov r2, r9
+ strb r6, [r2]
+ ldr r0, _0809EA1C @ =0x02018079
+ cmp r9, r0
+ bne _0809EA20
+ movs r0, 0
+ bl sub_80A1C30
+ b _0809EA26
+ .align 2, 0
+_0809EA10: .4byte 0x02018010
+_0809EA14: .4byte 0x02018000
+_0809EA18: .4byte gTasks
+_0809EA1C: .4byte 0x02018079
+_0809EA20:
+ movs r0, 0x1
+ bl sub_80A1C30
+_0809EA26:
+ ldr r3, [sp]
+ cmp r3, 0
+ beq _0809EA34
+ ldr r0, _0809EA4C @ =0x02018010
+ mov r1, r9
+ bl sub_80A0428
+_0809EA34:
+ mov r0, r8
+ bl sub_80A2078
+ 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
+_0809EA4C: .4byte 0x02018010
+ thumb_func_end sub_809E8F0
+
+ thumb_func_start SummaryScreenHandleAButton
+SummaryScreenHandleAButton: @ 809EA50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0809EABC @ =0x02018000
+ adds r1, r4, 0
+ adds r1, 0x79
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1654
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EA8C
+ adds r1, r4, 0
+ adds r1, 0x7F
+ movs r0, 0x5
+ strb r0, [r1]
+ bl sub_80A0DD0
+_0809EA8C:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+ movs r0, 0x9
+ bl sub_80A1A30
+ ldr r1, _0809EAC0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EAC4 @ =sub_809E3FC
+ str r1, [r0]
+ adds r0, r5, 0
+ bl sub_80A2078
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EABC: .4byte 0x02018000
+_0809EAC0: .4byte gTasks
+_0809EAC4: .4byte sub_809E3FC
+ thumb_func_end SummaryScreenHandleAButton
+
+ thumb_func_start sub_809EAC8
+sub_809EAC8: @ 809EAC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0809EB34 @ =0x02018000
+ adds r0, r6, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0809EAEE
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1654
+_0809EAEE:
+ movs r0, 0x9
+ bl sub_80A1B1C
+ movs r0, 0x1
+ bl sub_80A16CC
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r1, r6, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_80A0DD0
+ ldr r1, _0809EB38 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EB3C @ =SummaryScreenHandleKeyInput
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EB34: .4byte 0x02018000
+_0809EB38: .4byte gTasks
+_0809EB3C: .4byte SummaryScreenHandleKeyInput
+ thumb_func_end sub_809EAC8
+
+ thumb_func_start sub_809EB40
+sub_809EB40: @ 809EB40
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0809EB6C @ =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
+ beq _0809EB74
+ cmp r0, 0x5
+ bne _0809EBA4
+ movs r0, 0x9
+ bl sub_80A1A30
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _0809EB70 @ =sub_809E260
+ str r0, [r4]
+ b _0809EBB4
+ .align 2, 0
+_0809EB6C: .4byte gTasks
+_0809EB70: .4byte sub_809E260
+_0809EB74:
+ ldr r4, _0809EBBC @ =0x02018000
+ adds r6, r4, 0
+ adds r6, 0x79
+ strb r0, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809EB96
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ ldrb r1, [r6]
+ movs r0, 0xA
+ bl sub_80A1654
+_0809EB96:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+_0809EBA4:
+ ldr r0, _0809EBC0 @ =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]
+_0809EBB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EBBC: .4byte 0x02018000
+_0809EBC0: .4byte gTasks
+ thumb_func_end sub_809EB40
+
+ thumb_func_start sub_809EBC4
+sub_809EBC4: @ 809EBC4
+ push {r4,lr}
+ ldr r4, _0809EC28 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _0809EC22
+ bl sub_80A0EE8
+ ldr r0, _0809EC2C @ =gUnknown_030042C0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x1
+ bne _0809EBF4
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EBF4:
+ ldrb r3, [r4, 0xB]
+ cmp r3, 0x2
+ bne _0809EC0C
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0xA0
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC0C:
+ cmp r3, 0x3
+ bne _0809EC22
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EC28: .4byte 0x02018000
+_0809EC2C: .4byte gUnknown_030042C0
+_0809EC30: .4byte REG_BG1CNT
+_0809EC34: .4byte 0x0000e0ff
+ thumb_func_end sub_809EBC4
+
+ thumb_func_start sub_809EC38
+sub_809EC38: @ 809EC38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EC5C @ =gTasks + 0x8
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0809EC52
+ b _0809EE64
+_0809EC52:
+ lsls r0, 2
+ ldr r1, _0809EC60 @ =_0809EC64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EC5C: .4byte gTasks + 0x8
+_0809EC60: .4byte _0809EC64
+ .align 2, 0
+_0809EC64:
+ .4byte _0809EC7C
+ .4byte _0809ED14
+ .4byte _0809ED98
+ .4byte _0809EE12
+ .4byte _0809EE1C
+ .4byte _0809EE4C
+_0809EC7C:
+ ldr r1, _0809ECB8 @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ECC8
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809EC98
+ ldr r1, _0809ECBC @ =gUnknown_03004288
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_0809EC98:
+ cmp r3, 0x1
+ bne _0809ECAE
+ ldr r2, _0809ECC0 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809ECC4 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECAE:
+ cmp r3, 0x2
+ beq _0809ECB4
+ b _0809EE3A
+_0809ECB4:
+ ldr r2, _0809ECC0 @ =REG_BG2CNT
+ b _0809ECF6
+ .align 2, 0
+_0809ECB8: .4byte 0x02018000
+_0809ECBC: .4byte gUnknown_03004288
+_0809ECC0: .4byte REG_BG2CNT
+_0809ECC4: .4byte 0x0000e0ff
+_0809ECC8:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809ECD8
+ ldr r1, _0809ED08 @ =gUnknown_030042C0
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+_0809ECD8:
+ cmp r3, 0x1
+ bne _0809ECEE
+ ldr r2, _0809ED0C @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809ED10 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECEE:
+ cmp r3, 0x2
+ beq _0809ECF4
+ b _0809EE3A
+_0809ECF4:
+ ldr r2, _0809ED0C @ =REG_BG1CNT
+_0809ECF6:
+ ldrh r1, [r2]
+ ldr r0, _0809ED10 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0xA0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED08: .4byte gUnknown_030042C0
+_0809ED0C: .4byte REG_BG1CNT
+_0809ED10: .4byte 0x0000e0ff
+_0809ED14:
+ ldr r0, _0809ED48 @ =0x02018000
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ED5C
+ ldr r1, _0809ED4C @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED2E
+ b _0809EE64
+_0809ED2E:
+ ldr r3, _0809ED50 @ =REG_BG1CNT
+ ldrh r2, [r3]
+ ldr r1, _0809ED54 @ =0x0000fffc
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x2
+ strh r0, [r3]
+ ldr r2, _0809ED58 @ =REG_BG2CNT
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x1
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED48: .4byte 0x02018000
+_0809ED4C: .4byte gUnknown_030042C0
+_0809ED50: .4byte REG_BG1CNT
+_0809ED54: .4byte 0x0000fffc
+_0809ED58: .4byte REG_BG2CNT
+_0809ED5C:
+ ldr r1, _0809ED88 @ =gUnknown_03004288
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED6C
+ b _0809EE64
+_0809ED6C:
+ ldr r3, _0809ED8C @ =REG_BG1CNT
+ ldrh r2, [r3]
+ ldr r1, _0809ED90 @ =0x0000fffc
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x1
+ strh r0, [r3]
+ ldr r2, _0809ED94 @ =REG_BG2CNT
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x2
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED88: .4byte gUnknown_03004288
+_0809ED8C: .4byte REG_BG1CNT
+_0809ED90: .4byte 0x0000fffc
+_0809ED94: .4byte REG_BG2CNT
+_0809ED98:
+ ldr r1, _0809EDD4 @ =0x02018000
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809EDD8
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809EE3A
+ .align 2, 0
+_0809EDD4: .4byte 0x02018000
+_0809EDD8:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809EDFA
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809EDF2
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809EDFA
+_0809EDF2:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809EE0E
+_0809EDFA:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809EE08
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809EE0E
+_0809EE08:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809EE0E:
+ strb r0, [r1]
+ b _0809EE3A
+_0809EE12:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809EE3A
+_0809EE1C:
+ ldr r0, _0809EE44 @ =gUnknown_083C1598
+ ldr r4, _0809EE48 @ =0x02018000
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809EE3A:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809EE64
+ .align 2, 0
+_0809EE44: .4byte gUnknown_083C1598
+_0809EE48: .4byte 0x02018000
+_0809EE4C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809EE64
+ ldr r1, _0809EE6C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EE70 @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0809EE64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EE6C: .4byte gTasks
+_0809EE70: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EC38
+
+ thumb_func_start sub_809EE74
+sub_809EE74: @ 809EE74
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EE98 @ =gTasks + 0x8
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x6
+ bls _0809EE8E
+ b _0809F0C0
+_0809EE8E:
+ lsls r0, 2
+ ldr r1, _0809EE9C @ =_0809EEA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EE98: .4byte gTasks + 0x8
+_0809EE9C: .4byte _0809EEA0
+ .align 2, 0
+_0809EEA0:
+ .4byte _0809EEBC
+ .4byte _0809EEE0
+ .4byte _0809EFB4
+ .4byte _0809EFF4
+ .4byte _0809F06E
+ .4byte _0809F078
+ .4byte _0809F0A8
+_0809EEBC:
+ ldr r0, _0809EECC @ =0x02018000
+ adds r0, 0x80
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0809EED4
+ ldr r0, _0809EED0 @ =gUnknown_03004288
+ strh r1, [r0]
+ b _0809F096
+ .align 2, 0
+_0809EECC: .4byte 0x02018000
+_0809EED0: .4byte gUnknown_03004288
+_0809EED4:
+ ldr r1, _0809EEDC @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ b _0809F096
+ .align 2, 0
+_0809EEDC: .4byte gUnknown_030042C0
+_0809EEE0:
+ ldr r1, _0809EF30 @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EF4C
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF02
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EF3C @ =0x00000801
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF02:
+ cmp r3, 0x2
+ bne _0809EF16
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EF40 @ =0x00000a01
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF16:
+ cmp r3, 0x3
+ bne _0809EF2A
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r3, _0809EF44 @ =0x00000c01
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF2A:
+ ldr r2, _0809EF48 @ =REG_BG1CNT
+ b _0809EF8C
+ .align 2, 0
+_0809EF30: .4byte 0x02018000
+_0809EF34: .4byte REG_BG2CNT
+_0809EF38: .4byte 0x0000e0fc
+_0809EF3C: .4byte 0x00000801
+_0809EF40: .4byte 0x00000a01
+_0809EF44: .4byte 0x00000c01
+_0809EF48: .4byte REG_BG1CNT
+_0809EF4C:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF62
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EFA0 @ =0x00000801
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF62:
+ cmp r3, 0x2
+ bne _0809EF76
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EFA4 @ =0x00000a01
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF76:
+ cmp r3, 0x3
+ bne _0809EF8A
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r3, _0809EFA8 @ =0x00000c01
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF8A:
+ ldr r2, _0809EFAC @ =REG_BG2CNT
+_0809EF8C:
+ ldrh r1, [r2]
+ ldr r0, _0809EFB0 @ =0x0000fffc
+ ands r0, r1
+ adds r0, 0x2
+ strh r0, [r2]
+ b _0809F096
+ .align 2, 0
+_0809EF98: .4byte REG_BG1CNT
+_0809EF9C: .4byte 0x0000e0fc
+_0809EFA0: .4byte 0x00000801
+_0809EFA4: .4byte 0x00000a01
+_0809EFA8: .4byte 0x00000c01
+_0809EFAC: .4byte REG_BG2CNT
+_0809EFB0: .4byte 0x0000fffc
+_0809EFB4:
+ ldr r0, _0809EFD4 @ =0x02018000
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EFDC
+ ldr r0, _0809EFD8 @ =gUnknown_03004288
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFD4: .4byte 0x02018000
+_0809EFD8: .4byte gUnknown_03004288
+_0809EFDC:
+ ldr r0, _0809EFF0 @ =gUnknown_030042C0
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFF0: .4byte gUnknown_030042C0
+_0809EFF4:
+ ldr r1, _0809F030 @ =0x02018000
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809F034
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809F096
+ .align 2, 0
+_0809F030: .4byte 0x02018000
+_0809F034:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809F056
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809F04E
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809F056
+_0809F04E:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809F06A
+_0809F056:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809F064
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809F06A
+_0809F064:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809F06A:
+ strb r0, [r1]
+ b _0809F096
+_0809F06E:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809F096
+_0809F078:
+ ldr r0, _0809F0A0 @ =gUnknown_083C1598
+ ldr r4, _0809F0A4 @ =0x02018000
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809F096:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809F0C0
+ .align 2, 0
+_0809F0A0: .4byte gUnknown_083C1598
+_0809F0A4: .4byte 0x02018000
+_0809F0A8:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F0C0
+ ldr r1, _0809F0C8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F0CC @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0809F0C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F0C8: .4byte gTasks
+_0809F0CC: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EE74
+
+ thumb_func_start sub_809F0D0
+sub_809F0D0: @ 809F0D0
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0809F110 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ movs r5, 0
+ strb r0, [r1, 0xB]
+ ldr r2, _0809F114 @ =gUnknown_03005CF0
+ ldr r1, _0809F118 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldr r0, [r6]
+ str r0, [r2]
+ bl sub_809FBE4
+ strh r5, [r6, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0809F120
+ ldr r0, _0809F11C @ =sub_809EC38
+ str r0, [r6]
+ b _0809F12A
+ .align 2, 0
+_0809F110: .4byte 0x02018000
+_0809F114: .4byte gUnknown_03005CF0
+_0809F118: .4byte gTasks
+_0809F11C: .4byte sub_809EC38
+_0809F120:
+ ldr r1, _0809F130 @ =sub_809EE74
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+_0809F12A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F130: .4byte sub_809EE74
+ thumb_func_end sub_809F0D0
+
+ thumb_func_start SummaryScreenHandleLeftRightInput
+SummaryScreenHandleLeftRightInput: @ 809F134
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, _0809F1AC @ =0x02018010
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F1A6
+ lsls r0, r5, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0809F168
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x65
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F168:
+ cmp r5, 0x1
+ bne _0809F17C
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x66
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F17C:
+ ldr r0, _0809F1B0 @ =sub_80A1334
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ ldr r0, _0809F1B4 @ =sub_80A1500
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_809F0D0
+_0809F1A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F1AC: .4byte 0x02018010
+_0809F1B0: .4byte sub_80A1334
+_0809F1B4: .4byte sub_80A1500
+ thumb_func_end SummaryScreenHandleLeftRightInput
+
+ thumb_func_start SummaryScreenHandleUpDownInput
+SummaryScreenHandleUpDownInput: @ 809F1B8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _0809F1E4 @ =0x02018000
+ ldrb r1, [r0, 0xE]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _0809F202
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0809F1E8
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r4, 0x1
+ eors r1, r4
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ b _0809F1F4
+ .align 2, 0
+_0809F1E4: .4byte 0x02018000
+_0809F1E8:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r4, 0x3
+ cmp r0, 0x1
+ bne _0809F1F4
+ movs r4, 0x2
+_0809F1F4:
+ ldr r0, [r2]
+ ldrb r1, [r2, 0x9]
+ ldrb r2, [r2, 0xA]
+ adds r3, r4, 0
+ bl StorageSystemGetNextMonIndex
+ b _0809F22C
+_0809F202:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F3CC
+ b _0809F22C
+_0809F224:
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F284
+_0809F22C:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _0809F270
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _0809F278 @ =0x02018010
+ adds r0, r5, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F258
+ movs r0, 0x2
+ negs r0, r0
+ bl sub_80A12D0
+_0809F258:
+ adds r0, r5, 0
+ subs r0, 0x10
+ strb r4, [r0, 0x9]
+ ldr r1, _0809F27C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r5, 0x74]
+ ldr r1, _0809F280 @ =sub_809F43C
+ str r1, [r0]
+_0809F270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F278: .4byte 0x02018010
+_0809F27C: .4byte gTasks
+_0809F280: .4byte sub_809F43C
+ thumb_func_end SummaryScreenHandleUpDownInput
+
+ thumb_func_start sub_809F284
+sub_809F284: @ 809F284
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0809F2C0 @ =0x02018000
+ ldr r7, [r0]
+ movs r6, 0
+ ldrb r1, [r0, 0xB]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _0809F2C4
+ lsls r0, r3, 24
+ asrs r2, r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r5, r0, 0
+ cmp r2, r1
+ bne _0809F2AC
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0809F2E4
+_0809F2AC:
+ asrs r0, r5, 24
+ cmp r0, 0x1
+ bne _0809F2BA
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ cmp r0, r1
+ bcs _0809F2E4
+_0809F2BA:
+ ldrb r0, [r4, 0x9]
+ adds r0, r3
+ b _0809F304
+ .align 2, 0
+_0809F2C0: .4byte 0x02018000
+_0809F2C4:
+ lsls r5, r3, 24
+_0809F2C6:
+ lsls r0, r6, 24
+ asrs r0, 24
+ asrs r1, r5, 24
+ adds r0, r1
+ lsls r0, 24
+ ldr r4, _0809F2EC @ =0x02018000
+ lsrs r6, r0, 24
+ asrs r0, 24
+ ldrb r2, [r4, 0x9]
+ adds r1, r0, r2
+ cmp r1, 0
+ blt _0809F2E4
+ ldrb r0, [r4, 0xA]
+ cmp r1, r0
+ ble _0809F2F0
+_0809F2E4:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F308
+ .align 2, 0
+_0809F2EC: .4byte 0x02018000
+_0809F2F0:
+ movs r0, 0x64
+ muls r0, r1
+ adds r0, r7, r0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F2C6
+ ldrb r0, [r4, 0x9]
+ adds r0, r6
+_0809F304:
+ lsls r0, 24
+ asrs r0, 24
+_0809F308:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F284
+
+ thumb_func_start sub_809F310
+sub_809F310: @ 809F310
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0809F33C
+ ldr r0, _0809F338 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ bne _0809F332
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F33C
+_0809F332:
+ movs r0, 0x1
+ b _0809F33E
+ .align 2, 0
+_0809F338: .4byte 0x02018000
+_0809F33C:
+ movs r0, 0
+_0809F33E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F310
+
+ thumb_func_start sub_809F344
+sub_809F344: @ 809F344
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F34A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0809F37C
+ ldr r0, _0809F374 @ =gUnknown_083C15A8
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F378 @ =gPlayerParty
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F34A
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F380
+ .align 2, 0
+_0809F374: .4byte gUnknown_083C15A8
+_0809F378: .4byte gPlayerParty
+_0809F37C:
+ movs r0, 0x1
+ negs r0, r0
+_0809F380:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F344
+
+ thumb_func_start sub_809F388
+sub_809F388: @ 809F388
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F38E:
+ cmp r4, 0
+ beq _0809F3C0
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F3B8 @ =gUnknown_083C15A8
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F3BC @ =gPlayerParty
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F38E
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F3C4
+ .align 2, 0
+_0809F3B8: .4byte gUnknown_083C15A8
+_0809F3BC: .4byte gPlayerParty
+_0809F3C0:
+ movs r0, 0x1
+ negs r0, r0
+_0809F3C4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F388
+
+ thumb_func_start sub_809F3CC
+sub_809F3CC: @ 809F3CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0
+ movs r1, 0
+ ldr r3, _0809F41C @ =gUnknown_083C15A8
+ ldr r4, _0809F420 @ =0x02018000
+ ldrb r0, [r3]
+ ldrb r5, [r4, 0x9]
+ cmp r0, r5
+ beq _0809F3FC
+ adds r5, r3, 0
+ adds r3, r4, 0
+_0809F3E6:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bhi _0809F3FC
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldrb r4, [r3, 0x9]
+ cmp r0, r4
+ bne _0809F3E6
+ adds r2, r1, 0
+_0809F3FC:
+ lsls r0, r6, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809F40C
+ cmp r2, 0
+ beq _0809F414
+_0809F40C:
+ cmp r1, 0x1
+ bne _0809F424
+ cmp r2, 0x5
+ bne _0809F42C
+_0809F414:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F436
+ .align 2, 0
+_0809F41C: .4byte gUnknown_083C15A8
+_0809F420: .4byte 0x02018000
+_0809F424:
+ adds r0, r2, 0
+ bl sub_809F388
+ b _0809F432
+_0809F42C:
+ adds r0, r2, 0
+ bl sub_809F344
+_0809F432:
+ lsls r0, 24
+ asrs r0, 24
+_0809F436:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F3CC
+
+ thumb_func_start sub_809F43C
+sub_809F43C: @ 809F43C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F45C @ =gMain
+ ldr r1, _0809F460 @ =0x0000043c
+ adds r5, r0, r1
+ ldrb r2, [r5]
+ adds r3, r0, 0
+ cmp r2, 0x8
+ bls _0809F452
+ b _0809F5CC
+_0809F452:
+ lsls r0, r2, 2
+ ldr r1, _0809F464 @ =_0809F468
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809F45C: .4byte gMain
+_0809F460: .4byte 0x0000043c
+_0809F464: .4byte _0809F468
+ .align 2, 0
+_0809F468:
+ .4byte _0809F48C
+ .4byte _0809F492
+ .4byte _0809F4BC
+ .4byte _0809F4D8
+ .4byte _0809F4F4
+ .4byte _0809F51C
+ .4byte _0809F578
+ .4byte _0809F584
+ .4byte _0809F5A0
+_0809F48C:
+ bl StopCryAndClearCrySongs
+ b _0809F5B2
+_0809F492:
+ ldr r0, _0809F4AC @ =0x02018000
+ ldrb r1, [r0, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4B0 @ =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ ldr r1, _0809F4B4 @ =gMain
+ ldr r0, _0809F4B8 @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4AC: .4byte 0x02018000
+_0809F4B0: .4byte gSprites
+_0809F4B4: .4byte gMain
+_0809F4B8: .4byte 0x0000043c
+_0809F4BC:
+ ldr r0, _0809F4D0 @ =0x02018000
+ ldrb r1, [r0, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4D4 @ =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ b _0809F5B2
+ .align 2, 0
+_0809F4D0: .4byte 0x02018000
+_0809F4D4: .4byte gSprites
+_0809F4D8:
+ ldr r0, _0809F4EC @ =0x02018000
+ adds r1, r0, 0
+ adds r1, 0x74
+ movs r2, 0
+ strb r2, [r1]
+ adds r0, 0x79
+ strb r2, [r0]
+ ldr r0, _0809F4F0 @ =0x0000043c
+ adds r1, r3, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4EC: .4byte 0x02018000
+_0809F4F0: .4byte 0x0000043c
+_0809F4F4:
+ ldr r4, _0809F518 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F50E
+ movs r0, 0x2
+ bl sub_80A12D0
+_0809F50E:
+ adds r0, r4, 0
+ bl sub_80A0EA4
+ b _0809F5B2
+ .align 2, 0
+_0809F518: .4byte 0x02018010
+_0809F51C:
+ ldr r4, _0809F558 @ =0x02018010
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ adds r1, r4, 0
+ subs r1, 0x10
+ strb r0, [r1, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809F560
+ ldr r1, _0809F55C @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809F564
+ .align 2, 0
+_0809F558: .4byte 0x02018010
+_0809F55C: .4byte gUnknown_030041B0
+_0809F560:
+ ldr r0, _0809F56C @ =gUnknown_030041B0
+ strh r1, [r0]
+_0809F564:
+ ldr r1, _0809F570 @ =gMain
+ ldr r0, _0809F574 @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F56C: .4byte gUnknown_030041B0
+_0809F570: .4byte gMain
+_0809F574: .4byte 0x0000043c
+_0809F578:
+ ldr r0, _0809F580 @ =0x02018010
+ bl sub_80A1DCC
+ b _0809F5B2
+ .align 2, 0
+_0809F580: .4byte 0x02018010
+_0809F584:
+ ldr r0, _0809F594 @ =0x02018010
+ bl sub_80A1DE8
+ ldr r1, _0809F598 @ =gMain
+ ldr r0, _0809F59C @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F594: .4byte 0x02018010
+_0809F598: .4byte gMain
+_0809F59C: .4byte 0x0000043c
+_0809F5A0:
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F5EA
+ ldr r0, _0809F5C0 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+_0809F5B2:
+ ldr r1, _0809F5C4 @ =gMain
+ ldr r2, _0809F5C8 @ =0x0000043c
+ adds r1, r2
+_0809F5B8:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809F5EA
+ .align 2, 0
+_0809F5C0: .4byte 0x02018000
+_0809F5C4: .4byte gMain
+_0809F5C8: .4byte 0x0000043c
+_0809F5CC:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _0809F5F0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809F5F4 @ =0x02018000
+ adds r0, 0x84
+ ldr r0, [r0]
+ str r0, [r1]
+_0809F5EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F5F0: .4byte gTasks
+_0809F5F4: .4byte 0x02018000
+ thumb_func_end sub_809F43C
+
+ thumb_func_start sub_809F5F8
+sub_809F5F8: @ 809F5F8
+ push {r4,lr}
+ ldr r2, _0809F61C @ =0x02018000
+ adds r4, r2, 0
+ adds r4, 0x74
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809F624
+ ldr r0, _0809F620 @ =gUnknown_083C1588
+ ldrb r1, [r2, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ movs r0, 0x1
+ b _0809F634
+ .align 2, 0
+_0809F61C: .4byte 0x02018000
+_0809F620: .4byte gUnknown_083C1588
+_0809F624:
+ adds r0, r2, 0
+ adds r0, 0x10
+ bl sub_809FAC8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+_0809F634:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F5F8
+
+ thumb_func_start sub_809F63C
+sub_809F63C: @ 809F63C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FE80
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F63C
+
+ thumb_func_start sub_809F650
+sub_809F650: @ 809F650
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A00A4
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F650
+
+ thumb_func_start sub_809F664
+sub_809F664: @ 809F664
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A0390
+ adds r0, r4, 0
+ bl sub_80A015C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F664
+
+ thumb_func_start sub_809F678
+sub_809F678: @ 809F678
+ push {lr}
+ adds r3, r0, 0
+ ldr r1, _0809F698 @ =0x02018000
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809F69C
+ ldr r2, [r1]
+ ldrb r1, [r1, 0x9]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r3, 0
+ movs r2, 0x64
+ bl memcpy
+ b _0809F6AE
+ .align 2, 0
+_0809F698: .4byte 0x02018000
+_0809F69C:
+ ldr r0, [r1]
+ ldrb r2, [r1, 0x9]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_803B4B4
+_0809F6AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F678
+
+ thumb_func_start sub_809F6B4
+sub_809F6B4: @ 809F6B4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _0809F6D2
+ cmp r0, 0x1
+ beq _0809F718
+ adds r0, r4, 0
+ bl sub_80A1808
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809F756
+_0809F6D2:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _0809F70C @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _0809F710 @ =gMonFrontPicCoords
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0809F714 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl HandleLoadSpecialPokePic
+ b _0809F74E
+ .align 2, 0
+_0809F70C: .4byte gMonFrontPicTable
+_0809F710: .4byte gMonFrontPicCoords
+_0809F714: .4byte gUnknown_081FAF4C
+_0809F718:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ ldrh r0, [r4, 0x4]
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+_0809F74E:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ movs r0, 0xFF
+_0809F756:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F6B4
+
+ thumb_func_start sub_809F760
+sub_809F760: @ 809F760
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F780
+ cmp r1, 0x1
+ bgt _0809F776
+ cmp r1, 0
+ beq _0809F77C
+ b _0809F788
+_0809F776:
+ cmp r2, 0x2
+ beq _0809F784
+ b _0809F788
+_0809F77C:
+ movs r1, 0xD
+ b _0809F78A
+_0809F780:
+ movs r1, 0xE
+ b _0809F78A
+_0809F784:
+ movs r1, 0xF
+ b _0809F78A
+_0809F788:
+ movs r1, 0x10
+_0809F78A:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F760
+
+ thumb_func_start sub_809F798
+sub_809F798: @ 809F798
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F7B8
+ cmp r1, 0x1
+ bgt _0809F7AE
+ cmp r1, 0
+ beq _0809F7B4
+ b _0809F7C0
+_0809F7AE:
+ cmp r2, 0x2
+ beq _0809F7BC
+ b _0809F7C0
+_0809F7B4:
+ movs r1, 0x11
+ b _0809F7C2
+_0809F7B8:
+ movs r1, 0x12
+ b _0809F7C2
+_0809F7BC:
+ movs r1, 0x13
+ b _0809F7C2
+_0809F7C0:
+ movs r1, 0x14
+_0809F7C2:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F798
+
+ thumb_func_start sub_809F7D0
+sub_809F7D0: @ 809F7D0
+ push {r4,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ ldr r4, _0809F804 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x79
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r0, 16
+ bl IsHMMove
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F808
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x3
+ beq _0809F808
+ movs r0, 0
+ b _0809F80A
+ .align 2, 0
+_0809F804: .4byte 0x02018000
+_0809F808:
+ movs r0, 0x1
+_0809F80A:
+ add sp, 0x64
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F7D0
+
+ thumb_func_start sub_809F814
+sub_809F814: @ 809F814
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _0809F83C @ =gTasks + 0x8
+ mov r8, r0
+ adds r4, r6, r0
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _0809F840
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _0809F9C0
+ .align 2, 0
+_0809F83C: .4byte gTasks + 0x8
+_0809F840:
+ ldr r7, _0809F874 @ =gMain
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F880
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F878 @ =sub_809E260
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F87C @ =0x02018000
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F874: .4byte gMain
+_0809F878: .4byte sub_809E260
+_0809F87C: .4byte 0x02018000
+_0809F880:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F8B4
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F8AC @ =sub_809E260
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F8B0 @ =0x02018000
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F8AC: .4byte sub_809E260
+_0809F8B0: .4byte 0x02018000
+_0809F8B4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F8C8
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F918
+_0809F8C8:
+ ldr r1, _0809F90C @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ beq _0809F9C0
+ cmp r0, 0x3
+ bne _0809F8F4
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F8E8
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F8F4
+_0809F8E8:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F8F4:
+ ldr r1, _0809F910 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F914 @ =sub_809E260
+ str r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ b _0809F972
+ .align 2, 0
+_0809F90C: .4byte 0x02018000
+_0809F910: .4byte gTasks
+_0809F914: .4byte sub_809E260
+_0809F918:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F92E
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809F994
+_0809F92E:
+ ldr r1, _0809F988 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809F9C0
+ cmp r0, 0x2
+ bne _0809F960
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F954
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F960
+_0809F954:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F960:
+ ldr r1, _0809F98C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F990 @ =sub_809E260
+ str r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x1
+_0809F972:
+ bl SummaryScreenHandleLeftRightInput
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1654
+ b _0809F9C0
+ .align 2, 0
+_0809F988: .4byte 0x02018000
+_0809F98C: .4byte gTasks
+_0809F990: .4byte sub_809E260
+_0809F994:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F9A6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F9C0
+_0809F9A6:
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1654
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F9CC @ =sub_809E260
+ str r1, [r0]
+_0809F9C0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F9CC: .4byte sub_809E260
+ thumb_func_end sub_809F814
+
+ thumb_func_start sub_809F9D0
+sub_809F9D0: @ 809F9D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r6, _0809FA24 @ =gTasks + 0x8
+ adds r2, r4, r6
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ strh r1, [r2, 0x1E]
+ movs r5, 0x2
+ negs r5, r5
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1488
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1654
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _0809FA2C @ =sub_809F814
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA24: .4byte gTasks + 0x8
+_0809FA28: .4byte gOtherText_CantForgetHMs
+_0809FA2C: .4byte sub_809F814
+ thumb_func_end sub_809F9D0
+
+ thumb_func_start sub_809FA30
+sub_809FA30: @ 809FA30
+ ldr r0, _0809FA38 @ =0x02018000
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809FA38: .4byte 0x02018000
+ thumb_func_end sub_809FA30
+
+ thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
+GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
+ push {r4,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r2, 23
+ lsrs r3, 18
+ ldr r4, _0809FA70 @ =0x0600f000
+ adds r3, r4
+ adds r2, r3
+ lsrs r1, 12
+ lsrs r0, 23
+ movs r4, 0x80
+ lsls r4, 2
+ adds r3, r4, 0
+ adds r0, r3
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0x80
+ strh r0, [r2]
+ adds r2, 0x40
+ adds r1, 0x81
+ strh r1, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA70: .4byte 0x0600f000
+ thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
+
+ thumb_func_start GetStringCenterAlignXOffset
+GetStringCenterAlignXOffset: @ 809FA74
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xF
+ adds r2, r4, 0
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end GetStringCenterAlignXOffset
+
+ thumb_func_start sub_809FA94
+sub_809FA94: @ 809FA94
+ push {lr}
+ bl sub_8040CB4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809FAB4
+ ldr r0, _0809FAB0 @ =gUnknown_083C157E
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0x1
+ b _0809FAC0
+ .align 2, 0
+_0809FAB0: .4byte gUnknown_083C157E
+_0809FAB4:
+ ldr r0, _0809FAC4 @ =gUnknown_083C157C
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0
+_0809FAC0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809FAC4: .4byte gUnknown_083C157C
+ thumb_func_end sub_809FA94
+
+ thumb_func_start sub_809FAC8
+sub_809FAC8: @ 809FAC8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FB28
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0xB
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ ldr r4, _0809FB20 @ =gStringVar1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMonNickname
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x3
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FB24 @ =gUnknown_083C157C
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ b _0809FBD6
+ .align 2, 0
+_0809FB20: .4byte gStringVar1
+_0809FB24: .4byte gUnknown_083C157C
+_0809FB28:
+ adds r0, r5, 0
+ bl sub_809FA94
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToPokedexNum
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0809FB6C @ =0x0000ffff
+ cmp r4, r0
+ beq _0809FB96
+ cmp r6, 0
+ bne _0809FB70
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x2
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0xD
+ b _0809FB8C
+ .align 2, 0
+_0809FB6C: .4byte 0x0000ffff
+_0809FB70:
+ movs r0, 0x2
+ movs r1, 0x8
+ movs r2, 0x1
+ movs r3, 0x2
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x8
+_0809FB8C:
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80A1F98
+ b _0809FBA2
+_0809FB96:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+_0809FBA2:
+ ldr r1, _0809FBE0 @ =gStringVar1
+ adds r0, r1, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl GetMonNickname
+ adds r1, r0, 0
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ movs r0, 0x3C
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0809FBE0 @ =gStringVar1
+ movs r1, 0x1
+ movs r2, 0xC
+ bl MenuPrint
+ adds r0, r5, 0
+ bl sub_80A0958
+_0809FBD6:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FBE0: .4byte gStringVar1
+ thumb_func_end sub_809FAC8
+
+ thumb_func_start sub_809FBE4
+sub_809FBE4: @ 809FBE4
+ push {r4,lr}
+ movs r4, 0
+_0809FBE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1B
+ bls _0809FBE8
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FBE4
+
+ thumb_func_start sub_809FC0C
+sub_809FC0C: @ 809FC0C
+ push {lr}
+ ldr r0, _0809FC30 @ =gOtherText_Type2
+ movs r1, 0xB
+ movs r2, 0x6
+ bl MenuPrint
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x2
+ movs r1, 0x17
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FC30: .4byte gOtherText_Type2
+ thumb_func_end sub_809FC0C
+
+ thumb_func_start sub_809FC34
+sub_809FC34: @ 809FC34
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r4, 0
+_0809FC3C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FC3C
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FD1C
+ ldr r5, _0809FCD0 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash
+ adds r1, r4, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FCD0 @ =gStringVar1
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0xC1
+ movs r3, 0x20
+ bl sub_80A1EF8
+ movs r0, 0x9
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ adds r0, r6, 0
+ movs r1, 0x20
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0x5
+ bhi _0809FCE0
+ ldr r0, _0809FCDC @ =gOtherText_EggAbout
+ b _0809FCF2
+ .align 2, 0
+_0809FCD0: .4byte gStringVar1
+_0809FCD4: .4byte gOtherText_OriginalTrainer
+_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
+_0809FCDC: .4byte gOtherText_EggAbout
+_0809FCE0:
+ cmp r0, 0xA
+ bhi _0809FCEC
+ ldr r0, _0809FCE8 @ =gOtherText_EggSoon
+ b _0809FCF2
+ .align 2, 0
+_0809FCE8: .4byte gOtherText_EggSoon
+_0809FCEC:
+ cmp r1, 0x28
+ bhi _0809FD00
+ ldr r0, _0809FCFC @ =gOtherText_EggSomeTime
+_0809FCF2:
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+ b _0809FD0A
+ .align 2, 0
+_0809FCFC: .4byte gOtherText_EggSomeTime
+_0809FD00:
+ ldr r0, _0809FD18 @ =gOtherText_EggLongTime
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+_0809FD0A:
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl PokemonSummaryScreen_PrintEggTrainerMemo
+ b _0809FE4C
+ .align 2, 0
+_0809FD18: .4byte gOtherText_EggLongTime
+_0809FD1C:
+ ldr r4, _0809FD64 @ =gStringVar2
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ ldr r5, _0809FD68 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer
+ bl StringCopy
+ adds r5, r0, 0
+ adds r0, r6, 0
+ movs r1, 0x31
+ bl GetMonData
+ cmp r0, 0
+ bne _0809FD70
+ adds r0, r5, 0
+ movs r1, 0x9
+ b _0809FD74
+ .align 2, 0
+_0809FD64: .4byte gStringVar2
+_0809FD68: .4byte gStringVar1
+_0809FD6C: .4byte gOtherText_OriginalTrainer
+_0809FD70:
+ adds r0, r5, 0
+ movs r1, 0xA
+_0809FD74:
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FE54 @ =gStringVar2
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FE58 @ =gStringVar1
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ ldr r1, _0809FE5C @ =0x0000ffff
+ ands r1, r0
+ movs r0, 0xC1
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ movs r1, 0xD
+ movs r2, 0x5
+ movs r3, 0x2
+ bl sub_80A1F98
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0809FE60 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r5, r1, r2
+ ldrb r4, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ ldrb r0, [r5, 0x7]
+ cmp r4, r0
+ beq _0809FDF8
+ ldrb r0, [r5, 0x7]
+ movs r1, 0xA0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_80A198C
+_0809FDF8:
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x2E
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetAbilityBySpecies
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _0809FE64 @ =gAbilityNames
+ adds r0, r1
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1FF8
+ ldr r0, _0809FE68 @ =gAbilityDescriptions
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0xB
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl PokemonSummaryScreen_PrintTrainerMemo
+_0809FE4C:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FE54: .4byte gStringVar2
+_0809FE58: .4byte gStringVar1
+_0809FE5C: .4byte 0x0000ffff
+_0809FE60: .4byte gBaseStats
+_0809FE64: .4byte gAbilityNames
+_0809FE68: .4byte gAbilityDescriptions
+ thumb_func_end sub_809FC34
+
+ thumb_func_start sub_809FE6C
+sub_809FE6C: @ 809FE6C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FC0C
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE6C
+
+ thumb_func_start sub_809FE80
+sub_809FE80: @ 809FE80
+ push {lr}
+ movs r0, 0xE
+ movs r1, 0x4
+ movs r2, 0x12
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x19
+ movs r1, 0x4
+ movs r2, 0x1E
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE80
+
+ thumb_func_start sub_809FEB8
+sub_809FEB8: @ 809FEB8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0809FF40 @ =gOtherText_ExpPoints
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xE
+ bl sub_80A1FF8
+ ldr r0, _0809FF44 @ =gOtherText_NextLv
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FF48 @ =gOtherText_Terminator18
+ movs r1, 0x15
+ movs r2, 0x10
+ bl MenuPrint
+ ldr r0, _0809FF4C @ =gOtherText_HP
+ movs r4, 0x2A
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF50 @ =gOtherText_Attack
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF54 @ =gOtherText_Defense
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xB
+ bl sub_80A1F48
+ ldr r0, _0809FF58 @ =gOtherText_SpAtk
+ movs r4, 0x24
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF5C @ =gOtherText_SpDef
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF60 @ =gOtherText_Speed
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0xB
+ bl sub_80A1F48
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FF40: .4byte gOtherText_ExpPoints
+_0809FF44: .4byte gOtherText_NextLv
+_0809FF48: .4byte gOtherText_Terminator18
+_0809FF4C: .4byte gOtherText_HP
+_0809FF50: .4byte gOtherText_Attack
+_0809FF54: .4byte gOtherText_Defense
+_0809FF58: .4byte gOtherText_SpAtk
+_0809FF5C: .4byte gOtherText_SpDef
+_0809FF60: .4byte gOtherText_Speed
+ thumb_func_end sub_809FEB8
+
+ thumb_func_start sub_809FF64
+sub_809FF64: @ 809FF64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0809FF6A:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FF6A
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB
+ movs r2, 0x4
+ bl sub_80A0BF4
+ adds r0, r5, 0
+ bl sub_80A0B88
+ ldr r4, _080A008C @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1D
+ movs r2, 0xE
+ bl MenuPrint_RightAligned
+ adds r0, r5, 0
+ movs r1, 0x17
+ movs r2, 0x10
+ bl sub_80A0C80
+ adds r0, r5, 0
+ movs r1, 0x3B
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3E
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x7
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x9
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3D
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0xB
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ movs r0, 0xBA
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A008C @ =gStringVar1
+ movs r1, 0x7E
+ movs r2, 0x38
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A008C: .4byte gStringVar1
+ thumb_func_end sub_809FF64
+
+ thumb_func_start sub_80A0090
+sub_80A0090: @ 80A0090
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FEB8
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0090
+
+ thumb_func_start sub_80A00A4
+sub_80A00A4: @ 80A00A4
+ push {lr}
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x13
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x10
+ movs r1, 0x7
+ movs r2, 0x15
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ movs r0, 0x11
+ movs r1, 0x9
+ movs r2, 0x15
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1B
+ movs r1, 0x7
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x16
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ movs r0, 0x17
+ movs r1, 0x10
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A00A4
+
+ thumb_func_start sub_80A00F4
+sub_80A00F4: @ 80A00F4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, _080A012C @ =0x02018000
+ adds r0, r2, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080A010A
+ cmp r1, 0x4
+ beq _080A0150
+_080A010A:
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0x2
+ bne _080A0138
+ ldr r0, _080A0130 @ =gOtherText_Power2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0134 @ =gOtherText_Accuracy2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+ b _080A0150
+ .align 2, 0
+_080A012C: .4byte 0x02018000
+_080A0130: .4byte gOtherText_Power2
+_080A0134: .4byte gOtherText_Accuracy2
+_080A0138:
+ ldr r0, _080A0154 @ =gOtherText_Appeal2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0158 @ =gOtherText_Jam2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+_080A0150:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0154: .4byte gOtherText_Appeal2
+_080A0158: .4byte gOtherText_Jam2
+ thumb_func_end sub_80A00F4
+
+ thumb_func_start sub_80A015C
+sub_80A015C: @ 80A015C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ movs r7, 0
+_080A0168:
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F798
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r6, 0
+ bne _080A01B8
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ lsls r4, r7, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r4, r0
+ lsrs r4, 24
+ ldr r0, _080A01B0 @ =gOtherText_OneDash
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r4, 0
+ bl sub_80A1FF8
+ ldr r0, _080A01B4 @ =gOtherText_TwoDashes
+ movs r1, 0x1A
+ adds r2, r4, 0
+ bl MenuPrint
+ b _080A0276
+ .align 2, 0
+_080A01B0: .4byte gOtherText_OneDash
+_080A01B4: .4byte gOtherText_TwoDashes
+_080A01B8:
+ ldr r0, _080A01E0 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A01E8
+ ldr r1, _080A01E4 @ =gBattleMoves
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+ b _080A020C
+ .align 2, 0
+_080A01E0: .4byte 0x02018000
+_080A01E4: .4byte gBattleMoves
+_080A01E8:
+ ldr r1, _080A0290 @ =gContestMoves
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+_080A020C:
+ movs r0, 0xD
+ muls r0, r6
+ ldr r1, _080A0294 @ =gMoveNames
+ adds r0, r1
+ adds r5, r4, 0x4
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r5, 0
+ bl sub_80A1FF8
+ movs r0, 0x1
+ movs r1, 0x18
+ adds r2, r5, 0
+ bl GetStringCenterAlignXOffset
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r7, 0
+ bl CalculatePPWithBonus
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A0298 @ =gStringVar1
+ adds r0, r1, 0
+ mov r1, r9
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r1, r0, 0
+ movs r0, 0xBA
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r0, r1, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0298 @ =gStringVar1
+ movs r1, 0x19
+ adds r2, r5, 0
+ bl MenuPrint
+_080A0276:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bhi _080A0282
+ b _080A0168
+_080A0282:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0290: .4byte gContestMoves
+_080A0294: .4byte gMoveNames
+_080A0298: .4byte gStringVar1
+ thumb_func_end sub_80A015C
+
+ thumb_func_start sub_80A029C
+sub_80A029C: @ 80A029C
+ push {r4,r5,lr}
+ ldr r1, _080A02B8 @ =0x02018000
+ adds r4, r1, 0
+ adds r4, 0x7C
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _080A02C0
+ ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A037E
+ .align 2, 0
+_080A02B8: .4byte 0x02018000
+_080A02BC: .4byte gOtherText_CancelNoTerminator
+_080A02C0:
+ ldrh r5, [r4]
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ bne _080A02E4
+ ldr r1, _080A02E0 @ =gBattleMoves
+ lsls r4, r5, 1
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ b _080A0304
+ .align 2, 0
+_080A02E0: .4byte gBattleMoves
+_080A02E4:
+ ldr r1, _080A0320 @ =gContestMoves
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ lsls r4, r5, 1
+_080A0304:
+ ldr r0, _080A0324 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A032C
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0328 @ =gMoveNames
+ adds r0, r1
+ movs r1, 0xA
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A033E
+ .align 2, 0
+_080A0320: .4byte gContestMoves
+_080A0324: .4byte 0x02018000
+_080A0328: .4byte gMoveNames
+_080A032C:
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0384 @ =gMoveNames
+ adds r0, r1
+ movs r1, 0x9
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+_080A033E:
+ movs r0, 0x1
+ movs r1, 0x18
+ movs r2, 0xC
+ bl GetStringCenterAlignXOffset
+ ldr r2, _080A0388 @ =gStringVar1
+ ldr r1, _080A038C @ =gBattleMoves
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x4]
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0388 @ =gStringVar1
+ movs r1, 0x19
+ movs r2, 0xC
+ bl MenuPrint
+_080A037E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0384: .4byte gMoveNames
+_080A0388: .4byte gStringVar1
+_080A038C: .4byte gBattleMoves
+ thumb_func_end sub_80A029C
+
+ thumb_func_start sub_80A0390
+sub_80A0390: @ 80A0390
+ push {r4,lr}
+ movs r4, 0
+_080A0394:
+ lsls r3, r4, 1
+ adds r1, r3, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0xF
+ movs r2, 0x1C
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080A0394
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0390
+
+ thumb_func_start sub_80A03BC
+sub_80A03BC: @ 80A03BC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x4
+ beq _080A03D0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _080A03E0
+_080A03D0:
+ ldr r0, _080A03E8 @ =0x02018000
+ adds r2, r0, 0
+ adds r2, 0x7C
+ ldrh r0, [r2]
+ ldr r1, _080A03EC @ =0x0000ffff
+ cmp r0, 0
+ beq _080A03E0
+ adds r1, r0, 0
+_080A03E0:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A03E8: .4byte 0x02018000
+_080A03EC: .4byte 0x0000ffff
+ thumb_func_end sub_80A03BC
+
+ thumb_func_start sub_80A03F0
+sub_80A03F0: @ 80A03F0
+ push {lr}
+ ldrb r1, [r1]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0414 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A041C
+ adds r0, r1, 0
+ bl sub_80A04CC
+ ldr r0, _080A0418 @ =0x0000ffff
+ bl sub_80A057C
+ b _080A0422
+ .align 2, 0
+_080A0414: .4byte 0x02018000
+_080A0418: .4byte 0x0000ffff
+_080A041C:
+ adds r0, r1, 0
+ bl sub_80A057C
+_080A0422:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A03F0
+
+ thumb_func_start sub_80A0428
+sub_80A0428: @ 80A0428
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r1, [r6]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A0454 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A0458
+ adds r0, r4, 0
+ bl sub_80A046C
+ b _080A045E
+ .align 2, 0
+_080A0454: .4byte 0x02018000
+_080A0458:
+ adds r0, r4, 0
+ bl sub_80A0498
+_080A045E:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A03F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0428
+
+ thumb_func_start sub_80A046C
+sub_80A046C: @ 80A046C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0490 @ =0x0000ffff
+ cmp r1, r0
+ beq _080A048A
+ ldr r0, _080A0494 @ =gMoveDescriptions
+ subs r1, 0x1
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A048A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0490: .4byte 0x0000ffff
+_080A0494: .4byte gMoveDescriptions
+ thumb_func_end sub_80A046C
+
+ thumb_func_start sub_80A0498
+sub_80A0498: @ 80A0498
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A04C0 @ =0x0000ffff
+ cmp r3, r0
+ beq _080A04BC
+ ldr r2, _080A04C4 @ =gUnknown_083CADD4
+ ldr r1, _080A04C8 @ =gContestMoves
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A04BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A04C0: .4byte 0x0000ffff
+_080A04C4: .4byte gUnknown_083CADD4
+_080A04C8: .4byte gContestMoves
+ thumb_func_end sub_80A0498
+
+ thumb_func_start sub_80A04CC
+sub_80A04CC: @ 80A04CC
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080A0504 @ =0x0000ffff
+ cmp r4, r0
+ beq _080A0572
+ ldr r2, _080A0508 @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x1]
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _080A0514
+ ldr r0, _080A050C @ =gStringVar1
+ ldr r1, _080A0510 @ =gOtherText_ThreeDashes2
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A050C @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+ b _080A052A
+ .align 2, 0
+_080A0504: .4byte 0x0000ffff
+_080A0508: .4byte gBattleMoves
+_080A050C: .4byte gStringVar1
+_080A0510: .4byte gOtherText_ThreeDashes2
+_080A0514:
+ ldr r0, _080A0550 @ =gStringVar1
+ ldrb r1, [r2, 0x1]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0550 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+_080A052A:
+ ldr r0, _080A0554 @ =gBattleMoves
+ adds r1, r5, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _080A055C
+ ldr r0, _080A0550 @ =gStringVar1
+ ldr r1, _080A0558 @ =gOtherText_ThreeDashes2
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A0550 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+ b _080A0572
+ .align 2, 0
+_080A0550: .4byte gStringVar1
+_080A0554: .4byte gBattleMoves
+_080A0558: .4byte gOtherText_ThreeDashes2
+_080A055C:
+ ldr r0, _080A0578 @ =gStringVar1
+ ldrb r1, [r1, 0x3]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0578 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+_080A0572:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0578: .4byte gStringVar1
+ thumb_func_end sub_80A04CC
+
+ thumb_func_start sub_80A057C
+sub_80A057C: @ 80A057C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080A0648 @ =0x06006800
+ mov r8, r0
+ ldr r0, _080A064C @ =0x0000ffff
+ cmp r5, r0
+ beq _080A063A
+ ldr r1, _080A0650 @ =gContestEffects
+ ldr r2, _080A0654 @ =gContestMoves
+ lsls r3, r5, 3
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ mov r10, r2
+ mov r9, r3
+ cmp r4, 0xFF
+ beq _080A05B8
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A05B8:
+ movs r2, 0
+ movs r7, 0x3
+ movs r6, 0xF3
+ lsls r6, 2
+_080A05C0:
+ ldr r3, _080A0658 @ =0x00001039
+ cmp r4, 0xFF
+ beq _080A05CC
+ cmp r2, r4
+ bcs _080A05CC
+ adds r3, 0x1
+_080A05CC:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r7
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r6
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A05C0
+ ldr r0, _080A064C @ =0x0000ffff
+ cmp r5, r0
+ beq _080A063A
+ mov r0, r9
+ add r0, r10
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _080A0650 @ =gContestEffects
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+ cmp r4, 0xFF
+ beq _080A060C
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A060C:
+ movs r2, 0
+ movs r6, 0x3
+ ldr r5, _080A065C @ =0x0000044c
+_080A0612:
+ ldr r3, _080A0660 @ =0x0000103d
+ cmp r4, 0xFF
+ beq _080A061E
+ cmp r2, r4
+ bcs _080A061E
+ subs r3, 0x1
+_080A061E:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r6
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r5
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A0612
+_080A063A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0648: .4byte 0x06006800
+_080A064C: .4byte 0x0000ffff
+_080A0650: .4byte gContestEffects
+_080A0654: .4byte gContestMoves
+_080A0658: .4byte 0x00001039
+_080A065C: .4byte 0x0000044c
+_080A0660: .4byte 0x0000103d
+ thumb_func_end sub_80A057C
+
+ .section .text_80A0958
+
+ thumb_func_start sub_80A0958
+sub_80A0958: @ 80A0958
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r2, _080A0A24 @ =gStringVar1
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r6, 0xFC
+ strb r6, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ movs r0, 0x7
+ strb r0, [r2, 0x2]
+ movs r0, 0xBA
+ strb r0, [r2, 0x3]
+ adds r2, 0x4
+ movs r0, 0xB
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _080A0A28 @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r6, [r2]
+ movs r0, 0x13
+ mov r10, r0
+ strb r0, [r2, 0x1]
+ movs r0, 0x50
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ mov r9, r0
+ strb r0, [r2, 0x3]
+ ldr r5, _080A0A24 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl MenuPrint
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ mov r0, r8
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r0, 0x34
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ strb r6, [r2]
+ mov r0, r10
+ strb r0, [r2, 0x1]
+ movs r0, 0x20
+ strb r0, [r2, 0x2]
+ mov r0, r9
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x10
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x7
+ movs r2, 0x10
+ bl sub_80A0A2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A24: .4byte gStringVar1
+_080A0A28: .4byte gSpeciesNames
+ thumb_func_end sub_80A0958
+
+ thumb_func_start sub_80A0A2C
+sub_80A0A2C: @ 80A0A2C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x20
+ beq _080A0A84
+ cmp r0, 0x1D
+ beq _080A0A84
+ adds r0, r6, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A0A6E
+ cmp r0, 0xFE
+ beq _080A0A78
+ adds r3, r4, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl MenuZeroFillWindowRect
+ b _080A0A84
+_080A0A6E:
+ ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2
+ movs r1, 0xB
+ b _080A0A7C
+ .align 2, 0
+_080A0A74: .4byte gOtherText_MaleSymbol2
+_080A0A78:
+ ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv
+ movs r1, 0xC
+_080A0A7C:
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_80A1FF8
+_080A0A84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
+ thumb_func_end sub_80A0A2C
+
+ thumb_func_start sub_80A0A90
+sub_80A0A90: @ 80A0A90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x32
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x33
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x34
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x35
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x36
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x43
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x44
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x45
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x47
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x48
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x49
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4A
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4B
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4C
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4D
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4E
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A0A90
+
+ thumb_func_start sub_80A0B88
+sub_80A0B88: @ 80A0B88
+ push {r4,r5,lr}
+ bl sub_80A0A90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A0BA8
+ ldr r0, _080A0BA0 @ =gStringVar1
+ ldr r1, _080A0BA4 @ =gOtherText_None
+ bl StringCopy
+ b _080A0BD8
+ .align 2, 0
+_080A0BA0: .4byte gStringVar1
+_080A0BA4: .4byte gOtherText_None
+_080A0BA8:
+ ldr r4, _080A0BE8 @ =gStringVar1
+ ldr r1, _080A0BEC @ =gOtherText_Ribbons00
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r0, 24
+ subs r4, 0x2
+ adds r0, r4
+ movs r1, 0xFC
+ strb r1, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x6
+ strb r1, [r0, 0x2]
+ adds r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+_080A0BD8:
+ ldr r0, _080A0BF0 @ =gUnknown_083C15AE
+ movs r1, 0x15
+ movs r2, 0x4
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0BE8: .4byte gStringVar1
+_080A0BEC: .4byte gOtherText_Ribbons00
+_080A0BF0: .4byte gUnknown_083C15AE
+ thumb_func_end sub_80A0B88
+
+ thumb_func_start sub_80A0BF4
+sub_80A0BF4: @ 80A0BF4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ cmp r5, 0xAF
+ bne _080A0C48
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ ldr r0, _080A0C40 @ =0x02018000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ beq _080A0C2E
+ cmp r0, 0x4
+ beq _080A0C2E
+ cmp r0, 0x5
+ bne _080A0C48
+_080A0C2E:
+ ldr r4, _080A0C44 @ =gStringVar1
+ adds r0, r5, 0
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C40: .4byte 0x02018000
+_080A0C44: .4byte gStringVar1
+_080A0C48:
+ cmp r5, 0
+ bne _080A0C60
+ ldr r0, _080A0C58 @ =gStringVar1
+ ldr r1, _080A0C5C @ =gOtherText_None
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C58: .4byte gStringVar1
+_080A0C5C: .4byte gOtherText_None
+_080A0C60:
+ ldr r1, _080A0C78 @ =gStringVar1
+ adds r0, r5, 0
+ bl CopyItemName
+_080A0C68:
+ ldr r0, _080A0C7C @ =gUnknown_083C15B4
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0C78: .4byte gStringVar1
+_080A0C7C: .4byte gUnknown_083C15B4
+ thumb_func_end sub_80A0BF4
+
+ thumb_func_start sub_80A0C80
+sub_80A0C80: @ 80A0C80
+ 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
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ movs r0, 0
+ mov r9, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x63
+ bhi _080A0D14
+ ldr r3, _080A0D4C @ =gExperienceTables
+ adds r1, r5, 0x1
+ lsls r1, 2
+ ldr r2, _080A0D50 @ =gBaseStats
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r2, r0
+ adds r1, r2
+ adds r1, r3
+ ldr r1, [r1]
+ mov r0, r8
+ subs r0, r1, r0
+ mov r9, r0
+ lsls r0, r5, 2
+ adds r0, r2
+ adds r0, r3
+ ldr r0, [r0]
+ subs r1, r0
+ mov r2, r8
+ subs r4, r2, r0
+ lsls r0, r4, 6
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r7, 0
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ bne _080A0D14
+ cmp r4, 0
+ beq _080A0D14
+ movs r6, 0x1
+ movs r7, 0
+_080A0D14:
+ ldr r4, _080A0D54 @ =gStringVar1
+ adds r0, r4, 0
+ mov r1, r9
+ bl ConvertIntToDecimalString
+ mov r1, r10
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp]
+ bl MenuPrint_RightAligned
+ ldr r0, _080A0D58 @ =0x06004caa
+ mov r9, r0
+ movs r2, 0
+ mov r12, r2
+ ldr r0, _080A0D5C @ =0x00002062
+ mov r8, r0
+_080A0D3A:
+ cmp r7, 0
+ bgt _080A0D46
+ cmp r7, 0
+ bne _080A0D64
+ cmp r6, 0x7
+ bls _080A0D64
+_080A0D46:
+ ldr r1, _080A0D60 @ =0x0000206a
+ b _080A0D96
+ .align 2, 0
+_080A0D4C: .4byte gExperienceTables
+_080A0D50: .4byte gBaseStats
+_080A0D54: .4byte gStringVar1
+_080A0D58: .4byte 0x06004caa
+_080A0D5C: .4byte 0x00002062
+_080A0D60: .4byte 0x0000206a
+_080A0D64:
+ adds r5, r7, 0
+ adds r4, r6, 0
+ cmp r7, 0
+ bge _080A0D74
+ movs r4, 0x7
+ movs r5, 0
+ adds r4, r6
+ adcs r5, r7
+_080A0D74:
+ lsls r3, r5, 29
+ lsrs r2, r4, 3
+ adds r0, r3, 0
+ orrs r0, r2
+ asrs r1, r5, 3
+ lsrs r5, r0, 29
+ lsls r4, r1, 3
+ adds r3, r5, 0
+ orrs r3, r4
+ lsls r2, r0, 3
+ adds r1, r7, 0
+ adds r0, r6, 0
+ subs r0, r2
+ sbcs r1, r3
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080A0D96:
+ mov r2, r12
+ lsls r0, r2, 1
+ add r0, r9
+ strh r1, [r0]
+ movs r0, 0x8
+ negs r0, r0
+ asrs r1, r0, 31
+ adds r6, r0
+ adcs r7, r1
+ cmp r7, 0
+ bge _080A0DB0
+ movs r6, 0
+ movs r7, 0
+_080A0DB0:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x7
+ bls _080A0D3A
+ 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_80A0C80
+
+ thumb_func_start sub_80A0DD0
+sub_80A0DD0: @ 80A0DD0
+ push {r4,r5,lr}
+ ldr r2, _080A0E3C @ =gStringVar1
+ movs r5, 0xFC
+ strb r5, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E40 @ =gUnknown_083C1068
+ ldr r4, _080A0E44 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r5, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E3C @ =gStringVar1
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r4, 0x7F
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080A0E48
+ movs r0, 0x5
+ movs r1, 0x17
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x6
+ movs r1, 0x18
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ b _080A0E54
+ .align 2, 0
+_080A0E3C: .4byte gStringVar1
+_080A0E40: .4byte gUnknown_083C1068
+_080A0E44: .4byte 0x02018000
+_080A0E48:
+ movs r0, 0x17
+ movs r1, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl MenuZeroFillWindowRect
+_080A0E54:
+ ldr r2, _080A0E98 @ =gStringVar1
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E9C @ =gUnknown_083C1068
+ ldr r0, _080A0EA0 @ =0x02018000
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x28
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E98 @ =gStringVar1
+ movs r1, 0x19
+ movs r2, 0
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0E98: .4byte gStringVar1
+_080A0E9C: .4byte gUnknown_083C1068
+_080A0EA0: .4byte 0x02018000
+ thumb_func_end sub_80A0DD0
+
+ thumb_func_start sub_80A0EA4
+sub_80A0EA4: @ 80A0EA4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A0ECC @ =0x0600e444
+ ldr r6, _080A0ED0 @ =0x0600ec44
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0ED4
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A0ED4
+ movs r0, 0x2C
+ b _080A0ED8
+ .align 2, 0
+_080A0ECC: .4byte 0x0600e444
+_080A0ED0: .4byte 0x0600ec44
+_080A0ED4:
+ ldr r1, _080A0EE4 @ =0x0000081a
+ adds r0, r1, 0
+_080A0ED8:
+ strh r0, [r5]
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0EE4: .4byte 0x0000081a
+ thumb_func_end sub_80A0EA4
+
+ thumb_func_start sub_80A0EE8
+sub_80A0EE8: @ 80A0EE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r3, 0
+ ldr r6, _080A0F24 @ =0x02018000
+ adds r5, r6, 0
+ ldr r1, _080A0F28 @ =0x00004040
+ mov r8, r1
+ ldr r2, _080A0F2C @ =0x0000404a
+ mov r10, r2
+_080A0F02:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080A0F30
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r4, r8
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r7, sp
+ adds r0, r7, r1
+ strh r4, [r0]
+ b _080A0FE2
+ .align 2, 0
+_080A0F24: .4byte 0x02018000
+_080A0F28: .4byte 0x00004040
+_080A0F2C: .4byte 0x0000404a
+_080A0F30:
+ movs r0, 0x76
+ adds r0, r6
+ mov r12, r0
+ ldrb r1, [r0]
+ cmp r3, r1
+ bls _080A0F52
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r2, r10
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r4, sp
+ adds r0, r4, r1
+ strh r2, [r0]
+ b _080A0FE2
+_080A0F52:
+ ldrb r4, [r5, 0xB]
+ cmp r3, r4
+ bcs _080A0F6E
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0F88 @ =0x00004046
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0F6E:
+ cmp r3, r4
+ bne _080A0FA6
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0F90
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0F8C @ =0x00004041
+ b _080A0F9A
+ .align 2, 0
+_080A0F88: .4byte 0x00004046
+_080A0F8C: .4byte 0x00004041
+_080A0F90:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0FC4 @ =0x0000404b
+_080A0F9A:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FA6:
+ ldrb r0, [r5, 0xB]
+ cmp r3, r0
+ bls _080A0FE2
+ adds r0, r6, 0
+ adds r0, 0x76
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0FCC
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0FC8 @ =0x00004043
+ b _080A0FD6
+ .align 2, 0
+_080A0FC4: .4byte 0x0000404b
+_080A0FC8: .4byte 0x00004043
+_080A0FCC:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A1034 @ =0x00004048
+_080A0FD6:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FE2:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A0F02
+ ldr r1, _080A1038 @ =0x0600e016
+ ldr r0, _080A103C @ =0x040000d4
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040 @ =0x80000008
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r3, 0
+_080A0FFE:
+ lsls r0, r3, 1
+ mov r4, sp
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x10
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x7
+ bls _080A0FFE
+ ldr r1, _080A1044 @ =0x0600e056
+ ldr r0, _080A103C @ =0x040000d4
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040 @ =0x80000008
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ 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
+_080A1034: .4byte 0x00004048
+_080A1038: .4byte 0x0600e016
+_080A103C: .4byte 0x040000d4
+_080A1040: .4byte 0x80000008
+_080A1044: .4byte 0x0600e056
+ thumb_func_end sub_80A0EE8
+
+ thumb_func_start sub_80A1048
+sub_80A1048: @ 80A1048
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080A10A0 @ =gTasks + 0x8
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A106E
+ b _080A1224
+_080A106E:
+ movs r5, 0x2
+ ldrsh r2, [r6, r5]
+ ldr r0, _080A10A4 @ =0x0000024a
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A10A8 @ =gUnknown_08E73508
+ adds r4, r0, r1
+ ldr r5, _080A10AC @ =0x0600e480
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 5
+ adds r7, r1, 0
+ cmp r2, r0
+ bhi _080A10B4
+ ldr r0, _080A10B0 @ =0x040000d4
+ str r4, [r0]
+ str r5, [r0, 0x4]
+ lsrs r1, r2, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A10E0
+ .align 2, 0
+_080A10A0: .4byte gTasks + 0x8
+_080A10A4: .4byte 0x0000024a
+_080A10A8: .4byte gUnknown_08E73508
+_080A10AC: .4byte 0x0600e480
+_080A10B0: .4byte 0x040000d4
+_080A10B4:
+ ldr r3, _080A110C @ =0x040000d4
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ ldr r0, _080A1110 @ =0x80000800
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ adds r5, r0
+ ldr r1, _080A1114 @ =0xfffff000
+ adds r2, r1
+ cmp r2, r0
+ bhi _080A10B4
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ lsrs r0, r2, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+_080A10E0:
+ movs r5, 0x2
+ ldrsh r0, [r6, r5]
+ ldr r1, _080A1118 @ =0x0000026a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A111C @ =0x0600e4c0
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A1120
+ ldr r0, _080A110C @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A114C
+ .align 2, 0
+_080A110C: .4byte 0x040000d4
+_080A1110: .4byte 0x80000800
+_080A1114: .4byte 0xfffff000
+_080A1118: .4byte 0x0000026a
+_080A111C: .4byte 0x0600e4c0
+_080A1120:
+ ldr r2, _080A1178 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A117C @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A1180 @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A1120
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A114C:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A1184 @ =0x0000024a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A1188 @ =0x0600ec80
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A118C
+ ldr r0, _080A1178 @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A11B8
+ .align 2, 0
+_080A1178: .4byte 0x040000d4
+_080A117C: .4byte 0x80000800
+_080A1180: .4byte 0xfffff000
+_080A1184: .4byte 0x0000024a
+_080A1188: .4byte 0x0600ec80
+_080A118C:
+ ldr r2, _080A11E4 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A11E8 @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A11EC @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A118C
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A11B8:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A11F0 @ =0x0000026a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A11F4 @ =0x0600ecc0
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A11F8
+ ldr r0, _080A11E4 @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A1224
+ .align 2, 0
+_080A11E4: .4byte 0x040000d4
+_080A11E8: .4byte 0x80000800
+_080A11EC: .4byte 0xfffff000
+_080A11F0: .4byte 0x0000026a
+_080A11F4: .4byte 0x0600ecc0
+_080A11F8:
+ ldr r2, _080A12B0 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A12B4 @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A12B8 @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A11F8
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A1224:
+ ldrb r4, [r6, 0x2]
+ ldrh r7, [r6, 0x2]
+ ldrh r0, [r6]
+ mov r12, r0
+ cmp r4, 0x9
+ bhi _080A1272
+ adds r3, r6, 0x4
+ ldr r2, _080A12B0 @ =0x040000d4
+ ldr r5, _080A12BC @ =0x80000001
+_080A1236:
+ lsls r1, r4, 1
+ ldr r6, _080A12C0 @ =0x0600e480
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r6, 0x40
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r6, _080A12C4 @ =0x0600ec80
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080A12C8 @ =0x0600ecc0
+ adds r1, r0
+ str r3, [r2]
+ str r1, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1236
+_080A1272:
+ mov r1, r12
+ lsls r0, r1, 16
+ cmp r0, 0
+ beq _080A1286
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0
+ ble _080A1286
+ cmp r0, 0x9
+ ble _080A12A4
+_080A1286:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _080A129A
+ ldr r0, _080A12CC @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A129A:
+ bl sub_80A1D18
+ mov r0, r8
+ bl DestroyTask
+_080A12A4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A12B0: .4byte 0x040000d4
+_080A12B4: .4byte 0x80000800
+_080A12B8: .4byte 0xfffff000
+_080A12BC: .4byte 0x80000001
+_080A12C0: .4byte 0x0600e480
+_080A12C4: .4byte 0x0600ec80
+_080A12C8: .4byte 0x0600ecc0
+_080A12CC: .4byte gOtherText_Status
+ thumb_func_end sub_80A1048
+
+ thumb_func_start sub_80A12D0
+sub_80A12D0: @ 80A12D0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1D
+ bl sub_80A18E4
+ ldr r0, _080A1310 @ =sub_80A1048
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A1314 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ cmp r4, 0
+ bge _080A1318
+ movs r0, 0xA
+ b _080A131A
+ .align 2, 0
+_080A1310: .4byte sub_80A1048
+_080A1314: .4byte gTasks
+_080A1318:
+ movs r0, 0
+_080A131A:
+ strh r0, [r1, 0xA]
+ ldr r0, _080A1330 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1330: .4byte gTasks
+ thumb_func_end sub_80A12D0
+
+ thumb_func_start sub_80A1334
+sub_80A1334: @ 80A1334
+ 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 r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A13E4 @ =gTasks + 0x8
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A136A
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A136A
+ ldrh r0, [r7, 0x2]
+_080A136A:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A13A6
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A13E8 @ =0x06005b40
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A13EC @ =0x001fffff
+ mov r8, r0
+_080A1386:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A13F0 @ =gUnknown_08E73E88
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1386
+_080A13A6:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A13F4
+ ldr r4, _080A13E8 @ =0x06005b40
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A13EC @ =0x001fffff
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A13C2:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A13C2
+ b _080A1400
+ .align 2, 0
+_080A13E4: .4byte gTasks + 0x8
+_080A13E8: .4byte 0x06005b40
+_080A13EC: .4byte 0x001fffff
+_080A13F0: .4byte gUnknown_08E73E88
+_080A13F4:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1400:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A1410
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A144A
+_080A1410:
+ ldr r4, _080A1480 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1444
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1444
+ ldr r0, _080A1484 @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1444:
+ mov r0, r10
+ bl DestroyTask
+_080A144A:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A1470
+ ldr r4, _080A1480 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1460
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A1460:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A1470:
+ 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
+_080A1480: .4byte 0x02018000
+_080A1484: .4byte gOtherText_Status
+ thumb_func_end sub_80A1334
+
+ thumb_func_start sub_80A1488
+sub_80A1488: @ 80A1488
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A14DC @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A14A6
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A14A6:
+ ldr r5, _080A14E0 @ =sub_80A1334
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A14C2
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A14C2:
+ ldr r1, _080A14E4 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A14E8
+ movs r0, 0xA
+ b _080A14EA
+ .align 2, 0
+_080A14DC: .4byte 0x02018000
+_080A14E0: .4byte sub_80A1334
+_080A14E4: .4byte gTasks
+_080A14E8:
+ movs r0, 0
+_080A14EA:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1488
+
+ thumb_func_start sub_80A1500
+sub_80A1500: @ 80A1500
+ 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 r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A15B0 @ =gTasks + 0x8
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A1536
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A1536
+ ldrh r0, [r7, 0x2]
+_080A1536:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A1572
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A15B4 @ =0x06006b40
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A15B8 @ =0x001fffff
+ mov r8, r0
+_080A1552:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A15BC @ =gUnknown_08E74688
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1552
+_080A1572:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A15C0
+ ldr r4, _080A15B4 @ =0x06006b40
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A15B8 @ =0x001fffff
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A158E:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A158E
+ b _080A15CC
+ .align 2, 0
+_080A15B0: .4byte gTasks + 0x8
+_080A15B4: .4byte 0x06006b40
+_080A15B8: .4byte 0x001fffff
+_080A15BC: .4byte gUnknown_08E74688
+_080A15C0:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A15CC:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A15DC
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A1616
+_080A15DC:
+ ldr r4, _080A164C @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A1610
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1610
+ ldr r0, _080A1650 @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1610:
+ mov r0, r10
+ bl DestroyTask
+_080A1616:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A163C
+ ldr r4, _080A164C @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A162C
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A162C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A163C:
+ 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
+_080A164C: .4byte 0x02018000
+_080A1650: .4byte gOtherText_Status
+ thumb_func_end sub_80A1500
+
+ thumb_func_start sub_80A1654
+sub_80A1654: @ 80A1654
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A16A8 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x3
+ bne _080A1672
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1672:
+ ldr r5, _080A16AC @ =sub_80A1500
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A168E
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A168E:
+ ldr r1, _080A16B0 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A16B4
+ movs r0, 0xA
+ b _080A16B6
+ .align 2, 0
+_080A16A8: .4byte 0x02018000
+_080A16AC: .4byte sub_80A1500
+_080A16B0: .4byte gTasks
+_080A16B4:
+ movs r0, 0
+_080A16B6:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1654
+
+ thumb_func_start sub_80A16CC
+sub_80A16CC: @ 80A16CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080A1724 @ =0x06006ad4
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A172C
+ movs r5, 0
+ ldr r7, _080A1728 @ =gUnknown_08E94510
+ movs r0, 0x80
+ lsls r0, 5
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A16F4:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A16F4
+ b _080A1768
+ .align 2, 0
+_080A1724: .4byte 0x06006ad4
+_080A1728: .4byte gUnknown_08E94510
+_080A172C:
+ movs r5, 0
+ ldr r6, _080A17B0 @ =gUnknown_08E94550
+ movs r7, 0x80
+ lsls r7, 5
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A173C:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A173C
+_080A1768:
+ ldr r0, _080A17B4 @ =0x06005ad4
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A17BC
+ movs r5, 0
+ ldr r7, _080A17B8 @ =gUnknown_08E94510
+ movs r0, 0xC0
+ lsls r0, 6
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A1782:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A1782
+ b _080A17F8
+ .align 2, 0
+_080A17B0: .4byte gUnknown_08E94550
+_080A17B4: .4byte 0x06005ad4
+_080A17B8: .4byte gUnknown_08E94510
+_080A17BC:
+ movs r5, 0
+ ldr r6, _080A1804 @ =gUnknown_08E94550
+ movs r7, 0xC0
+ lsls r7, 6
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A17CC:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A17CC
+_080A17F8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1804: .4byte gUnknown_08E94550
+ thumb_func_end sub_80A16CC
+
+ thumb_func_start sub_80A1808
+sub_80A1808: @ 80A1808
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r1, 0x41
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1860 @ =gUnknown_02024E8C
+ movs r1, 0x28
+ movs r2, 0x40
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, r0, 4
+ add r4, r8
+ lsls r4, 2
+ ldr r5, _080A1864 @ =gSprites
+ adds r7, r4, r5
+ adds r0, r7, 0
+ bl FreeSpriteOamMatrix
+ strh r6, [r7, 0x2E]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080A1868 @ =sub_80A1888
+ str r0, [r4]
+ adds r0, r6, 0
+ bl sub_8040A3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A186C
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _080A187A
+ .align 2, 0
+_080A1860: .4byte gUnknown_02024E8C
+_080A1864: .4byte gSprites
+_080A1868: .4byte sub_80A1888
+_080A186C:
+ adds r2, r7, 0
+ adds r2, 0x3F
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080A187A:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1808
+
+ thumb_func_start sub_80A1888
+sub_80A1888: @ 80A1888
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A18B8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A18B0
+ ldr r0, _080A18BC @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ ldr r0, _080A18C0 @ =0x02018010
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080A18B0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0
+ bl PlayCry1
+_080A18B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18B8: .4byte gPaletteFade
+_080A18BC: .4byte SpriteCallbackDummy
+_080A18C0: .4byte 0x02018010
+ thumb_func_end sub_80A1888
+
+ thumb_func_start sub_80A18C4
+sub_80A18C4: @ 80A18C4
+ push {lr}
+ movs r1, 0
+ ldr r3, _080A18E0 @ =0x0201a000
+ movs r2, 0xFF
+_080A18CC:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bls _080A18CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18E0: .4byte 0x0201a000
+ thumb_func_end sub_80A18C4
+
+ thumb_func_start sub_80A18E4
+sub_80A18E4: @ 80A18E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A1910 @ =0x0201a000
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080A1908
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1914 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080A1908:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1910: .4byte 0x0201a000
+_080A1914: .4byte gSprites
+ thumb_func_end sub_80A18E4
+
+ thumb_func_start sub_80A1918
+sub_80A1918: @ 80A1918
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080A1948 @ =gSprites
+ ldr r2, _080A194C @ =0x0201a000
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ adds r2, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080A1948: .4byte gSprites
+_080A194C: .4byte 0x0201a000
+ thumb_func_end sub_80A1918
+
+ thumb_func_start sub_80A1950
+sub_80A1950: @ 80A1950
+ push {r4,r5,lr}
+ movs r5, 0
+_080A1954:
+ ldr r0, _080A1984 @ =0x0201a000
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A196C
+ ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl CreateSprite
+ strb r0, [r4]
+_080A196C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080A1954
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1984: .4byte 0x0201a000
+_080A1988: .4byte gSpriteTemplate_83C11C0
+ thumb_func_end sub_80A1950
+
+ thumb_func_start sub_80A198C
+sub_80A198C: @ 80A198C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r10, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080A1A24 @ =0x0201a000
+ mov r8, r1
+ add r8, r10
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1A28 @ =gSprites
+ mov r9, r1
+ add r0, r9
+ adds r1, r4, 0
+ bl StartSpriteAnim
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldr r0, _080A1A2C @ =gUnknown_083C11D8
+ adds r4, r0
+ ldrb r2, [r4]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r5, 0x10
+ strh r5, [r0, 0x20]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r6, 0x8
+ strh r6, [r0, 0x22]
+ mov r0, r10
+ movs r1, 0
+ bl sub_80A1918
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1A24: .4byte 0x0201a000
+_080A1A28: .4byte gSprites
+_080A1A2C: .4byte gUnknown_083C11D8
+ thumb_func_end sub_80A198C
+
+ thumb_func_start sub_80A1A30
+sub_80A1A30: @ 80A1A30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080A1A98 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bls _080A1B0A
+ cmp r4, 0x9
+ bne _080A1A52
+ movs r3, 0x1
+ mov r9, r3
+_080A1A52:
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 6
+ adds r0, r1
+ mov r8, r0
+ ldr r6, _080A1A9C @ =gSprites
+ mov r10, r5
+_080A1A60:
+ lsls r1, r5, 20
+ movs r3, 0xB0
+ lsls r3, 15
+ adds r1, r3
+ asrs r1, 16
+ ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280
+ movs r2, 0x28
+ mov r3, r9
+ bl CreateSprite
+ adds r1, r4, r5
+ mov r3, r8
+ adds r2, r1, r3
+ strb r0, [r2]
+ adds r7, r1, 0
+ cmp r5, 0
+ bne _080A1AA4
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080A1AD0
+ .align 2, 0
+_080A1A98: .4byte 0x02018000
+_080A1A9C: .4byte gSprites
+_080A1AA0: .4byte gSpriteTemplate_83C1280
+_080A1AA4:
+ cmp r5, 0x9
+ bne _080A1AC0
+ adds r0, r4, 0
+ adds r0, 0x9
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ bl StartSpriteAnim
+ b _080A1AD0
+_080A1AC0:
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x6
+ bl StartSpriteAnim
+_080A1AD0:
+ mov r0, r8
+ adds r2, r7, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1B18 @ =sub_80A1BC0
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r10
+ strh r1, [r0, 0x30]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _080A1A60
+_080A1B0A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1B18: .4byte sub_80A1BC0
+ thumb_func_end sub_80A1A30
+
+ thumb_func_start sub_80A1B1C
+sub_80A1B1C: @ 80A1B1C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_080A1B24:
+ adds r0, r5, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A18E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1B24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1B1C
+
+ thumb_func_start sub_80A1B40
+sub_80A1B40: @ 80A1B40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 24
+ ldr r0, _080A1BB4 @ =0x0201a009
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r2, _080A1BB8 @ =gSprites
+ adds r0, r2
+ lsrs r7, r1, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r4, 0
+ adds r0, r7, 0x6
+ lsls r0, 24
+ mov r8, r0
+_080A1B74:
+ ldr r6, _080A1BBC @ =0x0201a00a
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A1BB8 @ =gSprites
+ adds r0, r5
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A1B74
+ ldrb r1, [r6, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r1, r7, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1BB4: .4byte 0x0201a009
+_080A1BB8: .4byte gSprites
+_080A1BBC: .4byte 0x0201a00a
+ thumb_func_end sub_80A1B40
+
+ thumb_func_start sub_80A1BC0
+sub_80A1BC0: @ 80A1BC0
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080A1BF8
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ cmp r0, 0x18
+ ble _080A1BEC
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ b _080A1C06
+_080A1BEC:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ b _080A1C04
+_080A1BF8:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ subs r0, 0x5
+_080A1C04:
+ ands r0, r1
+_080A1C06:
+ strb r0, [r3]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x9
+ bne _080A1C1C
+ ldr r0, _080A1C18 @ =0x02018000
+ adds r0, 0x79
+ b _080A1C20
+ .align 2, 0
+_080A1C18: .4byte 0x02018000
+_080A1C1C:
+ ldr r0, _080A1C2C @ =0x02018000
+ adds r0, 0x7A
+_080A1C20:
+ ldrb r0, [r0]
+ lsls r0, 4
+ strh r0, [r2, 0x26]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C2C: .4byte 0x02018000
+ thumb_func_end sub_80A1BC0
+
+ thumb_func_start sub_80A1C30
+sub_80A1C30: @ 80A1C30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 25
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ adds r0, r3, 0
+ adds r0, 0xA
+ cmp r3, r0
+ bge _080A1C82
+ ldr r5, _080A1C88 @ =gSprites
+ movs r7, 0x5
+ negs r7, r7
+ ldr r6, _080A1C8C @ =0x0201a009
+_080A1C50:
+ adds r2, r3, r6
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0
+ adds r0, 0xA
+ cmp r3, r0
+ blt _080A1C50
+_080A1C82:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C88: .4byte gSprites
+_080A1C8C: .4byte 0x0201a009
+ thumb_func_end sub_80A1C30
+
+ thumb_func_start pokemon_ailments_get_primary
+pokemon_ailments_get_primary: @ 80A1C90
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CA0
+ movs r0, 0x1
+ b _080A1CD2
+_080A1CA0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CAC
+ movs r0, 0x2
+ b _080A1CD2
+_080A1CAC:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CB8
+ movs r0, 0x3
+ b _080A1CD2
+_080A1CB8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CC4
+ movs r0, 0x4
+ b _080A1CD2
+_080A1CC4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080A1CD0
+ movs r0, 0
+ b _080A1CD2
+_080A1CD0:
+ movs r0, 0x5
+_080A1CD2:
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_ailments_get_primary
+
+ thumb_func_start GetMonStatusAndPokerus
+GetMonStatusAndPokerus: @ 80A1CD8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080A1CEA
+ movs r0, 0x7
+ b _080A1D12
+_080A1CEA:
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A1D12
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1D10
+ movs r0, 0
+ b _080A1D12
+_080A1D10:
+ movs r0, 0x6
+_080A1D12:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonStatusAndPokerus
+
+ thumb_func_start sub_80A1D18
+sub_80A1D18: @ 80A1D18
+ push {r4,r5,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ mov r0, sp
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A1D58
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A1D50 @ =0x0201a01d
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A1D60
+ ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304
+ movs r1, 0x40
+ movs r2, 0x98
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4]
+ b _080A1D60
+ .align 2, 0
+_080A1D50: .4byte 0x0201a01d
+_080A1D54: .4byte gSpriteTemplate_83C1304
+_080A1D58:
+ movs r0, 0x1D
+ bl sub_80A18E4
+ b _080A1D74
+_080A1D60:
+ ldr r0, _080A1D7C @ =0x0201a01d
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1D80 @ =gSprites
+ adds r0, r1
+ adds r1, r5, 0
+ bl StartSpriteAnim
+_080A1D74:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1D7C: .4byte 0x0201a01d
+_080A1D80: .4byte gSprites
+ thumb_func_end sub_80A1D18
+
+ thumb_func_start sub_80A1D84
+sub_80A1D84: @ 80A1D84
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080A1DC0 @ =0x00007533
+ ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette
+ adds r0, r1, 0
+ bl sub_80F7920
+ adds r4, r0, 0
+ ldr r6, _080A1DC8 @ =gUnknown_020384F4
+ str r4, [r6]
+ cmp r4, 0
+ beq _080A1DBA
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, [r6]
+ movs r0, 0x3C
+ strh r0, [r1, 0x20]
+ movs r0, 0x1A
+ strh r0, [r1, 0x22]
+_080A1DBA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DC0: .4byte 0x00007533
+_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
+_080A1DC8: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1D84
+
+ thumb_func_start sub_80A1DCC
+sub_80A1DCC: @ 80A1DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A1DE4 @ =gUnknown_020384F4
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ bl sub_80A1D84
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DE4: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1DCC
+
+ thumb_func_start sub_80A1DE8
+sub_80A1DE8: @ 80A1DE8
+ push {r4,lr}
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80478DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ movs r1, 0x6
+ movs r2, 0x88
+ movs r3, 0
+ bl CreateSprite
+ ldr r2, _080A1E4C @ =0x02018000
+ strb r0, [r2, 0xD]
+ ldr r3, _080A1E50 @ =gSprites
+ ldrb r1, [r2, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1E54 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldrb r1, [r2, 0xD]
+ 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]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1E48: .4byte gSpriteTemplate_820AAB4
+_080A1E4C: .4byte 0x02018000
+_080A1E50: .4byte gSprites
+_080A1E54: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80A1DE8
+
+ thumb_func_start sub_80A1E58
+sub_80A1E58: @ 80A1E58
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0xFF
+ beq _080A1E92
+ ldr r3, _080A1E6C @ =gUnknown_083C15BC
+ ldrb r0, [r3]
+ adds r4, r2, 0x5
+ b _080A1E74
+ .align 2, 0
+_080A1E6C: .4byte gUnknown_083C15BC
+_080A1E70:
+ adds r3, 0x4
+ ldrb r0, [r3]
+_080A1E74:
+ cmp r0, 0xFF
+ beq _080A1E7C
+ cmp r0, r1
+ bne _080A1E70
+_080A1E7C:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x4
+ strb r0, [r2, 0x1]
+ ldrb r0, [r3, 0x1]
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3, 0x2]
+ strb r0, [r2, 0x3]
+ ldrb r0, [r3, 0x3]
+ strb r0, [r2, 0x4]
+ adds r2, r4, 0
+_080A1E92:
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E58
+
+ thumb_func_start sub_80A1E9C
+sub_80A1E9C: @ 80A1E9C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ mov r1, sp
+ adds r1, 0x1
+ mov r2, sp
+ adds r2, 0x2
+ mov r0, sp
+ bl sub_8072CD4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80A1E58
+ adds r6, r0, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r6, r0, 0
+ cmp r4, 0xFF
+ beq _080A1EEC
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x4
+ strb r0, [r6, 0x1]
+ mov r0, sp
+ ldrb r0, [r0]
+ strb r0, [r6, 0x2]
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ strb r0, [r6, 0x3]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ strb r0, [r6, 0x4]
+ movs r0, 0xFF
+ strb r0, [r6, 0x5]
+ adds r6, 0x5
+_080A1EEC:
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E9C
+
+ thumb_func_start sub_80A1EF8
+sub_80A1EF8: @ 80A1EF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1F44 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ ldr r3, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint_PixelCoords
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F44: .4byte gStringVar4
+ thumb_func_end sub_80A1EF8
+
+ thumb_func_start sub_80A1F48
+sub_80A1F48: @ 80A1F48
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _080A1F94 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ ldr r3, [sp]
+ bl sub_8072BD8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F94: .4byte gStringVar4
+ thumb_func_end sub_80A1F48
+
+ thumb_func_start sub_80A1F98
+sub_80A1F98: @ 80A1F98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ mov r8, r1
+ adds r4, r2, 0
+ adds r2, r3, 0
+ ldr r5, [sp, 0x24]
+ ldr r6, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1FF4 @ =gStringVar1
+ mov r9, r0
+ mov r1, r10
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ str r7, [sp]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80A1EF8
+ 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
+_080A1FF4: .4byte gStringVar1
+ thumb_func_end sub_80A1F98
+
+ thumb_func_start sub_80A1FF8
+sub_80A1FF8: @ 80A1FF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _080A2038 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2038: .4byte gStringVar4
+ thumb_func_end sub_80A1FF8
+
+ thumb_func_start PokemonSummaryScreen_CopyPokemonLevel
+PokemonSummaryScreen_CopyPokemonLevel: @ 80A203C
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x34
+ strb r0, [r4]
+ adds r4, 0x1
+ cmp r1, 0
+ bne _080A2052
+ movs r1, 0x5
+_080A2052:
+ mov r0, sp
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r4, r0, 0
+ ldr r1, _080A2074 @ =gOtherText_Comma
+ bl StringCopy
+ adds r4, r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2074: .4byte gOtherText_Comma
+ thumb_func_end PokemonSummaryScreen_CopyPokemonLevel
+
+ thumb_func_start sub_80A2078
+sub_80A2078: @ 80A2078
+ push {lr}
+ ldr r3, _080A209C @ =gUnknown_03005CF0
+ ldr r2, _080A20A0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _080A20A4 @ =sub_80A20A8
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A209C: .4byte gUnknown_03005CF0
+_080A20A0: .4byte gTasks
+_080A20A4: .4byte sub_80A20A8
+ thumb_func_end sub_80A2078
+
+ thumb_func_start sub_80A20A8
+sub_80A20A8: @ 80A20A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080A20C6
+ ldr r1, _080A20CC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A20D0 @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_080A20C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A20CC: .4byte gTasks
+_080A20D0: .4byte gUnknown_03005CF0
+ thumb_func_end sub_80A20A8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 968386bd1..966285ab3 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -9571,7 +9571,7 @@ _080F088C:
bne _080F08C6
_080F089A:
movs r0, 0x9
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
ldr r0, _080F08E0 @ =0x0001869f
cmp r1, r0
@@ -12455,7 +12455,7 @@ _080F1F4A:
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
- ldr r0, _080F1FB0 @ =gUnknown_083E4450
+ ldr r0, _080F1FB0 @ =gSpriteAffineAnimTable_83E4450
str r0, [r4, 0x10]
adds r0, r4, 0
bl InitSpriteAffineAnim
@@ -12489,7 +12489,7 @@ _080F1F4A:
b _080F1FE4
.align 2, 0
_080F1FAC: .4byte 0x00006dad
-_080F1FB0: .4byte gUnknown_083E4450
+_080F1FB0: .4byte gSpriteAffineAnimTable_83E4450
_080F1FB4: .4byte sub_80F2240
_080F1FB8: .4byte gUnknown_083DFEC4
_080F1FBC: .4byte 0x0000030f
@@ -17339,7 +17339,7 @@ _080F44FC:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F451C @ =gUnknown_020300A4
+ ldr r2, _080F451C @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
adds r1, r4, 0
@@ -17347,7 +17347,7 @@ _080F44FC:
bl GetBoxMonData
b _080F453C
.align 2, 0
-_080F451C: .4byte gUnknown_020300A4
+_080F451C: .4byte gPokemonStorage + 0x4
_080F4520:
lsls r1, r0, 2
adds r1, r0
@@ -17357,7 +17357,7 @@ _080F4520:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F4544 @ =gUnknown_020300A4
+ ldr r2, _080F4544 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
adds r1, r4, 0
@@ -17367,7 +17367,7 @@ _080F453C:
pop {r1}
bx r1
.align 2, 0
-_080F4544: .4byte gUnknown_020300A4
+_080F4544: .4byte gPokemonStorage + 0x4
thumb_func_end sub_80F44B0
thumb_func_start sub_80F4548
@@ -17401,7 +17401,7 @@ _080F4574:
lsls r1, r4, 2
adds r1, r4
lsls r1, 4
- ldr r2, _080F459C @ =gUnknown_020300A4
+ ldr r2, _080F459C @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x8
@@ -17413,7 +17413,7 @@ _080F4592:
pop {r0}
bx r0
.align 2, 0
-_080F459C: .4byte gUnknown_020300A4
+_080F459C: .4byte gPokemonStorage + 0x4
thumb_func_end sub_80F4548
thumb_func_start sub_80F45A0
@@ -17472,7 +17472,7 @@ _080F4608:
adds r0, r5, r0
lsls r1, r2, 3
adds r1, r2
- ldr r2, _080F4638 @ =gUnknown_020383E4
+ ldr r2, _080F4638 @ =gPokemonStorage + 0x8344
adds r1, r2
movs r2, 0x40
movs r3, 0
@@ -17488,7 +17488,7 @@ _080F4624:
b _080F4676
.align 2, 0
_080F4634: .4byte 0x000088e9
-_080F4638: .4byte gUnknown_020383E4
+_080F4638: .4byte gPokemonStorage + 0x8344
_080F463C: .4byte gUnknown_083DFEC4
_080F4640: .4byte 0x00008937
_080F4644:
@@ -17783,7 +17783,7 @@ sub_80F4824: @ 80F4824
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r2, 0x1
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r8
adds r2, r4, 0
@@ -18432,7 +18432,7 @@ _080F4DAA:
ldr r0, _080F4EA4 @ =0x000087d8
adds r0, r4
mov r9, r0
- ldr r1, _080F4EA8 @ =gUnknown_020300A4
+ ldr r1, _080F4EA8 @ =gPokemonStorage + 0x4
mov r8, r1
_080F4DCA:
ldrb r0, [r6]
@@ -18541,7 +18541,7 @@ _080F4E98: .4byte gUnknown_083DFEC4
_080F4E9C: .4byte 0x00008fe6
_080F4EA0: .4byte 0x00008fe7
_080F4EA4: .4byte 0x000087d8
-_080F4EA8: .4byte gUnknown_020300A4
+_080F4EA8: .4byte gPokemonStorage + 0x4
_080F4EAC: .4byte 0xffff00ff
_080F4EB0: .4byte 0xffe0ffff
_080F4EB4: .4byte 0xffffff00
@@ -21141,7 +21141,7 @@ _080F6278:
adds r5, r7, r1
ldr r0, _080F6310 @ =0x00008fe7
adds r4, r7, r0
- ldr r1, _080F6314 @ =gUnknown_020300A4
+ ldr r1, _080F6314 @ =gPokemonStorage + 0x4
mov r8, r1
ldr r0, _080F6318 @ =0x000041a0
add r0, r8
@@ -21205,7 +21205,7 @@ _080F62FE:
.align 2, 0
_080F630C: .4byte 0x00008fe6
_080F6310: .4byte 0x00008fe7
-_080F6314: .4byte gUnknown_020300A4
+_080F6314: .4byte gPokemonStorage + 0x4
_080F6318: .4byte 0x000041a0
_080F631C:
movs r0, 0
@@ -21336,7 +21336,7 @@ _080F63FC:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F6488 @ =gUnknown_020300A4
+ ldr r2, _080F6488 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x51
@@ -21393,7 +21393,7 @@ _080F646E:
_080F647C: .4byte gUnknown_083DFEC4
_080F6480: .4byte 0x00008fe6
_080F6484: .4byte 0x00008fe7
-_080F6488: .4byte gUnknown_020300A4
+_080F6488: .4byte gPokemonStorage + 0x4
_080F648C: .4byte 0xffff00ff
_080F6490: .4byte 0xffe0ffff
_080F6494: .4byte 0xffffff00
@@ -21544,7 +21544,7 @@ _080F65B4:
lsls r1, r7, 2
adds r1, r7
lsls r1, 4
- ldr r2, _080F6620 @ =gUnknown_020300A4
+ ldr r2, _080F6620 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
bl GetLevelFromBoxMonExp
@@ -21587,7 +21587,7 @@ _080F65FC:
beq _080F663C
b _080F6656
.align 2, 0
-_080F6620: .4byte gUnknown_020300A4
+_080F6620: .4byte gPokemonStorage + 0x4
_080F6624:
strb r1, [r5]
movs r0, 0x1
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 1c981d167..ce0121a40 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -496,7 +496,7 @@ _080BA038:
.4byte _080BA074
.4byte _080BA08E
_080BA050:
- bl sub_8047A1C
+ bl SetSecretBase2Field_9_AndHideBG
bl sub_8125E2C
b _080BA086
_080BA05A:
@@ -504,7 +504,7 @@ _080BA05A:
lsls r0, 24
cmp r0, 0
beq _080BA09C
- bl sub_8047A34
+ bl ClearSecretBase2Field_9_2
ldrh r0, [r4, 0x8]
adds r0, 0x1
movs r1, 0
diff --git a/asm/region_map.s b/asm/region_map.s
index 61449ba53..c6953705c 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -3034,8 +3034,8 @@ _080FC026:
bx r1
thumb_func_end CopyMapName
- thumb_func_start sub_80FC02C
-sub_80FC02C: @ 80FC02C
+ thumb_func_start CopyLocationName
+CopyLocationName: @ 80FC02C
push {lr}
lsls r1, 16
lsrs r1, 16
@@ -3051,7 +3051,7 @@ _080FC042:
bx r1
.align 2, 0
_080FC048: .4byte gOtherText_Hideout
- thumb_func_end sub_80FC02C
+ thumb_func_end CopyLocationName
thumb_func_start sub_80FC04C
sub_80FC04C: @ 80FC04C
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
index 082ebf465..1b58b417b 100644
--- a/asm/reset_rtc_screen.s
+++ b/asm/reset_rtc_screen.s
@@ -655,7 +655,7 @@ Task_ResetRtc_1: @ 806A958
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
- ldr r1, _0806A9A0 @ =gUnknown_08376414
+ ldr r1, _0806A9A0 @ =gUnknown_08376420 - 0xC
adds r2, r0, r1
ldr r1, _0806A9A4 @ =gMain
ldrh r3, [r1, 0x2E]
@@ -675,7 +675,7 @@ Task_ResetRtc_1: @ 806A958
b _0806A9CC
.align 2, 0
_0806A99C: .4byte gTasks + 0x8
-_0806A9A0: .4byte gUnknown_08376414
+_0806A9A0: .4byte gUnknown_08376420 - 0xC
_0806A9A4: .4byte gMain
_0806A9A8: .4byte Task_ResetRtc_2
_0806A9AC:
@@ -1225,7 +1225,7 @@ _0806AE08:
ldr r0, _0806AE54 @ =0x00004040
ldrh r1, [r4]
bl VarSet
- bl sub_80691A0
+ bl DisableResetRTC
ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave
bl ResetRtcScreen_ShowMessage
movs r0, 0x4
diff --git a/asm/rom3.s b/asm/rom3.s
index 823ac4e0c..94862459b 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -9,7 +9,7 @@
thumb_func_start sub_800B858
sub_800B858: @ 800B858
push {lr}
- ldr r0, _0800B87C @ =gUnknown_020239F8
+ ldr r0, _0800B87C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -24,7 +24,7 @@ _0800B876:
pop {r0}
bx r0
.align 2, 0
-_0800B87C: .4byte gUnknown_020239F8
+_0800B87C: .4byte gBattleTypeFlags
_0800B880: .4byte sub_8083C50
thumb_func_end sub_800B858
@@ -69,8 +69,8 @@ _0800B8A0:
str r5, [r0]
bl sub_8075624
bl sub_8040710
- bl sub_81070D4
- ldr r0, _0800B940 @ =gUnknown_020239F8
+ bl BattleAI_HandleItemUseBeforeAISetup
+ ldr r0, _0800B940 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
@@ -111,7 +111,7 @@ _0800B930: .4byte gUnknown_02024E64
_0800B934: .4byte nullsub_91
_0800B938: .4byte gUnknown_02024A72
_0800B93C: .4byte gUnknown_02024A64
-_0800B940: .4byte gUnknown_020239F8
+_0800B940: .4byte gBattleTypeFlags
_0800B944: .4byte gEnemyParty
_0800B948: .4byte gUnknown_020239FC
_0800B94C: .4byte gUnknown_02024C78
@@ -120,7 +120,7 @@ _0800B94C: .4byte gUnknown_02024C78
thumb_func_start sub_800B950
sub_800B950: @ 800B950
push {r4,r5,lr}
- ldr r0, _0800B964 @ =gUnknown_020239F8
+ ldr r0, _0800B964 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -129,12 +129,12 @@ sub_800B950: @ 800B950
bl sub_800BA78
b _0800B96C
.align 2, 0
-_0800B964: .4byte gUnknown_020239F8
+_0800B964: .4byte gBattleTypeFlags
_0800B968:
bl sub_800B9A8
_0800B96C:
bl sub_800BD54
- ldr r0, _0800B9A0 @ =gUnknown_020239F8
+ ldr r0, _0800B9A0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -160,14 +160,14 @@ _0800B99A:
pop {r0}
bx r0
.align 2, 0
-_0800B9A0: .4byte gUnknown_020239F8
+_0800B9A0: .4byte gBattleTypeFlags
_0800B9A4: .4byte gUnknown_02024A68
thumb_func_end sub_800B950
thumb_func_start sub_800B9A8
sub_800B9A8: @ 800B9A8
push {r4,lr}
- ldr r0, _0800B9CC @ =gUnknown_020239F8
+ ldr r0, _0800B9CC @ =gBattleTypeFlags
ldrh r2, [r0]
movs r0, 0x1
ands r0, r2
@@ -184,7 +184,7 @@ sub_800B9A8: @ 800B9A8
ldr r0, _0800B9DC @ =sub_812B468
b _0800B9FC
.align 2, 0
-_0800B9CC: .4byte gUnknown_020239F8
+_0800B9CC: .4byte gBattleTypeFlags
_0800B9D0: .4byte gUnknown_030042D4
_0800B9D4: .4byte sub_8010800
_0800B9D8: .4byte gUnknown_03004330
@@ -267,7 +267,7 @@ sub_800BA78: @ 800BA78
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r6, _0800BAB8 @ =gUnknown_020239F8
+ ldr r6, _0800BAB8 @ =gBattleTypeFlags
ldrh r1, [r6]
movs r5, 0x1
movs r4, 0x1
@@ -295,7 +295,7 @@ sub_800BA78: @ 800BA78
movs r0, 0x2
b _0800BD3E
.align 2, 0
-_0800BAB8: .4byte gUnknown_020239F8
+_0800BAB8: .4byte gBattleTypeFlags
_0800BABC: .4byte gUnknown_030042D4
_0800BAC0: .4byte sub_8010800
_0800BAC4: .4byte gUnknown_03004330
@@ -632,7 +632,7 @@ sub_800BD54: @ 800BD54
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0800BD74 @ =gUnknown_020239F8
+ ldr r0, _0800BD74 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -644,7 +644,7 @@ _0800BD6C:
mov r8, r0
b _0800BE7E
.align 2, 0
-_0800BD74: .4byte gUnknown_020239F8
+_0800BD74: .4byte gBattleTypeFlags
_0800BD78:
movs r5, 0
movs r0, 0x1
@@ -797,7 +797,7 @@ dp01_prepare_buffer: @ 800BE9C
adds r5, r3, 0
lsls r2, 16
lsrs r2, 16
- ldr r0, _0800BEC4 @ =gUnknown_020239F8
+ ldr r0, _0800BEC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -809,7 +809,7 @@ dp01_prepare_buffer: @ 800BE9C
bl dp01_prepare_buffer_wireless_probably
b _0800BF1A
.align 2, 0
-_0800BEC4: .4byte gUnknown_020239F8
+_0800BEC4: .4byte gBattleTypeFlags
_0800BEC8:
cmp r5, 0
beq _0800BED2
@@ -1393,7 +1393,7 @@ sub_800C35C: @ 800C35C
ldrb r0, [r0]
cmp r0, 0
beq _0800C458
- ldr r0, _0800C390 @ =gUnknown_020239F8
+ ldr r0, _0800C390 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x20
ands r0, r1
@@ -1410,7 +1410,7 @@ sub_800C35C: @ 800C35C
b _0800C44C
.align 2, 0
_0800C38C: .4byte gReceivedRemoteLinkPlayers
-_0800C390: .4byte gUnknown_020239F8
+_0800C390: .4byte gBattleTypeFlags
_0800C394: .4byte gLinkPlayers
_0800C398: .4byte 0x00002211
_0800C39C: .4byte gBlockRecvBuffer
@@ -1620,7 +1620,7 @@ _0800C50E:
bl memcpy
adds r0, r4, 0
bl sub_80155A4
- ldr r0, _0800C598 @ =gUnknown_020239F8
+ ldr r0, _0800C598 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x4
ands r0, r1
@@ -1664,7 +1664,7 @@ _0800C588: .4byte gUnknown_02024A64
_0800C58C: .4byte gBitTable
_0800C590: .4byte gUnknown_02023A60
_0800C594: .4byte 0x00015008
-_0800C598: .4byte gUnknown_020239F8
+_0800C598: .4byte gBattleTypeFlags
_0800C59C: .4byte gUnknown_02024C07
_0800C5A0: .4byte 0x00015002
_0800C5A4: .4byte gUnknown_02024C08
@@ -2133,7 +2133,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870
lsls r0, 24
cmp r0, 0
bne _0800C910
- ldr r0, _0800C90C @ =word_2024DB8
+ ldr r0, _0800C90C @ =gBattleWeather
ldrh r0, [r0]
strb r0, [r7, 0xC]
ands r6, r0
@@ -2144,7 +2144,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870
.align 2, 0
_0800C904: .4byte gUnknown_03004040
_0800C908: .4byte gUnknown_02024C0E
-_0800C90C: .4byte word_2024DB8
+_0800C90C: .4byte gBattleWeather
_0800C910:
ldr r0, _0800C944 @ =gUnknown_03004040
movs r1, 0
diff --git a/asm/rom5.s b/asm/rom5.s
index 4b0947a5d..3e0ebe208 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -279,7 +279,7 @@ _0807AF88:
lsrs r1, 16
adds r0, r4, 0
bl sub_8032984
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0807AFEC
@@ -420,7 +420,7 @@ _0807B0E8:
bl sub_8032350
b _0807B168
_0807B0F2:
- ldr r2, _0807B108 @ =gUnknown_020239F8
+ ldr r2, _0807B108 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x80
ands r0, r1
@@ -432,7 +432,7 @@ _0807B0F2:
ldrb r0, [r0, 0x8]
b _0807B122
.align 2, 0
-_0807B108: .4byte gUnknown_020239F8
+_0807B108: .4byte gBattleTypeFlags
_0807B10C: .4byte gSaveBlock2
_0807B110:
ldrh r1, [r2]
@@ -650,7 +650,7 @@ _0807B2CC: .4byte gSprites
_0807B2D0: .4byte SpriteCallbackDummy
_0807B2D4: .4byte gUnknown_02024E84
_0807B2D8:
- ldr r2, _0807B328 @ =gUnknown_020239F8
+ ldr r2, _0807B328 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x80
ands r0, r1
@@ -688,7 +688,7 @@ _0807B2D8:
adds r0, r6, 0
b _0807B37C
.align 2, 0
-_0807B328: .4byte gUnknown_020239F8
+_0807B328: .4byte gBattleTypeFlags
_0807B32C: .4byte gSaveBlock2
_0807B330: .4byte gUnknown_02024E8C
_0807B334: .4byte gTrainerBackPicCoords
@@ -918,7 +918,7 @@ sub_807B508: @ 807B508
bcc _0807B518
b _0807B68A
_0807B518:
- ldr r2, _0807B534 @ =gUnknown_020239F8
+ ldr r2, _0807B534 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x80
ands r0, r1
@@ -930,7 +930,7 @@ _0807B518:
b _0807B550
.align 2, 0
_0807B530: .4byte gUnknown_02024A68
-_0807B534: .4byte gUnknown_020239F8
+_0807B534: .4byte gBattleTypeFlags
_0807B538:
ldrh r1, [r2]
movs r0, 0x80
@@ -976,7 +976,7 @@ _0807B58C: .4byte gUnknown_03004340
_0807B590: .4byte gUnknown_02024A6A
_0807B594: .4byte gEnemyParty
_0807B598:
- ldr r0, _0807B5C0 @ =gUnknown_020239F8
+ ldr r0, _0807B5C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -995,7 +995,7 @@ _0807B598:
bl sub_8045A5C
b _0807B5E4
.align 2, 0
-_0807B5C0: .4byte gUnknown_020239F8
+_0807B5C0: .4byte gBattleTypeFlags
_0807B5C4: .4byte gUnknown_02024A6A
_0807B5C8: .4byte gPlayerParty
_0807B5CC:
@@ -1065,7 +1065,7 @@ _0807B654: .4byte gUnknown_03004340
_0807B658: .4byte gUnknown_02024A6A
_0807B65C: .4byte gEnemyParty
_0807B660:
- ldr r0, _0807B690 @ =gUnknown_020239F8
+ ldr r0, _0807B690 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -1089,960 +1089,9 @@ _0807B68A:
pop {r0}
bx r0
.align 2, 0
-_0807B690: .4byte gUnknown_020239F8
+_0807B690: .4byte gBattleTypeFlags
_0807B694: .4byte gUnknown_02024A6A
_0807B698: .4byte gPlayerParty
thumb_func_end sub_807B508
- thumb_func_start unref_sub_807B69C
-unref_sub_807B69C: @ 807B69C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807B740 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r6, [r0]
- ldr r0, _0807B744 @ =sub_807B7E0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
- bl LoadCompressedObjectPalette
- ldr r1, _0807B750 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x8]
- cmp r5, 0
- beq _0807B75C
- movs r0, 0x1F
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B754 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B6F0:
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r6, 0x22]
- adds r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0xFF
- lsls r0, 8
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B734
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B734:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B6F0
- b _0807B7BC
- .align 2, 0
-_0807B740: .4byte gUnknown_02024BE0
-_0807B744: .4byte sub_807B7E0
-_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
-_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
-_0807B750: .4byte gTasks
-_0807B754: .4byte gSprites
-_0807B758: .4byte gSpriteTemplate_83931F8
-_0807B75C:
- movs r0, 0xF8
- lsls r0, 7
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B7D8 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B76E:
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- ldrh r2, [r6, 0x22]
- subs r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B7B2
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B7B2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B76E
-_0807B7BC:
- ldr r0, _0807B7D8 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807B7D8: .4byte gSprites
-_0807B7DC: .4byte gSpriteTemplate_83931F8
- thumb_func_end unref_sub_807B69C
-
- thumb_func_start sub_807B7E0
-sub_807B7E0: @ 807B7E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807B838 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x2
- bne _0807B866
- movs r0, 0
- strh r0, [r4, 0xC]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x10]
- ldrh r3, [r4, 0xA]
- movs r1, 0x10
- bl BlendPalette
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0807B83C
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0807B86A
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- b _0807B86A
- .align 2, 0
-_0807B838: .4byte gTasks
-_0807B83C:
- ldrh r1, [r4, 0x10]
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0807B86A
- strh r1, [r4, 0x10]
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807B86A
- adds r0, r5, 0
- bl DestroyTask
- b _0807B86A
-_0807B866:
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_0807B86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807B7E0
-
- thumb_func_start sub_807B870
-sub_807B870: @ 807B870
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0807B89C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldr r1, _0807B898 @ =sub_807B8A4
- str r1, [r2, 0x1C]
- adds r0, r2, 0
- bl _call_via_r1
- b _0807B8A0
- .align 2, 0
-_0807B898: .4byte sub_807B8A4
-_0807B89C:
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
-_0807B8A0:
- pop {r0}
- bx r0
- thumb_func_end sub_807B870
-
- thumb_func_start sub_807B8A4
-sub_807B8A4: @ 807B8A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _0807B8D0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _0807B8D6
-_0807B8D0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_0807B8D6:
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- 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
- cmp r0, 0x34
- bne _0807B918
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807B912
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
- b _0807B918
-_0807B912:
- adds r0, r4, 0
- bl DestroySprite
-_0807B918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807B8A4
-
- thumb_func_start sub_807B920
-sub_807B920: @ 807B920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0807B9B0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _0807B9B4 @ =0xffe00000
- adds r0, r1
- lsrs r5, r0, 16
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r2, _0807B9B8 @ =0xffdc0000
- adds r0, r2
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807B95E
- lsls r0, r5, 16
- ldr r1, _0807B9BC @ =0xfffa0000
- adds r0, r1
- lsrs r5, r0, 16
-_0807B95E:
- ldr r1, _0807B9C0 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r4, 16
- asrs r2, 16
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0807B9C8 @ =gSprites
- adds r0, r1
- ldr r1, _0807B9CC @ =gUnknown_083931D8
- bl SetSubspriteTables
- ldr r1, _0807B9D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x26]
- ldr r1, _0807B9D4 @ =sub_807B9D8
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B9B0: .4byte gUnknown_0202F7C9
-_0807B9B4: .4byte 0xffe00000
-_0807B9B8: .4byte 0xffdc0000
-_0807B9BC: .4byte 0xfffa0000
-_0807B9C0: .4byte REG_BLDCNT
-_0807B9C4: .4byte gSpriteTemplate_83931E0
-_0807B9C8: .4byte gSprites
-_0807B9CC: .4byte gUnknown_083931D8
-_0807B9D0: .4byte gTasks
-_0807B9D4: .4byte sub_807B9D8
- thumb_func_end sub_807B920
-
- thumb_func_start sub_807B9D8
-sub_807B9D8: @ 807B9D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BA04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- adds r2, r0, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0807BA0C
- ldr r0, _0807BA08 @ =sub_807BA24
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0xA]
- b _0807BA1C
- .align 2, 0
-_0807BA04: .4byte gTasks
-_0807BA08: .4byte sub_807BA24
-_0807BA0C:
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r2, _0807BA20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BA1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BA20: .4byte REG_BLDALPHA
- thumb_func_end sub_807B9D8
-
- thumb_func_start sub_807BA24
-sub_807BA24: @ 807BA24
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807BABC @ =0x0000271a
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0807BAC0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r1, r0, 0x1
- strh r1, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0807BAB4
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- ldr r3, _0807BAC4 @ =gPlttBufferFaded
- lsls r2, 4
- mov r12, r2
- ldr r1, _0807BAC8 @ =0x0000010d
- add r1, r12
- lsls r1, 1
- adds r1, r3
- ldrh r4, [r1]
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- lsls r2, 1
- adds r2, r3
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r0, _0807BACC @ =0x0000010f
- add r0, r12
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- strh r1, [r2]
- strh r4, [r0]
- strh r6, [r5, 0xC]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- strh r6, [r5, 0xE]
- strh r6, [r5, 0xA]
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807BAB4
- movs r0, 0x9
- strh r0, [r5, 0xA]
- ldr r0, _0807BAD0 @ =sub_807BAD4
- str r0, [r5]
-_0807BAB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BABC: .4byte 0x0000271a
-_0807BAC0: .4byte gTasks
-_0807BAC4: .4byte gPlttBufferFaded
-_0807BAC8: .4byte 0x0000010d
-_0807BACC: .4byte 0x0000010f
-_0807BAD0: .4byte sub_807BAD4
- thumb_func_end sub_807BA24
-
- thumb_func_start sub_807BAD4
-sub_807BAD4: @ 807BAD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BB04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- adds r3, r0, 0
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0807BB0C
- ldr r0, _0807BB08 @ =sub_807BB24
- str r0, [r2]
- movs r0, 0
- strh r0, [r2, 0xA]
- b _0807BB1C
- .align 2, 0
-_0807BB04: .4byte gTasks
-_0807BB08: .4byte sub_807BB24
-_0807BB0C:
- lsls r0, r3, 24
- lsrs r0, 24
- ldr r2, _0807BB20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BB1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB20: .4byte REG_BLDALPHA
- thumb_func_end sub_807BAD4
-
- thumb_func_start sub_807BB24
-sub_807BB24: @ 807BB24
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0807BB64 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x25
- bne _0807BB6C
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807BB68 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _0807BB7E
- .align 2, 0
-_0807BB64: .4byte gTasks
-_0807BB68: .4byte gSprites
-_0807BB6C:
- cmp r0, 0x27
- bne _0807BB7E
- ldr r0, _0807BB84 @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_0807BB7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB84: .4byte REG_BLDCNT
- thumb_func_end sub_807BB24
-
- thumb_func_start sub_807BB88
-sub_807BB88: @ 807BB88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _0807BBA8 @ =0x02017840
- ldrh r0, [r0]
- subs r0, 0xF
- cmp r0, 0x2B
- bls _0807BB9C
- b _0807BD20
-_0807BB9C:
- lsls r0, 2
- ldr r1, _0807BBAC @ =_0807BBB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807BBA8: .4byte 0x02017840
-_0807BBAC: .4byte _0807BBB0
- .align 2, 0
-_0807BBB0:
- .4byte _0807BC60
- .4byte _0807BC66
- .4byte _0807BC6C
- .4byte _0807BC72
- .4byte _0807BC78
- .4byte _0807BC7E
- .4byte _0807BC84
- .4byte _0807BC8A
- .4byte _0807BC90
- .4byte _0807BC96
- .4byte _0807BC9C
- .4byte _0807BCA2
- .4byte _0807BCA8
- .4byte _0807BCAE
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BCB4
- .4byte _0807BCB8
- .4byte _0807BCBC
- .4byte _0807BCC0
- .4byte _0807BCC4
- .4byte _0807BCC8
- .4byte _0807BCCC
- .4byte _0807BCD0
- .4byte _0807BCD8
- .4byte _0807BCE0
- .4byte _0807BCE8
- .4byte _0807BCF0
- .4byte _0807BCF8
- .4byte _0807BD00
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD08
- .4byte _0807BD0C
- .4byte _0807BD10
- .4byte _0807BD18
-_0807BC60:
- movs r5, 0
- movs r2, 0
- b _0807BD28
-_0807BC66:
- movs r5, 0
- movs r2, 0x1
- b _0807BD28
-_0807BC6C:
- movs r5, 0
- movs r2, 0x3
- b _0807BD28
-_0807BC72:
- movs r5, 0
- movs r2, 0x5
- b _0807BD28
-_0807BC78:
- movs r5, 0
- movs r2, 0x6
- b _0807BD28
-_0807BC7E:
- movs r5, 0
- movs r2, 0x2
- b _0807BD28
-_0807BC84:
- movs r5, 0
- movs r2, 0x4
- b _0807BD28
-_0807BC8A:
- movs r5, 0x1
- movs r2, 0
- b _0807BD28
-_0807BC90:
- movs r5, 0x1
- movs r2, 0x1
- b _0807BD28
-_0807BC96:
- movs r5, 0x1
- movs r2, 0x3
- b _0807BD28
-_0807BC9C:
- movs r5, 0x1
- movs r2, 0x5
- b _0807BD28
-_0807BCA2:
- movs r5, 0x1
- movs r2, 0x6
- b _0807BD28
-_0807BCA8:
- movs r5, 0x1
- movs r2, 0x2
- b _0807BD28
-_0807BCAE:
- movs r5, 0x1
- movs r2, 0x4
- b _0807BD28
-_0807BCB4:
- movs r5, 0
- b _0807BCD2
-_0807BCB8:
- movs r5, 0
- b _0807BCDA
-_0807BCBC:
- movs r5, 0
- b _0807BCE2
-_0807BCC0:
- movs r5, 0
- b _0807BCEA
-_0807BCC4:
- movs r5, 0
- b _0807BCF2
-_0807BCC8:
- movs r5, 0
- b _0807BCFA
-_0807BCCC:
- movs r5, 0
- b _0807BD02
-_0807BCD0:
- movs r5, 0x1
-_0807BCD2:
- movs r2, 0
- movs r3, 0x1
- b _0807BD28
-_0807BCD8:
- movs r5, 0x1
-_0807BCDA:
- movs r2, 0x1
- movs r3, 0x1
- b _0807BD28
-_0807BCE0:
- movs r5, 0x1
-_0807BCE2:
- movs r2, 0x3
- movs r3, 0x1
- b _0807BD28
-_0807BCE8:
- movs r5, 0x1
-_0807BCEA:
- movs r2, 0x5
- movs r3, 0x1
- b _0807BD28
-_0807BCF0:
- movs r5, 0x1
-_0807BCF2:
- movs r2, 0x6
- movs r3, 0x1
- b _0807BD28
-_0807BCF8:
- movs r5, 0x1
-_0807BCFA:
- movs r2, 0x2
- movs r3, 0x1
- b _0807BD28
-_0807BD00:
- movs r5, 0x1
-_0807BD02:
- movs r2, 0x4
- movs r3, 0x1
- b _0807BD28
-_0807BD08:
- movs r5, 0
- b _0807BD12
-_0807BD0C:
- movs r5, 0
- b _0807BD1A
-_0807BD10:
- movs r5, 0x1
-_0807BD12:
- movs r2, 0xFF
- movs r3, 0
- b _0807BD28
-_0807BD18:
- movs r5, 0x1
-_0807BD1A:
- movs r2, 0xFF
- movs r3, 0x1
- b _0807BD28
-_0807BD20:
- adds r0, r4, 0
- bl move_anim_task_del
- b _0807BD4A
-_0807BD28:
- ldr r0, _0807BD50 @ =gUnknown_03004B00
- movs r1, 0
- strh r5, [r0]
- strh r2, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r3, [r0, 0x8]
- ldr r1, _0807BD54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807BD58 @ =sub_80E32E0
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_0807BD4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD50: .4byte gUnknown_03004B00
-_0807BD54: .4byte gTasks
-_0807BD58: .4byte sub_80E32E0
- thumb_func_end sub_807BB88
-
- thumb_func_start move_anim_start_t2
-move_anim_start_t2: @ 807BD5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0807BD98 @ =gUnknown_0202F7C8
- strb r4, [r0]
- ldr r0, _0807BD9C @ =gUnknown_0202F7C9
- strb r4, [r0]
- ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
- movs r2, 0
- bl move_something
- ldr r0, _0807BDA4 @ =sub_807BDAC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BDA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD98: .4byte gUnknown_0202F7C8
-_0807BD9C: .4byte gUnknown_0202F7C9
-_0807BDA0: .4byte gBattleAnims_StatusConditions
-_0807BDA4: .4byte sub_807BDAC
-_0807BDA8: .4byte gTasks
- thumb_func_end move_anim_start_t2
-
- thumb_func_start sub_807BDAC
-sub_807BDAC: @ 807BDAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807BDF0 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0807BDF4 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807BDEA
- ldr r1, _0807BDF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0807BDFC @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0807BDEA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BDF0: .4byte gUnknown_0202F7AC
-_0807BDF4: .4byte gUnknown_0202F7B1
-_0807BDF8: .4byte gTasks
-_0807BDFC: .4byte 0x02017810
- thumb_func_end sub_807BDAC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
index ad1e71be5..16899bf2e 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -342,7 +342,7 @@ FldEff_RockSmash: @ 810B55C
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x13
- bl sav12_xor_increment
+ bl IncrementGameStat
movs r0, 0
pop {r1}
bx r1
@@ -423,7 +423,7 @@ FldEff_UseDig: @ 810B5F8
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
- bl sub_81473B8
+ bl ShouldDoBrailleDigEffect
lsls r0, 24
cmp r0, 0
bne _0810B624
@@ -443,12 +443,12 @@ sub_810B634: @ 810B634
push {r4,lr}
movs r0, 0x26
bl FieldEffectActiveListRemove
- bl sub_81473B8
+ bl ShouldDoBrailleDigEffect
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _0810B64E
- bl sub_8147408
+ bl DoBrailleDigEffect
b _0810B666
_0810B64E:
ldr r0, _0810B66C @ =task08_080A1C44
@@ -471,9393 +471,4 @@ _0810B66C: .4byte task08_080A1C44
_0810B670: .4byte gTasks
thumb_func_end sub_810B634
- thumb_func_start sub_810B674
-sub_810B674: @ 810B674
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810B674
-
- thumb_func_start sub_810B68C
-sub_810B68C: @ 810B68C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
- ldr r2, _0810B6B4 @ =0x06007800
- ldr r0, _0810B6B8 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0810B6BC @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
-_0810B6B4: .4byte 0x06007800
-_0810B6B8: .4byte 0x040000d4
-_0810B6BC: .4byte 0x80000400
- thumb_func_end sub_810B68C
-
- thumb_func_start sub_810B6C0
-sub_810B6C0: @ 810B6C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0810B6DC @ =gMain
- ldr r1, _0810B6E0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _0810B6D2
- b _0810B960
-_0810B6D2:
- lsls r0, 2
- ldr r1, _0810B6E4 @ =_0810B6E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B6DC: .4byte gMain
-_0810B6E0: .4byte 0x0000043c
-_0810B6E4: .4byte _0810B6E8
- .align 2, 0
-_0810B6E8:
- .4byte _0810B734
- .4byte _0810B764
- .4byte _0810B76A
- .4byte _0810B78C
- .4byte _0810B792
- .4byte _0810B7B4
- .4byte _0810B7C0
- .4byte _0810B7DC
- .4byte _0810B7E8
- .4byte _0810B804
- .4byte _0810B810
- .4byte _0810B830
- .4byte _0810B84C
- .4byte _0810B86A
- .4byte _0810B894
- .4byte _0810B89E
- .4byte _0810B8C4
- .4byte _0810B914
- .4byte _0810B934
-_0810B734:
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _0810B754 @ =REG_BG2CNT
- ldr r2, _0810B758 @ =0x00000f0a
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0810B75C @ =gMain
- ldr r0, _0810B760 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B754: .4byte REG_BG2CNT
-_0810B758: .4byte 0x00000f0a
-_0810B75C: .4byte gMain
-_0810B760: .4byte 0x0000043c
-_0810B764:
- bl remove_some_task
- b _0810B91C
-_0810B76A:
- bl ResetPaletteFade
- ldr r2, _0810B780 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _0810B784 @ =gMain
- ldr r0, _0810B788 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B780: .4byte gPaletteFade
-_0810B784: .4byte gMain
-_0810B788: .4byte 0x0000043c
-_0810B78C:
- bl ResetSpriteData
- b _0810B91C
-_0810B792:
- ldr r0, _0810B7A8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0810B79E
- bl ResetTasks
-_0810B79E:
- ldr r1, _0810B7AC @ =gMain
- ldr r0, _0810B7B0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7A8: .4byte gUnknown_02039244
-_0810B7AC: .4byte gMain
-_0810B7B0: .4byte 0x0000043c
-_0810B7B4:
- ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
- bl SetUpWindowConfig
- b _0810B91C
- .align 2, 0
-_0810B7BC: .4byte gWindowConfig_81E6E34
-_0810B7C0:
- ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
- bl SetUpWindowConfig
- ldr r1, _0810B7D4 @ =gMain
- ldr r0, _0810B7D8 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7D0: .4byte gWindowConfig_81E6E50
-_0810B7D4: .4byte gMain
-_0810B7D8: .4byte 0x0000043c
-_0810B7DC:
- ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B7E4: .4byte gWindowConfig_81E6E34
-_0810B7E8:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B7F2
- b _0810B960
-_0810B7F2:
- ldr r1, _0810B7FC @ =gMain
- ldr r0, _0810B800 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7FC: .4byte gMain
-_0810B800: .4byte 0x0000043c
-_0810B804:
- ldr r0, _0810B80C @ =gWindowConfig_81E6E50
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B80C: .4byte gWindowConfig_81E6E50
-_0810B810:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B81A
- b _0810B960
-_0810B81A:
- ldr r0, _0810B828 @ =0x02000000
- ldr r1, _0810B82C @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0810B91C
- .align 2, 0
-_0810B828: .4byte 0x02000000
-_0810B82C: .4byte 0x0001ffff
-_0810B830:
- bl sub_810B998
- lsls r0, 24
- cmp r0, 0
- bne _0810B83C
- b _0810B960
-_0810B83C:
- ldr r1, _0810B844 @ =gMain
- ldr r0, _0810B848 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B844: .4byte gMain
-_0810B848: .4byte 0x0000043c
-_0810B84C:
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- movs r0, 0
- movs r1, 0xB0
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
- movs r0, 0x1
- movs r1, 0xB0
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
- b _0810B91C
-_0810B86A:
- movs r0, 0x38
- movs r1, 0x40
- movs r2, 0
- bl sub_810BA50
- ldr r1, _0810B884 @ =0x02000000
- ldr r2, _0810B888 @ =0x0001fffe
- adds r1, r2
- strb r0, [r1]
- ldr r1, _0810B88C @ =gMain
- ldr r0, _0810B890 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B884: .4byte 0x02000000
-_0810B888: .4byte 0x0001fffe
-_0810B88C: .4byte gMain
-_0810B890: .4byte 0x0000043c
-_0810B894:
- bl sub_810BC98
- bl sub_810BD08
- b _0810B91C
-_0810B89E:
- bl sub_810BB0C
- bl sub_810BB30
- ldr r0, _0810B8B8 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- ldr r1, _0810B8BC @ =gMain
- ldr r0, _0810B8C0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8B8: .4byte gUnknown_02039248
-_0810B8BC: .4byte gMain
-_0810B8C0: .4byte 0x0000043c
-_0810B8C4:
- ldr r3, _0810B8FC @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0810B900 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0810B904 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0810B908 @ =sub_810B68C
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0810B90C @ =gMain
- ldr r0, _0810B910 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8FC: .4byte 0x04000208
-_0810B900: .4byte 0x04000200
-_0810B904: .4byte REG_DISPSTAT
-_0810B908: .4byte sub_810B68C
-_0810B90C: .4byte gMain
-_0810B910: .4byte 0x0000043c
-_0810B914:
- bl sub_8055870
- cmp r0, 0x1
- beq _0810B960
-_0810B91C:
- ldr r1, _0810B92C @ =gMain
- ldr r2, _0810B930 @ =0x0000043c
- adds r1, r2
-_0810B922:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810B960
- .align 2, 0
-_0810B92C: .4byte gMain
-_0810B930: .4byte 0x0000043c
-_0810B934:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0810B958 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0810B95C @ =sub_810B674
- bl SetMainCallback2
- movs r0, 0x1
- b _0810B962
- .align 2, 0
-_0810B958: .4byte gPaletteFade
-_0810B95C: .4byte sub_810B674
-_0810B960:
- movs r0, 0
-_0810B962:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810B6C0
-
- thumb_func_start sub_810B96C
-sub_810B96C: @ 810B96C
- push {lr}
-_0810B96E:
- bl sub_810B6C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B988
- ldr r0, _0810B984 @ =sub_810BF7C
- movs r1, 0
- bl CreateTask
- b _0810B994
- .align 2, 0
-_0810B984: .4byte sub_810BF7C
-_0810B988:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B96E
-_0810B994:
- pop {r0}
- bx r0
- thumb_func_end sub_810B96C
-
- thumb_func_start sub_810B998
-sub_810B998: @ 810B998
- push {lr}
- ldr r0, _0810B9B0 @ =0x02000000
- ldr r1, _0810B9B4 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810BA48
- lsls r0, 2
- ldr r1, _0810B9B8 @ =_0810B9BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B9B0: .4byte 0x02000000
-_0810B9B4: .4byte 0x0001ffff
-_0810B9B8: .4byte _0810B9BC
- .align 2, 0
-_0810B9BC:
- .4byte _0810B9D0
- .4byte _0810B9E4
- .4byte _0810B9F8
- .4byte _0810BA08
- .4byte _0810BA28
-_0810B9D0:
- ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
- ldr r1, _0810B9E0 @ =0x06008000
- bl LZDecompressVram
- b _0810BA0E
- .align 2, 0
-_0810B9DC: .4byte gMenuPokeblock_Gfx
-_0810B9E0: .4byte 0x06008000
-_0810B9E4:
- ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
- ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
- bl sub_800D238
- b _0810BA0E
- .align 2, 0
-_0810B9F0: .4byte gMenuPokeblock_Tilemap
-_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
-_0810B9F8:
- ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- b _0810BA0E
- .align 2, 0
-_0810BA04: .4byte gMenuPokeblock_Pal
-_0810BA08:
- ldr r0, _0810BA1C @ =gUnknown_083F7F74
- bl LoadCompressedObjectPic
-_0810BA0E:
- ldr r1, _0810BA20 @ =0x02000000
- ldr r0, _0810BA24 @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810BA48
- .align 2, 0
-_0810BA1C: .4byte gUnknown_083F7F74
-_0810BA20: .4byte 0x02000000
-_0810BA24: .4byte 0x0001ffff
-_0810BA28:
- ldr r0, _0810BA3C @ =gUnknown_083F7F7C
- bl LoadCompressedObjectPalette
- ldr r0, _0810BA40 @ =0x02000000
- ldr r1, _0810BA44 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0810BA4A
- .align 2, 0
-_0810BA3C: .4byte gUnknown_083F7F7C
-_0810BA40: .4byte 0x02000000
-_0810BA44: .4byte 0x0001ffff
-_0810BA48:
- movs r0, 0
-_0810BA4A:
- pop {r1}
- bx r1
- thumb_func_end sub_810B998
-
- thumb_func_start sub_810BA50
-sub_810BA50: @ 810BA50
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA78: .4byte gSpriteTemplate_83F7F84
- thumb_func_end sub_810BA50
-
- thumb_func_start sub_810BA7C
-sub_810BA7C: @ 810BA7C
- push {lr}
- ldr r1, _0810BA98 @ =gUnknown_02039244
- strb r0, [r1]
- ldrb r2, [r1]
- cmp r2, 0x2
- beq _0810BAA8
- cmp r2, 0x3
- beq _0810BAC0
- ldr r1, _0810BA9C @ =gUnknown_03000758
- ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
- str r0, [r1]
- ldr r1, _0810BAA4 @ =gUnknown_0203924C
- movs r0, 0x3
- b _0810BACA
- .align 2, 0
-_0810BA98: .4byte gUnknown_02039244
-_0810BA9C: .4byte gUnknown_03000758
-_0810BAA0: .4byte gUnknown_083F7F1C
-_0810BAA4: .4byte gUnknown_0203924C
-_0810BAA8:
- ldr r0, _0810BAB4 @ =gUnknown_03000758
- ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
- str r1, [r0]
- ldr r0, _0810BABC @ =gUnknown_0203924C
- strb r2, [r0]
- b _0810BACC
- .align 2, 0
-_0810BAB4: .4byte gUnknown_03000758
-_0810BAB8: .4byte gUnknown_083F7F1F
-_0810BABC: .4byte gUnknown_0203924C
-_0810BAC0:
- ldr r1, _0810BAD0 @ =gUnknown_03000758
- ldr r0, _0810BAD4 @ =gUnknown_083F7F21
- str r0, [r1]
- ldr r1, _0810BAD8 @ =gUnknown_0203924C
- movs r0, 0x2
-_0810BACA:
- strb r0, [r1]
-_0810BACC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAD0: .4byte gUnknown_03000758
-_0810BAD4: .4byte gUnknown_083F7F21
-_0810BAD8: .4byte gUnknown_0203924C
- thumb_func_end sub_810BA7C
-
- thumb_func_start sub_810BADC
-sub_810BADC: @ 810BADC
- push {lr}
- movs r0, 0x2
- bl sub_810BA7C
- ldr r0, _0810BAF0 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAF0: .4byte sub_810B96C
- thumb_func_end sub_810BADC
-
- thumb_func_start sub_810BAF4
-sub_810BAF4: @ 810BAF4
- push {lr}
- movs r0, 0x3
- bl sub_810BA7C
- ldr r0, _0810BB08 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB08: .4byte sub_810B96C
- thumb_func_end sub_810BAF4
-
- thumb_func_start sub_810BB0C
-sub_810BB0C: @ 810BB0C
- push {lr}
- ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB2C @ =0x00000111
- bl ItemId_GetItem
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x48
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB28: .4byte gWindowConfig_81E6E34
-_0810BB2C: .4byte 0x00000111
- thumb_func_end sub_810BB0C
-
- thumb_func_start sub_810BB30
-sub_810BB30: @ 810BB30
- push {lr}
- ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB74 @ =gContestStatsText_Spicy
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB78 @ =gContestStatsText_Dry
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _0810BB7C @ =gContestStatsText_Sweet
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- ldr r0, _0810BB80 @ =gContestStatsText_Bitter
- movs r1, 0x8
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB84 @ =gContestStatsText_Sour
- movs r1, 0x8
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB70: .4byte gWindowConfig_81E6E34
-_0810BB74: .4byte gContestStatsText_Spicy
-_0810BB78: .4byte gContestStatsText_Dry
-_0810BB7C: .4byte gContestStatsText_Sweet
-_0810BB80: .4byte gContestStatsText_Bitter
-_0810BB84: .4byte gContestStatsText_Sour
- thumb_func_end sub_810BB30
-
- thumb_func_start sub_810BB88
-sub_810BB88: @ 810BB88
- 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
- ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- mov r6, r8
- adds r0, r6, 0
- adds r0, 0x8
- cmp r6, r0
- bgt _0810BC6C
- ldr r0, _0810BBF8 @ =gStringVar1
- mov r9, r0
- ldr r1, _0810BBFC @ =gSaveBlock1
- mov r10, r1
-_0810BBB0:
- mov r1, r8
- subs r0, r6, r1
- lsls r0, 25
- lsrs r7, r0, 24
- ldr r0, _0810BC00 @ =gUnknown_02039248
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bne _0810BC08
- mov r0, r9
- ldr r1, _0810BC04 @ =gContestStatsText_StowCase
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- beq _0810BC6C
- adds r1, r7, 0x3
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xF
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- b _0810BC6C
- .align 2, 0
-_0810BBF4: .4byte gWindowConfig_81E6E34
-_0810BBF8: .4byte gStringVar1
-_0810BBFC: .4byte gSaveBlock1
-_0810BC00: .4byte gUnknown_02039248
-_0810BC04: .4byte gContestStatsText_StowCase
-_0810BC08:
- lsls r5, r6, 3
- mov r1, r10
- adds r0, r5, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0810BC7C @ =gPokeblockNames
- adds r0, r1
- ldr r1, [r0]
- mov r0, r9
- movs r2, 0x5E
- movs r3, 0
- bl sub_8072C74
- adds r4, r0, 0
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x6
- strb r0, [r4, 0x2]
- adds r4, 0x3
- ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
- adds r5, r0
- adds r0, r5, 0
- bl sub_810C9B0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- ble _0810BBB0
-_0810BC6C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BC7C: .4byte gPokeblockNames
-_0810BC80: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BB88
-
- thumb_func_start sub_810BC84
-sub_810BC84: @ 810BC84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
- pop {r0}
- bx r0
- thumb_func_end sub_810BC84
-
- thumb_func_start sub_810BC98
-sub_810BC98: @ 810BC98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- ldr r0, _0810BD00 @ =gSaveBlock1
- mov r9, r0
-_0810BCA6:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, 0x27
- bhi _0810BCE8
- lsls r1, r2, 3
- mov r2, r9
- adds r0, r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r7, r0, r2
- ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
- mov r12, r0
- adds r6, r1, r0
-_0810BCC4:
- ldrb r0, [r7]
- cmp r0, 0
- bne _0810BCDE
- ldr r3, [r6]
- ldr r4, [r6, 0x4]
- lsls r2, r5, 3
- add r2, r12
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
- str r3, [r2]
- str r4, [r2, 0x4]
-_0810BCDE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x27
- bls _0810BCC4
-_0810BCE8:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, 0x26
- bls _0810BCA6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD00: .4byte gSaveBlock1
-_0810BD04: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BC98
-
- thumb_func_start sub_810BD08
-sub_810BD08: @ 810BD08
- push {r4,r5,lr}
- ldr r1, _0810BD5C @ =gUnknown_02039248
- movs r0, 0
- strb r0, [r1, 0x2]
- movs r2, 0
- ldr r5, _0810BD60 @ =gSaveBlock1
- movs r4, 0xFF
- lsls r4, 3
- adds r3, r1, 0
-_0810BD1A:
- lsls r0, r2, 3
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810BD2C
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
-_0810BD2C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x27
- bls _0810BD1A
- ldrb r0, [r1, 0x2]
- cmp r0, 0x7
- bls _0810BD3E
- movs r0, 0x8
-_0810BD3E:
- strb r0, [r1, 0x3]
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- adds r0, 0x8
- ldrb r3, [r1, 0x2]
- cmp r0, r3
- ble _0810BD54
- cmp r2, 0
- beq _0810BD54
- subs r0, r2, 0x1
- strb r0, [r1, 0x1]
-_0810BD54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD5C: .4byte gUnknown_02039248
-_0810BD60: .4byte gSaveBlock1
- thumb_func_end sub_810BD08
-
- thumb_func_start sub_810BD64
-sub_810BD64: @ 810BD64
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _0810BDA4 @ =gUnknown_02039248
- ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
-_0810BD70:
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 5
- adds r1, r2, 0
- adds r1, 0xF
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, 0x40
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810BD70
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BDA4: .4byte gUnknown_02039248
-_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810BD64
-
- thumb_func_start sub_810BDAC
-sub_810BDAC: @ 810BDAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- cmp r0, 0
- bne _0810BDCC
- ldr r0, _0810BDC4 @ =0x00001005
- ldr r1, _0810BDC8 @ =0x00001014
- bl sub_810BD64
- b _0810BDD4
- .align 2, 0
-_0810BDC4: .4byte 0x00001005
-_0810BDC8: .4byte 0x00001014
-_0810BDCC:
- ldr r0, _0810BDE8 @ =0x00002005
- ldr r1, _0810BDEC @ =0x00002014
- bl sub_810BD64
-_0810BDD4:
- ldr r0, _0810BDF0 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0810BDF4
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _0810BDFC
- .align 2, 0
-_0810BDE8: .4byte 0x00002005
-_0810BDEC: .4byte 0x00002014
-_0810BDF0: .4byte gUnknown_02039248
-_0810BDF4:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_0810BDFC:
- ldr r2, _0810BE1C @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810BE20
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810BE20
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _0810BE28
- .align 2, 0
-_0810BE1C: .4byte gUnknown_02039248
-_0810BE20:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_0810BE28:
- movs r6, 0
- ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
- movs r0, 0xF
- mov r8, r0
-_0810BE30:
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 18
- ldr r1, _0810BE98 @ =0x000001a1
- adds r4, r1
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r5, r4, r1
- ldr r1, _0810BE9C @ =gUnknown_02039248
- ldrb r2, [r1]
- ldrb r0, [r1, 0x1]
- adds r0, r2, r0
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810BEB8
- lsls r0, 3
- ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- adds r4, r6, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_810CA9C
- lsls r0, 16
- cmp r0, 0
- ble _0810BEA4
- lsls r1, r5, 1
- adds r1, r7
- lsls r2, r6, 12
- adds r0, r2, 0
- adds r0, 0x17
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- adds r2, 0x18
- strh r2, [r0]
- b _0810BECC
- .align 2, 0
-_0810BE94: .4byte gBGTilemapBuffers + 0x1000
-_0810BE98: .4byte 0x000001a1
-_0810BE9C: .4byte gUnknown_02039248
-_0810BEA0: .4byte gSaveBlock1 + 0x7F8
-_0810BEA4:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- b _0810BECC
-_0810BEB8:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r4, r6, 0x1
-_0810BECC:
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _0810BE30
- ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BF14 @ =gUnknown_02039248
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- adds r2, r1
- ldrb r0, [r0, 0x2]
- cmp r2, r0
- beq _0810BF20
- ldr r4, _0810BF18 @ =gStringVar1
- lsls r0, r2, 3
- ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- bl sub_810C9E8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x10
- movs r3, 0x1
- bl sub_8072C14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- b _0810BF2C
- .align 2, 0
-_0810BF10: .4byte gWindowConfig_81E6E34
-_0810BF14: .4byte gUnknown_02039248
-_0810BF18: .4byte gStringVar1
-_0810BF1C: .4byte gSaveBlock1 + 0x7F8
-_0810BF20:
- movs r0, 0xB
- movs r1, 0x11
- movs r2, 0xC
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0810BF2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810BDAC
-
- thumb_func_start sub_810BF38
-sub_810BF38: @ 810BF38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0810BF6C @ =gSprites
- ldr r0, _0810BF70 @ =0x02000000
- ldr r1, _0810BF74 @ =0x0001fffe
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0810BF78 @ =sub_810C8D4
- str r1, [r0]
- adds r0, r4, 0
- bl sub_810BDAC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BF6C: .4byte gSprites
-_0810BF70: .4byte 0x02000000
-_0810BF74: .4byte 0x0001fffe
-_0810BF78: .4byte sub_810C8D4
- thumb_func_end sub_810BF38
-
- thumb_func_start sub_810BF7C
-sub_810BF7C: @ 810BF7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0810BFB8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810BF94
- b _0810C0B8
-_0810BF94:
- ldr r2, _0810BFBC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810BFCE
- ldr r4, _0810BFC0 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810BFC4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFB8: .4byte gPaletteFade
-_0810BFBC: .4byte gMain
-_0810BFC0: .4byte gUnknown_02039248
-_0810BFC4:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C0B8
- subs r0, 0x1
- b _0810C002
-_0810BFCE:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810C012
- ldr r4, _0810BFF0 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810BFF4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFF0: .4byte gUnknown_02039248
-_0810BFF4:
- ldrb r1, [r4, 0x1]
- ldrb r0, [r4]
- adds r0, r1, r0
- ldrb r2, [r4, 0x2]
- cmp r0, r2
- beq _0810C0B8
- adds r0, r1, 0x1
-_0810C002:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C00A:
- movs r0, 0
- bl sub_810BF38
- b _0810C0B8
-_0810C012:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C05C
- ldr r4, _0810C050 @ =gUnknown_02039248
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810BDAC
- ldr r1, _0810C054 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldrb r2, [r4]
- adds r1, r2
- strh r1, [r0, 0x8]
- ldr r1, _0810C058 @ =sub_810C0C8
- str r1, [r0]
- b _0810C0B8
- .align 2, 0
-_0810C050: .4byte gUnknown_02039248
-_0810C054: .4byte gTasks
-_0810C058: .4byte sub_810C0C8
-_0810C05C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C09C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810C088 @ =gUnknown_02039248
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _0810C094
- ldr r1, _0810C08C @ =gScriptResult
- ldr r2, _0810C090 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_810C31C
- b _0810C0B8
- .align 2, 0
-_0810C088: .4byte gUnknown_02039248
-_0810C08C: .4byte gScriptResult
-_0810C090: .4byte 0x0000ffff
-_0810C094:
- adds r0, r5, 0
- bl sub_810C368
- b _0810C0B8
-_0810C09C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0810C0C0 @ =gScriptResult
- ldr r2, _0810C0C4 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_810C31C
-_0810C0B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C0C0: .4byte gScriptResult
-_0810C0C4: .4byte 0x0000ffff
- thumb_func_end sub_810BF7C
-
- thumb_func_start sub_810C0C8
-sub_810C0C8: @ 810C0C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0810C0F4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C110
- ldr r4, _0810C0F8 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810C0FC
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C0F4: .4byte gMain
-_0810C0F8: .4byte gUnknown_02039248
-_0810C0FC:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- b _0810C150
-_0810C110:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C168
- ldr r4, _0810C134 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810C138
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C134: .4byte gUnknown_02039248
-_0810C138:
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
-_0810C150:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C158:
- movs r0, 0x1
- bl sub_810BF38
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_810C1C8
- b _0810C1BA
-_0810C168:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C17A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C190
-_0810C17A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- adds r0, r5, 0
- bl sub_810C23C
- b _0810C1AC
-_0810C190:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C1BA
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- movs r0, 0
- bl sub_810BDAC
-_0810C1AC:
- ldr r0, _0810C1C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C1C4 @ =sub_810BF7C
- str r0, [r1]
-_0810C1BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C1C0: .4byte gTasks
-_0810C1C4: .4byte sub_810BF7C
- thumb_func_end sub_810C0C8
-
- thumb_func_start sub_810C1C8
-sub_810C1C8: @ 810C1C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- ldr r6, _0810C22C @ =0x00001005
- cmp r1, 0
- bne _0810C1D8
- movs r6, 0x5
-_0810C1D8:
- ldr r1, _0810C230 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r2, _0810C234 @ =gUnknown_02039248
- ldrb r1, [r2, 0x1]
- ldrh r0, [r0, 0x8]
- subs r0, r1
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0x8
- bhi _0810C226
- asrs r0, r1, 16
- ldrb r2, [r2]
- cmp r0, r2
- beq _0810C226
- movs r2, 0
- lsls r0, 1
- adds r1, r0, 0x1
- lsls r5, r1, 5
- ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
- adds r0, 0x2
- lsls r4, r0, 5
-_0810C208:
- adds r0, r2, 0
- adds r0, 0xF
- adds r1, r5, r0
- lsls r1, 1
- adds r1, r3
- strh r6, [r1]
- adds r0, r4, r0
- lsls r0, 1
- adds r0, r3
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810C208
-_0810C226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C22C: .4byte 0x00001005
-_0810C230: .4byte gTasks
-_0810C234: .4byte gUnknown_02039248
-_0810C238: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810C1C8
-
- thumb_func_start sub_810C23C
-sub_810C23C: @ 810C23C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r7, _0810C25C @ =gUnknown_02039248
- ldrb r0, [r7]
- ldrb r2, [r7, 0x1]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r7, 0x2]
- cmp r0, r2
- bne _0810C260
- movs r0, 0
- bl sub_810BDAC
- b _0810C2A2
- .align 2, 0
-_0810C25C: .4byte gUnknown_02039248
-_0810C260:
- ldr r4, _0810C2A8 @ =gSaveBlock1
- lsls r3, r0, 3
- movs r0, 0xFF
- lsls r0, 3
- adds r4, r0
- adds r3, r4
- ldr r5, [r3]
- ldr r6, [r3, 0x4]
- ldr r0, _0810C2AC @ =gTasks
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 3
- adds r2, r0
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r3]
- str r1, [r3, 0x4]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
- str r6, [r0, 0x4]
- ldrb r0, [r7, 0x1]
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
-_0810C2A2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C2A8: .4byte gSaveBlock1
-_0810C2AC: .4byte gTasks
- thumb_func_end sub_810C23C
-
- thumb_func_start sub_810C2B0
-sub_810C2B0: @ 810C2B0
- push {lr}
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl BuyMenuFreeMemory
- pop {r0}
- bx r0
- thumb_func_end sub_810C2B0
-
- thumb_func_start sub_810C2C8
-sub_810C2C8: @ 810C2C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810C308 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C300
- ldr r4, _0810C30C @ =gUnknown_02039244
- ldrb r0, [r4]
- cmp r0, 0x3
- bne _0810C2E8
- ldr r1, _0810C310 @ =gUnknown_0300485C
- ldr r0, _0810C314 @ =sub_8080990
- str r0, [r1]
-_0810C2E8:
- bl sub_810C2B0
- ldr r0, _0810C318 @ =gUnknown_083F7EA8
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0810C300:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C308: .4byte gPaletteFade
-_0810C30C: .4byte gUnknown_02039244
-_0810C310: .4byte gUnknown_0300485C
-_0810C314: .4byte sub_8080990
-_0810C318: .4byte gUnknown_083F7EA8
- thumb_func_end sub_810C2C8
-
- thumb_func_start sub_810C31C
-sub_810C31C: @ 810C31C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810C358 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C342
- ldr r0, _0810C35C @ =gScriptItemId
- strh r5, [r0]
-_0810C342:
- ldr r0, _0810C360 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C364 @ =sub_810C2C8
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C358: .4byte gUnknown_02039244
-_0810C35C: .4byte gScriptItemId
-_0810C360: .4byte gTasks
-_0810C364: .4byte sub_810C2C8
- thumb_func_end sub_810C31C
-
- thumb_func_start sub_810C368
-sub_810C368: @ 810C368
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _0810C3E8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C37C
- movs r4, 0x2
-_0810C37C:
- movs r0, 0
- bl sub_80F98A4
- movs r0, 0x1
- bl sub_80F98A4
- ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- adds r1, r4, 0x4
- movs r0, 0x7
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- adds r4, 0x5
- ldr r5, _0810C3F0 @ =gUnknown_0203924C
- ldrb r2, [r5]
- ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
- ldr r0, _0810C3F8 @ =gUnknown_03000758
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl InitMenu
- ldr r2, _0810C3FC @ =gScriptItemId
- ldr r1, _0810C400 @ =gUnknown_02039248
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- adds r0, r1
- strh r0, [r2]
- ldr r1, _0810C404 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C408 @ =sub_810C40C
- str r1, [r0]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C3E8: .4byte gUnknown_02039244
-_0810C3EC: .4byte gWindowConfig_81E6E50
-_0810C3F0: .4byte gUnknown_0203924C
-_0810C3F4: .4byte gUnknown_083F7EF4
-_0810C3F8: .4byte gUnknown_03000758
-_0810C3FC: .4byte gScriptItemId
-_0810C400: .4byte gUnknown_02039248
-_0810C404: .4byte gTasks
-_0810C408: .4byte sub_810C40C
- thumb_func_end sub_810C368
-
- thumb_func_start sub_810C40C
-sub_810C40C: @ 810C40C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0810C43C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C440
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C43C: .4byte gMain
-_0810C440:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C46C
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C468 @ =gUnknown_0203924C
- ldrb r1, [r1]
- subs r1, 0x1
- cmp r0, r1
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C468: .4byte gUnknown_0203924C
-_0810C46C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C4A8
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C4A4 @ =gUnknown_03000758
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0810C4BC
- .align 2, 0
-_0810C4A0: .4byte gUnknown_083F7EF4
-_0810C4A4: .4byte gUnknown_03000758
-_0810C4A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810C748
-_0810C4BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810C40C
-
- thumb_func_start sub_810C4C4
-sub_810C4C4: @ 810C4C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810C4F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C4F0
- bl sub_810C2B0
- ldr r0, _0810C4FC @ =gScriptItemId
- ldrh r0, [r0]
- lsls r0, 3
- ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- ldr r1, _0810C504 @ =sub_810B96C
- bl sub_8136130
- adds r0, r4, 0
- bl DestroyTask
-_0810C4F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C4F8: .4byte gPaletteFade
-_0810C4FC: .4byte gScriptItemId
-_0810C500: .4byte gSaveBlock1 + 0x7F8
-_0810C504: .4byte sub_810B96C
- thumb_func_end sub_810C4C4
-
- thumb_func_start sub_810C508
-sub_810C508: @ 810C508
- 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, _0810C538 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C53C @ =sub_810C4C4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C538: .4byte gTasks
-_0810C53C: .4byte sub_810C4C4
- thumb_func_end sub_810C508
-
- thumb_func_start sub_810C540
-sub_810C540: @ 810C540
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- bl sub_8072DEC
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0810C5A4 @ =gStringVar1
- ldr r4, _0810C5A8 @ =gPokeblockNames
- ldr r3, _0810C5AC @ =gSaveBlock1
- ldr r2, _0810C5B0 @ =gUnknown_02039248
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r4, _0810C5B4 @ =gStringVar4
- ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C5BC @ =sub_810C5EC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5A0: .4byte gWindowConfig_81E6E50
-_0810C5A4: .4byte gStringVar1
-_0810C5A8: .4byte gPokeblockNames
-_0810C5AC: .4byte gSaveBlock1
-_0810C5B0: .4byte gUnknown_02039248
-_0810C5B4: .4byte gStringVar4
-_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
-_0810C5BC: .4byte sub_810C5EC
- thumb_func_end sub_810C540
-
- thumb_func_start sub_810C5C0
-sub_810C5C0: @ 810C5C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C5E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C5E8 @ =sub_810C540
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5E4: .4byte gTasks
-_0810C5E8: .4byte sub_810C540
- thumb_func_end sub_810C5C0
-
- thumb_func_start sub_810C5EC
-sub_810C5EC: @ 810C5EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810C60C @ =gUnknown_083F7F24
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C60C: .4byte gUnknown_083F7F24
- thumb_func_end sub_810C5EC
-
- thumb_func_start sub_810C610
-sub_810C610: @ 810C610
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C658 @ =gUnknown_02039248
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- ldr r5, _0810C65C @ =gStringVar4
- ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C664 @ =sub_810C704
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- bl sub_810BC98
- bl sub_810BD08
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C658: .4byte gUnknown_02039248
-_0810C65C: .4byte gStringVar4
-_0810C660: .4byte gContestStatsText_WasThrownAway
-_0810C664: .4byte sub_810C704
- thumb_func_end sub_810C610
-
- thumb_func_start sub_810C668
-sub_810C668: @ 810C668
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0810C6CC @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810C698
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810C698
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
-_0810C698:
- ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0810C6D4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C6D8 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C6CC: .4byte gUnknown_02039248
-_0810C6D0: .4byte gWindowConfig_81E6E50
-_0810C6D4: .4byte gTasks
-_0810C6D8: .4byte sub_810BF7C
- thumb_func_end sub_810C668
-
- thumb_func_start sub_810C6DC
-sub_810C6DC: @ 810C6DC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810C700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C6F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C6FC
-_0810C6F6:
- adds r0, r2, 0
- bl sub_810C668
-_0810C6FC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810C700: .4byte gMain
- thumb_func_end sub_810C6DC
-
- thumb_func_start sub_810C704
-sub_810C704: @ 810C704
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810C738 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810C73C @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C740 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C744 @ =sub_810C6DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C738: .4byte gWindowConfig_81E6E34
-_0810C73C: .4byte gUnknown_02039248
-_0810C740: .4byte gTasks
-_0810C744: .4byte sub_810C6DC
- thumb_func_end sub_810C704
-
- thumb_func_start sub_810C748
-sub_810C748: @ 810C748
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- bl sub_8072DEC
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C780 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C784 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C780: .4byte gTasks
-_0810C784: .4byte sub_810BF7C
- thumb_func_end sub_810C748
-
- thumb_func_start sub_810C788
-sub_810C788: @ 810C788
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810C834 @ =gEnemyParty
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _0810C838 @ =gScriptItemId
- ldrh r1, [r7]
- lsls r1, 3
- ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
- adds r1, r5
- bl sub_810CAE4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810C840 @ =gUnknown_030041C0
- ldr r2, _0810C844 @ =gPokeblockNames
- ldr r1, _0810C848 @ =0xfffff808
- adds r5, r1
- ldrh r1, [r7]
- lsls r1, 3
- adds r1, r5
- movs r6, 0xFF
- lsls r6, 3
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldrb r0, [r7]
- bl sub_810CA6C
- ldrh r0, [r7]
- lsls r0, 3
- adds r0, r5
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 8
- strh r0, [r7]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0
- bne _0810C7F4
- adds r0, 0x1
- strh r0, [r7]
-_0810C7F4:
- cmp r4, 0
- ble _0810C7FE
- ldrh r0, [r7]
- adds r0, 0x2
- strh r0, [r7]
-_0810C7FE:
- cmp r4, 0
- bge _0810C808
- ldrh r0, [r7]
- adds r0, 0x3
- strh r0, [r7]
-_0810C808:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C84C @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C850 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C834: .4byte gEnemyParty
-_0810C838: .4byte gScriptItemId
-_0810C83C: .4byte gSaveBlock1 + 0x7F8
-_0810C840: .4byte gUnknown_030041C0
-_0810C844: .4byte gPokeblockNames
-_0810C848: .4byte 0xfffff808
-_0810C84C: .4byte gTasks
-_0810C850: .4byte sub_810C2C8
- thumb_func_end sub_810C788
-
- thumb_func_start sub_810C854
-sub_810C854: @ 810C854
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0810C8B8 @ =gScriptItemId
- ldrb r0, [r4]
- bl SafariZoneActivatePokeblockFeeder
- ldr r0, _0810C8BC @ =gStringVar1
- ldr r3, _0810C8C0 @ =gPokeblockNames
- ldr r2, _0810C8C4 @ =gSaveBlock1
- ldrh r1, [r4]
- lsls r1, 3
- adds r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
- ldr r1, _0810C8C8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C8CC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C8D0 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C8B8: .4byte gScriptItemId
-_0810C8BC: .4byte gStringVar1
-_0810C8C0: .4byte gPokeblockNames
-_0810C8C4: .4byte gSaveBlock1
-_0810C8C8: .4byte gScriptResult
-_0810C8CC: .4byte gTasks
-_0810C8D0: .4byte sub_810C2C8
- thumb_func_end sub_810C854
-
- thumb_func_start sub_810C8D4
-sub_810C8D4: @ 810C8D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _0810C8E4
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0810C8E4:
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _0810C8F2
- cmp r5, 0x1
- beq _0810C918
- b _0810C944
-_0810C8F2:
- 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, _0810C914 @ =gUnknown_083F7F70
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- b _0810C944
- .align 2, 0
-_0810C914: .4byte gUnknown_083F7F70
-_0810C918:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _0810C944
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- strh r2, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, _0810C94C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0810C944:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C94C: .4byte SpriteCallbackDummy
- thumb_func_end sub_810C8D4
-
- thumb_func_start sub_810C950
-sub_810C950: @ 810C950
- lsls r0, 24
- ldr r1, _0810C988 @ =gSaveBlock1
- lsrs r0, 21
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _0810C98C @ =0x000007f9
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0810C990 @ =0x000007fe
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0810C988: .4byte gSaveBlock1
-_0810C98C: .4byte 0x000007f9
-_0810C990: .4byte 0x000007fe
- thumb_func_end sub_810C950
-
- thumb_func_start sub_810C994
-sub_810C994: @ 810C994
- push {r4,lr}
- movs r4, 0
-_0810C998:
- adds r0, r4, 0
- bl sub_810C950
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x27
- bls _0810C998
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810C994
-
- thumb_func_start sub_810C9B0
-sub_810C9B0: @ 810C9B0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_810CA9C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x1
-_0810C9C0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bcs _0810C9D8
- adds r5, r0, 0
-_0810C9D8:
- adds r1, r4, 0
- cmp r1, 0x4
- bls _0810C9C0
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810C9B0
-
- thumb_func_start sub_810C9E8
-sub_810C9E8: @ 810C9E8
- push {lr}
- movs r1, 0x6
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- bls _0810C9FA
- movs r0, 0x63
-_0810C9FA:
- pop {r1}
- bx r1
- thumb_func_end sub_810C9E8
-
- thumb_func_start sub_810CA00
-sub_810CA00: @ 810CA00
- push {lr}
- movs r1, 0
- ldr r3, _0810CA1C @ =gSaveBlock1
- movs r2, 0xFF
- lsls r2, 3
-_0810CA0A:
- lsls r0, r1, 3
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CA20
- lsls r0, r1, 24
- asrs r0, 24
- b _0810CA2E
- .align 2, 0
-_0810CA1C: .4byte gSaveBlock1
-_0810CA20:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x27
- bls _0810CA0A
- movs r0, 0x1
- negs r0, r0
-_0810CA2E:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA00
-
- thumb_func_start sub_810CA34
-sub_810CA34: @ 810CA34
- push {r4,lr}
- adds r4, r0, 0
- bl sub_810CA00
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0810CA64
- ldr r0, _0810CA60 @ =gSaveBlock1
- lsls r2, 3
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- adds r2, r0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x1
- b _0810CA66
- .align 2, 0
-_0810CA60: .4byte gSaveBlock1
-_0810CA64:
- movs r0, 0
-_0810CA66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810CA34
-
- thumb_func_start sub_810CA6C
-sub_810CA6C: @ 810CA6C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0810CA90 @ =gSaveBlock1
- lsls r0, r2, 3
- adds r0, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810CA94
- adds r0, r2, 0
- bl sub_810C950
- movs r0, 0x1
- b _0810CA96
- .align 2, 0
-_0810CA90: .4byte gSaveBlock1
-_0810CA94:
- movs r0, 0
-_0810CA96:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA6C
-
- thumb_func_start sub_810CA9C
-sub_810CA9C: @ 810CA9C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0
- bne _0810CAAC
- ldrb r0, [r0]
- b _0810CADE
-_0810CAAC:
- cmp r1, 0x1
- bne _0810CAB4
- ldrb r0, [r0, 0x1]
- b _0810CADE
-_0810CAB4:
- cmp r1, 0x2
- bne _0810CABC
- ldrb r0, [r0, 0x2]
- b _0810CADE
-_0810CABC:
- cmp r1, 0x3
- bne _0810CAC4
- ldrb r0, [r0, 0x3]
- b _0810CADE
-_0810CAC4:
- cmp r1, 0x4
- bne _0810CACC
- ldrb r0, [r0, 0x4]
- b _0810CADE
-_0810CACC:
- cmp r1, 0x5
- bne _0810CAD4
- ldrb r0, [r0, 0x5]
- b _0810CADE
-_0810CAD4:
- cmp r2, 0x6
- beq _0810CADC
- movs r0, 0
- b _0810CADE
-_0810CADC:
- ldrb r0, [r0, 0x6]
-_0810CADE:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA9C
-
- thumb_func_start sub_810CAE4
-sub_810CAE4: @ 810CAE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- movs r4, 0
- ldr r1, _0810CB40 @ =gUnknown_083F7E28
- mov r9, r1
- lsls r1, r0, 2
- adds r7, r1, r0
-_0810CAFE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- adds r1, r5, 0
- bl sub_810CA9C
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0810CB2A
- adds r0, r7, r4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r1, r0
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
-_0810CB2A:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _0810CAFE
- lsls r0, r6, 16
- asrs r0, 16
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810CB40: .4byte gUnknown_083F7E28
- thumb_func_end sub_810CAE4
-
- thumb_func_start sub_810CB44
-sub_810CB44: @ 810CB44
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r1, _0810CB64 @ =gPokeblockNames
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CB64: .4byte gPokeblockNames
- thumb_func_end sub_810CB44
-
- thumb_func_start sub_810CB68
-sub_810CB68: @ 810CB68
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r7, _0810CB98 @ =gPokeblockNames
-_0810CB74:
- lsls r1, r4, 3
- ldr r0, _0810CB9C @ =gUnknown_083F7F9C
- adds r1, r0
- adds r0, r5, 0
- bl sub_810CAE4
- lsls r0, 16
- cmp r0, 0
- ble _0810CBA0
- adds r0, r4, 0x1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- movs r0, 0x1
- b _0810CBAC
- .align 2, 0
-_0810CB98: .4byte gPokeblockNames
-_0810CB9C: .4byte gUnknown_083F7F9C
-_0810CBA0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810CB74
- movs r0, 0
-_0810CBAC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CB68
-
- thumb_func_start SetUpFieldMove_Flash
-SetUpFieldMove_Flash: @ 810CBB4
- push {lr}
- ldr r0, _0810CBDC @ =gMapHeader
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0810CBF4
- ldr r0, _0810CBE0 @ =0x00000828
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810CBF4
- ldr r1, _0810CBE4 @ =gUnknown_0300485C
- ldr r0, _0810CBE8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0810CBEC @ =gUnknown_03005CE4
- ldr r0, _0810CBF0 @ =sub_810CBFC
- str r0, [r1]
- movs r0, 0x1
- b _0810CBF6
- .align 2, 0
-_0810CBDC: .4byte gMapHeader
-_0810CBE0: .4byte 0x00000828
-_0810CBE4: .4byte gUnknown_0300485C
-_0810CBE8: .4byte sub_808AB90
-_0810CBEC: .4byte gUnknown_03005CE4
-_0810CBF0: .4byte sub_810CBFC
-_0810CBF4:
- movs r0, 0
-_0810CBF6:
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Flash
-
- thumb_func_start sub_810CBFC
-sub_810CBFC: @ 810CBFC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CC24 @ =gUnknown_0202FF84
- ldr r1, _0810CC28 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r2]
- ldr r2, _0810CC2C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810CC30 @ =sub_810CC34
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC24: .4byte gUnknown_0202FF84
-_0810CC28: .4byte gUnknown_03005CE0
-_0810CC2C: .4byte gTasks
-_0810CC30: .4byte sub_810CC34
- thumb_func_end sub_810CBFC
-
- thumb_func_start sub_810CC34
-sub_810CC34: @ 810CC34
- push {lr}
- movs r0, 0xCF
- bl PlaySE
- ldr r0, _0810CC4C @ =0x00000828
- bl FlagSet
- ldr r0, _0810CC50 @ =gUnknown_081B694A
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC4C: .4byte 0x00000828
-_0810CC50: .4byte gUnknown_081B694A
- thumb_func_end sub_810CC34
-
- thumb_func_start sub_810CC54
-sub_810CC54: @ 810CC54
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810CC54
-
- thumb_func_start sub_810CC6C
-sub_810CC6C: @ 810CC6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_810CC6C
-
- thumb_func_start sub_810CC80
-sub_810CC80: @ 810CC80
- push {r4,lr}
- sub sp, 0x8
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _0810CD34 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD38 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD3C @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r4, [r0]
- str r0, [r1]
- ldr r0, _0810CD40 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _0810CD44 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r3, _0810CD48 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0810CD4C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _0810CD50 @ =sub_810CC6C
- bl SetVBlankCallback
- ldr r0, _0810CD54 @ =sub_810CC54
- bl SetMainCallback2
- bl sub_810CD5C
- lsls r0, 24
- cmp r0, 0
- bne _0810CD2A
- ldr r0, _0810CD58 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CD2A:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CD34: .4byte 0x040000d4
-_0810CD38: .4byte 0x8100c000
-_0810CD3C: .4byte 0x85000100
-_0810CD40: .4byte 0x05000002
-_0810CD44: .4byte 0x810001ff
-_0810CD48: .4byte 0x04000208
-_0810CD4C: .4byte 0x04000200
-_0810CD50: .4byte sub_810CC6C
-_0810CD54: .4byte sub_810CC54
-_0810CD58: .4byte gMain
- thumb_func_end sub_810CC80
-
- thumb_func_start sub_810CD5C
-sub_810CD5C: @ 810CD5C
- push {r4-r7,lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r6, r0, 24
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r4, _0810CD9C @ =gUnknown_083F7FC4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810CDB0
- adds r7, r4, 0
- adds r0, r4, 0x4
- mov r12, r0
-_0810CD7E:
- lsls r2, r3, 3
- adds r1, r2, r7
- ldrb r0, [r1]
- cmp r0, r6
- bne _0810CDA0
- ldrb r0, [r1, 0x1]
- cmp r0, r5
- bne _0810CDA0
- mov r1, r12
- adds r0, r2, r1
- ldr r0, [r0]
- bl _call_via_r0
- movs r0, 0x1
- b _0810CDB2
- .align 2, 0
-_0810CD9C: .4byte gUnknown_083F7FC4
-_0810CDA0:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CD7E
-_0810CDB0:
- movs r0, 0
-_0810CDB2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CD5C
-
- thumb_func_start sub_810CDB8
-sub_810CDB8: @ 810CDB8
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CDF8
- adds r6, r1, 0
-_0810CDCE:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CDE8
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CDE8
- ldrb r0, [r2, 0x2]
- b _0810CDFA
- .align 2, 0
-_0810CDE4: .4byte gUnknown_083F7FC4
-_0810CDE8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CDCE
-_0810CDF8:
- movs r0, 0
-_0810CDFA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810CDB8
-
- thumb_func_start fade_type_for_given_maplight_pair
-fade_type_for_given_maplight_pair: @ 810CE00
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CE2C @ =gUnknown_083F7FC4
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CE40
- adds r6, r1, 0
-_0810CE16:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CE30
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CE30
- ldrb r0, [r2, 0x3]
- b _0810CE42
- .align 2, 0
-_0810CE2C: .4byte gUnknown_083F7FC4
-_0810CE30:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CE16
-_0810CE40:
- movs r0, 0
-_0810CE42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end fade_type_for_given_maplight_pair
-
- thumb_func_start sub_810CE48
-sub_810CE48: @ 810CE48
- push {lr}
- ldr r0, _0810CE58 @ =sub_810CE5C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810CE58: .4byte sub_810CE5C
- thumb_func_end sub_810CE48
-
- thumb_func_start sub_810CE5C
-sub_810CE5C: @ 810CE5C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CE70 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810CE74 @ =sub_810CE78
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810CE70: .4byte gTasks
-_0810CE74: .4byte sub_810CE78
- thumb_func_end sub_810CE5C
-
- thumb_func_start sub_810CE78
-sub_810CE78: @ 810CE78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _0810CEE8 @ =gCaveTransitionTiles
- ldr r1, _0810CEEC @ =0x0600c000
- bl LZ77UnCompVram
- ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
- ldr r1, _0810CEF4 @ =0x0600f800
- bl LZ77UnCompVram
- ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CEFC @ =gUnknown_083F809C
- movs r1, 0xE0
- movs r2, 0x10
- bl LoadPalette
- ldr r1, _0810CF00 @ =REG_BLDCNT
- ldr r2, _0810CF04 @ =0x00003e41
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810CF08 @ =REG_BLDALPHA
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r1, 0x48
- ldr r2, _0810CF0C @ =0x00001f0c
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r1, _0810CF10 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810CF14 @ =sub_810CF18
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CEE8: .4byte gCaveTransitionTiles
-_0810CEEC: .4byte 0x0600c000
-_0810CEF0: .4byte gCaveTransitionTilemap
-_0810CEF4: .4byte 0x0600f800
-_0810CEF8: .4byte gCaveTransitionPalette_White
-_0810CEFC: .4byte gUnknown_083F809C
-_0810CF00: .4byte REG_BLDCNT
-_0810CF04: .4byte 0x00003e41
-_0810CF08: .4byte REG_BLDALPHA
-_0810CF0C: .4byte 0x00001f0c
-_0810CF10: .4byte gTasks
-_0810CF14: .4byte sub_810CF18
- thumb_func_end sub_810CE78
-
- thumb_func_start sub_810CF18
-sub_810CF18: @ 810CF18
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r2, [r3, 0xA]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r2, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810CF48 @ =REG_BLDALPHA
- strh r0, [r1]
- cmp r2, 0x10
- bhi _0810CF4C
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810CF54
- .align 2, 0
-_0810CF44: .4byte gTasks
-_0810CF48: .4byte REG_BLDALPHA
-_0810CF4C:
- movs r0, 0
- strh r0, [r3, 0xC]
- ldr r0, _0810CF58 @ =sub_810CF5C
- str r0, [r3]
-_0810CF54:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CF58: .4byte sub_810CF5C
- thumb_func_end sub_810CF18
-
- thumb_func_start sub_810CF5C
-sub_810CF5C: @ 810CF5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF94 @ =REG_BLDALPHA
- ldr r3, _0810CF98 @ =0x00001010
- adds r1, r3, 0
- strh r1, [r2]
- ldr r2, _0810CF9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xC]
- cmp r1, 0x7
- bhi _0810CFA4
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 1
- ldr r0, _0810CFA0 @ =gUnknown_083F809C
- adds r0, r1, r0
- movs r2, 0x10
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810CFB6
- .align 2, 0
-_0810CF94: .4byte REG_BLDALPHA
-_0810CF98: .4byte 0x00001010
-_0810CF9C: .4byte gTasks
-_0810CFA0: .4byte gUnknown_083F809C
-_0810CFA4:
- ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CFC0 @ =sub_810CFC4
- str r0, [r4]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0810CFB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFBC: .4byte gCaveTransitionPalette_White
-_0810CFC0: .4byte sub_810CFC4
- thumb_func_end sub_810CF5C
-
- thumb_func_start sub_810CFC4
-sub_810CFC4: @ 810CFC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CFE4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0810CFE8
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _0810CFF0
- .align 2, 0
-_0810CFE4: .4byte gTasks
-_0810CFE8:
- ldr r0, _0810CFF4 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CFF0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFF4: .4byte gMain
- thumb_func_end sub_810CFC4
-
- thumb_func_start sub_810CFF8
-sub_810CFF8: @ 810CFF8
- push {lr}
- ldr r0, _0810D008 @ =sub_810D00C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D008: .4byte sub_810D00C
- thumb_func_end sub_810CFF8
-
- thumb_func_start sub_810D00C
-sub_810D00C: @ 810D00C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D020 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810D024 @ =sub_810D028
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D020: .4byte gTasks
-_0810D024: .4byte sub_810D028
- thumb_func_end sub_810D00C
-
- thumb_func_start sub_810D028
-sub_810D028: @ 810D028
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r6, 0x80
- lsls r6, 19
- movs r4, 0
- strh r4, [r6]
- ldr r0, _0810D098 @ =gCaveTransitionTiles
- ldr r1, _0810D09C @ =0x0600c000
- bl LZ77UnCompVram
- ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
- ldr r1, _0810D0A4 @ =0x0600f800
- bl LZ77UnCompVram
- ldr r0, _0810D0A8 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _0810D0AC @ =REG_BG0CNT
- ldr r2, _0810D0B0 @ =0x00001f0c
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0810D0BC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810D0C0 @ =sub_810D0C4
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- strh r2, [r0, 0xC]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D098: .4byte gCaveTransitionTiles
-_0810D09C: .4byte 0x0600c000
-_0810D0A0: .4byte gCaveTransitionTilemap
-_0810D0A4: .4byte 0x0600f800
-_0810D0A8: .4byte REG_BLDCNT
-_0810D0AC: .4byte REG_BG0CNT
-_0810D0B0: .4byte 0x00001f0c
-_0810D0B4: .4byte gCaveTransitionPalette_White
-_0810D0B8: .4byte gCaveTransitionPalette_Black
-_0810D0BC: .4byte gTasks
-_0810D0C0: .4byte sub_810D0C4
- thumb_func_end sub_810D028
-
- thumb_func_start sub_810D0C4
-sub_810D0C4: @ 810D0C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D0F8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r1, [r3, 0xC]
- cmp r1, 0xF
- bhi _0810D100
- adds r2, r1, 0x1
- adds r0, r2, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0xF
- subs r0, r1
- lsls r0, 1
- ldr r1, _0810D0FC @ =gUnknown_083F808C
- adds r0, r1
- lsls r2, 17
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810D114
- .align 2, 0
-_0810D0F8: .4byte gTasks
-_0810D0FC: .4byte gUnknown_083F808C
-_0810D100:
- ldr r1, _0810D118 @ =REG_BLDALPHA
- ldr r2, _0810D11C @ =0x00001010
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0810D120 @ =0x00003e41
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810D124 @ =sub_810D128
- str r0, [r3]
-_0810D114:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D118: .4byte REG_BLDALPHA
-_0810D11C: .4byte 0x00001010
-_0810D120: .4byte 0x00003e41
-_0810D124: .4byte sub_810D128
- thumb_func_end sub_810D0C4
-
- thumb_func_start sub_810D128
-sub_810D128: @ 810D128
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D158 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 16
- movs r2, 0x80
- lsls r2, 21
- adds r0, r1, r2
- lsrs r0, 16
- ldr r2, _0810D15C @ =REG_BLDALPHA
- strh r0, [r2]
- cmp r1, 0
- beq _0810D160
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810D172
- .align 2, 0
-_0810D158: .4byte gTasks
-_0810D15C: .4byte REG_BLDALPHA
-_0810D160:
- ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D17C @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810D172:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D178: .4byte gCaveTransitionPalette_Black
-_0810D17C: .4byte gMain
- thumb_func_end sub_810D128
-
- thumb_func_start sub_810D180
-sub_810D180: @ 810D180
- push {r4-r7,lr}
- sub sp, 0x4
- bl HealPlayerParty
- ldr r4, _0810D1A0 @ =0x00000804
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _0810D1A8
- ldr r0, _0810D1A4 @ =gUnknown_02039324
- strb r1, [r0]
- b _0810D1B4
- .align 2, 0
-_0810D1A0: .4byte 0x00000804
-_0810D1A4: .4byte gUnknown_02039324
-_0810D1A8:
- ldr r1, _0810D1E8 @ =gUnknown_02039324
- movs r0, 0
- strb r0, [r1]
- adds r0, r4, 0
- bl FlagSet
-_0810D1B4:
- movs r0, 0x1
- bl sub_8053108
- cmp r0, 0
- bne _0810D1D4
- ldr r2, _0810D1EC @ =gSaveBlock2
- ldrh r1, [r2, 0xE]
- lsls r1, 16
- ldrb r0, [r2, 0x10]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x11]
- orrs r1, r0
- movs r0, 0x1
- bl sav12_xor_set
-_0810D1D4:
- bl sub_8047A10
- ldr r0, _0810D1EC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810D1F0
- movs r0, 0x1
- bl sub_80537CC
- b _0810D1F6
- .align 2, 0
-_0810D1E8: .4byte gUnknown_02039324
-_0810D1EC: .4byte gSaveBlock2
-_0810D1F0:
- movs r0, 0x2
- bl sub_80537CC
-_0810D1F6:
- movs r6, 0
- movs r5, 0
- mov r7, sp
-_0810D1FC:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D260 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810D23A
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- adds r0, r4, 0
- movs r1, 0x43
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- movs r0, 0x1
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x43
- mov r2, sp
- bl SetMonData
- movs r6, 0x1
-_0810D23A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D1FC
- cmp r6, 0x1
- bne _0810D250
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810D264 @ =0x0000083b
- bl FlagSet
-_0810D250:
- ldr r0, _0810D268 @ =sub_8141F90
- bl SetMainCallback2
- movs r0, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D260: .4byte gPlayerParty
-_0810D264: .4byte 0x0000083b
-_0810D268: .4byte sub_8141F90
- thumb_func_end sub_810D180
-
- thumb_func_start sp0C8_whiteout_maybe
-sp0C8_whiteout_maybe: @ 810D26C
- push {lr}
- ldr r0, _0810D27C @ =c2_whiteout
- bl SetMainCallback2
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810D27C: .4byte c2_whiteout
- thumb_func_end sp0C8_whiteout_maybe
-
- thumb_func_start sub_810D280
-sub_810D280: @ 810D280
- push {r4,lr}
- ldr r0, _0810D2A4 @ =0x00004024
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D2A8 @ =0x00004025
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D2A4: .4byte 0x00004024
-_0810D2A8: .4byte 0x00004025
- thumb_func_end sub_810D280
-
- thumb_func_start sub_810D2AC
-sub_810D2AC: @ 810D2AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0810D2CC @ =0x00004024
- lsrs r1, r4, 16
- bl VarSet
- ldr r0, _0810D2D0 @ =0x00004025
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D2CC: .4byte 0x00004024
-_0810D2D0: .4byte 0x00004025
- thumb_func_end sub_810D2AC
-
- thumb_func_start unref_sub_810D2D4
-unref_sub_810D2D4: @ 810D2D4
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsls r0, 16
- lsrs r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_810D2D4
-
- thumb_func_start sub_810D2F4
-sub_810D2F4: @ 810D2F4
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_810D280
- adds r1, r0, 0
- cmp r4, 0
- beq _0810D318
- ldr r3, _0810D324 @ =0x41c64e6d
- ldr r2, _0810D328 @ =0x00003039
-_0810D308:
- adds r0, r1, 0
- muls r0, r3
- adds r1, r0, r2
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0810D308
-_0810D318:
- adds r0, r1, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D324: .4byte 0x41c64e6d
-_0810D328: .4byte 0x00003039
- thumb_func_end sub_810D2F4
-
- thumb_func_start sub_810D32C
-sub_810D32C: @ 810D32C
- push {r4-r6,lr}
- bl sub_810D280
- lsrs r6, r0, 16
- movs r5, 0
-_0810D336:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D360 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0810D368
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, _0810D364 @ =0x0000ffff
- ands r1, r0
- cmp r1, r6
- bne _0810D368
- movs r0, 0x1
- b _0810D370
- .align 2, 0
-_0810D360: .4byte gPlayerParty
-_0810D364: .4byte 0x0000ffff
-_0810D368:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D336
- movs r0, 0
-_0810D370:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810D32C
-
- thumb_func_start sub_810D378
-sub_810D378: @ 810D378
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- cmp r0, 0
- beq _0810D3BE
- bl RtcCalcLocalTime
- ldr r1, _0810D3AC @ =gUnknown_083F8340
- ldr r0, _0810D3B0 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810D3B8
- ldr r0, _0810D3B4 @ =0x0000083a
- bl FlagSet
- b _0810D3BE
- .align 2, 0
-_0810D3AC: .4byte gUnknown_083F8340
-_0810D3B0: .4byte gLocalTime
-_0810D3B4: .4byte 0x0000083a
-_0810D3B8:
- ldr r0, _0810D3C4 @ =0x0000083a
- bl FlagReset
-_0810D3BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3C4: .4byte 0x0000083a
- thumb_func_end sub_810D378
-
- thumb_func_start sub_810D3C8
-sub_810D3C8: @ 810D3C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807DDFC
- lsls r0, 24
- cmp r0, 0
- beq _0810D3E2
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0810D3E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810D3C8
-
- thumb_func_start sub_810D3E8
-sub_810D3E8: @ 810D3E8
- push {lr}
- ldr r0, _0810D3F8 @ =sub_810D3C8
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3F8: .4byte sub_810D3C8
- thumb_func_end sub_810D3E8
-
- thumb_func_start sub_810D3FC
-sub_810D3FC: @ 810D3FC
- push {lr}
- ldr r0, _0810D40C @ =0x00004049
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D40C: .4byte 0x00004049
- thumb_func_end sub_810D3FC
-
- thumb_func_start UpdateBirchState
-UpdateBirchState: @ 810D410
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D438 @ =0x00004049
- bl GetVarPointer
- adds r5, r0, 0
- ldrh r0, [r5]
- adds r4, r0
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0x7
- bl __umodsi3
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D438: .4byte 0x00004049
- thumb_func_end UpdateBirchState
-
- thumb_func_start ScriptGetPokedexInfo
-ScriptGetPokedexInfo: @ 810D43C
- push {lr}
- ldr r0, _0810D458 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810D460
- movs r0, 0
- bl GetHoennPokedexCount
- ldr r1, _0810D45C @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl GetHoennPokedexCount
- b _0810D470
- .align 2, 0
-_0810D458: .4byte gSpecialVar_0x8004
-_0810D45C: .4byte gSpecialVar_0x8005
-_0810D460:
- movs r0, 0
- bl GetNationalPokedexCount
- ldr r1, _0810D480 @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl GetNationalPokedexCount
-_0810D470:
- ldr r1, _0810D484 @ =gSpecialVar_0x8006
- strh r0, [r1]
- bl IsNationalPokedex
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810D480: .4byte gSpecialVar_0x8005
-_0810D484: .4byte gSpecialVar_0x8006
- thumb_func_end ScriptGetPokedexInfo
-
- thumb_func_start GetPokedexRatingText
-GetPokedexRatingText: @ 810D488
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x9
- bhi _0810D494
- b _0810D5EC
-_0810D494:
- cmp r0, 0x13
- bhi _0810D4A0
- ldr r0, _0810D49C @ =gUnknown_081C456A
- b _0810D5F6
- .align 2, 0
-_0810D49C: .4byte gUnknown_081C456A
-_0810D4A0:
- cmp r0, 0x1D
- bhi _0810D4AC
- ldr r0, _0810D4A8 @ =gUnknown_081C45B0
- b _0810D5F6
- .align 2, 0
-_0810D4A8: .4byte gUnknown_081C45B0
-_0810D4AC:
- cmp r0, 0x27
- bhi _0810D4B8
- ldr r0, _0810D4B4 @ =gUnknown_081C45F9
- b _0810D5F6
- .align 2, 0
-_0810D4B4: .4byte gUnknown_081C45F9
-_0810D4B8:
- cmp r0, 0x31
- bhi _0810D4C4
- ldr r0, _0810D4C0 @ =gUnknown_081C4648
- b _0810D5F6
- .align 2, 0
-_0810D4C0: .4byte gUnknown_081C4648
-_0810D4C4:
- cmp r0, 0x3B
- bhi _0810D4D0
- ldr r0, _0810D4CC @ =gUnknown_081C467E
- b _0810D5F6
- .align 2, 0
-_0810D4CC: .4byte gUnknown_081C467E
-_0810D4D0:
- cmp r0, 0x45
- bhi _0810D4DC
- ldr r0, _0810D4D8 @ =gUnknown_081C46B9
- b _0810D5F6
- .align 2, 0
-_0810D4D8: .4byte gUnknown_081C46B9
-_0810D4DC:
- cmp r0, 0x4F
- bhi _0810D4E8
- ldr r0, _0810D4E4 @ =gUnknown_081C46FE
- b _0810D5F6
- .align 2, 0
-_0810D4E4: .4byte gUnknown_081C46FE
-_0810D4E8:
- cmp r0, 0x59
- bhi _0810D4F4
- ldr r0, _0810D4F0 @ =gUnknown_081C4747
- b _0810D5F6
- .align 2, 0
-_0810D4F0: .4byte gUnknown_081C4747
-_0810D4F4:
- cmp r0, 0x63
- bhi _0810D500
- ldr r0, _0810D4FC @ =gUnknown_081C4780
- b _0810D5F6
- .align 2, 0
-_0810D4FC: .4byte gUnknown_081C4780
-_0810D500:
- cmp r0, 0x6D
- bhi _0810D50C
- ldr r0, _0810D508 @ =gUnknown_081C47DF
- b _0810D5F6
- .align 2, 0
-_0810D508: .4byte gUnknown_081C47DF
-_0810D50C:
- cmp r0, 0x77
- bhi _0810D518
- ldr r0, _0810D514 @ =gUnknown_081C4828
- b _0810D5F6
- .align 2, 0
-_0810D514: .4byte gUnknown_081C4828
-_0810D518:
- cmp r0, 0x81
- bhi _0810D524
- ldr r0, _0810D520 @ =gUnknown_081C4863
- b _0810D5F6
- .align 2, 0
-_0810D520: .4byte gUnknown_081C4863
-_0810D524:
- cmp r0, 0x8B
- bhi _0810D530
- ldr r0, _0810D52C @ =gUnknown_081C489C
- b _0810D5F6
- .align 2, 0
-_0810D52C: .4byte gUnknown_081C489C
-_0810D530:
- cmp r0, 0x95
- bhi _0810D53C
- ldr r0, _0810D538 @ =gUnknown_081C48EB
- b _0810D5F6
- .align 2, 0
-_0810D538: .4byte gUnknown_081C48EB
-_0810D53C:
- cmp r0, 0x9F
- bhi _0810D548
- ldr r0, _0810D544 @ =gUnknown_081C4936
- b _0810D5F6
- .align 2, 0
-_0810D544: .4byte gUnknown_081C4936
-_0810D548:
- cmp r0, 0xA9
- bhi _0810D554
- ldr r0, _0810D550 @ =gUnknown_081C49A2
- b _0810D5F6
- .align 2, 0
-_0810D550: .4byte gUnknown_081C49A2
-_0810D554:
- cmp r0, 0xB3
- bhi _0810D560
- ldr r0, _0810D55C @ =gUnknown_081C4A06
- b _0810D5F6
- .align 2, 0
-_0810D55C: .4byte gUnknown_081C4A06
-_0810D560:
- cmp r0, 0xBD
- bhi _0810D56C
- ldr r0, _0810D568 @ =gUnknown_081C4A4F
- b _0810D5F6
- .align 2, 0
-_0810D568: .4byte gUnknown_081C4A4F
-_0810D56C:
- cmp r0, 0xC7
- bls _0810D5DA
- cmp r0, 0xC8
- bne _0810D5A8
- ldr r0, _0810D5A4 @ =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- b _0810D5F4
- .align 2, 0
-_0810D5A4: .4byte 0x00000199
-_0810D5A8:
- cmp r0, 0xC9
- bne _0810D5E8
- ldr r0, _0810D5E0 @ =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
-_0810D5DA:
- ldr r0, _0810D5E4 @ =gUnknown_081C4A91
- b _0810D5F6
- .align 2, 0
-_0810D5E0: .4byte 0x00000199
-_0810D5E4: .4byte gUnknown_081C4A91
-_0810D5E8:
- cmp r0, 0xCA
- beq _0810D5F4
-_0810D5EC:
- ldr r0, _0810D5F0 @ =gUnknown_081C4520
- b _0810D5F6
- .align 2, 0
-_0810D5F0: .4byte gUnknown_081C4520
-_0810D5F4:
- ldr r0, _0810D5FC @ =gUnknown_081C4ADA
-_0810D5F6:
- pop {r1}
- bx r1
- .align 2, 0
-_0810D5FC: .4byte gUnknown_081C4ADA
- thumb_func_end GetPokedexRatingText
-
- thumb_func_start ShowPokedexRatingMessage
-ShowPokedexRatingMessage: @ 810D600
- push {lr}
- ldr r0, _0810D614 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl GetPokedexRatingText
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810D614: .4byte gSpecialVar_0x8004
- thumb_func_end ShowPokedexRatingMessage
-
- thumb_func_start AccessHallOfFamePC
-AccessHallOfFamePC: @ 810D618
- push {lr}
- ldr r0, _0810D628 @ =sub_81428CC
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D628: .4byte sub_81428CC
- thumb_func_end AccessHallOfFamePC
-
- thumb_func_start ReturnFromHallOfFamePC
-ReturnFromHallOfFamePC: @ 810D62C
- push {lr}
- ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- ldr r1, _0810D644 @ =gUnknown_0300485C
- ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D640: .4byte c2_exit_to_overworld_2_switch
-_0810D644: .4byte gUnknown_0300485C
-_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC
- thumb_func_end ReturnFromHallOfFamePC
-
- thumb_func_start ReshowPCMenuAfterHallOfFamePC
-ReshowPCMenuAfterHallOfFamePC: @ 810D64C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl sub_8053E90
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sp109_CreatePCMenu
- bl sub_80B5838
- ldr r0, _0810D680 @ =sub_810D684
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810D680: .4byte sub_810D684
- thumb_func_end ReshowPCMenuAfterHallOfFamePC
-
- thumb_func_start sub_810D684
-sub_810D684: @ 810D684
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810D6A0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810D69C
- adds r0, r2, 0
- bl DestroyTask
-_0810D69C:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6A0: .4byte gPaletteFade
- thumb_func_end sub_810D684
-
- thumb_func_start sub_810D6A4
-sub_810D6A4: @ 810D6A4
- push {lr}
- ldr r0, _0810D6B4 @ =sub_8145D88
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6B4: .4byte sub_8145D88
- thumb_func_end sub_810D6A4
-
- thumb_func_start sub_810D6B8
-sub_810D6B8: @ 810D6B8
- push {lr}
- ldr r0, _0810D6D0 @ =gMain
- ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch
- str r1, [r0, 0x8]
- ldr r0, _0810D6D8 @ =Cb2_ViewWallClock
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6D0: .4byte gMain
-_0810D6D4: .4byte c2_exit_to_overworld_2_switch
-_0810D6D8: .4byte Cb2_ViewWallClock
- thumb_func_end sub_810D6B8
-
- thumb_func_start ResetCyclingRoadChallengeData
-ResetCyclingRoadChallengeData: @ 810D6DC
- ldr r0, _0810D6F0 @ =gUnknown_02039250
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810D6F4 @ =gUnknown_02039251
- strb r1, [r0]
- ldr r1, _0810D6F8 @ =gUnknown_02039254
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D6F0: .4byte gUnknown_02039250
-_0810D6F4: .4byte gUnknown_02039251
-_0810D6F8: .4byte gUnknown_02039254
- thumb_func_end ResetCyclingRoadChallengeData
-
- thumb_func_start BeginCyclingRoadChallenge
-BeginCyclingRoadChallenge: @ 810D6FC
- ldr r1, _0810D714 @ =gUnknown_02039250
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0810D718 @ =gUnknown_02039251
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810D71C @ =gUnknown_02039254
- ldr r0, _0810D720 @ =gMain
- ldr r0, [r0, 0x20]
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D714: .4byte gUnknown_02039250
-_0810D718: .4byte gUnknown_02039251
-_0810D71C: .4byte gUnknown_02039254
-_0810D720: .4byte gMain
- thumb_func_end BeginCyclingRoadChallenge
-
- thumb_func_start GetPlayerAvatarBike
-GetPlayerAvatarBike: @ 810D724
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0810D736
- movs r0, 0x1
- b _0810D748
-_0810D736:
- movs r0, 0x2
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _0810D746
- movs r0, 0
- b _0810D748
-_0810D746:
- movs r0, 0x2
-_0810D748:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarBike
-
- thumb_func_start DetermineCyclingRoadResults
-DetermineCyclingRoadResults: @ 810D74C
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0x63
- bhi _0810D778
- ldr r4, _0810D770 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D774 @ =gOtherText_Times
- adds r0, r4, 0
- bl StringAppend
- b _0810D780
- .align 2, 0
-_0810D770: .4byte gStringVar1
-_0810D774: .4byte gOtherText_Times
-_0810D778:
- ldr r0, _0810D7CC @ =gStringVar1
- ldr r1, _0810D7D0 @ =gOtherText_99Times
- bl StringCopy
-_0810D780:
- ldr r0, _0810D7D4 @ =0x00000e0f
- cmp r7, r0
- bhi _0810D7E0
- ldr r4, _0810D7D8 @ =gStringVar2
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0xAD
- strb r0, [r4, 0x2]
- adds r5, r4, 0x3
- adds r0, r7, 0
- movs r1, 0x3C
- bl __umodsi3
- movs r1, 0x64
- muls r0, r1
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D7DC @ =gOtherText_Seconds
- adds r0, r4, 0
- bl StringAppend
- b _0810D7E8
- .align 2, 0
-_0810D7CC: .4byte gStringVar1
-_0810D7D0: .4byte gOtherText_99Times
-_0810D7D4: .4byte 0x00000e0f
-_0810D7D8: .4byte gStringVar2
-_0810D7DC: .4byte gOtherText_Seconds
-_0810D7E0:
- ldr r0, _0810D7F4 @ =gStringVar2
- ldr r1, _0810D7F8 @ =gOtherText_1Minute
- bl StringCopy
-_0810D7E8:
- movs r4, 0
- cmp r6, 0
- bne _0810D7FC
- movs r4, 0x5
- b _0810D81A
- .align 2, 0
-_0810D7F4: .4byte gStringVar2
-_0810D7F8: .4byte gOtherText_1Minute
-_0810D7FC:
- cmp r6, 0x3
- bhi _0810D804
- movs r4, 0x4
- b _0810D81A
-_0810D804:
- cmp r6, 0x9
- bhi _0810D80C
- movs r4, 0x3
- b _0810D81A
-_0810D80C:
- cmp r6, 0x13
- bhi _0810D814
- movs r4, 0x2
- b _0810D81A
-_0810D814:
- cmp r6, 0x63
- bhi _0810D81A
- movs r4, 0x1
-_0810D81A:
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- cmp r0, 0xA
- bhi _0810D82A
- adds r0, r4, 0x5
- b _0810D848
-_0810D82A:
- cmp r0, 0xF
- bhi _0810D832
- adds r0, r4, 0x4
- b _0810D848
-_0810D832:
- cmp r0, 0x14
- bhi _0810D83A
- adds r0, r4, 0x3
- b _0810D848
-_0810D83A:
- cmp r0, 0x28
- bhi _0810D842
- adds r0, r4, 0x2
- b _0810D848
-_0810D842:
- cmp r0, 0x3B
- bhi _0810D84C
- adds r0, r4, 0x1
-_0810D848:
- lsls r0, 24
- lsrs r4, r0, 24
-_0810D84C:
- ldr r0, _0810D858 @ =gScriptResult
- strh r4, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D858: .4byte gScriptResult
- thumb_func_end DetermineCyclingRoadResults
-
- thumb_func_start FinishCyclingRoadChallenge
-FinishCyclingRoadChallenge: @ 810D85C
- push {r4,r5,lr}
- ldr r0, _0810D880 @ =gMain
- ldr r1, _0810D884 @ =gUnknown_02039254
- ldr r4, [r0, 0x20]
- ldr r0, [r1]
- subs r4, r0
- ldr r5, _0810D888 @ =gUnknown_02039251
- ldrb r1, [r5]
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- ldrb r1, [r5]
- adds r0, r4, 0
- bl RecordCyclingRoadResults
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D880: .4byte gMain
-_0810D884: .4byte gUnknown_02039254
-_0810D888: .4byte gUnknown_02039251
- thumb_func_end FinishCyclingRoadChallenge
-
- thumb_func_start RecordCyclingRoadResults
-RecordCyclingRoadResults: @ 810D88C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r6, _0810D8E0 @ =0x00004028
- adds r0, r6, 0
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r7, _0810D8E4 @ =0x00004029
- adds r0, r7, 0
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, r5
- bhi _0810D8BC
- cmp r4, 0
- bne _0810D8D6
-_0810D8BC:
- lsls r1, r5, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl VarSet
- lsrs r1, r5, 16
- adds r0, r7, 0
- bl VarSet
- ldr r0, _0810D8E8 @ =0x00004027
- mov r1, r8
- bl VarSet
-_0810D8D6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D8E0: .4byte 0x00004028
-_0810D8E4: .4byte 0x00004029
-_0810D8E8: .4byte 0x00004027
- thumb_func_end RecordCyclingRoadResults
-
- thumb_func_start GetRecordedCyclingRoadResults
-GetRecordedCyclingRoadResults: @ 810D8EC
- push {r4,lr}
- ldr r0, _0810D920 @ =0x00004028
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D924 @ =0x00004029
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, 0
- beq _0810D92C
- ldr r0, _0810D928 @ =0x00004027
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- movs r0, 0x1
- b _0810D92E
- .align 2, 0
-_0810D920: .4byte 0x00004028
-_0810D924: .4byte 0x00004029
-_0810D928: .4byte 0x00004027
-_0810D92C:
- movs r0, 0
-_0810D92E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetRecordedCyclingRoadResults
-
- thumb_func_start UpdateCyclingRoadState
-UpdateCyclingRoadState: @ 810D934
- push {r4,lr}
- ldr r0, _0810D974 @ =gUnknown_020297F0
- ldrh r1, [r0]
- ldr r0, _0810D978 @ =0x00000c1d
- cmp r1, r0
- beq _0810D96C
- ldr r4, _0810D97C @ =0x000040a9
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _0810D95E
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bne _0810D96C
-_0810D95E:
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- movs r0, 0
- bl sav1_set_battle_music_maybe
-_0810D96C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D974: .4byte gUnknown_020297F0
-_0810D978: .4byte 0x00000c1d
-_0810D97C: .4byte 0x000040a9
- thumb_func_end UpdateCyclingRoadState
-
- thumb_func_start SetSSTidalFlag
-SetSSTidalFlag: @ 810D980
- push {lr}
- ldr r0, _0810D998 @ =0x0000082d
- bl FlagSet
- ldr r0, _0810D99C @ =0x0000404a
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D998: .4byte 0x0000082d
-_0810D99C: .4byte 0x0000404a
- thumb_func_end SetSSTidalFlag
-
- thumb_func_start ResetSSTidalFlag
-ResetSSTidalFlag: @ 810D9A0
- push {lr}
- ldr r0, _0810D9AC @ =0x0000082d
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810D9AC: .4byte 0x0000082d
- thumb_func_end ResetSSTidalFlag
-
- thumb_func_start sub_810D9B0
-sub_810D9B0: @ 810D9B0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0810D9DC @ =0x0000082d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810D9D6
- ldr r0, _0810D9E0 @ =0x0000404a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, r4, r1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xCC
- bhi _0810D9E4
-_0810D9D6:
- movs r0, 0
- b _0810D9E6
- .align 2, 0
-_0810D9DC: .4byte 0x0000082d
-_0810D9E0: .4byte 0x0000404a
-_0810D9E4:
- movs r0, 0x1
-_0810D9E6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9B0
-
- thumb_func_start sub_810D9EC
-sub_810D9EC: @ 810D9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, _0810DA1C @ =0x0000404a
- bl GetVarPointer
- adds r4, r0, 0
- ldr r0, _0810DA20 @ =0x000040b4
- bl GetVarPointer
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0810DAB2
- lsls r0, 2
- ldr r1, _0810DA24 @ =_0810DA28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DA1C: .4byte 0x0000404a
-_0810DA20: .4byte 0x000040b4
-_0810DA24: .4byte _0810DA28
- .align 2, 0
-_0810DA28:
- .4byte _0810DA50
- .4byte _0810DA60
- .4byte _0810DA54
- .4byte _0810DA58
- .4byte _0810DA58
- .4byte _0810DA5C
- .4byte _0810DA88
- .4byte _0810DA50
- .4byte _0810DA54
- .4byte _0810DA5C
-_0810DA50:
- movs r0, 0x1
- b _0810DABE
-_0810DA54:
- movs r0, 0x4
- b _0810DABE
-_0810DA58:
- movs r0, 0x2
- b _0810DABE
-_0810DA5C:
- movs r0, 0x3
- b _0810DABE
-_0810DA60:
- ldrh r0, [r4]
- cmp r0, 0x3B
- bhi _0810DA70
- movs r0, 0x31
- strb r0, [r5]
- ldrh r0, [r4]
- adds r0, 0x13
- b _0810DAB0
-_0810DA70:
- cmp r0, 0x8B
- bhi _0810DA7E
- movs r0, 0x30
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x3C
- b _0810DAB0
-_0810DA7E:
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x8C
- b _0810DAB0
-_0810DA88:
- ldrh r0, [r4]
- cmp r0, 0x41
- bhi _0810DA98
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x41
- b _0810DAAE
-_0810DA98:
- cmp r0, 0x91
- bhi _0810DAA6
- movs r0, 0x30
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x91
- b _0810DAAE
-_0810DAA6:
- movs r0, 0x31
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0xE0
-_0810DAAE:
- subs r0, r1
-_0810DAB0:
- strh r0, [r6]
-_0810DAB2:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strh r0, [r7]
- movs r0, 0
-_0810DABE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9EC
-
- thumb_func_start GetLinkPartnerNames
-GetLinkPartnerNames: @ 810DAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- bl sub_8008218
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_800820C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810DB12
- ldr r0, _0810DB20 @ =gUnknown_083D1464
- mov r8, r0
-_0810DAEA:
- cmp r7, r4
- beq _0810DB08
- lsls r0, r6, 2
- add r0, r8
- ldr r0, [r0]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
- adds r1, r2
- bl StringCopy
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DB08:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810DAEA
-_0810DB12:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810DB20: .4byte gUnknown_083D1464
-_0810DB24: .4byte gLinkPlayers + 0x8
- thumb_func_end GetLinkPartnerNames
-
- thumb_func_start sub_810DB28
-sub_810DB28: @ 810DB28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r7, 0
- movs r0, 0
- mov r9, r0
- mov r8, r0
- ldr r1, _0810DB74 @ =gUnknown_083F8358
- add r0, sp, 0x8
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0xC
- ldr r1, _0810DB78 @ =gUnknown_083F835C
- adds r0, r4, 0
- movs r2, 0x8
- bl memcpy
- bl sub_8008218
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _0810DB94
- cmp r0, 0x2
- bgt _0810DB7C
- cmp r0, 0x1
- beq _0810DBC0
- b _0810DBD2
- .align 2, 0
-_0810DB74: .4byte gUnknown_083F8358
-_0810DB78: .4byte gUnknown_083F835C
-_0810DB7C:
- cmp r1, 0x3
- beq _0810DB86
- cmp r1, 0x4
- beq _0810DBA8
- b _0810DBD2
-_0810DB86:
- movs r7, 0x2
- ldr r1, _0810DB90 @ =gSaveBlock1
- ldrh r0, [r1]
- subs r0, 0x1
- b _0810DBAE
- .align 2, 0
-_0810DB90: .4byte gSaveBlock1
-_0810DB94:
- movs r7, 0x1
- ldr r0, _0810DBA4 @ =gSaveBlock1
- ldrh r1, [r0]
- mov r9, r1
- ldrh r0, [r0, 0x2]
- subs r0, 0x1
- b _0810DBCC
- .align 2, 0
-_0810DBA4: .4byte gSaveBlock1
-_0810DBA8:
- ldr r1, _0810DBBC @ =gSaveBlock1
- ldrh r0, [r1]
- adds r0, 0x1
-_0810DBAE:
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldrh r1, [r1, 0x2]
- mov r8, r1
- b _0810DBD2
- .align 2, 0
-_0810DBBC: .4byte gSaveBlock1
-_0810DBC0:
- movs r7, 0x3
- ldr r0, _0810DBD8 @ =gSaveBlock1
- ldrh r4, [r0]
- mov r9, r4
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
-_0810DBCC:
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0810DBD2:
- movs r6, 0
- b _0810DC5C
- .align 2, 0
-_0810DBD8: .4byte gSaveBlock1
-_0810DBDC:
- cmp r10, r6
- beq _0810DC56
- ldr r1, _0810DC74 @ =gLinkPlayers
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x13]
- movs r0, 0
- bl sub_805983C
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r1, r7
- adds r1, 0x8
- ldrb r1, [r1]
- movs r2, 0xF0
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r5, r7, 1
- mov r3, sp
- adds r3, r5
- adds r3, 0xC
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- mov r12, r3
- mov r4, r9
- lsls r3, r4, 16
- asrs r3, 16
- add r3, r12
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- mov r4, sp
- adds r4, 0xD
- adds r4, r5
- ldrb r4, [r4]
- lsls r4, 24
- asrs r4, 24
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 16
- asrs r4, 16
- add r4, r12
- adds r4, 0x7
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl SpawnSpecialFieldObjectParametrized
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bne _0810DC56
- movs r7, 0
-_0810DC56:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DC5C:
- ldr r0, _0810DC78 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r6, r0
- bcc _0810DBDC
- 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
-_0810DC74: .4byte gLinkPlayers
-_0810DC78: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810DB28
-
- thumb_func_start sub_810DC7C
-sub_810DC7C: @ 810DC7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810DC9C @ =gUnknown_083F8364
-_0810DC82:
- ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- bne _0810DCA8
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCA4 @ =0x00000206
- bl MapGridSetMetatileIdAt
- b _0810DCB6
- .align 2, 0
-_0810DC9C: .4byte gUnknown_083F8364
-_0810DCA0: .4byte gSpecialVar_0x8004
-_0810DCA4: .4byte 0x00000206
-_0810DCA8:
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCC8 @ =0x00000205
- bl MapGridSetMetatileIdAt
-_0810DCB6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810DC82
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DCC8: .4byte 0x00000205
- thumb_func_end sub_810DC7C
-
- thumb_func_start sub_810DCCC
-sub_810DCCC: @ 810DCCC
- push {r4-r6,lr}
- movs r5, 0xC
-_0810DCD0:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DCD4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DCF0 @ =0xfffffde6
- adds r0, r1
- cmp r0, 0x37
- bls _0810DCE6
- b _0810DEC0
-_0810DCE6:
- lsls r0, 2
- ldr r1, _0810DCF4 @ =_0810DCF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DCF0: .4byte 0xfffffde6
-_0810DCF4: .4byte _0810DCF8
- .align 2, 0
-_0810DCF8:
- .4byte _0810DE7E
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDD8
- .4byte _0810DDDE
- .4byte _0810DE18
- .4byte _0810DE20
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDE8
- .4byte _0810DDEE
- .4byte _0810DE28
- .4byte _0810DE30
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDF8
- .4byte _0810DDFE
- .4byte _0810DE38
- .4byte _0810DE40
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE08
- .4byte _0810DE10
- .4byte _0810DE48
- .4byte _0810DE50
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE58
- .4byte _0810DE68
- .4byte _0810DE78
- .4byte _0810DEA0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE60
- .4byte _0810DE70
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEB6
- .4byte _0810DEA8
-_0810DDD8:
- movs r2, 0x8C
- lsls r2, 2
- b _0810DEAC
-_0810DDDE:
- ldr r2, _0810DDE4 @ =0x00000231
- b _0810DEAC
- .align 2, 0
-_0810DDE4: .4byte 0x00000231
-_0810DDE8:
- movs r2, 0x8E
- lsls r2, 2
- b _0810DEAC
-_0810DDEE:
- ldr r2, _0810DDF4 @ =0x00000239
- b _0810DEAC
- .align 2, 0
-_0810DDF4: .4byte 0x00000239
-_0810DDF8:
- movs r2, 0x88
- lsls r2, 2
- b _0810DEAC
-_0810DDFE:
- ldr r2, _0810DE04 @ =0x00000221
- b _0810DEAC
- .align 2, 0
-_0810DE04: .4byte 0x00000221
-_0810DE08:
- ldr r2, _0810DE0C @ =0x00000e28
- b _0810DEAC
- .align 2, 0
-_0810DE0C: .4byte 0x00000e28
-_0810DE10:
- ldr r2, _0810DE14 @ =0x00000e29
- b _0810DEAC
- .align 2, 0
-_0810DE14: .4byte 0x00000e29
-_0810DE18:
- ldr r2, _0810DE1C @ =0x00000232
- b _0810DEAC
- .align 2, 0
-_0810DE1C: .4byte 0x00000232
-_0810DE20:
- ldr r2, _0810DE24 @ =0x00000233
- b _0810DEAC
- .align 2, 0
-_0810DE24: .4byte 0x00000233
-_0810DE28:
- ldr r2, _0810DE2C @ =0x0000023a
- b _0810DEAC
- .align 2, 0
-_0810DE2C: .4byte 0x0000023a
-_0810DE30:
- ldr r2, _0810DE34 @ =0x0000023b
- b _0810DEAC
- .align 2, 0
-_0810DE34: .4byte 0x0000023b
-_0810DE38:
- ldr r2, _0810DE3C @ =0x00000222
- b _0810DEAC
- .align 2, 0
-_0810DE3C: .4byte 0x00000222
-_0810DE40:
- ldr r2, _0810DE44 @ =0x00000223
- b _0810DEAC
- .align 2, 0
-_0810DE44: .4byte 0x00000223
-_0810DE48:
- ldr r2, _0810DE4C @ =0x00000e2a
- b _0810DEAC
- .align 2, 0
-_0810DE4C: .4byte 0x00000e2a
-_0810DE50:
- ldr r2, _0810DE54 @ =0x00000e2b
- b _0810DEAC
- .align 2, 0
-_0810DE54: .4byte 0x00000e2b
-_0810DE58:
- ldr r2, _0810DE5C @ =0x00000e42
- b _0810DEAC
- .align 2, 0
-_0810DE5C: .4byte 0x00000e42
-_0810DE60:
- ldr r2, _0810DE64 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE64: .4byte 0x0000021a
-_0810DE68:
- ldr r2, _0810DE6C @ =0x00000e43
- b _0810DEAC
- .align 2, 0
-_0810DE6C: .4byte 0x00000e43
-_0810DE70:
- ldr r2, _0810DE74 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE74: .4byte 0x0000021a
-_0810DE78:
- movs r2, 0xE4
- lsls r2, 4
- b _0810DEAC
-_0810DE7E:
- subs r1, r5, 0x1
- adds r0, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x90
- lsls r1, 2
- cmp r0, r1
- bne _0810DE98
- ldr r2, _0810DE94 @ =0x00000e48
- b _0810DEAC
- .align 2, 0
-_0810DE94: .4byte 0x00000e48
-_0810DE98:
- ldr r2, _0810DE9C @ =0x00000e49
- b _0810DEAC
- .align 2, 0
-_0810DE9C: .4byte 0x00000e49
-_0810DEA0:
- ldr r2, _0810DEA4 @ =0x00000e41
- b _0810DEAC
- .align 2, 0
-_0810DEA4: .4byte 0x00000e41
-_0810DEA8:
- movs r2, 0xE5
- lsls r2, 4
-_0810DEAC:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810DEC0
-_0810DEB6:
- ldr r2, _0810DED8 @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810DEC0:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810DEC8
- b _0810DCD4
-_0810DEC8:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810DED0
- b _0810DCD0
-_0810DED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DED8: .4byte 0x00000251
- thumb_func_end sub_810DCCC
-
- thumb_func_start sub_810DEDC
-sub_810DEDC: @ 810DEDC
- push {r4-r6,lr}
- ldr r4, _0810DF18 @ =gUnknown_083F8364
- movs r5, 0x2
-_0810DEE2:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- ldr r2, _0810DF1C @ =0x00000206
- bl MapGridSetMetatileIdAt
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _0810DEE2
- movs r5, 0xC
-_0810DEF6:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DEFA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DF20 @ =0xfffffde0
- adds r0, r1
- cmp r0, 0x30
- bls _0810DF0C
- b _0810E056
-_0810DF0C:
- lsls r0, 2
- ldr r1, _0810DF24 @ =_0810DF28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DF18: .4byte gUnknown_083F8364
-_0810DF1C: .4byte 0x00000206
-_0810DF20: .4byte 0xfffffde0
-_0810DF24: .4byte _0810DF28
- .align 2, 0
-_0810DF28:
- .4byte _0810DFEC
- .4byte _0810DFF2
- .4byte _0810E00C
- .4byte _0810E014
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810DFFC
- .4byte _0810E002
- .4byte _0810E01C
- .4byte _0810E024
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E02C
- .4byte _0810E034
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E03C
- .4byte _0810E03C
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E04C
-_0810DFEC:
- movs r2, 0x8C
- lsls r2, 2
- b _0810E03E
-_0810DFF2:
- ldr r2, _0810DFF8 @ =0x00000231
- b _0810E03E
- .align 2, 0
-_0810DFF8: .4byte 0x00000231
-_0810DFFC:
- movs r2, 0x8E
- lsls r2, 2
- b _0810E03E
-_0810E002:
- ldr r2, _0810E008 @ =0x00000239
- b _0810E03E
- .align 2, 0
-_0810E008: .4byte 0x00000239
-_0810E00C:
- ldr r2, _0810E010 @ =0x00000232
- b _0810E03E
- .align 2, 0
-_0810E010: .4byte 0x00000232
-_0810E014:
- ldr r2, _0810E018 @ =0x00000233
- b _0810E03E
- .align 2, 0
-_0810E018: .4byte 0x00000233
-_0810E01C:
- ldr r2, _0810E020 @ =0x0000023a
- b _0810E03E
- .align 2, 0
-_0810E020: .4byte 0x0000023a
-_0810E024:
- ldr r2, _0810E028 @ =0x0000023b
- b _0810E03E
- .align 2, 0
-_0810E028: .4byte 0x0000023b
-_0810E02C:
- ldr r2, _0810E030 @ =0x00000e42
- b _0810E03E
- .align 2, 0
-_0810E030: .4byte 0x00000e42
-_0810E034:
- ldr r2, _0810E038 @ =0x00000e43
- b _0810E03E
- .align 2, 0
-_0810E038: .4byte 0x00000e43
-_0810E03C:
- ldr r2, _0810E048 @ =0x0000021a
-_0810E03E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810E056
- .align 2, 0
-_0810E048: .4byte 0x0000021a
-_0810E04C:
- ldr r2, _0810E06C @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810E056:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810E05E
- b _0810DEFA
-_0810E05E:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810E066
- b _0810DEF6
-_0810E066:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E06C: .4byte 0x00000251
- thumb_func_end sub_810DEDC
-
- thumb_func_start sub_810E070
-sub_810E070: @ 810E070
- push {lr}
- ldr r0, _0810E090 @ =gUnknown_02039258
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810E094 @ =gUnknown_02039259
- strb r1, [r0]
- movs r0, 0x2C
- bl PlaySE
- ldr r0, _0810E098 @ =sub_810E09C
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810E090: .4byte gUnknown_02039258
-_0810E094: .4byte gUnknown_02039259
-_0810E098: .4byte sub_810E09C
- thumb_func_end sub_810E070
-
- thumb_func_start sub_810E09C
-sub_810E09C: @ 810E09C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810E0E4 @ =gUnknown_083F8370
- ldr r5, _0810E0E8 @ =gUnknown_02039259
- ldrb r1, [r5]
- adds r0, r1, r0
- ldr r4, _0810E0EC @ =gUnknown_02039258
- ldrb r2, [r4]
- ldrb r0, [r0]
- cmp r0, r2
- bne _0810E0F8
- ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r2, _0810E0F4 @ =gUnknown_083F8376
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- bl sub_810E104
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _0810E0FC
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- b _0810E0FC
- .align 2, 0
-_0810E0E4: .4byte gUnknown_083F8370
-_0810E0E8: .4byte gUnknown_02039259
-_0810E0EC: .4byte gUnknown_02039258
-_0810E0F0: .4byte gSpecialVar_0x8004
-_0810E0F4: .4byte gUnknown_083F8376
-_0810E0F8:
- adds r0, r2, 0x1
- strb r0, [r4]
-_0810E0FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E09C
-
- thumb_func_start sub_810E104
-sub_810E104: @ 810E104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r2, r1, 16
- movs r7, 0
- subs r0, 0x1
- cmp r0, 0x7
- bhi _0810E1CC
- lsls r0, 2
- ldr r1, _0810E128 @ =_0810E12C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E128: .4byte _0810E12C
- .align 2, 0
-_0810E12C:
- .4byte _0810E14C
- .4byte _0810E15E
- .4byte _0810E170
- .4byte _0810E182
- .4byte _0810E190
- .4byte _0810E1A6
- .4byte _0810E1B2
- .4byte _0810E1C0
-_0810E14C:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x68
- b _0810E1A0
-_0810E15E:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x4E
- b _0810E1A0
-_0810E170:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x5B
- b _0810E1A0
-_0810E182:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0x27
- b _0810E1CA
-_0810E190:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x34
-_0810E1A0:
- strh r0, [r1]
- strh r0, [r1, 0x2]
- b _0810E1CC
-_0810E1A6:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x41
- b _0810E1CA
-_0810E1B2:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0xD
- b _0810E1CA
-_0810E1C0:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x1A
-_0810E1CA:
- strh r0, [r1]
-_0810E1CC:
- movs r6, 0
- cmp r6, r7
- bcs _0810E21E
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r1, r2, 0
- orrs r1, r0
- lsls r1, 16
- mov r9, r1
- adds r1, r2, 0
- adds r1, 0x8
- orrs r1, r0
- lsls r1, 16
- mov r8, r1
-_0810E1EA:
- lsls r1, r6, 1
- mov r3, sp
- adds r5, r3, r1
- ldrh r0, [r5]
- adds r0, 0x7
- add r4, sp, 0x8
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x7
- mov r3, r9
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- ldrh r0, [r5]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x8
- mov r3, r8
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _0810E1EA
-_0810E21E:
- bl DrawWholeMapView
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810E104
-
- thumb_func_start sub_810E230
-sub_810E230: @ 810E230
- push {lr}
- ldr r0, _0810E244 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r1, _0810E248 @ =gUnknown_083F8376
- ldrh r1, [r1, 0x8]
- bl sub_810E104
- pop {r0}
- bx r0
- .align 2, 0
-_0810E244: .4byte gSpecialVar_0x8004
-_0810E248: .4byte gUnknown_083F8376
- thumb_func_end sub_810E230
-
- thumb_func_start ShowFieldMessageStringVar4
-ShowFieldMessageStringVar4: @ 810E24C
- push {lr}
- ldr r0, _0810E258 @ =gStringVar4
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810E258: .4byte gStringVar4
- thumb_func_end ShowFieldMessageStringVar4
-
- thumb_func_start StorePlayerCoordsInVars
-StorePlayerCoordsInVars: @ 810E25C
- ldr r1, _0810E26C @ =gSpecialVar_0x8004
- ldr r2, _0810E270 @ =gSaveBlock1
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0810E274 @ =gSpecialVar_0x8005
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810E26C: .4byte gSpecialVar_0x8004
-_0810E270: .4byte gSaveBlock1
-_0810E274: .4byte gSpecialVar_0x8005
- thumb_func_end StorePlayerCoordsInVars
-
- thumb_func_start GetPlayerTrainerIdOnesDigit
-GetPlayerTrainerIdOnesDigit: @ 810E278
- push {lr}
- ldr r0, _0810E294 @ =gSaveBlock2
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810E294: .4byte gSaveBlock2
- thumb_func_end GetPlayerTrainerIdOnesDigit
-
- thumb_func_start GetPlayerBigGuyGirlString
-GetPlayerBigGuyGirlString: @ 810E298
- push {lr}
- ldr r0, _0810E2AC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2B8
- ldr r0, _0810E2B0 @ =gStringVar1
- ldr r1, _0810E2B4 @ =gOtherText_BigGuy
- bl StringCopy
- b _0810E2C0
- .align 2, 0
-_0810E2AC: .4byte gSaveBlock2
-_0810E2B0: .4byte gStringVar1
-_0810E2B4: .4byte gOtherText_BigGuy
-_0810E2B8:
- ldr r0, _0810E2C4 @ =gStringVar1
- ldr r1, _0810E2C8 @ =gOtherText_BigGirl
- bl StringCopy
-_0810E2C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2C4: .4byte gStringVar1
-_0810E2C8: .4byte gOtherText_BigGirl
- thumb_func_end GetPlayerBigGuyGirlString
-
- thumb_func_start GetRivalSonDaughterString
-GetRivalSonDaughterString: @ 810E2CC
- push {lr}
- ldr r0, _0810E2E0 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2EC
- ldr r0, _0810E2E4 @ =gStringVar1
- ldr r1, _0810E2E8 @ =gOtherText_Daughter
- bl StringCopy
- b _0810E2F4
- .align 2, 0
-_0810E2E0: .4byte gSaveBlock2
-_0810E2E4: .4byte gStringVar1
-_0810E2E8: .4byte gOtherText_Daughter
-_0810E2EC:
- ldr r0, _0810E2F8 @ =gStringVar1
- ldr r1, _0810E2FC @ =gOtherText_Son
- bl StringCopy
-_0810E2F4:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2F8: .4byte gStringVar1
-_0810E2FC: .4byte gOtherText_Son
- thumb_func_end GetRivalSonDaughterString
-
- thumb_func_start sub_810E300
-sub_810E300: @ 810E300
- ldr r0, _0810E308 @ =gUnknown_02024D26
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810E308: .4byte gUnknown_02024D26
- thumb_func_end sub_810E300
-
- thumb_func_start CableCarWarp
-CableCarWarp: @ 810E30C
- push {lr}
- sub sp, 0x4
- ldr r0, _0810E32C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _0810E330
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0x6
- bl warp1_set
- b _0810E342
- .align 2, 0
-_0810E32C: .4byte gSpecialVar_0x8004
-_0810E330:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0x1
- movs r3, 0x6
- bl warp1_set
-_0810E342:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end CableCarWarp
-
- thumb_func_start SetFlagInVar
-SetFlagInVar: @ 810E348
- push {lr}
- ldr r0, _0810E358 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E358: .4byte gSpecialVar_0x8004
- thumb_func_end SetFlagInVar
-
- thumb_func_start GetWeekCount
-GetWeekCount: @ 810E35C
- push {lr}
- ldr r0, _0810E37C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E380 @ =0x0000270f
- cmp r0, r1
- bls _0810E376
- adds r0, r1, 0
-_0810E376:
- pop {r1}
- bx r1
- .align 2, 0
-_0810E37C: .4byte gLocalTime
-_0810E380: .4byte 0x0000270f
- thumb_func_end GetWeekCount
-
- thumb_func_start GetLeadMonFriendshipScore
-GetLeadMonFriendshipScore: @ 810E384
- push {r4,lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0810E3A8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _0810E3AC
- movs r0, 0x6
- b _0810E3FE
- .align 2, 0
-_0810E3A8: .4byte gPlayerParty
-_0810E3AC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xC7
- bls _0810E3BC
- movs r0, 0x5
- b _0810E3FE
-_0810E3BC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x95
- bls _0810E3CC
- movs r0, 0x4
- b _0810E3FE
-_0810E3CC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x63
- bls _0810E3DC
- movs r0, 0x3
- b _0810E3FE
-_0810E3DC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x31
- bls _0810E3EC
- movs r0, 0x2
- b _0810E3FE
-_0810E3EC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0
- bne _0810E3FC
- movs r0, 0
- b _0810E3FE
-_0810E3FC:
- movs r0, 0x1
-_0810E3FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonFriendshipScore
-
- thumb_func_start CB2_FieldShowRegionMap
-CB2_FieldShowRegionMap: @ 810E404
- push {lr}
- ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl FieldInitRegionMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end CB2_FieldShowRegionMap
-
- thumb_func_start FieldShowRegionMap
-FieldShowRegionMap: @ 810E414
- push {lr}
- ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810E420: .4byte CB2_FieldShowRegionMap
- thumb_func_end FieldShowRegionMap
-
- thumb_func_start DoPCTurnOnEffect
-DoPCTurnOnEffect: @ 810E424
- push {r4,lr}
- ldr r4, _0810E460 @ =Task_PCTurnOnEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E458
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E464 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E458:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E460: .4byte Task_PCTurnOnEffect
-_0810E464: .4byte gTasks
- thumb_func_end DoPCTurnOnEffect
-
- thumb_func_start Task_PCTurnOnEffect
-Task_PCTurnOnEffect: @ 810E468
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E48C @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E486
- adds r0, r1, 0
- bl PCTurnOffEffect_0
-_0810E486:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E48C: .4byte gTasks
- thumb_func_end Task_PCTurnOnEffect
-
- thumb_func_start PCTurnOffEffect_0
-PCTurnOffEffect_0: @ 810E490
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r6, 0
- movs r5, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E4FC
- strh r5, [r4, 0xE]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E4C4
- cmp r0, 0x3
- bgt _0810E4BA
- cmp r0, 0x2
- beq _0810E4C0
- b _0810E4CC
-_0810E4BA:
- cmp r1, 0x4
- beq _0810E4C8
- b _0810E4CC
-_0810E4C0:
- movs r6, 0
- b _0810E4CA
-_0810E4C4:
- movs r6, 0xFF
- b _0810E4CA
-_0810E4C8:
- movs r6, 0x1
-_0810E4CA:
- movs r5, 0xFF
-_0810E4CC:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, r5, 24
- asrs r2, 24
- bl PCTurnOffEffect_1
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E4FC
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E4FC:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PCTurnOffEffect_0
-
- thumb_func_start PCTurnOffEffect_1
-PCTurnOffEffect_1: @ 810E508
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r3, 0
- lsls r0, 16
- cmp r0, 0
- beq _0810E544
- ldr r0, _0810E528 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E52C
- movs r3, 0x4
- b _0810E566
- .align 2, 0
-_0810E528: .4byte gSpecialVar_0x8004
-_0810E52C:
- cmp r0, 0x1
- bne _0810E538
- ldr r3, _0810E534 @ =0x0000025a
- b _0810E566
- .align 2, 0
-_0810E534: .4byte 0x0000025a
-_0810E538:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E540 @ =0x00000259
- b _0810E566
- .align 2, 0
-_0810E540: .4byte 0x00000259
-_0810E544:
- ldr r0, _0810E550 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E554
- movs r3, 0x5
- b _0810E566
- .align 2, 0
-_0810E550: .4byte gSpecialVar_0x8004
-_0810E554:
- cmp r0, 0x1
- bne _0810E560
- ldr r3, _0810E55C @ =0x0000027f
- b _0810E566
- .align 2, 0
-_0810E55C: .4byte 0x0000027f
-_0810E560:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E594 @ =0x0000027e
-_0810E566:
- ldr r2, _0810E598 @ =gSaveBlock1
- movs r5, 0
- ldrsh r0, [r2, r5]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r5, 0x2
- ldrsh r1, [r2, r5]
- lsls r2, r4, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r3, r2
- adds r2, r3, 0
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E594: .4byte 0x0000027e
-_0810E598: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect_1
-
- thumb_func_start DoPCTurnOffEffect
-DoPCTurnOffEffect: @ 810E59C
- push {lr}
- bl PCTurnOffEffect
- pop {r0}
- bx r0
- thumb_func_end DoPCTurnOffEffect
-
- thumb_func_start PCTurnOffEffect
-PCTurnOffEffect: @ 810E5A8
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- movs r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E5D2
- cmp r0, 0x3
- bgt _0810E5C8
- cmp r0, 0x2
- beq _0810E5CE
- b _0810E5DA
-_0810E5C8:
- cmp r1, 0x4
- beq _0810E5D6
- b _0810E5DA
-_0810E5CE:
- movs r6, 0
- b _0810E5D8
-_0810E5D2:
- movs r6, 0xFF
- b _0810E5D8
-_0810E5D6:
- movs r6, 0x1
-_0810E5D8:
- movs r5, 0xFF
-_0810E5DA:
- ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E5EC
- movs r4, 0x4
- b _0810E5FE
- .align 2, 0
-_0810E5E8: .4byte gSpecialVar_0x8004
-_0810E5EC:
- cmp r0, 0x1
- bne _0810E5F8
- ldr r4, _0810E5F4 @ =0x0000025a
- b _0810E5FE
- .align 2, 0
-_0810E5F4: .4byte 0x0000025a
-_0810E5F8:
- cmp r0, 0x2
- bne _0810E5FE
- ldr r4, _0810E630 @ =0x00000259
-_0810E5FE:
- ldr r2, _0810E634 @ =gSaveBlock1
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E630: .4byte 0x00000259
-_0810E634: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect
-
- thumb_func_start DoLotteryCornerComputerEffect
-DoLotteryCornerComputerEffect: @ 810E638
- push {r4,lr}
- ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E66C
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E678 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E66C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E674: .4byte Task_LotteryCornerComputerEffect
-_0810E678: .4byte gTasks
- thumb_func_end DoLotteryCornerComputerEffect
-
- thumb_func_start Task_LotteryCornerComputerEffect
-Task_LotteryCornerComputerEffect: @ 810E67C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E6A0 @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E69A
- adds r0, r1, 0
- bl LotteryCornerComputerEffect
-_0810E69A:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E6A0: .4byte gTasks
- thumb_func_end Task_LotteryCornerComputerEffect
-
- thumb_func_start LotteryCornerComputerEffect
-LotteryCornerComputerEffect: @ 810E6A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E712
- movs r0, 0
- strh r0, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810E6DC
- ldr r2, _0810E6D4 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E6D8 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810E6F2
- .align 2, 0
-_0810E6D4: .4byte 0x00000e9d
-_0810E6D8: .4byte 0x00000ea5
-_0810E6DC:
- ldr r2, _0810E720 @ =0x00000e58
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0xE6
- lsls r2, 4
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810E6F2:
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E712
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E712:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E720: .4byte 0x00000e58
- thumb_func_end LotteryCornerComputerEffect
-
- thumb_func_start EndLotteryCornerComputerEffect
-EndLotteryCornerComputerEffect: @ 810E724
- push {lr}
- ldr r2, _0810E744 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E748 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_0810E744: .4byte 0x00000e9d
-_0810E748: .4byte 0x00000ea5
- thumb_func_end EndLotteryCornerComputerEffect
-
- thumb_func_start SetDepartmentStoreFloorVar
-SetDepartmentStoreFloorVar: @ 810E74C
- push {lr}
- ldr r0, _0810E768 @ =gSaveBlock1
- ldrb r0, [r0, 0x15]
- subs r0, 0x11
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _0810E79C
- lsls r0, 2
- ldr r1, _0810E76C @ =_0810E770
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E768: .4byte gSaveBlock1
-_0810E76C: .4byte _0810E770
- .align 2, 0
-_0810E770:
- .4byte _0810E79C
- .4byte _0810E788
- .4byte _0810E78C
- .4byte _0810E790
- .4byte _0810E794
- .4byte _0810E798
-_0810E788:
- movs r1, 0x1
- b _0810E79E
-_0810E78C:
- movs r1, 0x2
- b _0810E79E
-_0810E790:
- movs r1, 0x3
- b _0810E79E
-_0810E794:
- movs r1, 0x4
- b _0810E79E
-_0810E798:
- movs r1, 0xF
- b _0810E79E
-_0810E79C:
- movs r1, 0
-_0810E79E:
- ldr r0, _0810E7A8 @ =0x00004043
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E7A8: .4byte 0x00004043
- thumb_func_end SetDepartmentStoreFloorVar
-
- thumb_func_start ScriptAddElevatorMenuItem
-ScriptAddElevatorMenuItem: @ 810E7AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, _0810E81C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- adds r2, r0, 0
- ldr r3, _0810E820 @ =gUnknown_03000760
- cmp r1, 0
- bne _0810E7E8
- movs r1, 0
- adds r5, r3, 0
- movs r4, 0x10
-_0810E7D8:
- lsls r0, r1, 2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _0810E7D8
-_0810E7E8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r6, [r0]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r7, [r0, 0x1]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strb r1, [r0, 0x2]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r8
- strb r1, [r0, 0x3]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E81C: .4byte gSpecialVar_0x8004
-_0810E820: .4byte gUnknown_03000760
- thumb_func_end ScriptAddElevatorMenuItem
-
- thumb_func_start ScriptShowElevatorMenu
-ScriptShowElevatorMenu: @ 810E824
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810E868 @ =gUnknown_0203925A
- strb r4, [r5]
- ldr r0, _0810E86C @ =gUnknown_0203925B
- strb r4, [r0]
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl ScriptAddElevatorMenuItem
- ldr r2, _0810E870 @ =gUnknown_03000760
- ldrb r0, [r2]
- cmp r0, 0x10
- beq _0810E85C
- adds r1, r5, 0
-_0810E846:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E846
-_0810E85C:
- bl sub_810E874
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E868: .4byte gUnknown_0203925A
-_0810E86C: .4byte gUnknown_0203925B
-_0810E870: .4byte gUnknown_03000760
- thumb_func_end ScriptShowElevatorMenu
-
- thumb_func_start sub_810E874
-sub_810E874: @ 810E874
- push {r4-r6,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- ldr r4, _0810E8B8 @ =gUnknown_0203925A
- ldrb r0, [r4]
- cmp r0, 0x5
- bls _0810E8C0
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810E8BC @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810ECD4
- b _0810E8E8
- .align 2, 0
-_0810E8B8: .4byte gUnknown_0203925A
-_0810E8BC: .4byte gUnknown_0203925C
-_0810E8C0:
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- bl MenuDrawTextWindow
- ldrb r3, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
-_0810E8E8:
- movs r4, 0
- ldr r1, _0810E938 @ =gUnknown_03000760
- ldrb r0, [r1]
- cmp r0, 0x10
- beq _0810E924
- ldr r6, _0810E93C @ =gUnknown_083F8380
- adds r5, r1, 0
-_0810E8F6:
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _0810E924
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E8F6
-_0810E924:
- bl sub_810E944
- ldr r0, _0810E940 @ =sub_810E984
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E938: .4byte gUnknown_03000760
-_0810E93C: .4byte gUnknown_083F8380
-_0810E940: .4byte sub_810E984
- thumb_func_end sub_810E874
-
- thumb_func_start sub_810E944
-sub_810E944: @ 810E944
- push {lr}
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r0, _0810E978 @ =gOtherText_NowOn
- movs r1, 0x15
- movs r2, 0x1
- movs r3, 0x40
- bl sub_8072BD8
- ldr r1, _0810E97C @ =gUnknown_083F8380
- ldr r0, _0810E980 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x15
- movs r2, 0x3
- movs r3, 0x40
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810E978: .4byte gOtherText_NowOn
-_0810E97C: .4byte gUnknown_083F8380
-_0810E980: .4byte gSpecialVar_0x8005
- thumb_func_end sub_810E944
-
- thumb_func_start sub_810E984
-sub_810E984: @ 810E984
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810E9B8
- ldr r1, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810E9B8
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810EAC8
-_0810E9B8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810E9E8
- ldr r2, _0810EA48 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810EA4C @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810E9E8
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810EAC8
-_0810E9E8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r2
- cmp r1, 0
- beq _0810EA94
- ldr r1, _0810EA50 @ =gUnknown_03000760
- ldr r4, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- movs r2, 0x2
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0x2
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- bl saved_warp2_set_2
- ldr r1, _0810EA54 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- ldrb r2, [r4]
- cmp r0, r2
- bne _0810EA5C
- ldr r1, _0810EA58 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
- b _0810EABC
- .align 2, 0
-_0810EA44: .4byte gMain
-_0810EA48: .4byte gUnknown_0203925B
-_0810EA4C: .4byte gUnknown_0203925A
-_0810EA50: .4byte gUnknown_03000760
-_0810EA54: .4byte gSpecialVar_0x8005
-_0810EA58: .4byte gScriptResult
-_0810EA5C:
- ldr r0, _0810EA88 @ =gScriptResult
- strh r5, [r0]
- ldrb r0, [r4]
- strh r0, [r1]
- bl sub_810EBEC
- ldr r0, _0810EA8C @ =gScriptLastTalked
- ldrb r0, [r0]
- ldr r2, _0810EA90 @ =gSaveBlock1
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- movs r3, 0x1
- bl FieldObjectTurnByLocalIdAndMap
- bl sub_810EEDC
- bl MenuZeroFillScreen
- adds r0, r6, 0
- bl DestroyTask
- b _0810EABC
- .align 2, 0
-_0810EA88: .4byte gScriptResult
-_0810EA8C: .4byte gScriptLastTalked
-_0810EA90: .4byte gSaveBlock1
-_0810EA94:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0810EABC
- ldr r0, _0810EAC4 @ =gScriptResult
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
-_0810EABC:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EAC4: .4byte gScriptResult
- thumb_func_end sub_810E984
-
- thumb_func_start sub_810EAC8
-sub_810EAC8: @ 810EAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r7, 0
- movs r4, 0
- ldr r0, _0810EAEC @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810EAF0
- movs r0, 0
- b _0810EB78
- .align 2, 0
-_0810EAEC: .4byte gUnknown_0203925A
-_0810EAF0:
- cmp r1, 0x40
- bne _0810EB04
- cmp r2, 0
- bne _0810EB18
- ldr r0, _0810EB00 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r7, 0x1
- b _0810EB1C
- .align 2, 0
-_0810EB00: .4byte gUnknown_0203925B
-_0810EB04:
- cmp r3, 0x80
- bne _0810EB18
- cmp r5, 0x4
- bne _0810EB18
- ldr r0, _0810EB84 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_0810EB18:
- cmp r7, 0
- beq _0810EB76
-_0810EB1C:
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_810EB90
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r2, _0810EB88 @ =gUnknown_03000760
- lsls r1, r4, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- beq _0810EB76
- ldr r0, _0810EB8C @ =gUnknown_083F8380
- mov r8, r0
- adds r6, r2, 0
-_0810EB44:
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bhi _0810EB76
- lsls r1, r4, 2
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810EB44
-_0810EB76:
- adds r0, r7, 0
-_0810EB78:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810EB84: .4byte gUnknown_0203925B
-_0810EB88: .4byte gUnknown_03000760
-_0810EB8C: .4byte gUnknown_083F8380
- thumb_func_end sub_810EAC8
-
- thumb_func_start sub_810EB90
-sub_810EB90: @ 810EB90
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810EBB4
- ldr r0, _0810EBB0 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810EBB8
- .align 2, 0
-_0810EBB0: .4byte gUnknown_0203925C
-_0810EBB4:
- bl sub_810ECB0
-_0810EBB8:
- adds r1, r4, r5
- ldr r0, _0810EBC8 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810EBCC
- bl sub_810ECD4
- b _0810EBE0
- .align 2, 0
-_0810EBC8: .4byte gUnknown_0203925A
-_0810EBCC:
- cmp r1, r0
- bne _0810EBE0
- ldr r0, _0810EBE8 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EBE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EBE8: .4byte gUnknown_0203925C
- thumb_func_end sub_810EB90
-
- thumb_func_start sub_810EBEC
-sub_810EBEC: @ 810EBEC
- push {lr}
- ldr r0, _0810EC2C @ =sub_810EC34
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810EC30 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- movs r2, 0x1
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x10]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- bl sub_810ECFC
- movs r0, 0x59
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC2C: .4byte sub_810EC34
-_0810EC30: .4byte gTasks
- thumb_func_end sub_810EBEC
-
- thumb_func_start sub_810EC34
-sub_810EC34: @ 810EC34
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810EC98 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810EC92
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810EC92
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- movs r0, 0
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- bne _0810EC92
- movs r0, 0x49
- bl PlaySE
- adds r0, r5, 0
- bl sub_810EC9C
- bl InstallCameraPanAheadCallback
-_0810EC92:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC98: .4byte gTasks
- thumb_func_end sub_810EC34
-
- thumb_func_start sub_810EC9C
-sub_810EC9C: @ 810EC9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810EC9C
-
- thumb_func_start sub_810ECB0
-sub_810ECB0: @ 810ECB0
- push {lr}
- ldr r2, _0810ECD0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810ECCC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x24
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810ECCC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECD0: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECB0
-
- thumb_func_start sub_810ECD4
-sub_810ECD4: @ 810ECD4
- push {lr}
- ldr r2, _0810ECF8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810ECF2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x24
- movs r2, 0x48
- bl CreateVerticalScrollIndicators
-_0810ECF2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECF8: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECD4
-
- thumb_func_start sub_810ECFC
-sub_810ECFC: @ 810ECFC
- push {r4,lr}
- ldr r4, _0810ED38 @ =sub_810ED40
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810ED30
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810ED3C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810ED30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED38: .4byte sub_810ED40
-_0810ED3C: .4byte gTasks
- thumb_func_end sub_810ECFC
-
- thumb_func_start sub_810ED40
-sub_810ED40: @ 810ED40
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0810ED5C @ =gTasks
- adds r0, r1
- bl sub_810ED60
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED5C: .4byte gTasks
- thumb_func_end sub_810ED40
-
- thumb_func_start sub_810ED60
-sub_810ED60: @ 810ED60
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x8
- beq _0810ED6E
- b _0810EEB2
-_0810ED6E:
- movs r0, 0
- strh r0, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810EE14
- ldr r2, _0810EDFC @ =0x00000e68
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EE00 @ =0x00000e69
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE04 @ =0x00000e6a
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- movs r2, 0xE7
- lsls r2, 4
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE08 @ =0x00000e72
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE0C @ =0x00000e78
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE10 @ =0x00000e7a
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810EE92
- .align 2, 0
-_0810EDFC: .4byte 0x00000e68
-_0810EE00: .4byte 0x00000e69
-_0810EE04: .4byte 0x00000e6a
-_0810EE08: .4byte 0x00000e72
-_0810EE0C: .4byte 0x00000e78
-_0810EE10: .4byte 0x00000e7a
-_0810EE14:
- ldr r2, _0810EEC0 @ =0x00000e6b
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EEC4 @ =0x00000e6c
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EEC8 @ =0x00000e6d
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EECC @ =0x00000e73
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED0 @ =0x00000e75
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED4 @ =0x00000e7b
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED8 @ =0x00000e7d
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810EE92:
- bl DrawWholeMapView
- ldrh r0, [r5, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x10]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0810EEB2
- ldrb r0, [r5, 0xA]
- bl DestroyTask
-_0810EEB2:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EEC0: .4byte 0x00000e6b
-_0810EEC4: .4byte 0x00000e6c
-_0810EEC8: .4byte 0x00000e6d
-_0810EECC: .4byte 0x00000e73
-_0810EED0: .4byte 0x00000e75
-_0810EED4: .4byte 0x00000e7b
-_0810EED8: .4byte 0x00000e7d
- thumb_func_end sub_810ED60
-
- thumb_func_start sub_810EEDC
-sub_810EEDC: @ 810EEDC
- push {r4,lr}
- ldr r4, _0810EF08 @ =gUnknown_0203925C
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810EEF0
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EEF0:
- ldrb r0, [r4]
- lsrs r0, 1
- cmp r0, 0x1
- bne _0810EEFE
- movs r0, 0
- bl DestroyVerticalScrollIndicator
-_0810EEFE:
- bl BuyMenuFreeMemory
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF08: .4byte gUnknown_0203925C
- thumb_func_end sub_810EEDC
-
- thumb_func_start SetTrickHouseEndRoomFlag
-SetTrickHouseEndRoomFlag: @ 810EF0C
- push {lr}
- ldr r1, _0810EF1C @ =gSpecialVar_0x8004
- ldr r0, _0810EF20 @ =0x00000259
- strh r0, [r1]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF1C: .4byte gSpecialVar_0x8004
-_0810EF20: .4byte 0x00000259
- thumb_func_end SetTrickHouseEndRoomFlag
-
- thumb_func_start ResetTrickHouseEndRoomFlag
-ResetTrickHouseEndRoomFlag: @ 810EF24
- push {lr}
- ldr r1, _0810EF34 @ =gSpecialVar_0x8004
- ldr r0, _0810EF38 @ =0x00000259
- strh r0, [r1]
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF34: .4byte gSpecialVar_0x8004
-_0810EF38: .4byte 0x00000259
- thumb_func_end ResetTrickHouseEndRoomFlag
-
- thumb_func_start CheckLeadMonCool
-CheckLeadMonCool: @ 810EF3C
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF60
- movs r0, 0x1
- b _0810EF62
- .align 2, 0
-_0810EF5C: .4byte gPlayerParty
-_0810EF60:
- movs r0, 0
-_0810EF62:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCool
-
- thumb_func_start CheckLeadMonBeauty
-CheckLeadMonBeauty: @ 810EF68
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF8C
- movs r0, 0x1
- b _0810EF8E
- .align 2, 0
-_0810EF88: .4byte gPlayerParty
-_0810EF8C:
- movs r0, 0
-_0810EF8E:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonBeauty
-
- thumb_func_start CheckLeadMonCute
-CheckLeadMonCute: @ 810EF94
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFB8
- movs r0, 0x1
- b _0810EFBA
- .align 2, 0
-_0810EFB4: .4byte gPlayerParty
-_0810EFB8:
- movs r0, 0
-_0810EFBA:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCute
-
- thumb_func_start CheckLeadMonSmart
-CheckLeadMonSmart: @ 810EFC0
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFE4
- movs r0, 0x1
- b _0810EFE6
- .align 2, 0
-_0810EFE0: .4byte gPlayerParty
-_0810EFE4:
- movs r0, 0
-_0810EFE6:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonSmart
-
- thumb_func_start CheckLeadMonTough
-CheckLeadMonTough: @ 810EFEC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F00C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- bl GetMonData
- cmp r0, 0xC7
- bls _0810F010
- movs r0, 0x1
- b _0810F012
- .align 2, 0
-_0810F00C: .4byte gPlayerParty
-_0810F010:
- movs r0, 0
-_0810F012:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonTough
-
- thumb_func_start IsGrassTypeInParty
-IsGrassTypeInParty: @ 810F018
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _0810F068 @ =gBaseStats
-_0810F01E:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F06C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810F074
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0810F074
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x6]
- cmp r0, 0xC
- beq _0810F060
- ldrb r0, [r1, 0x7]
- cmp r0, 0xC
- bne _0810F074
-_0810F060:
- ldr r1, _0810F070 @ =gScriptResult
- movs r0, 0x1
- b _0810F082
- .align 2, 0
-_0810F068: .4byte gBaseStats
-_0810F06C: .4byte gPlayerParty
-_0810F070: .4byte gScriptResult
-_0810F074:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0810F01E
- ldr r1, _0810F08C @ =gScriptResult
- movs r0, 0
-_0810F082:
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F08C: .4byte gScriptResult
- thumb_func_end IsGrassTypeInParty
-
- thumb_func_start ShowGlassWorkshopMenu
-ShowGlassWorkshopMenu: @ 810F090
- push {r4,r5,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810F104 @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810F2B4
- ldr r5, _0810F108 @ =gUnknown_083F83C0
-_0810F0CA:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810F0CA
- ldr r1, _0810F10C @ =gUnknown_0203925B
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810F110 @ =gUnknown_0203925A
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0810F114 @ =sub_810F118
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F104: .4byte gUnknown_0203925C
-_0810F108: .4byte gUnknown_083F83C0
-_0810F10C: .4byte gUnknown_0203925B
-_0810F110: .4byte gUnknown_0203925A
-_0810F114: .4byte sub_810F118
- thumb_func_end ShowGlassWorkshopMenu
-
- thumb_func_start sub_810F118
-sub_810F118: @ 810F118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810F14A
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810F14A
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810F1F4
-_0810F14A:
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810F17A
- ldr r2, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810F1EC @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810F17A
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810F1F4
-_0810F17A:
- ldr r4, _0810F1E4 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810F1AE
- bl sub_8072DEC
- ldr r0, _0810F1F0 @ =gScriptResult
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r1]
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1AE:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810F1DE
- bl sub_8072DEC
- ldr r1, _0810F1F0 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F1E4: .4byte gMain
-_0810F1E8: .4byte gUnknown_0203925B
-_0810F1EC: .4byte gUnknown_0203925A
-_0810F1F0: .4byte gScriptResult
- thumb_func_end sub_810F118
-
- thumb_func_start sub_810F1F4
-sub_810F1F4: @ 810F1F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r6, 0
- movs r4, 0
- ldr r0, _0810F214 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810F218
- movs r0, 0
- b _0810F282
- .align 2, 0
-_0810F214: .4byte gUnknown_0203925A
-_0810F218:
- cmp r1, 0x40
- bne _0810F22C
- cmp r2, 0
- bne _0810F240
- ldr r0, _0810F228 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r6, 0x1
- b _0810F244
- .align 2, 0
-_0810F228: .4byte gUnknown_0203925B
-_0810F22C:
- cmp r3, 0x80
- bne _0810F240
- cmp r5, 0x4
- bne _0810F240
- ldr r0, _0810F288 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r6, 0x1
-_0810F240:
- cmp r6, 0
- beq _0810F280
-_0810F244:
- adds r0, r4, 0
- movs r1, 0x5
- bl GlassWorkshopUpdateScrollIndicators
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x9
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r7, _0810F28C @ =gUnknown_083F83C0
-_0810F25C:
- lsls r0, r4, 2
- adds r0, r7
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0810F25C
-_0810F280:
- adds r0, r6, 0
-_0810F282:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F288: .4byte gUnknown_0203925B
-_0810F28C: .4byte gUnknown_083F83C0
- thumb_func_end sub_810F1F4
-
- thumb_func_start sub_810F290
-sub_810F290: @ 810F290
- push {lr}
- ldr r2, _0810F2B0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810F2AC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x2C
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810F2AC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2B0: .4byte gUnknown_0203925C
- thumb_func_end sub_810F290
-
- thumb_func_start sub_810F2B4
-sub_810F2B4: @ 810F2B4
- push {lr}
- ldr r2, _0810F2D8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810F2D2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x2C
- movs r2, 0x58
- bl CreateVerticalScrollIndicators
-_0810F2D2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2D8: .4byte gUnknown_0203925C
- thumb_func_end sub_810F2B4
-
- thumb_func_start GlassWorkshopUpdateScrollIndicators
-GlassWorkshopUpdateScrollIndicators: @ 810F2DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810F300
- ldr r0, _0810F2FC @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810F304
- .align 2, 0
-_0810F2FC: .4byte gUnknown_0203925C
-_0810F300:
- bl sub_810F290
-_0810F304:
- adds r1, r4, r5
- ldr r0, _0810F314 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810F318
- bl sub_810F2B4
- b _0810F32C
- .align 2, 0
-_0810F314: .4byte gUnknown_0203925A
-_0810F318:
- cmp r1, r0
- bne _0810F32C
- ldr r0, _0810F334 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810F32C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F334: .4byte gUnknown_0203925C
- thumb_func_end GlassWorkshopUpdateScrollIndicators
-
- thumb_func_start SpawnCameraDummy
-SpawnCameraDummy: @ 810F338
- push {lr}
- sub sp, 0x8
- ldr r0, _0810F380 @ =gSaveBlock1
- ldrh r3, [r0]
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x7F
- bl SpawnSpecialFieldObjectParametrized
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F384 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r1, 0x4]
- bl CameraObjectSetFollowedObjectId
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0810F380: .4byte gSaveBlock1
-_0810F384: .4byte gMapObjects
- thumb_func_end SpawnCameraDummy
-
- thumb_func_start RemoveCameraDummy
-RemoveCameraDummy: @ 810F388
- push {lr}
- bl GetPlayerAvatarObjectId
- lsls r0, 24
- lsrs r0, 24
- bl CameraObjectSetFollowedObjectId
- ldr r0, _0810F3A8 @ =gSaveBlock1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x7F
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3A8: .4byte gSaveBlock1
- thumb_func_end RemoveCameraDummy
-
- thumb_func_start GetPokeblockNameByMonNature
-GetPokeblockNameByMonNature: @ 810F3AC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F3D4 @ =gPlayerParty
- adds r0, r1
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810F3D8 @ =gStringVar1
- bl sub_810CB68
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F3D4: .4byte gPlayerParty
-_0810F3D8: .4byte gStringVar1
- thumb_func_end GetPokeblockNameByMonNature
-
- thumb_func_start GetSecretBaseNearbyMapName
-GetSecretBaseNearbyMapName: @ 810F3DC
- push {r4,lr}
- ldr r4, _0810F3FC @ =gStringVar1
- ldr r0, _0810F400 @ =0x00004026
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FBFB4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3FC: .4byte gStringVar1
-_0810F400: .4byte 0x00004026
- thumb_func_end GetSecretBaseNearbyMapName
-
- thumb_func_start sub_810F404
-sub_810F404: @ 810F404
- push {lr}
- movs r0, 0x20
- bl sub_8053108
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_810F404
-
- thumb_func_start sub_810F414
-sub_810F414: @ 810F414
- push {lr}
- ldr r0, _0810F420 @ =gStringVar1
- bl sub_8135FF4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F420: .4byte gStringVar1
- thumb_func_end sub_810F414
-
- thumb_func_start sub_810F424
-sub_810F424: @ 810F424
- push {r4,r5,lr}
- ldr r2, _0810F458 @ =gSaveBlock1
- ldr r1, _0810F45C @ =0x00002dd4
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 25
- ldr r0, _0810F460 @ =0x00002dd6
- adds r2, r0
- lsrs r1, 25
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _0810F464 @ =gUnknown_083F83E0
- ldr r0, _0810F468 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- adds r5, r1, r0
- movs r0, 0x2
- bl GetPriceReduction
- lsls r0, 24
- cmp r0, 0
- bne _0810F470
- ldr r4, _0810F46C @ =gUnknown_083F83EC
- b _0810F472
- .align 2, 0
-_0810F458: .4byte gSaveBlock1
-_0810F45C: .4byte 0x00002dd4
-_0810F460: .4byte 0x00002dd6
-_0810F464: .4byte gUnknown_083F83E0
-_0810F468: .4byte gSpecialVar_0x8004
-_0810F46C: .4byte gUnknown_083F83EC
-_0810F470:
- ldr r4, _0810F484 @ =gUnknown_083F83F8
-_0810F472:
- adds r0, r5, 0
- movs r1, 0xC
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F484: .4byte gUnknown_083F83F8
- thumb_func_end sub_810F424
-
- thumb_func_start sub_810F488
-sub_810F488: @ 810F488
- push {lr}
- ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
- ldr r0, _0810F4A4 @ =0x00000277
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4A8
- movs r0, 0x1
- b _0810F4AA
- .align 2, 0
-_0810F4A0: .4byte gSpecialVar_0x8004
-_0810F4A4: .4byte 0x00000277
-_0810F4A8:
- movs r0, 0
-_0810F4AA:
- pop {r1}
- bx r1
- thumb_func_end sub_810F488
-
- thumb_func_start sub_810F4B0
-sub_810F4B0: @ 810F4B0
- push {lr}
- ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
- movs r0, 0x9E
- lsls r0, 2
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4CC
- movs r0, 0x1
- b _0810F4CE
- .align 2, 0
-_0810F4C8: .4byte gSpecialVar_0x8004
-_0810F4CC:
- movs r0, 0
-_0810F4CE:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4B0
-
- thumb_func_start sub_810F4D4
-sub_810F4D4: @ 810F4D4
- push {lr}
- ldr r1, _0810F4EC @ =gSpecialVar_0x8004
- ldr r0, _0810F4F0 @ =0x00000279
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4F4
- movs r0, 0x1
- b _0810F4F6
- .align 2, 0
-_0810F4EC: .4byte gSpecialVar_0x8004
-_0810F4F0: .4byte 0x00000279
-_0810F4F4:
- movs r0, 0
-_0810F4F6:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4D4
-
- thumb_func_start sub_810F4FC
-sub_810F4FC: @ 810F4FC
- push {lr}
- ldr r1, _0810F514 @ =gSpecialVar_0x8004
- ldr r0, _0810F518 @ =0x0000027a
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F51C
- movs r0, 0x1
- b _0810F51E
- .align 2, 0
-_0810F514: .4byte gSpecialVar_0x8004
-_0810F518: .4byte 0x0000027a
-_0810F51C:
- movs r0, 0
-_0810F51E:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4FC
-
- thumb_func_start LeadMonHasEffortRibbon
-LeadMonHasEffortRibbon: @ 810F524
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F548 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F548: .4byte gPlayerParty
- thumb_func_end LeadMonHasEffortRibbon
-
- thumb_func_start GivLeadMonEffortRibbon
-GivLeadMonEffortRibbon: @ 810F54C
- push {lr}
- sub sp, 0x4
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810F580 @ =0x0000083b
- bl FlagSet
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F584 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F580: .4byte 0x0000083b
-_0810F584: .4byte gPlayerParty
- thumb_func_end GivLeadMonEffortRibbon
-
- thumb_func_start GetLeadMonEVCount
-GetLeadMonEVCount: @ 810F588
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F5AC @ =gPlayerParty
- adds r0, r1
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, _0810F5B0 @ =0x01fd0000
- cmp r0, r1
- bhi _0810F5B4
- movs r0, 0
- b _0810F5B6
- .align 2, 0
-_0810F5AC: .4byte gPlayerParty
-_0810F5B0: .4byte 0x01fd0000
-_0810F5B4:
- movs r0, 0x1
-_0810F5B6:
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonEVCount
-
- thumb_func_start sub_810F5BC
-sub_810F5BC: @ 810F5BC
- push {lr}
- movs r0, 0xC7
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810F610
- ldr r0, _0810F5E8 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x83
- lsls r0, 3
- cmp r1, r0
- bne _0810F610
- subs r0, 0x75
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F5F0
- ldr r0, _0810F5EC @ =0x0000409a
- movs r1, 0x4
- b _0810F602
- .align 2, 0
-_0810F5E8: .4byte gSaveBlock1
-_0810F5EC: .4byte 0x0000409a
-_0810F5F0:
- movs r0, 0xE9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F610
- ldr r0, _0810F60C @ =0x0000409a
- movs r1, 0x5
-_0810F602:
- bl VarSet
- movs r0, 0x1
- b _0810F612
- .align 2, 0
-_0810F60C: .4byte 0x0000409a
-_0810F610:
- movs r0, 0
-_0810F612:
- pop {r1}
- bx r1
- thumb_func_end sub_810F5BC
-
- thumb_func_start sub_810F618
-sub_810F618: @ 810F618
- push {lr}
- ldr r0, _0810F624 @ =0x0000085f
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810F624: .4byte 0x0000085f
- thumb_func_end sub_810F618
-
- thumb_func_start PutZigzagoonInPlayerParty
-PutZigzagoonInPlayerParty: @ 810F628
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r5, _0810F690 @ =gPlayerParty
- movs r1, 0x90
- lsls r1, 1
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0x7
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x1
- add r0, sp, 0x10
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x2E
- add r2, sp, 0x10
- bl SetMonData
- add r1, sp, 0x10
- movs r0, 0x21
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0xD
- add r2, sp, 0x10
- bl SetMonData
- add r0, sp, 0x10
- strh r4, [r0]
- adds r0, r5, 0
- movs r1, 0xE
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xF
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x10
- add r2, sp, 0x10
- bl SetMonData
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F690: .4byte gPlayerParty
- thumb_func_end PutZigzagoonInPlayerParty
-
- thumb_func_start IsStarterInParty
-IsStarterInParty: @ 810F694
- push {r4-r6,lr}
- ldr r0, _0810F6D0 @ =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r6, r0, 16
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810F6E2
-_0810F6B6:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0810F6D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- bne _0810F6D8
- movs r0, 0x1
- b _0810F6E4
- .align 2, 0
-_0810F6D0: .4byte 0x00004023
-_0810F6D4: .4byte gPlayerParty
-_0810F6D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810F6B6
-_0810F6E2:
- movs r0, 0
-_0810F6E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsStarterInParty
-
- thumb_func_start CheckFreePokemonStorageSpace
-CheckFreePokemonStorageSpace: @ 810F6EC
- push {r4-r6,lr}
- movs r5, 0
-_0810F6F0:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_0810F6FC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _0810F718 @ =gUnknown_020300A4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _0810F71C
- movs r0, 0x1
- b _0810F732
- .align 2, 0
-_0810F718: .4byte gUnknown_020300A4
-_0810F71C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _0810F6FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0810F6F0
- movs r0, 0
-_0810F732:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckFreePokemonStorageSpace
-
- thumb_func_start IsPokerusInParty
-IsPokerusInParty: @ 810F738
- push {lr}
- ldr r0, _0810F74C @ =gPlayerParty
- movs r1, 0x3F
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0810F750
- movs r0, 0x1
- b _0810F752
- .align 2, 0
-_0810F74C: .4byte gPlayerParty
-_0810F750:
- movs r0, 0
-_0810F752:
- pop {r1}
- bx r1
- thumb_func_end IsPokerusInParty
-
- thumb_func_start sub_810F758
-sub_810F758: @ 810F758
- push {lr}
- ldr r0, _0810F798 @ =sub_810F7A8
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F79C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
- ldrh r2, [r0]
- movs r0, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0xD6
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810F798: .4byte sub_810F7A8
-_0810F79C: .4byte gTasks
-_0810F7A0: .4byte gSpecialVar_0x8005
-_0810F7A4: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810F758
-
- thumb_func_start sub_810F7A8
-sub_810F7A8: @ 810F7A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810F810 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810F808
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810F808
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _0810F808
- adds r0, r5, 0
- bl sub_810F814
- bl InstallCameraPanAheadCallback
-_0810F808:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F810: .4byte gTasks
- thumb_func_end sub_810F7A8
-
- thumb_func_start sub_810F814
-sub_810F814: @ 810F814
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810F814
-
- thumb_func_start sub_810F828
-sub_810F828: @ 810F828
- push {lr}
- movs r0, 0xAE
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_810F828
-
- thumb_func_start SetRoute119Weather
-SetRoute119Weather: @ 810F83C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F858
- movs r0, 0x14
- bl SetSav1Weather
-_0810F858:
- pop {r0}
- bx r0
- thumb_func_end SetRoute119Weather
-
- thumb_func_start SetRoute123Weather
-SetRoute123Weather: @ 810F85C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F878
- movs r0, 0x15
- bl SetSav1Weather
-_0810F878:
- pop {r0}
- bx r0
- thumb_func_end SetRoute123Weather
-
- thumb_func_start GetLeadMonIndex
-GetLeadMonIndex: @ 810F87C
- push {r4-r6,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _0810F8CA
-_0810F88C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F8BC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0810F8C0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0810F8C0
- adds r0, r5, 0
- b _0810F8CC
- .align 2, 0
-_0810F8BC: .4byte gPlayerParty
-_0810F8C0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0810F88C
-_0810F8CA:
- movs r0, 0
-_0810F8CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonIndex
-
- thumb_func_start ScriptGetPartyMonSpecies
-ScriptGetPartyMonSpecies: @ 810F8D4
- push {lr}
- ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F8F8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810F8F4: .4byte gSpecialVar_0x8004
-_0810F8F8: .4byte gPlayerParty
- thumb_func_end ScriptGetPartyMonSpecies
-
- thumb_func_start sub_810F8FC
-sub_810F8FC: @ 810F8FC
- push {lr}
- movs r0, 0x6
- bl sub_805ADDC
- pop {r0}
- bx r0
- thumb_func_end sub_810F8FC
-
- thumb_func_start sub_810F908
-sub_810F908: @ 810F908
- push {r4,lr}
- ldr r0, _0810F928 @ =0x000040c2
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- ldr r2, _0810F92C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, r3
- cmp r0, 0x6
- ble _0810F930
- movs r0, 0
- b _0810F948
- .align 2, 0
-_0810F928: .4byte 0x000040c2
-_0810F92C: .4byte gLocalTime
-_0810F930:
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- blt _0810F946
- subs r1, r3
- movs r0, 0x7
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- b _0810F948
-_0810F946:
- movs r0, 0x8
-_0810F948:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F908
-
- thumb_func_start sub_810F950
-sub_810F950: @ 810F950
- push {r4,lr}
- ldr r0, _0810F964 @ =0x000040c2
- ldr r4, _0810F968 @ =gLocalTime
- ldrh r1, [r4]
- bl VarSet
- ldrh r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F964: .4byte 0x000040c2
-_0810F968: .4byte gLocalTime
- thumb_func_end sub_810F950
-
- thumb_func_start sub_810F96C
-sub_810F96C: @ 810F96C
- push {r4,lr}
- ldr r0, _0810F994 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F998 @ =gPlayerParty
- adds r0, r1
- ldr r4, _0810F99C @ =gStringVar1
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _0810F9A0 @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _0810F9A4
- movs r0, 0x1
- b _0810F9A6
- .align 2, 0
-_0810F994: .4byte gSpecialVar_0x8004
-_0810F998: .4byte gPlayerParty
-_0810F99C: .4byte gStringVar1
-_0810F9A0: .4byte gSaveBlock2
-_0810F9A4:
- movs r0, 0
-_0810F9A6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F96C
-
- thumb_func_start sub_810F9AC
-sub_810F9AC: @ 810F9AC
- push {r4,r5,lr}
- ldr r2, _0810F9C0 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _0810F9C4 @ =0x0000270f
- cmp r1, r0
- bls _0810F9C8
- movs r0, 0
- bl sub_80BF088
- b _0810FA4A
- .align 2, 0
-_0810F9C0: .4byte gScriptResult
-_0810F9C4: .4byte 0x0000270f
-_0810F9C8:
- ldr r0, _0810F9D8 @ =0x000003e7
- cmp r1, r0
- bls _0810F9E0
- ldr r4, _0810F9DC @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- adds r4, 0x1
- b _0810FA04
- .align 2, 0
-_0810F9D8: .4byte 0x000003e7
-_0810F9DC: .4byte gStringVar1
-_0810F9E0:
- cmp r1, 0x63
- bls _0810F9F4
- ldr r4, _0810F9F0 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r4, 0x2
- b _0810FA04
- .align 2, 0
-_0810F9F0: .4byte gStringVar1
-_0810F9F4:
- cmp r1, 0x9
- bls _0810FA24
- ldr r4, _0810FA20 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0810FA04:
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- b _0810FA4A
- .align 2, 0
-_0810FA20: .4byte gStringVar1
-_0810FA24:
- ldr r4, _0810FA50 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r4, 0x4
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
-_0810FA4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA50: .4byte gStringVar1
- thumb_func_end sub_810F9AC
-
- thumb_func_start sub_810FA54
-sub_810FA54: @ 810FA54
- ldr r0, _0810FA68 @ =gSaveBlock1
- ldr r2, _0810FA6C @ =0x000013c2
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _0810FA70 @ =0x000013c4
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0810FA68: .4byte gSaveBlock1
-_0810FA6C: .4byte 0x000013c2
-_0810FA70: .4byte 0x000013c4
- thumb_func_end sub_810FA54
-
- thumb_func_start sub_810FA74
-sub_810FA74: @ 810FA74
- push {lr}
- bl sub_810FF30
- lsls r0, 24
- cmp r0, 0
- beq _0810FA90
- bl sub_810FCE8
- ldr r0, _0810FA94 @ =gSaveBlock1
- ldr r1, _0810FA98 @ =gSaveBlock2
- ldrh r1, [r1, 0xE]
- ldr r2, _0810FA9C @ =0x000013c4
- adds r0, r2
- strh r1, [r0]
-_0810FA90:
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA94: .4byte gSaveBlock1
-_0810FA98: .4byte gSaveBlock2
-_0810FA9C: .4byte 0x000013c4
- thumb_func_end sub_810FA74
-
- thumb_func_start sub_810FAA0
-sub_810FAA0: @ 810FAA0
- push {r4,lr}
- ldr r4, _0810FAF0 @ =gSaveBlock1
- ldr r1, _0810FAF4 @ =0x000013c2
- adds r0, r4, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810FAE8
- bl sub_810FF48
- bl sub_810FD80
- ldr r0, _0810FAF8 @ =gSaveBlock2
- ldrh r1, [r0, 0xE]
- ldr r2, _0810FAFC @ =0x000013c4
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _0810FB00 @ =0x00000315
- bl FlagReset
- ldr r0, _0810FB04 @ =0x00000316
- bl FlagReset
- ldr r0, _0810FB08 @ =0x00000317
- bl FlagReset
- movs r0, 0xC6
- lsls r0, 2
- bl FlagReset
- ldr r0, _0810FB0C @ =0x00004095
- movs r1, 0x1
- bl VarSet
-_0810FAE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FAF0: .4byte gSaveBlock1
-_0810FAF4: .4byte 0x000013c2
-_0810FAF8: .4byte gSaveBlock2
-_0810FAFC: .4byte 0x000013c4
-_0810FB00: .4byte 0x00000315
-_0810FB04: .4byte 0x00000316
-_0810FB08: .4byte 0x00000317
-_0810FB0C: .4byte 0x00004095
- thumb_func_end sub_810FAA0
-
- thumb_func_start sub_810FB10
-sub_810FB10: @ 810FB10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810FB54 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FB80
- ldr r0, _0810FB58 @ =gSaveBlock1
- ldr r1, _0810FB5C @ =0x000013c2
- adds r4, r0, r1
- ldrh r2, [r4]
- movs r1, 0x7F
- ands r1, r2
- ldr r0, _0810FB60 @ =gUnknown_083F8404
- adds r0, r5, r0
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x13
- ble _0810FB7C
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0810FB68
- bl sub_810FB9C
- ldrh r1, [r4]
- ldr r0, _0810FB64 @ =0x0000ff80
- ands r0, r1
- b _0810FB7E
- .align 2, 0
-_0810FB54: .4byte 0x00004095
-_0810FB58: .4byte gSaveBlock1
-_0810FB5C: .4byte 0x000013c2
-_0810FB60: .4byte gUnknown_083F8404
-_0810FB64: .4byte 0x0000ff80
-_0810FB68:
- ldrh r0, [r4]
- ldr r1, _0810FB78 @ =0x0000ff80
- ands r1, r0
- movs r0, 0x14
- orrs r1, r0
- strh r1, [r4]
- b _0810FB80
- .align 2, 0
-_0810FB78: .4byte 0x0000ff80
-_0810FB7C:
- adds r0, r2, r0
-_0810FB7E:
- strh r0, [r4]
-_0810FB80:
- ldr r0, _0810FB94 @ =gSaveBlock1
- ldr r1, _0810FB98 @ =0x000013c2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x7F
- ands r0, r1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FB94: .4byte gSaveBlock1
-_0810FB98: .4byte 0x000013c2
- thumb_func_end sub_810FB10
-
- thumb_func_start sub_810FB9C
-sub_810FB9C: @ 810FB9C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- movs r5, 0
- ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
- movs r6, 0x1
-_0810FBA8:
- ldrh r1, [r7]
- ldr r0, _0810FBDC @ =gUnknown_083F8408
- adds r0, r5, r0
- ldrb r4, [r0]
- asrs r1, r4
- ands r1, r6
- cmp r1, 0
- bne _0810FBE0
- adds r3, r5, 0
- str r3, [sp]
- bl Random
- adds r1, r6, 0
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0810FBE0
- adds r0, r6, 0
- lsls r0, r4
- ldrh r1, [r7]
- orrs r0, r1
- strh r0, [r7]
- b _0810FC00
- .align 2, 0
-_0810FBD8: .4byte gSaveBlock1 + 0x13C2
-_0810FBDC: .4byte gUnknown_083F8408
-_0810FBE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FBA8
- ldr r2, _0810FC0C @ =gSaveBlock1
- ldr r0, _0810FC10 @ =0x000013c2
- adds r2, r0
- ldr r1, _0810FC14 @ =gUnknown_083F8408
- adds r1, r3, r1
- movs r0, 0x1
- ldrb r1, [r1]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0810FC00:
- adds r0, r3, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FC0C: .4byte gSaveBlock1
-_0810FC10: .4byte 0x000013c2
-_0810FC14: .4byte gUnknown_083F8408
- thumb_func_end sub_810FB9C
-
- thumb_func_start sub_810FC18
-sub_810FC18: @ 810FC18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0810FC3E
- movs r0, 0
- b _0810FC94
-_0810FC34:
- lsls r4, r6
- ldrh r0, [r2]
- eors r4, r0
- strh r4, [r2]
- b _0810FC92
-_0810FC3E:
- movs r5, 0
- ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
- movs r4, 0x1
-_0810FC44:
- ldrh r1, [r2]
- ldr r7, _0810FCA4 @ =gUnknown_083F8410
- adds r0, r5, r7
- ldrb r6, [r0]
- asrs r1, r6
- ands r1, r4
- cmp r1, 0
- beq _0810FC66
- mov r8, r5
- str r2, [sp]
- bl Random
- adds r1, r4, 0
- ands r1, r0
- ldr r2, [sp]
- cmp r1, 0
- bne _0810FC34
-_0810FC66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FC44
- ldr r0, _0810FCA8 @ =gSaveBlock1
- ldr r1, _0810FCAC @ =0x000013c2
- adds r4, r0, r1
- ldrh r1, [r4]
- mov r2, r8
- adds r0, r2, r7
- ldrb r2, [r0]
- adds r0, r1, 0
- asrs r0, r2
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0810FC92
- adds r0, r3, 0
- lsls r0, r2
- eors r1, r0
- strh r1, [r4]
-_0810FC92:
- mov r0, r8
-_0810FC94:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCA0: .4byte gSaveBlock1 + 0x13C2
-_0810FCA4: .4byte gUnknown_083F8410
-_0810FCA8: .4byte gSaveBlock1
-_0810FCAC: .4byte 0x000013c2
- thumb_func_end sub_810FC18
-
- thumb_func_start sub_810FCB0
-sub_810FCB0: @ 810FCB0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
- ldrh r4, [r0]
- movs r5, 0x1
-_0810FCBC:
- adds r1, r2, 0
- adds r1, 0x8
- adds r0, r4, 0
- asrs r0, r1
- ands r0, r5
- cmp r0, 0
- beq _0810FCD0
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0810FCD0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0810FCBC
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCE4: .4byte gSaveBlock1 + 0x13C2
- thumb_func_end sub_810FCB0
-
- thumb_func_start sub_810FCE8
-sub_810FCE8: @ 810FCE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0810FD08 @ =gSaveBlock2
- ldrh r1, [r2, 0xE]
- ldr r0, _0810FD0C @ =0x000003e6
- cmp r1, r0
- bhi _0810FD54
- ldr r7, _0810FD10 @ =gSaveBlock1
- adds r6, r2, 0
- ldr r0, _0810FD14 @ =0x000013c4
- adds r0, r7
- mov r8, r0
- b _0810FD36
- .align 2, 0
-_0810FD08: .4byte gSaveBlock2
-_0810FD0C: .4byte 0x000003e6
-_0810FD10: .4byte gSaveBlock1
-_0810FD14: .4byte 0x000013c4
-_0810FD18:
- ldrh r1, [r6, 0xE]
- ldr r0, _0810FD4C @ =0x000013c4
- adds r4, r7, r0
- ldrh r0, [r4]
- subs r1, r0
- cmp r1, 0xB
- ble _0810FD54
- bl sub_810FC18
- ldrh r0, [r4]
- adds r0, 0xC
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0810FD36:
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0810FD50
- ldrh r0, [r6, 0xE]
- mov r1, r8
- strh r0, [r1]
- b _0810FD54
- .align 2, 0
-_0810FD4C: .4byte 0x000013c4
-_0810FD50:
- cmp r5, 0x8
- bne _0810FD18
-_0810FD54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FCE8
-
- thumb_func_start sub_810FD60
-sub_810FD60: @ 810FD60
- ldr r0, _0810FD74 @ =gSaveBlock1
- ldr r1, _0810FD78 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _0810FD7C @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FD74: .4byte gSaveBlock1
-_0810FD78: .4byte 0x000013c2
-_0810FD7C: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FD60
-
- thumb_func_start sub_810FD80
-sub_810FD80: @ 810FD80
- ldr r2, _0810FDA4 @ =gSaveBlock1
- ldr r0, _0810FDA8 @ =0x000013c2
- adds r2, r0
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0810FDA4: .4byte gSaveBlock1
-_0810FDA8: .4byte 0x000013c2
- thumb_func_end sub_810FD80
-
- thumb_func_start sub_810FDAC
-sub_810FDAC: @ 810FDAC
- push {lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x8
- cmp r0, 0x7
- bhi _0810FE0C
- lsls r0, 2
- ldr r1, _0810FDCC @ =_0810FDD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FDC8: .4byte gSpecialVar_0x8004
-_0810FDCC: .4byte _0810FDD0
- .align 2, 0
-_0810FDD0:
- .4byte _0810FE0C
- .4byte _0810FE0C
- .4byte _0810FDF0
- .4byte _0810FDF6
- .4byte _0810FDFC
- .4byte _0810FE02
- .4byte _0810FE08
- .4byte _0810FE0C
-_0810FDF0:
- movs r3, 0
- movs r2, 0x3
- b _0810FE0C
-_0810FDF6:
- movs r3, 0
- movs r2, 0x1
- b _0810FE0C
-_0810FDFC:
- movs r3, 0x1
- movs r2, 0
- b _0810FE0C
-_0810FE02:
- movs r3, 0
- movs r2, 0x4
- b _0810FE0C
-_0810FE08:
- movs r3, 0x1
- movs r2, 0x5
-_0810FE0C:
- ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
- adds r1, r3, 0
- bl sub_810FE1C
- pop {r0}
- bx r0
- .align 2, 0
-_0810FE18: .4byte gSaveBlock1 + 0x30B8
- thumb_func_end sub_810FDAC
-
- thumb_func_start sub_810FE1C
-sub_810FE1C: @ 810FE1C
- push {r4,lr}
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsrs r1, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0810FED0
- cmp r2, 0x5
- bhi _0810FEBC
- lsls r0, r2, 2
- ldr r1, _0810FE3C @ =_0810FE40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FE3C: .4byte _0810FE40
- .align 2, 0
-_0810FE40:
- .4byte _0810FEBC
- .4byte _0810FE58
- .4byte _0810FE6C
- .4byte _0810FE80
- .4byte _0810FE94
- .4byte _0810FEA8
-_0810FE58:
- ldr r0, _0810FE64 @ =gStringVar1
- ldr r1, _0810FE68 @ =gOtherText_Steven
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE64: .4byte gStringVar1
-_0810FE68: .4byte gOtherText_Steven
-_0810FE6C:
- ldr r0, _0810FE78 @ =gStringVar1
- ldr r1, _0810FE7C @ =gOtherText_Brawly
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE78: .4byte gStringVar1
-_0810FE7C: .4byte gOtherText_Brawly
-_0810FE80:
- ldr r0, _0810FE8C @ =gStringVar1
- ldr r1, _0810FE90 @ =gOtherText_Winona
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE8C: .4byte gStringVar1
-_0810FE90: .4byte gOtherText_Winona
-_0810FE94:
- ldr r0, _0810FEA0 @ =gStringVar1
- ldr r1, _0810FEA4 @ =gOtherText_Phoebe
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEA0: .4byte gStringVar1
-_0810FEA4: .4byte gOtherText_Phoebe
-_0810FEA8:
- ldr r0, _0810FEB4 @ =gStringVar1
- ldr r1, _0810FEB8 @ =gOtherText_Glacia
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEB4: .4byte gStringVar1
-_0810FEB8: .4byte gOtherText_Glacia
-_0810FEBC:
- ldr r0, _0810FEC8 @ =gStringVar1
- ldr r1, _0810FECC @ =gOtherText_Wallace
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEC8: .4byte gStringVar1
-_0810FECC: .4byte gOtherText_Wallace
-_0810FED0:
- ldr r4, _0810FEF8 @ =gStringVar1
- adds r0, r4, 0
- movs r2, 0x7
- bl StringCopyN
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _0810FEF2
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _0810FEF2
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_0810FEF2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FEF8: .4byte gStringVar1
- thumb_func_end sub_810FE1C
-
- thumb_func_start sub_810FEFC
-sub_810FEFC: @ 810FEFC
- push {lr}
- ldr r0, _0810FF20 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FF2C
- bl sub_810FA74
- ldr r0, _0810FF24 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0810FF28
- bl sub_810FB9C
- b _0810FF2C
- .align 2, 0
-_0810FF20: .4byte 0x00004095
-_0810FF24: .4byte gUnknown_02024D26
-_0810FF28:
- bl sub_810FC18
-_0810FF2C:
- pop {r0}
- bx r0
- thumb_func_end sub_810FEFC
-
- thumb_func_start sub_810FF30
-sub_810FF30: @ 810FF30
- ldr r0, _0810FF40 @ =gSaveBlock1
- ldr r1, _0810FF44 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FF40: .4byte gSaveBlock1
-_0810FF44: .4byte 0x000013c2
- thumb_func_end sub_810FF30
-
- thumb_func_start sub_810FF48
-sub_810FF48: @ 810FF48
- ldr r0, _0810FF58 @ =gSaveBlock1
- ldr r1, _0810FF5C @ =0x000013c2
- adds r0, r1
- ldrh r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0810FF58: .4byte gSaveBlock1
-_0810FF5C: .4byte 0x000013c2
- thumb_func_end sub_810FF48
-
- thumb_func_start sub_810FF60
-sub_810FF60: @ 810FF60
- push {lr}
- ldr r0, _0810FF74 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_810FB10
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810FF74: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FF60
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s
index fdb390563..57a727072 100644
--- a/asm/rom_800D42C.s
+++ b/asm/rom_800D42C.s
@@ -493,7 +493,7 @@ _0800D7B4: .4byte gPlttBufferFaded + 0xB8
thumb_func_start sub_800D7B8
sub_800D7B8: @ 800D7B8
push {r4,r5,lr}
- ldr r0, _0800D7DC @ =gUnknown_020239F8
+ ldr r0, _0800D7DC @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800D7E0 @ =0x00000902
ands r0, r1
@@ -508,7 +508,7 @@ sub_800D7B8: @ 800D7B8
ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower
b _0800DA66
.align 2, 0
-_0800D7DC: .4byte gUnknown_020239F8
+_0800D7DC: .4byte gBattleTypeFlags
_0800D7E0: .4byte 0x00000902
_0800D7E4: .4byte gBattleTerrainTiles_Building
_0800D7E8: .4byte 0x06008000
@@ -631,7 +631,7 @@ _0800D8F4:
.4byte _0800DA84
_0800D918:
ldr r4, _0800D954 @ =gBattleTerrainTable
- ldr r5, _0800D958 @ =gUnknown_0300428C
+ ldr r5, _0800D958 @ =gBattleTerrain
ldrb r1, [r5]
lsls r0, r1, 2
adds r0, r1
@@ -659,7 +659,7 @@ _0800D918:
b _0800DA66
.align 2, 0
_0800D954: .4byte gBattleTerrainTable
-_0800D958: .4byte gUnknown_0300428C
+_0800D958: .4byte gBattleTerrain
_0800D95C: .4byte 0x06008000
_0800D960: .4byte 0x0600d000
_0800D964:
@@ -832,7 +832,7 @@ sub_800DAF8: @ 800DAF8
lsls r1, 24
lsrs r3, r1, 24
movs r4, 0
- ldr r0, _0800DB38 @ =gUnknown_020239F8
+ ldr r0, _0800DB38 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -855,7 +855,7 @@ sub_800DAF8: @ 800DAF8
beq _0800DB4A
b _0800DB84
.align 2, 0
-_0800DB38: .4byte gUnknown_020239F8
+_0800DB38: .4byte gBattleTypeFlags
_0800DB3C: .4byte gTasks
_0800DB40:
cmp r3, 0x2
@@ -984,247 +984,7 @@ _0800DC1C: .4byte gTasks
_0800DC20: .4byte 0x00006001
thumb_func_end sub_800DAF8
- thumb_func_start sub_800DC24
-sub_800DC24: @ 800DC24
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _0800DC40 @ =gUnknown_02024D26
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0800DC4C
- ldr r4, _0800DC44 @ =gUnknown_03004210
- ldr r1, _0800DC48 @ =gUnknown_08400E57
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0xD
- b _0800DDCA
- .align 2, 0
-_0800DC40: .4byte gUnknown_02024D26
-_0800DC44: .4byte gUnknown_03004210
-_0800DC48: .4byte gUnknown_08400E57
-_0800DC4C:
- ldr r0, _0800DC80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DD38
- cmp r2, 0x1
- bne _0800DCCC
- ldr r2, _0800DC84 @ =gLinkPlayers
- ldr r0, _0800DC88 @ =0x02000000
- ldr r1, _0800DC8C @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DC9C
- cmp r0, 0x1
- bgt _0800DC90
- cmp r0, 0
- bne _0800DC7E
- b _0800DDA8
-_0800DC7E:
- b _0800DE1C
- .align 2, 0
-_0800DC80: .4byte gUnknown_020239F8
-_0800DC84: .4byte gLinkPlayers
-_0800DC88: .4byte 0x02000000
-_0800DC8C: .4byte 0x000160cb
-_0800DC90:
- cmp r0, 0x2
- bne _0800DC96
- b _0800DDA8
-_0800DC96:
- cmp r0, 0x3
- beq _0800DC9C
- b _0800DE1C
-_0800DC9C:
- ldr r4, _0800DCC0 @ =gUnknown_03004210
- ldr r1, _0800DCC4 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DCC8 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DCC0: .4byte gUnknown_03004210
-_0800DCC4: .4byte gUnknown_08400E48
-_0800DCC8: .4byte gUnknown_08400E4F
-_0800DCCC:
- ldr r2, _0800DCF0 @ =gLinkPlayers
- ldr r0, _0800DCF4 @ =0x02000000
- ldr r1, _0800DCF8 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DDA8
- cmp r0, 0x1
- bgt _0800DCFC
- cmp r0, 0
- beq _0800DD08
- b _0800DE1C
- .align 2, 0
-_0800DCF0: .4byte gLinkPlayers
-_0800DCF4: .4byte 0x02000000
-_0800DCF8: .4byte 0x000160cb
-_0800DCFC:
- cmp r0, 0x2
- beq _0800DD08
- cmp r0, 0x3
- beq _0800DD06
- b _0800DE1C
-_0800DD06:
- b _0800DDA8
-_0800DD08:
- ldr r4, _0800DD2C @ =gUnknown_03004210
- ldr r1, _0800DD30 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD34 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD2C: .4byte gUnknown_03004210
-_0800DD30: .4byte gUnknown_08400E48
-_0800DD34: .4byte gUnknown_08400E4F
-_0800DD38:
- cmp r2, 0x1
- bne _0800DD90
- ldr r2, _0800DD78 @ =gLinkPlayers
- ldr r0, _0800DD7C @ =0x02000000
- ldr r1, _0800DD80 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDA8
- ldr r4, _0800DD84 @ =gUnknown_03004210
- ldr r1, _0800DD88 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD8C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD78: .4byte gLinkPlayers
-_0800DD7C: .4byte 0x02000000
-_0800DD80: .4byte 0x000160cb
-_0800DD84: .4byte gUnknown_03004210
-_0800DD88: .4byte gUnknown_08400E48
-_0800DD8C: .4byte gUnknown_08400E4F
-_0800DD90:
- ldr r2, _0800DDD8 @ =gLinkPlayers
- ldr r0, _0800DDDC @ =0x02000000
- ldr r1, _0800DDE0 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDF0
-_0800DDA8:
- ldr r4, _0800DDE4 @ =gUnknown_03004210
- ldr r1, _0800DDE8 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DDEC @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x15
-_0800DDCA:
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- b _0800DE1C
- .align 2, 0
-_0800DDD8: .4byte gLinkPlayers
-_0800DDDC: .4byte 0x02000000
-_0800DDE0: .4byte 0x000160cb
-_0800DDE4: .4byte gUnknown_03004210
-_0800DDE8: .4byte gUnknown_08400E48
-_0800DDEC: .4byte gUnknown_08400E4F
-_0800DDF0:
- ldr r4, _0800DE24 @ =gUnknown_03004210
- ldr r1, _0800DE28 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DE2C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0800DE1C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DE24: .4byte gUnknown_03004210
-_0800DE28: .4byte gUnknown_08400E48
-_0800DE2C: .4byte gUnknown_08400E4F
- thumb_func_end sub_800DC24
+ .section .text_800DC24
thumb_func_start sub_800DE30
sub_800DE30: @ 800DE30
@@ -1263,7 +1023,7 @@ _0800DE68:
_0800DE6E:
b _0800E212
_0800DE70:
- ldr r0, _0800DED0 @ =gUnknown_020239F8
+ ldr r0, _0800DED0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -1310,7 +1070,7 @@ _0800DE88:
bge _0800DE88
b _0800DF70
.align 2, 0
-_0800DED0: .4byte gUnknown_020239F8
+_0800DED0: .4byte gBattleTypeFlags
_0800DED4: .4byte gLinkPlayers
_0800DED8: .4byte gUnknown_081F9680
_0800DEDC: .4byte gUnknown_081F9680 + 0x8
@@ -1714,7 +1474,7 @@ _0800E238: .4byte 0xfffffc00
thumb_func_start sub_800E23C
sub_800E23C: @ 800E23C
push {r4,r5,lr}
- ldr r0, _0800E29C @ =gUnknown_020239F8
+ ldr r0, _0800E29C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1756,7 +1516,7 @@ sub_800E23C: @ 800E23C
bl LoadCompressedObjectPic
b _0800E3FC
.align 2, 0
-_0800E29C: .4byte gUnknown_020239F8
+_0800E29C: .4byte gBattleTypeFlags
_0800E2A0: .4byte gVersusFrameGfx
_0800E2A4: .4byte 0x06004000
_0800E2A8: .4byte gVersusFrameTilemap
@@ -1861,7 +1621,7 @@ _0800E3A0:
cmp r0, 0
bne _0800E3EC
ldr r4, _0800E3DC @ =gBattleTerrainTable
- ldr r5, _0800E3E0 @ =gUnknown_0300428C
+ ldr r5, _0800E3E0 @ =gBattleTerrain
ldrb r1, [r5]
lsls r0, r1, 2
adds r0, r1
@@ -1885,7 +1645,7 @@ _0800E3D2:
b _0800E3FC
.align 2, 0
_0800E3DC: .4byte gBattleTerrainTable
-_0800E3E0: .4byte gUnknown_0300428C
+_0800E3E0: .4byte gBattleTerrain
_0800E3E4: .4byte 0x06004000
_0800E3E8: .4byte 0x0600e000
_0800E3EC:
@@ -1959,7 +1719,7 @@ _0800E474:
.align 2, 0
_0800E480: .4byte gUnknown_08D004E0
_0800E484:
- ldr r0, _0800E4A8 @ =gUnknown_020239F8
+ ldr r0, _0800E4A8 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800E4AC @ =0x00000902
ands r0, r1
@@ -1979,7 +1739,7 @@ _0800E492:
ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
b _0800E57E
.align 2, 0
-_0800E4A8: .4byte gUnknown_020239F8
+_0800E4A8: .4byte gBattleTypeFlags
_0800E4AC: .4byte 0x00000902
_0800E4B0: .4byte gGameVersion
_0800E4B4: .4byte gBattleTerrainTiles_Cave
@@ -2039,7 +1799,7 @@ _0800E50C:
.4byte _0800E57C
_0800E530:
ldr r2, _0800E544 @ =gBattleTerrainTable
- ldr r0, _0800E548 @ =gUnknown_0300428C
+ ldr r0, _0800E548 @ =gBattleTerrain
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2049,7 +1809,7 @@ _0800E530:
b _0800E57E
.align 2, 0
_0800E544: .4byte gBattleTerrainTable
-_0800E548: .4byte gUnknown_0300428C
+_0800E548: .4byte gBattleTerrain
_0800E54C:
ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
b _0800E57E
@@ -2090,7 +1850,7 @@ _0800E57E:
_0800E588: .4byte gBattleTerrainTiles_Building
_0800E58C: .4byte 0x06008000
_0800E590:
- ldr r0, _0800E5B4 @ =gUnknown_020239F8
+ ldr r0, _0800E5B4 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800E5B8 @ =0x00000902
ands r0, r1
@@ -2110,7 +1870,7 @@ _0800E59E:
ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
b _0800E68A
.align 2, 0
-_0800E5B4: .4byte gUnknown_020239F8
+_0800E5B4: .4byte gBattleTypeFlags
_0800E5B8: .4byte 0x00000902
_0800E5BC: .4byte gGameVersion
_0800E5C0: .4byte gBattleTerrainTilemap_Cave
@@ -2170,7 +1930,7 @@ _0800E618:
.4byte _0800E688
_0800E63C:
ldr r2, _0800E650 @ =gBattleTerrainTable
- ldr r0, _0800E654 @ =gUnknown_0300428C
+ ldr r0, _0800E654 @ =gBattleTerrain
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2181,7 +1941,7 @@ _0800E63C:
b _0800E68A
.align 2, 0
_0800E650: .4byte gBattleTerrainTable
-_0800E654: .4byte gUnknown_0300428C
+_0800E654: .4byte gBattleTerrain
_0800E658:
ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
b _0800E68A
@@ -2222,7 +1982,7 @@ _0800E68A:
_0800E694: .4byte gBattleTerrainTilemap_Building
_0800E698: .4byte 0x0600d000
_0800E69C:
- ldr r0, _0800E6C0 @ =gUnknown_020239F8
+ ldr r0, _0800E6C0 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800E6C4 @ =0x00000902
ands r0, r1
@@ -2242,7 +2002,7 @@ _0800E6AA:
ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
b _0800E7A6
.align 2, 0
-_0800E6C0: .4byte gUnknown_020239F8
+_0800E6C0: .4byte gBattleTypeFlags
_0800E6C4: .4byte 0x00000902
_0800E6C8: .4byte gGameVersion
_0800E6CC: .4byte gBattleTerrainPalette_Groudon
@@ -2305,7 +2065,7 @@ _0800E72C:
.4byte _0800E7A4
_0800E750:
ldr r2, _0800E764 @ =gBattleTerrainTable
- ldr r0, _0800E768 @ =gUnknown_0300428C
+ ldr r0, _0800E768 @ =gBattleTerrain
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2316,7 +2076,7 @@ _0800E750:
b _0800E7A6
.align 2, 0
_0800E764: .4byte gBattleTerrainTable
-_0800E768: .4byte gUnknown_0300428C
+_0800E768: .4byte gBattleTerrain
_0800E76C:
ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
b _0800E7A6
@@ -2376,7 +2136,7 @@ _0800E7BC:
thumb_func_start sub_800E7C4
sub_800E7C4: @ 800E7C4
push {lr}
- ldr r0, _0800E7E4 @ =gUnknown_020239F8
+ ldr r0, _0800E7E4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -2390,7 +2150,7 @@ sub_800E7C4: @ 800E7C4
strb r0, [r1]
b _0800E7F4
.align 2, 0
-_0800E7E4: .4byte gUnknown_020239F8
+_0800E7E4: .4byte gBattleTypeFlags
_0800E7E8: .4byte sub_800F104
_0800E7EC: .4byte gUnknown_02024D1E
_0800E7F0:
@@ -2488,8 +2248,8 @@ _0800E868:
strh r1, [r0]
ldr r0, _0800E94C @ =gUnknown_030041B8
strh r1, [r0]
- bl sub_8081D3C
- ldr r1, _0800E950 @ =gUnknown_0300428C
+ bl GetBattleTerrain
+ ldr r1, _0800E950 @ =gBattleTerrain
strb r0, [r1]
ldr r0, _0800E954 @ =gUnknown_03004210
adds r1, r4, 0
@@ -2512,7 +2272,7 @@ _0800E868:
ldr r0, _0800E96C @ =sub_800FCFC
bl SetVBlankCallback
bl sub_800B884
- ldr r0, _0800E970 @ =gUnknown_020239F8
+ ldr r0, _0800E970 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -2539,7 +2299,7 @@ _0800E940: .4byte gUnknown_03004288
_0800E944: .4byte gUnknown_03004280
_0800E948: .4byte gUnknown_030041B0
_0800E94C: .4byte gUnknown_030041B8
-_0800E950: .4byte gUnknown_0300428C
+_0800E950: .4byte gBattleTerrain
_0800E954: .4byte gUnknown_03004210
_0800E958: .4byte gUnknown_030041D0
_0800E95C: .4byte gWindowConfig_81E71D0
@@ -2547,13 +2307,13 @@ _0800E960: .4byte gUnknown_03004250
_0800E964: .4byte gWindowConfig_81E71EC
_0800E968: .4byte gReservedSpritePaletteCount
_0800E96C: .4byte sub_800FCFC
-_0800E970: .4byte gUnknown_020239F8
+_0800E970: .4byte gBattleTypeFlags
_0800E974: .4byte sub_800F298
_0800E978:
ldr r0, _0800E9CC @ =sub_800EC9C
bl SetMainCallback2
_0800E97E:
- ldr r0, _0800E9D0 @ =gUnknown_020239F8
+ ldr r0, _0800E9D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2592,7 +2352,7 @@ _0800E9AE:
bx r0
.align 2, 0
_0800E9CC: .4byte sub_800EC9C
-_0800E9D0: .4byte gUnknown_020239F8
+_0800E9D0: .4byte gBattleTypeFlags
_0800E9D4: .4byte gEnemyParty
_0800E9D8: .4byte gTrainerBattleOpponent
_0800E9DC: .4byte gMain
@@ -2755,7 +2515,7 @@ sub_800EB08: @ 800EB08
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0800EB84 @ =gUnknown_020239F8
+ ldr r0, _0800EB84 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2815,7 +2575,7 @@ _0800EB4E:
strb r1, [r0]
b _0800EC28
.align 2, 0
-_0800EB84: .4byte gUnknown_020239F8
+_0800EB84: .4byte gBattleTypeFlags
_0800EB88: .4byte gEnigmaBerries
_0800EB8C: .4byte gSaveBlock1
_0800EB90: .4byte 0x00003160
@@ -2996,7 +2756,7 @@ _0800ECE4:
.4byte _0800EFB4
.4byte _0800EFCC
_0800ED0C:
- ldr r2, _0800ED54 @ =gUnknown_020239F8
+ ldr r2, _0800ED54 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x2
ands r0, r1
@@ -3030,7 +2790,7 @@ _0800ED2E:
strb r5, [r0]
b _0800F008
.align 2, 0
-_0800ED54: .4byte gUnknown_020239F8
+_0800ED54: .4byte gBattleTypeFlags
_0800ED58: .4byte gReceivedRemoteLinkPlayers
_0800ED5C: .4byte 0x02000000
_0800ED60: .4byte gUnknown_02024D1E
@@ -3063,15 +2823,15 @@ _0800ED8A:
bne _0800EDBC
cmp r4, 0
bne _0800EDB0
- ldr r0, _0800EDAC @ =gUnknown_020239F8
+ ldr r0, _0800EDAC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800EDB6
.align 2, 0
_0800EDA8: .4byte gBlockRecvBuffer
-_0800EDAC: .4byte gUnknown_020239F8
+_0800EDAC: .4byte gBattleTypeFlags
_0800EDB0:
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldr r0, _0800EDE0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800EDB6:
@@ -3093,15 +2853,15 @@ _0800EDBC:
bne _0800EDF4
cmp r4, 0
bne _0800EDE8
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldr r0, _0800EDE0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800EDEE
.align 2, 0
-_0800EDE0: .4byte gUnknown_020239F8
+_0800EDE0: .4byte gBattleTypeFlags
_0800EDE4: .4byte gBlockRecvBuffer
_0800EDE8:
- ldr r0, _0800EE04 @ =gUnknown_020239F8
+ ldr r0, _0800EE04 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800EDEE:
@@ -3114,10 +2874,10 @@ _0800EDF4:
bne _0800EE38
ldrh r1, [r6]
ldr r0, _0800EE08 @ =0x00000101
- ldr r2, _0800EE04 @ =gUnknown_020239F8
+ ldr r2, _0800EE04 @ =gBattleTypeFlags
b _0800EE1A
.align 2, 0
-_0800EE04: .4byte gUnknown_020239F8
+_0800EE04: .4byte gBattleTypeFlags
_0800EE08: .4byte 0x00000101
_0800EE0C:
adds r3, 0x1
@@ -3336,7 +3096,7 @@ _0800EFCC:
str r0, [r1]
ldr r0, _0800F020 @ =sub_800F808
bl SetMainCallback2
- ldr r3, _0800F024 @ =gUnknown_020239F8
+ ldr r3, _0800F024 @ =gBattleTypeFlags
ldrh r2, [r3]
movs r0, 0x2
ands r0, r2
@@ -3360,7 +3120,7 @@ _0800F014: .4byte gUnknown_030042D0
_0800F018: .4byte gMain
_0800F01C: .4byte sub_8010824
_0800F020: .4byte sub_800F808
-_0800F024: .4byte gUnknown_020239F8
+_0800F024: .4byte gBattleTypeFlags
_0800F028: .4byte gTrainerBattleOpponent
thumb_func_end sub_800EC9C
@@ -3438,7 +3198,7 @@ _0800F03E:
beq _0800F0D4
adds r0, r7, 0
movs r1, 0
- bl sub_814A518
+ bl PadNameString
_0800F0D4:
adds r7, 0x20
movs r0, 0x1
@@ -3593,7 +3353,7 @@ _0800F1FA:
ldr r0, [r1, 0x8]
mov r2, r9
str r0, [r2]
- ldr r0, _0800F238 @ =gUnknown_020239F8
+ ldr r0, _0800F238 @ =gBattleTypeFlags
ldrh r0, [r0]
mov r2, r8
strh r0, [r2]
@@ -3608,7 +3368,7 @@ _0800F228: .4byte gBlockRecvBuffer
_0800F22C: .4byte gUnknown_02023A00
_0800F230: .4byte gUnknown_02024D1E
_0800F234: .4byte gMain
-_0800F238: .4byte gUnknown_020239F8
+_0800F238: .4byte gBattleTypeFlags
_0800F23C: .4byte sub_800F104
_0800F240:
ldr r0, _0800F258 @ =gPaletteFade
@@ -3628,7 +3388,7 @@ _0800F25C:
ldrb r0, [r0]
cmp r0, 0
bne _0800F27A
- ldr r1, _0800F28C @ =gUnknown_020239F8
+ ldr r1, _0800F28C @ =gBattleTypeFlags
mov r2, r8
ldrh r0, [r2]
strh r0, [r1]
@@ -3647,7 +3407,7 @@ _0800F27A:
bx r0
.align 2, 0
_0800F288: .4byte gReceivedRemoteLinkPlayers
-_0800F28C: .4byte gUnknown_020239F8
+_0800F28C: .4byte gBattleTypeFlags
_0800F290: .4byte gMain
_0800F294: .4byte sub_800E7F8
thumb_func_end sub_800F104
@@ -3740,15 +3500,15 @@ _0800F34E:
bne _0800F380
cmp r6, 0
bne _0800F374
- ldr r0, _0800F370 @ =gUnknown_020239F8
+ ldr r0, _0800F370 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800F37A
.align 2, 0
_0800F36C: .4byte gBlockRecvBuffer
-_0800F370: .4byte gUnknown_020239F8
+_0800F370: .4byte gBattleTypeFlags
_0800F374:
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldr r0, _0800F3B0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800F37A:
@@ -3777,15 +3537,15 @@ _0800F39E:
bne _0800F3C4
cmp r6, 0
bne _0800F3B8
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldr r0, _0800F3B0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800F3BE
.align 2, 0
-_0800F3B0: .4byte gUnknown_020239F8
+_0800F3B0: .4byte gBattleTypeFlags
_0800F3B4: .4byte gBlockRecvBuffer
_0800F3B8:
- ldr r0, _0800F408 @ =gUnknown_020239F8
+ ldr r0, _0800F408 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800F3BE:
@@ -3799,7 +3559,7 @@ _0800F3C4:
ldrh r2, [r0]
ldr r1, _0800F410 @ =0x00000101
adds r3, r0, 0
- ldr r5, _0800F408 @ =gUnknown_020239F8
+ ldr r5, _0800F408 @ =gBattleTypeFlags
cmp r2, r1
beq _0800F3F6
_0800F3D6:
@@ -3832,7 +3592,7 @@ _0800F3FE:
movs r1, 0xC
b _0800F418
.align 2, 0
-_0800F408: .4byte gUnknown_020239F8
+_0800F408: .4byte gBattleTypeFlags
_0800F40C: .4byte gBlockRecvBuffer
_0800F410: .4byte 0x00000101
_0800F414:
@@ -4312,7 +4072,7 @@ _0800F7A4:
str r0, [r1]
ldr r0, _0800F7FC @ =sub_800F808
bl SetMainCallback2
- ldr r3, _0800F800 @ =gUnknown_020239F8
+ ldr r3, _0800F800 @ =gBattleTypeFlags
ldrh r2, [r3]
movs r0, 0x2
ands r0, r2
@@ -4338,7 +4098,7 @@ _0800F7F0: .4byte gUnknown_030042D0
_0800F7F4: .4byte gMain
_0800F7F8: .4byte sub_8010824
_0800F7FC: .4byte sub_800F808
-_0800F800: .4byte gUnknown_020239F8
+_0800F800: .4byte gBattleTypeFlags
_0800F804: .4byte gTrainerBattleOpponent
thumb_func_end sub_800F298
@@ -4484,7 +4244,7 @@ sub_800F8E8: @ 800F8E8
movs r0, 0
b _0800FCB4
_0800F90C:
- ldr r0, _0800F93C @ =gUnknown_020239F8
+ ldr r0, _0800F93C @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800F940 @ =0x00000908
ands r0, r1
@@ -4508,7 +4268,7 @@ _0800F920:
ldr r4, [sp, 0x18]
b _0800FC86
.align 2, 0
-_0800F93C: .4byte gUnknown_020239F8
+_0800F93C: .4byte gBattleTypeFlags
_0800F940: .4byte 0x00000908
_0800F944: .4byte gTrainers
_0800F948:
@@ -4939,7 +4699,7 @@ _0800FC86:
bge _0800FC8E
b _0800F948
_0800FC8E:
- ldr r2, _0800FCD0 @ =gUnknown_020239F8
+ ldr r2, _0800FCD0 @ =gBattleTypeFlags
ldr r1, _0800FCCC @ =gTrainers
ldr r4, [sp, 0x20]
ldr r3, [sp, 0x14]
@@ -4972,7 +4732,7 @@ _0800FCB4:
_0800FCC4: .4byte gSpeciesNames
_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset
_0800FCCC: .4byte gTrainers
-_0800FCD0: .4byte gUnknown_020239F8
+_0800FCD0: .4byte gBattleTypeFlags
thumb_func_end sub_800F8E8
thumb_func_start sub_800FCD4
@@ -5172,7 +4932,7 @@ sub_800FE40: @ 800FE40
ldr r2, _0800FE8C @ =0x000160cb
adds r0, r2
ldrb r2, [r0]
- ldr r0, _0800FE90 @ =gUnknown_020239F8
+ ldr r0, _0800FE90 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -5194,7 +4954,7 @@ sub_800FE40: @ 800FE40
.align 2, 0
_0800FE88: .4byte 0x02000000
_0800FE8C: .4byte 0x000160cb
-_0800FE90: .4byte gUnknown_020239F8
+_0800FE90: .4byte gBattleTypeFlags
_0800FE94: .4byte gLinkPlayers
_0800FE98:
cmp r0, 0x2
@@ -6209,7 +5969,7 @@ _0801065A:
cmp r0, 0
bne _080106FA
ldr r0, _0801069C @ =objc_dp11b_pingpong
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
lsls r0, 24
lsrs r5, r0, 24
mov r0, r8
@@ -6574,7 +6334,7 @@ _08010906:
strb r1, [r2]
ldr r3, _08010B00 @ =gUnknown_02024C08
strb r1, [r3]
- ldr r4, _08010B04 @ =word_2024DB8
+ ldr r4, _08010B04 @ =gBattleWeather
strh r1, [r4]
ldr r1, _08010B08 @ =gUnknown_02024DBC
movs r2, 0
@@ -6588,7 +6348,7 @@ _0801092E:
movs r0, 0
ldr r1, _08010B0C @ =gUnknown_02024C6C
str r0, [r1]
- ldr r2, _08010B10 @ =gUnknown_020239F8
+ ldr r2, _08010B10 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x2
ands r0, r1
@@ -6804,10 +6564,10 @@ _08010AF4: .4byte gUnknown_02024C80
_08010AF8: .4byte gUnknown_02024C7A
_08010AFC: .4byte gUnknown_02024C07
_08010B00: .4byte gUnknown_02024C08
-_08010B04: .4byte word_2024DB8
+_08010B04: .4byte gBattleWeather
_08010B08: .4byte gUnknown_02024DBC
_08010B0C: .4byte gUnknown_02024C6C
-_08010B10: .4byte gUnknown_020239F8
+_08010B10: .4byte gBattleTypeFlags
_08010B14: .4byte gSaveBlock2
_08010B18: .4byte 0x02000000
_08010B1C: .4byte 0x00016084
@@ -7811,7 +7571,7 @@ bc_load_battlefield: @ 8011334
bl battle_get_side_with_given_state
ldr r4, _08011370 @ =gUnknown_02024A60
strb r0, [r4]
- ldr r0, _08011374 @ =gUnknown_0300428C
+ ldr r0, _08011374 @ =gBattleTerrain
ldrb r1, [r0]
movs r0, 0
bl dp01_build_cmdbuf_x2E_a
@@ -7830,7 +7590,7 @@ _08011364:
.align 2, 0
_0801136C: .4byte gUnknown_02024A64
_08011370: .4byte gUnknown_02024A60
-_08011374: .4byte gUnknown_0300428C
+_08011374: .4byte gBattleTerrain
_08011378: .4byte gUnknown_030042D4
_0801137C: .4byte sub_8011384
_08011380: .4byte gUnknown_02024D1E
@@ -7861,7 +7621,7 @@ _080113A4:
mov r9, r0
mov r8, r2
_080113AC:
- ldr r0, _080113F0 @ =gUnknown_020239F8
+ ldr r0, _080113F0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -7891,7 +7651,7 @@ _080113E0: .4byte gUnknown_02024A64
_080113E4: .4byte gUnknown_02024A60
_080113E8: .4byte gUnknown_02024A68
_080113EC: .4byte gBattleMons
-_080113F0: .4byte gUnknown_020239F8
+_080113F0: .4byte gBattleTypeFlags
_080113F4:
mov r2, r8
ldrb r0, [r2]
@@ -8006,7 +7766,7 @@ _080114BE:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_080114D8:
- ldr r5, _08011544 @ =gUnknown_020239F8
+ ldr r5, _08011544 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r0, 0x8
ands r0, r1
@@ -8051,7 +7811,7 @@ _08011534: .4byte gUnknown_02024260
_08011538: .4byte gUnknown_02024A60
_0801153C: .4byte 0x020160bc
_08011540: .4byte gUnknown_02024A98
-_08011544: .4byte gUnknown_020239F8
+_08011544: .4byte gBattleTypeFlags
_08011548: .4byte 0x00000902
_0801154C:
ldrb r0, [r4]
@@ -8080,7 +7840,7 @@ _0801154C:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_08011588:
- ldr r0, _080115EC @ =gUnknown_020239F8
+ ldr r0, _080115EC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -8129,7 +7889,7 @@ _080115DA:
bx r0
.align 2, 0
_080115E8: .4byte 0x00000902
-_080115EC: .4byte gUnknown_020239F8
+_080115EC: .4byte gBattleTypeFlags
_080115F0: .4byte gUnknown_02024A60
_080115F4: .4byte gUnknown_02024A68
_080115F8: .4byte gUnknown_030042D4
@@ -8148,7 +7908,7 @@ bc_801333C: @ 8011600
beq _08011612
b _0801178C
_08011612:
- ldr r0, _0801165C @ =gUnknown_020239F8
+ ldr r0, _0801165C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -8186,7 +7946,7 @@ _08011650:
b _0801167A
.align 2, 0
_08011658: .4byte gUnknown_02024A64
-_0801165C: .4byte gUnknown_020239F8
+_0801165C: .4byte gBattleTypeFlags
_08011660: .4byte gEnemyParty
_08011664: .4byte 0x0000ffff
_08011668:
@@ -8438,7 +8198,7 @@ _0801184C:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_08011866:
- ldr r0, _080118B8 @ =gUnknown_020239F8
+ ldr r0, _080118B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -8476,7 +8236,7 @@ _080118A4:
_080118AC: .4byte gUnknown_02024A64
_080118B0: .4byte gUnknown_02024A60
_080118B4: .4byte gUnknown_02024A68
-_080118B8: .4byte gUnknown_020239F8
+_080118B8: .4byte gBattleTypeFlags
_080118BC: .4byte gUnknown_030042D4
_080118C0: .4byte bc_801362C
thumb_func_end sub_8011834
@@ -8503,7 +8263,7 @@ _080118DE:
lsrs r0, 24
cmp r0, 0x1
bne _08011912
- ldr r0, _08011940 @ =gUnknown_020239F8
+ ldr r0, _08011940 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r2, _08011944 @ =0x00000902
adds r0, r2, 0
@@ -8543,7 +8303,7 @@ _08011930: .4byte gUnknown_02024A64
_08011934: .4byte gUnknown_02024A60
_08011938: .4byte gUnknown_02024A68
_0801193C: .4byte gBattleMons
-_08011940: .4byte gUnknown_020239F8
+_08011940: .4byte gBattleTypeFlags
_08011944: .4byte 0x00000902
_08011948: .4byte gUnknown_030042D4
_0801194C: .4byte sub_8011970
@@ -8575,7 +8335,7 @@ sub_8011970: @ 8011970
ldr r0, [r0]
cmp r0, 0
bne _0801199E
- ldr r0, _080119A8 @ =gUnknown_020239F8
+ ldr r0, _080119A8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -8597,7 +8357,7 @@ _0801199E:
bx r0
.align 2, 0
_080119A4: .4byte gUnknown_02024A64
-_080119A8: .4byte gUnknown_020239F8
+_080119A8: .4byte gBattleTypeFlags
_080119AC: .4byte gUnknown_030042D4
_080119B0: .4byte sub_80119B4
thumb_func_end sub_8011970
@@ -8627,7 +8387,7 @@ _080119CC:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_080119E4:
- ldr r0, _08011A4C @ =gUnknown_020239F8
+ ldr r0, _08011A4C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -8676,7 +8436,7 @@ _08011A38:
_08011A40: .4byte gUnknown_02024A64
_08011A44: .4byte gUnknown_02024A60
_08011A48: .4byte gUnknown_02024A68
-_08011A4C: .4byte gUnknown_020239F8
+_08011A4C: .4byte gBattleTypeFlags
_08011A50: .4byte 0x02000000
_08011A54: .4byte 0x00016058
_08011A58: .4byte 0x000160f9
@@ -9427,7 +9187,7 @@ _08012062:
bne _08012070
b _080121F4
_08012070:
- ldr r0, _08012184 @ =gUnknown_020239F8
+ ldr r0, _08012184 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -9567,7 +9327,7 @@ _0801215E:
.align 2, 0
_0801217C: .4byte gUnknown_02024C0B
_08012180: .4byte gUnknown_02024A60
-_08012184: .4byte gUnknown_020239F8
+_08012184: .4byte gBattleTypeFlags
_08012188: .4byte gBattleMons
_0801218C: .4byte gUnknown_02024A68
_08012190: .4byte 0x02000000
@@ -9609,7 +9369,7 @@ _080121DC: .4byte 0x0400e000
_080121E0: .4byte gUnknown_02024C98
_080121E4: .4byte gUnknown_02024D1E
_080121E8:
- ldr r0, _080121F8 @ =gUnknown_020239F8
+ ldr r0, _080121F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
@@ -9619,7 +9379,7 @@ _080121F4:
movs r0, 0
b _0801224A
.align 2, 0
-_080121F8: .4byte gUnknown_020239F8
+_080121F8: .4byte gBattleTypeFlags
_080121FC:
ldr r0, _08012210 @ =0x02000000
ldr r1, _08012214 @ =0x00016003
@@ -9705,7 +9465,7 @@ _08012270:
lsrs r1, 24
adds r0, r4, 0
bl sub_8094C98
- ldr r0, _080122F8 @ =gUnknown_020239F8
+ ldr r0, _080122F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -9742,7 +9502,7 @@ _080122E8: .4byte gUnknown_02038470
_080122EC: .4byte 0x02000000
_080122F0: .4byte 0x0001606c
_080122F4: .4byte 0x00016068
-_080122F8: .4byte gUnknown_020239F8
+_080122F8: .4byte gBattleTypeFlags
_080122FC:
movs r3, 0
ldr r2, _0801231C @ =0x0001606c
@@ -9827,7 +9587,7 @@ _0801239C:
adds r0, r4
movs r1, 0x6
strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
+ ldr r0, _08012440 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -9880,7 +9640,7 @@ _080123F8:
adds r0, r2, r0
movs r1, 0xD
strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
+ ldr r0, _08012440 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -9896,7 +9656,7 @@ _080123F8:
_08012434: .4byte 0x02000000
_08012438: .4byte gUnknown_02024A60
_0801243C: .4byte 0x00016068
-_08012440: .4byte gUnknown_020239F8
+_08012440: .4byte gBattleTypeFlags
_08012444: .4byte 0x000160a6
_08012448: .4byte gBitTable
_0801244C: .4byte gUnknown_02024D1E
@@ -10162,7 +9922,7 @@ _0801264E:
adds r4, 0x1
cmp r4, 0x3
ble _0801264E
- ldr r0, _080126B0 @ =gUnknown_020239F8
+ ldr r0, _080126B0 @ =gBattleTypeFlags
ldrb r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -10173,9 +9933,9 @@ _0801264E:
b _0801289E
.align 2, 0
_080126AC: .4byte gBattleMons
-_080126B0: .4byte gUnknown_020239F8
+_080126B0: .4byte gBattleTypeFlags
_080126B4:
- ldr r0, _080126D0 @ =gUnknown_020239F8
+ ldr r0, _080126D0 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _080126D4 @ =0x00000902
ands r0, r1
@@ -10191,7 +9951,7 @@ _080126C2:
ldr r1, _080126DC @ =gUnknown_081D9B29
b _080129CC
.align 2, 0
-_080126D0: .4byte gUnknown_020239F8
+_080126D0: .4byte gBattleTypeFlags
_080126D4: .4byte 0x00000902
_080126D8: .4byte gUnknown_02024C1C
_080126DC: .4byte gUnknown_081D9B29
@@ -10494,7 +10254,7 @@ _0801292C:
.align 2, 0
_08012964: .4byte gUnknown_02024D1E
_08012968:
- ldr r0, _08012994 @ =gUnknown_020239F8
+ ldr r0, _08012994 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0xA
ands r0, r1
@@ -10516,7 +10276,7 @@ _08012968:
adds r0, r1
b _08012BFE
.align 2, 0
-_08012994: .4byte gUnknown_020239F8
+_08012994: .4byte gBattleTypeFlags
_08012998: .4byte gUnknown_02024260
_0801299C: .4byte gUnknown_02024A60
_080129A0: .4byte gUnknown_081D8E37
@@ -10809,7 +10569,7 @@ _08012C10:
adds r0, r2, r3
add r0, r12
strb r1, [r0]
- ldr r0, _08012CCC @ =gUnknown_020239F8
+ ldr r0, _08012CCC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -10897,7 +10657,7 @@ _08012CBE:
.align 2, 0
_08012CC4: .4byte 0x02000000
_08012CC8: .4byte 0x00016068
-_08012CCC: .4byte gUnknown_020239F8
+_08012CCC: .4byte gBattleTypeFlags
_08012CD0: .4byte 0x0001606c
_08012CD4: .4byte 0x0001606d
_08012CD8: .4byte 0x0001606e
@@ -11017,7 +10777,7 @@ _08012DA8:
beq _08012DD2
b _08012F66
_08012DD2:
- ldr r0, _08012E1C @ =gUnknown_020239F8
+ ldr r0, _08012E1C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x41
ands r0, r1
@@ -11051,7 +10811,7 @@ _08012E06:
_08012E10: .4byte gUnknown_02024A64
_08012E14: .4byte gBitTable
_08012E18: .4byte gUnknown_02024A60
-_08012E1C: .4byte gUnknown_020239F8
+_08012E1C: .4byte gBattleTypeFlags
_08012E20: .4byte 0x02000000
_08012E24: .4byte 0x000160a6
_08012E28:
@@ -11323,7 +11083,7 @@ b_first_side: @ 8012FF0
ldrb r3, [r0]
cmp r3, 0x21
bne _0801305C
- ldr r0, _08013074 @ =word_2024DB8
+ ldr r0, _08013074 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -11332,7 +11092,7 @@ b_first_side: @ 8012FF0
_0801305C:
cmp r3, 0x22
bne _08013078
- ldr r0, _08013074 @ =word_2024DB8
+ ldr r0, _08013074 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -11343,7 +11103,7 @@ _0801306C:
b _0801307A
.align 2, 0
_08013070: .4byte gBattleMons
-_08013074: .4byte word_2024DB8
+_08013074: .4byte gBattleWeather
_08013078:
movs r3, 0x1
_0801307A:
@@ -11357,7 +11117,7 @@ _0801307A:
ldrb r2, [r0]
cmp r2, 0x21
bne _0801309A
- ldr r0, _080130B4 @ =word_2024DB8
+ ldr r0, _080130B4 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -11366,7 +11126,7 @@ _0801307A:
_0801309A:
cmp r2, 0x22
bne _080130BA
- ldr r0, _080130B4 @ =word_2024DB8
+ ldr r0, _080130B4 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -11377,7 +11137,7 @@ _080130AA:
b _080130BC
.align 2, 0
_080130B0: .4byte gBattleMons
-_080130B4: .4byte word_2024DB8
+_080130B4: .4byte gBattleWeather
_080130B8:
movs r3, 0x1
_080130BA:
@@ -11429,7 +11189,7 @@ _0801310C:
lsls r0, 24
lsrs r5, r0, 24
_08013120:
- ldr r0, _080131DC @ =gUnknown_020239F8
+ ldr r0, _080131DC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -11523,7 +11283,7 @@ _08013198:
ldrb r5, [r0, 0x1A]
b _08013208
.align 2, 0
-_080131DC: .4byte gUnknown_020239F8
+_080131DC: .4byte gBattleTypeFlags
_080131E0: .4byte 0x00000809
_080131E4: .4byte gBattleMons
_080131E8: .4byte gUnknown_02024D1C
@@ -11539,7 +11299,7 @@ _080131F4:
lsls r0, 24
lsrs r5, r0, 24
_08013208:
- ldr r0, _08013280 @ =gUnknown_020239F8
+ ldr r0, _08013280 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -11599,7 +11359,7 @@ _08013274:
movs r3, 0
b _08013334
.align 2, 0
-_08013280: .4byte gUnknown_020239F8
+_08013280: .4byte gBattleTypeFlags
_08013284: .4byte 0x00000809
_08013288: .4byte gBattleMons
_0801328C: .4byte gUnknown_02024D1C
@@ -11774,7 +11534,7 @@ sub_80133C8: @ 80133C8
mov r5, r8
push {r5-r7}
movs r3, 0
- ldr r0, _0801341C @ =gUnknown_020239F8
+ ldr r0, _0801341C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -11813,7 +11573,7 @@ _080133F8:
bcc _080133F8
b _08013622
.align 2, 0
-_0801341C: .4byte gUnknown_020239F8
+_0801341C: .4byte gBattleTypeFlags
_08013420: .4byte gUnknown_02024A60
_08013424: .4byte gUnknown_02024A68
_08013428: .4byte gUnknown_02024A76
@@ -12501,7 +12261,7 @@ sub_8013998: @ 8013998
ldr r1, _080139D0 @ =gUnknown_02024A7F
movs r0, 0
strb r0, [r1]
- ldr r0, _080139D4 @ =gUnknown_020239F8
+ ldr r0, _080139D4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -12525,7 +12285,7 @@ sub_8013998: @ 8013998
b _08013B48
.align 2, 0
_080139D0: .4byte gUnknown_02024A7F
-_080139D4: .4byte gUnknown_020239F8
+_080139D4: .4byte gBattleTypeFlags
_080139D8: .4byte gUnknown_030041C0
_080139DC: .4byte gUnknown_02024D26
_080139E0: .4byte gUnknown_02024C07
@@ -12676,7 +12436,7 @@ sub_8013B64: @ 8013B64
ldr r1, _08013B9C @ =gUnknown_02024A7F
movs r0, 0
strb r0, [r1]
- ldr r0, _08013BA0 @ =gUnknown_020239F8
+ ldr r0, _08013BA0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -12700,7 +12460,7 @@ sub_8013B64: @ 8013B64
b _08013BBE
.align 2, 0
_08013B9C: .4byte gUnknown_02024A7F
-_08013BA0: .4byte gUnknown_020239F8
+_08013BA0: .4byte gBattleTypeFlags
_08013BA4: .4byte gUnknown_030041C0
_08013BA8: .4byte gUnknown_02024D26
_08013BAC: .4byte gUnknown_02024C07
@@ -12824,7 +12584,7 @@ sub_8013C9C: @ 8013C9C
lsrs r0, 24
cmp r0, 0x1
bhi _08013D7C
- ldr r0, _08013D04 @ =gUnknown_020239F8
+ ldr r0, _08013D04 @ =gBattleTypeFlags
ldrh r0, [r0]
ldr r1, _08013D08 @ =0x00000b92
ands r1, r0
@@ -12866,7 +12626,7 @@ _08013CCE:
b _08013D36
.align 2, 0
_08013D00: .4byte gUnknown_02024A7F
-_08013D04: .4byte gUnknown_020239F8
+_08013D04: .4byte gBattleTypeFlags
_08013D08: .4byte 0x00000b92
_08013D0C: .4byte gUnknown_02024A60
_08013D10: .4byte gUnknown_02024A68
@@ -13075,7 +12835,7 @@ _08013EAC: .4byte bc_evolution_cutscene
thumb_func_start c4_overworld
c4_overworld: @ 8013EB0
push {r4-r6,lr}
- ldr r5, _08013F30 @ =gUnknown_020239F8
+ ldr r5, _08013F30 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r6, 0x2
adds r0, r6, 0
@@ -13138,7 +12898,7 @@ _08013F2A:
pop {r0}
bx r0
.align 2, 0
-_08013F30: .4byte gUnknown_020239F8
+_08013F30: .4byte gBattleTypeFlags
_08013F34: .4byte gPlayerParty
_08013F38: .4byte gReceivedRemoteLinkPlayers
_08013F3C: .4byte gScriptResult
@@ -13600,7 +13360,7 @@ _08014324: .4byte gBattleMoves
_08014328: .4byte gBattleMons
_0801432C: .4byte gUnknown_02024C08
_08014330:
- ldr r2, _08014454 @ =gUnknown_020239F8
+ ldr r2, _08014454 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -13750,7 +13510,7 @@ _0801441E:
movs r0, 0x1
b _08014496
.align 2, 0
-_08014454: .4byte gUnknown_020239F8
+_08014454: .4byte gBattleTypeFlags
_08014458: .4byte gUnknown_02024C07
_0801445C: .4byte gUnknown_02024C80
_08014460: .4byte gBattleMoves
@@ -14433,7 +14193,7 @@ _08014A24: .4byte gUnknown_081D9E7C
_08014A28: .4byte 0x000160a4
_08014A2C: .4byte 0x000160a5
_08014A30:
- ldr r0, _08014A50 @ =gUnknown_020239F8
+ ldr r0, _08014A50 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -14450,7 +14210,7 @@ _08014A30:
mov r10, r2
b _08014A74
.align 2, 0
-_08014A50: .4byte gUnknown_020239F8
+_08014A50: .4byte gBattleTypeFlags
_08014A54: .4byte gUnknown_02024D1E
_08014A58: .4byte gUnknown_02024C07
_08014A5C: .4byte gUnknown_02024C10
@@ -14584,7 +14344,7 @@ _08014B5C: .4byte gBattleMons
_08014B60: .4byte byte_2024C06
_08014B64: .4byte gUnknown_02024D28
_08014B68:
- ldr r0, _08014BDC @ =gUnknown_020239F8
+ ldr r0, _08014BDC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -14645,7 +14405,7 @@ _08014BD4:
pop {r1}
bx r1
.align 2, 0
-_08014BDC: .4byte gUnknown_020239F8
+_08014BDC: .4byte gBattleTypeFlags
_08014BE0: .4byte 0x02000000
_08014BE4: .4byte 0x00016078
_08014BE8: .4byte gUnknown_02024A7E
@@ -14663,7 +14423,7 @@ sub_8014BF4: @ 8014BF4
adds r0, r1
ldrb r0, [r0]
strb r0, [r4]
- ldr r0, _08014C50 @ =gUnknown_020239F8
+ ldr r0, _08014C50 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -14699,7 +14459,7 @@ _08014C28:
_08014C44: .4byte gUnknown_02024C07
_08014C48: .4byte gUnknown_02024A7A
_08014C4C: .4byte gUnknown_02024A7E
-_08014C50: .4byte gUnknown_020239F8
+_08014C50: .4byte gBattleTypeFlags
_08014C54: .4byte gUnknown_02024A68
_08014C58: .4byte gUnknown_02024A60
_08014C5C: .4byte gUnknown_02024C18
@@ -15756,7 +15516,7 @@ _080154E0: .4byte gUnknown_02024A60
thumb_func_start unref_sub_80154E4
unref_sub_80154E4: @ 80154E4
push {r4,r5,lr}
- ldr r0, _08015514 @ =gUnknown_020239F8
+ ldr r0, _08015514 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -15781,7 +15541,7 @@ _08015500:
blt _08015500
b _08015542
.align 2, 0
-_08015514: .4byte gUnknown_020239F8
+_08015514: .4byte gBattleTypeFlags
_08015518: .4byte gUnknown_02024A68
_0801551C: .4byte gUnknown_02024A64
_08015520: .4byte gBitTable
@@ -15817,7 +15577,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _0801557C @ =gUnknown_020239F8
+ ldr r0, _0801557C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -15834,7 +15594,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554
str r0, [r2]
b _08015598
.align 2, 0
-_0801557C: .4byte gUnknown_020239F8
+_0801557C: .4byte gBattleTypeFlags
_08015580: .4byte gUnknown_02024A64
_08015584: .4byte gBitTable
_08015588:
@@ -16779,7 +16539,7 @@ sub_8015C90: @ 8015C90
adds r0, r1
ldr r1, _08015D08 @ =gUnknown_081D9365
str r1, [r0]
- ldr r0, _08015D0C @ =gUnknown_020239F8
+ ldr r0, _08015D0C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -16809,7 +16569,7 @@ _08015CFC: .4byte gUnknown_02024A60
_08015D00: .4byte gUnknown_02024D28
_08015D04: .4byte gUnknown_02024C1C
_08015D08: .4byte gUnknown_081D9365
-_08015D0C: .4byte gUnknown_020239F8
+_08015D0C: .4byte gBattleTypeFlags
_08015D10: .4byte gUnknown_02024260
_08015D14:
ldrb r0, [r5]
@@ -17566,7 +17326,7 @@ _08016318: .4byte gUnknown_081D939A
_0801631C: .4byte 0x02000000
_08016320: .4byte 0x0001600e
_08016324:
- ldr r3, _0801635C @ =word_2024DB8
+ ldr r3, _0801635C @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x7
ands r0, r2
@@ -17596,7 +17356,7 @@ _08016332:
strb r0, [r1, 0x5]
b _0801639C
.align 2, 0
-_0801635C: .4byte word_2024DB8
+_0801635C: .4byte gBattleWeather
_08016360: .4byte gUnknown_02024DBC
_08016364: .4byte 0x0000fffe
_08016368: .4byte 0x0000fffd
@@ -17633,7 +17393,7 @@ _0801639C:
_080163A0: .4byte gUnknown_02024D1E
_080163A4: .4byte gUnknown_081D8F62
_080163A8:
- ldr r3, _080163DC @ =word_2024DB8
+ ldr r3, _080163DC @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x18
ands r0, r2
@@ -17660,7 +17420,7 @@ _080163B6:
ldr r0, _080163EC @ =gUnknown_081D8FFF
b _080163F4
.align 2, 0
-_080163DC: .4byte word_2024DB8
+_080163DC: .4byte gBattleWeather
_080163E0: .4byte gUnknown_02024DBC
_080163E4: .4byte 0x0000fff7
_080163E8: .4byte gUnknown_02024C10
@@ -17687,7 +17447,7 @@ _08016414: .4byte 0x02000000
_08016418: .4byte 0x000160a4
_0801641C: .4byte gUnknown_02024D1E
_08016420:
- ldr r3, _08016450 @ =word_2024DB8
+ ldr r3, _08016450 @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x60
ands r0, r2
@@ -17712,7 +17472,7 @@ _08016420:
ldr r0, _08016460 @ =gUnknown_081D9016
b _08016468
.align 2, 0
-_08016450: .4byte word_2024DB8
+_08016450: .4byte gBattleWeather
_08016454: .4byte gUnknown_02024DBC
_08016458: .4byte 0x0000ffdf
_0801645C: .4byte gUnknown_02024C10
@@ -17741,7 +17501,7 @@ _08016488: .4byte gUnknown_081D9008
_0801648C: .4byte 0x02000000
_08016490: .4byte 0x0001600e
_08016494:
- ldr r3, _080164BC @ =word_2024DB8
+ ldr r3, _080164BC @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x80
ands r0, r2
@@ -17762,7 +17522,7 @@ _08016494:
ldr r0, _080164CC @ =gUnknown_081D8FFF
b _080164D4
.align 2, 0
-_080164BC: .4byte word_2024DB8
+_080164BC: .4byte gBattleWeather
_080164C0: .4byte gUnknown_02024DBC
_080164C4: .4byte 0x0000ff7f
_080164C8: .4byte gUnknown_02024C10
@@ -19589,7 +19349,7 @@ sub_80173A4: @ 80173A4
mov r5, r8
push {r5-r7}
sub sp, 0x4
- ldr r0, _080173C0 @ =gUnknown_020239F8
+ ldr r0, _080173C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -19597,7 +19357,7 @@ sub_80173A4: @ 80173A4
beq _080173F8
b _080176AC
.align 2, 0
-_080173C0: .4byte gUnknown_020239F8
+_080173C0: .4byte gBattleTypeFlags
_080173C4:
ldr r0, _080173D4 @ =gUnknown_081D8C72
bl b_call_bc_move_exec
@@ -20796,7 +20556,7 @@ _08017DC0:
b _08017F94
_08017DDC:
lsrs r0, r1, 16
- bl sub_804114C
+ bl CountTrailingZeroBits
ldr r1, _08017E04 @ =0x02000000
ldr r7, _08017E08 @ =0x00016003
adds r1, r7
@@ -21071,7 +20831,7 @@ sub_8018018: @ 8018018
lsls r2, 24
lsrs r2, 24
mov r9, r2
- ldr r0, _08018044 @ =gUnknown_020239F8
+ ldr r0, _08018044 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -21080,7 +20840,7 @@ sub_8018018: @ 8018018
movs r0, 0
b _08018198
.align 2, 0
-_08018044: .4byte gUnknown_020239F8
+_08018044: .4byte gBattleTypeFlags
_08018048:
movs r0, 0x40
ands r0, r1
@@ -21347,7 +21107,7 @@ _0801825C:
movs r0, 0
b _08018314
_08018260:
- ldr r1, _0801831C @ =word_2024DB8
+ ldr r1, _0801831C @ =gBattleWeather
ldrh r0, [r1]
movs r2, 0xE7
ands r2, r0
@@ -21447,7 +21207,7 @@ _08018314:
pop {r1}
bx r1
.align 2, 0
-_0801831C: .4byte word_2024DB8
+_0801831C: .4byte gBattleWeather
_08018320: .4byte gBattleMons
thumb_func_end castform_switch
@@ -21574,7 +21334,7 @@ _080183F4:
movs r1, 0
bl GetMonData
str r0, [sp, 0x14]
- ldr r0, _0801844C @ =gUnknown_020239F8
+ ldr r0, _0801844C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -21592,7 +21352,7 @@ _08018436:
.align 2, 0
_08018444: .4byte gUnknown_02024A6A
_08018448: .4byte gEnemyParty
-_0801844C: .4byte gUnknown_020239F8
+_0801844C: .4byte gBattleTypeFlags
_08018450: .4byte byte_2024C06
_08018454:
ldr r2, _08018474 @ =byte_2024C06
@@ -21766,7 +21526,7 @@ _080185A4:
.4byte _08018620
.4byte _080185D0
_080185D0:
- ldr r2, _080185EC @ =word_2024DB8
+ ldr r2, _080185EC @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x7
ands r0, r1
@@ -21780,11 +21540,11 @@ _080185D0:
movs r1, 0xA
b _08018638
.align 2, 0
-_080185EC: .4byte word_2024DB8
+_080185EC: .4byte gBattleWeather
_080185F0: .4byte 0x02000000
_080185F4: .4byte 0x000160a4
_080185F8:
- ldr r3, _08018614 @ =word_2024DB8
+ ldr r3, _08018614 @ =gBattleWeather
ldrh r1, [r3]
movs r2, 0x18
adds r0, r2, 0
@@ -21798,11 +21558,11 @@ _080185F8:
movs r1, 0xC
b _08018638
.align 2, 0
-_08018614: .4byte word_2024DB8
+_08018614: .4byte gBattleWeather
_08018618: .4byte 0x02000000
_0801861C: .4byte 0x000160a4
_08018620:
- ldr r3, _08018668 @ =word_2024DB8
+ ldr r3, _08018668 @ =gBattleWeather
ldrh r1, [r3]
movs r2, 0x60
adds r0, r2, 0
@@ -21838,14 +21598,14 @@ _08018656:
bl b_push_move_exec
bl _08019F76
.align 2, 0
-_08018668: .4byte word_2024DB8
+_08018668: .4byte gBattleWeather
_0801866C: .4byte 0x02000000
_08018670: .4byte 0x000160a4
_08018674: .4byte 0x00016003
_08018678: .4byte gUnknown_02024D1E
_0801867C: .4byte gUnknown_081D901D
_08018680:
- ldr r2, _080186A8 @ =word_2024DB8
+ ldr r2, _080186A8 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x4
ands r0, r1
@@ -21864,12 +21624,12 @@ _08018690:
strb r5, [r0]
bl _08019F22
.align 2, 0
-_080186A8: .4byte word_2024DB8
+_080186A8: .4byte gBattleWeather
_080186AC: .4byte gUnknown_081D9704
_080186B0: .4byte 0x02000000
_080186B4: .4byte 0x00016003
_080186B8:
- ldr r2, _080186E0 @ =word_2024DB8
+ ldr r2, _080186E0 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x10
ands r0, r1
@@ -21888,12 +21648,12 @@ _080186C8:
strb r2, [r0]
bl _08019F22
.align 2, 0
-_080186E0: .4byte word_2024DB8
+_080186E0: .4byte gBattleWeather
_080186E4: .4byte gUnknown_081D9744
_080186E8: .4byte 0x02000000
_080186EC: .4byte 0x00016003
_080186F0:
- ldr r2, _08018718 @ =word_2024DB8
+ ldr r2, _08018718 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x40
ands r0, r1
@@ -21912,7 +21672,7 @@ _08018700:
strb r5, [r0]
bl _08019F22
.align 2, 0
-_08018718: .4byte word_2024DB8
+_08018718: .4byte gBattleWeather
_0801871C: .4byte gUnknown_081D97FE
_08018720: .4byte 0x02000000
_08018724: .4byte 0x00016003
@@ -22086,7 +21846,7 @@ _08018876:
beq _0801888E
bl _08019F76
_0801888E:
- ldr r0, _080188D0 @ =word_2024DB8
+ ldr r0, _080188D0 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -22118,7 +21878,7 @@ _080188C4:
str r0, [r1]
bl _08019F22
.align 2, 0
-_080188D0: .4byte word_2024DB8
+_080188D0: .4byte gBattleWeather
_080188D4: .4byte gUnknown_081D9730
_080188D8: .4byte gUnknown_02024BEC
_080188DC:
@@ -24023,7 +23783,7 @@ _0801997A:
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _08019A2C @ =gUnknown_020239F8
+ ldr r0, _08019A2C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x1
adds r0, r2, 0
@@ -24090,7 +23850,7 @@ _08019A1C: .4byte gUnknown_02024A68
_08019A20: .4byte gUnknown_02024A60
_08019A24: .4byte gBattleMons
_08019A28: .4byte gUnknown_02024C98
-_08019A2C: .4byte gUnknown_020239F8
+_08019A2C: .4byte gBattleTypeFlags
_08019A30: .4byte byte_2024C06
_08019A34:
ldr r3, _08019A74 @ =gBattleMons
@@ -27248,7 +27008,7 @@ unref_sub_801B40C: @ 801B40C
sub sp, 0x8
movs r0, 0
str r0, [sp]
- ldr r0, _0801B464 @ =gUnknown_020239F8
+ ldr r0, _0801B464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -27288,7 +27048,7 @@ _0801B45A:
lsrs r5, r0, 24
b _0801B556
.align 2, 0
-_0801B464: .4byte gUnknown_020239F8
+_0801B464: .4byte gBattleTypeFlags
_0801B468: .4byte gUnknown_081FC1D0
_0801B46C: .4byte gUnknown_02024C0C
_0801B470: .4byte gBitTable
@@ -27725,7 +27485,7 @@ _0801B854: .4byte gUnknown_02024C07
_0801B858: .4byte gUnknown_02024C80
_0801B85C: .4byte gBattleMons
_0801B860:
- ldr r0, _0801B894 @ =gUnknown_020239F8
+ ldr r0, _0801B894 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r4, 0x1
adds r0, r4, 0
@@ -27750,7 +27510,7 @@ _0801B860:
movs r0, 0x1
b _0801B8B2
.align 2, 0
-_0801B894: .4byte gUnknown_020239F8
+_0801B894: .4byte gBattleTypeFlags
_0801B898: .4byte gUnknown_02024C07
_0801B89C:
movs r0, 0x3
@@ -27830,7 +27590,7 @@ sub_801B928: @ 801B928
mov r6, r8
push {r6,r7}
sub sp, 0x10
- ldr r0, _0801B9E0 @ =gUnknown_020239F8
+ ldr r0, _0801B9E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -27914,7 +27674,7 @@ _0801B9DA:
movs r0, 0
b _0801BC24
.align 2, 0
-_0801B9E0: .4byte gUnknown_020239F8
+_0801B9E0: .4byte gBattleTypeFlags
_0801B9E4: .4byte gUnknown_02024C07
_0801B9E8: .4byte gBattleMons
_0801B9EC: .4byte 0x0000080e
@@ -28938,7 +28698,7 @@ _0801C22E:
lsls r0, 24
cmp r0, 0
bne _0801C27E
- ldr r0, _0801C2A8 @ =word_2024DB8
+ ldr r0, _0801C2A8 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -28971,7 +28731,7 @@ _0801C290:
_0801C29C: .4byte 0xfffeffff
_0801C2A0: .4byte 0xfffdffff
_0801C2A4: .4byte 0xfffbffff
-_0801C2A8: .4byte word_2024DB8
+_0801C2A8: .4byte gBattleWeather
_0801C2AC: .4byte gBattleMoves
_0801C2B0:
movs r0, 0
@@ -29197,7 +28957,7 @@ _0801C430:
lsls r0, 24
cmp r0, 0
bne _0801C482
- ldr r0, _0801C574 @ =word_2024DB8
+ ldr r0, _0801C574 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -29267,7 +29027,7 @@ _0801C4C0:
ldrb r0, [r0]
cmp r0, 0x8
bne _0801C518
- ldr r0, _0801C574 @ =word_2024DB8
+ ldr r0, _0801C574 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x18
ands r0, r1
@@ -29325,7 +29085,7 @@ _0801C544:
.align 2, 0
_0801C56C: .4byte gUnknown_02024C07
_0801C570: .4byte gBattleMoves
-_0801C574: .4byte word_2024DB8
+_0801C574: .4byte gBattleWeather
_0801C578: .4byte gAccuracyStageRatios
_0801C57C: .4byte gBattleMons
_0801C580: .4byte gUnknown_02024C08
@@ -29373,7 +29133,7 @@ _0801C5C0:
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- ldr r0, _0801C614 @ =gUnknown_020239F8
+ ldr r0, _0801C614 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -29397,7 +29157,7 @@ _0801C602:
_0801C608: .4byte gUnknown_02024C0B
_0801C60C: .4byte gUnknown_02024C08
_0801C610: .4byte gUnknown_02024C68
-_0801C614: .4byte gUnknown_020239F8
+_0801C614: .4byte gBattleTypeFlags
_0801C618: .4byte gBattleMoves
_0801C61C: .4byte gUnknown_02024D1E
_0801C620:
@@ -29841,7 +29601,7 @@ _0801C960:
ands r0, r1
cmp r0, 0
bne _0801C9D0
- ldr r0, _0801C9C4 @ =gUnknown_020239F8
+ ldr r0, _0801C9C4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x84
lsls r0, 2
@@ -29865,7 +29625,7 @@ _0801C960:
.align 2, 0
_0801C9BC: .4byte gUnknown_02024C08
_0801C9C0: .4byte gUnknown_02024C98
-_0801C9C4: .4byte gUnknown_020239F8
+_0801C9C4: .4byte gBattleTypeFlags
_0801C9C8: .4byte gCriticalHitChance
_0801C9CC: .4byte gCritMultiplier
_0801C9D0:
@@ -33722,7 +33482,7 @@ _0801E7EA:
lsls r0, 24
cmp r0, 0
bne _0801E826
- ldr r0, _0801E87C @ =word_2024DB8
+ ldr r0, _0801E87C @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -33778,7 +33538,7 @@ _0801E86E:
mov r10, r3
b _0801EA14
.align 2, 0
-_0801E87C: .4byte word_2024DB8
+_0801E87C: .4byte gBattleWeather
_0801E880: .4byte gBattleMons
_0801E884: .4byte gUnknown_02024C0A
_0801E888:
@@ -34834,7 +34594,7 @@ _0801F1A4:
lsrs r0, 24
cmp r0, 0x1
bne _0801F1D8
- ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldr r0, _0801F258 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0801F25C @ =0x00000902
ands r0, r1
@@ -34848,7 +34608,7 @@ _0801F1A4:
beq _0801F1D8
b _0801F5DC
_0801F1D8:
- ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldr r0, _0801F258 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0801F25C @ =0x00000902
ands r0, r1
@@ -34911,7 +34671,7 @@ _0801F214:
b _0801F5FA
.align 2, 0
_0801F254: .4byte gUnknown_02024C07
-_0801F258: .4byte gUnknown_020239F8
+_0801F258: .4byte gBattleTypeFlags
_0801F25C: .4byte 0x00000902
_0801F260: .4byte gTrainerBattleOpponent
_0801F264: .4byte gUnknown_02024DBC
@@ -36645,7 +36405,7 @@ _0802007C:
lsrs r0, 24
cmp r0, 0x1
bne _08020098
- ldr r0, _080200AC @ =gUnknown_020239F8
+ ldr r0, _080200AC @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _080200B0 @ =0x00000982
ands r0, r1
@@ -36660,7 +36420,7 @@ _08020098:
bl _08020996
.align 2, 0
_080200A8: .4byte gUnknown_02024C09
-_080200AC: .4byte gUnknown_020239F8
+_080200AC: .4byte gBattleTypeFlags
_080200B0: .4byte 0x00000982
_080200B4: .4byte 0x02000000
_080200B8: .4byte 0x0001600f
@@ -36921,7 +36681,7 @@ _080202DC: .4byte 0x0001605f
_080202E0: .4byte 0x0001600f
_080202E4: .4byte gUnknown_02024BEC
_080202E8:
- ldr r0, _0802034C @ =gUnknown_020239F8
+ ldr r0, _0802034C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -36971,7 +36731,7 @@ _08020332:
mov r8, r1
b _08020376
.align 2, 0
-_0802034C: .4byte gUnknown_020239F8
+_0802034C: .4byte gBattleTypeFlags
_08020350: .4byte gBattleMons
_08020354: .4byte 0x0001601b
_08020358: .4byte 0x00000161
@@ -37005,7 +36765,7 @@ _08020386:
mov r1, r8
str r0, [r1]
_0802039C:
- ldr r0, _080203F4 @ =gUnknown_020239F8
+ ldr r0, _080203F4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -37045,7 +36805,7 @@ _080203B8:
.align 2, 0
_080203EC: .4byte gUnknown_02024BEC
_080203F0: .4byte gUnknown_02024DEE
-_080203F4: .4byte gUnknown_020239F8
+_080203F4: .4byte gBattleTypeFlags
_080203F8: .4byte 0x02000000
_080203FC: .4byte 0x00016018
_08020400: .4byte gPlayerParty
@@ -37054,7 +36814,7 @@ _08020404:
ldr r3, _08020440 @ =gUnknown_02024BEC
mov r8, r3
_0802040A:
- ldr r0, _08020444 @ =gUnknown_020239F8
+ ldr r0, _08020444 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -37082,7 +36842,7 @@ _0802040A:
.align 2, 0
_0802043C: .4byte 0x00000149
_08020440: .4byte gUnknown_02024BEC
-_08020444: .4byte gUnknown_020239F8
+_08020444: .4byte gBattleTypeFlags
_08020448: .4byte gUnknown_02024A6A
_0802044C: .4byte 0x02000000
_08020450: .4byte 0x00016018
@@ -37339,7 +37099,7 @@ _0802066E:
beq _0802067A
b _080208F0
_0802067A:
- ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldr r0, _080208C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -37528,7 +37288,7 @@ _080207EC:
ldrh r0, [r0]
cmp r0, 0
beq _080208F6
- ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldr r0, _080208C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -37606,7 +37366,7 @@ _080208B0: .4byte gUnknown_02024A60
_080208B4: .4byte 0x02000000
_080208B8: .4byte 0x000160a2
_080208BC: .4byte gUnknown_02024260
-_080208C0: .4byte gUnknown_020239F8
+_080208C0: .4byte gBattleTypeFlags
_080208C4: .4byte gUnknown_02024A6A
_080208C8: .4byte 0x00016018
_080208CC: .4byte gPlayerParty
@@ -37799,7 +37559,7 @@ _08020A54:
ldrb r0, [r2]
cmp r0, 0
bne _08020B3E
- ldr r2, _08020B00 @ =gUnknown_020239F8
+ ldr r2, _08020B00 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x2
ands r0, r1
@@ -37884,7 +37644,7 @@ _08020AF0: .4byte gUnknown_02024A64
_08020AF4: .4byte gPlayerParty
_08020AF8: .4byte gUnknown_02024D26
_08020AFC: .4byte gEnemyParty
-_08020B00: .4byte gUnknown_020239F8
+_08020B00: .4byte gBattleTypeFlags
_08020B04: .4byte gUnknown_02024A68
_08020B08: .4byte gUnknown_02024C10
_08020B0C: .4byte gUnknown_02024C6C
@@ -40846,7 +40606,7 @@ _080221C0:
ands r0, r2
cmp r0, 0
bne _08022244
- ldr r0, _080222B4 @ =gUnknown_020239F8
+ ldr r0, _080222B4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -40964,7 +40724,7 @@ _0802229E:
bx r0
.align 2, 0
_080222B0: .4byte gUnknown_02024C6C
-_080222B4: .4byte gUnknown_020239F8
+_080222B4: .4byte gBattleTypeFlags
_080222B8: .4byte gUnknown_02024D28
_080222BC: .4byte gUnknown_02024C07
_080222C0: .4byte gBattleMoves
@@ -41571,7 +41331,7 @@ sub_8022784: @ 8022784
lsrs r0, 24
cmp r0, 0x1
bne _080227D0
- ldr r0, _08022818 @ =gUnknown_020239F8
+ ldr r0, _08022818 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0802281C @ =0x00000902
ands r0, r1
@@ -41622,7 +41382,7 @@ _08022806:
_0802280C: .4byte gUnknown_02024A64
_08022810: .4byte gUnknown_02024C10
_08022814: .4byte gUnknown_02024A60
-_08022818: .4byte gUnknown_020239F8
+_08022818: .4byte gBattleTypeFlags
_0802281C: .4byte 0x00000902
_08022820: .4byte gBattleMons
_08022824: .4byte gUnknown_02024C0C
@@ -41689,7 +41449,7 @@ _0802289C: .4byte gBattleMons
_080228A0: .4byte 0x0400e000
_080228A4: .4byte gUnknown_02024C98
_080228A8:
- ldr r5, _08022934 @ =gUnknown_020239F8
+ ldr r5, _08022934 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r0, 0x40
ands r0, r1
@@ -41759,7 +41519,7 @@ _0802292E:
beq _080229FC
b _08022A24
.align 2, 0
-_08022934: .4byte gUnknown_020239F8
+_08022934: .4byte gBattleTypeFlags
_08022938: .4byte gUnknown_02024A60
_0802293C: .4byte gPlayerParty
_08022940: .4byte gEnemyParty
@@ -41963,7 +41723,7 @@ atk50_openpartyscreen: @ 8022A98
beq _08022ACE
b _08022F74
_08022ACE:
- ldr r0, _08022B48 @ =gUnknown_020239F8
+ ldr r0, _08022B48 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r1, 0x41
ands r1, r0
@@ -42023,7 +41783,7 @@ _08022AF2:
b _08022BA2
.align 2, 0
_08022B44: .4byte gUnknown_02024C10
-_08022B48: .4byte gUnknown_020239F8
+_08022B48: .4byte gBattleTypeFlags
_08022B4C: .4byte gUnknown_02024A60
_08022B50: .4byte gUnknown_02024A68
_08022B54: .4byte gUnknown_02024C6C
@@ -42515,7 +42275,7 @@ _08022F74:
beq _08022F7A
b _08023170
_08022F7A:
- ldr r0, _08022FF0 @ =gUnknown_020239F8
+ ldr r0, _08022FF0 @ =gBattleTypeFlags
ldrh r2, [r0]
movs r0, 0x40
ands r0, r2
@@ -42574,7 +42334,7 @@ _08022F92:
bl dp01_battle_side_mark_buffer_for_execution
b _0802303A
.align 2, 0
-_08022FF0: .4byte gUnknown_020239F8
+_08022FF0: .4byte gBattleTypeFlags
_08022FF4: .4byte gUnknown_02024C6C
_08022FF8: .4byte gBitTable
_08022FFC: .4byte gUnknown_02024A60
@@ -42860,7 +42620,7 @@ _080231F8:
adds r0, 0x1
strb r0, [r1, 0x2]
_0802325A:
- ldr r0, _080232BC @ =gUnknown_020239F8
+ ldr r0, _080232BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -42902,7 +42662,7 @@ _080232AC: .4byte gUnknown_02024A6A
_080232B0: .4byte 0x00016068
_080232B4: .4byte 0x0001606c
_080232B8: .4byte gUnknown_030042E0
-_080232BC: .4byte gUnknown_020239F8
+_080232BC: .4byte gBattleTypeFlags
_080232C0: .4byte gUnknown_02024A68
_080232C4:
adds r0, r7, 0
@@ -43016,7 +42776,7 @@ _08023394: .4byte 0x02000000
_08023398: .4byte gUnknown_02024260
_0802339C: .4byte 0x00016068
_080233A0:
- ldr r0, _080233B8 @ =gUnknown_020239F8
+ ldr r0, _080233B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -43028,7 +42788,7 @@ _080233AE:
bl sub_8012258
b _080234F6
.align 2, 0
-_080233B8: .4byte gUnknown_020239F8
+_080233B8: .4byte gBattleTypeFlags
_080233BC:
ldr r1, _08023484 @ =gUnknown_02024D1E
ldr r4, _08023488 @ =gUnknown_02024260
@@ -43047,7 +42807,7 @@ _080233BC:
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, _08023494 @ =gUnknown_020239F8
+ ldr r0, _08023494 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -43135,7 +42895,7 @@ _08023484: .4byte gUnknown_02024D1E
_08023488: .4byte gUnknown_02024260
_0802348C: .4byte 0x02000000
_08023490: .4byte 0x00016068
-_08023494: .4byte gUnknown_020239F8
+_08023494: .4byte gBattleTypeFlags
_08023498: .4byte 0x0001606c
_0802349C: .4byte 0x0001606d
_080234A0: .4byte 0x0001606e
@@ -43804,7 +43564,7 @@ _080239C8:
adds r1, r5, 0
bl GiveMoveToBattleMon
_08023A08:
- ldr r0, _08023A78 @ =gUnknown_020239F8
+ ldr r0, _08023A78 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -43856,7 +43616,7 @@ _08023A68: .4byte gUnknown_02024A6A
_08023A6C: .4byte 0x02000000
_08023A70: .4byte 0x00016018
_08023A74: .4byte gBattleMons
-_08023A78: .4byte gUnknown_020239F8
+_08023A78: .4byte gBattleTypeFlags
_08023A7C: .4byte gUnknown_02024C10
thumb_func_end atk59_8025230
@@ -44231,7 +43991,7 @@ _08023D20:
adds r2, r5, 0
bl SetBattleMonMoveSlot
_08023DB0:
- ldr r0, _08023E2C @ =gUnknown_020239F8
+ ldr r0, _08023E2C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -44284,7 +44044,7 @@ _08023E1C: .4byte gUnknown_02024A6A
_08023E20: .4byte gBattleMons
_08023E24: .4byte gUnknown_02024CA8
_08023E28: .4byte gBitTable
-_08023E2C: .4byte gUnknown_020239F8
+_08023E2C: .4byte gBattleTypeFlags
_08023E30: .4byte 0x02000000
_08023E34: .4byte 0x00016018
_08023E38:
@@ -44620,7 +44380,7 @@ _080240C4:
mov r12, r0
lsls r4, r5, 2
ldr r5, _08024124 @ =0x02000000
- ldr r7, _08024128 @ =gUnknown_020239F8
+ ldr r7, _08024128 @ =gBattleTypeFlags
ldr r0, _0802412C @ =gSaveBlock1 + 0x490
mov r8, r0
cmp r1, 0xFF
@@ -44664,7 +44424,7 @@ _080240FE:
.align 2, 0
_08024120: .4byte gTrainerMoney
_08024124: .4byte 0x02000000
-_08024128: .4byte gUnknown_020239F8
+_08024128: .4byte gBattleTypeFlags
_0802412C: .4byte gSaveBlock1 + 0x490
_08024130: .4byte gTrainers
_08024134: .4byte gTrainerBattleOpponent
@@ -44858,7 +44618,7 @@ atk60_cmd60: @ 8024298
ldr r0, _080242C4 @ =gUnknown_02024C10
ldr r0, [r0]
ldrb r0, [r0, 0x1]
- bl sav12_xor_increment
+ bl IncrementGameStat
_080242B2:
ldr r1, _080242C4 @ =gUnknown_02024C10
ldr r0, [r1]
@@ -46205,7 +45965,7 @@ _08024D6C: .4byte gUnknown_02024C10
thumb_func_start atk73_cmd73
atk73_cmd73: @ 8024D70
push {r4,r5,lr}
- ldr r0, _08024DC0 @ =gUnknown_020239F8
+ ldr r0, _08024DC0 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r5, 0x1
ands r5, r0
@@ -46245,7 +46005,7 @@ _08024DB6:
strb r5, [r0]
b _08024E12
.align 2, 0
-_08024DC0: .4byte gUnknown_020239F8
+_08024DC0: .4byte gBattleTypeFlags
_08024DC4: .4byte gUnknown_02024C10
_08024DC8: .4byte gUnknown_02024A60
_08024DCC: .4byte gBattleMons
@@ -46297,7 +46057,7 @@ _08024E28: .4byte gUnknown_02024C10
thumb_func_start atk74_hp_tresholds_2
atk74_hp_tresholds_2: @ 8024E2C
push {r4-r7,lr}
- ldr r0, _08024E8C @ =gUnknown_020239F8
+ ldr r0, _08024E8C @ =gBattleTypeFlags
ldrh r0, [r0]
movs r7, 0x1
ands r7, r0
@@ -46341,7 +46101,7 @@ atk74_hp_tresholds_2: @ 8024E2C
strb r7, [r0]
b _08024ED0
.align 2, 0
-_08024E8C: .4byte gUnknown_020239F8
+_08024E8C: .4byte gBattleTypeFlags
_08024E90: .4byte gUnknown_02024C10
_08024E94: .4byte gUnknown_02024A60
_08024E98: .4byte 0x02000000
@@ -47012,7 +46772,7 @@ sub_80253E8: @ 80253E8
ldrb r0, [r2, 0x4]
lsls r0, 24
orrs r4, r0
- ldr r0, _08025464 @ =gUnknown_020239F8
+ ldr r0, _08025464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -47063,7 +46823,7 @@ _0802543E:
b _08025484
.align 2, 0
_08025460: .4byte gUnknown_02024C10
-_08025464: .4byte gUnknown_020239F8
+_08025464: .4byte gBattleTypeFlags
_08025468: .4byte gUnknown_02024C08
_0802546C: .4byte gUnknown_02024C07
_08025470: .4byte gUnknown_02024C0C
@@ -47354,7 +47114,7 @@ _080256CC: .4byte gUnknown_02024C10
thumb_func_start sub_80256D0
sub_80256D0: @ 80256D0
push {lr}
- ldr r2, _080256F0 @ =word_2024DB8
+ ldr r2, _080256F0 @ =gBattleWeather
ldrh r0, [r2]
movs r1, 0x7
ands r1, r0
@@ -47370,7 +47130,7 @@ sub_80256D0: @ 80256D0
strb r0, [r1, 0x5]
b _0802570C
.align 2, 0
-_080256F0: .4byte word_2024DB8
+_080256F0: .4byte gBattleWeather
_080256F4: .4byte gUnknown_02024C68
_080256F8: .4byte gUnknown_02024D1E
_080256FC:
@@ -47447,7 +47207,7 @@ _08025764:
adds r0, r2
movs r1, 0x5
strb r1, [r0]
- ldr r0, _080257B8 @ =gUnknown_020239F8
+ ldr r0, _080257B8 @ =gBattleTypeFlags
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
@@ -47464,7 +47224,7 @@ _08025764:
b _080257C6
.align 2, 0
_080257B4: .4byte gUnknown_02024C80
-_080257B8: .4byte gUnknown_020239F8
+_080257B8: .4byte gBattleTypeFlags
_080257BC: .4byte gUnknown_02024D1E
_080257C0:
ldr r1, _080257D4 @ =gUnknown_02024D1E
@@ -49241,7 +49001,7 @@ sub_8026590: @ 8026590
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r4, _08026628 @ =gUnknown_020239F8
+ ldr r4, _08026628 @ =gBattleTypeFlags
ldrh r1, [r4]
movs r0, 0x8
ands r0, r1
@@ -49314,7 +49074,7 @@ _0802661A:
blt _080265E8
b _08026678
.align 2, 0
-_08026628: .4byte gUnknown_020239F8
+_08026628: .4byte gBattleTypeFlags
_0802662C: .4byte gUnknown_02024C08
_08026630: .4byte gEnemyParty
_08026634: .4byte gPlayerParty
@@ -49353,7 +49113,7 @@ _0802666E:
_08026678:
cmp r7, 0x1
bhi _08026688
- ldr r0, _080266BC @ =gUnknown_020239F8
+ ldr r0, _080266BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x41
ands r0, r1
@@ -49362,7 +49122,7 @@ _08026678:
_08026688:
cmp r7, 0x2
bhi _080266C4
- ldr r0, _080266BC @ =gUnknown_020239F8
+ ldr r0, _080266BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -49388,7 +49148,7 @@ _080266A0:
str r1, [r3]
b _08026880
.align 2, 0
-_080266BC: .4byte gUnknown_020239F8
+_080266BC: .4byte gBattleTypeFlags
_080266C0: .4byte gUnknown_02024C10
_080266C4:
bl sub_80264C0
@@ -49397,7 +49157,7 @@ _080266C4:
bne _080266D0
b _08026880
_080266D0:
- ldr r0, _08026710 @ =gUnknown_020239F8
+ ldr r0, _08026710 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -49426,7 +49186,7 @@ _080266DC:
lsrs r5, r0, 24
b _0802671A
.align 2, 0
-_08026710: .4byte gUnknown_020239F8
+_08026710: .4byte gBattleTypeFlags
_08026714: .4byte gUnknown_02024C08
_08026718:
adds r5, r6, 0
@@ -49567,7 +49327,7 @@ _08026832:
adds r1, r2
adds r1, r0
strb r5, [r1]
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08026850
@@ -49823,7 +49583,7 @@ _08026A2C: .4byte gUnknown_02024C10
thumb_func_start atk91_givemoney
atk91_givemoney: @ 8026A30
push {r4,lr}
- ldr r0, _08026A8C @ =gUnknown_020239F8
+ ldr r0, _08026A8C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -49867,7 +49627,7 @@ atk91_givemoney: @ 8026A30
str r0, [r4]
b _08026AB4
.align 2, 0
-_08026A8C: .4byte gUnknown_020239F8
+_08026A8C: .4byte gBattleTypeFlags
_08026A90: .4byte gUnknown_02024D1A
_08026A94: .4byte gSaveBlock1 + 0x490
_08026A98: .4byte 0x02000000
@@ -49940,7 +49700,7 @@ _08026B00:
adds r0, r2
movs r1, 0x5
strb r1, [r0, 0x1]
- ldr r0, _08026B54 @ =gUnknown_020239F8
+ ldr r0, _08026B54 @ =gBattleTypeFlags
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -49957,7 +49717,7 @@ _08026B00:
b _08026B60
.align 2, 0
_08026B50: .4byte gUnknown_02024C80
-_08026B54: .4byte gUnknown_020239F8
+_08026B54: .4byte gBattleTypeFlags
_08026B58: .4byte gUnknown_02024D1E
_08026B5C:
ldr r1, _08026B70 @ =gUnknown_02024D1E
@@ -50358,7 +50118,7 @@ _08026E90: .4byte gUnknown_02024C10
thumb_func_start sub_8026E94
sub_8026E94: @ 8026E94
push {lr}
- ldr r2, _08026EB4 @ =word_2024DB8
+ ldr r2, _08026EB4 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x18
ands r0, r1
@@ -50374,7 +50134,7 @@ sub_8026E94: @ 8026E94
strb r0, [r1, 0x5]
b _08026ED2
.align 2, 0
-_08026EB4: .4byte word_2024DB8
+_08026EB4: .4byte gBattleWeather
_08026EB8: .4byte gUnknown_02024C68
_08026EBC: .4byte gUnknown_02024D1E
_08026EC0:
@@ -50428,7 +50188,7 @@ _08026F0A:
beq _08026F20
b _0802701C
_08026F20:
- ldr r2, _08026F94 @ =word_2024DB8
+ ldr r2, _08026F94 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x18
ands r0, r1
@@ -50486,7 +50246,7 @@ _08026F20:
movs r0, 0x1
b _08026FAC
.align 2, 0
-_08026F94: .4byte word_2024DB8
+_08026F94: .4byte gBattleWeather
_08026F98: .4byte gUnknown_02024C07
_08026F9C: .4byte gBattleMons
_08026FA0: .4byte gUnknown_02024C98
@@ -50871,7 +50631,7 @@ _08027290:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_080272CC:
- ldr r0, _08027340 @ =gUnknown_020239F8
+ ldr r0, _08027340 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -50922,7 +50682,7 @@ _08027330: .4byte gUnknown_02024C07
_08027334: .4byte gUnknown_02024C0C
_08027338: .4byte gBitTable
_0802733C: .4byte gBattleMons
-_08027340: .4byte gUnknown_020239F8
+_08027340: .4byte gBattleTypeFlags
_08027344: .4byte gUnknown_02024C10
thumb_func_end sub_8027238
@@ -53030,7 +52790,7 @@ move_weather_interaction: @ 80283B4
adds r3, r1, 0
cmp r0, 0x97
bne _080283D8
- ldr r0, _08028410 @ =word_2024DB8
+ ldr r0, _08028410 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -53066,7 +52826,7 @@ _080283FA:
b _0802841A
.align 2, 0
_0802840C: .4byte gBattleMoves
-_08028410: .4byte word_2024DB8
+_08028410: .4byte gBattleWeather
_08028414: .4byte gUnknown_02024C6C
_08028418:
movs r0, 0x2
@@ -53325,7 +53085,7 @@ atkAC_remaininghptopower: @ 8028600
movs r2, 0x2C
ldrsh r1, [r1, r2]
movs r2, 0x30
- bl sub_80461D4
+ bl GetScaledHPFraction
lsls r0, 24
lsrs r1, r0, 24
movs r3, 0
@@ -53684,7 +53444,7 @@ _080288D4:
adds r1, r2
strb r0, [r1]
strb r0, [r4]
- ldr r0, _08028944 @ =gUnknown_020239F8
+ ldr r0, _08028944 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -53720,7 +53480,7 @@ _08028934: .4byte gUnknown_02024A60
_08028938: .4byte gUnknown_02024C07
_0802893C: .4byte 0x02000000
_08028940: .4byte 0x00016003
-_08028944: .4byte gUnknown_020239F8
+_08028944: .4byte gBattleTypeFlags
_08028948: .4byte gUnknown_02024C0C
_0802894C: .4byte gBitTable
_08028950: .4byte gBattleMons
@@ -53774,7 +53534,7 @@ _080289B0: .4byte gBattleMons
_080289B4: .4byte gUnknown_02024A6A
_080289B8: .4byte gUnknown_02024C07
_080289BC:
- ldr r0, _080289F4 @ =gUnknown_020239F8
+ ldr r0, _080289F4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -53804,7 +53564,7 @@ _080289EC:
ldrb r0, [r0]
b _08028A10
.align 2, 0
-_080289F4: .4byte gUnknown_020239F8
+_080289F4: .4byte gBattleTypeFlags
_080289F8: .4byte gUnknown_02024A60
_080289FC: .4byte gUnknown_02024C0C
_08028A00: .4byte gBitTable
@@ -53850,7 +53610,7 @@ _08028A26:
bl battle_get_side_with_given_state
ldr r3, _08028AC0 @ =gUnknown_02024A60
strb r0, [r3]
- ldr r0, _08028AC4 @ =gUnknown_020239F8
+ ldr r0, _08028AC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -53900,7 +53660,7 @@ _08028AB4: .4byte gUnknown_02024D1E
_08028AB8: .4byte gBattleMons
_08028ABC: .4byte gUnknown_02024C07
_08028AC0: .4byte gUnknown_02024A60
-_08028AC4: .4byte gUnknown_020239F8
+_08028AC4: .4byte gBattleTypeFlags
_08028AC8: .4byte gUnknown_02024C0C
_08028ACC: .4byte gBitTable
_08028AD0: .4byte gUnknown_02024C10
@@ -55063,7 +54823,7 @@ _080293E4: .4byte gUnknown_02024C10
thumb_func_start sub_80293E8
sub_80293E8: @ 80293E8
push {lr}
- ldr r2, _08029408 @ =word_2024DB8
+ ldr r2, _08029408 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x60
ands r0, r1
@@ -55079,7 +54839,7 @@ sub_80293E8: @ 80293E8
strb r0, [r1, 0x5]
b _08029426
.align 2, 0
-_08029408: .4byte word_2024DB8
+_08029408: .4byte gBattleWeather
_0802940C: .4byte gUnknown_02024C68
_08029410: .4byte gUnknown_02024D1E
_08029414:
@@ -55398,7 +55158,7 @@ atkC0_recoverbasedonsunlight: @ 802967C
ldrh r0, [r0, 0x2C]
cmp r1, r0
beq _0802975C
- ldr r4, _080296F4 @ =word_2024DB8
+ ldr r4, _080296F4 @ =gBattleWeather
ldrh r0, [r4]
cmp r0, 0
beq _080296CE
@@ -55439,7 +55199,7 @@ _080296CE:
_080296E8: .4byte gUnknown_02024C08
_080296EC: .4byte gUnknown_02024C07
_080296F0: .4byte gBattleMons
-_080296F4: .4byte word_2024DB8
+_080296F4: .4byte gBattleWeather
_080296F8: .4byte gUnknown_02024BEC
_080296FC:
ldrh r1, [r4]
@@ -56293,7 +56053,7 @@ _08029DA8: .4byte gUnknown_02024C10
thumb_func_start sub_8029DAC
sub_8029DAC: @ 8029DAC
push {lr}
- ldr r3, _08029DD0 @ =word_2024DB8
+ ldr r3, _08029DD0 @ =gBattleWeather
ldrh r1, [r3]
movs r2, 0x80
adds r0, r2, 0
@@ -56310,7 +56070,7 @@ sub_8029DAC: @ 8029DAC
strb r0, [r1, 0x5]
b _08029DEA
.align 2, 0
-_08029DD0: .4byte word_2024DB8
+_08029DD0: .4byte gBattleWeather
_08029DD4: .4byte gUnknown_02024C68
_08029DD8: .4byte gUnknown_02024D1E
_08029DDC:
@@ -56507,7 +56267,7 @@ atkCC_callterrainattack: @ 8029F50
str r0, [r2]
ldr r4, _08029FA8 @ =gUnknown_02024BE6
ldr r1, _08029FAC @ =gNaturePowerMoves
- ldr r0, _08029FB0 @ =gUnknown_0300428C
+ ldr r0, _08029FB0 @ =gBattleTerrain
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -56542,7 +56302,7 @@ _08029FA0: .4byte gUnknown_02024C6C
_08029FA4: .4byte 0xfffffbff
_08029FA8: .4byte gUnknown_02024BE6
_08029FAC: .4byte gNaturePowerMoves
-_08029FB0: .4byte gUnknown_0300428C
+_08029FB0: .4byte gBattleTerrain
_08029FB4: .4byte gUnknown_02024C08
_08029FB8: .4byte gUnknown_081D6BBC
_08029FBC: .4byte gBattleMoves
@@ -56786,7 +56546,7 @@ sub_802A170: @ 802A170
bl battle_get_side_with_given_state
ldr r3, _0802A1DC @ =gUnknown_02024C08
strb r0, [r3]
- ldr r0, _0802A1E0 @ =gUnknown_020239F8
+ ldr r0, _0802A1E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -56827,7 +56587,7 @@ sub_802A170: @ 802A170
.align 2, 0
_0802A1D8: .4byte gUnknown_02024C07
_0802A1DC: .4byte gUnknown_02024C08
-_0802A1E0: .4byte gUnknown_020239F8
+_0802A1E0: .4byte gBattleTypeFlags
_0802A1E4: .4byte gUnknown_02024C0C
_0802A1E8: .4byte gBitTable
_0802A1EC: .4byte gUnknown_02024D28
@@ -56869,7 +56629,7 @@ sub_802A218: @ 802A218
lsrs r0, 24
cmp r0, 0x1
bne _0802A24C
- ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldr r0, _0802A310 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0802A314 @ =0x00000902
ands r0, r1
@@ -56887,7 +56647,7 @@ _0802A24C:
bl battle_side_get_owner
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldr r0, _0802A310 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0802A314 @ =0x00000902
ands r0, r1
@@ -56981,7 +56741,7 @@ _0802A2EE:
b _0802A49A
.align 2, 0
_0802A30C: .4byte gUnknown_02024C07
-_0802A310: .4byte gUnknown_020239F8
+_0802A310: .4byte gBattleTypeFlags
_0802A314: .4byte 0x00000902
_0802A318: .4byte gTrainerBattleOpponent
_0802A31C: .4byte gUnknown_02024DBC
@@ -57893,7 +57653,7 @@ _0802AA08:
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
- bl sub_8090D54
+ bl GetPokedexHeightWeight
ldrh r1, [r4]
lsls r0, 16
lsrs r0, 16
@@ -58470,7 +58230,7 @@ _0802AEAA:
thumb_func_start sub_802AEB0
sub_802AEB0: @ 802AEB0
push {lr}
- ldr r0, _0802AEC4 @ =gUnknown_0300428C
+ ldr r0, _0802AEC4 @ =gBattleTerrain
ldrb r0, [r0]
cmp r0, 0x7
bhi _0802AF4C
@@ -58480,7 +58240,7 @@ sub_802AEB0: @ 802AEB0
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0802AEC4: .4byte gUnknown_0300428C
+_0802AEC4: .4byte gBattleTerrain
_0802AEC8: .4byte _0802AECC
.align 2, 0
_0802AECC:
@@ -58875,7 +58635,7 @@ sub_802B1C0: @ 802B1C0
lsls r0, 24
cmp r0, 0
bne _0802B276
- ldr r3, _0802B218 @ =word_2024DB8
+ ldr r3, _0802B218 @ =gBattleWeather
ldrb r0, [r3]
ldr r2, _0802B21C @ =0x02000000
cmp r0, 0
@@ -58896,7 +58656,7 @@ _0802B202:
strb r0, [r1]
b _0802B276
.align 2, 0
-_0802B218: .4byte word_2024DB8
+_0802B218: .4byte gBattleWeather
_0802B21C: .4byte 0x02000000
_0802B220: .4byte 0x0001601f
_0802B224: .4byte 0x0001601c
@@ -59050,7 +58810,7 @@ atkEB_settypetoterrain: @ 802B330
adds r0, r3
mov r12, r0
ldr r5, _0802B3A8 @ =gTerrainToType
- ldr r4, _0802B3AC @ =gUnknown_0300428C
+ ldr r4, _0802B3AC @ =gBattleTerrain
ldrb r0, [r4]
adds r0, r5
ldrb r2, [r0]
@@ -59095,7 +58855,7 @@ atkEB_settypetoterrain: @ 802B330
_0802B3A0: .4byte gBattleMons
_0802B3A4: .4byte gUnknown_02024C07
_0802B3A8: .4byte gTerrainToType
-_0802B3AC: .4byte gUnknown_0300428C
+_0802B3AC: .4byte gBattleTerrain
_0802B3B0: .4byte gUnknown_030041C0
_0802B3B4: .4byte gUnknown_02024C10
_0802B3B8:
@@ -59135,7 +58895,7 @@ sub_802B3E0: @ 802B3E0
bl battle_get_side_with_given_state
ldr r4, _0802B460 @ =gUnknown_02024A60
strb r0, [r4]
- ldr r0, _0802B464 @ =gUnknown_020239F8
+ ldr r0, _0802B464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -59187,7 +58947,7 @@ sub_802B3E0: @ 802B3E0
.align 2, 0
_0802B45C: .4byte gUnknown_02024C07
_0802B460: .4byte gUnknown_02024A60
-_0802B464: .4byte gUnknown_020239F8
+_0802B464: .4byte gBattleTypeFlags
_0802B468: .4byte gUnknown_02024C0C
_0802B46C: .4byte gBitTable
_0802B470: .4byte gUnknown_02024C18
@@ -59362,7 +59122,7 @@ _0802B5C6:
movs r1, 0x1
eors r0, r1
strb r0, [r6]
- ldr r0, _0802B608 @ =gUnknown_020239F8
+ ldr r0, _0802B608 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -59381,7 +59141,7 @@ _0802B5F8: .4byte gUnknown_02024A64
_0802B5FC: .4byte gUnknown_02024A60
_0802B600: .4byte gUnknown_02024C07
_0802B604: .4byte gUnknown_02024C08
-_0802B608: .4byte gUnknown_020239F8
+_0802B608: .4byte gBattleTypeFlags
_0802B60C: .4byte gUnknown_02024C10
_0802B610: .4byte gUnknown_081D9F35
_0802B614:
@@ -60579,7 +60339,7 @@ dp01_tbl1_exec_completed: @ 802BF9C
adds r0, r1
ldr r1, _0802BFE4 @ =sub_802C014
str r1, [r0]
- ldr r0, _0802BFE8 @ =gUnknown_020239F8
+ ldr r0, _0802BFE8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -60603,7 +60363,7 @@ dp01_tbl1_exec_completed: @ 802BF9C
_0802BFDC: .4byte gUnknown_03004330
_0802BFE0: .4byte gUnknown_02024A60
_0802BFE4: .4byte sub_802C014
-_0802BFE8: .4byte gUnknown_020239F8
+_0802BFE8: .4byte gBattleTypeFlags
_0802BFEC: .4byte gUnknown_02023A60
_0802BFF0:
ldr r2, _0802C00C @ =gUnknown_02024A64
@@ -60886,7 +60646,7 @@ _0802C218:
ands r0, r1
cmp r0, 0
beq _0802C2A0
- ldr r6, _0802C294 @ =gUnknown_020239F8
+ ldr r6, _0802C294 @ =gBattleTypeFlags
ldrh r1, [r6]
adds r0, r2, 0
ands r0, r1
@@ -60938,7 +60698,7 @@ _0802C278:
bl sub_814A7FC
b _0802C2AC
.align 2, 0
-_0802C294: .4byte gUnknown_020239F8
+_0802C294: .4byte gBattleTypeFlags
_0802C298: .4byte gUnknown_02024C0C
_0802C29C: .4byte gBitTable
_0802C2A0:
@@ -61800,7 +61560,7 @@ _0802C99C:
ldrb r0, [r0]
cmp r0, 0x1
bls _0802CA38
- ldr r0, _0802C9DC @ =gUnknown_020239F8
+ ldr r0, _0802C9DC @ =gBattleTypeFlags
ldrh r1, [r0]
adds r0, r6, 0
ands r0, r1
@@ -61823,7 +61583,7 @@ _0802C99C:
b _0802C9F4
.align 2, 0
_0802C9D8: .4byte gUnknown_03004348
-_0802C9DC: .4byte gUnknown_020239F8
+_0802C9DC: .4byte gBattleTypeFlags
_0802C9E0: .4byte gUnknown_02024E64
_0802C9E4: .4byte gUnknown_081FAE80
_0802C9E8: .4byte gUnknown_03004344
@@ -62760,7 +62520,7 @@ sub_802D18C: @ 802D18C
ands r0, r1
cmp r0, 0
bne _0802D1F2
- ldr r0, _0802D1C0 @ =gUnknown_020239F8
+ ldr r0, _0802D1C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -62777,7 +62537,7 @@ sub_802D18C: @ 802D18C
b _0802D1F2
.align 2, 0
_0802D1BC: .4byte gPaletteFade
-_0802D1C0: .4byte gUnknown_020239F8
+_0802D1C0: .4byte gBattleTypeFlags
_0802D1C4: .4byte gUnknown_03004330
_0802D1C8: .4byte gUnknown_02024A60
_0802D1CC: .4byte sub_802D148
@@ -62952,15 +62712,15 @@ _0802D318: .4byte 0x02017810
sub_802D31C: @ 802D31C
push {r4-r7,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D340
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D374
- ldr r0, _0802D360 @ =gUnknown_020239F8
+ ldr r0, _0802D360 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -62984,7 +62744,7 @@ _0802D340:
bne _0802D3AA
b _0802D3A8
.align 2, 0
-_0802D360: .4byte gUnknown_020239F8
+_0802D360: .4byte gBattleTypeFlags
_0802D364: .4byte gSprites
_0802D368: .4byte gUnknown_03004340
_0802D36C: .4byte gUnknown_02024A60
@@ -63097,7 +62857,7 @@ _0802D3D8:
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
- ldr r0, _0802D474 @ =gUnknown_020239F8
+ ldr r0, _0802D474 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -63113,7 +62873,7 @@ _0802D464: .4byte gUnknown_02024A60
_0802D468: .4byte SpriteCallbackDummy
_0802D46C: .4byte 0x02017810
_0802D470: .4byte 0x000027f9
-_0802D474: .4byte gUnknown_020239F8
+_0802D474: .4byte gBattleTypeFlags
_0802D478: .4byte gMPlay_BGM
_0802D47C:
ldr r0, _0802D4E0 @ =gMPlay_BGM
@@ -63133,7 +62893,7 @@ _0802D488:
ldr r5, _0802D4F0 @ =gPlayerParty
adds r0, r5
bl sub_80324F8
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D4BE
@@ -63247,11 +63007,11 @@ _0802D55E:
ands r0, r1
cmp r0, 0
bne _0802D64C
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D5EE
- ldr r0, _0802D664 @ =gUnknown_020239F8
+ ldr r0, _0802D664 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -63345,7 +63105,7 @@ _0802D654: .4byte gUnknown_02024A60
_0802D658: .4byte 0x02017810
_0802D65C: .4byte gUnknown_02024A6A
_0802D660: .4byte gPlayerParty
-_0802D664: .4byte gUnknown_020239F8
+_0802D664: .4byte gBattleTypeFlags
_0802D668: .4byte gUnknown_0300434C
_0802D66C: .4byte gSprites
_0802D670: .4byte gUnknown_03004340
@@ -63699,7 +63459,7 @@ sub_802D924: @ 802D924
str r7, [sp, 0x8]
ldrh r2, [r1, 0xA]
str r2, [sp, 0xC]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -63776,7 +63536,7 @@ _0802D96A:
movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb
strb r5, [r4]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -64117,7 +63877,7 @@ sub_802DCB0: @ 802DCB0
adds r0, r1
ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -64184,7 +63944,7 @@ sub_802DD10: @ 802DD10
adds r0, r7, 0
movs r1, 0x38
bl GetMonData
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -65095,7 +64855,7 @@ _0802E488: .4byte 0x02017810
b_link_standby_message: @ 802E48C
push {lr}
sub sp, 0x4
- ldr r0, _0802E4BC @ =gUnknown_020239F8
+ ldr r0, _0802E4BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -65118,7 +64878,7 @@ _0802E4B6:
pop {r0}
bx r0
.align 2, 0
-_0802E4BC: .4byte gUnknown_020239F8
+_0802E4BC: .4byte gBattleTypeFlags
_0802E4C0: .4byte gUnknown_030042A4
_0802E4C4: .4byte gUnknown_030042A0
_0802E4C8: .4byte gUnknown_03004210
@@ -67573,7 +67333,7 @@ sub_802F934: @ 802F934
lsrs r0, 16
mov r8, r0
ldr r0, _0802FA84 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _0802FA88 @ =gUnknown_0300434C
mov r9, r1
add r9, r6
@@ -67845,7 +67605,7 @@ sub_802FBB4: @ 802FBB4
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _0802FBDC @ =gUnknown_020239F8
+ ldr r0, _0802FBDC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -67862,7 +67622,7 @@ sub_802FBB4: @ 802FBB4
movs r7, 0x10
b _0802FBEA
.align 2, 0
-_0802FBDC: .4byte gUnknown_020239F8
+_0802FBDC: .4byte gBattleTypeFlags
_0802FBE0: .4byte gUnknown_02024A60
_0802FBE4: .4byte 0x0000fff0
_0802FBE8:
@@ -70181,11 +69941,11 @@ _08030ECC:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08030EEC
- ldr r0, _08030F10 @ =gUnknown_020239F8
+ ldr r0, _08030F10 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -70208,7 +69968,7 @@ _08030EEC:
b _08030F70
.align 2, 0
_08030F0C: .4byte gUnknown_02024A60
-_08030F10: .4byte gUnknown_020239F8
+_08030F10: .4byte gBattleTypeFlags
_08030F14: .4byte gUnknown_02023A60
_08030F18: .4byte gUnknown_02024A6A
_08030F1C:
@@ -71369,7 +71129,7 @@ _080317DC:
str r6, [sp, 0x4]
str r7, [sp, 0x8]
adds r0, r5, 0
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
mov r1, r9
lsls r2, r1, 4
movs r0, 0x80
@@ -71533,7 +71293,7 @@ _08031944:
str r6, [sp, 0x4]
str r7, [sp, 0x8]
adds r0, r5, 0
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
mov r1, r9
lsls r2, r1, 4
movs r0, 0x80
@@ -71804,7 +71564,7 @@ unref_sub_8031BA0: @ 8031BA0
adds r4, 0x8
adds r0, r4, 0
bl LoadSpritePalette
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08031BD8
@@ -71883,13 +71643,13 @@ _08031C40:
.align 2, 0
_08031C58: .4byte gUnknown_0820A4D4
_08031C5C:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08031CC4
cmp r4, 0x2
bne _08031C94
- ldr r0, _08031C80 @ =gUnknown_020239F8
+ ldr r0, _08031C80 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -71899,7 +71659,7 @@ _08031C5C:
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
-_08031C80: .4byte gUnknown_020239F8
+_08031C80: .4byte gBattleTypeFlags
_08031C84: .4byte gUnknown_0820A4AC
_08031C88:
ldr r0, _08031C90 @ =gUnknown_0820A47C
@@ -72066,7 +71826,7 @@ _08031DC0:
strb r0, [r4]
b _08031EDE
_08031DC8:
- ldr r0, _08031DE0 @ =gUnknown_020239F8
+ ldr r0, _08031DE0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -72078,7 +71838,7 @@ _08031DC8:
bl battle_make_oam_safari_battle
b _08031DEA
.align 2, 0
-_08031DE0: .4byte gUnknown_020239F8
+_08031DE0: .4byte gBattleTypeFlags
_08031DE4:
ldrb r0, [r4]
bl battle_make_oam_normal_battle
@@ -72123,7 +71883,7 @@ _08031E34:
lsls r0, 24
cmp r0, 0
bne _08031E7C
- ldr r0, _08031E6C @ =gUnknown_020239F8
+ ldr r0, _08031E6C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -72145,7 +71905,7 @@ _08031E34:
bl sub_8045A5C
b _08031E9A
.align 2, 0
-_08031E6C: .4byte gUnknown_020239F8
+_08031E6C: .4byte gBattleTypeFlags
_08031E70: .4byte gUnknown_03004340
_08031E74: .4byte gUnknown_02024A6A
_08031E78: .4byte gPlayerParty
@@ -72532,7 +72292,7 @@ _08032114:
ldr r4, [r4]
_08032184:
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
b _08032202
.align 2, 0
_0803218C: .4byte gUnknown_02024A6A
@@ -72585,7 +72345,7 @@ _080321A4:
add r4, r12
ldr r4, [r4]
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
_08032202:
ldr r1, _08032318 @ =gUnknown_081FAF4C
mov r2, r10
@@ -72968,7 +72728,7 @@ sub_80324F8: @ 80324F8
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -73010,7 +72770,7 @@ _08032568:
negs r0, r0
ands r0, r2
strb r0, [r1]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08032590
@@ -73020,7 +72780,7 @@ _08032568:
.align 2, 0
_0803258C: .4byte 0x02017800
_08032590:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080325B2
@@ -73057,7 +72817,7 @@ sub_80325B8: @ 80325B8
adds r0, r5, 0
ands r0, r2
strb r0, [r1]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080325F2
@@ -73098,7 +72858,7 @@ unref_sub_8032604: @ 8032604
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
@@ -73160,7 +72920,7 @@ sub_8032638: @ 8032638
mov r1, r8
bl sub_80324F8
_080326AA:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080326CE
@@ -73349,7 +73109,7 @@ sub_80327CC: @ 80327CC
lsls r0, 2
adds r0, r7
strh r5, [r0, 0x2E]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0803288A
@@ -73931,15 +73691,15 @@ _08032C84: .4byte 0x02017810
sub_8032C88: @ 8032C88
push {r4-r7,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032CAC
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032CE0
- ldr r0, _08032CCC @ =gUnknown_020239F8
+ ldr r0, _08032CCC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -73963,7 +73723,7 @@ _08032CAC:
bne _08032D16
b _08032D14
.align 2, 0
-_08032CCC: .4byte gUnknown_020239F8
+_08032CCC: .4byte gBattleTypeFlags
_08032CD0: .4byte gSprites
_08032CD4: .4byte gUnknown_03004340
_08032CD8: .4byte gUnknown_02024A60
@@ -74072,7 +73832,7 @@ _08032D22:
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
- ldr r0, _08032DDC @ =gUnknown_020239F8
+ ldr r0, _08032DDC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -74088,7 +73848,7 @@ _08032DCC: .4byte gUnknown_02024A60
_08032DD0: .4byte SpriteCallbackDummy
_08032DD4: .4byte 0x02017810
_08032DD8: .4byte 0x000027f9
-_08032DDC: .4byte gUnknown_020239F8
+_08032DDC: .4byte gBattleTypeFlags
_08032DE0: .4byte gMPlay_BGM
_08032DE4:
ldr r0, _08032E14 @ =gMPlay_BGM
@@ -74206,11 +73966,11 @@ _08032EAE:
beq _08032EC6
b _08032FE0
_08032EC6:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032F58
- ldr r0, _08032FFC @ =gUnknown_020239F8
+ ldr r0, _08032FFC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -74347,7 +74107,7 @@ _08032FEC: .4byte gUnknown_02024A60
_08032FF0: .4byte 0x02017810
_08032FF4: .4byte gUnknown_02024A6A
_08032FF8: .4byte gEnemyParty
-_08032FFC: .4byte gUnknown_020239F8
+_08032FFC: .4byte gBattleTypeFlags
_08033000: .4byte gUnknown_0300434C
_08033004: .4byte gSprites
_08033008: .4byte gUnknown_03004340
@@ -77414,7 +77174,7 @@ sub_803495C: @ 803495C
lsrs r0, 16
mov r8, r0
ldr r0, _08034AC4 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _08034AC8 @ =gUnknown_0300434C
mov r10, r1
add r10, r6
@@ -77707,7 +77467,7 @@ sub_8034BFC: @ 8034BFC
.align 2, 0
_08034C18: .4byte gTrainerBattleOpponent
_08034C1C:
- ldr r0, _08034C30 @ =gUnknown_020239F8
+ ldr r0, _08034C30 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -77717,7 +77477,7 @@ _08034C1C:
bl get_trainer_class_pic_index
b _08034C42
.align 2, 0
-_08034C30: .4byte gUnknown_020239F8
+_08034C30: .4byte gBattleTypeFlags
_08034C34:
movs r0, 0x80
lsls r0, 4
@@ -77918,7 +77678,7 @@ sub_8034DC0: @ 8034DC0
.align 2, 0
_08034DDC: .4byte gTrainerBattleOpponent
_08034DE0:
- ldr r0, _08034DF4 @ =gUnknown_020239F8
+ ldr r0, _08034DF4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -77928,7 +77688,7 @@ _08034DE0:
bl get_trainer_class_pic_index
b _08034E06
.align 2, 0
-_08034DF4: .4byte gUnknown_020239F8
+_08034DF4: .4byte gBattleTypeFlags
_08034DF8:
movs r0, 0x80
lsls r0, 4
@@ -78707,15 +78467,15 @@ sub_8035428: @ 8035428
lsls r0, 9
ldr r1, _08035460 @ =gUnknown_02023A64
adds r5, r0, r1
- ldr r0, _08035464 @ =gUnknown_020239F8
+ ldr r0, _08035464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x93
lsls r0, 3
ands r0, r1
cmp r0, 0
beq _080354F8
- bl sub_810715C
- bl sub_81072A8
+ bl BattleAI_SetupAIData
+ bl BattleAI_GetAIActionToUse
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
@@ -78728,7 +78488,7 @@ sub_8035428: @ 8035428
.align 2, 0
_0803545C: .4byte gUnknown_02024A60
_08035460: .4byte gUnknown_02023A64
-_08035464: .4byte gUnknown_020239F8
+_08035464: .4byte gBattleTypeFlags
_08035468:
movs r0, 0x1
movs r1, 0x3
@@ -78832,7 +78592,7 @@ _080354FA:
_08035534: .4byte gBattleMoves
_08035538: .4byte gUnknown_02024A60
_0803553C:
- ldr r0, _0803556C @ =gUnknown_020239F8
+ ldr r0, _0803556C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -78854,7 +78614,7 @@ _0803553C:
bl dp01_build_cmdbuf_x21_a_bb
b _08035586
.align 2, 0
-_0803556C: .4byte gUnknown_020239F8
+_0803556C: .4byte gBattleTypeFlags
_08035570:
movs r0, 0
bl battle_get_side_with_given_state
@@ -78916,7 +78676,7 @@ sub_80355C0: @ 80355C0
lsrs r4, r0, 24
cmp r4, 0x6
bne _0803568A
- ldr r0, _08035610 @ =gUnknown_020239F8
+ ldr r0, _08035610 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -78932,7 +78692,7 @@ sub_80355C0: @ 80355C0
_08035604: .4byte 0x02000000
_08035608: .4byte gUnknown_02024A60
_0803560C: .4byte 0x000160c8
-_08035610: .4byte gUnknown_020239F8
+_08035610: .4byte gBattleTypeFlags
_08035614:
movs r0, 0x1
bl battle_get_side_with_given_state
@@ -79743,11 +79503,11 @@ sub_8035C44: @ 8035C44
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08035C7E
- ldr r0, _08035CA4 @ =gUnknown_020239F8
+ ldr r0, _08035CA4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -79771,7 +79531,7 @@ _08035C7E:
.align 2, 0
_08035C9C: .4byte gUnknown_02024A60
_08035CA0: .4byte gTasks
-_08035CA4: .4byte gUnknown_020239F8
+_08035CA4: .4byte gBattleTypeFlags
_08035CA8: .4byte gUnknown_02023A60
_08035CAC: .4byte gUnknown_02024A6A
_08035CB0:
@@ -80156,7 +79916,7 @@ sub_8035F98: @ 8035F98
thumb_func_start sub_8035FA4
sub_8035FA4: @ 8035FA4
push {lr}
- ldr r0, _08035FD8 @ =gUnknown_020239F8
+ ldr r0, _08035FD8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -80180,7 +79940,7 @@ _08035FCE:
pop {r0}
bx r0
.align 2, 0
-_08035FD8: .4byte gUnknown_020239F8
+_08035FD8: .4byte gBattleTypeFlags
_08035FDC: .4byte gMain
_08035FE0: .4byte 0x0000043d
_08035FE4: .4byte gUnknown_030042D0
@@ -80248,7 +80008,7 @@ sub_8036054: @ 8036054
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _0803606C @ =gUnknown_020239F8
+ ldr r0, _0803606C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -80256,7 +80016,7 @@ sub_8036054: @ 8036054
beq _080360A0
b _080361C8
.align 2, 0
-_0803606C: .4byte gUnknown_020239F8
+_0803606C: .4byte gBattleTypeFlags
_08036070:
ldr r0, _08036094 @ =gUnknown_02024A60
ldrb r0, [r0]
@@ -80485,7 +80245,7 @@ _0803622E:
bne _08036242
b _08036400
_08036242:
- ldr r0, _0803628C @ =gUnknown_020239F8
+ ldr r0, _0803628C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -80516,7 +80276,7 @@ _0803627C: .4byte gUnknown_02024C3C
_08036280: .4byte gUnknown_02024A60
_08036284: .4byte 0x0000ffff
_08036288: .4byte gBattleMoves
-_0803628C: .4byte gUnknown_020239F8
+_0803628C: .4byte gBattleTypeFlags
_08036290: .4byte gUnknown_02024C0C
_08036294: .4byte gBitTable
_08036298:
@@ -80901,7 +80661,7 @@ _08036596:
cmp r4, 0x3
ble _08036550
_0803659C:
- ldr r0, _080365BC @ =gUnknown_020239F8
+ ldr r0, _080365BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -80913,7 +80673,7 @@ _080365AC: .4byte gUnknown_02024C0C
_080365B0: .4byte gBitTable
_080365B4: .4byte gBattleMons
_080365B8: .4byte gUnknown_02024A60
-_080365BC: .4byte gUnknown_020239F8
+_080365BC: .4byte gBattleTypeFlags
_080365C0:
movs r0, 0x1
b _08036640
@@ -81082,7 +80842,7 @@ _080366E2:
bne _080366F6
b _080368D8
_080366F6:
- ldr r0, _08036744 @ =gUnknown_020239F8
+ ldr r0, _08036744 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -81115,7 +80875,7 @@ _08036734: .4byte gUnknown_02024A60
_08036738: .4byte 0x0000ffff
_0803673C: .4byte gUnknown_02024C5C
_08036740: .4byte gBattleMoves
-_08036744: .4byte gUnknown_020239F8
+_08036744: .4byte gBattleTypeFlags
_08036748: .4byte gUnknown_02024C0C
_0803674C: .4byte gBitTable
_08036750:
@@ -81410,7 +81170,7 @@ _08036994:
_080369A0:
movs r0, 0
mov r8, r0
- ldr r0, _080369F0 @ =gUnknown_020239F8
+ ldr r0, _080369F0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -81442,7 +81202,7 @@ _080369E0: .4byte gBattleMons
_080369E4: .4byte gUnknown_02024A60
_080369E8: .4byte 0x0400e000
_080369EC: .4byte gUnknown_02024C98
-_080369F0: .4byte gUnknown_020239F8
+_080369F0: .4byte gBattleTypeFlags
_080369F4: .4byte gUnknown_02024C0C
_080369F8: .4byte gBitTable
_080369FC:
@@ -81576,7 +81336,7 @@ _08036AFE:
thumb_func_start sub_8036B0C
sub_8036B0C: @ 8036B0C
push {r4-r6,lr}
- ldr r5, _08036B68 @ =gUnknown_020239F8
+ ldr r5, _08036B68 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r0, 0x8
ands r0, r1
@@ -81619,7 +81379,7 @@ _08036B28:
adds r6, r5, 0
b _08036B8C
.align 2, 0
-_08036B68: .4byte gUnknown_020239F8
+_08036B68: .4byte gBattleTypeFlags
_08036B6C: .4byte 0x02000000
_08036B70: .4byte gUnknown_02024A60
_08036B74: .4byte 0x000160c8
@@ -81808,7 +81568,7 @@ sub_8036CD4: @ 8036CD4
mov r5, r8
push {r5-r7}
sub sp, 0x1C
- ldr r0, _08036D1C @ =gUnknown_020239F8
+ ldr r0, _08036D1C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -81837,7 +81597,7 @@ sub_8036CD4: @ 8036CD4
str r4, [sp, 0x10]
b _08036D42
.align 2, 0
-_08036D1C: .4byte gUnknown_020239F8
+_08036D1C: .4byte gBattleTypeFlags
_08036D20: .4byte gUnknown_02024A60
_08036D24: .4byte gUnknown_02024C0C
_08036D28: .4byte gBitTable
@@ -82431,7 +82191,7 @@ _080371D0:
mov r0, r10
movs r1, 0x4
movs r2, 0x4
- bl sub_803F1DC
+ bl GetItemEffectParamOffset
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -83046,15 +82806,15 @@ _0803767C: .4byte 0x02017810
sub_8037680: @ 8037680
push {r4-r7,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080376A4
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080376D8
- ldr r0, _080376C4 @ =gUnknown_020239F8
+ ldr r0, _080376C4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83078,7 +82838,7 @@ _080376A4:
bne _0803770E
b _0803770C
.align 2, 0
-_080376C4: .4byte gUnknown_020239F8
+_080376C4: .4byte gBattleTypeFlags
_080376C8: .4byte gSprites
_080376CC: .4byte gUnknown_03004340
_080376D0: .4byte gUnknown_02024A60
@@ -83195,7 +82955,7 @@ _08037720:
adds r0, r4, 0
bl FreeSpritePaletteByTag
_080377B4:
- ldr r0, _080377F0 @ =gUnknown_020239F8
+ ldr r0, _080377F0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83217,7 +82977,7 @@ _080377E0: .4byte gUnknown_02024A60
_080377E4: .4byte SpriteCallbackDummy
_080377E8: .4byte 0x02017810
_080377EC: .4byte 0x000027f9
-_080377F0: .4byte gUnknown_020239F8
+_080377F0: .4byte gBattleTypeFlags
_080377F4: .4byte gMPlay_BGM
_080377F8:
ldr r0, _08037828 @ =gMPlay_BGM
@@ -83335,7 +83095,7 @@ _080378BE:
beq _080378DA
b _08037A3A
_080378DA:
- ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldr r0, _08037A58 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83368,11 +83128,11 @@ _0803790E:
adds r0, r5
strb r4, [r0, 0x9]
_0803791A:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080379B2
- ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldr r0, _08037A58 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83513,7 +83273,7 @@ _08037A48: .4byte gUnknown_02024A60
_08037A4C: .4byte 0x02017810
_08037A50: .4byte gUnknown_02024A6A
_08037A54: .4byte gEnemyParty
-_08037A58: .4byte gUnknown_020239F8
+_08037A58: .4byte gBattleTypeFlags
_08037A5C: .4byte gUnknown_0300434C
_08037A60: .4byte gSprites
_08037A64: .4byte gUnknown_03004340
@@ -84111,7 +83871,7 @@ sub_8037F34: @ 8037F34
ands r0, r1
cmp r0, 0
bne _08037F9A
- ldr r0, _08037F68 @ =gUnknown_020239F8
+ ldr r0, _08037F68 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -84128,7 +83888,7 @@ sub_8037F34: @ 8037F34
b _08037F9A
.align 2, 0
_08037F64: .4byte gPaletteFade
-_08037F68: .4byte gUnknown_020239F8
+_08037F68: .4byte gBattleTypeFlags
_08037F6C: .4byte gUnknown_03004330
_08037F70: .4byte gUnknown_02024A60
_08037F74: .4byte sub_8037EF0
@@ -84216,7 +83976,7 @@ dp01_tbl4_exec_completed: @ 8038004
adds r0, r1
ldr r1, _0803804C @ =sub_803752C
str r1, [r0]
- ldr r0, _08038050 @ =gUnknown_020239F8
+ ldr r0, _08038050 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -84240,7 +84000,7 @@ dp01_tbl4_exec_completed: @ 8038004
_08038044: .4byte gUnknown_03004330
_08038048: .4byte gUnknown_02024A60
_0803804C: .4byte sub_803752C
-_08038050: .4byte gUnknown_020239F8
+_08038050: .4byte gBattleTypeFlags
_08038054: .4byte gUnknown_02023A60
_08038058:
ldr r2, _08038074 @ =gUnknown_02024A64
@@ -86633,7 +86393,7 @@ sub_8039430: @ 8039430
lsrs r0, 16
mov r8, r0
ldr r0, _08039598 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _0803959C @ =gUnknown_0300434C
mov r10, r1
add r10, r6
@@ -86915,7 +86675,7 @@ sub_80396D0: @ 80396D0
mov r6, r9
mov r5, r8
push {r5,r6}
- ldr r0, _08039704 @ =gUnknown_020239F8
+ ldr r0, _08039704 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -86936,7 +86696,7 @@ _080396F8:
bl sub_803FC34
b _08039724
.align 2, 0
-_08039704: .4byte gUnknown_020239F8
+_08039704: .4byte gBattleTypeFlags
_08039708: .4byte gUnknown_02024A60
_0803970C: .4byte 0x0000fff0
_08039710: .4byte gLinkPlayers
@@ -88441,11 +88201,11 @@ sub_803A2C4: @ 803A2C4
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0803A2FE
- ldr r0, _0803A324 @ =gUnknown_020239F8
+ ldr r0, _0803A324 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -88469,7 +88229,7 @@ _0803A2FE:
.align 2, 0
_0803A31C: .4byte gUnknown_02024A60
_0803A320: .4byte gTasks
-_0803A324: .4byte gUnknown_020239F8
+_0803A324: .4byte gBattleTypeFlags
_0803A328: .4byte gUnknown_02023A60
_0803A32C: .4byte gUnknown_02024A6A
_0803A330:
diff --git a/asm/rom_803D1FC.s b/asm/rom_803D1FC.s
deleted file mode 100644
index e011d3c43..000000000
--- a/asm/rom_803D1FC.s
+++ /dev/null
@@ -1,5839 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 803E18C
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_803E1B0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_803E1B0
-sub_803E1B0: @ 803E1B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- mov r8, r0
- ldr r0, [sp, 0x5C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0x1
- str r0, [sp, 0x1C]
- movs r1, 0x6
- str r1, [sp, 0x24]
- movs r2, 0
- str r2, [sp, 0x2C]
- movs r3, 0x4
- str r3, [sp, 0x34]
- mov r0, r8
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803E240
- ldr r0, _0803E21C @ =gMain
- ldr r4, _0803E220 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E22C
- ldr r2, _0803E224 @ =gEnigmaBerries
- ldr r0, _0803E228 @ =gUnknown_02024E6C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0803E248
- .align 2, 0
-_0803E21C: .4byte gMain
-_0803E220: .4byte 0x0000043d
-_0803E224: .4byte gEnigmaBerries
-_0803E228: .4byte gUnknown_02024E6C
-_0803E22C:
- ldr r0, _0803E238 @ =gSaveBlock1
- ldr r5, _0803E23C @ =0x00003688
- adds r0, r5
- ldrb r0, [r0]
- b _0803E248
- .align 2, 0
-_0803E238: .4byte gSaveBlock1
-_0803E23C: .4byte 0x00003688
-_0803E240:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803E248:
- str r0, [sp, 0x30]
- ldr r1, _0803E2A4 @ =gUnknown_02024C0B
- ldr r0, _0803E2A8 @ =gUnknown_02024E6C
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _0803E2AC @ =gMain
- ldr r1, _0803E2B0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0803E2E8
- ldr r0, _0803E2B4 @ =gUnknown_02024A60
- strb r2, [r0]
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _0803E2B8 @ =gUnknown_02024A68
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- ldr r2, _0803E2BC @ =gUnknown_02024A6A
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r5, [sp, 0xC]
- lsls r0, r5, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _0803E2C0
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2A4: .4byte gUnknown_02024C0B
-_0803E2A8: .4byte gUnknown_02024E6C
-_0803E2AC: .4byte gMain
-_0803E2B0: .4byte 0x0000043d
-_0803E2B4: .4byte gUnknown_02024A60
-_0803E2B8: .4byte gUnknown_02024A68
-_0803E2BC: .4byte gUnknown_02024A6A
-_0803E2C0:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _0803E2E4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _0803E2C0
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2E4: .4byte gUnknown_02024A68
-_0803E2E8:
- ldr r0, _0803E310 @ =gUnknown_02024A60
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_0803E2F4:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _0803E36C
- ldr r1, _0803E314 @ =gItemEffectTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803E318
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _0803E31E
- b _0803E36C
- .align 2, 0
-_0803E310: .4byte gUnknown_02024A60
-_0803E314: .4byte gItemEffectTable
-_0803E318:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _0803E372
-_0803E31E:
- ldr r0, _0803E340 @ =gMain
- ldr r1, _0803E344 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E350
- ldr r0, _0803E348 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803E34C @ =gUnknown_02024DF8
- adds r0, r1
- b _0803E372
- .align 2, 0
-_0803E340: .4byte gMain
-_0803E344: .4byte 0x0000043d
-_0803E348: .4byte gUnknown_02024A60
-_0803E34C: .4byte gUnknown_02024DF8
-_0803E350:
- ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
- str r2, [sp, 0x20]
- b _0803E374
- .align 2, 0
-_0803E358: .4byte gSaveBlock1 + 0x3676
-_0803E35C:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl BeginEvolutionScene
- movs r0, 0
- bl _0803F15C
-_0803E36C:
- movs r0, 0x1
- bl _0803F15C
-_0803E372:
- str r0, [sp, 0x20]
-_0803E374:
- movs r3, 0
- str r3, [sp, 0x18]
-_0803E378:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _0803E382
- bl _0803F14C
-_0803E382:
- lsls r0, r4, 2
- ldr r1, _0803E38C @ =_0803E390
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E38C: .4byte _0803E390
- .align 2, 0
-_0803E390:
- .4byte _0803E3A8
- .4byte _0803E474
- .4byte _0803E508
- .4byte _0803E59C
- .4byte _0803E77C
- .4byte _0803EE1E
-_0803E3A8:
- ldr r5, [sp, 0x20]
- ldr r0, [sp, 0x18]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E460 @ =gMain
- ldr r1, _0803E464 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E3F0
- ldr r1, _0803E468 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E46C @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803E3F0:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0803E41E
- ldr r1, _0803E468 @ =gBattleMons
- ldr r0, _0803E470 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0803E41E
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E41E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E42C
- bl _0803F14C
-_0803E42C:
- ldr r6, _0803E468 @ =gBattleMons
- ldr r5, _0803E470 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E446
- bl _0803F14C
-_0803E446:
- adds r0, r2, r3
- strb r0, [r1, 0x19]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- bgt _0803E45A
- b _0803E74E
-_0803E45A:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0803E74E
- .align 2, 0
-_0803E460: .4byte gMain
-_0803E464: .4byte 0x0000043d
-_0803E468: .4byte gBattleMons
-_0803E46C: .4byte 0xfff0ffff
-_0803E470: .4byte gUnknown_02024A60
-_0803E474:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E4BA
- ldr r7, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1A]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E4BA
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1A]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4B6
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_0803E4B6:
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E4BA:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E4C8
- bl _0803F14C
-_0803E4C8:
- ldr r6, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E4E2
- bl _0803F14C
-_0803E4E2:
- adds r0, r2, r3
- strb r0, [r1, 0x1B]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4F8
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_0803E4F8:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E500: .4byte gBattleMons
-_0803E504: .4byte gUnknown_02024A60
-_0803E508:
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x18]
- adds r2, r4, r5
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E54E
- ldr r7, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1E]
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E54E
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1E]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E54A
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_0803E54A:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E54E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E55C
- bl _0803F14C
-_0803E55C:
- ldr r6, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1C]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E576
- bl _0803F14C
-_0803E576:
- adds r0, r2, r3
- strb r0, [r1, 0x1C]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E58C
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_0803E58C:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E594: .4byte gBattleMons
-_0803E598: .4byte gUnknown_02024A60
-_0803E59C:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E5E4
- ldr r5, _0803E758 @ =gUnknown_02024C80
- ldr r4, _0803E75C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _0803E5E4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x5
- strb r0, [r1, 0x2]
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E5E4:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803E646
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _0803E646
- ldr r5, _0803E760 @ =gExperienceTables
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0803E764 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r5
- ldr r0, [r4]
- str r0, [sp]
- mov r0, r8
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E646:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803E682
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E682
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _0803E67E
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x34]
- adds r2, r3, 0
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0803E76C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
-_0803E67E:
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E682:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803E6A2
- ldr r2, _0803E770 @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6A2
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E6A2:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803E6C2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6C2
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E6C2:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803E6E2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6E2
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803E6E2:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E702
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E702
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E702:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803E710
- bl _0803F14C
-_0803E710:
- ldr r0, _0803E774 @ =gMain
- ldr r3, _0803E778 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0803E724
- bl _0803F14C
-_0803E724:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0803E72E
- bl _0803F14C
-_0803E72E:
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0803E746
- bl _0803F14C
-_0803E746:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0803E74E:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E758: .4byte gUnknown_02024C80
-_0803E75C: .4byte gUnknown_02024A60
-_0803E760: .4byte gExperienceTables
-_0803E764: .4byte gBaseStats
-_0803E768: .4byte gBattleMons
-_0803E76C: .4byte 0xf7ffffff
-_0803E770: .4byte 0x00000f88
-_0803E774: .4byte gMain
-_0803E778: .4byte 0x0000043d
-_0803E77C:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x20
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- beq _0803E854
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E880 @ =gUnknown_08208238
- ldr r4, [sp, 0x10]
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r4, 1
- lsrs r0, r1
- str r0, [sp]
- adds r5, r4, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, [sp]
- cmp r0, 0x2
- bhi _0803E854
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _0803E854
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E884 @ =gUnknown_08208240
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x28]
- subs r0, r3
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E854:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _0803E862
- bl _0803F14C
-_0803E862:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803E86E
- b _0803EE0A
-_0803E86E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803E876
- b _0803EE0A
-_0803E876:
- lsls r0, r2, 2
- ldr r1, _0803E888 @ =_0803E88C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E880: .4byte gUnknown_08208238
-_0803E884: .4byte gUnknown_08208240
-_0803E888: .4byte _0803E88C
- .align 2, 0
-_0803E88C:
- .4byte _0803E8AC
- .4byte _0803E8AC
- .4byte _0803E934
- .4byte _0803EB5C
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EDF4
-_0803E8AC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803E8EC @ =0x000001fd
- cmp r5, r0
- bls _0803E8BE
- b _0803E36C
-_0803E8BE:
- ldr r0, _0803E8F0 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- cmp r1, 0x63
- bls _0803E8D8
- b _0803EE0A
-_0803E8D8:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803E8F4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803E8F6
- .align 2, 0
-_0803E8EC: .4byte 0x000001fd
-_0803E8F0: .4byte gUnknown_082082F2
-_0803E8F4:
- adds r4, r0, 0
-_0803E8F6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803E904
- adds r0, r4, r0
- subs r4, r0, r1
-_0803E904:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803E930 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803E930: .4byte gUnknown_082082F2
-_0803E934:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _0803E9F4
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0803E954
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803E954:
- ldr r0, _0803E99C @ =gMain
- ldr r1, _0803E9A0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EA0A
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E9B4
- ldr r2, _0803E9A4 @ =gUnknown_02024C0C
- ldr r1, _0803E9A8 @ =gBitTable
- ldr r3, [sp, 0x34]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0803E9AC @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [sp, 0x34]
- bl CopyPlayerPartyMonToBattleData
- ldr r0, _0803E9B0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- b _0803E9CC
- .align 2, 0
-_0803E99C: .4byte gMain
-_0803E9A0: .4byte 0x0000043d
-_0803E9A4: .4byte gUnknown_02024C0C
-_0803E9A8: .4byte gBitTable
-_0803E9AC: .4byte gUnknown_02024A6A
-_0803E9B0: .4byte gUnknown_02024A60
-_0803E9B4:
- ldr r3, _0803E9E4 @ =gUnknown_02024C0C
- ldr r1, _0803E9E8 @ =gBitTable
- ldr r2, _0803E9EC @ =gUnknown_02024A60
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r3]
- bics r0, r1
- strb r0, [r3]
- ldrb r0, [r2]
-_0803E9CC:
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EA0A
- ldr r1, _0803E9F0 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _0803EA0A
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0803EA0A
- .align 2, 0
-_0803E9E4: .4byte gUnknown_02024C0C
-_0803E9E8: .4byte gBitTable
-_0803E9EC: .4byte gUnknown_02024A60
-_0803E9F0: .4byte gUnknown_030042E0
-_0803E9F4:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0803EA0A
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803EA0A:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r4, [sp, 0x20]
- adds r1, r4, r1
- ldrb r1, [r1]
- str r1, [sp]
- adds r0, r1, 0
- cmp r0, 0xFE
- beq _0803EA4C
- cmp r0, 0xFE
- bhi _0803EA2C
- cmp r0, 0xFD
- beq _0803EA62
- b _0803EA6C
-_0803EA2C:
- cmp r1, 0xFF
- bne _0803EA6C
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- subs r4, r0
- str r4, [sp]
- b _0803EA6C
-_0803EA4C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _0803EA6C
- movs r0, 0x1
- b _0803EA6A
-_0803EA62:
- ldr r0, _0803EB24 @ =0x02000000
- ldr r5, _0803EB28 @ =0x000160fa
- adds r0, r5
- ldrb r0, [r0]
-_0803EA6A:
- str r0, [sp]
-_0803EA6C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _0803EB4C
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0803EB40
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EAB8
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- str r0, [sp]
-_0803EAB8:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EB2C @ =gMain
- ldr r1, _0803EB30 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EB48
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EB48
- ldr r1, _0803EB34 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldr r1, [sp]
- strh r1, [r0, 0x28]
- movs r0, 0x10
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- bne _0803EB48
- ldr r4, _0803EB38 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EB48
- ldr r1, _0803EB3C @ =gUnknown_030042E0
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _0803EB08
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_0803EB08:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- strb r5, [r4]
- b _0803EB48
- .align 2, 0
-_0803EB24: .4byte 0x02000000
-_0803EB28: .4byte 0x000160fa
-_0803EB2C: .4byte gMain
-_0803EB30: .4byte 0x0000043d
-_0803EB34: .4byte gBattleMons
-_0803EB38: .4byte gUnknown_02024A60
-_0803EB3C: .4byte gUnknown_030042E0
-_0803EB40:
- ldr r1, _0803EB58 @ =gUnknown_02024BEC
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_0803EB48:
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803EB4C:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _0803EE0A
- .align 2, 0
-_0803EB58: .4byte gUnknown_02024BEC
-_0803EB5C:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _0803EB68
- b _0803ECB8
-_0803EB68:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_0803EB70:
- movs r4, 0x11
- adds r4, r5
- mov r9, r4
- mov r0, r8
- mov r1, r9
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r5, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- beq _0803EC92
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EC28
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803EC28:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl SetMonData
- ldr r0, _0803ECA4 @ =gMain
- ldr r4, _0803ECA8 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EC8E
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _0803EC8E
- ldr r4, _0803ECAC @ =gBattleMons
- movs r0, 0x58
- ldr r1, [sp, 0x34]
- adds r3, r1, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- ldr r1, _0803ECB0 @ =gUnknown_02024CA8
- ldr r2, [sp, 0x34]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803ECB4 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EC8E:
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803EC92:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0803EC9A
- b _0803EB70
-_0803EC9A:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_0803EC9E:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _0803EE0A
- .align 2, 0
-_0803ECA4: .4byte gMain
-_0803ECA8: .4byte 0x0000043d
-_0803ECAC: .4byte gBattleMons
-_0803ECB0: .4byte gUnknown_02024CA8
-_0803ECB4: .4byte gBitTable
-_0803ECB8:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r2, r0
- bne _0803ED00
- b _0803EE0A
-_0803ED00:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- adds r1, r0, r1
- ldrb r0, [r1]
- adds r0, r2, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803ED74
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803ED74:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EDE0 @ =gMain
- ldr r1, _0803EDE4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803EDD8
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EDD8
- ldr r4, _0803EDE8 @ =gBattleMons
- movs r0, 0x58
- adds r3, r2, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0803EDD8
- ldr r1, _0803EDEC @ =gUnknown_02024CA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803EDF0 @ =gBitTable
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EDD8
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EDD8:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803EDE0: .4byte gMain
-_0803EDE4: .4byte 0x0000043d
-_0803EDE8: .4byte gBattleMons
-_0803EDEC: .4byte gUnknown_02024CA8
-_0803EDF0: .4byte gBitTable
-_0803EDF4:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803EE0A
- bl _0803E35C
-_0803EE0A:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _0803EE1C
- b _0803E862
-_0803EE1C:
- b _0803F14C
-_0803EE1E:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r0
- movs r5, 0
- str r5, [sp, 0x28]
- cmp r0, 0
- bne _0803EE32
- b _0803F14C
-_0803EE32:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803EE3E
- b _0803F13A
-_0803EE3E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803EE46
- b _0803F13A
-_0803EE46:
- lsls r0, r2, 2
- ldr r1, _0803EE50 @ =_0803EE54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803EE50: .4byte _0803EE54
- .align 2, 0
-_0803EE54:
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EEF8
- .4byte _0803EFCC
- .4byte _0803F026
- .4byte _0803F07C
-_0803EE74:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803EEBC @ =0x000001fd
- cmp r5, r0
- bls _0803EE88
- bl _0803E36C
-_0803EE88:
- ldr r0, _0803EEC0 @ =gUnknown_082082F2
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- adds r2, r4, 0
- cmp r1, 0x63
- bls _0803EEA6
- b _0803F13A
-_0803EEA6:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803EEC4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803EEC6
- .align 2, 0
-_0803EEBC: .4byte 0x000001fd
-_0803EEC0: .4byte gUnknown_082082F2
-_0803EEC4:
- adds r4, r0, 0
-_0803EEC6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803EED4
- adds r0, r4, r0
- subs r4, r0, r1
-_0803EED4:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803EEF4 @ =gUnknown_082082F2
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _0803F130
- .align 2, 0
-_0803EEF4: .4byte gUnknown_082082F2
-_0803EEF8:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803EFC0 @ =gUnknown_08208238
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r2, 1
- lsrs r0, r1
- str r0, [sp]
- cmp r0, 0x2
- bls _0803EF18
- b _0803F13A
-_0803EF18:
- adds r5, r2, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r1, _0803EFC4 @ =gUnknown_0820823C
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _0803EFC8 @ =gUnknown_08208240
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r2, r0
- str r2, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803F13A
- .align 2, 0
-_0803EFC0: .4byte gUnknown_08208238
-_0803EFC4: .4byte gUnknown_0820823C
-_0803EFC8: .4byte gUnknown_08208240
-_0803EFCC:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803EFDC
- b _0803F130
-_0803EFDC:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0803EFE4
- b _0803F130
-_0803EFE4:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _0803EFEC
- b _0803F130
-_0803EFEC:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- str r5, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r4, r3, 24
- asrs r1, r4, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _0803F0DC
-_0803F026:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803F130
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _0803F130
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _0803F130
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _0803F130
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r0, [sp, 0x2C]
- lsls r5, r0, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F076
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _0803F0BE
-_0803F076:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0803F0D4
-_0803F07C:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _0803F130
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _0803F130
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _0803F130
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r5, r3, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
-_0803F0BE:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _0803F0DC
-_0803F0D0:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0803F0D4:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_0803F0DC:
- cmp r2, 0
- ble _0803F112
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803F0F4
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F0F4:
- mov r0, r8
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803F112
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F112:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F11C
- movs r0, 0
- str r0, [sp, 0x4]
-_0803F11C:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0803F126
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0803F126:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl SetMonData
-_0803F130:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_0803F13A:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _0803F14C
- b _0803EE32
-_0803F14C:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _0803F15A
- bl _0803E378
-_0803F15A:
- ldr r0, [sp, 0x1C]
-_0803F15C:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803E1B0
-
- thumb_func_start HealStatusConditions
-HealStatusConditions: @ 803F16C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- lsls r3, 24
- lsrs r6, r3, 24
- movs r1, 0x37
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- ands r0, r4
- cmp r0, 0
- beq _0803F1D0
- mvns r4, r4
- ands r1, r4
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- ldr r0, _0803F1C4 @ =gMain
- ldr r1, _0803F1C8 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F1BE
- cmp r6, 0x4
- beq _0803F1BE
- ldr r0, _0803F1CC @ =gBattleMons
- movs r1, 0x58
- muls r1, r6
- adds r0, 0x4C
- adds r1, r0
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
-_0803F1BE:
- movs r0, 0
- b _0803F1D2
- .align 2, 0
-_0803F1C4: .4byte gMain
-_0803F1C8: .4byte 0x0000043d
-_0803F1CC: .4byte gBattleMons
-_0803F1D0:
- movs r0, 0x1
-_0803F1D2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end HealStatusConditions
-
- thumb_func_start sub_803F1DC
-sub_803F1DC: @ 803F1DC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r7, 0x6
- ldr r1, _0803F204 @ =gItemEffectTable
- adds r0, r3, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803F208
- cmp r3, 0xAF
- beq _0803F20C
-_0803F200:
- movs r0, 0
- b _0803F31C
- .align 2, 0
-_0803F204: .4byte gItemEffectTable
-_0803F208:
- cmp r3, 0xAF
- bne _0803F21A
-_0803F20C:
- ldr r0, _0803F22C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F230 @ =gUnknown_02024DF8
- adds r0, r1
-_0803F21A:
- mov r12, r0
- movs r2, 0
-_0803F21E:
- cmp r2, 0x4
- beq _0803F23E
- cmp r2, 0x4
- ble _0803F234
- cmp r2, 0x5
- beq _0803F2C8
- b _0803F312
- .align 2, 0
-_0803F22C: .4byte gUnknown_02024A60
-_0803F230: .4byte gUnknown_02024DF8
-_0803F234:
- cmp r2, 0
- blt _0803F312
- cmp r2, r4
- bne _0803F312
- b _0803F200
-_0803F23E:
- mov r0, r12
- ldrb r3, [r0, 0x4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0803F24E
- movs r0, 0xDF
- ands r3, r0
-_0803F24E:
- movs r6, 0
- cmp r3, 0
- beq _0803F312
-_0803F254:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F2B4
- cmp r6, 0x7
- bhi _0803F2B4
- lsls r0, r6, 2
- ldr r1, _0803F26C @ =_0803F270
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F26C: .4byte _0803F270
- .align 2, 0
-_0803F270:
- .4byte _0803F29C
- .4byte _0803F29C
- .4byte _0803F290
- .4byte _0803F29C
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B0
-_0803F290:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0803F29C
- movs r0, 0xEF
- ands r3, r0
-_0803F29C:
- cmp r2, r4
- bne _0803F2A8
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2A8:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F2B4
-_0803F2B0:
- cmp r2, r4
- beq _0803F200
-_0803F2B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2C2
- lsrs r5, 1
-_0803F2C2:
- cmp r3, 0
- bne _0803F254
- b _0803F312
-_0803F2C8:
- mov r0, r12
- ldrb r3, [r0, 0x5]
- movs r6, 0
-_0803F2CE:
- cmp r3, 0
- beq _0803F312
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F302
- cmp r6, 0
- blt _0803F302
- cmp r6, 0x6
- ble _0803F2E8
- cmp r6, 0x7
- beq _0803F2FC
- b _0803F302
-_0803F2E8:
- cmp r2, r4
- bne _0803F2F4
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2F4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F302
-_0803F2FC:
- cmp r2, r4
- bne _0803F302
- b _0803F200
-_0803F302:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2CE
- lsrs r5, 1
- b _0803F2CE
-_0803F312:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _0803F31A
- b _0803F21E
-_0803F31A:
- adds r0, r7, 0
-_0803F31C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803F1DC
-
- thumb_func_start sub_803F324
-sub_803F324: @ 803F324
- push {lr}
- ldr r2, _0803F358 @ =gUnknown_02024C08
- ldr r1, _0803F35C @ =gUnknown_02024E6C
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r3, _0803F360 @ =gUnknown_030041C0
- ldr r2, _0803F364 @ =gUnknown_08400F58
- ldr r1, _0803F368 @ =gUnknown_082082F8
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0]
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _0803F36C @ =gUnknown_03004290
- ldr r1, _0803F370 @ =gUnknown_083FFDB3
- bl StringCopy
- ldr r0, _0803F374 @ =gUnknown_083FFDD3
- bl get_battle_strings_
- pop {r0}
- bx r0
- .align 2, 0
-_0803F358: .4byte gUnknown_02024C08
-_0803F35C: .4byte gUnknown_02024E6C
-_0803F360: .4byte gUnknown_030041C0
-_0803F364: .4byte gUnknown_08400F58
-_0803F368: .4byte gUnknown_082082F8
-_0803F36C: .4byte gUnknown_03004290
-_0803F370: .4byte gUnknown_083FFDB3
-_0803F374: .4byte gUnknown_083FFDD3
- thumb_func_end sub_803F324
-
- thumb_func_start sub_803F378
-sub_803F378: @ 803F378
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803F3C0
- ldr r0, _0803F3A8 @ =gMain
- ldr r1, _0803F3AC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F3B8
- ldr r2, _0803F3B0 @ =gUnknown_02024E6C
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F3B4 @ =gUnknown_02024DF8
- adds r7, r0, r1
- b _0803F3CC
- .align 2, 0
-_0803F3A8: .4byte gMain
-_0803F3AC: .4byte 0x0000043d
-_0803F3B0: .4byte gUnknown_02024E6C
-_0803F3B4: .4byte gUnknown_02024DF8
-_0803F3B8:
- ldr r7, _0803F3BC @ =gSaveBlock1 + 0x3676
- b _0803F3CA
- .align 2, 0
-_0803F3BC: .4byte gSaveBlock1 + 0x3676
-_0803F3C0:
- ldr r1, _0803F404 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r7, [r0]
-_0803F3CA:
- ldr r2, _0803F408 @ =gUnknown_02024E6C
-_0803F3CC:
- ldr r1, _0803F40C @ =gUnknown_02024C0B
- ldrb r0, [r2]
- strb r0, [r1]
- movs r5, 0
- ldr r0, _0803F410 @ =gUnknown_02024C07
- mov r8, r0
- movs r6, 0
-_0803F3DA:
- adds r4, r7, r5
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _0803F3EC
- adds r0, r6, 0
- bl sub_803F324
-_0803F3EC:
- ldrb r1, [r4]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _0803F422
- cmp r5, 0
- beq _0803F414
- adds r0, r6, 0x1
- bl sub_803F324
- b _0803F422
- .align 2, 0
-_0803F404: .4byte gItemEffectTable
-_0803F408: .4byte gUnknown_02024E6C
-_0803F40C: .4byte gUnknown_02024C0B
-_0803F410: .4byte gUnknown_02024C07
-_0803F414:
- ldr r0, _0803F450 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- mov r1, r8
- strb r0, [r1]
- ldr r0, _0803F454 @ =gUnknown_083FEE92
- bl get_battle_strings_
-_0803F422:
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x2
- ble _0803F3DA
- ldrb r1, [r7, 0x3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0803F442
- ldr r1, _0803F458 @ =gUnknown_02024C07
- ldr r0, _0803F450 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0803F45C @ =gUnknown_083FEE5D
- bl get_battle_strings_
-_0803F442:
- ldr r0, _0803F460 @ =gUnknown_020238CC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803F450: .4byte gUnknown_02024E6C
-_0803F454: .4byte gUnknown_083FEE92
-_0803F458: .4byte gUnknown_02024C07
-_0803F45C: .4byte gUnknown_083FEE5D
-_0803F460: .4byte gUnknown_020238CC
- thumb_func_end sub_803F378
-
- thumb_func_start GetNature
-GetNature: @ 803F464
- push {lr}
- movs r1, 0
- movs r2, 0
- bl GetMonData
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNature
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: @ 803F47C
- push {lr}
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNatureFromPersonality
-
- thumb_func_start GetEvolutionTargetSpecies
-GetEvolutionTargetSpecies: @ 803F48C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- movs r0, 0
- mov r10, r0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x17
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsrs r4, 16
- str r4, [sp, 0x10]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0xAF
- bne _0803F500
- ldr r0, _0803F4F8 @ =gSaveBlock1
- ldr r1, _0803F4FC @ =0x00003688
- adds r0, r1
- ldrb r0, [r0]
- b _0803F508
- .align 2, 0
-_0803F4F8: .4byte gSaveBlock1
-_0803F4FC: .4byte 0x00003688
-_0803F500:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803F508:
- cmp r0, 0x26
- bne _0803F514
- cmp r5, 0x3
- beq _0803F514
- movs r0, 0
- b _0803F7A4
-_0803F514:
- cmp r5, 0x1
- bne _0803F51A
- b _0803F734
-_0803F51A:
- cmp r5, 0x1
- bgt _0803F524
- cmp r5, 0
- beq _0803F538
- b _0803F7A2
-_0803F524:
- cmp r5, 0x3
- ble _0803F52A
- b _0803F7A2
-_0803F52A:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r3, _0803F534 @ =gEvolutionTable
- lsls r6, r7, 2
- b _0803F782
- .align 2, 0
-_0803F534: .4byte gEvolutionTable
-_0803F538:
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r6, r7, 2
-_0803F55E:
- ldr r1, _0803F584 @ =gEvolutionTable
- ldr r0, [sp, 0x4]
- lsls r2, r0, 3
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- adds r3, r1, 0
- adds r4, r2, 0
- cmp r0, 0xE
- bls _0803F57A
- b _0803F726
-_0803F57A:
- lsls r0, 2
- ldr r1, _0803F588 @ =_0803F58C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F584: .4byte gEvolutionTable
-_0803F588: .4byte _0803F58C
- .align 2, 0
-_0803F58C:
- .4byte _0803F5C8
- .4byte _0803F5DA
- .4byte _0803F5FC
- .4byte _0803F62C
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F63C
- .4byte _0803F666
- .4byte _0803F690
- .4byte _0803F6BE
- .4byte _0803F6DE
- .4byte _0803F702
- .4byte _0803F726
- .4byte _0803F712
-_0803F5C8:
- ldr r1, [sp, 0x8]
- cmp r1, 0xDB
- bhi _0803F5D0
- b _0803F726
-_0803F5D0:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r3
- b _0803F61C
-_0803F5DA:
- bl RtcCalcLocalTime
- ldr r0, _0803F5F8 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0xC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0803F5EE
- b _0803F726
-_0803F5EE:
- ldr r2, [sp, 0x8]
- cmp r2, 0xDB
- bhi _0803F5F6
- b _0803F726
-_0803F5F6:
- b _0803F612
- .align 2, 0
-_0803F5F8: .4byte gLocalTime
-_0803F5FC:
- bl RtcCalcLocalTime
- ldr r0, _0803F624 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- cmp r0, 0xB
- bls _0803F60A
- b _0803F726
-_0803F60A:
- ldr r0, [sp, 0x8]
- cmp r0, 0xDB
- bhi _0803F612
- b _0803F726
-_0803F612:
- ldr r1, _0803F628 @ =gEvolutionTable
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r1
-_0803F61C:
- ldrh r0, [r0, 0x4]
- mov r10, r0
- b _0803F726
- .align 2, 0
-_0803F624: .4byte gLocalTime
-_0803F628: .4byte gEvolutionTable
-_0803F62C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F63C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bls _0803F726
- b _0803F6B8
-_0803F666:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _0803F726
- b _0803F6B8
-_0803F690:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bcs _0803F726
-_0803F6B8:
- ldrh r5, [r5, 0x4]
- mov r10, r5
- b _0803F726
-_0803F6BE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0803F726
- b _0803F6FC
-_0803F6DE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _0803F726
-_0803F6FC:
- ldrh r4, [r4, 0x4]
- mov r10, r4
- b _0803F726
-_0803F702:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F712:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- ldr r2, [sp, 0xC]
- cmp r0, r2
- bhi _0803F726
-_0803F722:
- ldrh r1, [r1, 0x4]
- mov r10, r1
-_0803F726:
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x4
- bgt _0803F732
- b _0803F55E
-_0803F732:
- b _0803F7A2
-_0803F734:
- lsls r6, r7, 2
- ldr r1, _0803F778 @ =gEvolutionTable
- adds r0, r6, r7
- lsls r0, 3
- adds r4, r0, r1
- mov r5, sp
- movs r1, 0x4
- str r1, [sp, 0x4]
-_0803F744:
- ldrh r0, [r4]
- cmp r0, 0x5
- beq _0803F764
- cmp r0, 0x6
- bne _0803F768
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5]
- cmp r0, r1
- bne _0803F768
- movs r0, 0
- strh r0, [r5]
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_0803F764:
- ldrh r2, [r4, 0x4]
- mov r10, r2
-_0803F768:
- adds r4, 0x8
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F744
- b _0803F7A2
- .align 2, 0
-_0803F778: .4byte gEvolutionTable
-_0803F77C:
- ldrh r1, [r1, 0x4]
- mov r10, r1
- b _0803F7A2
-_0803F782:
- adds r0, r6, r7
- ldr r1, [sp, 0x4]
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _0803F798
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- beq _0803F77C
-_0803F798:
- ldr r2, [sp, 0x4]
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r2, 0x4
- ble _0803F782
-_0803F7A2:
- mov r0, r10
-_0803F7A4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetEvolutionTargetSpecies
-
- thumb_func_start HoennPokedexNumToSpecies
-HoennPokedexNumToSpecies: @ 803F7B4
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F7F8
- movs r1, 0
- ldr r3, _0803F7F0 @ =gSpeciesToHoennPokedexNum
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F7E0
- movs r4, 0xCD
- lsls r4, 1
-_0803F7CC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F7E0
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F7CC
-_0803F7E0:
- ldr r0, _0803F7F4 @ =0x0000019b
- cmp r1, r0
- beq _0803F7F8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F7FA
- .align 2, 0
-_0803F7F0: .4byte gSpeciesToHoennPokedexNum
-_0803F7F4: .4byte 0x0000019b
-_0803F7F8:
- movs r0, 0
-_0803F7FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end HoennPokedexNumToSpecies
-
- thumb_func_start NationalPokedexNumToSpecies
-NationalPokedexNumToSpecies: @ 803F800
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F844
- movs r1, 0
- ldr r3, _0803F83C @ =gSpeciesToNationalPokedexNum
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F82C
- movs r4, 0xCD
- lsls r4, 1
-_0803F818:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F82C
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F818
-_0803F82C:
- ldr r0, _0803F840 @ =0x0000019b
- cmp r1, r0
- beq _0803F844
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F846
- .align 2, 0
-_0803F83C: .4byte gSpeciesToNationalPokedexNum
-_0803F840: .4byte 0x0000019b
-_0803F844:
- movs r0, 0
-_0803F846:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalPokedexNumToSpecies
-
- thumb_func_start NationalToHoennOrder
-NationalToHoennOrder: @ 803F84C
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F890
- movs r1, 0
- ldr r3, _0803F888 @ =gHoennToNationalOrder
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F878
- movs r4, 0xCD
- lsls r4, 1
-_0803F864:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F878
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F864
-_0803F878:
- ldr r0, _0803F88C @ =0x0000019b
- cmp r1, r0
- beq _0803F890
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F892
- .align 2, 0
-_0803F888: .4byte gHoennToNationalOrder
-_0803F88C: .4byte 0x0000019b
-_0803F890:
- movs r0, 0
-_0803F892:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalToHoennOrder
-
- thumb_func_start SpeciesToNationalPokedexNum
-SpeciesToNationalPokedexNum: @ 803F898
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8B4
- ldr r0, _0803F8B0 @ =gSpeciesToNationalPokedexNum
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8B6
- .align 2, 0
-_0803F8B0: .4byte gSpeciesToNationalPokedexNum
-_0803F8B4:
- movs r0, 0
-_0803F8B6:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToNationalPokedexNum
-
- thumb_func_start SpeciesToHoennPokedexNum
-SpeciesToHoennPokedexNum: @ 803F8BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8D8
- ldr r0, _0803F8D4 @ =gSpeciesToHoennPokedexNum
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8DA
- .align 2, 0
-_0803F8D4: .4byte gSpeciesToHoennPokedexNum
-_0803F8D8:
- movs r0, 0
-_0803F8DA:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToHoennPokedexNum
-
- thumb_func_start HoennToNationalOrder
-HoennToNationalOrder: @ 803F8E0
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8FC
- ldr r0, _0803F8F8 @ =gHoennToNationalOrder
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8FE
- .align 2, 0
-_0803F8F8: .4byte gHoennToNationalOrder
-_0803F8FC:
- movs r0, 0
-_0803F8FE:
- pop {r1}
- bx r1
- thumb_func_end HoennToNationalOrder
-
- thumb_func_start SpeciesToCryId
-SpeciesToCryId: @ 803F904
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0xFA
- bls _0803F932
- ldr r0, _0803F924 @ =0x00000113
- cmp r1, r0
- bls _0803F930
- ldr r0, _0803F928 @ =gSpeciesIdToCryId
- ldr r2, _0803F92C @ =0xfffffeec
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F932
- .align 2, 0
-_0803F924: .4byte 0x00000113
-_0803F928: .4byte gSpeciesIdToCryId
-_0803F92C: .4byte 0xfffffeec
-_0803F930:
- movs r0, 0xC8
-_0803F932:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToCryId
-
- thumb_func_start unref_sub_803F938
-unref_sub_803F938: @ 803F938
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- mov r10, r2
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FA42
- ldr r1, _0803FA04 @ =gUnknown_081FAF4C
- ldr r0, [r1]
- cmp r10, r0
- beq _0803FA42
- ldr r0, [r1, 0x8]
- cmp r10, r0
- beq _0803FA42
- movs r6, 0
-_0803F962:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FA08 @ =gSpindaSpotGraphics
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- str r6, [sp]
- mov r9, r3
-_0803F99A:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FA0C @ =gSpindaSpotGraphics + 0x2
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FA30
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803F9BE:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803F9C6
- adds r0, r4, 0x7
-_0803F9C6:
- asrs r0, 3
- lsls r2, r0, 5
- add r2, r10
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA24
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA10
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FA24
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FA22
- .align 2, 0
-_0803FA04: .4byte gUnknown_081FAF4C
-_0803FA08: .4byte gSpindaSpotGraphics
-_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
-_0803FA10:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FA24
- adds r0, r1, 0x4
-_0803FA22:
- strb r0, [r2]
-_0803FA24:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803F9BE
-_0803FA30:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803F99A
- ldr r5, [sp, 0x4]
- ldr r6, [sp]
- cmp r6, 0x3
- ble _0803F962
-_0803FA42:
- 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 unref_sub_803F938
-
- thumb_func_start DrawSpindaSpots
-DrawSpindaSpots: @ 803FA54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- str r2, [sp]
- lsls r0, 16
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FB56
- cmp r3, 0
- beq _0803FB56
- movs r6, 0
-_0803FA78:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FB1C @ =gSpindaSpotGraphics
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- mov r10, r6
- mov r9, r3
-_0803FAB0:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FB20 @ =gSpindaSpotGraphics + 0x2
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FB44
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803FAD4:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803FADC
- adds r0, r4, 0x7
-_0803FADC:
- asrs r0, 3
- lsls r2, r0, 5
- ldr r1, [sp]
- adds r2, r1, r2
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB38
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB24
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FB38
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FB36
- .align 2, 0
-_0803FB1C: .4byte gSpindaSpotGraphics
-_0803FB20: .4byte gSpindaSpotGraphics + 0x2
-_0803FB24:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FB38
- adds r0, r1, 0x4
-_0803FB36:
- strb r0, [r2]
-_0803FB38:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803FAD4
-_0803FB44:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803FAB0
- ldr r5, [sp, 0x4]
- mov r6, r10
- cmp r6, 0x3
- ble _0803FA78
-_0803FB56:
- 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 DrawSpindaSpots
-
- .if REVISION >= 1
- thumb_func_start sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, r9
- bl GetMonData
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, sp
- bl GetMonData
- strb r0, [r4, 0x0]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803FBC4
- movs r6, 0xB
- adds r0, r7, 0
- muls r0, r6
- ldr r4, =gSpeciesNames
- adds r0, r4
- mov r1, r9
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBC4
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
-_0803FBC4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803FB68
- .else
- thumb_func_start sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r5, _0803FBB4 @ =gStringVar1
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- movs r6, 0xB
- adds r0, r4, 0
- muls r0, r6
- ldr r4, _0803FBB8 @ =gSpeciesNames
- adds r0, r4
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBA8
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r7, 0
- movs r1, 0x2
- bl SetMonData
-_0803FBA8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FBB4: .4byte gStringVar1
-_0803FBB8: .4byte gSpeciesNames
- thumb_func_end sub_803FB68
- .endif
-
- thumb_func_start sub_803FBBC
-sub_803FBBC: @ 803FBBC
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0803FBE4 @ =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, 0x2
- bgt _0803FBE8
- cmp r0, 0x1
- bge _0803FBF0
- cmp r0, 0
- beq _0803FBEC
- b _0803FBF2
- .align 2, 0
-_0803FBE4: .4byte gLinkPlayers
-_0803FBE8:
- cmp r0, 0x3
- bne _0803FBF2
-_0803FBEC:
- movs r5, 0
- b _0803FBF2
-_0803FBF0:
- movs r5, 0x1
-_0803FBF2:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803FBBC
-
- thumb_func_start sub_803FBFC
-sub_803FBFC: @ 803FBFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _0803FC20 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FC24
- cmp r0, 0x1
- bge _0803FC2C
- cmp r0, 0
- beq _0803FC28
- b _0803FC2E
- .align 2, 0
-_0803FC20: .4byte gLinkPlayers
-_0803FC24:
- cmp r0, 0x3
- bne _0803FC2E
-_0803FC28:
- movs r3, 0
- b _0803FC2E
-_0803FC2C:
- movs r3, 0x1
-_0803FC2E:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FBFC
-
- thumb_func_start sub_803FC34
-sub_803FC34: @ 803FC34
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _0803FC40 @ =gLinkPlayers
- b _0803FC4C
- .align 2, 0
-_0803FC40: .4byte gLinkPlayers
-_0803FC44:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0803FC52
-_0803FC4C:
- ldrh r0, [r1, 0x18]
- cmp r0, r3
- bne _0803FC44
-_0803FC52:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FC34
-
- thumb_func_start sub_803FC58
-sub_803FC58: @ 803FC58
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0803FC70 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x2]
- movs r0, 0x7F
- ands r0, r1
- bx lr
- .align 2, 0
-_0803FC70: .4byte gTrainers
- thumb_func_end sub_803FC58
-
- thumb_func_start nature_stat_mod
-nature_stat_mod: @ 803FC74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0xFF
- lsls r0, 24
- adds r2, r0
- lsrs r2, 24
- cmp r2, 0x4
- bls _0803FC92
- adds r0, r3, 0
- b _0803FCCE
-_0803FC92:
- ldr r0, _0803FCB4 @ =gNatureStatTable
- lsls r1, r4, 2
- adds r1, r4
- subs r1, 0x1
- adds r1, r5, r1
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0803FCB8
- cmp r1, 0x1
- bne _0803FCCC
- movs r0, 0x6E
- b _0803FCBA
- .align 2, 0
-_0803FCB4: .4byte gNatureStatTable
-_0803FCB8:
- movs r0, 0x5A
-_0803FCBA:
- muls r0, r3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- b _0803FCCE
-_0803FCCC:
- adds r0, r3, 0
-_0803FCCE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end nature_stat_mod
-
- thumb_func_start AdjustFriendship
-AdjustFriendship: @ 803FCD4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FD34
- ldr r0, _0803FD14 @ =gMain
- ldr r1, _0803FD18 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FD20
- ldr r0, _0803FD1C @ =gEnigmaBerries
- ldrb r4, [r0, 0x7]
- b _0803FD3C
- .align 2, 0
-_0803FD14: .4byte gMain
-_0803FD18: .4byte 0x0000043d
-_0803FD1C: .4byte gEnigmaBerries
-_0803FD20:
- ldr r0, _0803FD2C @ =gSaveBlock1
- ldr r1, _0803FD30 @ =0x00003688
- adds r0, r1
- ldrb r4, [r0]
- b _0803FD3C
- .align 2, 0
-_0803FD2C: .4byte gSaveBlock1
-_0803FD30: .4byte 0x00003688
-_0803FD34:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_0803FD3C:
- cmp r6, 0
- bne _0803FD42
- b _0803FE56
-_0803FD42:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- bne _0803FD4C
- b _0803FE56
-_0803FD4C:
- movs r6, 0
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x63
- ble _0803FD6A
- movs r6, 0x1
-_0803FD6A:
- cmp r0, 0xC7
- ble _0803FD74
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FD74:
- cmp r5, 0x5
- bne _0803FD84
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803FE56
-_0803FD84:
- cmp r5, 0x3
- bne _0803FDB4
- ldr r0, _0803FE60 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803FE56
- ldr r2, _0803FE64 @ =gTrainers
- ldr r0, _0803FE68 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- adds r0, r1, 0
- subs r0, 0x18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0803FDB4
- cmp r1, 0x20
- bne _0803FE56
-_0803FDB4:
- ldr r1, _0803FE6C @ =gUnknown_082082FE
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _0803FDDA
- cmp r4, 0x1B
- bne _0803FDDA
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
-_0803FDDA:
- lsls r2, 24
- asrs r2, 24
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r2
- mov r1, sp
- strh r0, [r1]
- cmp r2, 0
- ble _0803FE2C
- adds r0, r7, 0
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803FE08
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE08:
- adds r0, r7, 0
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803FE2C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE2C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0803FE3C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
-_0803FE3C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- ble _0803FE4C
- movs r1, 0xFF
- mov r0, sp
- strh r1, [r0]
-_0803FE4C:
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_0803FE56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FE60: .4byte gUnknown_020239F8
-_0803FE64: .4byte gTrainers
-_0803FE68: .4byte gTrainerBattleOpponent
-_0803FE6C: .4byte gUnknown_082082FE
- thumb_func_end AdjustFriendship
-
- thumb_func_start MonGainEVs
-MonGainEVs: @ 803FE70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- movs r7, 0
- movs r6, 0
-_0803FE84:
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- movs r2, 0
- bl GetMonData
- mov r2, sp
- adds r1, r2, r6
- strb r0, [r1]
- ldrb r0, [r1]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r6, 0x1
- cmp r6, 0x5
- ble _0803FE84
- movs r6, 0
- b _08040006
-_0803FEA8:
- mov r0, r8
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- movs r2, 0x1
- cmp r0, 0
- beq _0803FEBA
- movs r2, 0x2
-_0803FEBA:
- cmp r6, 0x5
- bhi _0803FF5C
- lsls r0, r6, 2
- ldr r1, _0803FEC8 @ =_0803FECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803FEC8: .4byte _0803FECC
- .align 2, 0
-_0803FECC:
- .4byte _0803FEE4
- .4byte _0803FEF8
- .4byte _0803FF0C
- .4byte _0803FF20
- .4byte _0803FF34
- .4byte _0803FF48
-_0803FEE4:
- ldr r0, _0803FEF4 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FEF4: .4byte gBaseStats
-_0803FEF8:
- ldr r0, _0803FF08 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0803FF54
- .align 2, 0
-_0803FF08: .4byte gBaseStats
-_0803FF0C:
- ldr r0, _0803FF1C @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 26
- b _0803FF56
- .align 2, 0
-_0803FF1C: .4byte gBaseStats
-_0803FF20:
- ldr r0, _0803FF30 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsrs r0, 6
- b _0803FF58
- .align 2, 0
-_0803FF30: .4byte gBaseStats
-_0803FF34:
- ldr r0, _0803FF44 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FF44: .4byte gBaseStats
-_0803FF48:
- ldr r0, _0803FF84 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
-_0803FF54:
- lsls r0, 28
-_0803FF56:
- lsrs r0, 30
-_0803FF58:
- adds r4, r0, 0
- muls r4, r2
-_0803FF5C:
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FFA8
- ldr r0, _0803FF88 @ =gMain
- ldr r1, _0803FF8C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FF94
- ldr r0, _0803FF90 @ =gEnigmaBerries
- ldrb r0, [r0, 0x7]
- b _0803FFB0
- .align 2, 0
-_0803FF84: .4byte gBaseStats
-_0803FF88: .4byte gMain
-_0803FF8C: .4byte 0x0000043d
-_0803FF90: .4byte gEnigmaBerries
-_0803FF94:
- ldr r0, _0803FFA0 @ =gSaveBlock1
- ldr r2, _0803FFA4 @ =0x00003688
- adds r0, r2
- ldrb r0, [r0]
- b _0803FFB0
- .align 2, 0
-_0803FFA0: .4byte gSaveBlock1
-_0803FFA4: .4byte 0x00003688
-_0803FFA8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803FFB0:
- cmp r0, 0x18
- bne _0803FFB8
- lsls r0, r4, 17
- lsrs r4, r0, 16
-_0803FFB8:
- lsls r0, r4, 16
- asrs r2, r0, 16
- adds r1, r7, r2
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- ble _0803FFD0
- adds r0, r2, r0
- adds r1, r7, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFD0:
- mov r0, sp
- adds r2, r0, r6
- ldrb r3, [r2]
- lsls r0, r4, 16
- asrs r1, r0, 16
- adds r0, r3, r1
- cmp r0, 0xFF
- ble _0803FFEC
- adds r0, r1, 0
- adds r0, 0xFF
- adds r1, r3, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFEC:
- adds r0, r3, r4
- strb r0, [r2]
- adds r0, r7, r4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- bl SetMonData
- adds r6, 0x1
- cmp r6, 0x5
- bgt _0804000E
-_08040006:
- ldr r0, _0804001C @ =0x000001fd
- cmp r7, r0
- bhi _0804000E
- b _0803FEA8
-_0804000E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804001C: .4byte 0x000001fd
- thumb_func_end MonGainEVs
-
- thumb_func_start GetMonEVCount
-GetMonEVCount: @ 8040020
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08040028:
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0x5
- ble _08040028
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMonEVCount
-
- thumb_func_start RandomlyGivePartyPokerus
-RandomlyGivePartyPokerus: @ 8040048
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl Random
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x80
- lsls r0, 7
- cmp r5, r0
- beq _0804006E
- movs r0, 0x80
- lsls r0, 8
- cmp r5, r0
- beq _0804006E
- movs r0, 0xC0
- lsls r0, 8
- cmp r5, r0
- bne _08040104
-_0804006E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x64
- muls r0, r5
- adds r4, r6, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0804006E
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0804006E
- ldr r1, _0804010C @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- bne _08040104
- mov r4, sp
-_080400B8:
- bl Random
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4]
- cmp r0, 0
- beq _080400B8
- movs r0, 0xF0
- mov r1, sp
- ldrb r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080400DA
- movs r0, 0x7
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
-_080400DA:
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 4
- orrs r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- movs r1, 0xF3
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x64
- muls r0, r5
- adds r0, r6, r0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_08040104:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804010C: .4byte gBitTable
- thumb_func_end RandomlyGivePartyPokerus
-
- thumb_func_start CheckPartyPokerus
-CheckPartyPokerus: @ 8040110
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08040158
-_08040124:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0804014C
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0804014C
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_0804014C:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08040124
- b _0804016C
-_08040158:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- beq _0804016C
- movs r5, 0x1
-_0804016C:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyPokerus
-
- thumb_func_start CheckPartyHasHadPokerus
-CheckPartyHasHadPokerus: @ 8040178
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _080401BC
-_0804018C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080401B0
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- ldr r3, [sp]
- cmp r0, 0
- beq _080401B0
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080401B0:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _0804018C
- b _080401CC
-_080401BC:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _080401CC
- movs r5, 0x1
-_080401CC:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyHasHadPokerus
-
- thumb_func_start UpdatePartyPokerusTime
-UpdatePartyPokerusTime: @ 80401D8
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- mov r6, sp
-_080401E4:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08040224 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0804023C
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r6]
- movs r1, 0xF
- adds r2, r0, 0
- ands r1, r2
- cmp r1, 0
- beq _0804023C
- cmp r1, r7
- bcc _0804021E
- cmp r7, 0x4
- bls _08040228
-_0804021E:
- movs r0, 0xF0
- ands r0, r2
- b _0804022A
- .align 2, 0
-_08040224: .4byte gPlayerParty
-_08040228:
- subs r0, r2, r7
-_0804022A:
- strb r0, [r6]
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0804024C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_0804023C:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080401E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804024C: .4byte gPlayerParty
- thumb_func_end UpdatePartyPokerusTime
-
- thumb_func_start PartySpreadPokerus
-PartySpreadPokerus: @ 8040250
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080402F6
- movs r5, 0
-_0804026C:
- movs r0, 0x64
- adds r6, r5, 0
- muls r6, r0
- adds r4, r7, r6
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- cmp r1, 0
- beq _080402F0
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080402F0
- cmp r5, 0
- beq _080402C6
- adds r0, r6, 0
- subs r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402C6
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_080402C6:
- cmp r5, 0x5
- beq _080402F0
- movs r0, 0x64
- muls r0, r5
- adds r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
-_080402F0:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804026C
-_080402F6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PartySpreadPokerus
-
- thumb_func_start TryIncrementMonLevel
-TryIncrementMonLevel: @ 8040300
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r0, 0x1
- mov r1, sp
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x19
- movs r2, 0
- bl GetMonData
- ldr r5, _08040358 @ =gExperienceTables
- mov r1, sp
- ldrb r2, [r1]
- lsls r2, 2
- ldr r3, _0804035C @ =gBaseStats
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r3
- adds r2, r1
- adds r2, r5
- ldr r1, [r2]
- cmp r0, r1
- bhi _08040360
- movs r0, 0
- b _0804036C
- .align 2, 0
-_08040358: .4byte gExperienceTables
-_0804035C: .4byte gBaseStats
-_08040360:
- adds r0, r6, 0
- movs r1, 0x38
- mov r2, sp
- bl SetMonData
- movs r0, 0x1
-_0804036C:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end TryIncrementMonLevel
-
- thumb_func_start CanMonLearnTMHM
-CanMonLearnTMHM: @ 8040374
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- adds r3, r1, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08040396
- movs r0, 0
- b _080403C2
-_08040396:
- cmp r4, 0x1F
- bls _080403B4
- adds r0, r4, 0
- subs r0, 0x20
- movs r2, 0x1
- lsls r2, r0
- ldr r0, _080403B0 @ =gTMHMLearnsets
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- ands r0, r2
- b _080403C2
- .align 2, 0
-_080403B0: .4byte gTMHMLearnsets
-_080403B4:
- movs r1, 0x1
- lsls r1, r5
- ldr r2, _080403C8 @ =gTMHMLearnsets
- lsls r0, r3, 3
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
-_080403C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080403C8: .4byte gTMHMLearnsets
- thumb_func_end CanMonLearnTMHM
-
- thumb_func_start sub_80403CC
-sub_80403CC: @ 80403CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r6, r0, 0
- str r1, [sp, 0x8]
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- movs r5, 0
- mov r4, sp
-_08040402:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08040402
- movs r5, 0
- ldr r6, _08040510 @ =gLevelUpLearnsets
- lsls r1, r7, 2
- adds r2, r1, r6
- ldr r3, [r2]
- ldrh r0, [r3]
- ldr r4, _08040514 @ =0x0000ffff
- str r1, [sp, 0x14]
- cmp r0, r4
- beq _080404FC
- mov r9, r2
- str r3, [sp, 0x10]
-_08040430:
- lsls r2, r5, 1
- ldr r1, [sp, 0x10]
- adds r0, r2, r1
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0xC]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080404E6
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _08040480
- ldr r0, [sp, 0x14]
- ldr r1, _08040510 @ =gLevelUpLearnsets
- adds r6, r0, r1
- ldr r2, _08040518 @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040468:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08040480
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040468
-_08040480:
- cmp r4, 0x4
- bne _080404E6
- movs r4, 0
- cmp r4, r10
- bge _080404C4
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x8]
- ldrh r2, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r1
- cmp r2, r0
- beq _080404C4
- ldr r1, [sp, 0x14]
- ldr r2, _08040510 @ =gLevelUpLearnsets
- adds r6, r1, r2
- ldr r0, _08040518 @ =0x000001ff
- mov r8, r0
- ldr r3, [sp, 0x8]
- adds r5, r7, 0
-_080404AC:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _080404C4
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _080404AC
-_080404C4:
- cmp r4, r10
- bne _080404E6
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r1, [sp, 0x8]
- adds r2, r1
- mov r4, r9
- ldr r0, [r4]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_080404E6:
- mov r5, r12
- cmp r5, 0x13
- bgt _080404FC
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _08040514 @ =0x0000ffff
- cmp r0, r2
- bne _08040430
-_080404FC:
- mov r0, r10
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040510: .4byte gLevelUpLearnsets
-_08040514: .4byte 0x0000ffff
-_08040518: .4byte 0x000001ff
- thumb_func_end sub_80403CC
-
- thumb_func_start sub_804051C
-sub_804051C: @ 804051C
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- movs r5, 0
- movs r4, 0
- ldr r1, _08040568 @ =gLevelUpLearnsets
- lsrs r0, 14
- adds r0, r1
- ldr r2, [r0]
- ldrh r0, [r2]
- ldr r1, _0804056C @ =0x0000ffff
- cmp r0, r1
- beq _08040560
- ldr r0, _08040570 @ =0x000001ff
- mov r12, r0
- adds r7, r1, 0
- adds r3, r2, 0
-_0804053E:
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 1
- adds r1, r6
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- strh r0, [r1]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x13
- bgt _08040560
- ldrh r0, [r3]
- cmp r0, r7
- bne _0804053E
-_08040560:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040568: .4byte gLevelUpLearnsets
-_0804056C: .4byte 0x0000ffff
-_08040570: .4byte 0x000001ff
- thumb_func_end sub_804051C
-
- thumb_func_start sub_8040574
-sub_8040574: @ 8040574
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- adds r6, r0, 0
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x30]
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _080405B0
- movs r0, 0
- b _080406BA
-_080405B0:
- movs r5, 0
- lsls r4, 2
- str r4, [sp, 0x38]
- mov r4, sp
-_080405B8:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _080405B8
- movs r5, 0
- ldr r3, _080406CC @ =gLevelUpLearnsets
- ldr r2, [sp, 0x38]
- adds r1, r2, r3
- ldr r0, [r1]
- ldrh r0, [r0]
- ldr r2, _080406D0 @ =0x0000ffff
- cmp r0, r2
- beq _080406B8
- mov r9, r1
- mov r4, sp
- adds r4, 0x8
- str r4, [sp, 0x34]
-_080405E8:
- mov r1, r9
- ldr r0, [r1]
- lsls r2, r5, 1
- adds r0, r2, r0
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0x30]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080406A2
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _0804063A
- ldr r0, [sp, 0x38]
- ldr r1, _080406CC @ =gLevelUpLearnsets
- adds r6, r0, r1
- ldr r2, _080406D4 @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040622:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0804063A
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040622
-_0804063A:
- cmp r4, 0x4
- bne _080406A2
- movs r4, 0
- cmp r4, r10
- bge _08040680
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x34]
- ldrh r2, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r1
- add r1, sp, 0x8
- cmp r2, r0
- beq _08040680
- ldr r2, [sp, 0x38]
- ldr r0, _080406CC @ =gLevelUpLearnsets
- adds r6, r2, r0
- ldr r2, _080406D4 @ =0x000001ff
- mov r8, r2
- adds r3, r1, 0
- adds r5, r7, 0
-_08040668:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _08040680
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040668
-_08040680:
- cmp r4, r10
- bne _080406A2
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r4, [sp, 0x34]
- adds r2, r4, r2
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_080406A2:
- mov r5, r12
- cmp r5, 0x13
- bgt _080406B8
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r4, _080406D0 @ =0x0000ffff
- cmp r0, r4
- bne _080405E8
-_080406B8:
- mov r0, r10
-_080406BA:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080406CC: .4byte gLevelUpLearnsets
-_080406D0: .4byte 0x0000ffff
-_080406D4: .4byte 0x000001ff
- thumb_func_end sub_8040574
-
- thumb_func_start SpeciesToPokedexNum
-SpeciesToPokedexNum: @ 80406D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl IsNationalPokedex
- cmp r0, 0
- beq _080406F2
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- b _0804070A
-_080406F2:
- adds r0, r4, 0
- bl SpeciesToHoennPokedexNum
- adds r4, r0, 0
- cmp r4, 0xCA
- bls _08040708
- ldr r0, _08040704 @ =0x0000ffff
- b _0804070A
- .align 2, 0
-_08040704: .4byte 0x0000ffff
-_08040708:
- adds r0, r4, 0
-_0804070A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end SpeciesToPokedexNum
-
- thumb_func_start sub_8040710
-sub_8040710: @ 8040710
- push {lr}
- ldr r1, _08040724 @ =gUnknown_02024E84
- movs r2, 0
- adds r0, r1, 0x3
-_08040718:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08040718
- pop {r0}
- bx r0
- .align 2, 0
-_08040724: .4byte gUnknown_02024E84
- thumb_func_end sub_8040710
-
- thumb_func_start sub_8040728
-sub_8040728: @ 8040728
- push {lr}
- ldr r0, _0804073C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08040744
- ldr r0, _08040740 @ =0x000001cf
- b _080408B2
- .align 2, 0
-_0804073C: .4byte gUnknown_020239F8
-_08040740: .4byte 0x000001cf
-_08040744:
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- beq _08040754
- movs r0, 0xE7
- lsls r0, 1
- b _080408B2
-_08040754:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804075E
- b _080408A8
-_0804075E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08040768
- b _080408B0
-_08040768:
- ldr r3, _0804078C @ =gTrainers
- ldr r2, _08040790 @ =gTrainerBattleOpponent
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08040780
- b _080408A8
-_08040780:
- lsls r0, 2
- ldr r1, _08040794 @ =_08040798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804078C: .4byte gTrainers
-_08040790: .4byte gTrainerBattleOpponent
-_08040794: .4byte _08040798
- .align 2, 0
-_08040798:
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A0
- .4byte _0804086C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040872
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _0804087C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
-_08040860:
- movs r0, 0xE9
- lsls r0, 1
- b _080408B2
-_08040866:
- movs r0, 0xE5
- lsls r0, 1
- b _080408B2
-_0804086C:
- movs r0, 0xE6
- lsls r0, 1
- b _080408B2
-_08040872:
- ldr r0, _08040878 @ =0x000001cd
- b _080408B2
- .align 2, 0
-_08040878: .4byte 0x000001cd
-_0804087C:
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08040898 @ =gTrainers + 0x4
- adds r0, r1
- ldr r1, _0804089C @ =gUnknown_08400E42
- bl StringCompare
- cmp r0, 0
- beq _080408A8
- movs r0, 0xE8
- lsls r0, 1
- b _080408B2
- .align 2, 0
-_08040898: .4byte gTrainers + 0x4
-_0804089C: .4byte gUnknown_08400E42
-_080408A0:
- ldr r0, _080408A4 @ =0x000001d1
- b _080408B2
- .align 2, 0
-_080408A4: .4byte 0x000001d1
-_080408A8:
- ldr r0, _080408AC @ =0x000001cb
- b _080408B2
- .align 2, 0
-_080408AC: .4byte 0x000001cb
-_080408B0:
- ldr r0, _080408B8 @ =0x000001c9
-_080408B2:
- pop {r1}
- bx r1
- .align 2, 0
-_080408B8: .4byte 0x000001c9
- thumb_func_end sub_8040728
-
- thumb_func_start sub_80408BC
-sub_80408BC: @ 80408BC
- push {lr}
- bl ResetMapMusic
- bl m4aMPlayAllStop
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl PlayBGM
- pop {r0}
- bx r0
- thumb_func_end sub_80408BC
-
- thumb_func_start current_map_music_set__default_for_battle
-current_map_music_set__default_for_battle: @ 80408D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl ResetMapMusic
- bl m4aMPlayAllStop
- cmp r4, 0
- beq _080408F2
- adds r0, r4, 0
- bl PlayNewMapMusic
- b _080408FE
-_080408F2:
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl PlayNewMapMusic
-_080408FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end current_map_music_set__default_for_battle
-
- thumb_func_start pokemon_get_pal
-pokemon_get_pal: @ 8040904
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl species_and_otid_get_pal
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_pal
-
- thumb_func_start species_and_otid_get_pal
-species_and_otid_get_pal: @ 804093C
- push {r4,r5,lr}
- adds r3, r2, 0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08040958
- ldr r0, _08040954 @ =gMonPaletteTable
- ldr r0, [r0]
- b _08040984
- .align 2, 0
-_08040954: .4byte gMonPaletteTable
-_08040958:
- lsrs r0, r1, 16
- ldr r2, _08040974 @ =0x0000ffff
- ands r1, r2
- eors r0, r1
- lsrs r1, r3, 16
- eors r0, r1
- ands r3, r2
- eors r0, r3
- cmp r0, 0x7
- bls _0804097C
- ldr r0, _08040978 @ =gMonPaletteTable
- lsls r1, r4, 3
- b _08040980
- .align 2, 0
-_08040974: .4byte 0x0000ffff
-_08040978: .4byte gMonPaletteTable
-_0804097C:
- ldr r0, _0804098C @ =gMonShinyPaletteTable
- lsls r1, r5, 3
-_08040980:
- adds r1, r0
- ldr r0, [r1]
-_08040984:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804098C: .4byte gMonShinyPaletteTable
- thumb_func_end species_and_otid_get_pal
-
- thumb_func_start sub_8040990
-sub_8040990: @ 8040990
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80409C8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040990
-
- thumb_func_start sub_80409C8
-sub_80409C8: @ 80409C8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsrs r0, r1, 16
- ldr r3, _080409E8 @ =0x0000ffff
- ands r1, r3
- eors r0, r1
- lsrs r1, r2, 16
- eors r0, r1
- ands r2, r3
- eors r0, r2
- cmp r0, 0x7
- bls _080409F0
- lsls r0, r4, 3
- ldr r1, _080409EC @ =gMonPaletteTable
- b _080409F4
- .align 2, 0
-_080409E8: .4byte 0x0000ffff
-_080409EC: .4byte gMonPaletteTable
-_080409F0:
- lsls r0, r4, 3
- ldr r1, _080409FC @ =gMonShinyPaletteTable
-_080409F4:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080409FC: .4byte gMonShinyPaletteTable
- thumb_func_end sub_80409C8
-
- thumb_func_start sub_8040A00
-sub_8040A00: @ 8040A00
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _08040A24 @ =gUnknown_0820831A
- ldrh r0, [r2]
- ldr r1, _08040A28 @ =0x0000ffff
- cmp r0, r1
- beq _08040A32
- adds r4, r1, 0
- adds r1, r2, 0
-_08040A14:
- ldrh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- cmp r0, r3
- bne _08040A2C
- movs r0, 0x1
- b _08040A34
- .align 2, 0
-_08040A24: .4byte gUnknown_0820831A
-_08040A28: .4byte 0x0000ffff
-_08040A2C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08040A14
-_08040A32:
- movs r0, 0
-_08040A34:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040A00
-
- thumb_func_start sub_8040A3C
-sub_8040A3C: @ 8040A3C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040A50 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x19]
- lsrs r0, 7
- bx lr
- .align 2, 0
-_08040A50: .4byte gBaseStats
- thumb_func_end sub_8040A3C
-
- thumb_func_start sub_8040A54
-sub_8040A54: @ 8040A54
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040A78 @ =gUnknown_083F7E28
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040A78: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A54
-
- thumb_func_start sub_8040A7C
-sub_8040A7C: @ 8040A7C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040AA0 @ =gUnknown_083F7E28
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040AA0: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A7C
-
- thumb_func_start sub_8040AA4
-sub_8040AA4: @ 8040AA4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r1, 0x7
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- mov r1, sp
- bl sub_8040AD0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AA4
-
- thumb_func_start sub_8040AD0
-sub_8040AD0: @ 8040AD0
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r3, _08040B10 @ =gSaveBlock2
- ldrb r2, [r3, 0xA]
- ldrb r1, [r3, 0xB]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r3, 0xC]
- lsls r1, 16
- orrs r2, r1
- ldrb r1, [r3, 0xD]
- lsls r1, 24
- orrs r2, r1
- cmp r0, r2
- bne _08040B14
- movs r4, 0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _08040B0C
- adds r2, r5, 0
-_08040AF8:
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08040B14
- adds r2, 0x1
- adds r4, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _08040AF8
-_08040B0C:
- movs r0, 0
- b _08040B16
- .align 2, 0
-_08040B10: .4byte gSaveBlock2
-_08040B14:
- movs r0, 0x1
-_08040B16:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AD0
-
- thumb_func_start sub_8040B1C
-sub_8040B1C: @ 8040B1C
- push {lr}
- bl pokemon_restore_pp
- pop {r0}
- bx r0
- thumb_func_end sub_8040B1C
-
- thumb_func_start pokemon_restore_pp
-pokemon_restore_pp: @ 8040B28
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
-_08040B30:
- adds r4, r6, 0
- adds r4, 0xD
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- beq _08040B7C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl CalculatePPWithBonus
- mov r1, sp
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl SetBoxMonData
-_08040B7C:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08040B30
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemon_restore_pp
-
- thumb_func_start sub_8040B8C
-sub_8040B8C: @ 8040B8C
- push {r4,r5,lr}
- ldr r1, _08040BCC @ =byte_2024C06
- ldr r2, _08040BD0 @ =0x02000000
- ldr r3, _08040BD4 @ =0x000160c0
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r5, _08040BD8 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x4
- strb r0, [r5, 0x1]
- ldr r0, _08040BDC @ =0x00016054
- adds r4, r2, r0
- ldrb r0, [r4]
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08040BE4
- ldr r1, _08040BE0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- b _08040BEE
- .align 2, 0
-_08040BCC: .4byte byte_2024C06
-_08040BD0: .4byte 0x02000000
-_08040BD4: .4byte 0x000160c0
-_08040BD8: .4byte gUnknown_030041C0
-_08040BDC: .4byte 0x00016054
-_08040BE0: .4byte gUnknown_02024A6A
-_08040BE4:
- ldr r0, _08040C24 @ =gUnknown_02024A6A
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
-_08040BEE:
- strb r0, [r5, 0x3]
- ldr r4, _08040C28 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x4
- strb r0, [r4, 0x1]
- ldr r1, _08040C2C @ =gUnknown_02024E6C
- ldrb r0, [r1]
- strb r0, [r4, 0x2]
- ldr r2, _08040C24 @ =gUnknown_02024A6A
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- bl pokemon_order_func
- strb r0, [r4, 0x3]
- movs r0, 0xFF
- strb r0, [r4, 0x4]
- ldr r0, _08040C30 @ =gUnknown_083FFCCA
- ldr r1, _08040C34 @ =gStringVar4
- bl sub_8120FFC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08040C24: .4byte gUnknown_02024A6A
-_08040C28: .4byte gUnknown_03004290
-_08040C2C: .4byte gUnknown_02024E6C
-_08040C30: .4byte gUnknown_083FFCCA
-_08040C34: .4byte gStringVar4
- thumb_func_end sub_8040B8C
-
- thumb_func_start sub_8040C38
-sub_8040C38: @ 8040C38
- push {r4,r5,lr}
- ldr r0, _08040C90 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _08040C94 @ =0x00002008
- ands r0, r1
- cmp r0, 0
- bne _08040CAC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, _08040C98 @ =gEnemyParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040C9C @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r3, r1, 2
- adds r1, r3, r2
- ldrh r0, [r1, 0xC]
- ldrh r1, [r1, 0xE]
- cmp r0, r1
- beq _08040C82
- cmp r5, 0x2C
- bls _08040CAC
- cmp r5, 0x5E
- bhi _08040CA0
-_08040C82:
- adds r2, 0xC
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- b _08040CAC
- .align 2, 0
-_08040C90: .4byte gUnknown_020239F8
-_08040C94: .4byte 0x00002008
-_08040C98: .4byte gEnemyParty
-_08040C9C: .4byte gBaseStats
-_08040CA0:
- adds r2, 0xE
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
-_08040CAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8040C38
-
- thumb_func_start sub_8040CB4
-sub_8040CB4: @ 8040CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_8040CE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040CB4
-
- thumb_func_start sub_8040CE0
-sub_8040CE0: @ 8040CE0
- push {r4,lr}
- movs r4, 0
- lsrs r2, r0, 16
- ldr r3, _08040D04 @ =0x0000ffff
- ands r0, r3
- eors r2, r0
- lsrs r0, r1, 16
- eors r2, r0
- ands r1, r3
- eors r2, r1
- cmp r2, 0x7
- bhi _08040CFA
- movs r4, 0x1
-_08040CFA:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D04: .4byte 0x0000ffff
- thumb_func_end sub_8040CE0
-
- thumb_func_start sub_8040D08
-sub_8040D08: @ 8040D08
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08040D38 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x18]
- movs r0, 0x2
- eors r0, r1
- bl sub_803FC34
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D38: .4byte gLinkPlayers
- thumb_func_end sub_8040D08
-
- thumb_func_start sub_8040D3C
-sub_8040D3C: @ 8040D3C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- cmp r1, 0x20
- beq _08040D54
- cmp r1, 0x1D
- bne _08040D7E
-_08040D54:
- cmp r2, 0x2
- bne _08040D68
- movs r0, 0xB
- muls r1, r0
- ldr r0, _08040D64 @ =gSpeciesNames
- adds r1, r0
- b _08040D70
- .align 2, 0
-_08040D64: .4byte gSpeciesNames
-_08040D68:
- ldr r1, _08040D88 @ =gUnknown_08208337
- cmp r0, 0x20
- bne _08040D70
- subs r1, 0xB
-_08040D70:
- adds r0, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- movs r3, 0
- cmp r0, 0
- bne _08040D7E
- movs r3, 0x1
-_08040D7E:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D88: .4byte gUnknown_08208337
- thumb_func_end sub_8040D3C
-
- thumb_func_start sub_8040D8C
-sub_8040D8C: @ 8040D8C
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _08040DA2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _08040DA2
- movs r2, 0x1
-_08040DA2:
- adds r0, r3, 0
- bl sub_8040D3C
- pop {r1}
- bx r1
- thumb_func_end sub_8040D8C
-
- thumb_func_start unref_sub_8040DAC
-unref_sub_8040DAC: @ 8040DAC
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_8040D3C
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8040DAC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_804373C.s b/asm/rom_804373C.s
index a134237f1..b84342e18 100644
--- a/asm/rom_804373C.s
+++ b/asm/rom_804373C.s
@@ -275,7 +275,7 @@ battle_make_oam_normal_battle: @ 8043914
mov r10, r0
movs r0, 0
str r0, [sp]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08043A28
@@ -1060,7 +1060,7 @@ sub_8043F44: @ 8043F44
lsrs r6, r0, 24
movs r5, 0
movs r4, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08043F70
@@ -1135,7 +1135,7 @@ sub_8043FC0: @ 8043FC0
mov r0, sp
movs r2, 0x1E
bl memcpy
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08044010
@@ -1291,7 +1291,7 @@ sub_80440EC: @ 80440EC
adds r4, r0, r1
movs r0, 0x3A
ldrsh r5, [r4, r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1854,7 +1854,7 @@ _0804458E:
bne _080445A2
b _080447D4
_080445A2:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080445BA
@@ -1890,13 +1890,13 @@ _080445BA:
lsls r0, 24
cmp r0, 0
bne _080446DC
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080445FA
b _080447D4
_080445FA:
- ldr r0, _08044684 @ =gUnknown_020239F8
+ ldr r0, _08044684 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -1958,7 +1958,7 @@ _08044674: .4byte gUnknown_02024A6A
_08044678: .4byte gUnknown_03004340
_0804467C: .4byte SpriteCallbackDummy
_08044680: .4byte 0x02017800
-_08044684: .4byte gUnknown_020239F8
+_08044684: .4byte gBattleTypeFlags
_08044688: .4byte 0x06010000
_0804468C: .4byte 0x05000040
_08044690: .4byte gPlayerParty
@@ -1996,7 +1996,7 @@ _080446D8: .4byte REG_BG0CNT
_080446DC:
cmp r6, 0x1
bne _0804478C
- ldr r0, _08044704 @ =gUnknown_020239F8
+ ldr r0, _08044704 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -2014,7 +2014,7 @@ _080446DC:
bl sub_8044338
b _080447BE
.align 2, 0
-_08044704: .4byte gUnknown_020239F8
+_08044704: .4byte gBattleTypeFlags
_08044708: .4byte gEnemyParty
_0804470C:
ldrb r1, [r5]
@@ -2085,7 +2085,7 @@ _0804478C:
adds r1, r4
movs r2, 0x5
bl sub_8045A5C
- ldr r0, _080447F8 @ =gUnknown_020239F8
+ ldr r0, _080447F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -2129,7 +2129,7 @@ _080447E4:
bx r0
.align 2, 0
_080447F4: .4byte gEnemyParty
-_080447F8: .4byte gUnknown_020239F8
+_080447F8: .4byte gBattleTypeFlags
_080447FC: .4byte gUnknown_03004340
_08044800: .4byte gUnknown_02024A68
thumb_func_end sub_804454C
@@ -2178,7 +2178,7 @@ _08044854:
movs r7, 0x1
cmp r4, 0
beq _08044864
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0804486A
@@ -2448,7 +2448,7 @@ _08044A76:
cmp r0, 0
bne _08044B5E
movs r6, 0
- ldr r5, _08044AC8 @ =gUnknown_020239F8
+ ldr r5, _08044AC8 @ =gBattleTypeFlags
mov r10, r5
ldr r0, _08044ACC @ =0x0000ffff
mov r9, r0
@@ -2483,7 +2483,7 @@ _08044A9A:
b _08044B46
.align 2, 0
_08044AC4: .4byte 0x0000ff88
-_08044AC8: .4byte gUnknown_020239F8
+_08044AC8: .4byte gBattleTypeFlags
_08044ACC: .4byte 0x0000ffff
_08044AD0: .4byte gSprites
_08044AD4: .4byte 0x000003ff
@@ -2561,7 +2561,7 @@ _08044B52:
b _08044C38
_08044B5E:
movs r6, 0
- ldr r1, _08044BA4 @ =gUnknown_020239F8
+ ldr r1, _08044BA4 @ =gBattleTypeFlags
mov r10, r1
ldr r2, _08044BA8 @ =0x0000ffff
mov r9, r2
@@ -2596,7 +2596,7 @@ _08044B78:
adds r1, 0x3
b _08044C22
.align 2, 0
-_08044BA4: .4byte gUnknown_020239F8
+_08044BA4: .4byte gBattleTypeFlags
_08044BA8: .4byte 0x0000ffff
_08044BAC: .4byte gSprites
_08044BB0: .4byte 0x000003ff
@@ -3630,7 +3630,7 @@ _0804535A:
lsls r0, 24
cmp r0, 0
bne _080453D4
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080453D4
@@ -3748,7 +3748,7 @@ sub_8045458: @ 8045458
lsrs r2, r0, 24
lsls r1, 24
lsrs r7, r1, 24
- ldr r0, _080454F4 @ =gUnknown_020239F8
+ ldr r0, _080454F4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 2
@@ -3815,7 +3815,7 @@ sub_8045458: @ 8045458
bl CpuSet
b _0804552E
.align 2, 0
-_080454F4: .4byte gUnknown_020239F8
+_080454F4: .4byte gBattleTypeFlags
_080454F8: .4byte gSprites
_080454FC: .4byte gUnknown_02024A6A
_08045500: .4byte gEnemyParty
@@ -3887,7 +3887,7 @@ draw_status_ailment_maybe: @ 8045540
movs r1, 0x37
bl GetMonData
adds r4, r0, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
movs r3, 0x12
mov r8, r3
@@ -4092,7 +4092,7 @@ _080456FC:
ldr r2, _080457DC @ =REG_BG2HOFS
adds r0, r6, 0
bl CpuSet
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4556,7 +4556,7 @@ _08045AEE:
movs r3, 0
bl sub_8045C78
_08045B22:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
@@ -4767,7 +4767,7 @@ _08045CBC:
ldr r1, [r6, 0xC]
ldr r2, [r6, 0x4]
movs r3, 0x8
- bl sub_8046188
+ bl GetScaledExpFraction
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -5400,8 +5400,8 @@ _08046154:
bx r0
thumb_func_end sub_8046128
- thumb_func_start sub_8046188
-sub_8046188: @ 8046188
+ thumb_func_start GetScaledExpFraction
+GetScaledExpFraction: @ 8046188
push {r4-r7,lr}
adds r6, r2, 0
lsls r3, 27
@@ -5440,10 +5440,10 @@ _080461C8:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8046188
+ thumb_func_end GetScaledExpFraction
- thumb_func_start sub_80461D4
-sub_80461D4: @ 80461D4
+ thumb_func_start GetScaledHPFraction
+GetScaledHPFraction: @ 80461D4
push {r4,lr}
lsls r2, 24
lsrs r2, 24
@@ -5465,10 +5465,10 @@ _080461F8:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80461D4
+ thumb_func_end GetScaledHPFraction
- thumb_func_start sub_8046200
-sub_8046200: @ 8046200
+ thumb_func_start GetHPBarLevel
+GetHPBarLevel: @ 8046200
push {lr}
lsls r0, 16
asrs r0, 16
@@ -5480,7 +5480,7 @@ sub_8046200: @ 8046200
b _0804622E
_08046212:
movs r2, 0x30
- bl sub_80461D4
+ bl GetScaledHPFraction
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x3
@@ -5495,3001 +5495,6 @@ _08046212:
_0804622E:
pop {r1}
bx r1
- thumb_func_end sub_8046200
-
- thumb_func_start sub_8046234
-sub_8046234: @ 8046234
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r5, _0804636C @ =gUnknown_081FAEA4
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08046370 @ =0xffff0000
- cmp r0, r1
- bne _08046266
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08046374 @ =gUnknown_081FAEAC
- bl LoadCompressedObjectPalette
-_08046266:
- ldr r0, _08046378 @ =sub_8046388
- bl object_new_hidden_with_callback
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r0, _0804637C @ =gSprites
- adds r5, r0
- strh r4, [r5, 0x30]
- ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C
- mov r9, r0
- lsls r6, 16
- asrs r0, r6, 16
- mov r10, r0
- ldr r0, _08046384 @ =0xfff00000
- adds r6, r0
- asrs r6, 16
- lsls r4, r7, 16
- asrs r7, r4, 16
- adds r4, r0
- asrs r4, 16
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0804637C @ =gSprites
- adds r1, r0
- mov r0, r8
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r1, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804636C: .4byte gUnknown_081FAEA4
-_08046370: .4byte 0xffff0000
-_08046374: .4byte gUnknown_081FAEAC
-_08046378: .4byte sub_8046388
-_0804637C: .4byte gSprites
-_08046380: .4byte gSpriteTemplate_81FAF0C
-_08046384: .4byte 0xfff00000
- thumb_func_end sub_8046234
-
- thumb_func_start sub_8046388
-sub_8046388: @ 8046388
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463C0
- ldr r0, _080463B4 @ =gUnknown_081FAEA4
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _080463B8 @ =gUnknown_081FAEAC
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463BC
- adds r0, r4, 0
- bl DestroySprite
- b _080463C0
- .align 2, 0
-_080463B4: .4byte gUnknown_081FAEA4
-_080463B8: .4byte gUnknown_081FAEAC
-_080463BC:
- ldr r0, _080463C8 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080463C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080463C8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8046388
-
- thumb_func_start sub_80463CC
-sub_80463CC: @ 80463CC
- push {lr}
- adds r3, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080463F6
- ldr r2, _080463FC @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- subs r1, 0x1
- strh r1, [r0, 0x2E]
- adds r0, r3, 0
- bl DestroySprite
-_080463F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080463FC: .4byte gSprites
- thumb_func_end sub_80463CC
-
- thumb_func_start sub_8046400
-sub_8046400: @ 8046400
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _08046450 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r6, _08046454 @ =gUnknown_02024A60
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08046458 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0804645C @ =sub_8046464
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046460 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- ldrb r0, [r6]
- strh r0, [r1, 0xE]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08046450: .4byte gUnknown_02024E6D
-_08046454: .4byte gUnknown_02024A60
-_08046458: .4byte 0x02017810
-_0804645C: .4byte sub_8046464
-_08046460: .4byte gTasks
- thumb_func_end sub_8046400
-
- thumb_func_start sub_8046464
-sub_8046464: @ 8046464
- 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 r10, r0
- movs r0, 0
- str r0, [sp]
- ldr r1, _08046498 @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0804649C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- b _08046616
- .align 2, 0
-_08046498: .4byte gTasks
-_0804649C:
- ldrh r0, [r1, 0xC]
- mov r8, r0
- ldrb r5, [r1, 0xE]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080464C8
- ldr r1, _080464C0 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080464C4 @ =gEnemyParty
- b _080464D6
- .align 2, 0
-_080464C0: .4byte gUnknown_02024A6A
-_080464C4: .4byte gEnemyParty
-_080464C8:
- ldr r1, _08046544 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08046548 @ =gPlayerParty
-_080464D6:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0804654C @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08046550 @ =gSprites
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- adds r4, r6, r2
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- movs r3, 0
- strh r3, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x3C]
- mov r2, r8
- cmp r2, 0xFE
- beq _0804655C
- cmp r2, 0xFF
- bne _08046598
- ldr r0, _08046554 @ =gUnknown_02024C08
- strb r5, [r0]
- movs r0, 0x18
- strh r0, [r4, 0x20]
- movs r0, 0x44
- strh r0, [r4, 0x22]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046558 @ =sub_8047074
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046544: .4byte gUnknown_02024A6A
-_08046548: .4byte gPlayerParty
-_0804654C: .4byte gSpriteTemplate_820AAB4
-_08046550: .4byte gSprites
-_08046554: .4byte gUnknown_02024C08
-_08046558: .4byte sub_8047074
-_0804655C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x22]
- ldr r0, _08046590 @ =gUnknown_02024C08
- strb r5, [r0]
- movs r3, 0
- strh r3, [r4, 0x2E]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046594 @ =sub_8047254
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046590: .4byte gUnknown_02024C08
-_08046594: .4byte sub_8047254
-_08046598:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _080465C4 @ =gUnknown_02024C08
- strb r0, [r1]
- movs r0, 0x1
- str r0, [sp]
-_080465A6:
- ldr r0, _080465C8 @ =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r4, r1, r0
- ldr r5, _080465C4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strh r0, [r4, 0x3A]
- ldr r2, [sp]
- cmp r2, 0
- bne _080465CC
- mov r0, r10
- bl DestroyTask
- b _08046616
- .align 2, 0
-_080465C4: .4byte gUnknown_02024C08
-_080465C8: .4byte gSprites
-_080465CC:
- movs r0, 0x22
- strh r0, [r4, 0x2E]
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r4, 0x36]
- ldr r0, _08046628 @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- mov r3, r10
- strh r3, [r4, 0x6]
- ldr r1, _0804662C @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r5]
- strh r1, [r0, 0x10]
- ldr r1, _08046630 @ =TaskDummy
- str r1, [r0]
- movs r0, 0x3D
- bl PlaySE
-_08046616:
- 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
-_08046628: .4byte 0x0000ffd8
-_0804662C: .4byte gTasks
-_08046630: .4byte TaskDummy
- thumb_func_end sub_8046464
-
- thumb_func_start objc_0804ABD4
-objc_0804ABD4: @ 8046634
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080466D4
- ldrb r6, [r7, 0x6]
- ldr r1, _080466E0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r5, [r0, 0x10]
- ldrb r0, [r0, 0xC]
- mov r8, r0
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r2, [r7, 0x22]
- adds r0, r2
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x24]
- strh r1, [r7, 0x26]
- strh r1, [r7, 0x38]
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r7, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x2E]
- strh r5, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, _080466E4 @ =sub_80466E8
- str r0, [r7, 0x1C]
-_080466D4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080466E0: .4byte gTasks
-_080466E4: .4byte sub_80466E8
- thumb_func_end objc_0804ABD4
-
- thumb_func_start sub_80466E8
-sub_80466E8: @ 80466E8
- ldr r1, _080466F0 @ =sub_80466F4
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080466F0: .4byte sub_80466F4
- thumb_func_end sub_80466E8
-
- thumb_func_start sub_80466F4
-sub_80466F4: @ 80466F4
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0804674E
- strh r7, [r6, 0x38]
- ldr r0, _08046754 @ =sub_8046760
- str r0, [r6, 0x1C]
- ldr r5, _08046758 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804675C @ =gSprites
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAffineAnim
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x30]
-_0804674E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046754: .4byte sub_8046760
-_08046758: .4byte gUnknown_02024BE0
-_0804675C: .4byte gSprites
- thumb_func_end sub_80466F4
-
- thumb_func_start sub_8046760
-sub_8046760: @ 8046760
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _08046778
- movs r0, 0x3C
- bl PlaySE
-_08046778:
- ldr r6, _080467C4 @ =gSprites
- ldr r5, _080467C8 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080467D0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- adds r0, r5
- ldrb r1, [r0]
- 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]
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _080467CC @ =sub_80467F8
- str r0, [r4, 0x1C]
- b _080467F0
- .align 2, 0
-_080467C4: .4byte gSprites
-_080467C8: .4byte gUnknown_02024BE0
-_080467CC: .4byte sub_80467F8
-_080467D0:
- ldrh r0, [r1, 0x30]
- adds r0, 0x60
- strh r0, [r1, 0x30]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
-_080467F0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046760
-
- thumb_func_start sub_80467F8
-sub_80467F8: @ 80467F8
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046840
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046840
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08046848 @ =sub_804684C
- str r0, [r4, 0x1C]
-_08046840:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046848: .4byte sub_804684C
- thumb_func_end sub_80467F8
-
- thumb_func_start sub_804684C
-sub_804684C: @ 804684C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _08046862
- cmp r1, 0x1
- beq _080468D6
- b _08046902
-_08046862:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _08046902
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _080468AC @ =0x00000101
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _0804689E
- movs r5, 0x1
-_0804689E:
- cmp r0, 0x2
- beq _080468BE
- cmp r0, 0x2
- bgt _080468B0
- cmp r0, 0x1
- beq _080468B6
- b _080468CE
- .align 2, 0
-_080468AC: .4byte 0x00000101
-_080468B0:
- cmp r0, 0x3
- beq _080468C6
- b _080468CE
-_080468B6:
- movs r0, 0x38
- bl PlaySE
- b _08046902
-_080468BE:
- movs r0, 0x39
- bl PlaySE
- b _08046902
-_080468C6:
- movs r0, 0x3A
- bl PlaySE
- b _08046902
-_080468CE:
- movs r0, 0x3B
- bl PlaySE
- b _08046902
-_080468D6:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _08046902
- strh r5, [r4, 0x38]
- ldr r0, _08046928 @ =0xffffff00
- ands r0, r2
- strh r0, [r4, 0x34]
-_08046902:
- cmp r5, 0
- beq _0804693A
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08046930
- ldr r0, _0804692C @ =sub_8046C78
- str r0, [r4, 0x1C]
- b _0804693A
- .align 2, 0
-_08046928: .4byte 0xffffff00
-_0804692C: .4byte sub_8046C78
-_08046930:
- ldr r0, _08046940 @ =sub_8046944
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0804693A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046940: .4byte sub_8046944
- thumb_func_end sub_804684C
-
- thumb_func_start sub_8046944
-sub_8046944: @ 8046944
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046978
- movs r0, 0
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08046980 @ =sub_8046984
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_08046978:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046980: .4byte sub_8046984
- thumb_func_end sub_8046944
-
- thumb_func_start sub_8046984
-sub_8046984: @ 8046984
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x4
- bhi _08046A84
- lsls r0, r1, 2
- ldr r1, _0804699C @ =_080469A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804699C: .4byte _080469A0
- .align 2, 0
-_080469A0:
- .4byte _080469B4
- .4byte _080469E6
- .4byte _080469B4
- .4byte _08046A3A
- .4byte _08046A84
-_080469B4:
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x24]
- adds r1, r0, r2
- strh r1, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _08046ACA
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- movs r0, 0
- strh r0, [r4, 0x38]
- b _08046ACA
-_080469E6:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046A2C
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _08046A22
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A22:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A2C:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08046ACA
-_08046A3A:
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r2, [r4, 0x34]
- adds r0, r2
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08046A5C
- ldr r0, _08046A58 @ =sub_8046C78
- str r0, [r4, 0x1C]
- b _08046ACA
- .align 2, 0
-_08046A58: .4byte sub_8046C78
-_08046A5C:
- cmp r1, 0x4
- bne _08046A70
- cmp r0, 0x3
- bne _08046A70
- ldr r0, _08046A6C @ =sub_8046E7C
- str r0, [r4, 0x1C]
- b _08046A76
- .align 2, 0
-_08046A6C: .4byte sub_8046E7C
-_08046A70:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_08046A76:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _08046ACA
-_08046A84:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046ACA
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _08046AB8 @ =0xffffff00
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _08046ABC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08046AC4
- .align 2, 0
-_08046AB8: .4byte 0xffffff00
-_08046ABC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08046AC4:
- movs r0, 0x17
- bl PlaySE
-_08046ACA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8046984
-
- thumb_func_start sub_8046AD0
-sub_8046AD0: @ 8046AD0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08046AFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r6, [r0, 0xC]
- ldrb r3, [r0, 0xA]
- ldrh r5, [r0, 0x8]
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x20
- bhi _08046B88
- lsls r0, 2
- ldr r1, _08046B00 @ =_08046B04
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08046AFC: .4byte gTasks
-_08046B00: .4byte _08046B04
- .align 2, 0
-_08046B04:
- .4byte _08046B88
- .4byte _08046BA6
- .4byte _08046BB2
- .4byte _08046BF6
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046BD0
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046C08
- .4byte _08046C20
- .4byte _08046C48
-_08046B88:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x18]
- movs r3, 0x18
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _08046BA0
- adds r0, r2, 0x1
- strh r0, [r1, 0x18]
- b _08046C72
-_08046BA0:
- adds r0, r6, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
-_08046BA6:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlayCry1
- b _08046BEE
-_08046BB2:
- bl StopCryAndClearCrySongs
- ldr r1, _08046BCC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x1C]
- movs r1, 0x14
- strh r1, [r0, 0x26]
- b _08046C72
- .align 2, 0
-_08046BCC: .4byte gTasks
-_08046BD0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _08046C5A
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0x1
- bl PlayCry4
-_08046BEE:
- adds r0, r4, 0
- bl DestroyTask
- b _08046C72
-_08046BF6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r1, 0x6
- strh r1, [r0, 0x1C]
- movs r1, 0x1E
- strh r1, [r0, 0x26]
- b _08046C72
-_08046C08:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r3, 0x1C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08046C5A
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
-_08046C20:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _08046C72
- bl StopCryAndClearCrySongs
- ldr r0, _08046C44 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
- .align 2, 0
-_08046C44: .4byte gTasks
-_08046C48:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08046C60
-_08046C5A:
- subs r0, r2, 0x1
- strh r0, [r1, 0x1C]
- b _08046C72
-_08046C60:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl PlayCry4
- adds r0, r4, 0
- bl DestroyTask
-_08046C72:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046AD0
-
- thumb_func_start sub_8046C78
-sub_8046C78: @ 8046C78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldrh r1, [r6, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x2E]
- ldr r0, _08046D0C @ =sub_8046E9C
- str r0, [r6, 0x1C]
- ldr r0, _08046D10 @ =gMain
- ldr r1, _08046D14 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08046CE8
- b _08046E1C
-_08046CE8:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08046D20
- ldr r1, _08046D18 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D1C @ =gEnemyParty
- adds r0, r1, r0
- movs r3, 0x19
- mov r8, r3
- b _08046D34
- .align 2, 0
-_08046D0C: .4byte sub_8046E9C
-_08046D10: .4byte gMain
-_08046D14: .4byte 0x0000043d
-_08046D18: .4byte gUnknown_02024A6A
-_08046D1C: .4byte gEnemyParty
-_08046D20:
- ldr r1, _08046D90 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D94 @ =gPlayerParty
- adds r0, r1, r0
- movs r1, 0xE7
- mov r8, r1
-_08046D34:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046D5A
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DAE
-_08046D5A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D98 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D9C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08046DA4
- bl IsBGMPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046DA0 @ =gMPlay_BGM
- bl m4aMPlayStop
- b _08046DAE
- .align 2, 0
-_08046D90: .4byte gUnknown_02024A6A
-_08046D94: .4byte gPlayerParty
-_08046D98: .4byte 0x02017840
-_08046D9C: .4byte gUnknown_020239F8
-_08046DA0: .4byte gMPlay_BGM
-_08046DA4:
- ldr r0, _08046DC8 @ =gMPlay_BGM
- ldr r1, _08046DCC @ =0x0000ffff
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_08046DAE:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DC4
- ldr r0, _08046DD0 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08046DD4
-_08046DC4:
- movs r4, 0
- b _08046DF6
- .align 2, 0
-_08046DC8: .4byte gMPlay_BGM
-_08046DCC: .4byte 0x0000ffff
-_08046DD0: .4byte 0x02017840
-_08046DD4:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046DF0
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DF4
-_08046DF0:
- movs r4, 0x1
- b _08046DF6
-_08046DF4:
- movs r4, 0x2
-_08046DF6:
- ldr r0, _08046E6C @ =sub_8046AD0
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046E70 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r7, [r1, 0x8]
- mov r3, r8
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r2, [r1, 0x26]
-_08046E1C:
- ldr r5, _08046E74 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08046E78 @ =gSprites
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r3, 0x3A
- ldrsh r0, [r6, r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046E6C: .4byte sub_8046AD0
-_08046E70: .4byte gTasks
-_08046E74: .4byte gUnknown_02024BE0
-_08046E78: .4byte gSprites
- thumb_func_end sub_8046C78
-
- thumb_func_start sub_8046E7C
-sub_8046E7C: @ 8046E7C
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08046E98 @ =sub_8046FBC
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08046E98: .4byte sub_8046FBC
- thumb_func_end sub_8046E7C
-
- thumb_func_start sub_8046E9C
-sub_8046E9C: @ 8046E9C
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r7, 0
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _08046F00 @ =gSprites
- ldr r0, _08046F04 @ =gUnknown_02024BE0
- adds r3, r4, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046EDE
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08046EDE:
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08046F08
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r7, 0x1
- b _08046F24
- .align 2, 0
-_08046F00: .4byte gSprites
-_08046F04: .4byte gUnknown_02024BE0
-_08046F08:
- ldr r2, _08046FA8 @ =0xfffffee0
- adds r0, r2, 0
- ldrh r2, [r1, 0x30]
- adds r0, r2
- strh r0, [r1, 0x30]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08046F24:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046FA0
- cmp r7, 0
- beq _08046FA0
- ldr r2, _08046FAC @ =gSprites
- ldr r0, _08046FB0 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r0, _08046FB4 @ =gUnknown_02024E6D
- strb r2, [r0]
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r4, _08046FB8 @ =0x02017810
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
- movs r3, 0
- movs r5, 0x8
- adds r2, r4, 0
- movs r4, 0x3
-_08046F78:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08046F84
- adds r3, 0x1
-_08046F84:
- adds r2, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08046F78
- cmp r3, 0x4
- bne _08046FA0
- movs r4, 0
-_08046F92:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_804794C
- adds r4, 0x1
- cmp r4, 0xB
- ble _08046F92
-_08046FA0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046FA8: .4byte 0xfffffee0
-_08046FAC: .4byte gSprites
-_08046FB0: .4byte gUnknown_02024BE0
-_08046FB4: .4byte gUnknown_02024E6D
-_08046FB8: .4byte 0x02017810
- thumb_func_end sub_8046E9C
-
- thumb_func_start sub_8046FBC
-sub_8046FBC: @ 8046FBC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _08047056
- cmp r1, 0x5F
- bne _08046FF4
- ldr r0, _08046FEC @ =gUnknown_02024E6D
- movs r1, 0
- strb r1, [r0]
- bl m4aMPlayAllStop
- ldr r0, _08046FF0 @ =0x00000173
- bl PlaySE
- b _08047056
- .align 2, 0
-_08046FEC: .4byte gUnknown_02024E6D
-_08046FF0: .4byte 0x00000173
-_08046FF4:
- ldr r0, _0804705C @ =0x0000013b
- cmp r1, r0
- bne _08047056
- ldr r5, _08047060 @ =gSprites
- ldr r4, _08047064 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r6, 0
- bl DestroySpriteAndFreeResources
- ldr r0, _08047068 @ =gMain
- ldr r1, _0804706C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08047056
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 2
- ldr r0, _08047070 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_08047056:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804705C: .4byte 0x0000013b
-_08047060: .4byte gSprites
-_08047064: .4byte gUnknown_02024BE0
-_08047068: .4byte gMain
-_0804706C: .4byte 0x0000043d
-_08047070: .4byte 0x02017810
- thumb_func_end sub_8046FBC
-
- thumb_func_start sub_8047074
-sub_8047074: @ 8047074
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x19
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x36]
- ldr r0, _080470BC @ =0x0000ffe2
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x6]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080470C0 @ =sub_80470C4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080470BC: .4byte 0x0000ffe2
-_080470C0: .4byte sub_80470C4
- thumb_func_end sub_8047074
-
- thumb_func_start sub_80470C4
-sub_80470C4: @ 80470C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- lsrs r0, 8
- subs r0, 0x23
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2C
- bhi _080471B8
- ldrh r1, [r5, 0x6]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- bne _08047126
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x2
- negs r1, r1
- adds r4, r1, 0
- ands r0, r4
- orrs r6, r0
- strh r6, [r5, 0x30]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- ands r0, r4
- orrs r7, r0
- strh r7, [r5, 0x32]
- adds r0, r5, 0
- movs r1, 0x4
- bl StartSpriteAffineAnim
-_08047126:
- ldrh r4, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078B5C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x3
- bl __divsi3
- adds r1, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, r1
- strh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 24
- mov r2, r8
- ands r0, r2
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r5, 0x6]
- adds r0, r1
- strh r0, [r5, 0x6]
- lsls r0, 16
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08047176
- strh r4, [r5, 0x2E]
- b _0804717E
-_08047176:
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, 0x1
- strh r0, [r5, 0x2E]
-_0804717E:
- ldrh r0, [r5, 0x3C]
- lsrs r0, 8
- cmp r0, 0x4F
- ble _08047220
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x2
- negs r1, r1
- adds r2, r1, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r5, 0x30]
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- ands r0, r2
- orrs r0, r7
- strh r0, [r5, 0x32]
- b _08047220
-_080471B8:
- adds r0, r5, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08047220
- 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]
- ldrb r0, [r5, 0x6]
- strh r0, [r5, 0x3A]
- strh r1, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08047214
- ldr r0, _0804720C @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08047214
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08047214
- ldr r0, _08047210 @ =sub_8047230
- b _08047216
- .align 2, 0
-_0804720C: .4byte 0x02017840
-_08047210: .4byte sub_8047230
-_08047214:
- ldr r0, _0804722C @ =sub_8046C78
-_08047216:
- str r0, [r5, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
-_08047220:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804722C: .4byte sub_8046C78
- thumb_func_end sub_80470C4
-
- thumb_func_start sub_8047230
-sub_8047230: @ 8047230
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _0804724A
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldr r0, _08047250 @ =sub_8046C78
- str r0, [r2, 0x1C]
-_0804724A:
- pop {r0}
- bx r0
- .align 2, 0
-_08047250: .4byte sub_8046C78
- thumb_func_end sub_8047230
-
- thumb_func_start sub_8047254
-sub_8047254: @ 8047254
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080472A4
- movs r0, 0
- strh r0, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080472A0
- ldr r0, _08047298 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080472A0
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080472A0
- ldr r0, _0804729C @ =sub_8047230
- b _080472A2
- .align 2, 0
-_08047298: .4byte 0x02017840
-_0804729C: .4byte sub_8047230
-_080472A0:
- ldr r0, _080472AC @ =sub_8046C78
-_080472A2:
- str r0, [r5, 0x1C]
-_080472A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080472AC: .4byte sub_8046C78
- thumb_func_end sub_8047254
-
- thumb_func_start sub_80472B0
-sub_80472B0: @ 80472B0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80472B0
-
- thumb_func_start sub_80472D8
-sub_80472D8: @ 80472D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80472D8
-
- thumb_func_start CreatePokeballSprite
-CreatePokeballSprite: @ 80472F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- mov r9, r2
- mov r10, r3
- ldr r6, [sp, 0x24]
- ldr r4, [sp, 0x28]
- ldr r0, [sp, 0x2C]
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080473BC @ =gUnknown_0820A92C
- bl LoadCompressedObjectPic
- ldr r0, _080473C0 @ =gUnknown_0820A98C
- bl LoadCompressedObjectPalette
- ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4
- mov r1, r9
- mov r2, r10
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080473C8 @ =gSprites
- mov r8, r3
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r1, r4, r3
- strh r5, [r1, 0x2E]
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- add r2, r8
- ldrh r0, [r2, 0x20]
- strh r0, [r1, 0x38]
- ldrh r0, [r2, 0x22]
- strh r0, [r1, 0x3A]
- mov r0, r9
- strh r0, [r2, 0x20]
- mov r3, r10
- strh r3, [r2, 0x22]
- strh r7, [r1, 0x30]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x32]
- mov r3, sp
- ldrh r3, [r3, 0x30]
- strh r3, [r1, 0x34]
- ldr r3, [sp, 0x30]
- lsrs r0, r3, 16
- strh r0, [r1, 0x36]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r6
- strb r0, [r1, 0x5]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _080473CC @ =sub_80473D0
- str r0, [r4]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- 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
-_080473BC: .4byte gUnknown_0820A92C
-_080473C0: .4byte gUnknown_0820A98C
-_080473C4: .4byte gSpriteTemplate_820AAB4
-_080473C8: .4byte gSprites
-_080473CC: .4byte sub_80473D0
- thumb_func_end CreatePokeballSprite
-
- thumb_func_start sub_80473D0
-sub_80473D0: @ 80473D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r1, [r6, 0x30]
- movs r2, 0x30
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0804747C
- ldrh r0, [r6, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r4, [r6, 0x34]
- ldrh r0, [r6, 0x36]
- lsls r0, 16
- orrs r4, r0
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804740A
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0804740C
-_0804740A:
- movs r5, 0
-_0804740C:
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r5, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r4, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x30]
- ldr r0, _08047474 @ =sub_804748C
- str r0, [r6, 0x1C]
- ldr r0, _08047478 @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- 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 StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r4, 0x30]
- strh r5, [r6, 0x3C]
- b _08047480
- .align 2, 0
-_08047474: .4byte sub_804748C
-_08047478: .4byte gSprites
-_0804747C:
- subs r0, r1, 0x1
- strh r0, [r6, 0x30]
-_08047480:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80473D0
-
- thumb_func_start sub_804748C
-sub_804748C: @ 804748C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r0, 0
- mov r12, r0
- movs r6, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080474B6
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080474B6:
- ldr r0, _08047544 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r5, r1, r0
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080474D8
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r1, 0x1
- mov r12, r1
-_080474D8:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r7, 0x20
- ldrsh r1, [r4, r7]
- subs r0, r1
- movs r1, 0x3C
- ldrsh r2, [r4, r1]
- muls r0, r2
- cmp r0, 0
- bge _080474EE
- adds r0, 0x7F
-_080474EE:
- asrs r0, 7
- ldrh r7, [r4, 0x20]
- adds r0, r7
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r7, 0x22
- ldrsh r1, [r4, r7]
- subs r0, r1
- muls r0, r2
- cmp r0, 0
- bge _0804750A
- adds r0, 0x7F
-_0804750A:
- asrs r0, 7
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r3, [r5, 0x20]
- strh r0, [r5, 0x22]
- ldrh r2, [r4, 0x3C]
- movs r7, 0x3C
- ldrsh r0, [r4, r7]
- cmp r0, 0x7F
- bgt _0804754C
- ldr r1, _08047548 @ =gSineTable
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _08047530
- adds r0, 0x7
-_08047530:
- asrs r0, 3
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- adds r1, r2, 0x4
- strh r1, [r4, 0x3C]
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- b _0804755A
- .align 2, 0
-_08047544: .4byte gSprites
-_08047548: .4byte gSineTable
-_0804754C:
- ldrh r0, [r4, 0x38]
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x3A]
- strh r0, [r5, 0x22]
- strh r6, [r5, 0x24]
- strh r6, [r5, 0x26]
- movs r6, 0x1
-_0804755A:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047578
- mov r2, r12
- cmp r2, 0
- beq _08047578
- cmp r6, 0
- beq _08047578
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
-_08047578:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804748C
-
- thumb_func_start sub_8047580
-sub_8047580: @ 8047580
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- adds r6, r2, 0
- mov r8, r3
- ldr r5, [sp, 0x20]
- ldr r4, [sp, 0x24]
- ldr r0, [sp, 0x28]
- mov r9, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r6, 24
- lsrs r6, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _08047624 @ =gUnknown_0820A92C
- bl LoadCompressedObjectPic
- ldr r0, _08047628 @ =gUnknown_0820A98C
- bl LoadCompressedObjectPalette
- ldr r0, _0804762C @ =gSpriteTemplate_820AAB4
- adds r1, r6, 0
- mov r2, r8
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08047630 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r6
- mov r1, r10
- strh r1, [r2, 0x2E]
- mov r4, r9
- strh r4, [r2, 0x30]
- strh r7, [r2, 0x32]
- mov r1, sp
- ldrh r1, [r1, 0x2C]
- strh r1, [r2, 0x34]
- ldr r4, [sp, 0x2C]
- lsrs r1, r4, 16
- strh r1, [r2, 0x36]
- movs r1, 0x3
- ands r5, r1
- lsls r5, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r5
- strb r1, [r2, 0x5]
- adds r6, 0x1C
- adds r3, r6
- ldr r1, _08047634 @ =sub_8047638
- str r1, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08047624: .4byte gUnknown_0820A92C
-_08047628: .4byte gUnknown_0820A98C
-_0804762C: .4byte gSpriteTemplate_820AAB4
-_08047630: .4byte gSprites
-_08047634: .4byte sub_8047638
- thumb_func_end sub_8047580
-
- thumb_func_start sub_8047638
-sub_8047638: @ 8047638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080476D0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r5, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- orrs r5, r0
- adds r0, r4, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _08047672
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _08047674
-_08047672:
- movs r6, 0
-_08047674:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r4, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r6, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r5, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x30]
- ldr r0, _080476C8 @ =sub_80476E0
- str r0, [r4, 0x1C]
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r0, _080476CC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- strh r5, [r4, 0x30]
- b _080476D4
- .align 2, 0
-_080476C8: .4byte sub_80476E0
-_080476CC: .4byte gSprites
-_080476D0:
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
-_080476D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8047638
-
- thumb_func_start sub_80476E0
-sub_80476E0: @ 80476E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080476F8
- movs r0, 0x3C
- bl PlaySE
-_080476F8:
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08047734 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0804773C
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r5, 0x38]
- ldr r0, _08047738 @ =sub_8047754
- str r0, [r5, 0x1C]
- b _0804774C
- .align 2, 0
-_08047734: .4byte gSprites
-_08047738: .4byte sub_8047754
-_0804773C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x60
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- asrs r0, 8
- strh r0, [r4, 0x26]
-_0804774C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80476E0
-
- thumb_func_start sub_8047754
-sub_8047754: @ 8047754
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047768
- ldr r0, _0804776C @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08047768:
- pop {r0}
- bx r0
- .align 2, 0
-_0804776C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047754
-
- thumb_func_start obj_delete_and_free_associated_resources_
-obj_delete_and_free_associated_resources_: @ 8047770
- push {lr}
- bl DestroySpriteAndFreeResources
- pop {r0}
- bx r0
- thumb_func_end obj_delete_and_free_associated_resources_
-
- thumb_func_start sub_804777C
-sub_804777C: @ 804777C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _080477FC @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _08047800 @ =gSprites
- adds r4, r0, r6
- movs r1, 0
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x73
- strh r0, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldr r0, _08047804 @ =sub_8047830
- str r0, [r4, 0x1C]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080477CA
- ldrh r0, [r4, 0x2E]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080477CA:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r6
- ldr r1, [r1]
- bl _call_via_r1
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080477F4
- ldr r0, _08047808 @ =sub_804780C
- str r0, [r4, 0x1C]
-_080477F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080477FC: .4byte gUnknown_03004340
-_08047800: .4byte gSprites
-_08047804: .4byte sub_8047830
-_08047808: .4byte sub_804780C
- thumb_func_end sub_804777C
-
- thumb_func_start sub_804780C
-sub_804780C: @ 804780C
- 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, 0x14
- bne _08047826
- movs r0, 0
- strh r0, [r1, 0x30]
- ldr r0, _0804782C @ =sub_8047830
- str r0, [r1, 0x1C]
-_08047826:
- pop {r0}
- bx r0
- .align 2, 0
-_0804782C: .4byte sub_8047830
- thumb_func_end sub_804780C
-
- thumb_func_start sub_8047830
-sub_8047830: @ 8047830
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- ldrh r1, [r2, 0x30]
- subs r0, r1
- strh r0, [r2, 0x26]
- ldr r0, [r2, 0x24]
- cmp r0, 0
- bne _0804784E
- ldr r0, _08047854 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0804784E:
- pop {r0}
- bx r0
- .align 2, 0
-_08047854: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047830
-
- thumb_func_start sub_8047858
-sub_8047858: @ 8047858
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08047890 @ =oamc_804BEB4
- adds r0, r5, 0
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08047894 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r2
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- ldr r0, _08047898 @ =gUnknown_03004340
- adds r4, r0
- ldrb r0, [r4]
- strh r0, [r3, 0x30]
- adds r2, 0x1C
- adds r1, r2
- str r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08047890: .4byte oamc_804BEB4
-_08047894: .4byte gSprites
-_08047898: .4byte gUnknown_03004340
- thumb_func_end sub_8047858
-
- thumb_func_start oamc_804BEB4
-oamc_804BEB4: @ 804789C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080478D8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r0, [r3, 0x2E]
- movs r2, 0
- strh r0, [r1, 0x26]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080478D4
- strh r2, [r1, 0x24]
- strh r2, [r1, 0x26]
- adds r0, r3, 0
- bl DestroySprite
-_080478D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080478D8: .4byte gSprites
- thumb_func_end oamc_804BEB4
-
- thumb_func_start sub_80478DC
-sub_80478DC: @ 80478DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08047938 @ =gUnknown_0820A92C
- lsls r6, r4, 3
- adds r5, r6, r0
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _0804793C @ =0xffff0000
- cmp r0, r1
- bne _08047904
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08047940 @ =gUnknown_0820A98C
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_08047904:
- cmp r4, 0x6
- beq _08047930
- cmp r4, 0x6
- blt _08047914
- cmp r4, 0xB
- bgt _08047914
- cmp r4, 0xA
- bge _08047930
-_08047914:
- ldr r1, _08047938 @ =gUnknown_0820A92C
- lsls r0, r4, 3
- adds r0, r1
- ldrh r0, [r0, 0x6]
- bl GetSpriteTileStartByTag
- adds r1, r0, 0
- lsls r1, 16
- ldr r0, _08047944 @ =gUnknown_08D030D0
- lsrs r1, 11
- ldr r2, _08047948 @ =0x06010100
- adds r1, r2
- bl LZDecompressVram
-_08047930:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047938: .4byte gUnknown_0820A92C
-_0804793C: .4byte 0xffff0000
-_08047940: .4byte gUnknown_0820A98C
-_08047944: .4byte gUnknown_08D030D0
-_08047948: .4byte 0x06010100
- thumb_func_end sub_80478DC
-
- thumb_func_start sub_804794C
-sub_804794C: @ 804794C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _08047970 @ =gUnknown_0820A92C
- lsrs r4, 21
- adds r0, r4, r0
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _08047974 @ =gUnknown_0820A98C
- adds r4, r0
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08047970: .4byte gUnknown_0820A92C
-_08047974: .4byte gUnknown_0820A98C
- thumb_func_end sub_804794C
-
- thumb_func_start sub_8047978
-sub_8047978: @ 8047978
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080479A4
- ldr r1, _0804799C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479A0 @ =gEnemyParty
- b _080479B2
- .align 2, 0
-_0804799C: .4byte gUnknown_02024A6A
-_080479A0: .4byte gEnemyParty
-_080479A4:
- ldr r1, _080479C4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479C8 @ =gPlayerParty
-_080479B2:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080479C4: .4byte gUnknown_02024A6A
-_080479C8: .4byte gPlayerParty
- thumb_func_end sub_8047978
+ thumb_func_end GetHPBarLevel
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s
deleted file mode 100644
index 8f95428c3..000000000
--- a/asm/rom_806D7F8.s
+++ /dev/null
@@ -1,6917 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_806D7F8
-sub_806D7F8: @ 806D7F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r5, r1, 16
- asrs r1, 16
- lsrs r4, r2, 16
- asrs r2, 16
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r5, r4
- beq _0806D830
- movs r2, 0x1
- cmp r0, 0x3
- beq _0806D830
- movs r2, 0x2
- cmp r0, 0x2
- beq _0806D830
- movs r2, 0x4
- cmp r0, 0x1
- bne _0806D830
- movs r2, 0x3
-_0806D830:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, _0806D848 @ =gSprites
- adds r0, r1
- adds r1, r2, 0
- bl sub_809D824
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D848: .4byte gSprites
- thumb_func_end sub_806D7F8
-
- thumb_func_start sub_806D84C
-sub_806D84C: @ 806D84C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D7F8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806D84C
-
- thumb_func_start sub_806D880
-sub_806D880: @ 806D880
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806D904 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- mov r9, r0
- ldrb r1, [r1, 0x1]
- mov r10, r1
- mov r0, r8
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl GetMonData
- ldr r1, _0806D908 @ =sub_809D62C
- movs r2, 0x5
- str r2, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r9
- mov r3, r10
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- adds r0, r4, 0
- mov r1, r8
- bl sub_806D84C
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D904: .4byte gUnknown_08376678
-_0806D908: .4byte sub_809D62C
- thumb_func_end sub_806D880
-
- thumb_func_start sub_806D90C
-sub_806D90C: @ 806D90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806D95A
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806D946
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x2
- adds r3, r4, 0
- bl sub_806D880
- b _0806D95A
-_0806D946:
- bl battle_type_is_double
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r7, 0
- adds r3, r4, 0
- bl sub_806D880
-_0806D95A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806D90C
-
- thumb_func_start unref_sub_806D964
-unref_sub_806D964: @ 806D964
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _0806D986
-_0806D96E:
- movs r0, 0x64
- adds r2, r4, 0
- muls r2, r0
- ldr r0, _0806D994 @ =gPlayerParty
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D90C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0806D986:
- ldr r0, _0806D998 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0806D96E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D994: .4byte gPlayerParty
-_0806D998: .4byte gPlayerPartyCount
- thumb_func_end unref_sub_806D964
-
- thumb_func_start sub_806D99C
-sub_806D99C: @ 806D99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DA04 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, _0806DA08 @ =sub_809D62C
- movs r4, 0x5
- str r4, [sp]
- mov r7, r8
- ldr r4, [r7, 0x18]
- str r4, [sp, 0x4]
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- ldrh r1, [r7, 0x10]
- ldrh r2, [r7, 0x12]
- adds r0, r4, 0
- bl sub_806D7F8
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA04: .4byte gUnknown_08376678
-_0806DA08: .4byte sub_809D62C
- thumb_func_end sub_806D99C
-
- thumb_func_start sub_806DA0C
-sub_806DA0C: @ 806DA0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806DA32
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806DA30
- ldr r0, _0806DA2C @ =0x0000fffd
- strh r0, [r4, 0x26]
- b _0806DA32
- .align 2, 0
-_0806DA2C: .4byte 0x0000fffd
-_0806DA30:
- strh r1, [r4, 0x26]
-_0806DA32:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DA0C
-
- thumb_func_start sub_806DA38
-sub_806DA38: @ 806DA38
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_806DA38
-
- thumb_func_start sub_806DA44
-sub_806DA44: @ 806DA44
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r1, 0x5
- bhi _0806DA8E
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806DA7C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r2, r1, 2
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x2E]
- cmp r4, 0
- bne _0806DA84
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA80 @ =sub_806DA38
- b _0806DA8C
- .align 2, 0
-_0806DA7C: .4byte gSprites
-_0806DA80: .4byte sub_806DA38
-_0806DA84:
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA94 @ =sub_806DA0C
-_0806DA8C:
- str r1, [r0]
-_0806DA8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA94: .4byte sub_806DA0C
- thumb_func_end sub_806DA44
-
- thumb_func_start sub_806DA98
-sub_806DA98: @ 806DA98
- push {lr}
- ldr r0, _0806DAAC @ =gUnknown_083765DC
- bl LoadSpriteSheet
- ldr r0, _0806DAB0 @ =gUnknown_083765E4
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0806DAAC: .4byte gUnknown_083765DC
-_0806DAB0: .4byte gUnknown_083765E4
- thumb_func_end sub_806DA98
-
- thumb_func_start sub_806DAB4
-sub_806DAB4: @ 806DAB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806DAE4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0806DAE8
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DB06
- .align 2, 0
-_0806DAE4: .4byte gSprites
-_0806DAE8:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
-_0806DB06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DAB4
-
- thumb_func_start sub_806DB0C
-sub_806DB0C: @ 806DB0C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0806DB84 @ =gSprites
- mov r8, r0
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xFA
- movs r2, 0xAA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r0, r8
- adds r5, r4, r0
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _0806DB8C @ =sub_806DAB4
- str r0, [r4]
- strh r6, [r5, 0x3C]
- adds r0, r5, 0
- mov r1, r9
- bl StartSpriteAnim
- ldr r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DB84: .4byte gSprites
-_0806DB88: .4byte gSpriteTemplate_837660C
-_0806DB8C: .4byte sub_806DAB4
- thumb_func_end sub_806DB0C
-
- thumb_func_start sub_806DB90
-sub_806DB90: @ 806DB90
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- beq _0806DBA4
- cmp r2, 0x1
- beq _0806DBEC
- b _0806DC28
-_0806DBA4:
- movs r5, 0
- ldrb r0, [r6]
- cmp r5, r0
- bcs _0806DC28
-_0806DBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DBE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DBD8
- adds r0, r7, r5
- ldrb r4, [r0]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DBD8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r6]
- cmp r5, r0
- bcc _0806DBAC
- b _0806DC28
- .align 2, 0
-_0806DBE8: .4byte gPlayerParty
-_0806DBEC:
- movs r5, 0
- b _0806DC22
-_0806DBF0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DC30 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DC1C
- adds r0, r5, r7
- ldrb r4, [r0, 0x6]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DC1C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0806DC22:
- ldrb r0, [r6, 0x1]
- cmp r5, r0
- bcc _0806DBF0
-_0806DC28:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DC30: .4byte gEnemyParty
- thumb_func_end sub_806DB90
-
- thumb_func_start sub_806DC34
-sub_806DC34: @ 806DC34
- 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 r7, 0
- ldr r0, _0806DCC8 @ =gSprites
- mov r9, r0
- movs r1, 0x1C
- add r1, r9
- mov r10, r1
-_0806DC50:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0806DCCC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806DCB0
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DDA0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r1, r9
- adds r6, r4, r1
- movs r1, 0x4
- strh r1, [r6, 0x24]
- movs r1, 0xA
- strh r1, [r6, 0x26]
- strh r5, [r6, 0x3C]
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- add r1, r9
- strh r0, [r1, 0x3C]
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DF60
- add r4, r10
- ldr r1, [r4]
- adds r0, r6, 0
- bl _call_via_r1
-_0806DCB0:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _0806DC50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DCC8: .4byte gSprites
-_0806DCCC: .4byte gPlayerParty
-_0806DCD0: .4byte gSpriteTemplate_837660C
- thumb_func_end sub_806DC34
-
- thumb_func_start sub_806DCD4
-sub_806DCD4: @ 806DCD4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r7, r2, 16
- bl sub_806DDA0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806DD30 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- strh r4, [r5, 0x3C]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r6, [r0, 0x3C]
- cmp r7, 0
- bne _0806DD34
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DD5C
- .align 2, 0
-_0806DD2C: .4byte gSpriteTemplate_837660C
-_0806DD30: .4byte gSprites
-_0806DD34:
- adds r0, r7, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DD46
- adds r0, r5, 0
- movs r1, 0x1
- b _0806DD4A
-_0806DD46:
- adds r0, r5, 0
- movs r1, 0
-_0806DD4A:
- bl StartSpriteAnim
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0806DD5C:
- ldr r2, _0806DD78 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DD78: .4byte gSprites
- thumb_func_end sub_806DCD4
-
- thumb_func_start sub_806DD7C
-sub_806DD7C: @ 806DD7C
- ldrh r2, [r0, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DD9C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0806DD9C: .4byte gSprites
- thumb_func_end sub_806DD7C
-
- thumb_func_start sub_806DDA0
-sub_806DDA0: @ 806DDA0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x5
- bhi _0806DE38
- lsls r0, 2
- ldr r1, _0806DDB8 @ =_0806DDBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DDB8: .4byte _0806DDBC
- .align 2, 0
-_0806DDBC:
- .4byte _0806DE38
- .4byte _0806DDD4
- .4byte _0806DDE8
- .4byte _0806DDFC
- .4byte _0806DE10
- .4byte _0806DE24
-_0806DDD4:
- ldr r0, _0806DDE4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _0806DE46
- .align 2, 0
-_0806DDE4: .4byte gTasks
-_0806DDE8:
- ldr r0, _0806DDF8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- b _0806DE44
- .align 2, 0
-_0806DDF8: .4byte gTasks
-_0806DDFC:
- ldr r0, _0806DE0C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0806DE46
- .align 2, 0
-_0806DE0C: .4byte gTasks
-_0806DE10:
- ldr r0, _0806DE20 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- b _0806DE44
- .align 2, 0
-_0806DE20: .4byte gTasks
-_0806DE24:
- ldr r0, _0806DE34 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xC]
- b _0806DE46
- .align 2, 0
-_0806DE34: .4byte gTasks
-_0806DE38:
- ldr r0, _0806DE4C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
-_0806DE44:
- lsrs r0, 8
-_0806DE46:
- pop {r1}
- bx r1
- .align 2, 0
-_0806DE4C: .4byte gTasks
- thumb_func_end sub_806DDA0
-
- thumb_func_start sub_806DE50
-sub_806DE50: @ 806DE50
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r0, 0x5
- bhi _0806DF24
- lsls r0, 2
- ldr r1, _0806DE6C @ =_0806DE70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DE6C: .4byte _0806DE70
- .align 2, 0
-_0806DE70:
- .4byte _0806DE88
- .4byte _0806DEA0
- .4byte _0806DEC0
- .4byte _0806DED8
- .4byte _0806DEF8
- .4byte _0806DF10
-_0806DE88:
- ldr r1, _0806DE9C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DE9C: .4byte gTasks
-_0806DEA0:
- ldr r0, _0806DEB8 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- ldr r0, _0806DEBC @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DEB8: .4byte gTasks
-_0806DEBC: .4byte 0xffffff00
-_0806DEC0:
- ldr r1, _0806DED4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DED4: .4byte gTasks
-_0806DED8:
- ldr r0, _0806DEF0 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- ldr r0, _0806DEF4 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DEF0: .4byte gTasks
-_0806DEF4: .4byte 0xffffff00
-_0806DEF8:
- ldr r1, _0806DF0C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xC]
- b _0806DF24
- .align 2, 0
-_0806DF0C: .4byte gTasks
-_0806DF10:
- ldr r0, _0806DF2C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- ldr r0, _0806DF30 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xC]
-_0806DF24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DF2C: .4byte gTasks
-_0806DF30: .4byte 0xffffff00
- thumb_func_end sub_806DE50
-
- thumb_func_start sub_806DF34
-sub_806DF34: @ 806DF34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806DF5C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806DF5C: .4byte gSprites
- thumb_func_end sub_806DF34
-
- thumb_func_start sub_806DF60
-sub_806DF60: @ 806DF60
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_806DF34
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0806DFA4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- bne _0806DFAC
- ldr r1, _0806DFA8 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DFF6
- .align 2, 0
-_0806DFA4: .4byte gPlayerParty
-_0806DFA8: .4byte gSprites
-_0806DFAC:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DFD8
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _0806DFD4 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x1
- b _0806DFE6
- .align 2, 0
-_0806DFD4: .4byte gSprites
-_0806DFD8:
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r0, _0806DFFC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
-_0806DFE6:
- bl StartSpriteAnim
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
-_0806DFF6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DFFC: .4byte gSprites
- thumb_func_end sub_806DF60
-
- thumb_func_start box_print
-box_print: @ 806E000
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E040 @ =gTileBuffer
- ldr r2, _0806E044 @ =0x01000100
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E04C @ =0x06014000
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x80
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E040: .4byte gTileBuffer
-_0806E044: .4byte 0x01000100
-_0806E048: .4byte gWindowConfig_81E6CAC
-_0806E04C: .4byte 0x06014000
- thumb_func_end box_print
-
- thumb_func_start sub_806E050
-sub_806E050: @ 806E050
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r1, sp
- bl GetMonNickname
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl box_print
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E050
-
- thumb_func_start sub_806E07C
-sub_806E07C: @ 806E07C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E0BC
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E0AA
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E050
- b _0806E0BC
-_0806E0AA:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E050
-_0806E0BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E07C
-
- thumb_func_start sub_806E0C4
-sub_806E0C4: @ 806E0C4
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E0E8 @ =gPlayerParty
-_0806E0CC:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E07C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E0CC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E0E8: .4byte gPlayerParty
- thumb_func_end sub_806E0C4
-
- thumb_func_start GetMonNickname
-GetMonNickname: @ 806E0EC
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonNickname
-
- thumb_func_start sub_806E104
-sub_806E104: @ 806E104
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0806E15C @ =gUnknown_08376738
- lsrs r0, 22
- lsls r3, r1, 1
- adds r3, r1
- lsls r3, 3
- adds r0, r3
- adds r0, r4
- ldrb r1, [r0]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E160 @ =0x0600f000
- adds r4, r1, r0
- lsls r2, 26
- lsrs r2, 24
- movs r3, 0
- movs r0, 0xC6
- lsls r0, 1
- adds r2, r0
- ldr r0, _0806E164 @ =0xffffb000
- adds r5, r0, 0
-_0806E142:
- lsls r0, r3, 1
- adds r0, r4
- adds r1, r2, r3
- orrs r1, r5
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E142
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E15C: .4byte gUnknown_08376738
-_0806E160: .4byte 0x0600f000
-_0806E164: .4byte 0xffffb000
- thumb_func_end sub_806E104
-
- thumb_func_start sub_806E168
-sub_806E168: @ 806E168
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E17E
- movs r3, 0x2
- b _0806E186
-_0806E17E:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r3, r0, 24
-_0806E186:
- ldr r1, _0806E1C8 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- ldrb r1, [r2]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E1CC @ =0x0600f000
- adds r1, r0
- movs r3, 0
- movs r2, 0
-_0806E1B0:
- lsls r0, r3, 1
- adds r0, r1
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E1B0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E1C8: .4byte gUnknown_08376738
-_0806E1CC: .4byte 0x0600f000
- thumb_func_end sub_806E168
-
- thumb_func_start sub_806E1D0
-sub_806E1D0: @ 806E1D0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 19
- adds r1, r2
- lsls r1, 1
- ldr r2, _0806E1F0 @ =0x0600f000
- adds r1, r2
- movs r2, 0x86
- lsls r2, 1
- adds r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0806E1F0: .4byte 0x0600f000
- thumb_func_end sub_806E1D0
-
- thumb_func_start sub_806E1F4
-sub_806E1F4: @ 806E1F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r3, _0806E278 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x40
- bl sub_806E1D0
- ldr r6, _0806E27C @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x8
- strb r0, [r6, 0x2]
- adds r0, r6, 0x3
- adds r1, r5, 0
- bl ConvertIntToDecimalString
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E280 @ =gUnknown_02039460
- ldr r2, _0806E284 @ =0x01000020
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E28C @ =0xffffff00
- adds r1, r5, r2
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E290 @ =0x06014200
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x20
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E278: .4byte gUnknown_08376738
-_0806E27C: .4byte gStringVar1
-_0806E280: .4byte gUnknown_02039460
-_0806E284: .4byte 0x01000020
-_0806E288: .4byte gWindowConfig_81E6CAC
-_0806E28C: .4byte 0xffffff00
-_0806E290: .4byte 0x06014200
- thumb_func_end sub_806E1F4
-
- thumb_func_start sub_806E294
-sub_806E294: @ 806E294
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x38
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E1F4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E294
-
- thumb_func_start sub_806E2C0
-sub_806E2C0: @ 806E2C0
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E32E
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E32E
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E2FA
- movs r6, 0x2
- b _0806E302
-_0806E2FA:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r6, r0, 24
-_0806E302:
- cmp r4, 0
- beq _0806E31A
- cmp r4, 0x6
- beq _0806E31A
- subs r2, r4, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E104
- b _0806E324
-_0806E31A:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E294
-_0806E324:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E3C0
-_0806E32E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E2C0
-
- thumb_func_start sub_806E334
-sub_806E334: @ 806E334
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E358 @ =gPlayerParty
-_0806E33C:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E2C0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E33C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E358: .4byte gPlayerParty
- thumb_func_end sub_806E334
-
- thumb_func_start sub_806E35C
-sub_806E35C: @ 806E35C
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r1, r4, 0
- bl sub_8040D8C
- cmp r0, 0
- bne _0806E3BA
- ldr r2, _0806E3A4 @ =gUnknown_08376738
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r7, 0
- beq _0806E3A8
- cmp r7, 0xFE
- beq _0806E3B2
- b _0806E3BA
- .align 2, 0
-_0806E3A4: .4byte gUnknown_08376738
-_0806E3A8:
- movs r0, 0x42
- adds r1, r3, 0
- bl sub_806E1D0
- b _0806E3BA
-_0806E3B2:
- movs r0, 0x44
- adds r1, r3, 0
- bl sub_806E1D0
-_0806E3BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E35C
-
- thumb_func_start sub_806E3C0
-sub_806E3C0: @ 806E3C0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0806E41C @ =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- mov r1, r9
- bl GetMonNickname
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl GetMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r6, 0
- mov r3, r8
- bl sub_806E35C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E41C: .4byte gStringVar1
- thumb_func_end sub_806E3C0
-
- thumb_func_start sub_806E420
-sub_806E420: @ 806E420
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r1, r2, 0
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, _0806E48C @ =gStringVar1
- adds r0, r2, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r5, 0
- movs r2, 0x23
- movs r3, 0x1
- bl sub_8072C14
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E490 @ =gUnknown_02039460
- ldr r2, _0806E494 @ =0x01000040
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E49C @ =0xffffff00
- adds r1, r5, r2
- ldr r2, _0806E48C @ =gStringVar1
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E4A0 @ =0x06014300
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x40
- bl CpuFastSet
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E48C: .4byte gStringVar1
-_0806E490: .4byte gUnknown_02039460
-_0806E494: .4byte 0x01000040
-_0806E498: .4byte gWindowConfig_81E6CAC
-_0806E49C: .4byte 0xffffff00
-_0806E4A0: .4byte 0x06014300
- thumb_func_end sub_806E420
-
- thumb_func_start sub_806E4A4
-sub_806E4A4: @ 806E4A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E420
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4A4
-
- thumb_func_start sub_806E4E8
-sub_806E4E8: @ 806E4E8
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E534
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E534
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E522
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E4A4
- b _0806E534
-_0806E522:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E4A4
-_0806E534:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4E8
-
- thumb_func_start sub_806E53C
-sub_806E53C: @ 806E53C
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E560 @ =gPlayerParty
-_0806E544:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E4E8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E544
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E560: .4byte gPlayerParty
- thumb_func_end sub_806E53C
-
- thumb_func_start unref_sub_806E564
-unref_sub_806E564: @ 806E564
- bx lr
- thumb_func_end unref_sub_806E564
-
- thumb_func_start unref_sub_806E568
-unref_sub_806E568: @ 806E568
- bx lr
- thumb_func_end unref_sub_806E568
-
- thumb_func_start nullsub_12
-nullsub_12: @ 806E56C
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start nullsub_13
-nullsub_13: @ 806E570
- bx lr
- thumb_func_end nullsub_13
-
- thumb_func_start sub_806E574
-sub_806E574: @ 806E574
- push {r4-r6,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0806E624 @ =0xffff8000
- str r0, [sp, 0x14]
- str r3, [sp]
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- cmp r3, 0x2
- bls _0806E5BE
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5BE:
- cmp r3, 0x2
- bne _0806E5D2
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x5
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5D2:
- cmp r4, 0x1
- bhi _0806E5E6
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x6
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5E6:
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp, 0x10]
- ldr r2, _0806E628 @ =gUnknown_08376858
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldr r4, [r1]
- add r1, sp, 0x14
- mov r0, sp
- adds r2, r4, 0
- movs r3, 0
- bl sub_80460C8
- subs r4, 0x4
- ldr r1, _0806E62C @ =0x00003109
- adds r0, r1, 0
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x10]
- add sp, 0x18
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E624: .4byte 0xffff8000
-_0806E628: .4byte gUnknown_08376858
-_0806E62C: .4byte 0x00003109
- thumb_func_end sub_806E574
-
- thumb_func_start sub_806E630
-sub_806E630: @ 806E630
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E574
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E630
-
- thumb_func_start sub_806E674
-sub_806E674: @ 806E674
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E6C0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E6C0
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E6AE
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E630
- b _0806E6C0
-_0806E6AE:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E630
-_0806E6C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E674
-
- thumb_func_start sub_806E6C8
-sub_806E6C8: @ 806E6C8
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E6EC @ =gPlayerParty
-_0806E6D0:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E674
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E6D0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E6EC: .4byte gPlayerParty
- thumb_func_end sub_806E6C8
-
- thumb_func_start sub_806E6F0
-sub_806E6F0: @ 806E6F0
- push {r4,r5,lr}
- sub sp, 0x64
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E6F0
-
- thumb_func_start sub_806E720
-sub_806E720: @ 806E720
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 21
- adds r0, r3
- ldrb r4, [r0]
- lsls r4, 25
- movs r3, 0x80
- lsls r3, 18
- adds r4, r3
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1E
- subs r3, r0
- strb r3, [r1]
- movs r0, 0x14
- subs r0, r4
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806E720
-
- thumb_func_start sub_806E750
-sub_806E750: @ 806E750
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- mov r9, r2
- adds r6, r3, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x9
- add r0, sp
- mov r8, r0
- adds r0, r5, 0
- add r1, sp, 0x8
- mov r2, r8
- adds r3, r4, 0
- bl sub_806E720
- add r0, sp, 0x8
- ldrb r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r5, 3
- adds r5, r4
- ldrb r2, [r5, 0x1]
- ldrb r3, [r5]
- mov r4, r9
- str r4, [sp]
- ldr r4, [r5, 0x4]
- str r4, [sp, 0x4]
- bl sub_8089C50
- add r0, sp, 0x8
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- ldrb r2, [r0]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r5]
- str r6, [sp]
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E750
-
- thumb_func_start sub_806E7D0
-sub_806E7D0: @ 806E7D0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- adds r5, 0x1
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_806E720
- mov r0, sp
- ldrb r0, [r0]
- ldrb r1, [r5]
- lsls r4, 3
- adds r4, r6
- ldrb r2, [r4, 0x1]
- adds r2, r0, r2
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, r1, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E7D0
-
- thumb_func_start sub_806E81C
-sub_806E81C: @ 806E81C
- lsls r0, 24
- lsls r3, 24
- lsrs r3, 24
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0, 0x4]
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0, 0x4]
- bx lr
- thumb_func_end sub_806E81C
-
- thumb_func_start sub_806E834
-sub_806E834: @ 806E834
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _0806E878 @ =gUnknown_0202E8F6
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r0, _0806E87C @ =sub_806E884
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806E880 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E878: .4byte gUnknown_0202E8F6
-_0806E87C: .4byte sub_806E884
-_0806E880: .4byte gTasks
- thumb_func_end sub_806E834
-
- thumb_func_start sub_806E884
-sub_806E884: @ 806E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0806E8C0
- ldr r1, _0806E8C8 @ =gUnknown_0202E8F6
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0806E8CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806E8BA
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_0806E8BA:
- adds r0, r5, 0
- bl DestroyTask
-_0806E8C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8C8: .4byte gUnknown_0202E8F6
-_0806E8CC: .4byte gTasks
- thumb_func_end sub_806E884
-
- thumb_func_start sub_806E8D0
-sub_806E8D0: @ 806E8D0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r4, _0806E8FC @ =0x0201c000
- str r2, [r4, 0x10]
- strb r0, [r4, 0x4]
- bl sub_806CA38
- strb r0, [r4, 0x5]
- strh r5, [r4, 0x6]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806E900 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8FC: .4byte 0x0201c000
-_0806E900: .4byte gPlayerParty
- thumb_func_end sub_806E8D0
-
- thumb_func_start sub_806E904
-sub_806E904: @ 806E904
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E93C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2BC4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0806E930
- movs r0, 0x1
- b _0806E958
-_0806E930:
- ldr r1, _0806E938 @ =gUnknown_0202E8F4
- movs r0, 0x2
- b _0806E940
- .align 2, 0
-_0806E938: .4byte gUnknown_0202E8F4
-_0806E93C:
- ldr r1, _0806E960 @ =gUnknown_0202E8F4
- movs r0, 0x1
-_0806E940:
- strb r0, [r1]
- mov r0, sp
- strb r4, [r0]
- mov r1, sp
- lsrs r0, r4, 8
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- movs r0, 0
-_0806E958:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E960: .4byte gUnknown_0202E8F4
- thumb_func_end sub_806E904
-
- thumb_func_start sub_806E964
-sub_806E964: @ 806E964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- mov r9, r5
- ldr r2, _0806E9D4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldr r1, _0806E9D8 @ =TaskDummy
- str r1, [r6]
- adds r1, r5, 0
- mov r2, r8
- bl sub_806E8D0
- ldr r4, _0806E9DC @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r2, r0, 16
- adds r7, r2, 0
- ldr r1, _0806E9E0 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0806E9E4 @ =gUnknown_0202E8F8
- mov r10, r0
- movs r0, 0
- mov r1, r10
- strh r0, [r1]
- cmp r2, 0
- beq _0806EA44
- adds r0, r2, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E9F0
- ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EA78
- .align 2, 0
-_0806E9D4: .4byte gTasks
-_0806E9D8: .4byte TaskDummy
-_0806E9DC: .4byte 0x0201c000
-_0806E9E0: .4byte gUnknown_0202E8F4
-_0806E9E4: .4byte gUnknown_0202E8F8
-_0806E9E8: .4byte gOtherText_MailMustBeRemoved
-_0806E9EC: .4byte party_menu_link_mon_held_item_object
-_0806E9F0:
- ldr r0, [r4]
- ldr r1, _0806EA30 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EA34 @ =gStringVar2
- adds r0, r7, 0
- bl CopyItemName
- ldr r4, _0806EA38 @ =gStringVar4
- ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EA40 @ =sub_806EBB8
- movs r1, 0x5
- bl CreateTask
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EA78
- mov r0, r10
- strh r7, [r0]
- b _0806EA78
- .align 2, 0
-_0806EA30: .4byte gStringVar1
-_0806EA34: .4byte gStringVar2
-_0806EA38: .4byte gStringVar4
-_0806EA3C: .4byte gOtherText_AlreadyHolding
-_0806EA40: .4byte sub_806EBB8
-_0806EA44:
- ldr r0, [r4]
- adds r1, r5, 0
- bl sub_806E904
- adds r0, r5, 0
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EA66
- mov r1, r8
- str r1, [r6]
- b _0806EA78
-_0806EA66:
- ldrb r0, [r4, 0x5]
- mov r1, r9
- movs r2, 0x1
- bl sub_806EBF0
- ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EA78:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EA88: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806E964
-
- thumb_func_start party_menu_link_mon_held_item_object
-party_menu_link_mon_held_item_object: @ 806EA8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806EAC0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EABA
- ldr r4, _0806EAC4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r2, _0806EAC8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
-_0806EABA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EAC0: .4byte gUnknown_0202E8F6
-_0806EAC4: .4byte 0x0201c000
-_0806EAC8: .4byte gTasks
- thumb_func_end party_menu_link_mon_held_item_object
-
- thumb_func_start sub_806EACC
-sub_806EACC: @ 806EACC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EB74
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806EB30 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EB5C
- ldr r0, [r4]
- ldrh r1, [r4, 0x6]
- bl sub_806E904
- ldrh r0, [r4, 0x6]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EB34
- ldrb r0, [r4, 0x5]
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_806EDB4
- b _0806EB9A
- .align 2, 0
-_0806EB30: .4byte 0x0201c000
-_0806EB34:
- ldrh r0, [r4, 0x6]
- ldr r1, _0806EB50 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0806EB54 @ =gStringVar4
- ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- b _0806EB9A
- .align 2, 0
-_0806EB50: .4byte gStringVar1
-_0806EB54: .4byte gStringVar4
-_0806EB58: .4byte gOtherText_TakenAndReplaced
-_0806EB5C:
- ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- b _0806EB9A
- .align 2, 0
-_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EB74:
- cmp r1, 0x1
- beq _0806EB80
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EBA8
-_0806EB80:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EB8E
- movs r0, 0x5
- bl PlaySE
-_0806EB8E:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
-_0806EB9A:
- ldr r0, _0806EBB0 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EBA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBB0: .4byte gTasks
-_0806EBB4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EACC
-
- thumb_func_start sub_806EBB8
-sub_806EBB8: @ 806EBB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EBE4 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EBDE
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EBE8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBEC @ =sub_806EACC
- str r0, [r1]
-_0806EBDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBE4: .4byte gUnknown_0202E8F6
-_0806EBE8: .4byte gTasks
-_0806EBEC: .4byte sub_806EACC
- thumb_func_end sub_806EBB8
-
- thumb_func_start sub_806EBF0
-sub_806EBF0: @ 806EBF0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EC30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EC34 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EC38 @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EC3C @ =gStringVar4
- ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EC30: .4byte gPlayerParty
-_0806EC34: .4byte gStringVar1
-_0806EC38: .4byte gStringVar2
-_0806EC3C: .4byte gStringVar4
-_0806EC40: .4byte gOtherText_WasGivenToHold
- thumb_func_end sub_806EBF0
-
- thumb_func_start sub_806EC44
-sub_806EC44: @ 806EC44
- push {r4,r5,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ECA0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ECA4 @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ECA8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- ldr r2, _0806ECAC @ =gUnknown_0202E8F4
- movs r1, 0
- strb r1, [r2]
- movs r1, 0xF8
- lsls r1, 6
- adds r2, r5, r1
- ldrb r1, [r2]
- adds r1, 0x6
- ldrb r2, [r2, 0x2]
- adds r1, r2
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C
- adds r4, r2, r1
- cmp r0, 0
- beq _0806ECBC
- ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806ECDA
- .align 2, 0
-_0806ECA0: .4byte gTasks
-_0806ECA4: .4byte TaskDummy
-_0806ECA8: .4byte 0x0201c000
-_0806ECAC: .4byte gUnknown_0202E8F4
-_0806ECB0: .4byte gSaveBlock1 + 0x2B4C
-_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail
-_0806ECB8: .4byte party_menu_link_mon_held_item_object
-_0806ECBC:
- ldr r0, [r5]
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80A2B40
- ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806ECDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806ECE0: .4byte gOtherText_MailTransferredMailbox
-_0806ECE4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EC44
-
- thumb_func_start sub_806ECE8
-sub_806ECE8: @ 806ECE8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ED38 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ED3C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ED40 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- cmp r4, 0
- bne _0806ED50
- ldr r4, _0806ED44 @ =gStringVar4
- ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EDA2
- .align 2, 0
-_0806ED38: .4byte gTasks
-_0806ED3C: .4byte TaskDummy
-_0806ED40: .4byte 0x0201c000
-_0806ED44: .4byte gStringVar4
-_0806ED48: .4byte gOtherText_NotHoldingAnything
-_0806ED4C: .4byte party_menu_link_mon_held_item_object
-_0806ED50:
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED92
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED7C
- ldr r0, [r5]
- bl sub_80A2DF8
-_0806ED7C:
- ldrb r0, [r5, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl sub_806EDB4
- ldr r0, [r5]
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- b _0806ED9A
-_0806ED92:
- ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806ED9A:
- ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EDA2:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EDB0: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806ECE8
-
- thumb_func_start sub_806EDB4
-sub_806EDB4: @ 806EDB4
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EDF4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EDF8 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EDFC @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EE00 @ =gStringVar4
- ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDF4: .4byte gPlayerParty
-_0806EDF8: .4byte gStringVar1
-_0806EDFC: .4byte gStringVar2
-_0806EE00: .4byte gStringVar4
-_0806EE04: .4byte gOtherText_ReceivedTheThingFrom
- thumb_func_end sub_806EDB4
-
- thumb_func_start sub_806EE08
-sub_806EE08: @ 806EE08
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806EE48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806EE4C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r4, _0806EE50 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- strh r0, [r4, 0x6]
- ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EE58 @ =sub_806EFEC
- movs r1, 0x5
- bl CreateTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EE48: .4byte gTasks
-_0806EE4C: .4byte TaskDummy
-_0806EE50: .4byte 0x0201c000
-_0806EE54: .4byte gOtherText_SendRemovedMailPrompt
-_0806EE58: .4byte sub_806EFEC
- thumb_func_end sub_806EE08
-
- thumb_func_start sub_806EE5C
-sub_806EE5C: @ 806EE5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EEB0
- ldr r5, _0806EE90 @ =0x0201c000
- ldrh r0, [r5, 0x6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EE98
- ldr r0, [r5]
- bl sub_80A2DF8
- ldr r0, _0806EE94 @ =gOtherText_MailTaken
- movs r1, 0
- bl sub_806E834
- b _0806EEA0
- .align 2, 0
-_0806EE90: .4byte 0x0201c000
-_0806EE94: .4byte gOtherText_MailTaken
-_0806EE98:
- ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806EEA0:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- b _0806EEDE
- .align 2, 0
-_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EEB0:
- cmp r1, 0x1
- beq _0806EEBC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EEF0
-_0806EEBC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EECA
- movs r0, 0x5
- bl PlaySE
-_0806EECA:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
-_0806EEDE:
- bl MenuZeroFillWindowRect
- ldr r0, _0806EEF8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EEF0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EEF8: .4byte gTasks
-_0806EEFC: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EE5C
-
- thumb_func_start sub_806EF00
-sub_806EF00: @ 806EF00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EF2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EF26
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EF30 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF34 @ =sub_806EE5C
- str r0, [r1]
-_0806EF26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EF2C: .4byte gUnknown_0202E8F6
-_0806EF30: .4byte gTasks
-_0806EF34: .4byte sub_806EE5C
- thumb_func_end sub_806EF00
-
- thumb_func_start sub_806EF38
-sub_806EF38: @ 806EF38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EF9C
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EF70 @ =0x0201c000
- ldr r0, [r0]
- bl sub_80A2E78
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806EF78
- ldr r0, _0806EF74 @ =gOtherText_MailWasSent
- movs r1, 0
- bl sub_806E834
- b _0806EF80
- .align 2, 0
-_0806EF70: .4byte 0x0201c000
-_0806EF74: .4byte gOtherText_MailWasSent
-_0806EF78:
- ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull
- movs r1, 0
- bl sub_806E834
-_0806EF80:
- ldr r0, _0806EF94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
- b _0806EFD8
- .align 2, 0
-_0806EF90: .4byte gOtherText_MailboxIsFull
-_0806EF94: .4byte gTasks
-_0806EF98: .4byte party_menu_link_mon_held_item_object
-_0806EF9C:
- cmp r1, 0x1
- beq _0806EFA8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFD8
-_0806EFA8:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFB6
- movs r0, 0x5
- bl PlaySE
-_0806EFB6:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806EFE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806EFE8 @ =sub_806EF00
- str r1, [r0]
-_0806EFD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
-_0806EFE4: .4byte gTasks
-_0806EFE8: .4byte sub_806EF00
- thumb_func_end sub_806EF38
-
- thumb_func_start sub_806EFEC
-sub_806EFEC: @ 806EFEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F018 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F012
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F01C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F020 @ =sub_806EF38
- str r0, [r1]
-_0806F012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F018: .4byte gUnknown_0202E8F6
-_0806F01C: .4byte gTasks
-_0806F020: .4byte sub_806EF38
- thumb_func_end sub_806EFEC
-
- thumb_func_start ItemIdToBattleMoveId
-ItemIdToBattleMoveId: @ 806F024
- lsls r0, 16
- ldr r1, _0806F034 @ =0xfedf0000
- adds r0, r1
- ldr r1, _0806F038 @ =gUnknown_08376504
- lsrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0806F034: .4byte 0xfedf0000
-_0806F038: .4byte gUnknown_08376504
- thumb_func_end ItemIdToBattleMoveId
-
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 806F03C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
-_0806F046:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- cmp r0, r5
- bne _0806F058
- movs r0, 0x1
- b _0806F064
-_0806F058:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0806F046
- movs r0, 0
-_0806F064:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_has_move
-
- thumb_func_start sub_806F06C
-sub_806F06C: @ 806F06C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0806F0A8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F0AC @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E8D0
- ldr r0, _0806F0B0 @ =sub_806F0B4
- movs r1, 0x5
- bl CreateTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F0A8: .4byte gTasks
-_0806F0AC: .4byte TaskDummy
-_0806F0B0: .4byte sub_806F0B4
- thumb_func_end sub_806F06C
-
- thumb_func_start sub_806F0B4
-sub_806F0B4: @ 806F0B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r5, _0806F114 @ =0x0201c000
- ldr r0, [r5]
- ldr r1, _0806F118 @ =gStringVar1
- bl GetMonNickname
- ldrh r0, [r5, 0x6]
- bl ItemIdToBattleMoveId
- movs r4, 0
- strh r0, [r5, 0x8]
- ldr r0, _0806F11C @ =gStringVar2
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F120 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r1, _0806F124 @ =0xfffff282
- adds r0, r5, r1
- strh r4, [r0]
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0806F138
- ldr r4, _0806F128 @ =gStringVar4
- ldr r1, _0806F12C @ =gOtherText_AlreadyKnows
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F130 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F114: .4byte 0x0201c000
-_0806F118: .4byte gStringVar1
-_0806F11C: .4byte gStringVar2
-_0806F120: .4byte gMoveNames
-_0806F124: .4byte 0xfffff282
-_0806F128: .4byte gStringVar4
-_0806F12C: .4byte gOtherText_AlreadyKnows
-_0806F130: .4byte gTasks
-_0806F134: .4byte party_menu_link_mon_held_item_object
-_0806F138:
- ldr r0, [r5]
- ldrb r1, [r5, 0x6]
- subs r1, 0x21
- lsls r1, 24
- lsrs r1, 24
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0806F17C
- ldr r4, _0806F16C @ =gStringVar4
- ldr r1, _0806F170 @ =gOtherText_NotCompatible
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F174 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F16C: .4byte gStringVar4
-_0806F170: .4byte gOtherText_NotCompatible
-_0806F174: .4byte gTasks
-_0806F178: .4byte party_menu_link_mon_held_item_object
-_0806F17C:
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _0806F194 @ =0xffff0000
- cmp r0, r1
- beq _0806F198
- adds r0, r6, 0
- bl sub_806F1D0
- b _0806F1B8
- .align 2, 0
-_0806F194: .4byte 0xffff0000
-_0806F198:
- ldr r4, _0806F1C0 @ =gStringVar4
- ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F1C8 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F1CC @ =sub_806F358
-_0806F1B6:
- str r1, [r0]
-_0806F1B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F1C0: .4byte gStringVar4
-_0806F1C4: .4byte gOtherText_WantsToLearn
-_0806F1C8: .4byte gTasks
-_0806F1CC: .4byte sub_806F358
- thumb_func_end sub_806F0B4
-
- thumb_func_start sub_806F1D0
-sub_806F1D0: @ 806F1D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F234 @ =gStringVar2
- ldr r5, _0806F238 @ =0x0201c000
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F23C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F240 @ =gStringVar4
- ldr r1, _0806F244 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, [r5]
- movs r1, 0x4
- bl AdjustFriendship
- ldr r1, _0806F248 @ =0xfffff282
- adds r0, r5, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806F220
- ldrh r1, [r5, 0x6]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0806F220
- adds r0, r1, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806F220:
- ldr r0, _0806F24C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F250 @ =sub_806F254
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F234: .4byte gStringVar2
-_0806F238: .4byte 0x0201c000
-_0806F23C: .4byte gMoveNames
-_0806F240: .4byte gStringVar4
-_0806F244: .4byte gOtherText_LearnedMove
-_0806F248: .4byte 0xfffff282
-_0806F24C: .4byte gTasks
-_0806F250: .4byte sub_806F254
- thumb_func_end sub_806F1D0
-
- thumb_func_start sub_806F254
-sub_806F254: @ 806F254
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F27C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F276
- ldr r0, _0806F280 @ =0x0000016f
- bl PlayFanfare
- ldr r1, _0806F284 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F288 @ =sub_806F28C
- str r1, [r0]
-_0806F276:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F27C: .4byte gUnknown_0202E8F6
-_0806F280: .4byte 0x0000016f
-_0806F284: .4byte gTasks
-_0806F288: .4byte sub_806F28C
- thumb_func_end sub_806F254
-
- thumb_func_start sub_806F28C
-sub_806F28C: @ 806F28C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _0806F2F2
- ldr r0, _0806F2D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806F2B2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806F2F2
-_0806F2B2:
- ldr r4, _0806F2D4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F2D8 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F2DC
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F2F2
- .align 2, 0
-_0806F2D0: .4byte gMain
-_0806F2D4: .4byte 0x0201c000
-_0806F2D8: .4byte 0xfffff282
-_0806F2DC:
- ldr r2, _0806F2F8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F2F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F2F8: .4byte gTasks
- thumb_func_end sub_806F28C
-
- thumb_func_start sub_806F2FC
-sub_806F2FC: @ 806F2FC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, _0806F32C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F34E
- ldr r4, _0806F330 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F334 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F338
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F34E
- .align 2, 0
-_0806F32C: .4byte gUnknown_0202E8F6
-_0806F330: .4byte 0x0201c000
-_0806F334: .4byte 0xfffff282
-_0806F338:
- ldr r2, _0806F354 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F34E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F354: .4byte gTasks
- thumb_func_end sub_806F2FC
-
- thumb_func_start sub_806F358
-sub_806F358: @ 806F358
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F384 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F37E
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F388 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F38C @ =sub_806F390
- str r0, [r1]
-_0806F37E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F384: .4byte gUnknown_0202E8F6
-_0806F388: .4byte gTasks
-_0806F38C: .4byte sub_806F390
- thumb_func_end sub_806F358
-
- thumb_func_start sub_806F390
-sub_806F390: @ 806F390
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F3D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F3CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F3D0 @ =sub_806F44C
- str r1, [r0]
- b _0806F3F4
- .align 2, 0
-_0806F3C8: .4byte gOtherText_WhichMoveToForget2
-_0806F3CC: .4byte gTasks
-_0806F3D0: .4byte sub_806F44C
-_0806F3D4:
- cmp r1, 0x1
- beq _0806F3E0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3F4
-_0806F3E0:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3EE
- movs r0, 0x5
- bl PlaySE
-_0806F3EE:
- adds r0, r5, 0
- bl sub_806F614
-_0806F3F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806F390
-
- thumb_func_start sub_806F3FC
-sub_806F3FC: @ 806F3FC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806F438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F430
- ldr r0, _0806F43C @ =gPlayerParty
- ldr r4, _0806F440 @ =0x0201c000
- ldrb r1, [r4, 0x5]
- ldr r2, _0806F444 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806F448 @ =sub_808B564
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl sub_809D9F0
- adds r0, r5, 0
- bl DestroyTask
-_0806F430:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F438: .4byte gPaletteFade
-_0806F43C: .4byte gPlayerParty
-_0806F440: .4byte 0x0201c000
-_0806F444: .4byte gPlayerPartyCount
-_0806F448: .4byte sub_808B564
- thumb_func_end sub_806F3FC
-
- thumb_func_start sub_806F44C
-sub_806F44C: @ 806F44C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F484 @ =gUnknown_0202E8F6
- ldrb r1, [r0]
- cmp r1, 0
- bne _0806F47A
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0806F488 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F48C @ =sub_806F3FC
- str r1, [r0]
-_0806F47A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F484: .4byte gUnknown_0202E8F6
-_0806F488: .4byte gTasks
-_0806F48C: .4byte sub_806F3FC
- thumb_func_end sub_806F44C
-
- thumb_func_start sub_806F490
-sub_806F490: @ 806F490
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F50C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F506
- ldr r1, _0806F510 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F514 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F518 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F51C @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r5, _0806F520 @ =0x0201c000
- ldr r0, [r5]
- adds r1, 0xD
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5]
- ldr r1, _0806F524 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F528 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _0806F52C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F530 @ =gStringVar4
- ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F538 @ =sub_806F53C
- movs r1, 0x5
- bl CreateTask
-_0806F506:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F50C: .4byte gPaletteFade
-_0806F510: .4byte gTasks
-_0806F514: .4byte TaskDummy
-_0806F518: .4byte gScriptItemId
-_0806F51C: .4byte sub_808B508
-_0806F520: .4byte 0x0201c000
-_0806F524: .4byte gStringVar1
-_0806F528: .4byte gStringVar2
-_0806F52C: .4byte gMoveNames
-_0806F530: .4byte gStringVar4
-_0806F534: .4byte gOtherText_ForgetMove123_2
-_0806F538: .4byte sub_806F53C
- thumb_func_end sub_806F490
-
- thumb_func_start sub_806F53C
-sub_806F53C: @ 806F53C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F580 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F57A
- ldr r4, _0806F584 @ =0x0201c000
- ldr r5, [r4]
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl RemoveMonPPBonus
- ldr r5, [r4]
- ldrh r4, [r4, 0x8]
- bl sub_809FA30
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl SetMonMoveSlot
- adds r0, r6, 0
- bl sub_806F1D0
-_0806F57A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F580: .4byte gUnknown_0202E8F6
-_0806F584: .4byte 0x0201c000
- thumb_func_end sub_806F53C
-
- thumb_func_start sub_806F588
-sub_806F588: @ 806F588
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F5E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F5E0
- ldr r1, _0806F5EC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F5F0 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F5F4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F5F8 @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- ldr r0, _0806F5FC @ =gStringVar2
- ldr r1, _0806F600 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F604 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F608 @ =gStringVar4
- ldr r1, _0806F60C @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F610 @ =sub_806F67C
- movs r1, 0x5
- bl CreateTask
-_0806F5E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F5E8: .4byte gPaletteFade
-_0806F5EC: .4byte gTasks
-_0806F5F0: .4byte TaskDummy
-_0806F5F4: .4byte gScriptItemId
-_0806F5F8: .4byte sub_808B508
-_0806F5FC: .4byte gStringVar2
-_0806F600: .4byte 0x0201c000
-_0806F604: .4byte gMoveNames
-_0806F608: .4byte gStringVar4
-_0806F60C: .4byte gOtherText_StopTryingTo
-_0806F610: .4byte sub_806F67C
- thumb_func_end sub_806F588
-
- thumb_func_start sub_806F614
-sub_806F614: @ 806F614
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F660 @ =gStringVar2
- ldr r1, _0806F664 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F668 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F66C @ =gStringVar4
- ldr r1, _0806F670 @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F674 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F678 @ =sub_806F67C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F660: .4byte gStringVar2
-_0806F664: .4byte 0x0201c000
-_0806F668: .4byte gMoveNames
-_0806F66C: .4byte gStringVar4
-_0806F670: .4byte gOtherText_StopTryingTo
-_0806F674: .4byte gTasks
-_0806F678: .4byte sub_806F67C
- thumb_func_end sub_806F614
-
- thumb_func_start sub_806F67C
-sub_806F67C: @ 806F67C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F6A8 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F6A2
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F6AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F6B0 @ =sub_806F6B4
- str r0, [r1]
-_0806F6A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F6A8: .4byte gUnknown_0202E8F6
-_0806F6AC: .4byte gTasks
-_0806F6B0: .4byte sub_806F6B4
- thumb_func_end sub_806F67C
-
- thumb_func_start sub_806F6B4
-sub_806F6B4: @ 806F6B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F730
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F710 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F714 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F718 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F71C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F720 @ =gStringVar4
- ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F728 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F72C @ =sub_806F2FC
- b _0806F78E
- .align 2, 0
-_0806F710: .4byte 0x0201c000
-_0806F714: .4byte gStringVar1
-_0806F718: .4byte gStringVar2
-_0806F71C: .4byte gMoveNames
-_0806F720: .4byte gStringVar4
-_0806F724: .4byte gOtherText_DidNotLearnMove2
-_0806F728: .4byte gTasks
-_0806F72C: .4byte sub_806F2FC
-_0806F730:
- cmp r1, 0x1
- beq _0806F73C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F790
-_0806F73C:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F74A
- movs r0, 0x5
- bl PlaySE
-_0806F74A:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F798 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F79C @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F7A0 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F7A4 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F7A8 @ =gStringVar4
- ldr r1, _0806F7AC @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F7B0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F7B4 @ =sub_806F358
-_0806F78E:
- str r1, [r0]
-_0806F790:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F798: .4byte 0x0201c000
-_0806F79C: .4byte gStringVar1
-_0806F7A0: .4byte gStringVar2
-_0806F7A4: .4byte gMoveNames
-_0806F7A8: .4byte gStringVar4
-_0806F7AC: .4byte gOtherText_WantsToLearn
-_0806F7B0: .4byte gTasks
-_0806F7B4: .4byte sub_806F358
- thumb_func_end sub_806F6B4
-
- thumb_func_start sub_806F7B8
-sub_806F7B8: @ 806F7B8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, _0806F7D4 @ =gUnknown_08376504
-_0806F7C2:
- adds r0, r1, 0
- adds r0, 0x32
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0806F7D8
- movs r0, 0x1
- b _0806F7E4
- .align 2, 0
-_0806F7D4: .4byte gUnknown_08376504
-_0806F7D8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _0806F7C2
- movs r0, 0
-_0806F7E4:
- pop {r1}
- bx r1
- thumb_func_end sub_806F7B8
-
- thumb_func_start sub_806F7E8
-sub_806F7E8: @ 806F7E8
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, _0806F898 @ =gTasks + 0x8
- adds r3, r0
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- str r1, [r5]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- str r0, [r5, 0x4]
- movs r4, 0x18
- ldrsh r0, [r3, r4]
- lsls r2, 24
- asrs r2, 24
- muls r0, r2
- str r0, [r5, 0x8]
- movs r0, 0x80
- lsls r0, 1
- str r0, [r5, 0x10]
- ldr r6, _0806F89C @ =0x0201b000
- ldr r2, _0806F8A0 @ =0x00000282
- adds r0, r6, r2
- movs r4, 0
- ldrsh r0, [r0, r4]
- bl sub_8046200
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r2, 0x2
- bls _0806F83E
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F83E:
- cmp r2, 0x2
- bne _0806F850
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x5
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F850:
- cmp r3, 0x1
- bhi _0806F862
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x6
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F862:
- ldr r4, _0806F8A4 @ =gUnknown_08376858
- bl battle_type_is_double
- movs r2, 0x80
- lsls r2, 5
- adds r1, r6, r2
- ldrb r2, [r1, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r4
- ldr r2, [r2]
- ldr r4, _0806F8A8 @ =0x0000100c
- adds r1, r6, r4
- adds r0, r5, 0
- movs r3, 0
- bl sub_80460C8
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806F898: .4byte gTasks + 0x8
-_0806F89C: .4byte 0x0201b000
-_0806F8A0: .4byte 0x00000282
-_0806F8A4: .4byte gUnknown_08376858
-_0806F8A8: .4byte 0x0000100c
- thumb_func_end sub_806F7E8
-
- thumb_func_start sub_806F8AC
-sub_806F8AC: @ 806F8AC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- adds r0, r6, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_806F7E8
- ldr r1, _0806F8F4 @ =0x0201b000
- ldr r2, _0806F8F8 @ =0x00000282
- adds r5, r1, r2
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r4
- beq _0806F8D4
- b _0806F9F0
-_0806F8D4:
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0
- str r0, [r1, 0xC]
- ldr r0, [sp, 0x8]
- negs r3, r0
- ldr r2, [sp, 0x4]
- adds r0, r3, r2
- ldr r1, [sp]
- cmp r0, r1
- ble _0806F8FC
- subs r1, r2
- add r0, sp, 0x14
- strh r1, [r0]
- b _0806F900
- .align 2, 0
-_0806F8F4: .4byte 0x0201b000
-_0806F8F8: .4byte 0x00000282
-_0806F8FC:
- add r0, sp, 0x14
- strh r3, [r0]
-_0806F900:
- adds r5, r0, 0
- ldr r1, _0806F940 @ =gUnknown_02024BEC
- ldrh r0, [r5]
- negs r0, r0
- str r0, [r1]
- ldr r0, _0806F944 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _0806F948 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F94C @ =gStringVar2
- ldrh r1, [r5]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r2, _0806F950 @ =gTasks
- lsls r1, r6, 2
- adds r0, r1, r6
- lsls r0, 3
- adds r0, r2
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _0806F95C
- ldr r0, _0806F954 @ =gStringVar4
- ldr r1, _0806F958 @ =gOtherText_HPRestoredBy
- bl StringExpandPlaceholders
- b _0806F964
- .align 2, 0
-_0806F940: .4byte gUnknown_02024BEC
-_0806F944: .4byte 0x0201c000
-_0806F948: .4byte gStringVar1
-_0806F94C: .4byte gStringVar2
-_0806F950: .4byte gTasks
-_0806F954: .4byte gStringVar4
-_0806F958: .4byte gOtherText_HPRestoredBy
-_0806F95C:
- ldr r0, _0806F9D4 @ =gStringVar4
- ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth
- bl StringExpandPlaceholders
-_0806F964:
- ldr r4, _0806F9DC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0806F9E0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _0806F9E4 @ =0xfffff261
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _0806F9D4 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, [sp, 0x4]
- ldrh r0, [r5]
- adds r0, r1
- strh r0, [r5]
- ldr r0, [r4]
- movs r1, 0x39
- adds r2, r5, 0
- bl SetMonData
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- bl sub_8032638
- ldr r1, _0806F9E8 @ =gTasks
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F9EC @ =sub_806FB44
- str r1, [r0]
- b _0806FA10
- .align 2, 0
-_0806F9D4: .4byte gStringVar4
-_0806F9D8: .4byte gOtherText_RegainedHealth
-_0806F9DC: .4byte 0x0201c000
-_0806F9E0: .4byte gUnknown_083769A8
-_0806F9E4: .4byte 0xfffff261
-_0806F9E8: .4byte gTasks
-_0806F9EC: .4byte sub_806FB44
-_0806F9F0:
- movs r2, 0x80
- lsls r2, 5
- adds r0, r1, r2
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FA10:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806F8AC
-
- thumb_func_start sub_806FA18
-sub_806FA18: @ 806FA18
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_806F7E8
- ldr r6, _0806FAC4 @ =0x0201b000
- ldr r1, _0806FAC8 @ =0x00000282
- adds r7, r6, r1
- strh r0, [r7]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0806FAE4
- movs r0, 0x1
- bl PlaySE
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- movs r0, 0
- str r0, [r4, 0xC]
- ldr r2, _0806FACC @ =gTasks
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r5, r3, r2
- ldrh r0, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r0, r1
- strh r0, [r5, 0x1E]
- ldr r0, [r4]
- adds r2, r3
- adds r2, 0x1E
- movs r1, 0x39
- bl SetMonData
- ldrb r0, [r4, 0x4]
- ldr r1, _0806FAD0 @ =0xfffe6000
- adds r6, r1
- ldrb r1, [r6, 0x1]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- ldr r2, _0806FAD4 @ =gSprites
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r4, 0x5]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806FAD8 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5, 0x1C]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5, 0x1E]
- ldr r0, _0806FADC @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r0, [r4, 0x10]
- str r0, [r4, 0x14]
- ldr r0, _0806FAE0 @ =sub_806F8AC
- str r0, [r5]
- ldrh r0, [r5, 0x1E]
- strh r0, [r7]
- b _0806FB04
- .align 2, 0
-_0806FAC4: .4byte 0x0201b000
-_0806FAC8: .4byte 0x00000282
-_0806FACC: .4byte gTasks
-_0806FAD0: .4byte 0xfffe6000
-_0806FAD4: .4byte gSprites
-_0806FAD8: .4byte gPlayerParty
-_0806FADC: .4byte 0xffff8000
-_0806FAE0: .4byte sub_806F8AC
-_0806FAE4:
- movs r1, 0x80
- lsls r1, 5
- adds r0, r6, r1
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r7]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FB04:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806FA18
-
- thumb_func_start sub_806FB0C
-sub_806FB0C: @ 806FB0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB38 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB32
- ldr r3, _0806FB3C @ =gTasks
- ldr r2, _0806FB40 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x10]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB38: .4byte gUnknown_0202E8F6
-_0806FB3C: .4byte gTasks
-_0806FB40: .4byte 0x0201c000
- thumb_func_end sub_806FB0C
-
- thumb_func_start sub_806FB44
-sub_806FB44: @ 806FB44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB70 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB6A
- ldr r3, _0806FB74 @ =gTasks
- ldr r2, _0806FB78 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x14]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB70: .4byte gUnknown_0202E8F6
-_0806FB74: .4byte gTasks
-_0806FB78: .4byte 0x0201c000
- thumb_func_end sub_806FB44
-
- thumb_func_start sub_806FB7C
-sub_806FB7C: @ 806FB7C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0806FB90
- ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676
- b _0806FB9A
- .align 2, 0
-_0806FB8C: .4byte gSaveBlock1 + 0x3676
-_0806FB90:
- ldr r1, _0806FBA8 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0806FB9A:
- ldrb r1, [r0, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0806FBAC
- movs r0, 0
- b _0806FBAE
- .align 2, 0
-_0806FBA8: .4byte gItemEffectTable
-_0806FBAC:
- movs r0, 0x1
-_0806FBAE:
- pop {r1}
- bx r1
- thumb_func_end sub_806FB7C
-
- thumb_func_start sub_806FBB4
-sub_806FBB4: @ 806FBB4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806E168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E2C0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806FBB4
-
- thumb_func_start GetMedicineItemEffectMessage
-GetMedicineItemEffectMessage: @ 806FBD0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0x12
- bls _0806FBE6
- b _0806FD7C
-_0806FBE6:
- lsls r0, 2
- ldr r1, _0806FBF0 @ =_0806FBF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806FBF0: .4byte _0806FBF4
- .align 2, 0
-_0806FBF4:
- .4byte _0806FC40
- .4byte _0806FC54
- .4byte _0806FC68
- .4byte _0806FC7C
- .4byte _0806FC90
- .4byte _0806FCA4
- .4byte _0806FCB8
- .4byte _0806FD7C
- .4byte _0806FCCC
- .4byte _0806FCF0
- .4byte _0806FCE0
- .4byte _0806FD20
- .4byte _0806FD30
- .4byte _0806FD10
- .4byte _0806FD00
- .4byte _0806FD7C
- .4byte _0806FD54
- .4byte _0806FD54
- .4byte _0806FD68
-_0806FC40:
- ldr r0, _0806FC4C @ =gStringVar4
- ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC4C: .4byte gStringVar4
-_0806FC50: .4byte gOtherText_CuredPoisoning
-_0806FC54:
- ldr r0, _0806FC60 @ =gStringVar4
- ldr r1, _0806FC64 @ =gOtherText_WokeUp
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC60: .4byte gStringVar4
-_0806FC64: .4byte gOtherText_WokeUp
-_0806FC68:
- ldr r0, _0806FC74 @ =gStringVar4
- ldr r1, _0806FC78 @ =gOtherText_BurnHealed
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC74: .4byte gStringVar4
-_0806FC78: .4byte gOtherText_BurnHealed
-_0806FC7C:
- ldr r0, _0806FC88 @ =gStringVar4
- ldr r1, _0806FC8C @ =gOtherText_ThawedOut
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC88: .4byte gStringVar4
-_0806FC8C: .4byte gOtherText_ThawedOut
-_0806FC90:
- ldr r0, _0806FC9C @ =gStringVar4
- ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC9C: .4byte gStringVar4
-_0806FCA0: .4byte gOtherText_CuredParalysis
-_0806FCA4:
- ldr r0, _0806FCB0 @ =gStringVar4
- ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCB0: .4byte gStringVar4
-_0806FCB4: .4byte gOtherText_SnapConfusion
-_0806FCB8:
- ldr r0, _0806FCC4 @ =gStringVar4
- ldr r1, _0806FCC8 @ =gOtherText_GotOverLove
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCC4: .4byte gStringVar4
-_0806FCC8: .4byte gOtherText_GotOverLove
-_0806FCCC:
- ldr r0, _0806FCD8 @ =gStringVar4
- ldr r1, _0806FCDC @ =gOtherText_BecameHealthy
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCD8: .4byte gStringVar4
-_0806FCDC: .4byte gOtherText_BecameHealthy
-_0806FCE0:
- ldr r0, _0806FCE8 @ =gStringVar2
- ldr r1, _0806FCEC @ =gOtherText_Hp2
- b _0806FD34
- .align 2, 0
-_0806FCE8: .4byte gStringVar2
-_0806FCEC: .4byte gOtherText_Hp2
-_0806FCF0:
- ldr r0, _0806FCF8 @ =gStringVar2
- ldr r1, _0806FCFC @ =gOtherText_Attack
- b _0806FD34
- .align 2, 0
-_0806FCF8: .4byte gStringVar2
-_0806FCFC: .4byte gOtherText_Attack
-_0806FD00:
- ldr r0, _0806FD08 @ =gStringVar2
- ldr r1, _0806FD0C @ =gOtherText_Defense
- b _0806FD34
- .align 2, 0
-_0806FD08: .4byte gStringVar2
-_0806FD0C: .4byte gOtherText_Defense
-_0806FD10:
- ldr r0, _0806FD18 @ =gStringVar2
- ldr r1, _0806FD1C @ =gOtherText_Speed
- b _0806FD34
- .align 2, 0
-_0806FD18: .4byte gStringVar2
-_0806FD1C: .4byte gOtherText_Speed
-_0806FD20:
- ldr r0, _0806FD28 @ =gStringVar2
- ldr r1, _0806FD2C @ =gOtherText_SpAtk2
- b _0806FD34
- .align 2, 0
-_0806FD28: .4byte gStringVar2
-_0806FD2C: .4byte gOtherText_SpAtk2
-_0806FD30:
- ldr r0, _0806FD44 @ =gStringVar2
- ldr r1, _0806FD48 @ =gOtherText_SpDef2
-_0806FD34:
- bl StringCopy
- ldr r0, _0806FD4C @ =gStringVar4
- ldr r1, _0806FD50 @ =gOtherText_WasRaised
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD44: .4byte gStringVar2
-_0806FD48: .4byte gOtherText_SpDef2
-_0806FD4C: .4byte gStringVar4
-_0806FD50: .4byte gOtherText_WasRaised
-_0806FD54:
- ldr r0, _0806FD60 @ =gStringVar4
- ldr r1, _0806FD64 @ =gOtherText_PPIncreased
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD60: .4byte gStringVar4
-_0806FD64: .4byte gOtherText_PPIncreased
-_0806FD68:
- ldr r0, _0806FD74 @ =gStringVar4
- ldr r1, _0806FD78 @ =gOtherText_PPRestored
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD74: .4byte gStringVar4
-_0806FD78: .4byte gOtherText_PPRestored
-_0806FD7C:
- ldr r0, _0806FD88 @ =gStringVar4
- ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect
- bl StringExpandPlaceholders
-_0806FD84:
- pop {r0}
- bx r0
- .align 2, 0
-_0806FD88: .4byte gStringVar4
-_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
- thumb_func_end GetMedicineItemEffectMessage
-
- thumb_func_start sub_806FD90
-sub_806FD90: @ 806FD90
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bne _0806FDBC
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0806FDB8 @ =0x0000012f
- cmp r0, r1
- bne _0806FDBC
- movs r0, 0x1
- b _0806FDBE
- .align 2, 0
-_0806FDB8: .4byte 0x0000012f
-_0806FDBC:
- movs r0, 0
-_0806FDBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806FD90
-
- thumb_func_start ExecuteTableBasedItemEffect__
-ExecuteTableBasedItemEffect__: @ 806FDC4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _0806FDF0 @ =gMain
- ldr r1, _0806FDF4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806FDFC
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806FDF8 @ =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- adds r2, r3, 0
- b _0806FE16
- .align 2, 0
-_0806FDF0: .4byte gMain
-_0806FDF4: .4byte 0x0000043d
-_0806FDF8: .4byte gPlayerParty
-_0806FDFC:
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r0, _0806FE28 @ =gPlayerParty
- adds r4, r0
- adds r0, r3, 0
- bl sub_8094C20
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
-_0806FE16:
- adds r3, r6, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806FE28: .4byte gPlayerParty
- thumb_func_end ExecuteTableBasedItemEffect__
-
- thumb_func_start sub_806FE2C
-sub_806FE2C: @ 806FE2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0
- mov r9, r0
- ldr r1, _0806FED4 @ =gTasks
- mov r10, r1
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r10
- ldr r0, _0806FED8 @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r5, _0806FEDC @ =0x0201c000
- ldr r0, [r5]
- adds r1, r6, 0
- bl sub_806FD90
- lsls r0, 24
- cmp r0, 0
- bne _0806FEE0
- adds r0, r6, 0
- bl sub_806FB7C
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0x1
- bne _0806FEC2
- ldr r0, [r5]
- movs r1, 0x3A
- bl GetMonData
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- mov r2, r10
- adds r4, r1, r2
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x1E]
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _0806FEC2
- movs r0, 0
- mov r9, r0
- mov r1, r9
- strh r1, [r4, 0x1C]
- strh r1, [r4, 0x1E]
-_0806FEC2:
- ldr r0, _0806FEDC @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _0806FEE6
- .align 2, 0
-_0806FED4: .4byte gTasks
-_0806FED8: .4byte TaskDummy
-_0806FEDC: .4byte 0x0201c000
-_0806FEE0:
- movs r0, 0x1
- lsls r2, r7, 2
- mov r8, r2
-_0806FEE6:
- cmp r0, 0
- beq _0806FF14
- ldr r1, _0806FF08 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806FF10 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- b _08070002
- .align 2, 0
-_0806FF08: .4byte gUnknown_0202E8F4
-_0806FF0C: .4byte gOtherText_WontHaveAnyEffect
-_0806FF10: .4byte gTasks
-_0806FF14:
- ldr r1, _0806FF30 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FF34
- movs r0, 0x1
- bl PlaySE
- b _0806FF3A
- .align 2, 0
-_0806FF30: .4byte gUnknown_0202E8F4
-_0806FF34:
- movs r0, 0x75
- bl PlaySE
-_0806FF3A:
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0806FF4E
- cmp r0, 0
- bne _0806FF56
-_0806FF4E:
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
-_0806FF56:
- mov r0, r9
- cmp r0, 0x1
- bne _0806FFC8
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldr r2, _0806FF8C @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0x1E]
- subs r0, r1
- strh r0, [r2, 0x20]
- ldr r0, _0806FF90 @ =0xffff8000
- str r0, [r4, 0xC]
- movs r1, 0x1E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0806FF94
- mov r3, r9
- strh r3, [r2, 0x24]
- b _0806FF98
- .align 2, 0
-_0806FF88: .4byte 0x0201c000
-_0806FF8C: .4byte gTasks
-_0806FF90: .4byte 0xffff8000
-_0806FF94:
- movs r0, 0
- strh r0, [r2, 0x24]
-_0806FF98:
- ldr r2, _0806FFB8 @ =0x0201c000
- ldr r0, [r2, 0x10]
- str r0, [r2, 0x14]
- ldr r1, _0806FFBC @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806FFC0 @ =sub_806F8AC
- str r1, [r0]
- ldrh r0, [r0, 0x1E]
- ldr r1, _0806FFC4 @ =0xfffff282
- adds r2, r1
- strh r0, [r2]
- b _0807000A
- .align 2, 0
-_0806FFB8: .4byte 0x0201c000
-_0806FFBC: .4byte gTasks
-_0806FFC0: .4byte sub_806F8AC
-_0806FFC4: .4byte 0xfffff282
-_0806FFC8:
- ldr r4, _08070018 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0807001C @ =gStringVar1
- bl GetMonNickname
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FFE6
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806FFE6:
- adds r0, r6, 0
- bl GetMedicineItemEffectMessage
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_806E07C
- ldr r0, _08070020 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070024 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
-_08070002:
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070028 @ =sub_806FB0C
- str r1, [r0]
-_0807000A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070018: .4byte 0x0201c000
-_0807001C: .4byte gStringVar1
-_08070020: .4byte gStringVar4
-_08070024: .4byte gTasks
-_08070028: .4byte sub_806FB0C
- thumb_func_end sub_806FE2C
-
- thumb_func_start IsBlueYellowRedFlute
-IsBlueYellowRedFlute: @ 807002C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- beq _0807003E
- cmp r0, 0x29
- beq _0807003E
- cmp r0, 0x28
- bne _08070042
-_0807003E:
- movs r0, 0x1
- b _08070044
-_08070042:
- movs r0, 0
-_08070044:
- pop {r1}
- bx r1
- thumb_func_end IsBlueYellowRedFlute
-
- thumb_func_start sub_8070048
-sub_8070048: @ 8070048
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08070078 @ =0x0201c000
- str r2, [r3, 0x10]
- movs r4, 0
- strb r0, [r3, 0x4]
- movs r2, 0
- strh r1, [r3, 0x6]
- strb r2, [r3, 0x5]
- ldr r1, _0807007C @ =sub_80701DC
- str r1, [r3, 0x14]
- ldr r2, _08070080 @ =0xfffff27e
- adds r1, r3, r2
- strh r4, [r1]
- ldr r1, _08070084 @ =0xfffff280
- adds r3, r1
- strh r4, [r3]
- bl sub_8070088
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070078: .4byte 0x0201c000
-_0807007C: .4byte sub_80701DC
-_08070080: .4byte 0xfffff27e
-_08070084: .4byte 0xfffff280
- thumb_func_end sub_8070048
-
- thumb_func_start sub_8070088
-sub_8070088: @ 8070088
- 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
- ldr r1, _08070120 @ =gTasks
- mov r10, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r2, r10
- adds r7, r1, r2
- ldr r5, _08070124 @ =TaskDummy
- str r5, [r7]
- ldr r4, _08070128 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- movs r1, 0x64
- mov r9, r1
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _0807012C @ =gPlayerParty
- mov r8, r1
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08070118
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- str r0, [sp]
- mov r0, r10
- adds r0, 0x8
- ldr r2, [sp]
- adds r6, r2, r0
- ldrb r0, [r4, 0x5]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x14]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x16]
- ldrb r0, [r4, 0x5]
- ldrh r1, [r4, 0x6]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070134
- adds r0, r5, 0
- bl DestroyTask
-_08070118:
- ldr r0, _08070130 @ =sub_80701DC
- str r0, [r7]
- b _080701B0
- .align 2, 0
-_08070120: .4byte gTasks
-_08070124: .4byte TaskDummy
-_08070128: .4byte 0x0201c000
-_0807012C: .4byte gPlayerParty
-_08070130: .4byte sub_80701DC
-_08070134:
- ldr r1, _080701C0 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl PlaySE
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _080701C4 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x9
- bl task_pc_turn_off
- ldr r2, _080701C8 @ =0xfffff261
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldrh r1, [r6, 0x16]
- subs r0, r1
- strh r0, [r6, 0x18]
- movs r0, 0x1
- strh r0, [r6, 0x1C]
- ldr r1, _080701CC @ =0xfffff27e
- adds r0, r4, r1
- movs r1, 0x1
- strh r1, [r0]
- ldr r2, _080701D0 @ =0xfffff280
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r6, 0x16]
- adds r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080701D4 @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r1, [sp]
- add r1, r10
- ldr r0, _080701D8 @ =sub_806F8AC
- str r0, [r1]
-_080701B0:
- 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
-_080701C0: .4byte gUnknown_0202E8F4
-_080701C4: .4byte gUnknown_083769A8
-_080701C8: .4byte 0xfffff261
-_080701CC: .4byte 0xfffff27e
-_080701D0: .4byte 0xfffff280
-_080701D4: .4byte 0xffff8000
-_080701D8: .4byte sub_806F8AC
- thumb_func_end sub_8070088
-
- thumb_func_start sub_80701DC
-sub_80701DC: @ 80701DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08070280 @ =0x0201b000
- ldr r0, _08070284 @ =0x0000027e
- adds r7, r6, r0
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _0807023E
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070288 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0807023A
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0807028C @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x3
- bl task_pc_turn_off
- ldr r0, _08070290 @ =0x00000261
- adds r1, r6, r0
- movs r0, 0x2
- strb r0, [r1]
-_0807023A:
- movs r0, 0
- strh r0, [r7]
-_0807023E:
- ldr r4, _08070294 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- adds r0, 0x1
- strb r0, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080702D8
- ldr r1, _08070298 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0807029C @ =0xfffff280
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080702B0
- ldr r1, _080702A0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080702A4 @ =TaskDummy
- str r1, [r0]
- ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _080702AC @ =sub_806FB0C
- movs r1, 0x8
- bl CreateTask
- b _080702C6
- .align 2, 0
-_08070280: .4byte 0x0201b000
-_08070284: .4byte 0x0000027e
-_08070288: .4byte gPlayerParty
-_0807028C: .4byte gUnknown_083769A8
-_08070290: .4byte 0x00000261
-_08070294: .4byte 0x0201c000
-_08070298: .4byte gUnknown_0202E8F4
-_0807029C: .4byte 0xfffff280
-_080702A0: .4byte gTasks
-_080702A4: .4byte TaskDummy
-_080702A8: .4byte gOtherText_WontHaveAnyEffect
-_080702AC: .4byte sub_806FB0C
-_080702B0:
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, _080702D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, [r4, 0x10]
- str r1, [r0]
-_080702C6:
- ldr r1, _080702D4 @ =gUnknown_03005CE0
- movs r0, 0
- strb r0, [r1]
- b _080702DE
- .align 2, 0
-_080702D0: .4byte gTasks
-_080702D4: .4byte gUnknown_03005CE0
-_080702D8:
- adds r0, r5, 0
- bl sub_8070088
-_080702DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80701DC
-
- thumb_func_start sub_80702E4
-sub_80702E4: @ 80702E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- movs r0, 0x64
- adds r7, r4, 0
- muls r7, r0
- ldr r0, _0807036C @ =gPlayerParty
- mov r8, r0
-_0807030C:
- adds r1, r5, 0
- adds r1, 0xD
- mov r2, r8
- adds r0, r7, r2
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xD
- muls r0, r4
- ldr r1, _08070370 @ =gMoveNames
- adds r0, r1
- lsls r2, r5, 25
- movs r1, 0xB0
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x14
- bl MenuPrint
- cmp r4, 0
- beq _08070340
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08070340:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0807030C
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- movs r2, 0xB
- adds r3, r6, 0
- bl InitMenu
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807036C: .4byte gPlayerParty
-_08070370: .4byte gMoveNames
- thumb_func_end sub_80702E4
-
- thumb_func_start sub_8070374
-sub_8070374: @ 8070374
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _08070398 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807039C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080703E4
- .align 2, 0
-_08070398: .4byte gMain
-_0807039C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080703B2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080703E4
-_080703B2:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080703CC
- ldr r0, _080703C8 @ =gUnknown_08376B54
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- b _080703E4
- .align 2, 0
-_080703C8: .4byte gUnknown_08376B54
-_080703CC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080703E4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080703EC @ =gUnknown_08376B54
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_080703E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080703EC: .4byte gUnknown_08376B54
- thumb_func_end sub_8070374
-
- thumb_func_start dp05_ether
-dp05_ether: @ 80703F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r5, 0xAF
- bne _08070410
- ldr r0, _0807040C @ =gSaveBlock1 + 0x3676
- b _0807041C
- .align 2, 0
-_0807040C: .4byte gSaveBlock1 + 0x3676
-_08070410:
- ldr r1, _08070464 @ =gItemEffectTable
- adds r0, r5, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0807041C:
- mov r8, r0
- ldr r7, _08070468 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r7
- ldr r0, _0807046C @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r9
- bl sub_806E8D0
- mov r0, r8
- ldrb r1, [r0, 0x4]
- movs r0, 0x10
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08070470
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- strh r1, [r0, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- b _08070498
- .align 2, 0
-_08070464: .4byte gItemEffectTable
-_08070468: .4byte gTasks
-_0807046C: .4byte TaskDummy
-_08070470:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _080704A4 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- ldr r1, _080704A8 @ =sub_8070374
- str r1, [r0]
- ldr r1, _080704AC @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
-_08070498:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080704A4: .4byte 0x0201c000
-_080704A8: .4byte sub_8070374
-_080704AC: .4byte gMain
- thumb_func_end dp05_ether
-
- thumb_func_start ether_effect_related_2
-ether_effect_related_2: @ 80704B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- bl GetMenuCursorPos
- ldr r2, _080704EC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080704EC: .4byte gTasks
- thumb_func_end ether_effect_related_2
-
- thumb_func_start sub_80704F0
-sub_80704F0: @ 80704F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08070528 @ =gMain
- ldr r1, _0807052C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0807053C
- ldr r2, _08070530 @ =gTasks
- ldr r0, _08070534 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08070538 @ =sub_8095118
- b _0807054C
- .align 2, 0
-_08070528: .4byte gMain
-_0807052C: .4byte 0x0000043d
-_08070530: .4byte gTasks
-_08070534: .4byte 0x0201c000
-_08070538: .4byte sub_8095118
-_0807053C:
- ldr r2, _08070564 @ =gTasks
- ldr r0, _08070568 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0807056C @ =sub_808B0C0
-_0807054C:
- str r1, [r0]
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070564: .4byte gTasks
-_08070568: .4byte 0x0201c000
-_0807056C: .4byte sub_808B0C0
- thumb_func_end sub_80704F0
-
- thumb_func_start ether_effect_related
-ether_effect_related: @ 8070570
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r6, _080705A8 @ =0x0201c000
- ldrb r0, [r6, 0x5]
- ldrh r1, [r6, 0x6]
- ldr r3, _080705AC @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r7, r2, r3
- ldrb r2, [r7, 0x1E]
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _080705B8
- ldr r0, _080705B0 @ =gUnknown_0202E8F4
- strb r5, [r0]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- b _080705F8
- .align 2, 0
-_080705A8: .4byte 0x0201c000
-_080705AC: .4byte gTasks
-_080705B0: .4byte gUnknown_0202E8F4
-_080705B4: .4byte gOtherText_WontHaveAnyEffect
-_080705B8:
- ldr r1, _0807060C @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl PlaySE
- ldrh r0, [r6, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r6]
- movs r2, 0x1E
- ldrsh r1, [r7, r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08070610 @ =gStringVar1
- movs r1, 0xD
- muls r1, r5
- ldr r2, _08070614 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldrh r0, [r6, 0x6]
- bl GetMedicineItemEffectMessage
- ldr r0, _08070618 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
-_080705F8:
- ldr r0, _0807061C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070620 @ =sub_806FB0C
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807060C: .4byte gUnknown_0202E8F4
-_08070610: .4byte gStringVar1
-_08070614: .4byte gMoveNames
-_08070618: .4byte gStringVar4
-_0807061C: .4byte gTasks
-_08070620: .4byte sub_806FB0C
- thumb_func_end ether_effect_related
-
- thumb_func_start dp05_pp_up
-dp05_pp_up: @ 8070624
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0807066C @ =gTasks
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r4
- ldr r4, _08070670 @ =TaskDummy
- str r4, [r3]
- bl sub_806E8D0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _08070674 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- ldr r0, _08070678 @ =sub_8070374
- movs r1, 0x5
- bl CreateTask
- ldr r1, _0807067C @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807066C: .4byte gTasks
-_08070670: .4byte TaskDummy
-_08070674: .4byte 0x0201c000
-_08070678: .4byte sub_8070374
-_0807067C: .4byte gMain
- thumb_func_end dp05_pp_up
-
- thumb_func_start sub_8070680
-sub_8070680: @ 8070680
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r3, _080706E0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _080706E4 @ =TaskDummy
- str r3, [r1]
- adds r1, r6, 0
- bl sub_806E8D0
- ldr r5, _080706E8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080706F4
- movs r4, 0
- ldr r0, _080706EC @ =0xfffff264
- adds r7, r5, r0
-_080706B2:
- ldr r0, [r5]
- ldr r1, _080706F0 @ =gUnknown_08376D1C
- adds r1, r4, r1
- ldrb r1, [r1]
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r7, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _080706B2
- ldr r0, _080706E8 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _080706F6
- .align 2, 0
-_080706E0: .4byte gTasks
-_080706E4: .4byte TaskDummy
-_080706E8: .4byte 0x0201c000
-_080706EC: .4byte 0xfffff264
-_080706F0: .4byte gUnknown_08376D1C
-_080706F4:
- movs r0, 0x1
-_080706F6:
- cmp r0, 0
- beq _08070724
- ldr r1, _08070718 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070720 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _0807077C
- .align 2, 0
-_08070718: .4byte gUnknown_0202E8F4
-_0807071C: .4byte gOtherText_WontHaveAnyEffect
-_08070720: .4byte sub_806FB0C
-_08070724:
- ldr r1, _08070784 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl PlayFanfareByFanfareNum
- ldr r4, _08070788 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_8070A20
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r4]
- ldr r1, _0807078C @ =gStringVar1
- bl GetMonNickname
- ldr r0, [r4]
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070790 @ =gStringVar2
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08070794 @ =gStringVar4
- ldr r1, _08070798 @ =gOtherText_ElevatedTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0807079C @ =sub_80707A0
- movs r1, 0x5
- bl CreateTask
-_0807077C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070784: .4byte gUnknown_0202E8F4
-_08070788: .4byte 0x0201c000
-_0807078C: .4byte gStringVar1
-_08070790: .4byte gStringVar2
-_08070794: .4byte gStringVar4
-_08070798: .4byte gOtherText_ElevatedTo
-_0807079C: .4byte sub_80707A0
- thumb_func_end sub_8070680
-
- thumb_func_start sub_80707A0
-sub_80707A0: @ 80707A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _080707E8
- ldr r0, _080707F0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080707E8
- ldr r0, _080707F4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080707CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080707E8
-_080707CE:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070848
- ldr r0, _080707F8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080707FC @ =sub_8070800
- str r0, [r1]
-_080707E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080707F0: .4byte gUnknown_0202E8F6
-_080707F4: .4byte gMain
-_080707F8: .4byte gTasks
-_080707FC: .4byte sub_8070800
- thumb_func_end sub_80707A0
-
- thumb_func_start sub_8070800
-sub_8070800: @ 8070800
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807083C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807081A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08070834
-_0807081A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070968
- ldr r0, _08070840 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070844 @ =sub_8070AC8
- str r0, [r1]
-_08070834:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807083C: .4byte gMain
-_08070840: .4byte gTasks
-_08070844: .4byte sub_8070AC8
- thumb_func_end sub_8070800
-
- thumb_func_start sub_8070848
-sub_8070848: @ 8070848
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuDrawTextWindow
- movs r7, 0
- ldr r0, _080708E4 @ =gStringVar1
- mov r10, r0
-_08070864:
- ldr r1, _080708E8 @ =0x0201c000
- ldr r0, [r1]
- ldr r1, _080708EC @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r7, 0x6
- lsls r1, 1
- ldr r2, _080708F0 @ =0x0201b264
- adds r1, r2
- strh r0, [r1]
- lsls r4, r7, 1
- adds r2, r4, r2
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- adds r1, 0xB
- lsls r1, 24
- lsrs r6, r1, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080708F4 @ =gUnknown_08376D04
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- adds r1, r6, 0x1
- lsls r1, 27
- lsrs r1, 24
- mov r2, r9
- lsls r5, r2, 3
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- mov r8, r4
- cmp r7, 0x2
- bne _080708FC
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080708F8 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- b _08070910
- .align 2, 0
-_080708E4: .4byte gStringVar1
-_080708E8: .4byte 0x0201c000
-_080708EC: .4byte gUnknown_08376D1C
-_080708F0: .4byte 0x0201b264
-_080708F4: .4byte gUnknown_08376D04
-_080708F8: .4byte gOtherText_TallPlusAndRightArrow
-_080708FC:
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070960 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_08070910:
- movs r0, 0xFC
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- ldr r0, _08070964 @ =0x0201b264
- add r0, r8
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r0, r10
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r1, r4, 27
- movs r0, 0xC0
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- mov r0, r9
- lsls r2, r0, 3
- mov r0, r10
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070864
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070960: .4byte gOtherText_TallPlusAndRightArrow
-_08070964: .4byte 0x0201b264
- thumb_func_end sub_8070848
-
- thumb_func_start sub_8070968
-sub_8070968: @ 8070968
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- ldr r0, _08070A10 @ =0x0201c000
- mov r9, r0
- ldr r1, _08070A14 @ =0xfffff264
- add r1, r9
- mov r10, r1
- ldr r0, _08070A18 @ =gStringVar1
- mov r8, r0
-_08070982:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, _08070A1C @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r6, r7, 0x6
- lsls r6, 1
- add r6, r10
- strh r0, [r6]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- adds r4, 0xB
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 1
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- movs r0, 0
- ldrsh r1, [r6, r0]
- mov r0, r8
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, 0x6
- lsls r4, 3
- adds r4, 0x6
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 3
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070982
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070A10: .4byte 0x0201c000
-_08070A14: .4byte 0xfffff264
-_08070A18: .4byte gStringVar1
-_08070A1C: .4byte gUnknown_08376D1C
- thumb_func_end sub_8070968
-
- thumb_func_start sub_8070A20
-sub_8070A20: @ 8070A20
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08070A3A
- cmp r0, 0x6
- bne _08070A42
-_08070A3A:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_806FBB4
-_08070A42:
- bl battle_type_is_double
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806E420
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E674
- ldr r4, _08070ABC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- adds r1, r7, 0
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- lsls r1, r7, 1
- adds r0, r1
- ldr r1, _08070AC0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _08070AC4 @ =0xfffff261
- adds r4, r0
- movs r0, 0x2
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070ABC: .4byte 0x0201c000
-_08070AC0: .4byte gUnknown_083769A8
-_08070AC4: .4byte 0xfffff261
- thumb_func_end sub_8070A20
-
- thumb_func_start sub_8070AC8
-sub_8070AC8: @ 8070AC8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- bne _08070ADC
- b _08070C2C
-_08070ADC:
- ldr r0, _08070B24 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- b _08070C2C
-_08070AF4:
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuZeroFillWindowRect
- ldr r7, _08070B28 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08070B2C @ =0xfffff282
- adds r0, r7, r1
- strh r5, [r0]
- ldr r0, _08070B30 @ =0x0000fffe
- cmp r4, r0
- beq _08070BDC
- cmp r4, r0
- bgt _08070B34
- cmp r4, 0
- beq _08070B40
- b _08070BF4
- .align 2, 0
-_08070B24: .4byte gMain
-_08070B28: .4byte 0x0201c000
-_08070B2C: .4byte 0xfffff282
-_08070B30: .4byte 0x0000fffe
-_08070B34:
- ldr r0, _08070B3C @ =0x0000ffff
- cmp r4, r0
- beq _08070B7C
- b _08070BF4
- .align 2, 0
-_08070B3C: .4byte 0x0000ffff
-_08070B40:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070B74
- ldr r1, _08070B6C @ =gUnknown_03005E94
- ldr r0, _08070B70 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070C2C
- .align 2, 0
-_08070B6C: .4byte gUnknown_03005E94
-_08070B70: .4byte sub_80A53F8
-_08070B74:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070C2C
-_08070B7C:
- ldr r0, [r7]
- ldr r1, _08070BBC @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070BC0 @ =gStringVar2
- ldr r5, _08070BC4 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070BC8 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070BCC @ =gStringVar4
- ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070BD4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070BD8 @ =sub_806F358
- b _08070C2A
- .align 2, 0
-_08070BBC: .4byte gStringVar1
-_08070BC0: .4byte gStringVar2
-_08070BC4: .4byte word_2024E82
-_08070BC8: .4byte gMoveNames
-_08070BCC: .4byte gStringVar4
-_08070BD0: .4byte gOtherText_WantsToLearn
-_08070BD4: .4byte gTasks
-_08070BD8: .4byte sub_806F358
-_08070BDC:
- ldr r0, _08070BEC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070BF0 @ =sub_8070C54
- str r0, [r1]
- b _08070C2C
- .align 2, 0
-_08070BEC: .4byte gTasks
-_08070BF0: .4byte sub_8070C54
-_08070BF4:
- ldr r0, _08070C34 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070C38 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070C3C @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070C40 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070C44 @ =gStringVar4
- ldr r1, _08070C48 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070C4C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070C50 @ =sub_806F254
-_08070C2A:
- str r1, [r0]
-_08070C2C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070C34: .4byte 0x0201c000
-_08070C38: .4byte gStringVar1
-_08070C3C: .4byte gStringVar2
-_08070C40: .4byte gMoveNames
-_08070C44: .4byte gStringVar4
-_08070C48: .4byte gOtherText_LearnedMove
-_08070C4C: .4byte gTasks
-_08070C50: .4byte sub_806F254
- thumb_func_end sub_8070AC8
-
- thumb_func_start sub_8070C54
-sub_8070C54: @ 8070C54
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08070C78 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08070C7C @ =0x0000fffe
- cmp r4, r0
- beq _08070D28
- cmp r4, r0
- bgt _08070C80
- cmp r4, 0
- beq _08070C8C
- b _08070D30
- .align 2, 0
-_08070C78: .4byte 0x0201c000
-_08070C7C: .4byte 0x0000fffe
-_08070C80:
- ldr r0, _08070C88 @ =0x0000ffff
- cmp r4, r0
- beq _08070CC8
- b _08070D30
- .align 2, 0
-_08070C88: .4byte 0x0000ffff
-_08070C8C:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070CC0
- ldr r1, _08070CB8 @ =gUnknown_03005E94
- ldr r0, _08070CBC @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070D68
- .align 2, 0
-_08070CB8: .4byte gUnknown_03005E94
-_08070CBC: .4byte sub_80A53F8
-_08070CC0:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070D68
-_08070CC8:
- ldr r0, [r7]
- ldr r1, _08070D08 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D0C @ =gStringVar2
- ldr r5, _08070D10 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070D14 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D18 @ =gStringVar4
- ldr r1, _08070D1C @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070D20 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D24 @ =sub_806F358
- b _08070D66
- .align 2, 0
-_08070D08: .4byte gStringVar1
-_08070D0C: .4byte gStringVar2
-_08070D10: .4byte word_2024E82
-_08070D14: .4byte gMoveNames
-_08070D18: .4byte gStringVar4
-_08070D1C: .4byte gOtherText_WantsToLearn
-_08070D20: .4byte gTasks
-_08070D24: .4byte sub_806F358
-_08070D28:
- adds r0, r6, 0
- bl sub_8070C54
- b _08070D68
-_08070D30:
- ldr r0, _08070D70 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070D74 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D78 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070D7C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D80 @ =gStringVar4
- ldr r1, _08070D84 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070D88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D8C @ =sub_806F254
-_08070D66:
- str r1, [r0]
-_08070D68:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070D70: .4byte 0x0201c000
-_08070D74: .4byte gStringVar1
-_08070D78: .4byte gStringVar2
-_08070D7C: .4byte gMoveNames
-_08070D80: .4byte gStringVar4
-_08070D84: .4byte gOtherText_LearnedMove
-_08070D88: .4byte gTasks
-_08070D8C: .4byte sub_806F254
- thumb_func_end sub_8070C54
-
- thumb_func_start sub_8070D90
-sub_8070D90: @ 8070D90
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08070DB4 @ =gTasks
- ldr r3, _08070DB8 @ =0x0201c000
- ldrb r2, [r3, 0x4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r4
- ldr r2, [r3, 0x10]
- str r2, [r1]
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070DB4: .4byte gTasks
-_08070DB8: .4byte 0x0201c000
- thumb_func_end sub_8070D90
-
- thumb_func_start sub_8070DBC
-sub_8070DBC: @ 8070DBC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08070E18 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070E1C @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r1, _08070E20 @ =gUnknown_03005E94
- ldr r0, _08070E24 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, _08070E28 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070E38
- ldr r1, _08070E2C @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070E34 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _08070E40
- .align 2, 0
-_08070E18: .4byte gTasks
-_08070E1C: .4byte TaskDummy
-_08070E20: .4byte gUnknown_03005E94
-_08070E24: .4byte sub_80A53F8
-_08070E28: .4byte 0x0201c000
-_08070E2C: .4byte gUnknown_0202E8F4
-_08070E30: .4byte gOtherText_WontHaveAnyEffect
-_08070E34: .4byte sub_806FB0C
-_08070E38:
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_08070E40:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8070DBC
-
- thumb_func_start sub_8070E48
-sub_8070E48: @ 8070E48
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08070E5C
- ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
- b _08070E66
- .align 2, 0
-_08070E58: .4byte gSaveBlock1 + 0x3676
-_08070E5C:
- ldr r1, _08070E8C @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
-_08070E66:
- ldrb r1, [r4]
- movs r5, 0x3F
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _08070E88
- ldrb r3, [r4, 0x3]
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _08070E90
-_08070E88:
- movs r0, 0
- b _08070F8A
- .align 2, 0
-_08070E8C: .4byte gItemEffectTable
-_08070E90:
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08070E9E
- movs r0, 0xA
- b _08070F8A
-_08070E9E:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08070EAA
- movs r0, 0x1
- b _08070F8A
-_08070EAA:
- adds r2, r5, 0
- ands r2, r3
- cmp r2, 0
- bne _08070EB8
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EFA
-_08070EB8:
- cmp r2, 0x20
- bne _08070EC0
- movs r0, 0x4
- b _08070F8A
-_08070EC0:
- cmp r2, 0x10
- bne _08070EC8
- movs r0, 0x3
- b _08070F8A
-_08070EC8:
- cmp r2, 0x8
- bne _08070ED0
- movs r0, 0x5
- b _08070F8A
-_08070ED0:
- cmp r2, 0x4
- bne _08070ED8
- movs r0, 0x6
- b _08070F8A
-_08070ED8:
- cmp r2, 0x2
- bne _08070EE0
- movs r0, 0x7
- b _08070F8A
-_08070EE0:
- cmp r2, 0x1
- bne _08070EE8
- movs r0, 0x8
- b _08070F8A
-_08070EE8:
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EF6
- cmp r2, 0
- bne _08070EF6
- movs r0, 0x9
- b _08070F8A
-_08070EF6:
- movs r0, 0xB
- b _08070F8A
-_08070EFA:
- ldrb r1, [r4, 0x4]
- movs r0, 0x44
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- beq _08070F0A
- movs r0, 0x2
- b _08070F8A
-_08070F0A:
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F18
- movs r0, 0xC
- b _08070F8A
-_08070F18:
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F26
- movs r0, 0xD
- b _08070F8A
-_08070F26:
- ldrb r1, [r4, 0x5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08070F34
- movs r0, 0xE
- b _08070F8A
-_08070F34:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08070F40
- movs r0, 0xF
- b _08070F8A
-_08070F40:
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F4C
- movs r0, 0x10
- b _08070F8A
-_08070F4C:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F58
- movs r0, 0x11
- b _08070F8A
-_08070F58:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08070F64
- movs r0, 0x12
- b _08070F8A
-_08070F64:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08070F70
- movs r0, 0x13
- b _08070F8A
-_08070F70:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08070F7C
- movs r0, 0x14
- b _08070F8A
-_08070F7C:
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _08070F88
- movs r0, 0x16
- b _08070F8A
-_08070F88:
- movs r0, 0x15
-_08070F8A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8070E48
-
- thumb_func_start unref_sub_8070F90
-unref_sub_8070F90: @ 8070F90
- push {lr}
- ldr r0, _08070FAC @ =0x00000801
- bl FlagSet
- movs r0, 0x80
- lsls r0, 4
- bl FlagSet
- ldr r0, _08070FB0 @ =0x00000802
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08070FAC: .4byte 0x00000801
-_08070FB0: .4byte 0x00000802
- thumb_func_end unref_sub_8070F90
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8074BAC.s b/asm/rom_8077ABC.s
index 27f89abde..db413817a 100644
--- a/asm/rom_8074BAC.s
+++ b/asm/rom_8077ABC.s
@@ -6,4726 +6,6 @@
.text
- thumb_func_start sub_8075624
-sub_8075624: @ 8075624
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080756B8 @ =gUnknown_0202F7B0
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080756BC @ =gUnknown_0202F7B1
- strb r1, [r0]
- ldr r0, _080756C0 @ =gUnknown_0202F7B2
- strb r1, [r0]
- ldr r0, _080756C4 @ =gUnknown_0202F7B3
- strb r1, [r0]
- ldr r0, _080756C8 @ =gUnknown_0202F7B4
- movs r1, 0
- str r1, [r0]
- ldr r0, _080756CC @ =gUnknown_0202F7B8
- str r1, [r0]
- ldr r0, _080756D0 @ =gUnknown_0202F7BC
- movs r2, 0
- strh r1, [r0]
- ldr r0, _080756D4 @ =gUnknown_0202F7BE
- strb r2, [r0]
- ldr r4, _080756D8 @ =gUnknown_0202F7C2
- ldr r5, _080756DC @ =gUnknown_0202F7C4
- ldr r6, _080756E0 @ =gUnknown_0202F7C5
- ldr r7, _080756E4 @ =gUnknown_0202F7C6
- ldr r0, _080756E8 @ =gUnknown_0202F7C8
- mov r12, r0
- ldr r1, _080756EC @ =gUnknown_0202F7C9
- mov r8, r1
- ldr r0, _080756F0 @ =gUnknown_0202F7D2
- mov r9, r0
- ldr r1, _080756F4 @ =0x0000ffff
- adds r3, r1, 0
- ldr r1, _080756F8 @ =gUnknown_03004B10
- movs r2, 0x7
-_0807566E:
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0807566E
- ldr r1, _080756FC @ =gUnknown_03004B00
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_08075684:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _08075684
- movs r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x1]
- strb r1, [r5]
- strb r1, [r6]
- movs r0, 0
- strh r1, [r7]
- mov r1, r12
- strb r0, [r1]
- mov r1, r8
- strb r0, [r1]
- mov r1, r9
- strb r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080756B8: .4byte gUnknown_0202F7B0
-_080756BC: .4byte gUnknown_0202F7B1
-_080756C0: .4byte gUnknown_0202F7B2
-_080756C4: .4byte gUnknown_0202F7B3
-_080756C8: .4byte gUnknown_0202F7B4
-_080756CC: .4byte gUnknown_0202F7B8
-_080756D0: .4byte gUnknown_0202F7BC
-_080756D4: .4byte gUnknown_0202F7BE
-_080756D8: .4byte gUnknown_0202F7C2
-_080756DC: .4byte gUnknown_0202F7C4
-_080756E0: .4byte gUnknown_0202F7C5
-_080756E4: .4byte gUnknown_0202F7C6
-_080756E8: .4byte gUnknown_0202F7C8
-_080756EC: .4byte gUnknown_0202F7C9
-_080756F0: .4byte gUnknown_0202F7D2
-_080756F4: .4byte 0x0000ffff
-_080756F8: .4byte gUnknown_03004B10
-_080756FC: .4byte gUnknown_03004B00
- thumb_func_end sub_8075624
-
- thumb_func_start move_anim_start_t1
-move_anim_start_t1: @ 8075700
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08075724 @ =gUnknown_0202F7C8
- ldr r0, _08075728 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, _0807572C @ =gUnknown_0202F7C9
- ldr r0, _08075730 @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08075734 @ =gBattleAnims_Moves
- movs r2, 0x1
- bl move_something
- pop {r0}
- bx r0
- .align 2, 0
-_08075724: .4byte gUnknown_0202F7C8
-_08075728: .4byte gUnknown_02024C07
-_0807572C: .4byte gUnknown_0202F7C9
-_08075730: .4byte gUnknown_02024C08
-_08075734: .4byte gBattleAnims_Moves
- thumb_func_end move_anim_start_t1
-
- thumb_func_start move_something
-move_something: @ 8075738
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080757D8
- bl sub_8079E24
- movs r0, 0
- bl sub_8043EB4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r6, _0807578C @ =gUnknown_02024A6A
- movs r7, 0x64
- ldr r5, _08075790 @ =gUnknown_0202F7CA
-_08075774:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08075798
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, _08075794 @ =gEnemyParty
- b _0807579E
- .align 2, 0
-_0807578C: .4byte gUnknown_02024A6A
-_08075790: .4byte gUnknown_0202F7CA
-_08075794: .4byte gEnemyParty
-_08075798:
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, _080757C0 @ =gPlayerParty
-_0807579E:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- strh r0, [r5]
- adds r6, 0x2
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _08075774
- ldr r3, _080757C4 @ =gUnknown_0202F7C6
- ldr r5, _080757C8 @ =gUnknown_0202F7C2
- ldr r1, _080757CC @ =gUnknown_0202F7B1
- mov r12, r1
- ldr r7, _080757D0 @ =gUnknown_0202F7AC
- ldr r6, _080757D4 @ =sub_80759D0
- b _080757FC
- .align 2, 0
-_080757C0: .4byte gPlayerParty
-_080757C4: .4byte gUnknown_0202F7C6
-_080757C8: .4byte gUnknown_0202F7C2
-_080757CC: .4byte gUnknown_0202F7B1
-_080757D0: .4byte gUnknown_0202F7AC
-_080757D4: .4byte sub_80759D0
-_080757D8:
- ldr r3, _08075808 @ =gUnknown_0202F7C6
- ldr r5, _0807580C @ =gUnknown_0202F7C2
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r1, _08075810 @ =gUnknown_0202F7B1
- mov r12, r1
- ldr r7, _08075814 @ =gUnknown_0202F7AC
- ldr r6, _08075818 @ =sub_80759D0
- ldr r2, _0807581C @ =0x02019348
- ldr r1, _08075820 @ =gUnknown_0202F7CA
- movs r4, 0x3
-_080757F0:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080757F0
-_080757FC:
- mov r0, r9
- cmp r0, 0
- bne _08075824
- strh r0, [r3]
- b _08075828
- .align 2, 0
-_08075808: .4byte gUnknown_0202F7C6
-_0807580C: .4byte gUnknown_0202F7C2
-_08075810: .4byte gUnknown_0202F7B1
-_08075814: .4byte gUnknown_0202F7AC
-_08075818: .4byte sub_80759D0
-_0807581C: .4byte 0x02019348
-_08075820: .4byte gUnknown_0202F7CA
-_08075824:
- mov r1, r8
- strh r1, [r3]
-_08075828:
- ldr r1, _0807587C @ =gUnknown_03004B00
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_08075830:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _08075830
- movs r0, 0xFF
- strb r0, [r5]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5, 0x1]
- ldr r0, [sp]
- add r0, r10
- ldr r0, [r0]
- ldr r1, _08075880 @ =gUnknown_0202F7A4
- str r0, [r1]
- movs r0, 0x1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- ldr r1, _08075884 @ =gUnknown_0202F7B0
- strb r0, [r1]
- str r6, [r7]
- ldr r0, _08075888 @ =0x0000ffff
- adds r2, r0, 0
- ldr r1, _0807588C @ =gUnknown_03004B10
- movs r4, 0x7
-_08075862:
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08075862
- mov r1, r9
- cmp r1, 0
- beq _080758AE
- movs r4, 0
- ldr r2, _08075890 @ =gUnknown_081C7160
- b _08075896
- .align 2, 0
-_0807587C: .4byte gUnknown_03004B00
-_08075880: .4byte gUnknown_0202F7A4
-_08075884: .4byte gUnknown_0202F7B0
-_08075888: .4byte 0x0000ffff
-_0807588C: .4byte gUnknown_03004B10
-_08075890: .4byte gUnknown_081C7160
-_08075894:
- adds r4, 0x1
-_08075896:
- lsls r0, r4, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r1, _080758D0 @ =0x0000ffff
- cmp r0, r1
- beq _080758AE
- cmp r8, r0
- bne _08075894
- ldr r0, _080758D4 @ =gMPlay_BGM
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_080758AE:
- ldr r0, _080758D8 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080758DC @ =gUnknown_03004240
- strh r1, [r0]
- ldr r0, _080758E0 @ =gUnknown_03004200
- strh r1, [r0]
- ldr r0, _080758E4 @ =gUnknown_03004244
- strh r1, [r0]
- 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
-_080758D0: .4byte 0x0000ffff
-_080758D4: .4byte gMPlay_BGM
-_080758D8: .4byte gUnknown_030042C4
-_080758DC: .4byte gUnknown_03004240
-_080758E0: .4byte gUnknown_03004200
-_080758E4: .4byte gUnknown_03004244
- thumb_func_end move_something
-
- thumb_func_start move_anim_8072740
-move_anim_8072740: @ 80758E8
- push {r4,lr}
- adds r4, r0, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _08075904 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075904: .4byte gUnknown_0202F7B2
- thumb_func_end move_anim_8072740
-
- thumb_func_start move_anim_task_del
-move_anim_task_del: @ 8075908
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _08075920 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08075920: .4byte gUnknown_0202F7B2
- thumb_func_end move_anim_task_del
-
- thumb_func_start move_anim_related_task_del
-move_anim_related_task_del: @ 8075924
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _0807593C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0807593C: .4byte gUnknown_0202F7B3
- thumb_func_end move_anim_related_task_del
-
- thumb_func_start sub_8075940
-sub_8075940: @ 8075940
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r4, _08075958 @ =0x0000ffff
- ldr r1, _0807595C @ =gUnknown_03004B10
-_0807594C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08075960
- strh r3, [r1]
- b _08075968
- .align 2, 0
-_08075958: .4byte 0x0000ffff
-_0807595C: .4byte gUnknown_03004B10
-_08075960:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _0807594C
-_08075968:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075940
-
- thumb_func_start sub_8075970
-sub_8075970: @ 8075970
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r0, _0807598C @ =0x0000ffff
- adds r4, r0, 0
- ldr r1, _08075990 @ =gUnknown_03004B10
-_0807597E:
- ldrh r0, [r1]
- cmp r0, r3
- bne _08075994
- orrs r0, r4
- strh r0, [r1]
- b _0807599C
- .align 2, 0
-_0807598C: .4byte 0x0000ffff
-_08075990: .4byte gUnknown_03004B10
-_08075994:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _0807597E
-_0807599C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075970
-
- thumb_func_start move_anim_waiter
-move_anim_waiter: @ 80759A4
- push {lr}
- ldr r2, _080759BC @ =gUnknown_0202F7B0
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bgt _080759C8
- ldr r0, _080759C0 @ =gUnknown_0202F7AC
- ldr r1, _080759C4 @ =sub_80759D0
- str r1, [r0]
- movs r0, 0
- b _080759CA
- .align 2, 0
-_080759BC: .4byte gUnknown_0202F7B0
-_080759C0: .4byte gUnknown_0202F7AC
-_080759C4: .4byte sub_80759D0
-_080759C8:
- subs r0, r1, 0x1
-_080759CA:
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end move_anim_waiter
-
- thumb_func_start sub_80759D0
-sub_80759D0: @ 80759D0
- push {r4,lr}
- ldr r4, _08075A00 @ =gUnknown_0837F4B8
-_080759D4:
- ldr r0, _08075A04 @ =gUnknown_0202F7A4
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08075A08 @ =gUnknown_0202F7B0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080759F8
- ldr r0, _08075A0C @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080759D4
-_080759F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075A00: .4byte gUnknown_0837F4B8
-_08075A04: .4byte gUnknown_0202F7A4
-_08075A08: .4byte gUnknown_0202F7B0
-_08075A0C: .4byte gUnknown_0202F7B1
- thumb_func_end sub_80759D0
-
- thumb_func_start ma00_load_graphics
-ma00_load_graphics: @ 8075A10
- push {r4-r6,lr}
- ldr r6, _08075A5C @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- lsls r5, r4, 3
- ldr r0, _08075A60 @ =gBattleAnimPicTable - (10000 * 8)
- adds r0, r5, r0
- bl LoadCompressedObjectPic
- ldr r0, _08075A64 @ =gBattleAnimPaletteTable - (10000 * 8)
- adds r5, r0
- adds r0, r5, 0
- bl LoadCompressedObjectPalette
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- ldr r0, _08075A68 @ =0xffffd8f0
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8075940
- ldr r1, _08075A6C @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08075A70 @ =gUnknown_0202F7AC
- ldr r0, _08075A74 @ =move_anim_waiter
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075A5C: .4byte gUnknown_0202F7A4
-_08075A60: .4byte gBattleAnimPicTable - (10000 * 8)
-_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8)
-_08075A68: .4byte 0xffffd8f0
-_08075A6C: .4byte gUnknown_0202F7B0
-_08075A70: .4byte gUnknown_0202F7AC
-_08075A74: .4byte move_anim_waiter
- thumb_func_end ma00_load_graphics
-
- thumb_func_start ma01_080728D0
-ma01_080728D0: @ 8075A78
- push {r4-r6,lr}
- ldr r6, _08075AB8 @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- ldr r1, _08075ABC @ =gBattleAnimPicTable
- ldr r0, _08075AC0 @ =0xffffd8f0
- adds r4, r0
- lsls r0, r4, 3
- adds r0, r1
- ldrh r5, [r0, 0x6]
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8075970
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075AB8: .4byte gUnknown_0202F7A4
-_08075ABC: .4byte gBattleAnimPicTable
-_08075AC0: .4byte 0xffffd8f0
- thumb_func_end ma01_080728D0
-
- thumb_func_start ma02_instanciate_template
-ma02_instanciate_template: @ 8075AC4
- push {r4-r7,lr}
- ldr r5, _08075B2C @ =gUnknown_0202F7A4
- ldr r1, [r5]
- adds r3, r1, 0x1
- str r3, [r5]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r7, r2, r0
- adds r0, r1, 0x5
- str r0, [r5]
- ldrb r4, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r5]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r5]
- cmp r0, 0
- beq _08075B14
- adds r6, r5, 0
- ldr r5, _08075B30 @ =gUnknown_03004B00
- adds r3, r0, 0
-_08075AFC:
- ldr r2, [r6]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r5]
- adds r2, 0x2
- str r2, [r6]
- adds r5, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08075AFC
-_08075B14:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _08075B44
- movs r0, 0x80
- eors r4, r0
- cmp r4, 0x3F
- bls _08075B34
- adds r0, r4, 0
- subs r0, 0x40
- b _08075B36
- .align 2, 0
-_08075B2C: .4byte gUnknown_0202F7A4
-_08075B30: .4byte gUnknown_03004B00
-_08075B34:
- negs r0, r4
-_08075B36:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08075B40 @ =gUnknown_0202F7C9
- b _08075B56
- .align 2, 0
-_08075B40: .4byte gUnknown_0202F7C9
-_08075B44:
- cmp r4, 0x3F
- bls _08075B4E
- adds r0, r4, 0
- subs r0, 0x40
- b _08075B50
-_08075B4E:
- negs r0, r4
-_08075B50:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08075BAC @ =gUnknown_0202F7C8
-_08075B56:
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _08075B74
- movs r6, 0x3
-_08075B74:
- ldr r5, _08075BB0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl CreateSpriteAndAnimate
- ldr r1, _08075BB4 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075BAC: .4byte gUnknown_0202F7C8
-_08075BB0: .4byte gUnknown_0202F7C9
-_08075BB4: .4byte gUnknown_0202F7B2
- thumb_func_end ma02_instanciate_template
-
- thumb_func_start sub_8075BB8
-sub_8075BB8: @ 8075BB8
- push {r4-r7,lr}
- ldr r4, _08075C28 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r7, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r4]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r4]
- cmp r0, 0
- beq _08075C08
- adds r5, r4, 0
- ldr r4, _08075C2C @ =gUnknown_03004B00
- adds r3, r0, 0
-_08075BF0:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08075BF0
-_08075C08:
- adds r0, r6, 0
- adds r1, r7, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, _08075C30 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075C28: .4byte gUnknown_0202F7A4
-_08075C2C: .4byte gUnknown_03004B00
-_08075C30: .4byte gUnknown_0202F7B2
- thumb_func_end sub_8075BB8
-
- thumb_func_start ma04_wait_countdown
-ma04_wait_countdown: @ 8075C34
- push {r4,lr}
- ldr r1, _08075C64 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r2, r0, 0x1
- str r2, [r1]
- ldr r3, _08075C68 @ =gUnknown_0202F7B0
- ldrb r0, [r0, 0x1]
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bne _08075C52
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- strb r0, [r3]
-_08075C52:
- adds r0, r2, 0x1
- str r0, [r1]
- ldr r1, _08075C6C @ =gUnknown_0202F7AC
- ldr r0, _08075C70 @ =move_anim_waiter
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075C64: .4byte gUnknown_0202F7A4
-_08075C68: .4byte gUnknown_0202F7B0
-_08075C6C: .4byte gUnknown_0202F7AC
-_08075C70: .4byte move_anim_waiter
- thumb_func_end ma04_wait_countdown
-
- thumb_func_start sub_8075C74
-sub_8075C74: @ 8075C74
- push {lr}
- ldr r0, _08075C8C @ =gUnknown_0202F7B2
- ldrb r2, [r0]
- cmp r2, 0
- bne _08075C98
- ldr r0, _08075C90 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _08075C94 @ =gUnknown_0202F7B0
- strb r2, [r0]
- b _08075C9E
- .align 2, 0
-_08075C8C: .4byte gUnknown_0202F7B2
-_08075C90: .4byte gUnknown_0202F7A4
-_08075C94: .4byte gUnknown_0202F7B0
-_08075C98:
- ldr r1, _08075CA4 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
-_08075C9E:
- pop {r0}
- bx r0
- .align 2, 0
-_08075CA4: .4byte gUnknown_0202F7B0
- thumb_func_end sub_8075C74
-
- thumb_func_start nullsub_53
-nullsub_53: @ 8075CA8
- bx lr
- thumb_func_end nullsub_53
-
- thumb_func_start nullsub_88
-nullsub_88: @ 8075CAC
- bx lr
- thumb_func_end nullsub_88
-
- thumb_func_start sub_8075CB0
-sub_8075CB0: @ 8075CB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- ldr r0, _08075CE0 @ =gUnknown_0202F7B2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08075CD8
- ldr r0, _08075CE4 @ =gUnknown_0202F7B3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08075CD8
- ldr r1, _08075CE8 @ =gUnknown_0202F7C2
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08075CD8
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08075CF0
-_08075CD8:
- ldr r1, _08075CEC @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
- b _08075D0A
- .align 2, 0
-_08075CE0: .4byte gUnknown_0202F7B2
-_08075CE4: .4byte gUnknown_0202F7B3
-_08075CE8: .4byte gUnknown_0202F7C2
-_08075CEC: .4byte gUnknown_03004AF0
-_08075CF0:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08075D28
- ldr r1, _08075D14 @ =gUnknown_03004AF0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bhi _08075D1C
-_08075D0A:
- ldr r1, _08075D18 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- b _08075D8E
- .align 2, 0
-_08075D14: .4byte gUnknown_03004AF0
-_08075D18: .4byte gUnknown_0202F7B0
-_08075D1C:
- ldr r0, _08075D98 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08075D9C @ =gMPlay_SE2
- bl m4aMPlayStop
-_08075D28:
- ldr r1, _08075DA0 @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
- movs r5, 0
- ldr r7, _08075DA4 @ =0x0000ffff
- ldr r6, _08075DA8 @ =gBattleAnimPicTable
- ldr r4, _08075DAC @ =gUnknown_03004B10
-_08075D36:
- ldrh r0, [r4]
- cmp r0, r7
- beq _08075D5A
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4]
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpritePaletteByTag
- ldrh r1, [r4]
- adds r0, r7, 0
- orrs r0, r1
- strh r0, [r4]
-_08075D5A:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x7
- ble _08075D36
- mov r1, r8
- cmp r1, 0
- bne _08075D8E
- ldr r0, _08075DB0 @ =gMPlay_BGM
- ldr r1, _08075DA4 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08075D88
- bl sub_8079E24
- movs r0, 0x1
- bl sub_8043EB4
-_08075D88:
- ldr r0, _08075DB4 @ =gUnknown_0202F7B1
- mov r1, r8
- strb r1, [r0]
-_08075D8E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075D98: .4byte gMPlay_SE1
-_08075D9C: .4byte gMPlay_SE2
-_08075DA0: .4byte gUnknown_03004AF0
-_08075DA4: .4byte 0x0000ffff
-_08075DA8: .4byte gBattleAnimPicTable
-_08075DAC: .4byte gUnknown_03004B10
-_08075DB0: .4byte gMPlay_BGM
-_08075DB4: .4byte gUnknown_0202F7B1
- thumb_func_end sub_8075CB0
-
- thumb_func_start ma09_play_sound
-ma09_play_sound: @ 8075DB8
- push {r4,lr}
- ldr r4, _08075DDC @ =gUnknown_0202F7A4
- ldr r0, [r4]
- adds r1, r0, 0x1
- str r1, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075DDC: .4byte gUnknown_0202F7A4
- thumb_func_end ma09_play_sound
-
- thumb_func_start sub_8075DE0
-sub_8075DE0: @ 8075DE0
- push {r4-r7,lr}
- ldr r0, _08075DF4 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r6, [r2, 0x1]
- cmp r6, 0
- bne _08075DF8
- movs r6, 0x2
- b _08075E02
- .align 2, 0
-_08075DF4: .4byte gUnknown_0202F7A4
-_08075DF8:
- cmp r6, 0x1
- bne _08075DFE
- movs r6, 0x3
-_08075DFE:
- cmp r6, 0
- beq _08075E06
-_08075E02:
- cmp r6, 0x2
- bne _08075E10
-_08075E06:
- ldr r0, _08075E0C @ =gUnknown_0202F7C8
- b _08075E12
- .align 2, 0
-_08075E0C: .4byte gUnknown_0202F7C8
-_08075E10:
- ldr r0, _08075E44 @ =gUnknown_0202F7C9
-_08075E12:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08075ECE
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08075E3E
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075E48
-_08075E3E:
- movs r7, 0
- b _08075E4A
- .align 2, 0
-_08075E44: .4byte gUnknown_0202F7C9
-_08075E48:
- movs r7, 0x1
-_08075E4A:
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8076034
- ldr r0, _08075E98 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r4, [r0]
- ldr r0, _08075E9C @ =task_pA_ma0A_obj_to_bg_pal
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08075EA0 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x8]
- ldr r1, _08075EA4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x24]
- ldrh r4, [r0, 0x20]
- adds r1, r4
- strh r1, [r2, 0xA]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r2, 0xC]
- cmp r7, 0
- bne _08075EB0
- ldr r0, _08075EA8 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075EAC @ =gUnknown_030041B4
- b _08075EB8
- .align 2, 0
-_08075E98: .4byte gUnknown_02024BE0
-_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal
-_08075EA0: .4byte gTasks
-_08075EA4: .4byte gSprites
-_08075EA8: .4byte gUnknown_030042C0
-_08075EAC: .4byte gUnknown_030041B4
-_08075EB0:
- ldr r0, _08075F04 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075F08 @ =gUnknown_03004280
-_08075EB8:
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldr r0, _08075F0C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r7, [r1, 0x12]
- strh r5, [r1, 0x14]
- ldr r0, _08075F10 @ =gUnknown_0202F7C2
- strb r3, [r0]
-_08075ECE:
- movs r0, 0x2
- eors r5, r0
- cmp r6, 0x1
- bls _08075F9A
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08075F9A
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08075F00
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075F14
-_08075F00:
- movs r7, 0
- b _08075F16
- .align 2, 0
-_08075F04: .4byte gUnknown_03004288
-_08075F08: .4byte gUnknown_03004280
-_08075F0C: .4byte gTasks
-_08075F10: .4byte gUnknown_0202F7C2
-_08075F14:
- movs r7, 0x1
-_08075F16:
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8076034
- ldr r0, _08075F64 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r4, [r0]
- ldr r0, _08075F68 @ =task_pA_ma0A_obj_to_bg_pal
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08075F6C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x8]
- ldr r1, _08075F70 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x24]
- ldrh r4, [r0, 0x20]
- adds r1, r4
- strh r1, [r2, 0xA]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r2, 0xC]
- cmp r7, 0
- bne _08075F7C
- ldr r0, _08075F74 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075F78 @ =gUnknown_030041B4
- b _08075F84
- .align 2, 0
-_08075F64: .4byte gUnknown_02024BE0
-_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal
-_08075F6C: .4byte gTasks
-_08075F70: .4byte gSprites
-_08075F74: .4byte gUnknown_030042C0
-_08075F78: .4byte gUnknown_030041B4
-_08075F7C:
- ldr r0, _08075FA8 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075FAC @ =gUnknown_03004280
-_08075F84:
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldr r0, _08075FB0 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r7, [r1, 0x12]
- strh r5, [r1, 0x14]
- ldr r0, _08075FB4 @ =gUnknown_0202F7C2
- strb r3, [r0, 0x1]
-_08075F9A:
- ldr r1, _08075FB8 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075FA8: .4byte gUnknown_03004288
-_08075FAC: .4byte gUnknown_03004280
-_08075FB0: .4byte gTasks
-_08075FB4: .4byte gUnknown_0202F7C2
-_08075FB8: .4byte gUnknown_0202F7A4
- thumb_func_end sub_8075DE0
-
- thumb_func_start b_side_obj__get_some_boolean
-b_side_obj__get_some_boolean: @ 8075FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075FDC
- ldr r0, _08075FD8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- cmp r4, r0
- beq _0807601C
- b _0807602C
- .align 2, 0
-_08075FD8: .4byte gUnknown_0202F7C8
-_08075FDC:
- adds r0, r4, 0
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0807602C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0807601C
- lsls r0, r5, 2
- ldr r1, _08076020 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807601C
- ldr r2, _08076024 @ =gSprites
- ldr r0, _08076028 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _0807602C
-_0807601C:
- movs r0, 0x1
- b _0807602E
- .align 2, 0
-_08076020: .4byte 0x02017800
-_08076024: .4byte gSprites
-_08076028: .4byte gUnknown_02024BE0
-_0807602C:
- movs r0, 0
-_0807602E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end b_side_obj__get_some_boolean
-
- thumb_func_start sub_8076034
-sub_8076034: @ 8076034
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- cmp r1, 0
- beq _0807604E
- b _08076220
-_0807604E:
- add r4, sp, 0x10
- adds r0, r4, 0
- bl sub_8078914
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x1C
- add r0, sp, 0x20
- mov r10, r0
- mov r1, r9
- lsls r1, 5
- str r1, [sp, 0x24]
- movs r5, 0
- ldr r1, _08076194 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r6
- ldr r7, _08076198 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_0807607A:
- str r5, [sp, 0x1C]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0807607A
- str r5, [sp, 0x1C]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, [sp, 0x14]
- movs r0, 0xFF
- mov r3, r10
- strh r0, [r3]
- ldr r0, _08076194 @ =0x040000d4
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0807619C @ =0x81000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r2, _080761A0 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _080761A4 @ =gUnknown_02024BE0
- add r0, r9
- ldrb r4, [r0]
- ldr r5, _080761A8 @ =gUnknown_030042C0
- ldr r0, _080761AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r5]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807611C
- ldr r0, _080761B0 @ =0x02019348
- ldrh r0, [r0]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _0807611C
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
-_0807611C:
- ldr r3, _080761B4 @ =gUnknown_030041B4
- ldr r2, _080761AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r3]
- ldr r0, _080761A4 @ =gUnknown_02024BE0
- add r0, r9
- 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]
- ldr r1, _080761B8 @ =REG_BG1HOFS
- ldr r0, _080761A8 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r1]
- ldr r4, _080761BC @ =gPlttBufferUnfaded + 0x200
- ldr r0, [sp, 0x24]
- adds r4, r0, r4
- mov r2, sp
- ldrb r1, [r2, 0x18]
- lsls r1, 4
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- mov r3, sp
- ldrb r0, [r3, 0x18]
- lsls r0, 5
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- ldr r1, _08076194 @ =0x040000d4
- str r4, [r1]
- str r0, [r1, 0x4]
- ldr r0, _080761C0 @ =0x84000008
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080761C4
- movs r2, 0
- b _080761CE
- .align 2, 0
-_08076194: .4byte 0x040000d4
-_08076198: .4byte 0x85000400
-_0807619C: .4byte 0x81000800
-_080761A0: .4byte REG_BG1CNT
-_080761A4: .4byte gUnknown_02024BE0
-_080761A8: .4byte gUnknown_030042C0
-_080761AC: .4byte gSprites
-_080761B0: .4byte 0x02019348
-_080761B4: .4byte gUnknown_030041B4
-_080761B8: .4byte REG_BG1HOFS
-_080761BC: .4byte gPlttBufferUnfaded + 0x200
-_080761C0: .4byte 0x84000008
-_080761C4:
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r2, r0, 24
-_080761CE:
- mov r0, sp
- ldrb r3, [r0, 0x18]
- ldr r0, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldr r4, [sp, 0x14]
- movs r1, 0xFA
- lsls r1, 24
- adds r0, r4, r1
- cmp r0, 0
- bge _080761EA
- ldr r1, _08076218 @ =0xfa0007ff
- adds r0, r4, r1
-_080761EA:
- asrs r0, 11
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _0807621C @ =REG_BG1CNT
- ldr r0, [r0]
- lsls r0, 28
- lsrs r0, 30
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- bl sub_80E4EF8
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08076210
- b _08076338
-_08076210:
- bl sub_8076380
- b _08076338
- .align 2, 0
-_08076218: .4byte 0xfa0007ff
-_0807621C: .4byte REG_BG1CNT
-_08076220:
- ldr r3, _08076348 @ =0x06006000
- movs r5, 0x80
- lsls r5, 6
- add r6, sp, 0x1C
- ldr r2, _0807634C @ =gSprites
- mov r10, r2
- mov r0, r9
- lsls r0, 5
- str r0, [sp, 0x24]
- movs r4, 0
- ldr r1, _08076350 @ =0x040000d4
- movs r2, 0x80
- lsls r2, 5
- mov r12, r6
- ldr r7, _08076354 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_08076244:
- str r4, [sp, 0x1C]
- mov r0, r12
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _08076244
- str r4, [sp, 0x1C]
- str r6, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, _08076358 @ =0x0600f000
- movs r0, 0
- str r0, [sp, 0x1C]
- ldr r5, _08076350 @ =0x040000d4
- str r6, [r5]
- str r1, [r5, 0x4]
- ldr r0, _0807635C @ =0x85000200
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x8]
- ldr r6, _08076360 @ =REG_BG2CNT
- ldrb r1, [r6]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r6]
- ldrb r1, [r6, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r6, 0x1]
- ldrb r1, [r6, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x1]
- ldr r2, _08076364 @ =gUnknown_02024BE0
- add r2, r9
- ldrb r4, [r2]
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r10
- ldrh r0, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- negs r0, r0
- adds r0, 0x20
- ldr r3, _08076368 @ =gUnknown_03004288
- strh r0, [r3]
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- ldr r1, _0807636C @ =gUnknown_03004280
- strh r0, [r1]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _08076370 @ =REG_BG2HOFS
- ldrh r0, [r3]
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0807636C @ =gUnknown_03004280
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r3, [sp, 0x24]
- ldr r0, _08076374 @ =gPlttBufferUnfaded + 0x200
- adds r4, r3, r0
- adds r0, r4, 0
- movs r1, 0x90
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08076378 @ =0x05000120
- str r4, [r5]
- str r0, [r5, 0x4]
- ldr r0, _0807637C @ =0x84000008
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x8]
- mov r0, r9
- bl battle_get_per_side_status
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0xC0
- lsls r0, 7
- str r0, [sp]
- movs r0, 0x1E
- str r0, [sp, 0x4]
- ldr r0, [r6]
- lsls r0, 28
- lsrs r0, 30
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl sub_80E4EF8
-_08076338:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076348: .4byte 0x06006000
-_0807634C: .4byte gSprites
-_08076350: .4byte 0x040000d4
-_08076354: .4byte 0x85000400
-_08076358: .4byte 0x0600f000
-_0807635C: .4byte 0x85000200
-_08076360: .4byte REG_BG2CNT
-_08076364: .4byte gUnknown_02024BE0
-_08076368: .4byte gUnknown_03004288
-_0807636C: .4byte gUnknown_03004280
-_08076370: .4byte REG_BG2HOFS
-_08076374: .4byte gPlttBufferUnfaded + 0x200
-_08076378: .4byte 0x05000120
-_0807637C: .4byte 0x84000008
- thumb_func_end sub_8076034
-
- thumb_func_start sub_8076380
-sub_8076380: @ 8076380
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r0, _080763F8 @ =0x02019348
- ldrh r0, [r0]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _080763EE
- mov r0, sp
- bl sub_8078914
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_080763A2:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_080763AC:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080763AC
- movs r0, 0x20
- add r12, r0
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _080763A2
- movs r5, 0
- movs r1, 0x80
- lsls r1, 3
- adds r3, r1, 0
-_080763D2:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_080763DA:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080763DA
- adds r5, r2, 0
- cmp r5, 0x7
- ble _080763D2
-_080763EE:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080763F8: .4byte 0x02019348
- thumb_func_end sub_8076380
-
- thumb_func_start sub_80763FC
-sub_80763FC: @ 80763FC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r12, r1
- adds r7, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r3, 24
- movs r0, 0x40
- mov r9, r0
- cmp r3, 0
- bne _0807641A
- movs r1, 0x20
- mov r9, r1
-_0807641A:
- lsls r0, r6, 28
- lsrs r6, r0, 16
- movs r0, 0
- cmp r0, r9
- bcs _08076452
- ldr r1, _08076460 @ =0x00000fff
- mov r8, r1
-_08076428:
- movs r3, 0
- adds r5, r0, 0x1
- lsls r4, r0, 5
-_0807642E:
- adds r1, r4, r3
- lsls r1, 1
- add r1, r12
- ldrh r2, [r1]
- mov r0, r8
- ands r0, r2
- orrs r0, r6
- adds r0, r7
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _0807642E
- lsls r0, r5, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _08076428
-_08076452:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076460: .4byte 0x00000fff
- thumb_func_end sub_80763FC
-
- thumb_func_start sub_8076464
-sub_8076464: @ 8076464
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- add r5, sp, 0x4
- adds r0, r5, 0
- bl sub_8078914
- cmp r4, 0
- beq _0807648C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080764F0
-_0807648C:
- ldr r2, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _080764E0 @ =gUnknown_030042C0
- mov r9, r0
- ldr r0, _080764E4 @ =gUnknown_030041B4
- mov r10, r0
- movs r6, 0
- ldr r1, _080764E8 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _080764EC @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_080764AE:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080764AE
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, [sp, 0x8]
- b _08076540
- .align 2, 0
-_080764E0: .4byte gUnknown_030042C0
-_080764E4: .4byte gUnknown_030041B4
-_080764E8: .4byte 0x040000d4
-_080764EC: .4byte 0x85000400
-_080764F0:
- ldr r2, _08076568 @ =0x06006000
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _0807656C @ =gUnknown_03004288
- mov r9, r0
- ldr r0, _08076570 @ =gUnknown_03004280
- mov r10, r0
- movs r6, 0
- ldr r1, _08076574 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _08076578 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_08076512:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _08076512
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, _0807657C @ =0x0600f000
-_08076540:
- movs r2, 0
- str r2, [sp, 0x10]
- ldr r0, _08076574 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076580 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r9
- strh r2, [r0]
- mov r0, r10
- strh r2, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076568: .4byte 0x06006000
-_0807656C: .4byte gUnknown_03004288
-_08076570: .4byte gUnknown_03004280
-_08076574: .4byte 0x040000d4
-_08076578: .4byte 0x85000400
-_0807657C: .4byte 0x0600f000
-_08076580: .4byte 0x85000200
- thumb_func_end sub_8076464
-
- thumb_func_start task_pA_ma0A_obj_to_bg_pal
-task_pA_ma0A_obj_to_bg_pal: @ 8076584
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080765FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r4, [r5, 0x8]
- ldrb r6, [r5, 0x14]
- mov r0, sp
- bl sub_8078914
- ldr r0, _08076600 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x24]
- ldrh r0, [r1, 0x20]
- adds r2, r0
- ldrh r0, [r5, 0xA]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r2, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r2, r1
- ldrh r0, [r5, 0xC]
- subs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08076614
- ldr r1, _08076604 @ =gUnknown_030042C0
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _08076608 @ =gUnknown_030041B4
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r1, _0807660C @ =gPlttBufferFaded + 0x200
- adds r2, r1
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 5
- ldr r3, _08076610 @ =0xfffffe00
- adds r1, r3
- adds r0, r1
- b _08076634
- .align 2, 0
-_080765FC: .4byte gTasks
-_08076600: .4byte gSprites
-_08076604: .4byte gUnknown_030042C0
-_08076608: .4byte gUnknown_030041B4
-_0807660C: .4byte gPlttBufferFaded + 0x200
-_08076610: .4byte 0xfffffe00
-_08076614:
- ldr r1, _08076648 @ =gUnknown_03004288
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _0807664C @ =gUnknown_03004280
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r0, _08076650 @ =gPlttBufferFaded + 0x200
- adds r2, r0
- subs r0, 0xE0
-_08076634:
- ldr r1, _08076654 @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _08076658 @ =0x84000008
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076648: .4byte gUnknown_03004288
-_0807664C: .4byte gUnknown_03004280
-_08076650: .4byte gPlttBufferFaded + 0x200
-_08076654: .4byte 0x040000d4
-_08076658: .4byte 0x84000008
- thumb_func_end task_pA_ma0A_obj_to_bg_pal
-
- thumb_func_start ma0B_0807324C
-ma0B_0807324C: @ 807665C
- push {r4,r5,lr}
- ldr r0, _08076670 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r4, [r2, 0x1]
- cmp r4, 0
- bne _08076674
- movs r4, 0x2
- b _0807667E
- .align 2, 0
-_08076670: .4byte gUnknown_0202F7A4
-_08076674:
- cmp r4, 0x1
- bne _0807667A
- movs r4, 0x3
-_0807667A:
- cmp r4, 0
- beq _08076682
-_0807667E:
- cmp r4, 0x2
- bne _0807668C
-_08076682:
- ldr r0, _08076688 @ =gUnknown_0202F7C8
- b _0807668E
- .align 2, 0
-_08076688: .4byte gUnknown_0202F7C8
-_0807668C:
- ldr r0, _080766E4 @ =gUnknown_0202F7C9
-_0807668E:
- ldrb r5, [r0]
- ldr r3, _080766E8 @ =gUnknown_0202F7C2
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080766B4
- ldr r2, _080766EC @ =gSprites
- ldr r0, _080766F0 @ =gUnknown_02024BE0
- adds r0, r5, 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]
-_080766B4:
- cmp r4, 0x1
- bls _080766F4
- ldrb r0, [r3, 0x1]
- cmp r0, 0xFF
- beq _080766F4
- ldr r3, _080766EC @ =gSprites
- ldr r2, _080766F0 @ =gUnknown_02024BE0
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- adds r0, r2
- ldrb r1, [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]
- b _080766F6
- .align 2, 0
-_080766E4: .4byte gUnknown_0202F7C9
-_080766E8: .4byte gUnknown_0202F7C2
-_080766EC: .4byte gSprites
-_080766F0: .4byte gUnknown_02024BE0
-_080766F4:
- movs r4, 0
-_080766F6:
- ldr r0, _08076720 @ =sub_807672C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076724 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xC]
- ldr r1, _08076728 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076720: .4byte sub_807672C
-_08076724: .4byte gTasks
-_08076728: .4byte gUnknown_0202F7A4
- thumb_func_end ma0B_0807324C
-
- thumb_func_start sub_807672C
-sub_807672C: @ 807672C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807676C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080767B6
- ldrb r0, [r1, 0xC]
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076768
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076770
-_08076768:
- movs r4, 0
- b _08076772
- .align 2, 0
-_0807676C: .4byte gTasks
-_08076770:
- movs r4, 0x1
-_08076772:
- ldr r6, _080767BC @ =gUnknown_0202F7C2
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _0807678A
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6]
-_0807678A:
- ldr r0, _080767C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080767B0
- movs r0, 0x1
- eors r4, r0
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6, 0x1]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6, 0x1]
-_080767B0:
- adds r0, r5, 0
- bl DestroyTask
-_080767B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080767BC: .4byte gUnknown_0202F7C2
-_080767C0: .4byte gTasks
- thumb_func_end sub_807672C
-
- thumb_func_start sub_80767C4
-sub_80767C4: @ 80767C4
- push {r4,r5,lr}
- ldr r0, _080767D8 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080767DC
- movs r5, 0x2
- b _080767E6
- .align 2, 0
-_080767D8: .4byte gUnknown_0202F7A4
-_080767DC:
- cmp r5, 0x1
- bne _080767E2
- movs r5, 0x3
-_080767E2:
- cmp r5, 0
- beq _080767EA
-_080767E6:
- cmp r5, 0x2
- bne _080767F4
-_080767EA:
- ldr r0, _080767F0 @ =gUnknown_0202F7C8
- b _080767F6
- .align 2, 0
-_080767F0: .4byte gUnknown_0202F7C8
-_080767F4:
- ldr r0, _08076828 @ =gUnknown_0202F7C9
-_080767F6:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076850
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076822
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807682C
-_08076822:
- movs r1, 0
- b _0807682E
- .align 2, 0
-_08076828: .4byte gUnknown_0202F7C9
-_0807682C:
- movs r1, 0x1
-_0807682E:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _08076888 @ =gSprites
- ldr r0, _0807688C @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08076850:
- movs r0, 0x2
- eors r4, r0
- cmp r5, 0x1
- bls _080768B4
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080768B4
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076882
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076890
-_08076882:
- movs r1, 0
- b _08076892
- .align 2, 0
-_08076888: .4byte gSprites
-_0807688C: .4byte gUnknown_02024BE0
-_08076890:
- movs r1, 0x1
-_08076892:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _080768C4 @ =gSprites
- ldr r0, _080768C8 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080768B4:
- ldr r1, _080768CC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080768C4: .4byte gSprites
-_080768C8: .4byte gUnknown_02024BE0
-_080768CC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_80767C4
-
- thumb_func_start ma23_8073484
-ma23_8073484: @ 80768D0
- push {r4-r6,lr}
- ldr r0, _080768E4 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080768E8
- movs r5, 0x2
- b _080768F2
- .align 2, 0
-_080768E4: .4byte gUnknown_0202F7A4
-_080768E8:
- cmp r5, 0x1
- bne _080768EE
- movs r5, 0x3
-_080768EE:
- cmp r5, 0
- beq _080768F6
-_080768F2:
- cmp r5, 0x2
- bne _08076900
-_080768F6:
- ldr r0, _080768FC @ =gUnknown_0202F7C8
- b _08076902
- .align 2, 0
-_080768FC: .4byte gUnknown_0202F7C8
-_08076900:
- ldr r0, _08076960 @ =gUnknown_0202F7C9
-_08076902:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807692C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r6, 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]
-_0807692C:
- cmp r5, 0x1
- bls _0807696C
- movs r0, 0x2
- adds r4, r6, 0
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807696C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _0807696E
- .align 2, 0
-_08076960: .4byte gUnknown_0202F7C9
-_08076964: .4byte gSprites
-_08076968: .4byte gUnknown_02024BE0
-_0807696C:
- movs r5, 0
-_0807696E:
- ldr r0, _08076998 @ =sub_80769A4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807699C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r6, [r1, 0xC]
- ldr r1, _080769A0 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076998: .4byte sub_80769A4
-_0807699C: .4byte gTasks
-_080769A0: .4byte gUnknown_0202F7A4
- thumb_func_end ma23_8073484
-
- thumb_func_start sub_80769A4
-sub_80769A4: @ 80769A4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080769E8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08076A32
- ldrb r4, [r1, 0xC]
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080769E2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080769EC
-_080769E2:
- movs r5, 0
- b _080769EE
- .align 2, 0
-_080769E8: .4byte gTasks
-_080769EC:
- movs r5, 0x1
-_080769EE:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A00
- adds r0, r5, 0
- bl sub_8076464
-_08076A00:
- ldr r0, _08076A38 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _08076A2C
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A2C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_08076A2C:
- adds r0, r6, 0
- bl DestroyTask
-_08076A32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A38: .4byte gTasks
- thumb_func_end sub_80769A4
-
- thumb_func_start sub_8076A3C
-sub_8076A3C: @ 8076A3C
- push {r4,lr}
- ldr r2, _08076A6C @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r2, _08076A70 @ =REG_BLDCNT
- movs r4, 0xFD
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r2]
- ldr r0, _08076A74 @ =REG_BLDALPHA
- orrs r3, r1
- strh r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A6C: .4byte gUnknown_0202F7A4
-_08076A70: .4byte REG_BLDCNT
-_08076A74: .4byte REG_BLDALPHA
- thumb_func_end sub_8076A3C
-
- thumb_func_start sub_8076A78
-sub_8076A78: @ 8076A78
- ldr r2, _08076A98 @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r0, _08076A9C @ =REG_BLDCNT
- orrs r3, r1
- strh r3, [r0]
- bx lr
- .align 2, 0
-_08076A98: .4byte gUnknown_0202F7A4
-_08076A9C: .4byte REG_BLDCNT
- thumb_func_end sub_8076A78
-
- thumb_func_start sub_8076AA0
-sub_8076AA0: @ 8076AA0
- ldr r1, _08076AB4 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076AB8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08076AB4: .4byte gUnknown_0202F7A4
-_08076AB8: .4byte REG_BLDCNT
- thumb_func_end sub_8076AA0
-
- thumb_func_start ma0E_call
-ma0E_call: @ 8076ABC
- push {r4,lr}
- ldr r4, _08076AE8 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldr r2, _08076AEC @ =gUnknown_0202F7A8
- adds r0, r1, 0x5
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076AE8: .4byte gUnknown_0202F7A4
-_08076AEC: .4byte gUnknown_0202F7A8
- thumb_func_end ma0E_call
-
- thumb_func_start sub_8076AF0
-sub_8076AF0: @ 8076AF0
- ldr r0, _08076AFC @ =gUnknown_0202F7A4
- ldr r1, _08076B00 @ =gUnknown_0202F7A8
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08076AFC: .4byte gUnknown_0202F7A4
-_08076B00: .4byte gUnknown_0202F7A8
- thumb_func_end sub_8076AF0
-
- thumb_func_start ma10_080736AC
-ma10_080736AC: @ 8076B04
- push {r4,r5,lr}
- ldr r5, _08076B30 @ =gUnknown_0202F7A4
- ldr r1, [r5]
- adds r0, r1, 0x1
- str r0, [r5]
- ldrb r2, [r1, 0x1]
- adds r3, r0, 0x1
- str r3, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r4, r0
- adds r1, 0x4
- str r1, [r5]
- ldr r0, _08076B34 @ =gUnknown_03004B00
- lsls r2, 1
- adds r2, r0
- strh r4, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076B30: .4byte gUnknown_0202F7A4
-_08076B34: .4byte gUnknown_03004B00
- thumb_func_end ma10_080736AC
-
- thumb_func_start ma11_if_else
-ma11_if_else: @ 8076B38
- push {lr}
- ldr r3, _08076B70 @ =gUnknown_0202F7A4
- ldr r2, [r3]
- adds r0, r2, 0x1
- str r0, [r3]
- ldr r0, _08076B74 @ =gUnknown_0202F7C4
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08076B52
- adds r0, r2, 0x5
- str r0, [r3]
-_08076B52:
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08076B70: .4byte gUnknown_0202F7A4
-_08076B74: .4byte gUnknown_0202F7C4
- thumb_func_end ma11_if_else
-
- thumb_func_start ma12_cond_if
-ma12_cond_if: @ 8076B78
- push {r4,r5,lr}
- ldr r5, _08076BA8 @ =gUnknown_0202F7A4
- ldr r4, [r5]
- adds r2, r4, 0x1
- str r2, [r5]
- ldrb r1, [r4, 0x1]
- adds r3, r2, 0x1
- str r3, [r5]
- ldr r0, _08076BAC @ =gUnknown_0202F7C4
- ldrb r0, [r0]
- cmp r1, r0
- bne _08076BB0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _08076BB4
- .align 2, 0
-_08076BA8: .4byte gUnknown_0202F7A4
-_08076BAC: .4byte gUnknown_0202F7C4
-_08076BB0:
- adds r0, r4, 0x6
- str r0, [r5]
-_08076BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ma12_cond_if
-
- thumb_func_start sub_8076BBC
-sub_8076BBC: @ 8076BBC
- ldr r3, _08076BDC @ =gUnknown_0202F7A4
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08076BDC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_8076BBC
-
- thumb_func_start sub_8076BE0
-sub_8076BE0: @ 8076BE0
- push {lr}
- ldr r0, _08076BF8 @ =gMain
- ldr r1, _08076BFC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08076C00
- movs r0, 0
- b _08076C02
- .align 2, 0
-_08076BF8: .4byte gMain
-_08076BFC: .4byte 0x0000043d
-_08076C00:
- movs r0, 0x1
-_08076C02:
- pop {r1}
- bx r1
- thumb_func_end sub_8076BE0
-
- thumb_func_start ma14_load_background
-ma14_load_background: @ 8076C08
- push {r4,lr}
- ldr r1, _08076C3C @ =gUnknown_0202F7A4
- ldr r2, [r1]
- adds r0, r2, 0x1
- str r0, [r1]
- ldrb r4, [r2, 0x1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076C44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- ldr r1, _08076C48 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076C3C: .4byte gUnknown_0202F7A4
-_08076C40: .4byte task_p5_load_battle_screen_elements
-_08076C44: .4byte gTasks
-_08076C48: .4byte gUnknown_0202F7C5
- thumb_func_end ma14_load_background
-
- thumb_func_start sub_8076C4C
-sub_8076C4C: @ 8076C4C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08076C8C @ =gUnknown_0202F7A4
- ldr r1, [r2]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r1, 0x1]
- mov r8, r3
- ldrb r7, [r0, 0x1]
- ldrb r6, [r0, 0x2]
- adds r1, 0x4
- str r1, [r2]
- ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076C98
- ldr r1, _08076C94 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076C8C: .4byte gUnknown_0202F7A4
-_08076C90: .4byte task_p5_load_battle_screen_elements
-_08076C94: .4byte gTasks
-_08076C98:
- ldr r0, _08076CB4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08076CBC
- ldr r1, _08076CB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076CB4: .4byte gUnknown_0202F7C9
-_08076CB8: .4byte gTasks
-_08076CBC:
- ldr r1, _08076CDC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
-_08076CCA:
- ldr r1, _08076CE0 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076CDC: .4byte gTasks
-_08076CE0: .4byte gUnknown_0202F7C5
- thumb_func_end sub_8076C4C
-
- thumb_func_start task_p5_load_battle_screen_elements
-task_p5_load_battle_screen_elements: @ 8076CE4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08076D18 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r6, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r3, [r4, r0]
- adds r7, r1, 0
- cmp r3, 0
- bne _08076D1C
- str r3, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D18: .4byte gTasks
-_08076D1C:
- ldr r2, _08076D38 @ =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08076DAC
- cmp r3, 0x1
- bne _08076D40
- adds r0, r6, 0x1
- strh r0, [r4, 0x1C]
- ldr r1, _08076D3C @ =gUnknown_0202F7C5
- movs r0, 0x2
- strb r0, [r1]
- b _08076D84
- .align 2, 0
-_08076D38: .4byte gPaletteFade
-_08076D3C: .4byte gUnknown_0202F7C5
-_08076D40:
- cmp r3, 0x2
- bne _08076D84
- ldrh r0, [r4, 0x8]
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08076D58
- bl dp01t_11_3_message_for_player_only
- b _08076D5E
-_08076D58:
- lsrs r0, r2, 16
- bl sub_8076DB8
-_08076D5E:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r1, _08076D80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- adds r1, 0x1
- strh r1, [r0, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D80: .4byte gTasks
-_08076D84:
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08076DAC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x1C
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- bne _08076DAC
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, _08076DB4 @ =gUnknown_0202F7C5
- strb r4, [r0]
-_08076DAC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076DB4: .4byte gUnknown_0202F7C5
- thumb_func_end task_p5_load_battle_screen_elements
-
- thumb_func_start sub_8076DB8
-sub_8076DB8: @ 8076DB8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076E70
- ldr r7, _08076E54 @ =gBattleAnimBackgroundTable
- lsls r0, r6, 1
- adds r0, r6
- lsls r4, r0, 2
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r5, [r0]
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076DE8
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076DE8:
- adds r0, r5, 0
- bl sub_800D238
- bl sub_80789BC
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E06
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076E06:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r5, 0
- movs r3, 0
- bl sub_80763FC
- bl sub_8076BE0
- lsls r0, 24
- ldr r2, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E22
- ldr r0, _08076E5C @ =0xffffc800
- adds r2, r0
-_08076E22:
- ldr r1, _08076E60 @ =0x0600d000
- ldr r0, _08076E64 @ =0x040000d4
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076E68 @ =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r4, r7
- ldr r0, [r0]
- ldr r1, _08076E6C @ =0x06002000
- bl LZDecompressVram
- adds r0, r7, 0x4
- adds r0, r4, r0
- ldr r4, [r0]
- bl sub_80789BC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 20
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08076E9E
- .align 2, 0
-_08076E54: .4byte gBattleAnimBackgroundTable
-_08076E58: .4byte 0x02018000
-_08076E5C: .4byte 0xffffc800
-_08076E60: .4byte 0x0600d000
-_08076E64: .4byte 0x040000d4
-_08076E68: .4byte 0x84000200
-_08076E6C: .4byte 0x06002000
-_08076E70:
- ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 2
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, _08076EA8 @ =0x0600d000
- bl LZDecompressVram
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08076EAC @ =0x06008000
- bl LZDecompressVram
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0x20
- movs r2, 0x20
- bl LoadCompressedPalette
-_08076E9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076EA4: .4byte gBattleAnimBackgroundTable
-_08076EA8: .4byte 0x0600d000
-_08076EAC: .4byte 0x06008000
- thumb_func_end sub_8076DB8
-
- thumb_func_start dp01t_11_3_message_for_player_only
-dp01t_11_3_message_for_player_only: @ 8076EB0
- push {lr}
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076EC2
- bl sub_80AB2AC
- b _08076EC6
-_08076EC2:
- bl sub_800D7B8
-_08076EC6:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_3_message_for_player_only
-
- thumb_func_start ma15_load_battle_screen_elements
-ma15_load_battle_screen_elements: @ 8076ECC
- push {lr}
- ldr r1, _08076EFC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076F04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08076F08 @ =0x0000ffff
- strh r0, [r1, 0x8]
- ldr r1, _08076F0C @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076EFC: .4byte gUnknown_0202F7A4
-_08076F00: .4byte task_p5_load_battle_screen_elements
-_08076F04: .4byte gTasks
-_08076F08: .4byte 0x0000ffff
-_08076F0C: .4byte gUnknown_0202F7C5
- thumb_func_end ma15_load_battle_screen_elements
-
- thumb_func_start ma16_wait_for_battle_screen_elements_s2
-ma16_wait_for_battle_screen_elements_s2: @ 8076F10
- push {lr}
- ldr r0, _08076F28 @ =gUnknown_0202F7C5
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08076F34
- ldr r1, _08076F2C @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, _08076F30 @ =gUnknown_0202F7B0
- movs r0, 0
- b _08076F38
- .align 2, 0
-_08076F28: .4byte gUnknown_0202F7C5
-_08076F2C: .4byte gUnknown_0202F7A4
-_08076F30: .4byte gUnknown_0202F7B0
-_08076F34:
- ldr r1, _08076F40 @ =gUnknown_0202F7B0
- movs r0, 0x1
-_08076F38:
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076F40: .4byte gUnknown_0202F7B0
- thumb_func_end ma16_wait_for_battle_screen_elements_s2
-
- thumb_func_start sub_8076F44
-sub_8076F44: @ 8076F44
- push {lr}
- ldr r0, _08076F5C @ =gUnknown_0202F7C5
- ldrb r2, [r0]
- cmp r2, 0
- bne _08076F68
- ldr r0, _08076F60 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _08076F64 @ =gUnknown_0202F7B0
- strb r2, [r0]
- b _08076F6E
- .align 2, 0
-_08076F5C: .4byte gUnknown_0202F7C5
-_08076F60: .4byte gUnknown_0202F7A4
-_08076F64: .4byte gUnknown_0202F7B0
-_08076F68:
- ldr r1, _08076F74 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
-_08076F6E:
- pop {r0}
- bx r0
- .align 2, 0
-_08076F74: .4byte gUnknown_0202F7B0
- thumb_func_end sub_8076F44
-
- thumb_func_start ma18_load_background_probably
-ma18_load_background_probably: @ 8076F78
- push {r4,lr}
- ldr r4, _08076F94 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- ldrb r0, [r1, 0x1]
- bl sub_8076DB8
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076F94: .4byte gUnknown_0202F7A4
- thumb_func_end ma18_load_background_probably
-
- thumb_func_start sub_8076F98
-sub_8076F98: @ 8076F98
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08076FDC
- ldr r0, _08076FD4 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08076FD8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08076FDC
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _0807706E
- movs r4, 0x3F
- b _0807706E
- .align 2, 0
-_08076FD4: .4byte gUnknown_0202F7C8
-_08076FD8: .4byte 0x02017810
-_08076FDC:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077004
- ldr r0, _08076FFC @ =gUnknown_0202F7C8
- ldr r1, _08077000 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08077068
- cmp r0, 0x2
- bne _08077068
- cmp r4, 0x3F
- beq _0807707A
- b _08077068
- .align 2, 0
-_08076FFC: .4byte gUnknown_0202F7C8
-_08077000: .4byte gUnknown_0202F7C9
-_08077004:
- ldr r0, _0807702C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08077042
- ldr r0, _08077030 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0807706E
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0x3F
- bne _08077034
- movs r4, 0xC0
- b _0807706E
- .align 2, 0
-_0807702C: .4byte gUnknown_0202F7C8
-_08077030: .4byte gUnknown_0202F7C9
-_08077034:
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- beq _0807706E
- negs r0, r1
- lsls r0, 24
- b _0807706C
-_08077042:
- ldr r0, _08077064 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08077068
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bne _0807706E
- movs r4, 0x3F
- b _0807706E
- .align 2, 0
-_08077064: .4byte gUnknown_0202F7C9
-_08077068:
- lsls r0, r4, 24
- negs r0, r0
-_0807706C:
- lsrs r4, r0, 24
-_0807706E:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _0807707A
- movs r4, 0x3F
- b _08077088
-_0807707A:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bge _08077088
- movs r4, 0xC0
-_08077088:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8076F98
-
- thumb_func_start sub_8077094
-sub_8077094: @ 8077094
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080770D8
- ldr r0, _080770D0 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080770D4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080770D8
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _080770F6
- movs r4, 0x3F
- b _080770F6
- .align 2, 0
-_080770D0: .4byte gUnknown_0202F7C8
-_080770D4: .4byte 0x02017810
-_080770D8:
- ldr r0, _08077100 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080770F0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080770F6
-_080770F0:
- lsls r0, r4, 24
- negs r0, r0
- lsrs r4, r0, 24
-_080770F6:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08077100: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8077094
-
- thumb_func_start sub_8077104
-sub_8077104: @ 8077104
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r2, r0, 16
- cmp r2, 0x3F
- ble _08077114
- movs r1, 0x3F
- b _0807711E
-_08077114:
- movs r0, 0x40
- negs r0, r0
- cmp r2, r0
- bge _0807711E
- ldr r1, _08077128 @ =0x0000ffc0
-_0807711E:
- lsls r0, r1, 16
- asrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08077128: .4byte 0x0000ffc0
- thumb_func_end sub_8077104
-
- thumb_func_start sub_807712C
-sub_807712C: @ 807712C
- push {lr}
- lsls r2, 16
- lsrs r2, 16
- adds r3, r2, 0
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _0807714A
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0
- bge _0807715A
- b _08077158
-_0807714A:
- cmp r0, r1
- ble _08077160
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0
- bge _08077158
- negs r0, r0
-_08077158:
- negs r0, r0
-_0807715A:
- lsls r0, 16
- lsrs r0, 16
- b _08077162
-_08077160:
- movs r0, 0
-_08077162:
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_807712C
-
- thumb_func_start ma19_08073BC8
-ma19_08073BC8: @ 807716C
- push {r4,r5,lr}
- ldr r5, _080771A0 @ =gUnknown_0202F7A4
- ldr r0, [r5]
- adds r1, r0, 0x1
- str r1, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlaySE12WithPanning
- ldr r0, [r5]
- adds r0, 0x3
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080771A0: .4byte gUnknown_0202F7A4
- thumb_func_end ma19_08073BC8
-
- thumb_func_start ma1A_8073C00
-ma1A_8073C00: @ 80771A4
- push {r4,lr}
- ldr r4, _080771CC @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- movs r0, 0x1
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080771CC: .4byte gUnknown_0202F7A4
- thumb_func_end ma1A_8073C00
-
- thumb_func_start ma1B_8073C2C
-ma1B_8073C2C: @ 80771D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08077280 @ =gUnknown_0202F7A4
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl sub_8076F98
- mov r8, r0
- lsls r5, 24
- asrs r5, 24
- mov r0, r8
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
- lsls r6, 24
- asrs r6, 24
- adds r0, r5, 0
- mov r1, r8
- adds r2, r6, 0
- bl sub_807712C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08077284 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08077288 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- mov r2, r8
- strh r2, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r5, [r1, 0x10]
- mov r0, r9
- adds r1, r5, 0
- bl PlaySE12WithPanning
- ldr r1, _0807728C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077280: .4byte gUnknown_0202F7A4
-_08077284: .4byte c3_08073CEC
-_08077288: .4byte gTasks
-_0807728C: .4byte gUnknown_0202F7B3
- thumb_func_end ma1B_8073C2C
-
- thumb_func_start c3_08073CEC
-c3_08073CEC: @ 8077290
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r1, _080772D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xE
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08077314
- strh r7, [r2, 0x18]
- ldrh r6, [r2, 0x8]
- ldrh r3, [r2, 0xA]
- movs r4, 0x10
- ldrsh r0, [r2, r4]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- strh r4, [r2, 0x10]
- cmp r1, 0
- bne _080772D8
- lsls r2, r3, 16
- b _080772FC
- .align 2, 0
-_080772D4: .4byte gTasks
-_080772D8:
- lsls r1, r6, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- adds r2, r0, 0
- cmp r1, r2
- bge _080772EE
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- blt _080772F8
- b _080772FC
-_080772EE:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- bgt _080772F8
- movs r7, 0x1
-_080772F8:
- cmp r7, 0
- beq _0807730C
-_080772FC:
- lsrs r4, r2, 16
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _0807731C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0807730C:
- lsls r0, r4, 24
- asrs r0, 24
- bl SE12PanpotControl
-_08077314:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807731C: .4byte gUnknown_0202F7B3
- thumb_func_end c3_08073CEC
-
- thumb_func_start sub_8077320
-sub_8077320: @ 8077320
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _080773A4 @ =gUnknown_0202F7A4
- mov r9, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r9
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r8, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r8
- orrs r2, r0
- mov r8, r2
- ldrb r4, [r1, 0x2]
- ldrb r5, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- mov r10, r1
- ldr r0, _080773A8 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080773AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0xC]
- mov r0, r10
- strh r0, [r1, 0xE]
- strh r4, [r1, 0x10]
- mov r0, r8
- adds r1, r4, 0
- bl PlaySE12WithPanning
- ldr r1, _080773B0 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080773A4: .4byte gUnknown_0202F7A4
-_080773A8: .4byte c3_08073CEC
-_080773AC: .4byte gTasks
-_080773B0: .4byte gUnknown_0202F7B3
- thumb_func_end sub_8077320
-
- thumb_func_start sub_80773B4
-sub_80773B4: @ 80773B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08077464 @ =gUnknown_0202F7A4
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- mov r8, r0
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8077094
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl sub_8077094
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- mov r0, r8
- bl sub_8077094
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08077468 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807746C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r6, [r1, 0x10]
- mov r0, r9
- adds r1, r6, 0
- bl PlaySE12WithPanning
- ldr r1, _08077470 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r2, r10
- ldr r0, [r2]
- adds r0, 0x6
- str r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077464: .4byte gUnknown_0202F7A4
-_08077468: .4byte c3_08073CEC
-_0807746C: .4byte gTasks
-_08077470: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80773B4
-
- thumb_func_start ma1C_8073ED0
-ma1C_8073ED0: @ 8077474
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r6, _080774EC @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- ldrb r2, [r1, 0x4]
- mov r9, r2
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080774F0 @ =sub_80774FC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080774F4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r2, r8
- strh r2, [r1, 0xC]
- mov r2, r9
- strh r2, [r1, 0xE]
- mov r2, r8
- strh r2, [r1, 0x18]
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _080774F8 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x5
- str r0, [r6]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080774EC: .4byte gUnknown_0202F7A4
-_080774F0: .4byte sub_80774FC
-_080774F4: .4byte gTasks
-_080774F8: .4byte gUnknown_0202F7B3
- thumb_func_end ma1C_8073ED0
-
- thumb_func_start sub_80774FC
-sub_80774FC: @ 80774FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08077550 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _0807754A
- movs r0, 0
- strh r0, [r2, 0x18]
- ldrh r0, [r2, 0x8]
- ldrb r1, [r2, 0xA]
- ldrh r4, [r2, 0xE]
- subs r4, 0x1
- strh r4, [r2, 0xE]
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- cmp r4, 0
- bne _0807754A
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _08077554 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0807754A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08077550: .4byte gTasks
-_08077554: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80774FC
-
- thumb_func_start ma1D_08073FB4
-ma1D_08073FB4: @ 8077558
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r6, _080775BC @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080775C0 @ =sub_80775CC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080775C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r0, r8
- strh r0, [r1, 0xC]
- ldr r1, _080775C8 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- str r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080775BC: .4byte gUnknown_0202F7A4
-_080775C0: .4byte sub_80775CC
-_080775C4: .4byte gTasks
-_080775C8: .4byte gUnknown_0202F7B3
- thumb_func_end ma1D_08073FB4
-
- thumb_func_start sub_80775CC
-sub_80775CC: @ 80775CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08077608 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xC]
- subs r1, r0, 0x1
- strh r1, [r2, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _08077600
- ldrh r0, [r2, 0x8]
- movs r1, 0xA
- ldrsb r1, [r2, r1]
- bl PlaySE12WithPanning
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, _0807760C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08077600:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077608: .4byte gTasks
-_0807760C: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80775CC
-
- thumb_func_start sub_8077610
-sub_8077610: @ 8077610
- push {r4-r6,lr}
- ldr r4, _08077678 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r0, [r1, 0x5]
- adds r1, 0x6
- str r1, [r4]
- cmp r0, 0
- beq _0807765A
- adds r5, r4, 0
- ldr r4, _0807767C @ =gUnknown_03004B00
- adds r3, r0, 0
-_08077642:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08077642
-_0807765A:
- adds r0, r6, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, _08077680 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08077678: .4byte gUnknown_0202F7A4
-_0807767C: .4byte gUnknown_03004B00
-_08077680: .4byte gUnknown_0202F7B3
- thumb_func_end sub_8077610
-
- thumb_func_start ma20_wait_for_something
-ma20_wait_for_something: @ 8077684
- push {r4,r5,lr}
- ldr r0, _080776BC @ =gUnknown_0202F7B3
- ldrb r5, [r0]
- cmp r5, 0
- bne _080776CC
- bl IsSEPlaying
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080776E4
- ldr r4, _080776C0 @ =gUnknown_03004AF0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bls _080776D2
- ldr r0, _080776C4 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _080776C8 @ =gMPlay_SE2
- bl m4aMPlayStop
- strh r5, [r4]
- b _080776F6
- .align 2, 0
-_080776BC: .4byte gUnknown_0202F7B3
-_080776C0: .4byte gUnknown_03004AF0
-_080776C4: .4byte gMPlay_SE1
-_080776C8: .4byte gMPlay_SE2
-_080776CC:
- ldr r1, _080776DC @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
-_080776D2:
- ldr r1, _080776E0 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- b _080776F6
- .align 2, 0
-_080776DC: .4byte gUnknown_03004AF0
-_080776E0: .4byte gUnknown_0202F7B0
-_080776E4:
- ldr r0, _080776FC @ =gUnknown_03004AF0
- movs r2, 0
- strh r1, [r0]
- ldr r1, _08077700 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08077704 @ =gUnknown_0202F7B0
- strb r2, [r0]
-_080776F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080776FC: .4byte gUnknown_03004AF0
-_08077700: .4byte gUnknown_0202F7A4
-_08077704: .4byte gUnknown_0202F7B0
- thumb_func_end ma20_wait_for_something
-
- thumb_func_start ma21_08074164
-ma21_08074164: @ 8077708
- push {r4-r6,lr}
- ldr r5, _08077748 @ =gUnknown_0202F7A4
- ldr r4, [r5]
- adds r3, r4, 0x1
- str r3, [r5]
- ldrb r2, [r4, 0x1]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _0807774C @ =gUnknown_03004B00
- lsls r2, 1
- adds r2, r0
- lsls r1, 16
- asrs r1, 16
- movs r6, 0
- ldrsh r0, [r2, r6]
- cmp r1, r0
- bne _08077750
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _08077756
- .align 2, 0
-_08077748: .4byte gUnknown_0202F7A4
-_0807774C: .4byte gUnknown_03004B00
-_08077750:
- adds r0, r4, 0
- adds r0, 0x8
- str r0, [r5]
-_08077756:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ma21_08074164
-
- thumb_func_start sub_807775C
-sub_807775C: @ 807775C
- push {r4,lr}
- ldr r4, _0807778C @ =gUnknown_0202F7A4
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077790
- ldr r2, [r4]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- b _08077796
- .align 2, 0
-_0807778C: .4byte gUnknown_0202F7A4
-_08077790:
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
-_08077796:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807775C
-
- thumb_func_start sub_807779C
-sub_807779C: @ 807779C
- push {r4,lr}
- ldr r0, _080777B0 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- ldrb r2, [r1, 0x1]
- adds r1, 0x2
- str r1, [r0]
- cmp r2, 0
- beq _080777B8
- ldr r0, _080777B4 @ =gUnknown_0202F7C9
- b _080777BA
- .align 2, 0
-_080777B0: .4byte gUnknown_0202F7A4
-_080777B4: .4byte gUnknown_0202F7C9
-_080777B8:
- ldr r0, _080777FC @ =gUnknown_0202F7C8
-_080777BA:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080777F4
- cmp r4, 0
- beq _080777D6
- cmp r4, 0x3
- bne _080777F4
-_080777D6:
- ldr r3, _08077800 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _08077804 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_080777F4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080777FC: .4byte gUnknown_0202F7C8
-_08077800: .4byte REG_BG1CNT
-_08077804: .4byte REG_BG2CNT
- thumb_func_end sub_807779C
-
- thumb_func_start sub_8077808
-sub_8077808: @ 8077808
- push {lr}
- ldr r0, _08077840 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0807783A
- ldr r3, _08077844 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _08077848 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_0807783A:
- pop {r0}
- bx r0
- .align 2, 0
-_08077840: .4byte gUnknown_0202F7A4
-_08077844: .4byte REG_BG1CNT
-_08077848: .4byte REG_BG2CNT
- thumb_func_end sub_8077808
-
- thumb_func_start sub_807784C
-sub_807784C: @ 807784C
- push {r4-r7,lr}
- ldr r1, _0807787C @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r6, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- ldr r7, _08077880 @ =gUnknown_0202F7C8
- ldrb r0, [r7]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _08077884 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080778C2
- cmp r6, 0
- beq _08077888
- ldrb r0, [r5]
- b _0807788A
- .align 2, 0
-_0807787C: .4byte gUnknown_0202F7A4
-_08077880: .4byte gUnknown_0202F7C8
-_08077884: .4byte gUnknown_0202F7C9
-_08077888:
- ldrb r0, [r7]
-_0807788A:
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080778C2
- cmp r4, 0
- beq _080778A4
- cmp r4, 0x3
- bne _080778C2
-_080778A4:
- ldr r3, _080778C8 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _080778CC @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_080778C2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080778C8: .4byte REG_BG1CNT
-_080778CC: .4byte REG_BG2CNT
- thumb_func_end sub_807784C
-
- thumb_func_start ma2B_make_side_invisible
-ma2B_make_side_invisible: @ 80778D0
- push {r4,lr}
- ldr r4, _08077904 @ =gUnknown_0202F7A4
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080778F8
- ldr r1, _08077908 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080778F8:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077904: .4byte gUnknown_0202F7A4
-_08077908: .4byte gSprites
- thumb_func_end ma2B_make_side_invisible
-
- thumb_func_start ma2C_make_side_visible
-ma2C_make_side_visible: @ 807790C
- push {r4,lr}
- ldr r4, _08077944 @ =gUnknown_0202F7A4
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08077936
- ldr r1, _08077948 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08077936:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077944: .4byte gUnknown_0202F7A4
-_08077948: .4byte gSprites
- thumb_func_end ma2C_make_side_visible
-
- thumb_func_start sub_807794C
-sub_807794C: @ 807794C
- push {r4-r7,lr}
- ldr r1, _08077998 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080779F6
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080779F6
- ldr r6, _0807799C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _080779A0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080779F6
- cmp r7, 0
- bne _080779A4
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _080779B0
- .align 2, 0
-_08077998: .4byte gUnknown_0202F7A4
-_0807799C: .4byte gUnknown_0202F7C8
-_080779A0: .4byte gUnknown_0202F7C9
-_080779A4:
- ldrb r0, [r5]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_080779B0:
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080779F6
- ldr r1, _080779EC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- cmp r4, 0x2
- bne _080779E0
- ldrb r0, [r2, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080779E0:
- cmp r4, 0x1
- bne _080779F0
- movs r0, 0
- bl sub_8076464
- b _080779F6
- .align 2, 0
-_080779EC: .4byte gSprites
-_080779F0:
- movs r0, 0x1
- bl sub_8076464
-_080779F6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807794C
-
- thumb_func_start sub_80779FC
-sub_80779FC: @ 80779FC
- push {r4-r7,lr}
- ldr r1, _08077A48 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08077A88
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08077A88
- ldr r6, _08077A4C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _08077A50 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08077A88
- cmp r7, 0
- bne _08077A54
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _08077A60
- .align 2, 0
-_08077A48: .4byte gUnknown_0202F7A4
-_08077A4C: .4byte gUnknown_0202F7C8
-_08077A50: .4byte gUnknown_0202F7C9
-_08077A54:
- ldrb r0, [r5]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_08077A60:
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08077A88
- cmp r4, 0x2
- bne _08077A88
- ldr r1, _08077A90 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
-_08077A88:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077A90: .4byte gSprites
- thumb_func_end sub_80779FC
-
- thumb_func_start ma2F_stop_music
-ma2F_stop_music: @ 8077A94
- push {lr}
- ldr r0, _08077AB0 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08077AB4 @ =gMPlay_SE2
- bl m4aMPlayStop
- ldr r1, _08077AB8 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08077AB0: .4byte gMPlay_SE1
-_08077AB4: .4byte gMPlay_SE2
-_08077AB8: .4byte gUnknown_0202F7A4
- thumb_func_end ma2F_stop_music
-
thumb_func_start sub_8077ABC
sub_8077ABC: @ 8077ABC
push {r4,r5,lr}
@@ -4765,7 +45,7 @@ _08077B00:
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 22
- ldr r1, _08077B24 @ =gUnknown_020239F8
+ ldr r1, _08077B24 @ =gBattleTypeFlags
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
@@ -4776,14 +56,14 @@ _08077B00:
b _08077BF4
.align 2, 0
_08077B20: .4byte gUnknown_0837F578
-_08077B24: .4byte gUnknown_020239F8
+_08077B24: .4byte gBattleTypeFlags
_08077B28:
ldr r4, _08077B48 @ =gUnknown_0837F578
adds r0, r5, 0
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 22
- ldr r1, _08077B4C @ =gUnknown_020239F8
+ ldr r1, _08077B4C @ =gBattleTypeFlags
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
@@ -4794,7 +74,7 @@ _08077B28:
b _08077BF4
.align 2, 0
_08077B48: .4byte gUnknown_0837F578
-_08077B4C: .4byte gUnknown_020239F8
+_08077B4C: .4byte gBattleTypeFlags
_08077B50:
bl sub_8076BE0
lsls r0, 24
@@ -5226,7 +506,7 @@ _08077E94:
ldr r3, _08077EDC @ =gUnknown_0837F578
lsls r0, 24
lsrs r0, 22
- ldr r1, _08077EE0 @ =gUnknown_020239F8
+ ldr r1, _08077EE0 @ =gBattleTypeFlags
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
@@ -5259,7 +539,7 @@ _08077ED4:
bx r1
.align 2, 0
_08077EDC: .4byte gUnknown_0837F578
-_08077EE0: .4byte gUnknown_020239F8
+_08077EE0: .4byte gBattleTypeFlags
thumb_func_end sub_8077E44
thumb_func_start sub_8077EE4
@@ -5986,7 +1266,7 @@ _08078400:
bl sub_8078104
_08078406:
adds r0, r4, 0
- bl sub_809D638
+ bl UpdateMonIconFrame
pop {r4}
pop {r0}
bx r0
@@ -6480,7 +1760,7 @@ sub_8078764: @ 8078764
lsrs r0, 24
strh r0, [r5, 0x22]
_0807878C:
- ldr r4, _080787AC @ =gUnknown_03004B00
+ ldr r4, _080787AC @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -6494,7 +1774,7 @@ _0807878C:
bx r0
.align 2, 0
_080787A8: .4byte gUnknown_0202F7C9
-_080787AC: .4byte gUnknown_03004B00
+_080787AC: .4byte gBattleAnimArgs
thumb_func_end sub_8078764
thumb_func_start sub_80787B0
@@ -6531,7 +1811,7 @@ _080787E8:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _08078810 @ =gUnknown_03004B00
+ ldr r4, _08078810 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -6545,7 +1825,7 @@ _080787E8:
bx r0
.align 2, 0
_0807880C: .4byte gUnknown_0202F7C8
-_08078810: .4byte gUnknown_03004B00
+_08078810: .4byte gBattleAnimArgs
thumb_func_end sub_80787B0
thumb_func_start battle_side_get_owner
@@ -6681,16 +1961,16 @@ _080788FE:
bx r1
thumb_func_end sub_8078874
- thumb_func_start battle_type_is_double
-battle_type_is_double: @ 8078904
- ldr r0, _08078910 @ =gUnknown_020239F8
+ thumb_func_start IsDoubleBattle
+IsDoubleBattle: @ 8078904
+ ldr r0, _08078910 @ =gBattleTypeFlags
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
bx lr
.align 2, 0
-_08078910: .4byte gUnknown_020239F8
- thumb_func_end battle_type_is_double
+_08078910: .4byte gBattleTypeFlags
+ thumb_func_end IsDoubleBattle
thumb_func_start sub_8078914
sub_8078914: @ 8078914
@@ -8149,7 +3429,7 @@ sub_80793C4: @ 80793C4
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08079402
- ldr r2, _080793F0 @ =gUnknown_03004B00
+ ldr r2, _080793F0 @ =gBattleAnimArgs
movs r3, 0x6
ldrsh r0, [r2, r3]
movs r1, 0
@@ -8165,7 +3445,7 @@ _080793DE:
bl sub_80787B0
b _080793FA
.align 2, 0
-_080793F0: .4byte gUnknown_03004B00
+_080793F0: .4byte gBattleAnimArgs
_080793F4:
adds r0, r4, 0
bl sub_8078764
@@ -8194,7 +3474,7 @@ _08079416:
sub_807941C: @ 807941C
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, _08079494 @ =gUnknown_03004B00
+ ldr r6, _08079494 @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r6, r1]
movs r1, 0xFF
@@ -8251,7 +3531,7 @@ _08079458:
pop {r0}
bx r0
.align 2, 0
-_08079494: .4byte gUnknown_03004B00
+_08079494: .4byte gBattleAnimArgs
_08079498: .4byte gUnknown_0202F7C8
_0807949C: .4byte gUnknown_0202F7C9
_080794A0: .4byte sub_8078B34
@@ -8270,12 +3550,12 @@ sub_80794A8: @ 80794A8
lsls r0, 24
cmp r0, 0
beq _080794C8
- ldr r1, _0807950C @ =gUnknown_03004B00
+ ldr r1, _0807950C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080794C8:
- ldr r4, _0807950C @ =gUnknown_03004B00
+ ldr r4, _0807950C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _08079510 @ =gUnknown_0202F7C9
@@ -8306,7 +3586,7 @@ _080794C8:
bx r0
.align 2, 0
_08079508: .4byte gUnknown_0202F7C8
-_0807950C: .4byte gUnknown_03004B00
+_0807950C: .4byte gBattleAnimArgs
_08079510: .4byte gUnknown_0202F7C9
_08079514: .4byte sub_8079518
thumb_func_end sub_80794A8
@@ -8331,7 +3611,7 @@ _0807952C:
sub_8079534: @ 8079534
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _08079548 @ =gUnknown_03004B00
+ ldr r0, _08079548 @ =gBattleAnimArgs
movs r2, 0xC
ldrsh r1, [r0, r2]
cmp r1, 0
@@ -8340,7 +3620,7 @@ sub_8079534: @ 8079534
movs r7, 0x3
b _08079550
.align 2, 0
-_08079548: .4byte gUnknown_03004B00
+_08079548: .4byte gBattleAnimArgs
_0807954C:
movs r4, 0
movs r7, 0x1
@@ -8369,7 +3649,7 @@ _08079572:
lsls r0, 24
cmp r0, 0
beq _0807958A
- ldr r1, _080795D8 @ =gUnknown_03004B00
+ ldr r1, _080795D8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -8377,7 +3657,7 @@ _0807958A:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8078764
- ldr r4, _080795D8 @ =gUnknown_03004B00
+ ldr r4, _080795D8 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
adds r0, r6, 0
@@ -8407,7 +3687,7 @@ _0807958A:
.align 2, 0
_080795D0: .4byte gUnknown_0202F7C9
_080795D4: .4byte gUnknown_0202F7C8
-_080795D8: .4byte gUnknown_03004B00
+_080795D8: .4byte gBattleAnimArgs
_080795DC: .4byte sub_8078B34
_080795E0: .4byte move_anim_8072740
thumb_func_end sub_8079534
@@ -8496,7 +3776,7 @@ sub_8079670: @ 8079670
lsrs r2, r0, 24
movs r5, 0
movs r3, 0
- ldr r4, _080796E4 @ =gUnknown_03004B00
+ ldr r4, _080796E4 @ =gBattleAnimArgs
movs r0, 0x4
ldrsh r1, [r4, r0]
movs r6, 0
@@ -8553,7 +3833,7 @@ _080796A4:
pop {r0}
bx r0
.align 2, 0
-_080796E4: .4byte gUnknown_03004B00
+_080796E4: .4byte gBattleAnimArgs
_080796E8: .4byte 0x0000ffff
_080796EC: .4byte gTasks
_080796F0: .4byte REG_BLDALPHA
@@ -8646,7 +3926,7 @@ sub_8079790: @ 8079790
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080797B0 @ =gUnknown_03004B00
+ ldr r0, _080797B0 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -8657,7 +3937,7 @@ sub_8079790: @ 8079790
bl move_anim_task_del
b _080797DA
.align 2, 0
-_080797B0: .4byte gUnknown_03004B00
+_080797B0: .4byte gBattleAnimArgs
_080797B4:
ldr r1, _080797E0 @ =gTasks
lsls r0, r4, 2
@@ -8689,7 +3969,7 @@ _080797E8: .4byte 0x00000101
thumb_func_start sub_80797EC
sub_80797EC: @ 80797EC
- ldr r3, _0807980C @ =gUnknown_03004B00
+ ldr r3, _0807980C @ =gBattleAnimArgs
ldrh r1, [r3, 0x2]
movs r2, 0
strh r1, [r0, 0xA]
@@ -8706,7 +3986,7 @@ sub_80797EC: @ 80797EC
str r1, [r0]
bx lr
.align 2, 0
-_0807980C: .4byte gUnknown_03004B00
+_0807980C: .4byte gBattleAnimArgs
_08079810: .4byte sub_8079814
thumb_func_end sub_80797EC
@@ -8793,7 +4073,7 @@ sub_80798AC: @ 80798AC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080798CC @ =gUnknown_03004B00
+ ldr r0, _080798CC @ =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -8804,7 +4084,7 @@ sub_80798AC: @ 80798AC
bl move_anim_task_del
b _080798E6
.align 2, 0
-_080798CC: .4byte gUnknown_03004B00
+_080798CC: .4byte gBattleAnimArgs
_080798D0:
ldr r1, _080798EC @ =gTasks
lsls r0, r4, 2
@@ -9381,7 +4661,7 @@ sub_8079CEC: @ 8079CEC
bhi _08079D0A
movs r1, 0x2
_08079D0A:
- ldr r0, _08079D1C @ =gUnknown_03004B00
+ ldr r0, _08079D1C @ =gBattleAnimArgs
strh r1, [r0, 0xE]
adds r0, r2, 0
bl move_anim_task_del
@@ -9389,7 +4669,7 @@ _08079D0A:
bx r0
.align 2, 0
_08079D18: .4byte gUnknown_0202F7BE
-_08079D1C: .4byte gUnknown_03004B00
+_08079D1C: .4byte gBattleAnimArgs
thumb_func_end sub_8079CEC
thumb_func_start unref_sub_8079D20
@@ -9756,7 +5036,7 @@ sub_8079F44: @ 8079F44
str r4, [sp, 0x8]
movs r4, 0x1
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
b _0807A02E
.align 2, 0
_08079FE0: .4byte gUnknown_0837F5E0
@@ -9791,7 +5071,7 @@ _08079FF0:
str r4, [sp, 0x8]
movs r4, 0
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
_0807A02E:
movs r2, 0x80
lsls r2, 18
@@ -10314,7 +5594,7 @@ _0807A41E:
bl sub_8077ABC
lsls r0, 24
lsrs r7, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0807A470
@@ -10377,7 +5657,7 @@ sub_807A4A0: @ 807A4A0
lsrs r6, 24
ldr r0, _0807A538 @ =SpriteCallbackDummy
mov r10, r0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
mov r8, r0
mov r0, r8
lsls r0, 24
@@ -10457,7 +5737,7 @@ sub_807A544: @ 807A544
lsls r0, 24
cmp r0, 0
beq _0807A584
- ldr r2, _0807A580 @ =gUnknown_03004B00
+ ldr r2, _0807A580 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -10475,9 +5755,9 @@ sub_807A544: @ 807A544
b _0807A58E
.align 2, 0
_0807A57C: .4byte gUnknown_0202F7C8
-_0807A580: .4byte gUnknown_03004B00
+_0807A580: .4byte gBattleAnimArgs
_0807A584:
- ldr r1, _0807A5B8 @ =gUnknown_03004B00
+ ldr r1, _0807A5B8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -10504,7 +5784,7 @@ _0807A58E:
pop {r0}
bx r0
.align 2, 0
-_0807A5B8: .4byte gUnknown_03004B00
+_0807A5B8: .4byte gBattleAnimArgs
_0807A5BC: .4byte move_anim_8074EE0
_0807A5C0: .4byte sub_8078504
thumb_func_end sub_807A544
@@ -10519,7 +5799,7 @@ sub_807A5C4: @ 807A5C4
lsls r0, 24
cmp r0, 0
beq _0807A5F4
- ldr r2, _0807A5F0 @ =gUnknown_03004B00
+ ldr r2, _0807A5F0 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -10532,9 +5812,9 @@ sub_807A5C4: @ 807A5C4
b _0807A5FE
.align 2, 0
_0807A5EC: .4byte gUnknown_0202F7C8
-_0807A5F0: .4byte gUnknown_03004B00
+_0807A5F0: .4byte gBattleAnimArgs
_0807A5F4:
- ldr r1, _0807A630 @ =gUnknown_03004B00
+ ldr r1, _0807A630 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -10564,7 +5844,7 @@ _0807A5FE:
pop {r0}
bx r0
.align 2, 0
-_0807A630: .4byte gUnknown_03004B00
+_0807A630: .4byte gBattleAnimArgs
_0807A634: .4byte move_anim_8074EE0
_0807A638: .4byte sub_8078504
thumb_func_end sub_807A5C4
@@ -10580,7 +5860,7 @@ sub_807A63C: @ 807A63C
lsls r0, 24
cmp r0, 0
beq _0807A668
- ldr r0, _0807A664 @ =gUnknown_03004B00
+ ldr r0, _0807A664 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -10588,9 +5868,9 @@ sub_807A63C: @ 807A63C
b _0807A674
.align 2, 0
_0807A660: .4byte gUnknown_0202F7C8
-_0807A664: .4byte gUnknown_03004B00
+_0807A664: .4byte gBattleAnimArgs
_0807A668:
- ldr r1, _0807A690 @ =gUnknown_03004B00
+ ldr r1, _0807A690 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -10610,7 +5890,7 @@ _0807A674:
pop {r0}
bx r0
.align 2, 0
-_0807A690: .4byte gUnknown_03004B00
+_0807A690: .4byte gBattleAnimArgs
_0807A694: .4byte sub_8078600
_0807A698: .4byte move_anim_8072740
thumb_func_end sub_807A63C
@@ -10706,7 +5986,7 @@ _0807A742:
adds r1, r2
ldr r2, _0807A778 @ =REG_BG0CNT
bl CpuSet
- ldr r0, _0807A77C @ =gUnknown_03004B00
+ ldr r0, _0807A77C @ =gBattleAnimArgs
ldrb r2, [r0, 0x2]
ldrh r3, [r0]
adds r0, r6, 0
@@ -10721,7 +6001,7 @@ _0807A742:
_0807A770: .4byte gPlttBufferUnfaded
_0807A774: .4byte gPlttBufferFaded
_0807A778: .4byte REG_BG0CNT
-_0807A77C: .4byte gUnknown_03004B00
+_0807A77C: .4byte gBattleAnimArgs
_0807A780: .4byte sub_807A784
thumb_func_end sub_807A69C
@@ -11021,7 +6301,7 @@ _0807A9B4:
sub_807A9BC: @ 807A9BC
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _0807A9F4 @ =gUnknown_03004B00
+ ldr r5, _0807A9F4 @ =gBattleAnimArgs
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x8]
@@ -11047,7 +6327,7 @@ sub_807A9BC: @ 807A9BC
subs r0, 0x14
b _0807AA0A
.align 2, 0
-_0807A9F4: .4byte gUnknown_03004B00
+_0807A9F4: .4byte gBattleAnimArgs
_0807A9F8: .4byte gUnknown_0202F7C9
_0807A9FC:
ldrh r0, [r5, 0x8]
diff --git a/asm/rom_8080874.s b/asm/rom_8080874.s
index d4a6414fb..77dad9f9e 100644
--- a/asm/rom_8080874.s
+++ b/asm/rom_8080874.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start palette_bg_faded_fill_black
-palette_bg_faded_fill_black: @ 8080874
+ thumb_func_start palette_bg_fill_white
+palette_bg_fill_white: @ 8080874
push {lr}
sub sp, 0x4
ldr r0, _0808088C @ =0x7fff7fff
@@ -23,10 +23,10 @@ palette_bg_faded_fill_black: @ 8080874
_0808088C: .4byte 0x7fff7fff
_08080890: .4byte gPlttBufferFaded
_08080894: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_black
+ thumb_func_end palette_bg_fill_white
- thumb_func_start palette_bg_faded_fill_white
-palette_bg_faded_fill_white: @ 8080898
+ thumb_func_start palette_bg_fill_black
+palette_bg_fill_black: @ 8080898
push {lr}
sub sp, 0x4
movs r0, 0
@@ -41,10 +41,10 @@ palette_bg_faded_fill_white: @ 8080898
.align 2, 0
_080808B0: .4byte gPlttBufferFaded
_080808B4: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_white
+ thumb_func_end palette_bg_fill_black
- thumb_func_start pal_fill_for_maplights
-pal_fill_for_maplights: @ 80808B8
+ thumb_func_start pal_fill_for_map_transition
+pal_fill_for_map_transition: @ 80808B8
push {r4,lr}
bl get_map_light_from_warp0
adds r4, r0, 0
@@ -67,18 +67,18 @@ _080808E2:
movs r0, 0
movs r1, 0
bl fade_screen
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
b _080808FC
_080808F0:
movs r0, 0x2
movs r1, 0
bl fade_screen
- bl palette_bg_faded_fill_black
+ bl palette_bg_fill_white
_080808FC:
pop {r4}
pop {r0}
bx r0
- thumb_func_end pal_fill_for_maplights
+ thumb_func_end pal_fill_for_map_transition
thumb_func_start pal_fill_black
pal_fill_black: @ 8080904
@@ -86,13 +86,13 @@ pal_fill_black: @ 8080904
movs r0, 0
movs r1, 0
bl fade_screen
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
pop {r0}
bx r0
thumb_func_end pal_fill_black
- thumb_func_start sub_8080918
-sub_8080918: @ 8080918
+ thumb_func_start fade_8080918
+fade_8080918: @ 8080918
push {r4,lr}
bl sav1_map_get_light_level
adds r4, r0, 0
@@ -122,7 +122,7 @@ _08080950:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8080918
+ thumb_func_end fade_8080918
thumb_func_start sub_8080958
sub_8080958: @ 8080958
@@ -226,7 +226,7 @@ _08080A06:
ldrb r0, [r1, 0x4]
cmp r0, 0x1
beq _08080A36
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
_08080A1C:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -250,7 +250,7 @@ sub_8080A3C: @ 8080A3C
push {lr}
bl ScriptContext2_Enable
bl sub_8053E90
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
ldr r0, _08080A58 @ =task_mpl_807DD60
movs r1, 0xA
bl CreateTask
@@ -293,7 +293,7 @@ _08080A90:
lsls r0, 24
cmp r0, 0
beq _08080ABC
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
_08080A9E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -318,7 +318,7 @@ sub_8080AC4: @ 8080AC4
push {lr}
bl ScriptContext2_Enable
bl sub_8053E90
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
ldr r0, _08080AE0 @ =sub_8080A5C
movs r1, 0xA
bl CreateTask
@@ -357,7 +357,7 @@ sub_8080AE4: @ 8080AE4
_08080B18: .4byte sub_8080B9C
_08080B1C:
adds r0, r4, 0
- bl sub_8056F08
+ bl MetatileBehavior_IsNonAnimDoor
lsls r0, 24
lsrs r0, 24
ldr r1, _08080B40 @ =task_map_chg_seq_0807E2CC
@@ -381,7 +381,7 @@ _08080B44: .4byte task_map_chg_seq_0807E20C
mapldr_default: @ 8080B48
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl sub_8080AE4
bl ScriptContext2_Enable
pop {r0}
@@ -403,7 +403,7 @@ sub_8080B60: @ 8080B60
sub_8080B78: @ 8080B78
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
movs r0, 0x2E
bl PlaySE
ldr r0, _08080B98 @ =task_map_chg_seq_0807E2CC
@@ -453,7 +453,7 @@ _08080BD0:
_08080BE4:
movs r0, 0
bl sub_8080958
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r6, 0
adds r1, r7, 0
bl PlayerGetDestCoords
@@ -534,7 +534,7 @@ _08080C84:
cmp r0, 0x1
beq _08080CAE
_08080C9A:
- bl sub_806451C
+ bl UnfreezeMapObjects
movs r0, 0x4
strh r0, [r5, 0x8]
b _08080CAE
@@ -582,7 +582,7 @@ _08080CE4:
_08080CEE:
movs r0, 0
bl sub_8080958
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r6, 0
adds r1, r7, 0
bl PlayerGetDestCoords
@@ -625,7 +625,7 @@ _08080D50:
lsls r0, 24
cmp r0, 0
beq _08080D6E
- bl sub_806451C
+ bl UnfreezeMapObjects
movs r0, 0x3
strh r0, [r5, 0x8]
b _08080D6E
@@ -659,7 +659,7 @@ task_map_chg_seq_0807E2CC: @ 8080D74
.align 2, 0
_08080D94: .4byte gTasks
_08080D98:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -669,7 +669,7 @@ _08080DA8:
bl sub_8080E70
cmp r0, 0
beq _08080DBE
- bl sub_806451C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
adds r0, r5, 0
bl DestroyTask
@@ -792,7 +792,7 @@ sub_8080E88: @ 8080E88
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
@@ -815,7 +815,7 @@ sp13E_warp_to_last_warp: @ 8080EC0
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
ldr r0, _08080EE4 @ =gUnknown_0300485C
ldr r1, _08080EE8 @ =mapldr_default
@@ -903,7 +903,7 @@ sub_8080F68: @ 8080F68
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
movs r0, 0x2D
bl PlaySE
ldr r0, _08080F90 @ =task0A_fade_n_map_maybe
@@ -924,7 +924,7 @@ _08080F98: .4byte sub_8080B78
sub_8080F9C: @ 8080F9C
push {lr}
bl ScriptContext2_Enable
- bl sub_8080918
+ bl fade_8080918
ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe
movs r1, 0xA
bl CreateTask
@@ -999,7 +999,7 @@ sub_808102C: @ 808102C
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
movs r0, 0x9
bl PlaySE
ldr r0, _0808104C @ =sub_8080FC4
@@ -1116,7 +1116,7 @@ _08081118:
beq _08081142
b _08081152
_0808111E:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
b _0808113A
_08081128:
@@ -1183,7 +1183,7 @@ _08081194:
.4byte _0808128C
.4byte _080812A8
_080811A8:
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r4, 0
adds r1, r6, 0
bl PlayerGetDestCoords
@@ -1304,7 +1304,7 @@ _080812A2:
b _080812BC
_080812A8:
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0
strh r0, [r5, 0x8]
@@ -1344,7 +1344,7 @@ _080812F0:
beq _0808131A
b _0808132A
_080812F6:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
b _08081312
_08081300:
@@ -1379,7 +1379,7 @@ sub_8081334: @ 8081334
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s
index 231f13e9c..d272b277a 100644
--- a/asm/rom_8094928.s
+++ b/asm/rom_8094928.s
@@ -76,7 +76,7 @@ sub_8094998: @ 8094998
adds r6, r0, 0
lsls r1, 24
lsrs r4, r1, 24
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -99,7 +99,7 @@ _080949C0:
strb r0, [r6, 0x2]
b _08094A68
_080949CE:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08094A0C
@@ -218,7 +218,7 @@ _08094AA8:
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r6, r0, 24
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -241,7 +241,7 @@ _08094ACE:
strb r0, [r5, 0x2]
b _08094B5E
_08094ADC:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08094B14
@@ -331,7 +331,7 @@ sub_8094B6C: @ 8094B6C
lsls r2, 24
lsrs r6, r2, 24
movs r7, 0
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08094C16
@@ -722,28738 +722,4 @@ sub_8094E4C: @ 8094E4C
bx r0
thumb_func_end sub_8094E4C
- thumb_func_start sub_8094E58
-sub_8094E58: @ 8094E58
- push {r4,r5,lr}
- ldr r1, _08094E78 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0xA
- bls _08094E6E
- b _08095048
-_08094E6E:
- lsls r0, 2
- ldr r1, _08094E7C @ =_08094E80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08094E78: .4byte 0x0201b000
-_08094E7C: .4byte _08094E80
- .align 2, 0
-_08094E80:
- .4byte _08094EAC
- .4byte _08094F28
- .4byte _08094F3C
- .4byte _08094F4A
- .4byte _08094F6C
- .4byte _08094F80
- .4byte _08094F94
- .4byte _08094FA8
- .4byte _08094FBC
- .4byte _08094FD0
- .4byte _08095000
-_08094EAC:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094EDC
- ldr r1, _08094ED4 @ =0x0201b000
- ldr r0, _08094ED8 @ =0x00000266
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x6
- bne _08094EEC
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094ED4: .4byte 0x0201b000
-_08094ED8: .4byte 0x00000266
-_08094EDC:
- ldr r1, _08094F10 @ =0x0201b000
- ldr r0, _08094F14 @ =0x00000266
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x5
- bgt _08094F1C
-_08094EEC:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0
- ldrsh r3, [r4, r2]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08094F18 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08095048
- .align 2, 0
-_08094F10: .4byte 0x0201b000
-_08094F14: .4byte 0x00000266
-_08094F18: .4byte gPlayerParty
-_08094F1C:
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
-_08094F28:
- bl sub_806DA98
- ldr r1, _08094F38 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F38: .4byte 0x0201b000
-_08094F3C:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- b _08094FE6
-_08094F4A:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r4, r3
- ldrb r0, [r0]
- ldr r1, _08094F68 @ =0x00000266
- adds r5, r4, r1
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08094FE2
- b _08094FF8
- .align 2, 0
-_08094F68: .4byte 0x00000266
-_08094F6C:
- bl sub_806E334
- ldr r1, _08094F7C @ =0x0201b000
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094F7C: .4byte 0x0201b000
-_08094F80:
- bl sub_806E0C4
- ldr r1, _08094F90 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F90: .4byte 0x0201b000
-_08094F94:
- bl sub_806E53C
- ldr r1, _08094FA4 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08094FEC
- .align 2, 0
-_08094FA4: .4byte 0x0201b000
-_08094FA8:
- bl nullsub_13
- ldr r1, _08094FB8 @ =0x0201b000
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094FB8: .4byte 0x0201b000
-_08094FBC:
- bl sub_806E6C8
- ldr r1, _08094FCC @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094FCC: .4byte 0x0201b000
-_08094FD0:
- ldr r1, _08094FF4 @ =0x00000266
- adds r5, r4, r1
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094FF8
-_08094FE2:
- movs r0, 0
- strh r0, [r5]
-_08094FE6:
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
-_08094FEC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08095048
- .align 2, 0
-_08094FF4: .4byte 0x00000266
-_08094FF8:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _08095048
-_08095000:
- ldr r0, _08095024 @ =gUnknown_02038473
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0809503C
- ldr r0, _08095028 @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095034
- ldr r0, _0809502C @ =0x0201b000
- ldr r3, _08095030 @ =0x00000259
- adds r0, r3
- movs r1, 0xFF
- strb r1, [r0]
- b _0809503C
- .align 2, 0
-_08095024: .4byte gUnknown_02038473
-_08095028: .4byte gScriptItemId
-_0809502C: .4byte 0x0201b000
-_08095030: .4byte 0x00000259
-_08095034:
- ldr r0, _08095040 @ =0x0201b000
- ldr r1, _08095044 @ =0x00000259
- adds r0, r1
- strb r4, [r0]
-_0809503C:
- movs r0, 0x1
- b _0809504A
- .align 2, 0
-_08095040: .4byte 0x0201b000
-_08095044: .4byte 0x00000259
-_08095048:
- movs r0, 0
-_0809504A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E58
-
- thumb_func_start sub_8095050
-sub_8095050: @ 8095050
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809508C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r5, r0, 0
- cmp r5, 0
- bne _080950C8
- ldr r0, _08095090 @ =gUnknown_02038473
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0809509C
- ldr r3, _08095094 @ =gTasks
- ldr r2, _08095098 @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- b _080950DE
- .align 2, 0
-_0809508C: .4byte gPlayerParty
-_08095090: .4byte gUnknown_02038473
-_08095094: .4byte gTasks
-_08095098: .4byte 0x0201b000
-_0809509C:
- ldr r3, _080950C0 @ =gTasks
- ldr r2, _080950C4 @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x12]
- b _080950EC
- .align 2, 0
-_080950C0: .4byte gTasks
-_080950C4: .4byte 0x0201b000
-_080950C8:
- ldr r3, _08095108 @ =gTasks
- ldr r2, _0809510C @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r4, 0x2
-_080950DE:
- strh r4, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r4, [r0, 0x12]
-_080950EC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x10]
- ldr r1, _08095110 @ =gUnknown_083B5FF4
- ldr r2, _08095114 @ =gUnknown_083B5FCC
- movs r3, 0
- bl sub_806E750
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08095108: .4byte gTasks
-_0809510C: .4byte 0x0201b000
-_08095110: .4byte gUnknown_083B5FF4
-_08095114: .4byte gUnknown_083B5FCC
- thumb_func_end sub_8095050
-
- thumb_func_start sub_8095118
-sub_8095118: @ 8095118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095150 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809512C
- b _08095268
-_0809512C:
- ldr r0, _08095154 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08095164
- ldr r5, _08095158 @ =gScriptItemId
- ldrh r0, [r5]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095164
- ldr r0, _0809515C @ =gUnknown_03004AE4
- ldrh r1, [r5]
- ldr r2, _08095160 @ =sub_80952E4
- ldr r3, [r0]
- b _080951AA
- .align 2, 0
-_08095150: .4byte gPaletteFade
-_08095154: .4byte gUnknown_02038473
-_08095158: .4byte gScriptItemId
-_0809515C: .4byte gUnknown_03004AE4
-_08095160: .4byte sub_80952E4
-_08095164:
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08095178
- cmp r0, 0x2
- beq _08095214
- b _08095268
-_08095178:
- ldr r0, _080951B4 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080951C8
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080951B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809521C
- bl sub_806D5A4
- ldr r3, _080951BC @ =gUnknown_03004AE4
- ldr r0, _080951C0 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _080951C4 @ =sub_80952E4
- ldr r3, [r3]
-_080951AA:
- adds r0, r4, 0
- bl _call_via_r3
- b _08095268
- .align 2, 0
-_080951B4: .4byte gUnknown_02038473
-_080951B8: .4byte gPlayerParty
-_080951BC: .4byte gUnknown_03004AE4
-_080951C0: .4byte gScriptItemId
-_080951C4: .4byte sub_80952E4
-_080951C8:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08095204 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08095208 @ =gStringVar1
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8095050
- ldr r1, _0809520C @ =sub_8095408
- ldr r2, _08095210 @ =sub_8095118
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- b _08095268
- .align 2, 0
-_08095204: .4byte gPlayerParty
-_08095208: .4byte gStringVar1
-_0809520C: .4byte sub_8095408
-_08095210: .4byte sub_8095118
-_08095214:
- ldr r5, _08095224 @ =gUnknown_02038473
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08095228
-_0809521C:
- movs r0, 0x20
- bl PlaySE
- b _08095268
- .align 2, 0
-_08095224: .4byte gUnknown_02038473
-_08095228:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _08095254
- ldr r1, _08095248 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0809524C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095250 @ =sub_80952E4
- b _08095266
- .align 2, 0
-_08095248: .4byte gUnknown_0202E8F4
-_0809524C: .4byte gTasks
-_08095250: .4byte sub_80952E4
-_08095254:
- ldr r1, _08095270 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08095274 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095278 @ =sub_809527C
-_08095266:
- str r1, [r0]
-_08095268:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08095270: .4byte gUnknown_0202E8F4
-_08095274: .4byte gTasks
-_08095278: .4byte sub_809527C
- thumb_func_end sub_8095118
-
- thumb_func_start sub_809527C
-sub_809527C: @ 809527C
- 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, _080952AC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080952B0 @ =sub_80952B4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952AC: .4byte gTasks
-_080952B0: .4byte sub_80952B4
- thumb_func_end sub_809527C
-
- thumb_func_start sub_80952B4
-sub_80952B4: @ 80952B4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080952D6
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080952E0 @ =sub_802E414
- bl SetMainCallback2
-_080952D6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952DC: .4byte gPaletteFade
-_080952E0: .4byte sub_802E414
- thumb_func_end sub_80952B4
-
- thumb_func_start sub_80952E4
-sub_80952E4: @ 80952E4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952FC @ =gUnknown_0202E8F4
- ldrb r1, [r0]
- cmp r1, 0
- beq _08095300
- adds r0, r4, 0
- bl sub_809527C
- b _0809531E
- .align 2, 0
-_080952FC: .4byte gUnknown_0202E8F4
-_08095300:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08095328 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809532C @ =sub_8095330
- str r1, [r0]
-_0809531E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095328: .4byte gTasks
-_0809532C: .4byte sub_8095330
- thumb_func_end sub_80952E4
-
- thumb_func_start sub_8095330
-sub_8095330: @ 8095330
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095358 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095350
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- bl sub_80A6DCC
-_08095350:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095358: .4byte gPaletteFade
- thumb_func_end sub_8095330
-
- thumb_func_start sub_809535C
-sub_809535C: @ 809535C
- push {lr}
- ldr r2, _08095380 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08095384 @ =sub_8095118
- movs r0, 0x1
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08095388 @ =sub_809538C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08095380: .4byte gPaletteFade
-_08095384: .4byte sub_8095118
-_08095388: .4byte sub_809538C
- thumb_func_end sub_809535C
-
- thumb_func_start sub_809538C
-sub_809538C: @ 809538C
- push {r4,r5,lr}
- ldr r4, _080953D8 @ =0x0201b260
- ldr r5, _080953DC @ =gUnknown_020384F0
-_08095392:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080953F4
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080953E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080953E4 @ =gStringVar1
- bl GetMonNickname
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_8095050
- ldrb r0, [r4]
- ldr r1, _080953E8 @ =sub_8095408
- ldr r2, _080953EC @ =sub_8095118
- bl SetTaskFuncWithFollowupFunc
- ldr r0, _080953F0 @ =sub_806AEDC
- bl SetMainCallback2
- b _08095400
- .align 2, 0
-_080953D8: .4byte 0x0201b260
-_080953DC: .4byte gUnknown_020384F0
-_080953E0: .4byte gPlayerParty
-_080953E4: .4byte gStringVar1
-_080953E8: .4byte sub_8095408
-_080953EC: .4byte sub_8095118
-_080953F0: .4byte sub_806AEDC
-_080953F4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095392
-_08095400:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809538C
-
- thumb_func_start sub_8095408
-sub_8095408: @ 8095408
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _0809543C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080954B8
- ldr r2, _08095440 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095444
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080954B8
- .align 2, 0
-_0809543C: .4byte gPaletteFade
-_08095440: .4byte gMain
-_08095444:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0809545A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080954B8
-_0809545A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080954A4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08095498 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _0809549C @ =gUnknown_083B5FF4
- ldr r6, _080954A0 @ =gUnknown_083B5FCC
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _080954B8
- .align 2, 0
-_08095498: .4byte gTasks
-_0809549C: .4byte gUnknown_083B5FF4
-_080954A0: .4byte gUnknown_083B5FCC
-_080954A4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080954B8
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80958C4
-_080954B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095408
-
- thumb_func_start sub_80954C0
-sub_80954C0: @ 80954C0
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080954D8 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080954D4
- adds r0, r1, 0
- bl sub_80958C4
-_080954D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080954D8: .4byte gUnknown_0202E8F6
- thumb_func_end sub_80954C0
-
- thumb_func_start sub_80954DC
-sub_80954DC: @ 80954DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0809552C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095522
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08095530 @ =0x0201b000
- ldr r1, _08095534 @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08095538 @ =gPlayerParty
- ldr r1, _0809553C @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08095540 @ =sub_809535C
- movs r1, 0x4
- str r1, [sp]
- adds r1, r5, 0
- bl sub_809D8BC
-_08095522:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809552C: .4byte gPaletteFade
-_08095530: .4byte 0x0201b000
-_08095534: .4byte 0x00000262
-_08095538: .4byte gPlayerParty
-_0809553C: .4byte gPlayerPartyCount
-_08095540: .4byte sub_809535C
- thumb_func_end sub_80954DC
-
- thumb_func_start sub_8095544
-sub_8095544: @ 8095544
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0809557C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095580 @ =sub_80954DC
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809557C: .4byte gTasks
-_08095580: .4byte sub_80954DC
- thumb_func_end sub_8095544
-
- thumb_func_start sub_8095584
-sub_8095584: @ 8095584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080955F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x10]
- ldr r1, _080955FC @ =gUnknown_083B5FF4
- bl sub_806E7D0
- adds r0, r6, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095610
- cmp r5, 0x1
- beq _080955C6
- cmp r5, 0x4
- beq _080955C6
- cmp r5, 0x5
- bne _08095610
-_080955C6:
- bl sub_806D5A4
- ldr r4, _08095600 @ =gStringVar1
- bl sub_8040D08
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _08095604 @ =gStringVar4
- ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _080955F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809560C @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080955F8: .4byte gTasks
-_080955FC: .4byte gUnknown_083B5FF4
-_08095600: .4byte gStringVar1
-_08095604: .4byte gStringVar4
-_08095608: .4byte gOtherText_CantSwitchPokeWithYours
-_0809560C: .4byte sub_80954C0
-_08095610:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095654 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0809566C
- bl sub_806D5A4
- ldr r1, _08095658 @ =gStringVar1
- adds r0, r4, 0
- bl GetMonNickname
- ldr r4, _0809565C @ =gStringVar4
- ldr r1, _08095660 @ =gOtherText_NoEnergyLeft
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095664 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095668 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_08095654: .4byte gPlayerParty
-_08095658: .4byte gStringVar1
-_0809565C: .4byte gStringVar4
-_08095660: .4byte gOtherText_NoEnergyLeft
-_08095664: .4byte gTasks
-_08095668: .4byte sub_80954C0
-_0809566C:
- movs r4, 0
- ldr r0, _08095678 @ =gUnknown_02024A68
- lsls r1, r6, 2
- mov r8, r1
- b _080956A8
- .align 2, 0
-_08095678: .4byte gUnknown_02024A68
-_0809567C:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080956A0
- adds r0, r5, 0
- bl sub_8094C20
- lsls r0, 24
- ldr r2, _080956EC @ =gUnknown_02024A6A
- lsls r1, r4, 1
- adds r1, r2
- lsrs r0, 24
- ldrh r1, [r1]
- cmp r0, r1
- bne _080956A0
- b _08095808
-_080956A0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080956F0 @ =gUnknown_02024A68
-_080956A8:
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0809567C
- movs r2, 0x64
- mov r9, r2
- mov r0, r9
- muls r0, r5
- ldr r1, _080956F4 @ =gPlayerParty
- mov r10, r1
- adds r7, r0, r1
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08095708
- bl sub_806D5A4
- ldr r4, _080956F8 @ =gStringVar4
- ldr r1, _080956FC @ =gOtherText_EGGCantBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095700 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095704 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080956EC: .4byte gUnknown_02024A6A
-_080956F0: .4byte gUnknown_02024A68
-_080956F4: .4byte gPlayerParty
-_080956F8: .4byte gStringVar4
-_080956FC: .4byte gOtherText_EGGCantBattle
-_08095700: .4byte gTasks
-_08095704: .4byte sub_80954C0
-_08095708:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _0809574C @ =0x02000000
- ldr r2, _08095750 @ =0x0001609d
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08095768
- bl sub_806D5A4
- ldr r1, _08095754 @ =gStringVar1
- adds r0, r7, 0
- bl GetMonNickname
- ldr r4, _08095758 @ =gStringVar4
- ldr r1, _0809575C @ =gOtherText_AlreadySelected
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095760 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095764 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_0809574C: .4byte 0x02000000
-_08095750: .4byte 0x0001609d
-_08095754: .4byte gStringVar1
-_08095758: .4byte gStringVar4
-_0809575C: .4byte gOtherText_AlreadySelected
-_08095760: .4byte gTasks
-_08095764: .4byte sub_80954C0
-_08095768:
- ldr r0, _08095790 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080957A0
- bl sub_806D5A4
- bl sub_8040B8C
- ldr r0, _08095794 @ =gStringVar4
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095798 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809579C @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_08095790: .4byte gUnknown_02038473
-_08095794: .4byte gStringVar4
-_08095798: .4byte gTasks
-_0809579C: .4byte sub_80954C0
-_080957A0:
- cmp r0, 0x2
- bne _08095854
- ldr r0, _080957EC @ =gUnknown_02024E6C
- ldrb r4, [r0]
- bl sub_806D5A4
- ldr r0, _080957F0 @ =gUnknown_02024A6A
- lsls r4, 1
- adds r4, r0
- ldrb r0, [r4]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r10
- ldr r1, _080957F4 @ =gStringVar1
- bl GetMonNickname
- ldr r4, _080957F8 @ =gStringVar4
- ldr r1, _080957FC @ =gOtherText_CantBeSwitched
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095800 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095804 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080957EC: .4byte gUnknown_02024E6C
-_080957F0: .4byte gUnknown_02024A6A
-_080957F4: .4byte gStringVar1
-_080957F8: .4byte gStringVar4
-_080957FC: .4byte gOtherText_CantBeSwitched
-_08095800: .4byte gTasks
-_08095804: .4byte sub_80954C0
-_08095808:
- bl sub_806D5A4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809583C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08095840 @ =gStringVar1
- bl GetMonNickname
- ldr r4, _08095844 @ =gStringVar4
- ldr r1, _08095848 @ =gOtherText_AlreadyBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _0809584C @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095850 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_0809583C: .4byte gPlayerParty
-_08095840: .4byte gStringVar1
-_08095844: .4byte gStringVar4
-_08095848: .4byte gOtherText_AlreadyBattle
-_0809584C: .4byte gTasks
-_08095850: .4byte sub_80954C0
-_08095854:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _080958AC @ =gUnknown_0202E8F5
- strb r0, [r1]
- ldr r1, _080958B0 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080958B4 @ =gUnknown_02024A6A
- ldr r0, _080958B8 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094C98
- mov r0, r9
- muls r0, r4
- add r0, r10
- adds r1, r7, 0
- bl sub_806E6F0
- ldr r1, _080958BC @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080958C0 @ =sub_809527C
-_0809589A:
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080958AC: .4byte gUnknown_0202E8F5
-_080958B0: .4byte gUnknown_0202E8F4
-_080958B4: .4byte gUnknown_02024A6A
-_080958B8: .4byte gUnknown_02024E6C
-_080958BC: .4byte gTasks
-_080958C0: .4byte sub_809527C
- thumb_func_end sub_8095584
-
- thumb_func_start sub_80958C4
-sub_80958C4: @ 80958C4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072DEC
- ldr r0, _080958FC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldr r1, _08095900 @ =gUnknown_083B5FF4
- bl sub_806E7D0
- ldrh r0, [r4, 0x12]
- strh r0, [r4, 0x10]
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080958FC: .4byte gTasks
-_08095900: .4byte gUnknown_083B5FF4
- thumb_func_end sub_80958C4
-
- thumb_func_start sub_8095904
-sub_8095904: @ 8095904
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp]
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x3C]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r0, [sp]
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0
- bne _08095988
- movs r5, 0
- cmp r5, r8
- bcs _08095A2E
-_0809593E:
- ldr r1, [sp]
- adds r0, r1, r5
- ldrb r2, [r0]
- ldr r0, _08095980 @ =0x0000fff0
- ands r0, r2
- lsls r0, 6
- movs r1, 0xF
- ands r2, r1
- lsls r2, 5
- adds r0, r2
- ldr r1, _08095984 @ =gFont3LatinGlyphs
- adds r4, r0, r1
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, r2
- ldr r3, [sp, 0x4]
- adds r1, r7, r3
- movs r2, 0x10
- bl CpuSet
- adds r7, 0x20
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _0809593E
- b _08095A2E
- .align 2, 0
-_08095980: .4byte 0x0000fff0
-_08095984: .4byte gFont3LatinGlyphs
-_08095988:
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x8]
- lsls r0, r1, 28
- lsrs r0, 24
- str r0, [sp, 0xC]
- mov r2, r8
- lsls r0, r2, 21
- movs r1, 0
- lsrs r0, 1
- str r0, [sp, 0x10]
-_0809599E:
- movs r5, 0
- ldr r3, [sp, 0x4]
- adds r3, r7, r3
- str r3, [sp, 0x14]
- adds r0, r1, 0x1
- str r0, [sp, 0x18]
- cmp r5, r8
- bcs _08095A12
- movs r2, 0xF
- mov r12, r2
- lsls r1, 9
- ldr r0, _08095A40 @ =gFont3LatinGlyphs
- adds r1, r0
- mov r10, r1
-_080959BA:
- ldr r3, [sp]
- adds r0, r3, r5
- ldrb r1, [r0]
- ldr r0, _08095A44 @ =0x0000fff0
- ands r0, r1
- lsls r0, 6
- mov r2, r12
- ands r1, r2
- lsls r1, 5
- adds r0, r1
- mov r3, r10
- adds r4, r0, r3
- movs r6, 0
- adds r5, 0x1
-_080959D6:
- ldrb r0, [r4]
- movs r3, 0xF0
- ands r3, r0
- mov r2, r12
- ands r2, r0
- cmp r3, 0
- bne _080959E6
- ldr r3, [sp, 0xC]
-_080959E6:
- cmp r2, 0
- bne _080959EC
- ldr r2, [sp, 0x8]
-_080959EC:
- mov r0, r9
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r1, [sp, 0x40]
- adds r0, r1, r0
- orrs r3, r2
- strb r3, [r0]
- adds r4, 0x1
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _080959D6
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080959BA
-_08095A12:
- ldr r0, [sp, 0x40]
- adds r1, r7, 0
- ldr r3, [sp, 0x10]
- lsrs r2, r3, 16
- bl CpuSet
- ldr r7, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x18]
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _0809599E
-_08095A2E:
- 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
-_08095A40: .4byte gFont3LatinGlyphs
-_08095A44: .4byte 0x0000fff0
- thumb_func_end sub_8095904
-
- thumb_func_start unref_sub_8095A48
-unref_sub_8095A48: @ 8095A48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
-_08095A60:
- movs r3, 0
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _08095ACE
-_08095A6C:
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bhi _08095AA8
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- bne _08095A6C
- cmp r3, 0
- beq _08095ACE
- movs r6, 0x1
- cmp r3, 0x3
- bhi _08095AA8
- movs r2, 0
-_08095A96:
- adds r0, r3, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- add r0, sp
- adds r0, 0x8
- strb r2, [r0]
- cmp r3, 0x3
- bls _08095A96
-_08095AA8:
- mov r1, sp
- adds r1, r3
- adds r1, 0x8
- movs r0, 0xFF
- strb r0, [r1]
- str r7, [sp]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r5, 0
- mov r2, r8
- movs r3, 0x80
- bl sub_8095904
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- cmp r6, 0
- beq _08095A60
-_08095ACE:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8095A48
-
- thumb_func_start sub_8095ADC
-sub_8095ADC: @ 8095ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- movs r5, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_08095AF0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B20 @ =gUnknown_020300A4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095B0C
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095B0C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095AF0
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095B20: .4byte gUnknown_020300A4
- thumb_func_end sub_8095ADC
-
- thumb_func_start sub_8095B24
-sub_8095B24: @ 8095B24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r5, r0, 5
-_08095B36:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B54 @ =gUnknown_020300A4
- adds r0, r1
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095B58
- lsls r0, r4, 16
- asrs r0, 16
- b _08095B66
- .align 2, 0
-_08095B54: .4byte gUnknown_020300A4
-_08095B58:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095B36
- movs r0, 0x1
- negs r0, r0
-_08095B66:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B24
-
- thumb_func_start sub_8095B6C
-sub_8095B6C: @ 8095B6C
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0
-_08095B72:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095BB0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095B9A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095B9A
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095B9A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095B72
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095BB0: .4byte gPlayerParty
- thumb_func_end sub_8095B6C
-
- thumb_func_start sub_8095BB4
-sub_8095BB4: @ 8095BB4
- push {r4-r7,lr}
- lsls r0, 24
- movs r5, 0
- movs r6, 0
- lsrs r7, r0, 24
-_08095BBE:
- cmp r5, r7
- beq _08095BF6
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095C0C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095BF6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095BF6:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095BBE
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C0C: .4byte gPlayerParty
- thumb_func_end sub_8095BB4
-
- thumb_func_start sub_8095C10
-sub_8095C10: @ 8095C10
- push {lr}
- ldr r0, _08095C24 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08095C24: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8095C10
-
- thumb_func_start sub_8095C28
-sub_8095C28: @ 8095C28
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_08095C2E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08095C5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095C46
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095C46:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _08095C2E
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C5C: .4byte gPlayerParty
- thumb_func_end sub_8095C28
-
- thumb_func_start unref_sub_8095C60
-unref_sub_8095C60: @ 8095C60
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl StringCopy
- adds r1, r0, 0
- adds r5, r4
- cmp r1, r5
- bcs _08095C7E
- movs r0, 0
-_08095C76:
- strb r0, [r1]
- adds r1, 0x1
- cmp r1, r5
- bcc _08095C76
-_08095C7E:
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8095C60
-
- thumb_func_start sub_8095C8C
-sub_8095C8C: @ 8095C8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r7, r3, 0
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- ldr r0, [sp, 0x24]
- mov r9, r0
- ldr r0, [sp, 0x28]
- ldr r3, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r0, r9
- lsls r0, 17
- mov r9, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r6, r2
- adds r0, r4, 0
- muls r0, r3
- adds r0, r5
- lsls r0, 1
- adds r7, r0
- movs r4, 0
- cmp r4, r8
- bcs _08095CFC
- mov r0, r9
- lsrs r0, 1
- mov r9, r0
- lsls r5, r3, 1
-_08095CE2:
- adds r0, r7, 0
- adds r1, r6, 0
- mov r3, r9
- lsrs r2, r3, 16
- bl CpuSet
- adds r6, 0x40
- adds r7, r5
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _08095CE2
-_08095CFC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095C8C
-
- thumb_func_start unref_sub_8095D08
-unref_sub_8095D08: @ 8095D08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r4, r2
- lsls r3, 17
- lsrs r0, r3, 16
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r0, r10
- bcs _08095DB2
- movs r6, 0x80
- lsls r6, 5
- mov r5, sp
- ldr r7, _08095D74 @ =0x040000d4
- lsrs r3, 17
- mov r9, r3
- mov r1, r9
- movs r2, 0x81
- lsls r2, 24
- orrs r1, r2
- mov r9, r1
-_08095D4E:
- adds r3, r4, 0
- ldr r2, [sp, 0x4]
- movs r1, 0x40
- adds r1, r4
- mov r8, r1
- adds r0, 0x1
- mov r12, r0
- cmp r2, r6
- bhi _08095D78
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- str r2, [r7]
- str r4, [r7, 0x4]
- mov r0, r9
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _08095DA6
- .align 2, 0
-_08095D74: .4byte 0x040000d4
-_08095D78:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _08095DC4 @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- ldr r0, _08095DC8 @ =0x81000800
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r6
- subs r2, r6
- cmp r2, r6
- bhi _08095D78
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r2, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08095DA6:
- mov r4, r8
- mov r1, r12
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r10
- bcc _08095D4E
-_08095DB2:
- 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
-_08095DC4: .4byte 0x040000d4
-_08095DC8: .4byte 0x81000800
- thumb_func_end unref_sub_8095D08
-
- thumb_func_start sub_8095DCC
-sub_8095DCC: @ 8095DCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r0, r3, 24
- cmp r0, 0
- beq _08095DE8
- cmp r0, 0x2
- bne _08095DEC
-_08095DE8:
- movs r2, 0x1
- b _08095DEE
-_08095DEC:
- ldr r2, _08095E38 @ =0x0000ffff
-_08095DEE:
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08095E44
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E10:
- asrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- add r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095E3C
- asrs r0, r6, 16
- adds r0, r4, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E10
- b _08095E90
- .align 2, 0
-_08095E38: .4byte 0x0000ffff
-_08095E3C:
- adds r0, r4, 0
- b _08095E94
-_08095E40:
- adds r0, r5, 0
- b _08095E94
-_08095E44:
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E5C:
- asrs r5, r0, 16
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E80
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E40
-_08095E80:
- asrs r0, r6, 16
- adds r0, r5, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E5C
-_08095E90:
- movs r0, 0x1
- negs r0, r0
-_08095E94:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095DCC
-
- thumb_func_start sub_8095EA0
-sub_8095EA0: @ 8095EA0
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end sub_8095EA0
-
- thumb_func_start sub_8095EB4
-sub_8095EB4: @ 8095EB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08095ED8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08095ECE
- b _080960F4
-_08095ECE:
- lsls r0, 2
- ldr r1, _08095EDC @ =_08095EE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08095ED8: .4byte gTasks
-_08095EDC: .4byte _08095EE0
- .align 2, 0
-_08095EE0:
- .4byte _08095EF4
- .4byte _08095F1C
- .4byte _08095F30
- .4byte _08096042
- .4byte _080960DC
-_08095EF4:
- ldrb r0, [r4, 0xA]
- bl sub_8096168
- bl MenuDisplayMessageBox
- ldr r1, _08095F18 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _08095F28
- .align 2, 0
-_08095F18: .4byte gUnknown_083B600C
-_08095F1C:
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- bne _08095F28
- b _080960F4
-_08095F28:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080960F4
-_08095F30:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08095FC8
- cmp r1, r0
- bgt _08095F52
- subs r0, 0x1
- cmp r1, r0
- beq _08095F58
- b _08095FE8
-_08095F52:
- cmp r1, 0x3
- beq _08095FC8
- b _08095FE8
-_08095F58:
- ldrh r3, [r4, 0xA]
- strh r3, [r4, 0xE]
- ldr r2, _08095FC0 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095F76
- subs r0, r3, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bge _08095F76
- movs r0, 0x3
- strh r0, [r4, 0xE]
-_08095F76:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08095F92
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08095F92
- movs r0, 0
- strh r0, [r4, 0xE]
-_08095F92:
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _08095FA2
- b _080960F4
-_08095FA2:
- strh r2, [r4, 0xA]
- bl sub_8095EA0
- ldr r0, _08095FC4 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _080960F4
- .align 2, 0
-_08095FC0: .4byte gMain
-_08095FC4: .4byte gUnknown_083B600C
-_08095FC8:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080960F4
-_08095FE8:
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _08096008
- bl sub_8095C28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08096008
- bl sub_8095EA0
- ldr r0, _08096004 @ =gPCText_PartyFull2
- b _08096022
- .align 2, 0
-_08096004: .4byte gPCText_PartyFull2
-_08096008:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08096034
- bl sub_8095C28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08096034
- bl sub_8095EA0
- ldr r0, _08096030 @ =gPCText_OnlyOne
-_08096022:
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_08096030: .4byte gPCText_OnlyOne
-_08096034:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080960F4
-_08096042:
- ldr r0, _08096088 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r3, 0x3
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080960B8
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08096090
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0809606A
- strh r3, [r4, 0xA]
-_0809606A:
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- bl sub_8095EA0
- ldr r1, _0809608C @ =gUnknown_083B600C
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- b _080960C2
- .align 2, 0
-_08096088: .4byte gMain
-_0809608C: .4byte gUnknown_083B600C
-_08096090:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080960F4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080960A8
- strh r2, [r4, 0xA]
-_080960A8:
- movs r0, 0x1
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
-_080960B8:
- bl sub_8095EA0
- ldr r1, _080960D8 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
-_080960C2:
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_080960D8: .4byte gUnknown_083B600C
-_080960DC:
- ldr r0, _080960FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080960F4
- ldrb r0, [r4, 0xC]
- bl task_intro_29
- adds r0, r5, 0
- bl DestroyTask
-_080960F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080960FC: .4byte gPaletteFade
- thumb_func_end sub_8095EB4
-
- thumb_func_start sub_8096100
-sub_8096100: @ 8096100
- push {lr}
- ldr r0, _08096128 @ =sub_8095EB4
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809612C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08096128: .4byte sub_8095EB4
-_0809612C: .4byte gTasks
- thumb_func_end sub_8096100
-
- thumb_func_start sub_8096130
-sub_8096130: @ 8096130
- push {lr}
- ldr r0, _0809615C @ =sub_8095EB4
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096160 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _08096164 @ =gUnknown_02038474
- ldrb r0, [r0]
- strh r0, [r1, 0xA]
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0809615C: .4byte sub_8095EB4
-_08096160: .4byte gTasks
-_08096164: .4byte gUnknown_02038474
- thumb_func_end sub_8096130
-
- thumb_func_start sub_8096168
-sub_8096168: @ 8096168
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080961A4 @ =gUnknown_083B600C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080961A4: .4byte gUnknown_083B600C
- thumb_func_end sub_8096168
-
- thumb_func_start sub_80961A8
-sub_80961A8: @ 80961A8
- push {lr}
- ldr r1, _080961C4 @ =gUnknown_02038474
- ldr r0, _080961C8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- strb r0, [r1]
- ldr r1, _080961CC @ =gUnknown_0300485C
- ldr r0, _080961D0 @ =sub_8096130
- str r0, [r1]
- ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080961C4: .4byte gUnknown_02038474
-_080961C8: .4byte gUnknown_083B6DB4
-_080961CC: .4byte gUnknown_0300485C
-_080961D0: .4byte sub_8096130
-_080961D4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80961A8
-
- thumb_func_start sub_80961D8
-sub_80961D8: @ 80961D8
- push {r4-r7,lr}
- ldr r1, _08096258 @ =gPokemonStorage
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- adds r7, r1, 0x4
-_080961E4:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_080961F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r7
- adds r0, r6, r0
- bl ZeroBoxMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _080961F0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _080961E4
- movs r5, 0
-_08096214:
- lsls r0, r5, 3
- adds r0, r5
- ldr r6, _0809625C @ =gUnknown_020383E4
- adds r0, r6
- ldr r1, _08096260 @ =gPCText_BOX
- bl StringCopy
- adds r4, r5, 0x1
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0xD
- bls _08096214
- movs r5, 0
- adds r3, r6, 0
- adds r3, 0x7E
- movs r2, 0x3
-_0809623E:
- adds r0, r5, r3
- adds r1, r5, 0
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0809623E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096258: .4byte gPokemonStorage
-_0809625C: .4byte gUnknown_020383E4
-_08096260: .4byte gPCText_BOX
- thumb_func_end sub_80961D8
-
- thumb_func_start sub_8096264
-sub_8096264: @ 8096264
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x20
- mov r8, r0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r9, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080962F4 @ =gBoxSelectionPopupPalette
- str r0, [sp, 0x18]
- ldr r1, _080962F8 @ =0xffff0000
- add r5, sp, 0x18
- ldr r0, [r5, 0x4]
- ands r0, r1
- orrs r0, r6
- str r0, [r5, 0x4]
- mov r1, sp
- ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x4]
- strh r4, [r1, 0x6]
- ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles
- str r0, [sp, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- strh r0, [r1, 0xC]
- adds r0, r4, 0x1
- strh r0, [r1, 0xE]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- bl LoadSpritePalette
- mov r0, sp
- bl LoadSpriteSheets
- ldr r0, _08096304 @ =gUnknown_02038478
- mov r1, r8
- str r1, [r0]
- movs r0, 0x90
- lsls r0, 2
- add r0, r8
- strh r4, [r0]
- ldr r0, _08096308 @ =0x00000242
- add r0, r8
- strh r6, [r0]
- ldr r0, _0809630C @ =0x0000023e
- add r8, r0
- mov r0, r9
- mov r1, r8
- strb r0, [r1]
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080962F4: .4byte gBoxSelectionPopupPalette
-_080962F8: .4byte 0xffff0000
-_080962FC: .4byte gBoxSelectionPopupCenterTiles
-_08096300: .4byte gBoxSelectionPopupSidesTiles
-_08096304: .4byte gUnknown_02038478
-_08096308: .4byte 0x00000242
-_0809630C: .4byte 0x0000023e
- thumb_func_end sub_8096264
-
- thumb_func_start sub_8096310
-sub_8096310: @ 8096310
- push {r4,r5,lr}
- ldr r4, _08096344 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r1, _08096348 @ =0x00000242
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r5
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, r5
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096344: .4byte gUnknown_02038478
-_08096348: .4byte 0x00000242
- thumb_func_end sub_8096310
-
- thumb_func_start sub_809634C
-sub_809634C: @ 809634C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80963D0
- pop {r0}
- bx r0
- thumb_func_end sub_809634C
-
- thumb_func_start sub_809635C
-sub_809635C: @ 809635C
- push {lr}
- bl sub_809658C
- pop {r0}
- bx r0
- thumb_func_end sub_809635C
-
- thumb_func_start sub_8096368
-sub_8096368: @ 8096368
- push {lr}
- ldr r0, _08096380 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08096384
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC9
- b _080963CC
- .align 2, 0
-_08096380: .4byte gMain
-_08096384:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080963A4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080963A0 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- b _080963CC
- .align 2, 0
-_080963A0: .4byte gUnknown_02038478
-_080963A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080963B8
- movs r0, 0x5
- bl PlaySE
- bl sub_809662C
- b _080963CA
-_080963B8:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080963CA
- movs r0, 0x5
- bl PlaySE
- bl sub_80965F8
-_080963CA:
- movs r0, 0xC8
-_080963CC:
- pop {r1}
- bx r1
- thumb_func_end sub_8096368
-
- thumb_func_start sub_80963D0
-sub_80963D0: @ 80963D0
- push {r4-r6,lr}
- sub sp, 0x3C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x34]
- str r1, [sp, 0x38]
- movs r1, 0xC0
- lsls r1, 24
- ldr r0, [sp, 0x34]
- orrs r0, r1
- str r0, [sp, 0x34]
- ldr r1, _08096564 @ =0xffff0fff
- add r4, sp, 0x34
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r4, 0x4]
- add r1, sp, 0x1C
- movs r2, 0
- strh r2, [r1]
- mov r0, sp
- adds r0, 0x1E
- strh r2, [r0]
- str r4, [sp, 0x20]
- ldr r0, _08096568 @ =gDummySpriteAnimTable
- str r0, [sp, 0x24]
- str r2, [sp, 0x28]
- ldr r0, _0809656C @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x2C]
- ldr r0, _08096570 @ =SpriteCallbackDummy
- str r0, [sp, 0x30]
- add r0, sp, 0x4
- movs r2, 0x18
- bl memcpy
- ldr r6, _08096574 @ =gUnknown_02038478
- ldr r0, [r6]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- strb r5, [r0]
- add r2, sp, 0x4
- ldr r1, [r6]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, _08096578 @ =0x00000242
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r2, 0x2]
- adds r0, r2, 0
- movs r1, 0xA0
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r0, r1
- str r0, [r3]
- ldrb r2, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4, 0x3]
- add r1, sp, 0x4
- adds r3, r5
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08096580 @ =gSpriteAnimTable_83B604C
- str r0, [sp, 0xC]
- movs r4, 0
-_08096488:
- ldr r0, [r6]
- ldr r1, _08096584 @ =0x0000023e
- adds r0, r1
- ldrb r3, [r0]
- add r0, sp, 0x4
- movs r1, 0x7C
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [r6]
- lsls r3, r4, 2
- adds r2, 0x4
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r1, r0, r1
- str r1, [r2]
- movs r5, 0
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _080964C2
- movs r0, 0xC4
- strh r0, [r1, 0x20]
- movs r5, 0x2
-_080964C2:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080964E6
- ldr r1, [r6]
- adds r1, 0x4
- adds r1, r3
- ldr r2, [r1]
- movs r0, 0x70
- strh r0, [r2, 0x22]
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080964E6:
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r3
- ldr r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08096488
- movs r4, 0
- ldr r5, _08096574 @ =gUnknown_02038478
-_08096504:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 19
- movs r3, 0xF8
- lsls r3, 15
- adds r0, r3
- lsrs r0, 16
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r1, [r5]
- ldr r3, _08096584 @ =0x0000023e
- adds r1, r3
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x58
- movs r3, 0
- bl sub_809A9A0
- adds r2, r0, 0
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x20
- adds r0, r1
- str r2, [r0]
- cmp r2, 0
- beq _0809654C
- movs r1, 0x1
- cmp r4, 0
- bne _08096544
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_08096544:
- strh r1, [r2, 0x2E]
- ldr r1, [r0]
- ldr r0, _08096588 @ =sub_8096784
- str r0, [r1, 0x1C]
-_0809654C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08096504
- bl sub_809665C
- add sp, 0x3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096564: .4byte 0xffff0fff
-_08096568: .4byte gDummySpriteAnimTable
-_0809656C: .4byte gDummySpriteAffineAnimTable
-_08096570: .4byte SpriteCallbackDummy
-_08096574: .4byte gUnknown_02038478
-_08096578: .4byte 0x00000242
-_0809657C: .4byte gSprites
-_08096580: .4byte gSpriteAnimTable_83B604C
-_08096584: .4byte 0x0000023e
-_08096588: .4byte sub_8096784
- thumb_func_end sub_80963D0
-
- thumb_func_start sub_809658C
-sub_809658C: @ 809658C
- push {r4-r6,lr}
- ldr r4, _080965F4 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080965A2
- bl DestroySprite
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080965A2:
- movs r5, 0
- adds r6, r4, 0
-_080965A6:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, 0x4
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080965C2
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080965C2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080965A6
- movs r5, 0
-_080965CE:
- ldr r0, _080965F4 @ =gUnknown_02038478
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x20
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080965E2
- bl DestroySprite
-_080965E2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080965CE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080965F4: .4byte gUnknown_02038478
- thumb_func_end sub_809658C
-
- thumb_func_start sub_80965F8
-sub_80965F8: @ 80965F8
- push {lr}
- ldr r2, _08096628 @ =gUnknown_02038478
- ldr r1, [r2]
- movs r0, 0x8F
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bls _0809661E
- ldr r0, [r2]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0809661E:
- bl sub_809665C
- pop {r0}
- bx r0
- .align 2, 0
-_08096628: .4byte gUnknown_02038478
- thumb_func_end sub_80965F8
-
- thumb_func_start sub_809662C
-sub_809662C: @ 809662C
- push {lr}
- ldr r0, _08096644 @ =gUnknown_02038478
- ldr r2, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096648
- subs r1, r0, 0x1
- b _0809664A
- .align 2, 0
-_08096644: .4byte gUnknown_02038478
-_08096648:
- movs r1, 0xD
-_0809664A:
- movs r3, 0x8F
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- bl sub_809665C
- pop {r0}
- bx r0
- thumb_func_end sub_809662C
-
- thumb_func_start sub_809665C
-sub_809665C: @ 809665C
- push {r4-r7,lr}
- ldr r5, _080966B4 @ =gUnknown_02038478
- ldr r0, [r5]
- movs r4, 0x8F
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8095ADC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080966B8 @ =gStringVar1
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- movs r0, 0xF
- strb r0, [r2, 0x2]
- movs r0, 0x1
- strb r0, [r2, 0x3]
- movs r0, 0xE
- strb r0, [r2, 0x4]
- adds r2, 0x5
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- ldr r0, _080966BC @ =gUnknown_020383E4
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFE
- strb r0, [r2]
- strb r6, [r2, 0x1]
- movs r0, 0x11
- strb r0, [r2, 0x2]
- cmp r7, 0x9
- bhi _080966C0
- movs r0, 0x28
- b _080966C2
- .align 2, 0
-_080966B4: .4byte gUnknown_02038478
-_080966B8: .4byte gStringVar1
-_080966BC: .4byte gUnknown_020383E4
-_080966C0:
- movs r0, 0x22
-_080966C2:
- strb r0, [r2, 0x3]
- adds r2, 0x4
- adds r0, r2, 0
- adds r1, r7, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- movs r0, 0xA4
- strb r0, [r2, 0x1]
- movs r0, 0xA1
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080966F0 @ =gStringVar1
- movs r1, 0
- movs r2, 0x1
- bl sub_80966F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080966F0: .4byte gStringVar1
- thumb_func_end sub_809665C
-
- thumb_func_start sub_80966F4
-sub_80966F4: @ 80966F4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08096764 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl GetSpriteTileStartByTag
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 11
- lsls r4, 8
- ldr r2, _08096768 @ =0x06010000
- adds r4, r2
- adds r6, r4
- lsls r5, 5
- adds r6, r5
- ldr r0, _0809676C @ =gUnknown_083B6DB8
- ldr r5, [r0]
- mov r1, sp
- ldr r2, _08096770 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08096774 @ =0x040000d4
- str r1, [r4]
- str r5, [r4, 0x4]
- ldr r0, _08096778 @ =0x81000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809677C @ =gWindowConfig_81E6D38
- adds r1, r5, 0
- mov r2, r8
- bl sub_8004E3C
- str r5, [r4]
- str r6, [r4, 0x4]
- ldr r0, _08096780 @ =0x80000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096764: .4byte gUnknown_02038478
-_08096768: .4byte 0x06010000
-_0809676C: .4byte gUnknown_083B6DB8
-_08096770: .4byte 0x00001111
-_08096774: .4byte 0x040000d4
-_08096778: .4byte 0x81000200
-_0809677C: .4byte gWindowConfig_81E6D38
-_08096780: .4byte 0x80000200
- thumb_func_end sub_80966F4
-
- thumb_func_start sub_8096784
-sub_8096784: @ 8096784
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080967B4
- strh r2, [r1, 0x30]
- ldrh r0, [r1, 0x2E]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080967B4
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x24]
-_080967B4:
- pop {r0}
- bx r0
- thumb_func_end sub_8096784
-
- thumb_func_start task_intro_29
-task_intro_29: @ 80967B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080967D0 @ =gUnknown_0203847D
- strb r0, [r1]
- ldr r1, _080967D4 @ =0x02000000
- strb r0, [r1, 0x5]
- ldr r0, _080967D8 @ =sub_8096884
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080967D0: .4byte gUnknown_0203847D
-_080967D4: .4byte 0x02000000
-_080967D8: .4byte sub_8096884
- thumb_func_end task_intro_29
-
- thumb_func_start sub_80967DC
-sub_80967DC: @ 80967DC
- ldr r0, _08096800 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08096800: .4byte REG_BG0HOFS
- thumb_func_end sub_80967DC
-
- thumb_func_start sub_8096804
-sub_8096804: @ 8096804
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r1, _0809683C @ =gReservedSpriteTileCount
- movs r2, 0xA0
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08096840 @ =0x02000020
- adds r1, r0, 0
- adds r1, 0x8
- movs r2, 0x8
- bl sub_809CFDC
- ldr r1, _08096844 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809683C: .4byte gReservedSpriteTileCount
-_08096840: .4byte 0x02000020
-_08096844: .4byte gKeyRepeatStartDelay
- thumb_func_end sub_8096804
-
- thumb_func_start sub_8096848
-sub_8096848: @ 8096848
- push {lr}
- bl sub_809B0D4
- ldr r2, _08096868 @ =gUnknown_0203847C
- movs r1, 0
- ldr r0, _0809686C @ =0x02000000
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809685C
- movs r1, 0x1
-_0809685C:
- strb r1, [r2]
- ldr r1, _08096870 @ =gUnknown_0203847E
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08096868: .4byte gUnknown_0203847C
-_0809686C: .4byte 0x02000000
-_08096870: .4byte gUnknown_0203847E
- thumb_func_end sub_8096848
-
- thumb_func_start sub_8096874
-sub_8096874: @ 8096874
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_8096874
-
- thumb_func_start sub_8096884
-sub_8096884: @ 8096884
- push {lr}
- ldr r0, _080968A0 @ =gMain
- ldr r1, _080968A4 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08096894
- b _08096986
-_08096894:
- lsls r0, 2
- ldr r1, _080968A8 @ =_080968AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080968A0: .4byte gMain
-_080968A4: .4byte 0x0000043c
-_080968A8: .4byte _080968AC
- .align 2, 0
-_080968AC:
- .4byte _080968D4
- .4byte _080968E8
- .4byte _080968F4
- .4byte _08096904
- .4byte _0809690E
- .4byte _08096918
- .4byte _0809691E
- .4byte _08096924
- .4byte _0809692A
- .4byte _08096964
-_080968D4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl sub_8096804
- b _0809697A
-_080968E8:
- ldr r0, _080968F0 @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _0809697A
- .align 2, 0
-_080968F0: .4byte gWindowConfig_81E6D00
-_080968F4:
- ldr r0, _08096900 @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _0809697A
- .align 2, 0
-_08096900: .4byte gWindowConfig_81E6D00
-_08096904:
- bl sub_80967DC
- bl sub_8096848
- b _0809697A
-_0809690E:
- bl sub_8098B48
- bl sub_809AA24
- b _0809697A
-_08096918:
- bl sub_8097DE0
- b _0809697A
-_0809691E:
- bl sub_8097E70
- b _0809697A
-_08096924:
- bl sub_8098400
- b _0809697A
-_0809692A:
- ldr r0, _08096950 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096954 @ =0x02000000
- ldr r1, _08096958 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _0809695C @ =0x000012be
- adds r2, r1
- ldr r1, _08096960 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _0809697A
- .align 2, 0
-_08096950: .4byte gPokemonStorage
-_08096954: .4byte 0x02000000
-_08096958: .4byte 0x000012bc
-_0809695C: .4byte 0x000012be
-_08096960: .4byte 0x0000dacb
-_08096964:
- bl sub_8096874
- ldr r0, _0809698C @ =sub_8096BF0
- bl sub_8096BE0
- ldr r0, _08096990 @ =sub_8096B38
- bl SetMainCallback2
- ldr r0, _08096994 @ =sub_8096AFC
- bl SetVBlankCallback
-_0809697A:
- ldr r1, _08096998 @ =gMain
- ldr r0, _0809699C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096986:
- pop {r0}
- bx r0
- .align 2, 0
-_0809698C: .4byte sub_8096BF0
-_08096990: .4byte sub_8096B38
-_08096994: .4byte sub_8096AFC
-_08096998: .4byte gMain
-_0809699C: .4byte 0x0000043c
- thumb_func_end sub_8096884
-
- thumb_func_start sub_80969A0
-sub_80969A0: @ 80969A0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080969BC @ =gMain
- ldr r1, _080969C0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _080969B2
- b _08096AE4
-_080969B2:
- lsls r0, 2
- ldr r1, _080969C4 @ =_080969C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080969BC: .4byte gMain
-_080969C0: .4byte 0x0000043c
-_080969C4: .4byte _080969C8
- .align 2, 0
-_080969C8:
- .4byte _080969F4
- .4byte _08096A34
- .4byte _08096A40
- .4byte _08096A50
- .4byte _08096A56
- .4byte _08096A60
- .4byte _08096A66
- .4byte _08096A6C
- .4byte _08096A72
- .4byte _08096AAC
- .4byte _08096AC8
-_080969F4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08096A28 @ =0x02000000
- ldr r0, _08096A2C @ =gUnknown_0203847D
- ldrb r0, [r0]
- strb r0, [r1, 0x5]
- bl sub_8096804
- ldr r4, _08096A30 @ =gUnknown_0203847F
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _08096A1A
- bl sub_809BBC0
-_08096A1A:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08096AD8
- bl sub_809BD14
- b _08096AD8
- .align 2, 0
-_08096A28: .4byte 0x02000000
-_08096A2C: .4byte gUnknown_0203847D
-_08096A30: .4byte gUnknown_0203847F
-_08096A34:
- ldr r0, _08096A3C @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _08096AD8
- .align 2, 0
-_08096A3C: .4byte gWindowConfig_81E6D00
-_08096A40:
- ldr r0, _08096A4C @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _08096AD8
- .align 2, 0
-_08096A4C: .4byte gWindowConfig_81E6D00
-_08096A50:
- bl sub_80967DC
- b _08096AD8
-_08096A56:
- bl sub_8098B48
- bl sub_809AA98
- b _08096AD8
-_08096A60:
- bl sub_8097DE0
- b _08096AD8
-_08096A66:
- bl sub_8097E70
- b _08096AD8
-_08096A6C:
- bl sub_8098400
- b _08096AD8
-_08096A72:
- ldr r0, _08096A98 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096A9C @ =0x02000000
- ldr r1, _08096AA0 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _08096AA4 @ =0x000012be
- adds r2, r1
- ldr r1, _08096AA8 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _08096AD8
- .align 2, 0
-_08096A98: .4byte gPokemonStorage
-_08096A9C: .4byte 0x02000000
-_08096AA0: .4byte 0x000012bc
-_08096AA4: .4byte 0x000012be
-_08096AA8: .4byte 0x0000dacb
-_08096AAC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08096AC4 @ =sub_8096AFC
- bl SetVBlankCallback
- b _08096AD8
- .align 2, 0
-_08096AC4: .4byte sub_8096AFC
-_08096AC8:
- bl sub_8096874
- ldr r0, _08096AEC @ =sub_8096C68
- bl sub_8096BE0
- ldr r0, _08096AF0 @ =sub_8096B38
- bl SetMainCallback2
-_08096AD8:
- ldr r1, _08096AF4 @ =gMain
- ldr r0, _08096AF8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096AE4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096AEC: .4byte sub_8096C68
-_08096AF0: .4byte sub_8096B38
-_08096AF4: .4byte gMain
-_08096AF8: .4byte 0x0000043c
- thumb_func_end sub_80969A0
-
- thumb_func_start sub_8096AFC
-sub_8096AFC: @ 8096AFC
- push {lr}
- ldr r2, _08096B2C @ =REG_BG2HOFS
- ldr r1, _08096B30 @ =0x02000000
- ldr r3, _08096B34 @ =0x000008b4
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, 0x4
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_809CFF0
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B2C: .4byte REG_BG2HOFS
-_08096B30: .4byte 0x02000000
-_08096B34: .4byte 0x000008b4
- thumb_func_end sub_8096AFC
-
- thumb_func_start sub_8096B38
-sub_8096B38: @ 8096B38
- push {lr}
- ldr r0, _08096B58 @ =0x02000000
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8097E44
- bl sub_8098734
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B58: .4byte 0x02000000
- thumb_func_end sub_8096B38
-
- thumb_func_start sub_8096B5C
-sub_8096B5C: @ 8096B5C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08096B70 @ =0x02000000
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _08096B74
- cmp r0, 0x1
- beq _08096BAC
- b _08096BCC
- .align 2, 0
-_08096B70: .4byte 0x02000000
-_08096B74:
- ldr r1, _08096B98 @ =0x00002690
- adds r0, r4, r1
- ldr r0, [r0]
- ldr r2, _08096B9C @ =0x0000268d
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r3, _08096BA0 @ =0x0000268c
- adds r2, r4, r3
- ldrb r2, [r2]
- ldr r3, _08096BA4 @ =sub_80969A0
- ldr r5, _08096BA8 @ =0x0000268e
- adds r4, r5
- ldrb r4, [r4]
- str r4, [sp]
- bl sub_809D8BC
- b _08096BCC
- .align 2, 0
-_08096B98: .4byte 0x00002690
-_08096B9C: .4byte 0x0000268d
-_08096BA0: .4byte 0x0000268c
-_08096BA4: .4byte sub_80969A0
-_08096BA8: .4byte 0x0000268e
-_08096BAC:
- ldr r0, _08096BD4 @ =gPokemonStorage
- ldrb r2, [r0]
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _08096BD8 @ =0x00008344
- adds r0, r2
- adds r1, r0
- movs r0, 0
- str r0, [sp]
- ldr r0, _08096BDC @ =sub_80969A0
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08096BCC:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096BD4: .4byte gPokemonStorage
-_08096BD8: .4byte 0x00008344
-_08096BDC: .4byte sub_80969A0
- thumb_func_end sub_8096B5C
-
- thumb_func_start sub_8096BE0
-sub_8096BE0: @ 8096BE0
- ldr r1, _08096BEC @ =0x02000000
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08096BEC: .4byte 0x02000000
- thumb_func_end sub_8096BE0
-
- thumb_func_start sub_8096BF0
-sub_8096BF0: @ 8096BF0
- push {r4,lr}
- ldr r4, _08096C04 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _08096C16
- cmp r0, 0x1
- bgt _08096C08
- cmp r0, 0
- beq _08096C0E
- b _08096C5C
- .align 2, 0
-_08096C04: .4byte 0x02000000
-_08096C08:
- cmp r0, 0x2
- beq _08096C4C
- b _08096C5C
-_08096C0E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- b _08096C38
-_08096C16:
- movs r0, 0x2
- bl PlaySE
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08096C48 @ =0x0000dad0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5CD4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
-_08096C38:
- movs r2, 0
- bl BlendPalettes
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096C5C
- .align 2, 0
-_08096C48: .4byte 0x0000dad0
-_08096C4C:
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08096C5C
- ldr r0, _08096C64 @ =sub_8096C84
- bl sub_8096BE0
-_08096C5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C64: .4byte sub_8096C84
- thumb_func_end sub_8096BF0
-
- thumb_func_start sub_8096C68
-sub_8096C68: @ 8096C68
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08096C7A
- ldr r0, _08096C80 @ =sub_8096C84
- bl sub_8096BE0
-_08096C7A:
- pop {r0}
- bx r0
- .align 2, 0
-_08096C80: .4byte sub_8096C84
- thumb_func_end sub_8096C68
-
- thumb_func_start sub_8096C84
-sub_8096C84: @ 8096C84
- push {r4,lr}
- ldr r0, _08096C9C @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _08096C90
- b _08096FBA
-_08096C90:
- lsls r0, 2
- ldr r1, _08096CA0 @ =_08096CA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096C9C: .4byte 0x02000000
-_08096CA0: .4byte _08096CA4
- .align 2, 0
-_08096CA4:
- .4byte _08096CC0
- .4byte _08096EE0
- .4byte _08096F1C
- .4byte _08096F60
- .4byte _08096F80
- .4byte _08096F8A
- .4byte _08096FA4
-_08096CC0:
- bl sub_809CA40
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0xF
- bls _08096CD0
- b _08096FBA
-_08096CD0:
- lsls r0, 2
- ldr r1, _08096CDC @ =_08096CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096CDC: .4byte _08096CE0
- .align 2, 0
-_08096CE0:
- .4byte _08096D20
- .4byte _08096FBA
- .4byte _08096FBA
- .4byte _08096D94
- .4byte _08096D34
- .4byte _08096D5C
- .4byte _08096DAC
- .4byte _08096DC0
- .4byte _08096DD4
- .4byte _08096DFC
- .4byte _08096E30
- .4byte _08096EB8
- .4byte _08096E70
- .4byte _08096E8C
- .4byte _08096ECC
- .4byte _08096DA0
-_08096D20:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08096D30 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D30: .4byte 0x02000000
-_08096D34:
- ldr r4, _08096D48 @ =0x02000000
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D4C
- movs r0, 0x10
- bl sub_8098898
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D48: .4byte 0x02000000
-_08096D4C:
- bl sub_809B0D4
- ldr r0, _08096D58 @ =sub_8096FC8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D58: .4byte sub_8096FC8
-_08096D5C:
- ldr r4, _08096D88 @ =0x02000000
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D66
- b _08096FBA
-_08096D66:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08096D80
- ldr r1, _08096D8C @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- bne _08096E4C
-_08096D80:
- ldr r0, _08096D90 @ =sub_8097004
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D88: .4byte 0x02000000
-_08096D8C: .4byte 0x000011f2
-_08096D90: .4byte sub_8097004
-_08096D94:
- ldr r0, _08096D9C @ =sub_8097BA0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D9C: .4byte sub_8097BA0
-_08096DA0:
- ldr r0, _08096DA8 @ =sub_8097CC0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DA8: .4byte sub_8097CC0
-_08096DAC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DBC @ =sub_809789C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DBC: .4byte sub_809789C
-_08096DC0:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DD0 @ =sub_8097078
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DD0: .4byte sub_8097078
-_08096DD4:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096DF0 @ =0x02000000
- ldr r0, _08096DF4 @ =gPokemonStorage
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r2, _08096DF8 @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0xD
- ble _08096E18
- movs r0, 0
- b _08096E16
- .align 2, 0
-_08096DF0: .4byte 0x02000000
-_08096DF4: .4byte gPokemonStorage
-_08096DF8: .4byte 0x000008b2
-_08096DFC:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096E24 @ =0x02000000
- ldr r0, _08096E28 @ =gPokemonStorage
- ldrb r0, [r0]
- subs r0, 0x1
- ldr r2, _08096E2C @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0
- bge _08096E18
- movs r0, 0xD
-_08096E16:
- strh r0, [r1]
-_08096E18:
- ldrb r0, [r1]
- bl sub_8099C70
- movs r0, 0x2
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E24: .4byte 0x02000000
-_08096E28: .4byte gPokemonStorage
-_08096E2C: .4byte 0x000008b2
-_08096E30:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- ldr r4, _08096E54 @ =0x02000000
- ldr r1, _08096E58 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08096E5C
-_08096E4C:
- movs r0, 0x5
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E54: .4byte 0x02000000
-_08096E58: .4byte 0x000011f2
-_08096E5C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E6C @ =sub_809746C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E6C: .4byte sub_809746C
-_08096E70:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E88 @ =sub_80972A8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E88: .4byte sub_80972A8
-_08096E8C:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- bne _08096EA4
-_08096E96:
- ldr r1, _08096EA0 @ =0x02000000
- movs r0, 0x4
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096EA0: .4byte 0x02000000
-_08096EA4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EB4 @ =c3_0808DC50
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EB4: .4byte c3_0808DC50
-_08096EB8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EC8 @ =sub_8097390
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EC8: .4byte sub_8097390
-_08096ECC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EDC @ =sub_80972FC
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EDC: .4byte sub_80972FC
-_08096EE0:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- bl sub_809BF48
- lsls r0, 24
- cmp r0, 0
- beq _08096EFA
- bl sub_80986E8
- b _08096EFE
-_08096EFA:
- bl sub_8098710
-_08096EFE:
- ldr r4, _08096F14 @ =0x02000000
- ldr r2, _08096F18 @ =0x000011f6
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096F0E
- bl BoxSetMosaic
-_08096F0E:
- movs r0, 0
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F14: .4byte 0x02000000
-_08096F18: .4byte 0x000011f6
-_08096F1C:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- ldr r1, _08096F50 @ =gPokemonStorage
- ldr r0, _08096F54 @ =0x02000000
- ldr r2, _08096F58 @ =0x000008b2
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08096F5C @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096F70
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- bne _08096F70
- bl sub_809B440
- bl BoxSetMosaic
- b _08096F70
- .align 2, 0
-_08096F50: .4byte gPokemonStorage
-_08096F54: .4byte 0x02000000
-_08096F58: .4byte 0x000008b2
-_08096F5C: .4byte gUnknown_0203847C
-_08096F60:
- ldr r0, _08096F78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
-_08096F70:
- ldr r1, _08096F7C @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F78: .4byte gMain
-_08096F7C: .4byte 0x02000000
-_08096F80:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08096F92
-_08096F8A:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08096F92:
- bl sub_8098898
- ldr r1, _08096FA0 @ =0x02000000
- movs r0, 0x6
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096FA0: .4byte 0x02000000
-_08096FA4:
- ldr r0, _08096FC0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
- ldr r0, _08096FC4 @ =sub_8096C84
- bl sub_8096BE0
-_08096FBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096FC0: .4byte gMain
-_08096FC4: .4byte sub_8096C84
- thumb_func_end sub_8096C84
-
- thumb_func_start sub_8096FC8
-sub_8096FC8: @ 8096FC8
- push {r4,lr}
- ldr r4, _08096FD8 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08096FDC
- cmp r0, 0x1
- beq _08096FE8
- b _08096FF8
- .align 2, 0
-_08096FD8: .4byte 0x02000000
-_08096FDC:
- bl sub_809880C
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096FF8
-_08096FE8:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08096FF8
- ldr r0, _08097000 @ =sub_8096C84
- bl sub_8096BE0
-_08096FF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097000: .4byte sub_8096C84
- thumb_func_end sub_8096FC8
-
- thumb_func_start sub_8097004
-sub_8097004: @ 8097004
- push {r4,lr}
- ldr r4, _08097018 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _0809702E
- cmp r0, 0x1
- bgt _0809701C
- cmp r0, 0
- beq _08097022
- b _0809706A
- .align 2, 0
-_08097018: .4byte 0x02000000
-_0809701C:
- cmp r0, 0x2
- beq _0809704C
- b _0809706A
-_08097022:
- movs r0, 0x5
- bl PlaySE
- bl add_to_c3_somehow
- b _08097044
-_0809702E:
- bl sub_80985CC
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- bl sub_809B0F4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809B0C0
-_08097044:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809706A
-_0809704C:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- ldr r1, _08097070 @ =0x000011f6
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097064
- bl BoxSetMosaic
-_08097064:
- ldr r0, _08097074 @ =sub_8096C84
- bl sub_8096BE0
-_0809706A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097070: .4byte 0x000011f6
-_08097074: .4byte sub_8096C84
- thumb_func_end sub_8097004
-
- thumb_func_start sub_8097078
-sub_8097078: @ 8097078
- push {r4,lr}
- ldr r0, _08097090 @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bls _08097084
- b _0809729A
-_08097084:
- lsls r0, 2
- ldr r1, _08097094 @ =_08097098
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097090: .4byte 0x02000000
-_08097094: .4byte _08097098
- .align 2, 0
-_08097098:
- .4byte _080970B0
- .4byte _080970C8
- .4byte _08097258
- .4byte _0809726C
- .4byte _08097262
- .4byte _08097284
-_080970B0:
- movs r0, 0x4
- bl sub_8098898
- bl sub_809CE84
- ldr r1, _080970C4 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080970C4: .4byte 0x02000000
-_080970C8:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bls _080970D8
- b _0809729A
-_080970D8:
- lsls r0, 2
- ldr r1, _080970E4 @ =_080970E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080970E4: .4byte _080970E8
- .align 2, 0
-_080970E8:
- .4byte _08097110
- .4byte _08097110
- .4byte _08097190
- .4byte _08097178
- .4byte _08097120
- .4byte _08097158
- .4byte _08097140
- .4byte _08097230
- .4byte _080971CC
- .4byte _08097244
-_08097110:
- bl sub_8098A5C
- ldr r0, _0809711C @ =sub_8096C84
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809711C: .4byte sub_8096C84
-_08097120:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809713C @ =sub_80972A8
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809713C: .4byte sub_80972A8
-_08097140:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097154 @ =sub_80972FC
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097154: .4byte sub_80972FC
-_08097158:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- beq _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097174 @ =c3_0808DC50
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097174: .4byte c3_0808DC50
-_08097178:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809718C @ =sub_8097390
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809718C: .4byte sub_8097390
-_08097190:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- ldr r4, _080971C0 @ =0x02000000
- ldr r1, _080971C4 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- bne _08097210
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _080971C8 @ =sub_809746C
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_080971C0: .4byte 0x02000000
-_080971C4: .4byte 0x000011f2
-_080971C8: .4byte sub_809746C
-_080971CC:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- beq _080971E4
-_080971D6:
- ldr r1, _080971E0 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080971E0: .4byte 0x02000000
-_080971E4:
- ldr r4, _080971F8 @ =0x02000000
- ldr r1, _080971FC @ =0x000011f9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097200
- movs r0, 0x4
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_080971F8: .4byte 0x02000000
-_080971FC: .4byte 0x000011f9
-_08097200:
- ldr r1, _08097218 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0809721C
-_08097210:
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_08097218: .4byte 0x000011f2
-_0809721C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809722C @ =sub_8097594
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809722C: .4byte sub_8097594
-_08097230:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097240 @ =sub_8097788
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097240: .4byte sub_8097788
-_08097244:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097254 @ =sub_80977E4
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097254: .4byte sub_80977E4
-_08097258:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08097274
-_08097262:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x11
- b _08097274
-_0809726C:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08097274:
- bl sub_8098898
- ldr r1, _08097280 @ =0x02000000
- movs r0, 0x5
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_08097280: .4byte 0x02000000
-_08097284:
- ldr r0, _080972A0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _0809729A
- bl sub_8098A5C
- ldr r0, _080972A4 @ =sub_8096C84
- bl sub_8096BE0
-_0809729A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972A0: .4byte gMain
-_080972A4: .4byte sub_8096C84
- thumb_func_end sub_8097078
-
- thumb_func_start sub_80972A8
-sub_80972A8: @ 80972A8
- push {r4,lr}
- ldr r4, _080972B8 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080972BC
- cmp r0, 0x1
- beq _080972CA
- b _080972F2
- .align 2, 0
-_080972B8: .4byte 0x02000000
-_080972BC:
- movs r0, 0
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080972F2
-_080972CA:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _080972F2
- ldr r0, _080972E4 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080972EC
- ldr r0, _080972E8 @ =sub_8097858
- bl sub_8096BE0
- b _080972F2
- .align 2, 0
-_080972E4: .4byte gUnknown_0203847C
-_080972E8: .4byte sub_8097858
-_080972EC:
- ldr r0, _080972F8 @ =sub_8096C84
- bl sub_8096BE0
-_080972F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972F8: .4byte sub_8096C84
- thumb_func_end sub_80972A8
-
- thumb_func_start sub_80972FC
-sub_80972FC: @ 80972FC
- push {r4,lr}
- ldr r4, _0809730C @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097310
- cmp r0, 0x1
- beq _0809731E
- b _08097346
- .align 2, 0
-_0809730C: .4byte 0x02000000
-_08097310:
- movs r0, 0x1
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097346
-_0809731E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097346
- ldr r0, _08097338 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097340
- ldr r0, _0809733C @ =sub_8097858
- bl sub_8096BE0
- b _08097346
- .align 2, 0
-_08097338: .4byte gUnknown_0203847C
-_0809733C: .4byte sub_8097858
-_08097340:
- ldr r0, _0809734C @ =sub_8096C84
- bl sub_8096BE0
-_08097346:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809734C: .4byte sub_8096C84
- thumb_func_end sub_80972FC
-
- thumb_func_start c3_0808DC50
-c3_0808DC50: @ 8097350
- push {r4,lr}
- ldr r4, _08097360 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097364
- cmp r0, 0x1
- beq _08097372
- b _08097386
- .align 2, 0
-_08097360: .4byte 0x02000000
-_08097364:
- movs r0, 0x2
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097386
-_08097372:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097386
- bl BoxSetMosaic
- ldr r0, _0809738C @ =sub_8096C84
- bl sub_8096BE0
-_08097386:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809738C: .4byte sub_8096C84
- thumb_func_end c3_0808DC50
-
- thumb_func_start sub_8097390
-sub_8097390: @ 8097390
- push {lr}
- ldr r0, _080973A4 @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bhi _08097462
- lsls r0, 2
- ldr r1, _080973A8 @ =_080973AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080973A4: .4byte 0x02000000
-_080973A8: .4byte _080973AC
- .align 2, 0
-_080973AC:
- .4byte _080973C4
- .4byte _080973FC
- .4byte _0809741C
- .4byte _0809742C
- .4byte _0809743E
- .4byte _0809745C
-_080973C4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080973E4
- movs r0, 0xE
- bl sub_8098898
- ldr r1, _080973E0 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973E0: .4byte 0x02000000
-_080973E4:
- bl sub_809B0E0
- movs r0, 0
- bl sub_809B100
- ldr r1, _080973F8 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973F8: .4byte 0x02000000
-_080973FC:
- ldr r0, _08097414 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097462
- bl sub_8098A5C
- ldr r0, _08097418 @ =sub_8096C84
- bl sub_8096BE0
- b _08097462
- .align 2, 0
-_08097414: .4byte gMain
-_08097418: .4byte sub_8096C84
-_0809741C:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_809880C
- b _0809744C
-_0809742C:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- movs r0, 0x1
- bl sub_809B100
- b _0809744C
-_0809743E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_80987DC
-_0809744C:
- ldr r1, _08097458 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_08097458: .4byte 0x02000000
-_0809745C:
- ldr r0, _08097468 @ =sub_8097004
- bl sub_8096BE0
-_08097462:
- pop {r0}
- bx r0
- .align 2, 0
-_08097468: .4byte sub_8097004
- thumb_func_end sub_8097390
-
- thumb_func_start sub_809746C
-sub_809746C: @ 809746C
- push {r4,lr}
- ldr r0, _08097484 @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bls _08097478
- b _08097584
-_08097478:
- lsls r0, 2
- ldr r1, _08097488 @ =_0809748C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097484: .4byte 0x02000000
-_08097488: .4byte _0809748C
- .align 2, 0
-_0809748C:
- .4byte _080974A0
- .4byte _080974D8
- .4byte _08097534
- .4byte _08097548
- .4byte _0809756C
-_080974A0:
- movs r0, 0x6
- bl sub_8098898
- ldr r4, _080974C8 @ =0x02002370
- ldr r2, _080974CC @ =0x0000daca
- adds r0, r4, 0
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _080974D0 @ =gUnknown_0203847E
- ldrb r0, [r0]
- bl sub_809634C
- ldr r0, _080974D4 @ =0xffffdc90
- adds r4, r0
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097584
- .align 2, 0
-_080974C8: .4byte 0x02002370
-_080974CC: .4byte 0x0000daca
-_080974D0: .4byte gUnknown_0203847E
-_080974D4: .4byte 0xffffdc90
-_080974D8:
- bl sub_8096368
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC8
- beq _08097584
- cmp r4, 0xC9
- bne _080974F6
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- b _0809755E
-_080974F6:
- adds r0, r4, 0
- bl sub_809B62C
- lsls r0, 24
- cmp r0, 0
- beq _08097518
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- ldr r1, _08097514 @ =0x02000000
- movs r0, 0x2
- b _08097522
- .align 2, 0
-_08097514: .4byte 0x02000000
-_08097518:
- movs r0, 0x8
- bl sub_8098898
- ldr r1, _0809752C @ =0x02000000
- movs r0, 0x4
-_08097522:
- strb r0, [r1, 0x4]
- ldr r0, _08097530 @ =gUnknown_0203847E
- strb r4, [r0]
- b _08097584
- .align 2, 0
-_0809752C: .4byte 0x02000000
-_08097530: .4byte gUnknown_0203847E
-_08097534:
- bl party_compaction
- bl sub_8099310
- ldr r1, _08097544 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- b _08097582
- .align 2, 0
-_08097544: .4byte 0x02000000
-_08097548:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097584
- bl sub_809B6BC
- bl BoxSetMosaic
- bl sub_80987DC
-_0809755E:
- ldr r0, _08097568 @ =sub_8096C84
- bl sub_8096BE0
- b _08097584
- .align 2, 0
-_08097568: .4byte sub_8096C84
-_0809756C:
- ldr r0, _0809758C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08097584
- movs r0, 0x6
- bl sub_8098898
- ldr r1, _08097590 @ =0x02000000
- movs r0, 0x1
-_08097582:
- strb r0, [r1, 0x4]
-_08097584:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809758C: .4byte gMain
-_08097590: .4byte 0x02000000
- thumb_func_end sub_809746C
-
- thumb_func_start sub_8097594
-sub_8097594: @ 8097594
- push {r4,lr}
- ldr r0, _080975AC @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0xD
- bls _080975A0
- b _0809777A
-_080975A0:
- lsls r0, 2
- ldr r1, _080975B0 @ =_080975B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080975AC: .4byte 0x02000000
-_080975B0: .4byte _080975B4
- .align 2, 0
-_080975B4:
- .4byte _080975EC
- .4byte _08097600
- .4byte _0809763A
- .4byte _0809766E
- .4byte _0809767A
- .4byte _08097690
- .4byte _080976C8
- .4byte _080976E0
- .4byte _080976EC
- .4byte _080976F0
- .4byte _08097704
- .4byte _08097720
- .4byte _08097732
- .4byte _08097764
-_080975EC:
- movs r0, 0x9
- bl sub_8098898
- movs r0, 0x1
- bl sub_8098A38
- ldr r1, _0809761C @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
-_08097600:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0809762C
- cmp r1, 0
- bgt _08097620
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097626
- b _0809777A
- .align 2, 0
-_0809761C: .4byte 0x02000000
-_08097620:
- cmp r1, 0x1
- beq _08097626
- b _0809777A
-_08097626:
- bl sub_8098A5C
- b _080976E0
-_0809762C:
- bl sub_8098A5C
- bl sub_809B7D4
- bl sub_809B6DC
- b _08097744
-_0809763A:
- bl sub_809B960
- bl sub_809B734
- lsls r0, 24
- cmp r0, 0
- beq _0809764A
- b _0809777A
-_0809764A:
- ldr r4, _08097650 @ =0x02000000
- b _0809765A
- .align 2, 0
-_08097650: .4byte 0x02000000
-_08097654:
- cmp r0, 0
- bne _0809765A
- b _08097758
-_0809765A:
- bl sub_809B960
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _08097654
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809777A
-_0809766E:
- bl sub_809B760
- bl sub_809801C
- movs r0, 0xA
- b _08097740
-_0809767A:
- ldr r0, _0809768C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08097688
- b _0809777A
-_08097688:
- movs r0, 0xB
- b _08097740
- .align 2, 0
-_0809768C: .4byte gMain
-_08097690:
- ldr r0, _080976B4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _080976B8 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080976BC
- bl party_compaction
- bl sub_8099310
- b _08097744
- .align 2, 0
-_080976B4: .4byte gMain
-_080976B8: .4byte gUnknown_0203847C
-_080976BC:
- ldr r1, _080976C4 @ =0x02000000
- movs r0, 0x7
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_080976C4: .4byte 0x02000000
-_080976C8:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B440
- bl BoxSetMosaic
- bl sub_80987DC
- b _08097744
-_080976E0:
- ldr r0, _080976E8 @ =sub_8096C84
- bl sub_8096BE0
- b _0809777A
- .align 2, 0
-_080976E8: .4byte sub_8096C84
-_080976EC:
- movs r0, 0xA
- b _08097740
-_080976F0:
- ldr r0, _08097700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x15
- b _08097740
- .align 2, 0
-_08097700: .4byte gMain
-_08097704:
- ldr r0, _0809771C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- bl sub_8099958
- b _08097744
- .align 2, 0
-_0809771C: .4byte gMain
-_08097720:
- bl sub_8099990
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B7AC
- movs r0, 0x13
- b _08097740
-_08097732:
- ldr r0, _08097750 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x14
-_08097740:
- bl sub_8098898
-_08097744:
- ldr r1, _08097754 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097750: .4byte gMain
-_08097754: .4byte 0x02000000
-_08097758:
- ldr r1, _08097760 @ =0x02000000
- movs r0, 0x8
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097760: .4byte 0x02000000
-_08097764:
- ldr r0, _08097780 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _08097784 @ =sub_8096C84
- bl sub_8096BE0
-_0809777A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097780: .4byte gMain
-_08097784: .4byte sub_8096C84
- thumb_func_end sub_8097594
-
- thumb_func_start sub_8097788
-sub_8097788: @ 8097788
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0809779C @ =0x02000000
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _080977A0
- cmp r4, 0x1
- beq _080977BC
- b _080977D4
- .align 2, 0
-_0809779C: .4byte 0x02000000
-_080977A0:
- bl sub_809BC18
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _080977D4
-_080977BC:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080977D4
- ldr r0, _080977DC @ =gUnknown_0203847F
- strb r1, [r0]
- strb r1, [r5, 0x6]
- ldr r0, _080977E0 @ =sub_8096B5C
- bl SetMainCallback2
-_080977D4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080977DC: .4byte gUnknown_0203847F
-_080977E0: .4byte sub_8096B5C
- thumb_func_end sub_8097788
-
- thumb_func_start sub_80977E4
-sub_80977E4: @ 80977E4
- push {r4,lr}
- ldr r4, _080977F4 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080977F8
- cmp r0, 0x1
- beq _08097824
- b _0809784C
- .align 2, 0
-_080977F4: .4byte 0x02000000
-_080977F8:
- movs r0, 0xC
- bl sub_8098898
- ldr r0, _08097820 @ =0x000011f7
- adds r2, r4, r0
- ldrb r1, [r2]
- movs r3, 0x96
- lsls r3, 5
- adds r0, r4, r3
- strb r1, [r0]
- ldrb r0, [r2]
- movs r1, 0xB0
- movs r2, 0x10
- bl sub_80F7418
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809784C
- .align 2, 0
-_08097820: .4byte 0x000011f7
-_08097824:
- bl sub_80F7500
- lsls r0, 24
- cmp r0, 0
- bne _0809784C
- bl sub_80F7470
- bl sub_8098A5C
- movs r1, 0x96
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_809BDD8
- bl sub_809801C
- ldr r0, _08097854 @ =sub_8096C84
- bl sub_8096BE0
-_0809784C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097854: .4byte sub_8096C84
- thumb_func_end sub_80977E4
-
- thumb_func_start sub_8097858
-sub_8097858: @ 8097858
- push {r4,lr}
- ldr r4, _08097868 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _0809786C
- cmp r0, 0x1
- beq _0809787C
- b _08097890
- .align 2, 0
-_08097868: .4byte 0x02000000
-_0809786C:
- bl party_compaction
- bl sub_8099310
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097890
-_0809787C:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097890
- bl sub_80987DC
- ldr r0, _08097898 @ =sub_8096C84
- bl sub_8096BE0
-_08097890:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097898: .4byte sub_8096C84
- thumb_func_end sub_8097858
-
- thumb_func_start sub_809789C
-sub_809789C: @ 809789C
- push {r4,lr}
- ldr r4, _080978AC @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080978B0
- cmp r0, 0x1
- beq _080978C2
- b _08097968
- .align 2, 0
-_080978AC: .4byte 0x02000000
-_080978B0:
- movs r0, 0x1
- bl sub_8098898
- bl sub_809CE84
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097968
-_080978C2:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bhi _08097968
- lsls r0, 2
- ldr r1, _080978DC @ =_080978E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080978DC: .4byte _080978E0
- .align 2, 0
-_080978E0:
- .4byte _08097914
- .4byte _08097914
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097958
- .4byte _08097940
- .4byte _0809792C
-_08097914:
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _08097928 @ =sub_8096C84
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097928: .4byte sub_8096C84
-_0809792C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809793C @ =sub_8097B44
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_0809793C: .4byte sub_8097B44
-_08097940:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097954 @ =sub_8097974
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097954: .4byte sub_8097974
-_08097958:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097970 @ =sub_8097A64
- bl sub_8096BE0
-_08097968:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097970: .4byte sub_8097A64
- thumb_func_end sub_809789C
-
- thumb_func_start sub_8097974
-sub_8097974: @ 8097974
- push {r4,r5,lr}
- ldr r5, _08097988 @ =0x02000000
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _080979A2
- cmp r0, 0x1
- bgt _0809798C
- cmp r0, 0
- beq _08097996
- b _08097A5A
- .align 2, 0
-_08097988: .4byte 0x02000000
-_0809798C:
- cmp r0, 0x2
- beq _080979FC
- cmp r0, 0x3
- beq _08097A44
- b _08097A5A
-_08097996:
- bl sub_8098A80
- movs r0, 0x2
- bl sub_8098898
- b _08097A3C
-_080979A2:
- bl sub_809CF30
- ldr r1, _080979CC @ =0x00000d5e
- adds r4, r5, r1
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080979D4
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _080979D0 @ =sub_8096C84
- bl sub_8096BE0
- b _08097A5A
- .align 2, 0
-_080979CC: .4byte 0x00000d5e
-_080979D0: .4byte sub_8096C84
-_080979D4:
- cmp r0, r1
- blt _08097A5A
- cmp r0, 0xF
- bgt _08097A5A
- cmp r0, 0xC
- blt _08097A5A
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- subs r0, 0xC
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8098AA8
- movs r0, 0x3
- bl sub_8098898
- b _08097A3C
-_080979FC:
- bl sub_809CF30
- movs r1, 0xD6
- lsls r1, 4
- adds r4, r5, r1
- strh r0, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08097A5A
- adds r0, 0x1
- cmp r1, r0
- bne _08097A24
- bl sub_8098A5C
- movs r0, 0
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A24:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldrh r0, [r4]
- subs r0, 0x10
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8099DCC
-_08097A3C:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A44:
- bl sub_8099E08
- lsls r0, 24
- cmp r0, 0
- bne _08097A5A
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097A60 @ =sub_8096C84
- bl sub_8096BE0
-_08097A5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097A60: .4byte sub_8096C84
- thumb_func_end sub_8097974
-
- thumb_func_start sub_8097A64
-sub_8097A64: @ 8097A64
- push {r4,r5,lr}
- ldr r5, _08097A78 @ =0x02000000
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _08097AB0
- cmp r0, 0x1
- bgt _08097A7C
- cmp r0, 0
- beq _08097A86
- b _08097B32
- .align 2, 0
-_08097A78: .4byte 0x02000000
-_08097A7C:
- cmp r0, 0x2
- beq _08097B00
- cmp r0, 0x3
- beq _08097B18
- b _08097B32
-_08097A86:
- movs r0, 0x5
- bl sub_8098898
- ldr r1, _08097AA4 @ =0x00002370
- adds r0, r5, r1
- ldr r2, _08097AA8 @ =0x0000daca
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _08097AAC @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_809634C
- b _08097B0A
- .align 2, 0
-_08097AA4: .4byte 0x00002370
-_08097AA8: .4byte 0x0000daca
-_08097AAC: .4byte gPokemonStorage
-_08097AB0:
- bl sub_8096368
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08097AF4 @ =0x000008b2
- adds r4, r5, r2
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- beq _08097B32
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0xC9
- beq _08097AE4
- adds r1, r0, 0
- ldr r0, _08097AF8 @ =gPokemonStorage
- ldrb r0, [r0]
- cmp r1, r0
- bne _08097B0A
-_08097AE4:
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097AFC @ =sub_8096C84
- bl sub_8096BE0
- b _08097B32
- .align 2, 0
-_08097AF4: .4byte 0x000008b2
-_08097AF8: .4byte gPokemonStorage
-_08097AFC: .4byte sub_8096C84
-_08097B00:
- ldr r1, _08097B14 @ =0x000008b2
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_8099C70
-_08097B0A:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B32
- .align 2, 0
-_08097B14: .4byte 0x000008b2
-_08097B18:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08097B32
- ldr r1, _08097B38 @ =gPokemonStorage
- ldr r2, _08097B3C @ =0x000008b2
- adds r0, r5, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08097B40 @ =sub_8096C84
- bl sub_8096BE0
-_08097B32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B38: .4byte gPokemonStorage
-_08097B3C: .4byte 0x000008b2
-_08097B40: .4byte sub_8096C84
- thumb_func_end sub_8097A64
-
- thumb_func_start sub_8097B44
-sub_8097B44: @ 8097B44
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08097B58 @ =0x02000000
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _08097B5C
- cmp r4, 0x1
- beq _08097B78
- b _08097B8E
- .align 2, 0
-_08097B58: .4byte 0x02000000
-_08097B5C:
- bl sub_809BB90
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B8E
-_08097B78:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08097B8E
- ldr r0, _08097B98 @ =gUnknown_0203847F
- strb r4, [r0]
- strb r4, [r5, 0x6]
- ldr r0, _08097B9C @ =sub_8096B5C
- bl SetMainCallback2
-_08097B8E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B98: .4byte gUnknown_0203847F
-_08097B9C: .4byte sub_8096B5C
- thumb_func_end sub_8097B44
-
- thumb_func_start sub_8097BA0
-sub_8097BA0: @ 8097BA0
- push {r4,lr}
- ldr r0, _08097BB8 @ =0x02000000
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097BAE
- b _08097CB0
-_08097BAE:
- lsls r0, r1, 2
- ldr r1, _08097BBC @ =_08097BC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097BB8: .4byte 0x02000000
-_08097BBC: .4byte _08097BC0
- .align 2, 0
-_08097BC0:
- .4byte _08097BD4
- .4byte _08097C18
- .4byte _08097C2C
- .4byte _08097C74
- .4byte _08097C98
-_08097BD4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097BF8
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097BF4 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097BF4: .4byte 0x02000000
-_08097BF8:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097C14 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C14: .4byte 0x02000000
-_08097C18:
- ldr r0, _08097C28 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097CB0
- b _08097C4A
- .align 2, 0
-_08097C28: .4byte gMain
-_08097C2C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097C5C
- cmp r1, 0
- bgt _08097C46
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097C4A
- b _08097CB0
-_08097C46:
- cmp r1, 0x1
- bne _08097CB0
-_08097C4A:
- bl sub_8098A5C
- ldr r0, _08097C58 @ =sub_8096C84
- bl sub_8096BE0
- b _08097CB0
- .align 2, 0
-_08097C58: .4byte sub_8096C84
-_08097C5C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097C70 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C70: .4byte 0x02000000
-_08097C74:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097C94 @ =0x0000dad0
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C94: .4byte 0x0000dad0
-_08097C98:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097CB0
- bl CalculatePlayerPartyCount
- ldr r1, _08097CB8 @ =gPlayerPartyCount
- strb r0, [r1]
- ldr r0, _08097CBC @ =sub_80961A8
- bl SetMainCallback2
-_08097CB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CB8: .4byte gPlayerPartyCount
-_08097CBC: .4byte sub_80961A8
- thumb_func_end sub_8097BA0
-
- thumb_func_start sub_8097CC0
-sub_8097CC0: @ 8097CC0
- push {r4,lr}
- ldr r0, _08097CD8 @ =0x02000000
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097CCE
- b _08097DD0
-_08097CCE:
- lsls r0, r1, 2
- ldr r1, _08097CDC @ =_08097CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097CD8: .4byte 0x02000000
-_08097CDC: .4byte _08097CE0
- .align 2, 0
-_08097CE0:
- .4byte _08097CF4
- .4byte _08097D38
- .4byte _08097D4C
- .4byte _08097D94
- .4byte _08097DB8
-_08097CF4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097D18
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097D14 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D14: .4byte 0x02000000
-_08097D18:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x12
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097D34 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D34: .4byte 0x02000000
-_08097D38:
- ldr r0, _08097D48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097DD0
- b _08097D6C
- .align 2, 0
-_08097D48: .4byte gMain
-_08097D4C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097D6C
- cmp r1, 0
- bgt _08097D66
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097D7C
- b _08097DD0
-_08097D66:
- cmp r1, 0x1
- beq _08097D7C
- b _08097DD0
-_08097D6C:
- bl sub_8098A5C
- ldr r0, _08097D78 @ =sub_8096C84
- bl sub_8096BE0
- b _08097DD0
- .align 2, 0
-_08097D78: .4byte sub_8096C84
-_08097D7C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097D90 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D90: .4byte 0x02000000
-_08097D94:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097DB4 @ =0x0000dad0
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097DD0
- .align 2, 0
-_08097DB4: .4byte 0x0000dad0
-_08097DB8:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097DD0
- bl CalculatePlayerPartyCount
- ldr r1, _08097DD8 @ =gPlayerPartyCount
- strb r0, [r1]
- ldr r0, _08097DDC @ =sub_80961A8
- bl SetMainCallback2
-_08097DD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097DD8: .4byte gPlayerPartyCount
-_08097DDC: .4byte sub_80961A8
- thumb_func_end sub_8097CC0
-
- thumb_func_start sub_8097DE0
-sub_8097DE0: @ 8097DE0
- push {lr}
- ldr r1, _08097E1C @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x7]
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- ldr r1, _08097E20 @ =REG_BG3CNT
- ldr r2, _08097E24 @ =0x00001e0f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile
- ldr r2, _08097E2C @ =0x0600e000
- ldr r0, _08097E30 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08097E34 @ =0x80000010
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap
- ldr r1, _08097E3C @ =0x0600f000
- bl LZ77UnCompVram
- ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette
- movs r1, 0xD0
- movs r2, 0x10
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08097E1C: .4byte 0x02000000
-_08097E20: .4byte REG_BG3CNT
-_08097E24: .4byte 0x00001e0f
-_08097E28: .4byte gPokemonStorageScrollingBGTile
-_08097E2C: .4byte 0x0600e000
-_08097E30: .4byte 0x040000d4
-_08097E34: .4byte 0x80000010
-_08097E38: .4byte gPokemonStorageScrollingBGTilemap
-_08097E3C: .4byte 0x0600f000
-_08097E40: .4byte gPokemonStorageScrollingBGPalette
- thumb_func_end sub_8097DE0
-
- thumb_func_start sub_8097E44
-sub_8097E44: @ 8097E44
- push {lr}
- ldr r1, _08097E6C @ =0x02000000
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08097E66
- movs r0, 0
- strb r0, [r1, 0x7]
- ldrh r0, [r1, 0x8]
- subs r0, 0x1
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08097E66:
- pop {r0}
- bx r0
- .align 2, 0
-_08097E6C: .4byte 0x02000000
- thumb_func_end sub_8097E44
-
- thumb_func_start sub_8097E70
-sub_8097E70: @ 8097E70
- push {r4,lr}
- sub sp, 0x10
- ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx
- ldr r1, _08097F30 @ =0x06005000
- bl LZ77UnCompVram
- ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap
- ldr r4, _08097F38 @ =gUnknown_02039760
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _08097F3C @ =0x06007800
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- movs r1, 0x14
- str r1, [sp, 0xC]
- movs r1, 0
- movs r2, 0
- adds r3, r4, 0
- bl sub_809D034
- ldr r0, _08097F40 @ =gPSSMenu1_Pal
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F44 @ =gPSSMenu2_Pal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F48 @ =gUnknown_083B6D74
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F4C @ =gUnknown_083B6D94
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2
- adds r0, r4, 0
- movs r1, 0xF1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xF2
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0xF3
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x16
- movs r1, 0xF4
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x12
- movs r1, 0xF6
- movs r2, 0x4
- bl LoadPalette
- adds r4, 0x2
- adds r0, r4, 0
- movs r1, 0xFF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _08097F54 @ =gWaveformSpritePalette
- bl LoadSpritePalette
- bl sub_80980D4
- bl sub_8097F58
- bl sub_8097FB8
- bl sub_809801C
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097F2C: .4byte gPSSMenuHeader_Gfx
-_08097F30: .4byte 0x06005000
-_08097F34: .4byte gPSSMenuHeader_Tilemap
-_08097F38: .4byte gUnknown_02039760
-_08097F3C: .4byte 0x06007800
-_08097F40: .4byte gPSSMenu1_Pal
-_08097F44: .4byte gPSSMenu2_Pal
-_08097F48: .4byte gUnknown_083B6D74
-_08097F4C: .4byte gUnknown_083B6D94
-_08097F50: .4byte gUnknownPalette_81E6692+0x2
-_08097F54: .4byte gWaveformSpritePalette
- thumb_func_end sub_8097E70
-
- thumb_func_start sub_8097F58
-sub_8097F58: @ 8097F58
- push {r4,lr}
- ldr r1, _08097FA4 @ =0x0000dace
- movs r0, 0xD
- movs r2, 0
- bl sub_80F7940
- ldr r4, _08097FA8 @ =0x02000000
- ldr r1, _08097FAC @ =0x000012ac
- adds r3, r4, r1
- str r0, [r3]
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r3]
- movs r0, 0x28
- strh r0, [r1, 0x20]
- ldr r1, [r3]
- movs r0, 0x95
- strh r0, [r1, 0x22]
- movs r0, 0xD
- bl GetSpriteTileStartByTag
- ldr r1, _08097FB0 @ =0x000012b8
- adds r4, r1
- lsls r0, 16
- lsrs r0, 11
- ldr r1, _08097FB4 @ =0x06010000
- adds r0, r1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097FA4: .4byte 0x0000dace
-_08097FA8: .4byte 0x02000000
-_08097FAC: .4byte 0x000012ac
-_08097FB0: .4byte 0x000012b8
-_08097FB4: .4byte 0x06010000
- thumb_func_end sub_8097F58
-
- thumb_func_start sub_8097FB8
-sub_8097FB8: @ 8097FB8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0809800C @ =gWaveformSpriteSheet
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r4, 0
- ldr r5, _08098010 @ =0x020012b0
-_08097FD0:
- lsls r1, r4, 6
- subs r1, r4
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC
- movs r2, 0x9
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r4, 2
- adds r2, r5
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08098018 @ =gSprites
- adds r1, r0
- str r1, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08097FD0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809800C: .4byte gWaveformSpriteSheet
-_08098010: .4byte 0x020012b0
-_08098014: .4byte gSpriteTemplate_83B6EFC
-_08098018: .4byte gSprites
- thumb_func_end sub_8097FB8
-
- thumb_func_start sub_809801C
-sub_809801C: @ 809801C
- push {lr}
- ldr r1, _0809803C @ =0x02000000
- ldr r2, _08098040 @ =0x000011f0
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, 0x4
- adds r1, r2
- ldr r1, [r1]
- bl sub_80981F0
- bl sub_80982B4
- bl sub_8098350
- pop {r0}
- bx r0
- .align 2, 0
-_0809803C: .4byte 0x02000000
-_08098040: .4byte 0x000011f0
- thumb_func_end sub_809801C
-
- thumb_func_start BoxSetMosaic
-BoxSetMosaic: @ 8098044
- push {lr}
- bl sub_809801C
- ldr r0, _08098084 @ =0x02000000
- movs r1, 0x9C
- lsls r1, 6
- adds r3, r0, r1
- ldr r2, [r3]
- cmp r2, 0
- beq _08098080
- ldrb r0, [r2, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r1, [r3]
- movs r0, 0xA
- strh r0, [r1, 0x2E]
- ldr r1, [r3]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, [r3]
- ldr r0, _08098088 @ =sub_8098090
- str r0, [r1, 0x1C]
- ldr r2, _0809808C @ =REG_MOSAIC
- ldr r0, [r3]
- ldrh r0, [r0, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
-_08098080:
- pop {r0}
- bx r0
- .align 2, 0
-_08098084: .4byte 0x02000000
-_08098088: .4byte sub_8098090
-_0809808C: .4byte REG_MOSAIC
- thumb_func_end BoxSetMosaic
-
- thumb_func_start sub_8098090
-sub_8098090: @ 8098090
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- subs r0, r1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bge _080980A6
- movs r0, 0
- strh r0, [r3, 0x2E]
-_080980A6:
- ldr r2, _080980CC @ =REG_MOSAIC
- ldrh r0, [r3, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080980C8
- ldrb r0, [r3, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- strb r1, [r3, 0x1]
- ldr r0, _080980D0 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_080980C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080980CC: .4byte REG_MOSAIC
-_080980D0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098090
-
- thumb_func_start sub_80980D4
-sub_80980D4: @ 80980D4
- push {r4,r5,lr}
- sub sp, 0x28
- ldr r0, _08098150 @ =gUnknown_083B6DCC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _08098154 @ =gUnknown_083B6DD4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r1, 0
- add r5, sp, 0x18
- ldr r4, _0809815C @ =0x02002784
- movs r3, 0
- ldr r2, _08098160 @ =0x000007ff
-_08098102:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08098102
- movs r1, 0
- ldr r3, _08098164 @ =0x02002704
- movs r2, 0
-_08098116:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08098116
- ldr r0, _08098168 @ =0x02000000
- movs r1, 0x9C
- lsls r1, 6
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080981C4
- add r0, sp, 0x20
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080981C4
- b _080981B0
- .align 2, 0
-_08098150: .4byte gUnknown_083B6DCC
-_08098154: .4byte gUnknown_083B6DD4
-_08098158: .4byte gSpriteTemplate_83B6DDC
-_0809815C: .4byte 0x02002784
-_08098160: .4byte 0x000007ff
-_08098164: .4byte 0x02002704
-_08098168: .4byte 0x02000000
-_0809816C:
- ldr r2, _0809819C @ =0x02000000
- movs r0, 0x9C
- lsls r0, 6
- adds r3, r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080981A0 @ =gSprites
- adds r0, r1
- str r0, [r3]
- lsls r0, r4, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- ldr r3, _080981A4 @ =0x000026fa
- adds r1, r2, r3
- strh r0, [r1]
- ldr r4, _080981A8 @ =0x000026fc
- adds r2, r4
- lsls r0, r5, 5
- ldr r1, _080981AC @ =0x06010000
- adds r0, r1
- str r0, [r2]
- b _080981C4
- .align 2, 0
-_0809819C: .4byte 0x02000000
-_080981A0: .4byte gSprites
-_080981A4: .4byte 0x000026fa
-_080981A8: .4byte 0x000026fc
-_080981AC: .4byte 0x06010000
-_080981B0:
- mov r0, sp
- movs r1, 0x28
- movs r2, 0x30
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _0809816C
-_080981C4:
- ldr r0, _080981E8 @ =0x02000000
- movs r2, 0x9C
- lsls r2, 6
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _080981DE
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- ldr r0, _080981EC @ =0x0000dac7
- bl FreeSpritePaletteByTag
-_080981DE:
- add sp, 0x28
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080981E8: .4byte 0x02000000
-_080981EC: .4byte 0x0000dac7
- thumb_func_end sub_80980D4
-
- thumb_func_start sub_80981F0
-sub_80981F0: @ 80981F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r6, _08098274 @ =0x02000000
- movs r0, 0x9C
- lsls r0, 6
- adds r0, r6
- mov r8, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080982A6
- cmp r4, 0
- beq _0809829C
- lsls r0, r4, 3
- ldr r1, _08098278 @ =gMonFrontPicTable
- adds r0, r1
- ldr r2, _0809827C @ =gMonFrontPicCoords
- lsls r1, r4, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r2, _08098280 @ =0x00004784
- adds r3, r6, r2
- ldr r2, _08098284 @ =0x00002784
- adds r5, r6, r2
- str r5, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r2, 0x1
- bl sub_800D334
- ldr r1, _08098288 @ =0x000011e8
- adds r0, r6, r1
- ldr r0, [r0]
- ldr r2, _0809828C @ =0x00002704
- adds r4, r6, r2
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r1, _08098290 @ =0x000026fc
- adds r0, r6, r1
- ldr r1, [r0]
- ldr r2, _08098294 @ =0x04000200
- adds r0, r5, 0
- bl CpuSet
- ldr r2, _08098298 @ =0x000026fa
- adds r0, r6, r2
- ldrh r1, [r0]
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- mov r0, r8
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _080982A6
- .align 2, 0
-_08098274: .4byte 0x02000000
-_08098278: .4byte gMonFrontPicTable
-_0809827C: .4byte gMonFrontPicCoords
-_08098280: .4byte 0x00004784
-_08098284: .4byte 0x00002784
-_08098288: .4byte 0x000011e8
-_0809828C: .4byte 0x00002704
-_08098290: .4byte 0x000026fc
-_08098294: .4byte 0x04000200
-_08098298: .4byte 0x000026fa
-_0809829C:
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080982A6:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80981F0
-
- thumb_func_start sub_80982B4
-sub_80982B4: @ 80982B4
- push {r4,lr}
- ldr r4, _080982E4 @ =0x02000000
- ldr r1, _080982E8 @ =0x000011f0
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080982F4
- ldr r2, _080982EC @ =0x000011f7
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r2, 0xC1
- adds r1, r4, r2
- ldr r1, [r1]
- bl sub_80F7A10
- ldr r1, _080982F0 @ =0x000012ac
- adds r0, r4, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _08098302
- .align 2, 0
-_080982E4: .4byte 0x02000000
-_080982E8: .4byte 0x000011f0
-_080982EC: .4byte 0x000011f7
-_080982F0: .4byte 0x000012ac
-_080982F4:
- ldr r2, _08098348 @ =0x000012ac
- adds r0, r4, r2
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_08098302:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- ldr r4, _0809834C @ =0x0200127a
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x10
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x6B
- movs r1, 0x1
- movs r2, 0xB
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x46
- movs r1, 0
- movs r2, 0xD
- bl MenuPrint
- subs r4, 0x21
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08098348: .4byte 0x000012ac
-_0809834C: .4byte 0x0200127a
- thumb_func_end sub_80982B4
-
- thumb_func_start sub_8098350
-sub_8098350: @ 8098350
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, _080983A0 @ =0x02000000
- ldr r1, _080983A4 @ =0x000011f0
- adds r0, r5, r1
- ldrh r2, [r0]
- cmp r2, 0
- beq _080983B4
- ldr r0, _080983A8 @ =0x06007800
- ldr r3, _080983AC @ =gUnknown_02039760
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r0, _080983B0 @ =0x000012b0
- adds r5, r0
-_08098382:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08098382
- b _080983EC
- .align 2, 0
-_080983A0: .4byte 0x02000000
-_080983A4: .4byte 0x000011f0
-_080983A8: .4byte 0x06007800
-_080983AC: .4byte gUnknown_02039760
-_080983B0: .4byte 0x000012b0
-_080983B4:
- ldr r0, _080983F4 @ =0x06007800
- ldr r3, _080983F8 @ =gUnknown_02039760
- movs r1, 0xA
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r1, _080983FC @ =0x000012b0
- adds r5, r1
-_080983D4:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 25
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080983D4
-_080983EC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080983F4: .4byte 0x06007800
-_080983F8: .4byte gUnknown_02039760
-_080983FC: .4byte 0x000012b0
- thumb_func_end sub_8098350
-
- thumb_func_start sub_8098400
-sub_8098400: @ 8098400
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _0809847C @ =REG_BG1CNT
- ldr r2, _08098480 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08098484 @ =gPSSMenuMisc_Gfx
- ldr r1, _08098488 @ =0x06006800
- bl LZ77UnCompVram
- ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap
- ldr r5, _08098490 @ =0x020000a8
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08098494 @ =gPSSMenu3_Pal
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08098498 @ =gPSSMenu4_Pal
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _0809849C @ =0x06007800
- add r1, sp, 0x10
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080984A0 @ =0x040000d4
- str r1, [r0]
- str r4, [r0, 0x4]
- ldr r1, _080984A4 @ =0x81000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8098780
- ldr r0, _080984A8 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080984AC
- movs r0, 0x1
- bl sub_8098690
- movs r0, 0x1
- bl sub_8099200
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x16
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- b _080984CC
- .align 2, 0
-_0809847C: .4byte REG_BG1CNT
-_08098480: .4byte 0x00000f01
-_08098484: .4byte gPSSMenuMisc_Gfx
-_08098488: .4byte 0x06006800
-_0809848C: .4byte gPSSMenuMisc_Tilemap
-_08098490: .4byte 0x020000a8
-_08098494: .4byte gPSSMenu3_Pal
-_08098498: .4byte gPSSMenu4_Pal
-_0809849C: .4byte 0x06007800
-_080984A0: .4byte 0x040000d4
-_080984A4: .4byte 0x81000400
-_080984A8: .4byte gUnknown_0203847C
-_080984AC:
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- movs r0, 0x1
- bl sub_8098690
-_080984CC:
- ldr r0, _080984E0 @ =0x02000000
- ldr r1, _080984E4 @ =0x000008af
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080984E0: .4byte 0x02000000
-_080984E4: .4byte 0x000008af
- thumb_func_end sub_8098400
-
- thumb_func_start sub_80984E8
-sub_80984E8: @ 80984E8
- push {lr}
- ldr r1, _08098510 @ =0x02000000
- ldr r0, _08098514 @ =0x000008a8
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x14
- strh r0, [r2]
- ldr r0, _08098518 @ =0x000008aa
- adds r2, r1, r0
- movs r0, 0x2
- strh r0, [r2]
- ldr r0, _0809851C @ =0x000008ad
- adds r1, r0
- strb r3, [r1]
- movs r0, 0
- bl sub_8099200
- pop {r0}
- bx r0
- .align 2, 0
-_08098510: .4byte 0x02000000
-_08098514: .4byte 0x000008a8
-_08098518: .4byte 0x000008aa
-_0809851C: .4byte 0x000008ad
- thumb_func_end sub_80984E8
-
- thumb_func_start sub_8098520
-sub_8098520: @ 8098520
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r3, _08098578 @ =0x02000000
- ldr r0, _0809857C @ =0x000008ad
- adds r5, r3, r0
- ldrb r0, [r5]
- cmp r0, 0x14
- beq _08098592
- ldr r0, _08098580 @ =0x000008a8
- adds r1, r3, r0
- ldrh r0, [r1]
- subs r0, 0x1
- movs r4, 0
- strh r0, [r1]
- ldr r0, _08098584 @ =0x000008aa
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ldr r0, _08098588 @ =0x06007800
- adds r3, 0xA8
- str r4, [sp]
- ldrh r1, [r1]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- ldrh r1, [r2]
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- movs r0, 0x8
- bl sub_80994A8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _0809858C
- movs r0, 0x1
- b _08098594
- .align 2, 0
-_08098578: .4byte 0x02000000
-_0809857C: .4byte 0x000008ad
-_08098580: .4byte 0x000008a8
-_08098584: .4byte 0x000008aa
-_08098588: .4byte 0x06007800
-_0809858C:
- ldr r1, _0809859C @ =gUnknown_0203847C
- movs r0, 0x1
- strb r0, [r1]
-_08098592:
- movs r0, 0
-_08098594:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809859C: .4byte gUnknown_0203847C
- thumb_func_end sub_8098520
-
- thumb_func_start add_to_c3_somehow
-add_to_c3_somehow: @ 80985A0
- ldr r1, _080985BC @ =0x02000000
- ldr r0, _080985C0 @ =0x000008a8
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- ldr r0, _080985C4 @ =0x000008aa
- adds r2, r1, r0
- movs r0, 0x16
- strh r0, [r2]
- ldr r0, _080985C8 @ =0x000008ad
- adds r1, r0
- strb r3, [r1]
- bx lr
- .align 2, 0
-_080985BC: .4byte 0x02000000
-_080985C0: .4byte 0x000008a8
-_080985C4: .4byte 0x000008aa
-_080985C8: .4byte 0x000008ad
- thumb_func_end add_to_c3_somehow
-
- thumb_func_start sub_80985CC
-sub_80985CC: @ 80985CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r3, _08098640 @ =0x02000000
- ldr r0, _08098644 @ =0x000008ad
- adds r6, r3, r0
- ldrb r0, [r6]
- cmp r0, 0x14
- beq _0809867A
- ldr r2, _08098648 @ =0x000008a8
- adds r1, r3, r2
- ldrh r0, [r1]
- adds r0, 0x1
- movs r2, 0
- mov r9, r2
- strh r0, [r1]
- ldr r0, _0809864C @ =0x000008aa
- adds r4, r3, r0
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldr r5, _08098650 @ =0x06007800
- adds r3, 0xA8
- mov r8, r3
- str r2, [sp]
- ldrh r0, [r1]
- str r0, [sp, 0x4]
- movs r7, 0xC
- str r7, [sp, 0x8]
- ldrh r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- bl sub_809D034
- ldrh r2, [r4]
- movs r4, 0x1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0xA
- movs r3, 0xC
- bl sub_809D16C
- movs r0, 0x8
- negs r0, r0
- bl sub_80994A8
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _08098654
- movs r0, 0x1
- b _0809867C
- .align 2, 0
-_08098640: .4byte 0x02000000
-_08098644: .4byte 0x000008ad
-_08098648: .4byte 0x000008a8
-_0809864C: .4byte 0x000008aa
-_08098650: .4byte 0x06007800
-_08098654:
- ldr r0, _0809868C @ =gUnknown_0203847C
- movs r1, 0
- strb r1, [r0]
- bl sub_809954C
- bl party_compaction
- str r7, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- mov r3, r8
- bl sub_809D034
-_0809867A:
- movs r0, 0
-_0809867C:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809868C: .4byte gUnknown_0203847C
- thumb_func_end sub_80985CC
-
- thumb_func_start sub_8098690
-sub_8098690: @ 8098690
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- cmp r0, 0
- beq _080986C0
- ldr r0, _080986B8 @ =0x06007800
- ldr r3, _080986BC @ =0x020000a8
- movs r1, 0xC
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
- b _080986DA
- .align 2, 0
-_080986B8: .4byte 0x06007800
-_080986BC: .4byte 0x020000a8
-_080986C0:
- ldr r0, _080986E0 @ =0x06007800
- ldr r3, _080986E4 @ =0x020000a8
- movs r1, 0xC
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
-_080986DA:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080986E0: .4byte 0x06007800
-_080986E4: .4byte 0x020000a8
- thumb_func_end sub_8098690
-
- thumb_func_start sub_80986E8
-sub_80986E8: @ 80986E8
- ldr r1, _08098704 @ =0x02000000
- ldr r2, _08098708 @ =0x000008af
- adds r0, r1, r2
- movs r3, 0x1
- strb r3, [r0]
- movs r0, 0x8B
- lsls r0, 4
- adds r2, r1, r0
- movs r0, 0x1E
- strb r0, [r2]
- ldr r2, _0809870C @ =0x000008b1
- adds r1, r2
- strb r3, [r1]
- bx lr
- .align 2, 0
-_08098704: .4byte 0x02000000
-_08098708: .4byte 0x000008af
-_0809870C: .4byte 0x000008b1
- thumb_func_end sub_80986E8
-
- thumb_func_start sub_8098710
-sub_8098710: @ 8098710
- push {lr}
- ldr r0, _0809872C @ =0x02000000
- ldr r2, _08098730 @ =0x000008af
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08098728
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8098690
-_08098728:
- pop {r0}
- bx r0
- .align 2, 0
-_0809872C: .4byte 0x02000000
-_08098730: .4byte 0x000008af
- thumb_func_end sub_8098710
-
- thumb_func_start sub_8098734
-sub_8098734: @ 8098734
- push {lr}
- ldr r2, _08098774 @ =0x02000000
- ldr r1, _08098778 @ =0x000008af
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098770
- movs r0, 0x8B
- lsls r0, 4
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bls _08098770
- movs r0, 0
- strb r0, [r1]
- movs r3, 0
- ldr r0, _0809877C @ =0x000008b1
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08098768
- movs r3, 0x1
-_08098768:
- strb r3, [r1]
- ldrb r0, [r1]
- bl sub_8098690
-_08098770:
- pop {r0}
- bx r0
- .align 2, 0
-_08098774: .4byte 0x02000000
-_08098778: .4byte 0x000008af
-_0809877C: .4byte 0x000008b1
- thumb_func_end sub_8098734
-
- thumb_func_start sub_8098780
-sub_8098780: @ 8098780
- push {r4-r6,lr}
- sub sp, 0x10
- movs r4, 0x1
- ldr r6, _080987D4 @ =0x020000a8
- movs r5, 0x80
- lsls r5, 9
-_0809878C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080987D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080987A0
- movs r0, 0x1
-_080987A0:
- movs r1, 0x10
- cmp r0, 0
- beq _080987A8
- movs r1, 0xC
-_080987A8:
- lsrs r2, r5, 16
- str r1, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x7
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0xC0
- lsls r0, 10
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x5
- ble _0809878C
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080987D4: .4byte 0x020000a8
-_080987D8: .4byte gPlayerParty
- thumb_func_end sub_8098780
-
- thumb_func_start sub_80987DC
-sub_80987DC: @ 80987DC
- push {lr}
- sub sp, 0x10
- bl sub_8098780
- ldr r0, _08098804 @ =0x06007800
- ldr r3, _08098808 @ =0x020000a8
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- movs r1, 0x16
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08098804: .4byte 0x06007800
-_08098808: .4byte 0x020000a8
- thumb_func_end sub_80987DC
-
- thumb_func_start sub_809880C
-sub_809880C: @ 809880C
- push {lr}
- ldr r0, _08098828 @ =0x02000000
- ldr r1, _0809882C @ =0x000008ae
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x6
- bl PlaySE
- bl sub_80984E8
- pop {r0}
- bx r0
- .align 2, 0
-_08098828: .4byte 0x02000000
-_0809882C: .4byte 0x000008ae
- thumb_func_end sub_809880C
-
- thumb_func_start sub_8098830
-sub_8098830: @ 8098830
- push {r4,r5,lr}
- ldr r5, _08098848 @ =0x02000000
- ldr r0, _0809884C @ =0x000008ae
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08098866
- cmp r0, 0x1
- bgt _08098850
- cmp r0, 0
- beq _08098856
- b _08098890
- .align 2, 0
-_08098848: .4byte 0x02000000
-_0809884C: .4byte 0x000008ae
-_08098850:
- cmp r0, 0x2
- beq _0809888C
- b _08098890
-_08098856:
- bl sub_8098520
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- bl sub_809B068
- b _0809887E
-_08098866:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- ldr r1, _08098888 @ =0x000011f6
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809887E
- bl BoxSetMosaic
-_0809887E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08098890
- .align 2, 0
-_08098888: .4byte 0x000011f6
-_0809888C:
- movs r0, 0
- b _08098892
-_08098890:
- movs r0, 0x1
-_08098892:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8098830
-
- thumb_func_start sub_8098898
-sub_8098898: @ 8098898
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _080988C4 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _080988B8
- b _080989F4
-_080988B8:
- lsls r0, 2
- ldr r1, _080988C8 @ =_080988CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080988C4: .4byte gUnknown_083B6DF4
-_080988C8: .4byte _080988CC
- .align 2, 0
-_080988CC:
- .4byte _080989F4
- .4byte _08098930
- .4byte _080988E8
- .4byte _08098974
- .4byte _08098954
- .4byte _08098910
- .4byte _080989B8
-_080988E8:
- ldr r4, _08098904 @ =0x02002694
- ldr r1, _08098908 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _0809890C @ =0xffffeb66
- adds r4, r0
- adds r0, r2, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098904: .4byte 0x02002694
-_08098908: .4byte gUnknown_083B6DF4
-_0809890C: .4byte 0xffffeb66
-_08098910:
- ldr r4, _08098928 @ =0x02002694
- ldr r1, _0809892C @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r4, 0x50
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098928: .4byte 0x02002694
-_0809892C: .4byte gUnknown_083B6DF4
-_08098930:
- ldr r0, _08098948 @ =0x02002694
- ldr r2, _0809894C @ =0xffffeb66
- adds r1, r0, r2
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098950 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_08098948: .4byte 0x02002694
-_0809894C: .4byte 0xffffeb66
-_08098950: .4byte gUnknown_083B6DF4
-_08098954:
- ldr r0, _0809896C @ =0x02002694
- adds r1, r0, 0
- adds r1, 0x50
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098970 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_0809896C: .4byte 0x02002694
-_08098970: .4byte gUnknown_083B6DF4
-_08098974:
- ldr r1, _080989AC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- adds r4, 0x1
- ldr r5, _080989B0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080989B4 @ =0xffffeb66
- adds r5, r0
- adds r0, r2, 0
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989AC: .4byte gUnknown_083B6DF4
-_080989B0: .4byte 0x02002694
-_080989B4: .4byte 0xffffeb66
-_080989B8:
- ldr r1, _080989EC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- subs r4, 0x1
- ldr r5, _080989F0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- subs r0, r2, 0x1
- adds r5, 0x50
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989EC: .4byte gUnknown_083B6DF4
-_080989F0: .4byte 0x02002694
-_080989F4:
- ldr r0, _08098A2C @ =0x02002694
- ldr r2, _08098A30 @ =gUnknown_083B6DF4
- lsls r1, r5, 3
- adds r1, r2
- ldr r1, [r1]
-_080989FE:
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _08098A34 @ =0x020026a6
- adds r3, r0, 0
- subs r3, 0x12
- cmp r2, r0
- bcs _08098A18
- movs r1, 0
-_08098A10:
- strb r1, [r2]
- adds r2, 0x1
- cmp r2, r0
- bcc _08098A10
-_08098A18:
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r3, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098A2C: .4byte 0x02002694
-_08098A30: .4byte gUnknown_083B6DF4
-_08098A34: .4byte 0x020026a6
- thumb_func_end sub_8098898
-
- thumb_func_start sub_8098A38
-sub_8098A38: @ 8098A38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0
- bl DisplayYesNoMenu
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8098A38
-
- thumb_func_start sub_8098A5C
-sub_8098A5C: @ 8098A5C
- push {lr}
- bl sub_8072DEC
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_8098A5C
-
- thumb_func_start sub_8098A80
-sub_8098A80: @ 8098A80
- push {lr}
- bl sub_809CDCC
- movs r0, 0xC
- bl sub_809CDEC
- movs r0, 0xD
- bl sub_809CDEC
- movs r0, 0xE
- bl sub_809CDEC
- movs r0, 0xF
- bl sub_809CDEC
- bl sub_809CE84
- pop {r0}
- bx r0
- thumb_func_end sub_8098A80
-
- thumb_func_start sub_8098AA8
-sub_8098AA8: @ 8098AA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_809CDCC
- cmp r4, 0x1
- beq _08098AE6
- cmp r4, 0x1
- bgt _08098AC2
- cmp r4, 0
- beq _08098ACC
- b _08098B32
-_08098AC2:
- cmp r5, 0x2
- beq _08098B00
- cmp r5, 0x3
- beq _08098B1A
- b _08098B32
-_08098ACC:
- movs r0, 0x10
- bl sub_809CDEC
- movs r0, 0x11
- bl sub_809CDEC
- movs r0, 0x12
- bl sub_809CDEC
- movs r0, 0x13
- bl sub_809CDEC
- b _08098B32
-_08098AE6:
- movs r0, 0x14
- bl sub_809CDEC
- movs r0, 0x15
- bl sub_809CDEC
- movs r0, 0x16
- bl sub_809CDEC
- movs r0, 0x17
- bl sub_809CDEC
- b _08098B32
-_08098B00:
- movs r0, 0x18
- bl sub_809CDEC
- movs r0, 0x19
- bl sub_809CDEC
- movs r0, 0x1A
- bl sub_809CDEC
- movs r0, 0x1B
- bl sub_809CDEC
- b _08098B32
-_08098B1A:
- movs r0, 0x1C
- bl sub_809CDEC
- movs r0, 0x1D
- bl sub_809CDEC
- movs r0, 0x1E
- bl sub_809CDEC
- movs r0, 0x1F
- bl sub_809CDEC
-_08098B32:
- bl sub_809CE84
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8098AA8
-
- thumb_func_start get_preferred_box
-get_preferred_box: @ 8098B3C
- ldr r0, _08098B44 @ =gPokemonStorage
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08098B44: .4byte gPokemonStorage
- thumb_func_end get_preferred_box
-
- thumb_func_start sub_8098B48
-sub_8098B48: @ 8098B48
- push {r4,r5,lr}
- bl sub_809D51C
- movs r2, 0
- ldr r1, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r1]
- ldr r4, _08098BDC @ =0x000010d0
- adds r3, r0, r4
- movs r4, 0
- adds r5, r1, 0
-_08098B5C:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B5C
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r3, r0, r1
- movs r1, 0
-_08098B7A:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B7A
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r4, _08098BE0 @ =0x00001038
- adds r3, r0, r4
- movs r1, 0
-_08098B96:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _08098B96
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098BE4 @ =0x00001050
- adds r3, r0, r1
- movs r1, 0
-_08098BB2:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098BB2
- ldr r0, [r5]
- ldr r2, _08098BE8 @ =0x00001034
- adds r1, r0, r2
- movs r2, 0
- str r2, [r1]
- ldr r4, _08098BEC @ =0x00000d5c
- adds r0, r4
- strh r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08098BD8: .4byte gUnknown_083B6DB4
-_08098BDC: .4byte 0x000010d0
-_08098BE0: .4byte 0x00001038
-_08098BE4: .4byte 0x00001050
-_08098BE8: .4byte 0x00001034
-_08098BEC: .4byte 0x00000d5c
- thumb_func_end sub_8098B48
-
- thumb_func_start sub_8098BF0
-sub_8098BF0: @ 8098BF0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _08098C38 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _08098C3C @ =0x000025b4
- adds r4, r5, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x7
- str r1, [sp, 0x4]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_8099AFC
- ldr r1, _08098C40 @ =0x00001034
- adds r5, r1
- str r0, [r5]
- ldr r1, _08098C44 @ =sub_80999C4
- str r1, [r0, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098C38: .4byte gUnknown_083B6DB4
-_08098C3C: .4byte 0x000025b4
-_08098C40: .4byte 0x00001034
-_08098C44: .4byte sub_80999C4
- thumb_func_end sub_8098BF0
-
- thumb_func_start sub_8098C48
-sub_8098C48: @ 8098C48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _08098CCC @ =gUnknown_020300A4
- adds r6, r0, r1
- movs r0, 0
- mov r8, r0
- movs r7, 0
-_08098C6A:
- movs r5, 0
- adds r1, r7, 0x1
- mov r9, r1
-_08098C70:
- adds r0, r6, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08098CD8
- adds r0, r6, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r2, r5, 1
- adds r2, r5
- lsls r2, 19
- movs r3, 0xC8
- lsls r3, 15
- adds r2, r3
- asrs r2, 16
- lsls r3, r7, 1
- adds r3, r7
- lsls r3, 19
- movs r0, 0xB0
- lsls r0, 14
- adds r3, r0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r5
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- asrs r3, 16
- bl sub_8099AFC
- ldr r1, _08098CD0 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- mov r3, r8
- lsls r2, r3, 2
- ldr r3, _08098CD4 @ =0x00001050
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- b _08098CE8
- .align 2, 0
-_08098CCC: .4byte gUnknown_020300A4
-_08098CD0: .4byte gUnknown_083B6DB4
-_08098CD4: .4byte 0x00001050
-_08098CD8:
- ldr r0, _08098D18 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08098D1C @ =0x00001050
- adds r0, r3
- adds r0, r1
- str r4, [r0]
-_08098CE8:
- adds r6, 0x50
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08098C70
- mov r1, r9
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _08098C6A
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098D18: .4byte gUnknown_083B6DB4
-_08098D1C: .4byte 0x00001050
- thumb_func_end sub_8098C48
-
- thumb_func_start sub_8098D20
-sub_8098D20: @ 8098D20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r2, r1, 4
- subs r2, r1
- lsls r2, 5
- lsls r0, r4, 2
- mov r9, r0
- adds r0, r4
- lsls r0, 4
- ldr r1, _08098DD4 @ =gUnknown_020300A4
- adds r0, r1
- adds r7, r2, r0
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _08098DC4
- adds r0, r4, 0
- movs r1, 0x6
- bl __umodsi3
- adds r6, r0, 0
- lsls r0, r6, 24
- lsrs r0, 24
- lsls r5, r0, 1
- adds r5, r0
- lsls r5, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r5, r1
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 19
- movs r2, 0xB0
- lsls r2, 14
- adds r4, r2
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8099AFC
- ldr r1, _08098DD8 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _08098DDC @ =0x00001050
- adds r1, r2
- add r1, r9
- str r0, [r1]
-_08098DC4:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098DD4: .4byte gUnknown_020300A4
-_08098DD8: .4byte gUnknown_083B6DB4
-_08098DDC: .4byte 0x00001050
- thumb_func_end sub_8098D20
-
- thumb_func_start sub_8098DE0
-sub_8098DE0: @ 8098DE0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- ldr r0, _08098E18 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098E1C @ =0x00001050
- adds r3, r0, r1
- movs r6, 0x1
- ldr r5, _08098E20 @ =sub_8098E68
-_08098DF4:
- lsls r0, r2, 2
- adds r1, r3, r0
- ldr r0, [r1]
- cmp r0, 0
- beq _08098E08
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- strh r6, [r0, 0x36]
- ldr r0, [r1]
- str r5, [r0, 0x1C]
-_08098E08:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098DF4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098E18: .4byte gUnknown_083B6DB4
-_08098E1C: .4byte 0x00001050
-_08098E20: .4byte sub_8098E68
- thumb_func_end sub_8098DE0
-
- thumb_func_start sub_8098E24
-sub_8098E24: @ 8098E24
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E40
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- b _08098E56
-_08098E40:
- ldr r0, _08098E5C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _08098E60 @ =0x00001178
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrh r0, [r2, 0x34]
- strh r0, [r2, 0x20]
- ldr r0, _08098E64 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08098E56:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E5C: .4byte gUnknown_083B6DB4
-_08098E60: .4byte 0x00001178
-_08098E64: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E24
-
- thumb_func_start sub_8098E68
-sub_8098E68: @ 8098E68
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x36]
- movs r3, 0x36
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E7C
- subs r0, r1, 0x1
- strh r0, [r2, 0x36]
- b _08098E98
-_08098E7C:
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x38]
- subs r0, 0x45
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB6
- bls _08098E98
- ldr r0, _08098E9C @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08098E98:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E9C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E68
-
- thumb_func_start sub_8098EA0
-sub_8098EA0: @ 8098EA0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r0, _08098ED8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098EDC @ =0x00001050
- adds r7, r0, r1
-_08098EB0:
- lsls r0, r5, 2
- adds r4, r7, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _08098EC2
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08098EC2:
- adds r0, r5, 0x6
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _08098EB0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098ED8: .4byte gUnknown_083B6DB4
-_08098EDC: .4byte 0x00001050
- thumb_func_end sub_8098EA0
-
- thumb_func_start sub_8098EE0
-sub_8098EE0: @ 8098EE0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 16
- movs r0, 0x2C
- str r0, [sp, 0x10]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r0, r1
- lsrs r0, 16
- mov r10, r0
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsrs r3, r2, 16
- str r3, [sp, 0xC]
- asrs r2, 16
- adds r1, r0, 0
- muls r1, r2
- mov r4, r10
- subs r1, r4, r1
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- movs r0, 0
- str r0, [sp, 0x14]
- mov r9, r0
- ldr r0, _08098FF8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _08098FFC @ =0x0000117d
- adds r2, r0
- mov r8, r2
- ldr r3, _08099000 @ =0x00001050
- adds r3, r0, r3
- str r3, [sp, 0x20]
- lsls r1, 16
- str r1, [sp, 0x1C]
-_08098F42:
- mov r4, r8
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r7, r6, 2
- adds r1, r7, r6
- lsls r1, 4
- ldr r2, _08099004 @ =gUnknown_020300A4
- adds r4, r1, r2
- adds r0, r4
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08098FC8
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r0, r4
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldr r2, [sp, 0x10]
- lsls r3, r2, 16
- asrs r3, 16
- movs r0, 0x2
- str r0, [sp]
- ldr r4, [sp, 0x18]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- ldr r4, [sp, 0x1C]
- asrs r2, r4, 16
- bl sub_8099AFC
- ldr r2, [sp, 0x20]
- adds r1, r2, r7
- str r0, [r1]
- cmp r0, 0
- beq _08098FC8
- mov r3, sp
- ldrh r3, [r3, 0x8]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- mov r4, sp
- ldrh r4, [r4, 0xC]
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- mov r2, r10
- strh r2, [r0, 0x34]
- ldr r1, [r1]
- ldr r0, _08099008 @ =sub_8098E24
- str r0, [r1, 0x1C]
- ldr r0, [sp, 0x14]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
-_08098FC8:
- adds r0, r6, 0x6
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x10]
- adds r0, 0x18
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x4
- bls _08098F42
- ldr r0, [sp, 0x14]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08098FF8: .4byte gUnknown_083B6DB4
-_08098FFC: .4byte 0x0000117d
-_08099000: .4byte 0x00001050
-_08099004: .4byte gUnknown_020300A4
-_08099008: .4byte sub_8098E24
- thumb_func_end sub_8098EE0
-
- thumb_func_start sub_809900C
-sub_809900C: @ 809900C
- push {r4-r6,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _08099058 @ =gUnknown_083B6DB4
- ldr r5, [r4]
- ldr r3, _0809905C @ =0x0000117c
- adds r2, r5, r3
- movs r3, 0
- strb r3, [r2]
- ldr r6, _08099060 @ =0x0000117d
- adds r2, r5, r6
- strb r0, [r2]
- ldr r2, _08099064 @ =0x0000117b
- adds r0, r5, r2
- strb r1, [r0]
- subs r6, 0xB
- adds r2, r5, r6
- movs r0, 0x20
- strh r0, [r2]
- lsls r1, 24
- asrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- negs r0, r0
- adds r6, 0x4
- adds r2, r5, r6
- strh r0, [r2]
- ldr r2, _08099068 @ =0x00001178
- adds r0, r5, r2
- strh r3, [r0]
- cmp r1, 0
- ble _08099070
- ldr r3, _0809906C @ =0x0000117a
- adds r1, r5, r3
- movs r0, 0
- b _08099076
- .align 2, 0
-_08099058: .4byte gUnknown_083B6DB4
-_0809905C: .4byte 0x0000117c
-_08099060: .4byte 0x0000117d
-_08099064: .4byte 0x0000117b
-_08099068: .4byte 0x00001178
-_0809906C: .4byte 0x0000117a
-_08099070:
- ldr r6, _080990A0 @ =0x0000117a
- adds r1, r5, r6
- movs r0, 0x5
-_08099076:
- strb r0, [r1]
- ldr r2, [r4]
- ldr r1, _080990A0 @ =0x0000117a
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x64
- ldr r3, _080990A4 @ =0x00001174
- adds r1, r2, r3
- strh r0, [r1]
- ldr r6, _080990A8 @ =0x00001176
- adds r2, r6
- movs r1, 0
- ldrsh r0, [r2, r1]
- bl sub_8098DE0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080990A0: .4byte 0x0000117a
-_080990A4: .4byte 0x00001174
-_080990A8: .4byte 0x00001176
- thumb_func_end sub_809900C
-
- thumb_func_start sub_80990AC
-sub_80990AC: @ 80990AC
- push {r4-r6,lr}
- ldr r0, _080990D4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _080990D8 @ =0x00001172
- adds r3, r4, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _080990C0
- subs r0, 0x1
- strh r0, [r3]
-_080990C0:
- ldr r1, _080990DC @ =0x0000117c
- adds r6, r4, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08099138
- cmp r0, 0x1
- bgt _080990E0
- cmp r0, 0
- beq _080990E8
- b _080991F0
- .align 2, 0
-_080990D4: .4byte gUnknown_083B6DB4
-_080990D8: .4byte 0x00001172
-_080990DC: .4byte 0x0000117c
-_080990E0:
- cmp r0, 0x2
- bne _080990E6
- b _080991E0
-_080990E6:
- b _080991F0
-_080990E8:
- ldr r2, _0809912C @ =0x00001174
- adds r5, r4, r2
- ldr r3, _08099130 @ =0x00001176
- adds r0, r4, r3
- ldrh r0, [r0]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBA
- bhi _08099104
- b _080991F8
-_08099104:
- adds r2, 0x6
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_8098EA0
- ldr r3, _08099134 @ =0x0000117b
- adds r0, r4, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _080991F8
- .align 2, 0
-_0809912C: .4byte 0x00001174
-_08099130: .4byte 0x00001176
-_08099134: .4byte 0x0000117b
-_08099138:
- ldr r2, _08099194 @ =0x00001174
- adds r1, r4, r2
- ldr r5, _08099198 @ =0x00001176
- adds r2, r4, r5
- ldrh r0, [r2]
- ldrh r5, [r1]
- adds r0, r5
- strh r0, [r1]
- ldr r0, _0809919C @ =0x0000117a
- adds r5, r4, r0
- ldrb r0, [r5]
- ldrh r1, [r3]
- movs r3, 0
- ldrsh r2, [r2, r3]
- bl sub_8098EE0
- ldr r2, _080991A0 @ =0x00001178
- adds r1, r4, r2
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _080991A4 @ =0x0000117b
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _08099178
- ldrb r0, [r5]
- cmp r0, 0x5
- beq _08099182
-_08099178:
- cmp r1, 0
- bge _080991B0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080991B0
-_08099182:
- ldr r0, _080991A8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _080991AC @ =0x0000117c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080991F8
- .align 2, 0
-_08099194: .4byte 0x00001174
-_08099198: .4byte 0x00001176
-_0809919C: .4byte 0x0000117a
-_080991A0: .4byte 0x00001178
-_080991A4: .4byte 0x0000117b
-_080991A8: .4byte gUnknown_083B6DB4
-_080991AC: .4byte 0x0000117c
-_080991B0:
- ldr r0, _080991D0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r5, _080991D4 @ =0x0000117a
- adds r3, r1, r5
- ldr r2, _080991D8 @ =0x0000117b
- adds r0, r1, r2
- ldrb r0, [r0]
- ldrb r5, [r3]
- adds r0, r5
- movs r2, 0
- strb r0, [r3]
- ldr r0, _080991DC @ =0x0000117c
- adds r1, r0
- strb r2, [r1]
- b _080991F8
- .align 2, 0
-_080991D0: .4byte gUnknown_083B6DB4
-_080991D4: .4byte 0x0000117a
-_080991D8: .4byte 0x0000117b
-_080991DC: .4byte 0x0000117c
-_080991E0:
- ldr r1, _080991F4 @ =0x00001178
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080991F8
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080991F0:
- movs r0, 0
- b _080991FA
- .align 2, 0
-_080991F4: .4byte 0x00001178
-_080991F8:
- movs r0, 0x1
-_080991FA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80990AC
-
- thumb_func_start sub_8099200
-sub_8099200: @ 8099200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080992A0 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x68
- movs r3, 0x40
- bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _080992A8 @ =0x00001038
- adds r1, r2
- str r0, [r1]
- movs r7, 0x1
- movs r6, 0x1
-_08099246:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080992A0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080992AC
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- subs r0, r6, 0x1
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 19
- movs r0, 0x80
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x98
- bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- lsls r2, r6, 2
- ldr r3, _080992A8 @ =0x00001038
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _080992BA
- .align 2, 0
-_080992A0: .4byte gPlayerParty
-_080992A4: .4byte gUnknown_083B6DB4
-_080992A8: .4byte 0x00001038
-_080992AC:
- ldr r0, _08099308 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0809930C @ =0x00001038
- adds r0, r2
- adds r0, r1
- str r5, [r0]
-_080992BA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _08099246
- mov r3, r8
- cmp r3, 0
- bne _080992FA
- movs r6, 0
- cmp r6, r7
- bcs _080992FA
- ldr r0, _08099308 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809930C @ =0x00001038
- adds r3, r0, r1
- movs r4, 0x4
-_080992DA:
- lsls r1, r6, 2
- adds r1, r3, r1
- ldr r2, [r1]
- ldrh r0, [r2, 0x22]
- subs r0, 0xA0
- strh r0, [r2, 0x22]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080992DA
-_080992FA:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099308: .4byte gUnknown_083B6DB4
-_0809930C: .4byte 0x00001038
- thumb_func_end sub_8099200
-
- thumb_func_start sub_8099310
-sub_8099310: @ 8099310
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08099368 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809936C @ =0x00001171
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- movs r6, 0
- mov r8, r2
- ldr r7, _0809936C @ =0x00001171
- add r7, r8
-_0809932C:
- lsls r1, r5, 2
- ldr r0, _08099370 @ =0x00001038
- add r0, r8
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099354
- cmp r5, r6
- beq _0809934E
- adds r1, r6, 0
- bl sub_8099388
- movs r0, 0
- str r0, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_0809934E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08099354:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809932C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099368: .4byte gUnknown_083B6DB4
-_0809936C: .4byte 0x00001171
-_08099370: .4byte 0x00001038
- thumb_func_end sub_8099310
-
- thumb_func_start sub_8099374
-sub_8099374: @ 8099374
- ldr r0, _08099380 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099384 @ =0x00001171
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08099380: .4byte gUnknown_083B6DB4
-_08099384: .4byte 0x00001171
- thumb_func_end sub_8099374
-
- thumb_func_start sub_8099388
-sub_8099388: @ 8099388
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- strh r1, [r2, 0x30]
- cmp r1, 0
- bne _0809939C
- movs r3, 0x68
- movs r4, 0x40
- b _080993AE
-_0809939C:
- movs r3, 0x98
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 19
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
-_080993AE:
- ldrh r0, [r2, 0x20]
- lsls r0, 3
- strh r0, [r2, 0x32]
- ldrh r0, [r2, 0x22]
- lsls r0, 3
- strh r0, [r2, 0x34]
- lsls r1, r3, 3
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- subs r0, r1, r0
- cmp r0, 0
- bge _080993C8
- adds r0, 0x7
-_080993C8:
- asrs r0, 3
- strh r0, [r2, 0x36]
- lsls r0, r4, 16
- asrs r0, 13
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- subs r0, r1
- cmp r0, 0
- bge _080993DC
- adds r0, 0x7
-_080993DC:
- asrs r0, 3
- strh r0, [r2, 0x38]
- movs r0, 0x8
- strh r0, [r2, 0x3A]
- ldr r0, _080993F0 @ =sub_80993F4
- str r0, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080993F0: .4byte sub_80993F4
- thumb_func_end sub_8099388
-
- thumb_func_start sub_80993F4
-sub_80993F4: @ 80993F4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08099424
- ldrh r0, [r3, 0x36]
- ldrh r4, [r3, 0x32]
- adds r0, r4
- strh r0, [r3, 0x32]
- ldrh r1, [r3, 0x38]
- ldrh r4, [r3, 0x34]
- adds r1, r4
- strh r1, [r3, 0x34]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r3, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r3, 0x22]
- subs r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _08099468
-_08099424:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08099434
- movs r0, 0x68
- strh r0, [r3, 0x20]
- movs r0, 0x40
- b _08099446
-_08099434:
- movs r0, 0x98
- strh r0, [r3, 0x20]
- movs r4, 0x30
- ldrsh r1, [r3, r4]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x10
-_08099446:
- strh r0, [r3, 0x22]
- ldr r0, _08099470 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
- ldr r0, _08099474 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 2
- ldr r4, _08099478 @ =0x00001038
- adds r0, r2, r4
- adds r0, r1
- str r3, [r0]
- ldr r0, _0809947C @ =0x00001171
- adds r2, r0
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
-_08099468:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099470: .4byte SpriteCallbackDummy
-_08099474: .4byte gUnknown_083B6DB4
-_08099478: .4byte 0x00001038
-_0809947C: .4byte 0x00001171
- thumb_func_end sub_80993F4
-
- thumb_func_start sub_8099480
-sub_8099480: @ 8099480
- push {r4,lr}
- ldr r0, _080994A0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _080994A4 @ =0x00001034
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099498
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08099498:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080994A0: .4byte gUnknown_083B6DB4
-_080994A4: .4byte 0x00001034
- thumb_func_end sub_8099480
-
- thumb_func_start sub_80994A8
-sub_80994A8: @ 80994A8
- push {r4-r6,lr}
- movs r3, 0
- ldr r1, _080994FC @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _08099500 @ =0x00001038
- adds r5, r1, r2
- lsls r0, 16
- asrs r4, r0, 16
- movs r6, 0x5
- negs r6, r6
-_080994BC:
- lsls r0, r3, 2
- adds r2, r5, r0
- ldr r1, [r2]
- cmp r1, 0
- beq _0809950E
- ldrh r0, [r1, 0x22]
- adds r0, r4, r0
- strh r0, [r1, 0x22]
- ldr r2, [r2]
- ldrh r1, [r2, 0x26]
- ldrh r0, [r2, 0x22]
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0xC0
- bls _08099504
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809950E
- .align 2, 0
-_080994FC: .4byte gUnknown_083B6DB4
-_08099500: .4byte 0x00001038
-_08099504:
- adds r2, 0x3E
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r2]
-_0809950E:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080994BC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80994A8
-
- thumb_func_start sub_8099520
-sub_8099520: @ 8099520
- push {r4,lr}
- lsls r0, 24
- ldr r1, _08099544 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- lsrs r0, 22
- ldr r2, _08099548 @ =0x00001038
- adds r1, r2
- adds r4, r1, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809953E
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809953E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099544: .4byte gUnknown_083B6DB4
-_08099548: .4byte 0x00001038
- thumb_func_end sub_8099520
-
- thumb_func_start sub_809954C
-sub_809954C: @ 809954C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _0809957C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099580 @ =0x00001038
- adds r6, r0, r1
-_08099558:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809956A
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809956A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08099558
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809957C: .4byte gUnknown_083B6DB4
-_08099580: .4byte 0x00001038
- thumb_func_end sub_809954C
-
- thumb_func_start sub_8099584
-sub_8099584: @ 8099584
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- cmp r4, 0
- bne _080995B4
- ldr r3, _080995AC @ =gUnknown_083B6DB4
- ldr r0, [r3]
- ldr r5, _080995B0 @ =0x00001034
- adds r2, r0, r5
- lsls r1, 2
- adds r5, 0x4
- adds r0, r5
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r4, [r0]
- b _080995D0
- .align 2, 0
-_080995AC: .4byte gUnknown_083B6DB4
-_080995B0: .4byte 0x00001034
-_080995B4:
- cmp r4, 0x1
- bne _080995F4
- ldr r3, _080995FC @ =gUnknown_083B6DB4
- ldr r0, [r3]
- ldr r1, _08099600 @ =0x00001034
- adds r2, r0, r1
- lsls r1, r5, 2
- ldr r4, _08099604 @ =0x00001050
- adds r0, r4
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- movs r1, 0
- str r1, [r0]
-_080995D0:
- ldr r2, [r3]
- ldr r5, _08099600 @ =0x00001034
- adds r2, r5
- ldr r1, [r2]
- ldr r0, _08099608 @ =sub_80999C4
- str r0, [r1, 0x1C]
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080995F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080995FC: .4byte gUnknown_083B6DB4
-_08099600: .4byte 0x00001034
-_08099604: .4byte 0x00001050
-_08099608: .4byte sub_80999C4
- thumb_func_end sub_8099584
-
- thumb_func_start sub_809960C
-sub_809960C: @ 809960C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r0, 0xE
- bne _08099654
- ldr r4, _08099648 @ =gUnknown_083B6DB4
- ldr r0, [r4]
- lsls r1, r6, 2
- ldr r2, _0809964C @ =0x00001038
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _08099650 @ =0x00001034
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0xB
- strb r1, [r0]
- b _0809968A
- .align 2, 0
-_08099648: .4byte gUnknown_083B6DB4
-_0809964C: .4byte 0x00001038
-_08099650: .4byte 0x00001034
-_08099654:
- ldr r5, _080996A0 @ =gUnknown_083B6DB4
- ldr r0, [r5]
- lsls r1, r6, 2
- ldr r2, _080996A4 @ =0x00001050
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _080996A8 @ =0x00001034
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r4, [r3]
- adds r0, r6, 0
- movs r1, 0x6
- bl __umodsi3
- movs r1, 0x12
- subs r1, r0
- adds r4, 0x43
- strb r1, [r4]
- adds r4, r5, 0
-_0809968A:
- ldr r1, [r4]
- ldr r2, _080996A8 @ =0x00001034
- adds r1, r2
- ldr r2, [r1]
- ldr r0, _080996AC @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- movs r0, 0
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080996A0: .4byte gUnknown_083B6DB4
-_080996A4: .4byte 0x00001050
-_080996A8: .4byte 0x00001034
-_080996AC: .4byte SpriteCallbackDummy
- thumb_func_end sub_809960C
-
- thumb_func_start sub_80996B0
-sub_80996B0: @ 80996B0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0xE
- bne _080996D8
- ldr r3, _080996CC @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _080996D0 @ =0x000010c8
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _080996D4 @ =0x00001038
- b _080996E4
- .align 2, 0
-_080996CC: .4byte gUnknown_083B6DB4
-_080996D0: .4byte 0x000010c8
-_080996D4: .4byte 0x00001038
-_080996D8:
- ldr r3, _08099704 @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099708 @ =0x000010c8
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _0809970C @ =0x00001050
-_080996E4:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- ldr r1, [r3]
- ldr r2, _08099710 @ =0x00001034
- adds r0, r1, r2
- ldr r2, [r0]
- ldr r0, _08099714 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- ldr r4, _08099718 @ =0x00001170
- adds r1, r4
- movs r0, 0
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099704: .4byte gUnknown_083B6DB4
-_08099708: .4byte 0x000010c8
-_0809970C: .4byte 0x00001050
-_08099710: .4byte 0x00001034
-_08099714: .4byte SpriteCallbackDummy
-_08099718: .4byte 0x00001170
- thumb_func_end sub_80996B0
-
- thumb_func_start sub_809971C
-sub_809971C: @ 809971C
- push {r4-r7,lr}
- ldr r0, _08099730 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _08099734 @ =0x00001170
- adds r7, r2, r0
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _08099738
- movs r0, 0
- b _08099800
- .align 2, 0
-_08099730: .4byte gUnknown_083B6DB4
-_08099734: .4byte 0x00001170
-_08099738:
- adds r0, 0x1
- strb r0, [r7]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809975E
- ldr r1, _08099808 @ =0x000010c8
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- subs r0, 0x1
- strh r0, [r1, 0x22]
- ldr r4, _0809980C @ =0x00001034
- adds r0, r2, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
-_0809975E:
- ldr r0, _08099808 @ =0x000010c8
- adds r5, r2, r0
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r3, _08099810 @ =gSineTable
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _08099778
- adds r0, 0xF
-_08099778:
- asrs r0, 4
- strh r0, [r1, 0x24]
- ldr r0, _0809980C @ =0x00001034
- adds r6, r2, r0
- ldr r1, [r6]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _08099792
- adds r0, 0xF
-_08099792:
- asrs r0, 4
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r7]
- cmp r0, 0x8
- bne _080997DE
- ldr r4, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldr r2, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r2, 0x43
- strb r0, [r2]
- ldr r0, [r5]
- ldr r2, [r0]
- ldrb r0, [r2, 0x5]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r2, 0x5]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080997DE:
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _080997FE
- ldr r1, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- str r0, [r6]
- ldr r0, [r5]
- str r1, [r0]
- ldr r1, [r6]
- ldr r0, _08099814 @ =sub_80999C4
- str r0, [r1, 0x1C]
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r0, _08099818 @ =SpriteCallbackDummy
- str r0, [r1, 0x1C]
-_080997FE:
- movs r0, 0x1
-_08099800:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08099808: .4byte 0x000010c8
-_0809980C: .4byte 0x00001034
-_08099810: .4byte gSineTable
-_08099814: .4byte sub_80999C4
-_08099818: .4byte SpriteCallbackDummy
- thumb_func_end sub_809971C
-
- thumb_func_start sub_809981C
-sub_809981C: @ 809981C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0x1
- beq _08099858
- cmp r0, 0x1
- bgt _08099836
- cmp r0, 0
- beq _0809983C
- b _080998C0
-_08099836:
- cmp r2, 0x2
- beq _0809987C
- b _080998C0
-_0809983C:
- ldr r3, _0809984C @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099850 @ =0x000010cc
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099854 @ =0x00001038
- b _08099864
- .align 2, 0
-_0809984C: .4byte gUnknown_083B6DB4
-_08099850: .4byte 0x000010cc
-_08099854: .4byte 0x00001038
-_08099858:
- ldr r3, _08099870 @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099874 @ =0x000010cc
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099878 @ =0x00001050
-_08099864:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0
- b _0809988A
- .align 2, 0
-_08099870: .4byte gUnknown_083B6DB4
-_08099874: .4byte 0x000010cc
-_08099878: .4byte 0x00001050
-_0809987C:
- ldr r0, _080998C8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _080998CC @ =0x000010cc
- adds r2, r1, r3
- ldr r4, _080998D0 @ =0x00001034
- adds r1, r4
- str r1, [r2]
-_0809988A:
- ldr r0, [r0]
- ldr r1, _080998CC @ =0x000010cc
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080998C0
- bl InitSpriteAffineAnim
- ldr r0, [r4]
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, [r4]
- ldr r1, [r0]
- ldr r0, _080998D4 @ =gUnknown_083B6F5C
- str r0, [r1, 0x10]
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAffineAnim
-_080998C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080998C8: .4byte gUnknown_083B6DB4
-_080998CC: .4byte 0x000010cc
-_080998D0: .4byte 0x00001034
-_080998D4: .4byte gUnknown_083B6F5C
- thumb_func_end sub_809981C
-
- thumb_func_start sub_80998D8
-sub_80998D8: @ 80998D8
- push {lr}
- ldr r0, _080998FC @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099900 @ =0x000010cc
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- cmp r1, 0
- beq _080998F8
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _08099904
-_080998F8:
- movs r0, 0
- b _0809991A
- .align 2, 0
-_080998FC: .4byte gUnknown_083B6DB4
-_08099900: .4byte 0x000010cc
-_08099904:
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08099918
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r3]
-_08099918:
- movs r0, 0x1
-_0809991A:
- pop {r1}
- bx r1
- thumb_func_end sub_80998D8
-
- thumb_func_start sub_8099920
-sub_8099920: @ 8099920
- push {r4,lr}
- ldr r0, _08099950 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099954 @ =0x000010cc
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0809994A
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- ldr r0, [r0]
- bl sub_8099BE0
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_0809994A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099950: .4byte gUnknown_083B6DB4
-_08099954: .4byte 0x000010cc
- thumb_func_end sub_8099920
-
- thumb_func_start sub_8099958
-sub_8099958: @ 8099958
- push {lr}
- ldr r0, _08099988 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809998C @ =0x000010cc
- adds r3, r0, r1
- ldr r0, [r3]
- ldr r0, [r0]
- cmp r0, 0
- beq _08099982
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08099982:
- pop {r0}
- bx r0
- .align 2, 0
-_08099988: .4byte gUnknown_083B6DB4
-_0809998C: .4byte 0x000010cc
- thumb_func_end sub_8099958
-
- thumb_func_start sub_8099990
-sub_8099990: @ 8099990
- push {lr}
- ldr r0, _080999A4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _080999A8 @ =0x000010cc
- adds r2, r0, r1
- ldr r0, [r2]
- cmp r0, 0
- bne _080999AC
- movs r0, 0
- b _080999C0
- .align 2, 0
-_080999A4: .4byte gUnknown_083B6DB4
-_080999A8: .4byte 0x000010cc
-_080999AC:
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080999BE
- movs r0, 0
- str r0, [r2]
-_080999BE:
- movs r0, 0x1
-_080999C0:
- pop {r1}
- bx r1
- thumb_func_end sub_8099990
-
- thumb_func_start sub_80999C4
-sub_80999C4: @ 80999C4
- ldr r1, _080999E4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- movs r2, 0x8E
- lsls r2, 5
- adds r1, r2
- ldr r2, [r1]
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0x20]
- ldr r2, [r1]
- ldrh r1, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r1, r2
- adds r1, 0x4
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080999E4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_80999C4
-
- thumb_func_start sub_80999E8
-sub_80999E8: @ 80999E8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _08099A58 @ =gUnknown_083B6DB4
- ldr r0, [r1]
- movs r2, 0x89
- lsls r2, 5
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, r3
- beq _08099A20
- adds r6, r2, 0
- movs r5, 0x89
- lsls r5, 5
-_08099A08:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A20
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08099A08
-_08099A20:
- cmp r4, 0x28
- bne _08099A60
- movs r4, 0
- ldr r0, [r2]
- movs r5, 0x89
- lsls r5, 5
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08099A4E
- adds r6, r2, 0
-_08099A36:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A4E
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08099A36
-_08099A4E:
- cmp r4, 0x28
- bne _08099A60
- ldr r0, _08099A5C @ =0x0000ffff
- b _08099A94
- .align 2, 0
-_08099A58: .4byte gUnknown_083B6DB4
-_08099A5C: .4byte 0x0000ffff
-_08099A60:
- ldr r1, [r2]
- lsls r2, r4, 1
- movs r5, 0x89
- lsls r5, 5
- adds r0, r1, r5
- adds r0, r2
- strh r3, [r0]
- ldr r0, _08099A9C @ =0x000010d0
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r4, 20
- lsrs r4, 16
- ldr r1, _08099AA0 @ =gMonIconTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r1, r4, 5
- ldr r2, _08099AA4 @ =0x06010000
- adds r1, r2
- ldr r2, _08099AA8 @ =0x04000080
- bl CpuSet
- adds r0, r4, 0
-_08099A94:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08099A9C: .4byte 0x000010d0
-_08099AA0: .4byte gMonIconTable
-_08099AA4: .4byte 0x06010000
-_08099AA8: .4byte 0x04000080
- thumb_func_end sub_80999E8
-
- thumb_func_start sub_8099AAC
-sub_8099AAC: @ 8099AAC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0
- ldr r0, _08099AE4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r5, r0, r1
- subs r1, 0x50
- adds r4, r0, r1
- ldr r0, _08099AE8 @ =0x0000ffff
- adds r7, r0, 0
-_08099AC6:
- lsls r1, r3, 1
- adds r2, r5, r1
- ldrh r0, [r2]
- cmp r0, r6
- bne _08099AEC
- adds r1, r4, r1
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ands r0, r7
- cmp r0, 0
- bne _08099AF6
- strh r0, [r2]
- b _08099AF6
- .align 2, 0
-_08099AE4: .4byte gUnknown_083B6DB4
-_08099AE8: .4byte 0x0000ffff
-_08099AEC:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x27
- bls _08099AC6
-_08099AF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099AAC
-
- thumb_func_start sub_8099AFC
-sub_8099AFC: @ 8099AFC
- 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, 16
- lsrs r6, r0, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x18]
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r9, r5
- mov r2, sp
- ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- adds r0, r6, 0
- bl mon_icon_convert_unown_species_id
- mov r10, r0
- mov r6, r10
- mov r2, sp
- ldr r1, _08099BB0 @ =gMonIconPaletteIndices
- adds r1, r6, r1
- ldr r3, _08099BB4 @ =0x0000dac0
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2, 0x2]
- adds r0, r6, 0
- bl sub_80999E8
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- ldr r0, _08099BB8 @ =0x0000ffff
- cmp r5, r0
- beq _08099BCE
- ldr r7, [sp, 0x18]
- lsls r1, r7, 16
- asrs r1, 16
- mov r0, r8
- lsls r2, r0, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08099BC8
- ldr r1, _08099BBC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldr r2, _08099BC0 @ =0x000003ff
- ands r2, r5
- ldrh r3, [r0, 0x4]
- ldr r1, _08099BC4 @ =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- movs r1, 0x3
- ands r4, r1
- lsls r3, r4, 2
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r3
- strb r1, [r0, 0x5]
- mov r1, r10
- strh r1, [r0, 0x2E]
- b _08099BD0
- .align 2, 0
-_08099BAC: .4byte gSpriteTemplate_83B6F14
-_08099BB0: .4byte gMonIconPaletteIndices
-_08099BB4: .4byte 0x0000dac0
-_08099BB8: .4byte 0x0000ffff
-_08099BBC: .4byte gSprites
-_08099BC0: .4byte 0x000003ff
-_08099BC4: .4byte 0xfffffc00
-_08099BC8:
- adds r0, r6, 0
- bl sub_8099AAC
-_08099BCE:
- movs r0, 0
-_08099BD0:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8099AFC
-
- thumb_func_start sub_8099BE0
-sub_8099BE0: @ 8099BE0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- bl sub_8099AAC
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8099BE0
-
- thumb_func_start sub_8099BF8
-sub_8099BF8: @ 8099BF8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08099C50 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099C54 @ =0x000008ba
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r2, _08099C58 @ =0x000008b4
- adds r0, r2
- strh r1, [r0]
- str r1, [sp]
- ldr r1, _08099C5C @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- ldr r0, _08099C60 @ =0x0600d000
- str r0, [r1, 0x4]
- ldr r0, _08099C64 @ =0x85000400
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8099EB0
- adds r0, r4, 0
- bl sub_809A23C
- bl sub_809A6DC
- adds r0, r4, 0
- bl sub_8098C48
- ldr r1, _08099C68 @ =REG_BG2CNT
- ldr r2, _08099C6C @ =0x00005a0a
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099C50: .4byte gUnknown_083B6DB4
-_08099C54: .4byte 0x000008ba
-_08099C58: .4byte 0x000008b4
-_08099C5C: .4byte 0x040000d4
-_08099C60: .4byte 0x0600d000
-_08099C64: .4byte 0x85000400
-_08099C68: .4byte REG_BG2CNT
-_08099C6C: .4byte 0x00005a0a
- thumb_func_end sub_8099BF8
-
- thumb_func_start sub_8099C70
-sub_8099C70: @ 8099C70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- bl sub_8099D90
- lsls r0, 24
- asrs r4, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8099EB0
- ldr r0, _08099D10 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 1
- ldr r3, _08099D14 @ =0x000008b6
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _08099D18 @ =0x000008b8
- adds r1, r2, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, _08099D1C @ =0x000008bb
- adds r0, r2, r1
- strb r5, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CAE
- movs r1, 0x5
-_08099CAE:
- ldr r3, _08099D20 @ =0x000008bc
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D24 @ =0x000008be
- adds r0, r2, r1
- strh r4, [r0]
- movs r1, 0x38
- cmp r4, 0
- ble _08099CC6
- movs r3, 0x84
- lsls r3, 1
- adds r1, r3, 0
-_08099CC6:
- movs r3, 0x8C
- lsls r3, 4
- adds r0, r2, r3
- strh r1, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CD6
- movs r1, 0x5
-_08099CD6:
- ldr r3, _08099D28 @ =0x000008c2
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D2C @ =0x000008c4
- adds r0, r2, r1
- strh r4, [r0]
- adds r3, 0x4
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08099D30 @ =0x000008c8
- adds r1, r2, r0
- movs r0, 0x2
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809900C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809A3D0
- adds r0, r4, 0
- bl sub_809A774
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099D10: .4byte gUnknown_083B6DB4
-_08099D14: .4byte 0x000008b6
-_08099D18: .4byte 0x000008b8
-_08099D1C: .4byte 0x000008bb
-_08099D20: .4byte 0x000008bc
-_08099D24: .4byte 0x000008be
-_08099D28: .4byte 0x000008c2
-_08099D2C: .4byte 0x000008c4
-_08099D30: .4byte 0x000008c8
- thumb_func_end sub_8099C70
-
- thumb_func_start sub_8099D34
-sub_8099D34: @ 8099D34
- push {r4,lr}
- bl sub_80990AC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08099D78 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _08099D7C @ =0x000008b8
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _08099D88
- ldr r4, _08099D80 @ =0x000008b4
- adds r2, r1, r4
- adds r4, 0x2
- adds r0, r1, r4
- ldrh r0, [r0]
- ldrh r1, [r2]
- adds r0, r1
- ldr r1, _08099D84 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _08099D74
- bl sub_809A598
- bl sub_809A810
-_08099D74:
- movs r0, 0x1
- b _08099D8A
- .align 2, 0
-_08099D78: .4byte gUnknown_083B6DB4
-_08099D7C: .4byte 0x000008b8
-_08099D80: .4byte 0x000008b4
-_08099D84: .4byte 0x000001ff
-_08099D88:
- adds r0, r2, 0
-_08099D8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D34
-
- thumb_func_start sub_8099D90
-sub_8099D90: @ 8099D90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0
- cmp r1, r4
- beq _08099DBA
-_08099DA4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xD
- bls _08099DB0
- movs r1, 0
-_08099DB0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r1, r4
- bne _08099DA4
-_08099DBA:
- movs r0, 0x1
- negs r0, r0
- cmp r2, 0x6
- bhi _08099DC4
- movs r0, 0x1
-_08099DC4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D90
-
- thumb_func_start sub_8099DCC
-sub_8099DCC: @ 8099DCC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08099DF8 @ =gPokemonStorage
- ldr r2, _08099DFC @ =0x000083c2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- strb r4, [r0]
- ldr r0, _08099E00 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _08099E04 @ =0x00001032
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099DF8: .4byte gPokemonStorage
-_08099DFC: .4byte 0x000083c2
-_08099E00: .4byte gUnknown_083B6DB4
-_08099E04: .4byte 0x00001032
- thumb_func_end sub_8099DCC
-
- thumb_func_start sub_8099E08
-sub_8099E08: @ 8099E08
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08099E24 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _08099E28 @ =0x00001032
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08099E54
- cmp r0, 0x1
- bgt _08099E2C
- cmp r0, 0
- beq _08099E36
- b _08099EA6
- .align 2, 0
-_08099E24: .4byte gUnknown_083B6DB4
-_08099E28: .4byte 0x00001032
-_08099E2C:
- cmp r0, 0x2
- beq _08099E90
- cmp r0, 0x3
- beq _08099EA2
- b _08099EA6
-_08099E36:
- ldr r1, _08099E4C @ =0x00000d08
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E50 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E4C: .4byte 0x00000d08
-_08099E50: .4byte 0x0000ffff
-_08099E54:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8099EB0
- bl sub_809A654
- ldr r1, _08099E88 @ =0x00000d08
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E8C @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E88: .4byte 0x00000d08
-_08099E8C: .4byte 0x0000ffff
-_08099E90:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
-_08099E9A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08099EA6
-_08099EA2:
- movs r0, 0
- b _08099EA8
-_08099EA6:
- movs r0, 0x1
-_08099EA8:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8099E08
-
- thumb_func_start sub_8099EB0
-sub_8099EB0: @ 8099EB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r1, 0
- beq _08099ED8
- ldr r0, _08099F38 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r2, 0
- ldr r3, _08099F3C @ =0x000008ba
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _08099ED0
- movs r2, 0x1
-_08099ED0:
- strb r2, [r1]
- ldr r0, _08099F40 @ =0x0600d000
- bl sub_809A14C
-_08099ED8:
- ldr r0, _08099F44 @ =gPokemonStorage
- ldr r1, _08099F48 @ =0x000083c2
- adds r0, r1
- adds r0, r4, r0
- ldrb r4, [r0]
- lsls r4, 4
- ldr r0, _08099F4C @ =gWallpaperTable
- adds r4, r0
- ldr r0, [r4, 0xC]
- ldr r1, _08099F38 @ =gUnknown_083B6DB4
- ldr r5, [r1]
- ldr r2, _08099F3C @ =0x000008ba
- adds r6, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 20
- movs r3, 0x80
- lsls r3, 15
- adds r1, r3
- lsrs r1, 16
- movs r2, 0x60
- bl LoadPalette
- ldr r0, [r4, 0x8]
- ldr r1, _08099F50 @ =0x00000d62
- adds r5, r1
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08099F40 @ =0x0600d000
- lsls r2, r7, 24
- asrs r2, 24
- ldrb r3, [r6]
- adds r1, r5, 0
- bl sub_8099F58
- ldr r0, [r4]
- ldrb r1, [r6]
- lsls r1, 13
- ldr r2, _08099F54 @ =0x06008000
- adds r1, r2
- bl LZ77UnCompVram
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099F38: .4byte gUnknown_083B6DB4
-_08099F3C: .4byte 0x000008ba
-_08099F40: .4byte 0x0600d000
-_08099F44: .4byte gPokemonStorage
-_08099F48: .4byte 0x000083c2
-_08099F4C: .4byte gWallpaperTable
-_08099F50: .4byte 0x00000d62
-_08099F54: .4byte 0x06008000
- thumb_func_end sub_8099EB0
-
- thumb_func_start sub_8099F58
-sub_8099F58: @ 8099F58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r9, r0
- adds r5, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r3, 8
- str r0, [sp]
- lsls r0, r3, 1
- adds r0, r3
- adds r0, 0x4
- lsls r0, 28
- lsrs r0, 16
- str r0, [sp, 0x4]
- ldr r0, _08099FB8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099FBC @ =0x000008b4
- adds r0, r1
- ldrh r1, [r0]
- lsrs r1, 3
- adds r1, 0xA
- lsrs r0, r2, 24
- mov r8, r0
- asrs r2, 24
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- movs r0, 0x3F
- ands r1, r0
- str r1, [sp, 0x8]
- adds r2, r1, 0
- cmp r2, 0xC
- bgt _08099FC0
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- adds r0, 0x80
- mov r1, r9
- adds r4, r1, r0
- movs r7, 0
- b _0809A020
- .align 2, 0
-_08099FB8: .4byte gUnknown_083B6DB4
-_08099FBC: .4byte 0x000008b4
-_08099FC0:
- cmp r2, 0x1F
- bgt _08099FE6
- movs r0, 0x20
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- adds r0, 0x80
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0x88
- lsls r7, 4
- add r7, r9
- b _0809A020
-_08099FE6:
- cmp r2, 0x2C
- bgt _08099FFE
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0
- b _0809A020
-_08099FFE:
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- mov r7, r9
- adds r7, 0x80
-_0809A020:
- movs r1, 0
- mov r0, r8
- lsls r0, 24
- str r0, [sp, 0x14]
- lsls r0, r6, 16
- asrs r0, 16
- mov r8, r0
- lsls r3, 16
- str r3, [sp, 0xC]
- asrs r2, r3, 16
- str r2, [sp, 0x10]
-_0809A036:
- movs r3, 0
- adds r0, r4, 0
- adds r0, 0x40
- str r0, [sp, 0x18]
- adds r2, r7, 0
- adds r2, 0x40
- str r2, [sp, 0x1C]
- adds r1, 0x1
- mov r10, r1
- cmp r3, r8
- bge _0809A07A
- ldr r0, _0809A0D4 @ =0x00000fff
- mov r12, r0
- movs r6, 0xF0
- lsls r6, 8
-_0809A054:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r4
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r8
- blt _0809A054
-_0809A07A:
- movs r3, 0
- ldr r0, [sp, 0x10]
- cmp r3, r0
- bge _0809A0B4
- ldr r1, _0809A0D4 @ =0x00000fff
- mov r12, r1
- movs r6, 0xF0
- lsls r6, 8
- ldr r2, [sp, 0xC]
- asrs r4, r2, 16
-_0809A08E:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r7
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _0809A08E
-_0809A0B4:
- ldr r4, [sp, 0x18]
- ldr r7, [sp, 0x1C]
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A036
- ldr r0, [sp, 0x14]
- asrs r2, r0, 24
- cmp r2, 0
- beq _0809A13A
- cmp r2, 0
- ble _0809A0D8
- ldr r1, [sp, 0x8]
- adds r1, 0x14
- b _0809A0DC
- .align 2, 0
-_0809A0D4: .4byte 0x00000fff
-_0809A0D8:
- ldr r1, [sp, 0x8]
- subs r1, 0x4
-_0809A0DC:
- movs r0, 0x3F
- ands r1, r0
- adds r4, r1, 0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A0EE
- lsls r0, 1
- adds r0, 0x80
- b _0809A0F6
-_0809A0EE:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A0F6:
- mov r1, r9
- adds r2, r1, r0
- movs r3, 0
- movs r6, 0
-_0809A0FE:
- movs r1, 0
- adds r5, r3, 0x1
- lsls r3, r4, 16
-_0809A104:
- strh r6, [r2]
- adds r2, 0x40
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A104
- asrs r0, r3, 16
- adds r4, r0, 0x1
- movs r0, 0x3F
- ands r4, r0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A126
- lsls r0, 1
- adds r0, 0x80
- b _0809A12E
-_0809A126:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A12E:
- mov r1, r9
- adds r2, r1, r0
- lsls r0, r5, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0809A0FE
-_0809A13A:
- 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_8099F58
-
- thumb_func_start sub_809A14C
-sub_809A14C: @ 809A14C
- push {r4-r6,lr}
- adds r2, r0, 0
- ldr r0, _0809A174 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A178 @ =0x000008b4
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 3
- adds r3, r0, 0
- adds r3, 0x1E
- movs r0, 0x3F
- ands r3, r0
- adds r0, r3, 0
- cmp r0, 0x1F
- bgt _0809A17C
- lsls r0, 1
- movs r6, 0x98
- lsls r6, 3
- adds r0, r6
- b _0809A184
- .align 2, 0
-_0809A174: .4byte gUnknown_083B6DB4
-_0809A178: .4byte 0x000008b4
-_0809A17C:
- lsls r0, 1
- movs r1, 0xC8
- lsls r1, 4
- adds r0, r1
-_0809A184:
- adds r2, r0
- movs r0, 0
- movs r5, 0
- movs r4, 0x3F
-_0809A18C:
- strh r5, [r2]
- adds r2, 0x2
- adds r3, 0x1
- ands r3, r4
- adds r1, r3, 0
- cmp r1, 0
- bne _0809A19E
- ldr r6, _0809A1B8 @ =0xfffff7c0
- adds r2, r6
-_0809A19E:
- cmp r1, 0x20
- bne _0809A1A8
- movs r1, 0xF8
- lsls r1, 3
- adds r2, r1
-_0809A1A8:
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2B
- bls _0809A18C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A1B8: .4byte 0xfffff7c0
- thumb_func_end sub_809A14C
-
- thumb_func_start sub_809A1BC
-sub_809A1BC: @ 809A1BC
- push {r4-r6,lr}
- sub sp, 0x8
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _0809A228 @ =gUnknown_083B6DB8
- ldr r5, [r0]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r4, _0809A22C @ =0x040000d4
- str r1, [r4]
- str r5, [r4, 0x4]
- movs r6, 0x80
- lsls r6, 1
- ldr r0, _0809A230 @ =0x81000100
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809A234 @ =gWindowConfig_81E6D38
- adds r1, r5, 0
- str r3, [sp, 0x4]
- bl sub_8004E3C
- str r5, [r4]
- ldr r3, [sp, 0x4]
- str r3, [r4, 0x4]
- ldr r1, _0809A238 @ =0x80000040
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, r6
- str r0, [r4]
- adds r0, r3, 0
- adds r0, 0x80
- str r0, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, 0
- adds r0, 0x80
- str r0, [r4]
- adds r6, r3, r6
- str r6, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- adds r5, r0
- str r5, [r4]
- adds r3, r0
- str r3, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A228: .4byte gUnknown_083B6DB8
-_0809A22C: .4byte 0x040000d4
-_0809A230: .4byte 0x81000100
-_0809A234: .4byte gWindowConfig_81E6D38
-_0809A238: .4byte 0x80000040
- thumb_func_end sub_809A1BC
-
- thumb_func_start sub_809A23C
-sub_809A23C: @ 809A23C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r1, _0809A388 @ =0x000008ca
- adds r7, r5, r1
- str r7, [sp, 0x18]
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0x20]
- ldr r0, _0809A38C @ =0x00030200
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r3, _0809A390 @ =0x00000ccc
- adds r0, r5, r3
- str r0, [sp]
- ldr r4, _0809A394 @ =0x0000dac8
- strh r4, [r1, 0x4]
- str r0, [sp, 0x8]
- ldr r6, _0809A398 @ =0xffffdac9
- strh r6, [r1, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- ldr r0, _0809A39C @ =gPokemonStorage
- mov r9, r0
- ldr r0, _0809A3A0 @ =0x000083c2
- add r0, r9
- add r0, r8
- ldrb r1, [r0]
- ldr r2, _0809A3A4 @ =gUnknown_083BB0A8
- lsls r1, 2
- adds r0, r1, r2
- ldrh r3, [r0]
- ldr r6, _0809A3A8 @ =0x00000ce8
- adds r0, r5, r6
- strh r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _0809A3AC @ =0x00000cea
- adds r0, r5, r2
- strh r1, [r0]
- mov r0, sp
- bl LoadSpritePalettes
- ldr r3, _0809A3B0 @ =0x00000d08
- adds r6, r5, r3
- movs r0, 0xFC
- lsls r0, 2
- str r0, [r6]
- adds r0, r4, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- movs r2, 0x87
- lsls r2, 1
- mov r10, r2
- add r1, r10
- ldr r3, _0809A3B4 @ =0x00000cec
- adds r2, r5, r3
- strh r1, [r2]
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- ldr r0, [r6]
- orrs r0, r1
- str r0, [r6]
- ldr r0, _0809A3B8 @ =0x0000dac9
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- add r1, r10
- ldr r2, _0809A3BC @ =0x00000cee
- adds r5, r2
- strh r1, [r5]
- lsls r4, r0
- ldr r0, [r6]
- orrs r0, r4
- str r0, [r6]
- mov r3, r8
- lsls r4, r3, 3
- add r4, r8
- ldr r6, _0809A3C0 @ =0x00008344
- add r9, r6
- add r4, r9
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_809A1BC
- ldr r0, [sp, 0x20]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- movs r4, 0
- lsls r0, 16
- asrs r6, r0, 16
-_0809A328:
- lsls r1, r4, 5
- adds r1, r6, r1
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- lsls r0, r4, 2
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r5, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A3C8 @ =gSprites
- adds r0, r1
- str r0, [r2]
- lsls r1, r4, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _0809A328
- ldr r6, _0809A3CC @ =0x00000cca
- adds r1, r5, r6
- movs r0, 0
- strb r0, [r1]
- 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
-_0809A384: .4byte gUnknown_083B6DB4
-_0809A388: .4byte 0x000008ca
-_0809A38C: .4byte 0x00030200
-_0809A390: .4byte 0x00000ccc
-_0809A394: .4byte 0x0000dac8
-_0809A398: .4byte 0xffffdac9
-_0809A39C: .4byte gPokemonStorage
-_0809A3A0: .4byte 0x000083c2
-_0809A3A4: .4byte gUnknown_083BB0A8
-_0809A3A8: .4byte 0x00000ce8
-_0809A3AC: .4byte 0x00000cea
-_0809A3B0: .4byte 0x00000d08
-_0809A3B4: .4byte 0x00000cec
-_0809A3B8: .4byte 0x0000dac9
-_0809A3BC: .4byte 0x00000cee
-_0809A3C0: .4byte 0x00008344
-_0809A3C4: .4byte gSpriteTemplate_83BB2B8
-_0809A3C8: .4byte gSprites
-_0809A3CC: .4byte 0x00000cca
- thumb_func_end sub_809A23C
-
- thumb_func_start sub_809A3D0
-sub_809A3D0: @ 809A3D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r3, _0809A43C @ =gUnknown_083B6DB4
- ldr r5, [r3]
- ldr r1, _0809A440 @ =0x000008ca
- adds r0, r5, r1
- str r0, [sp, 0x18]
- add r2, sp, 0x18
- ldr r4, _0809A444 @ =0x0000ffff
- mov r9, r4
- movs r6, 0xC0
- lsls r6, 10
- mov r8, r6
- ldr r0, _0809A448 @ =0x00030200
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- movs r1, 0
- ldr r7, _0809A450 @ =0x00000cca
- adds r4, r5, r7
- ldrb r0, [r4]
- adds r6, r2, 0
- cmp r0, 0
- bne _0809A41E
- movs r1, 0x1
-_0809A41E:
- strb r1, [r4]
- cmp r1, 0
- bne _0809A458
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- mov r4, r8
- orrs r0, r4
- str r0, [r6, 0x4]
- ldr r7, _0809A454 @ =0x00000cec
- adds r0, r5, r7
- ldrh r0, [r0]
- mov r8, r0
- b _0809A478
- .align 2, 0
-_0809A43C: .4byte gUnknown_083B6DB4
-_0809A440: .4byte 0x000008ca
-_0809A444: .4byte 0x0000ffff
-_0809A448: .4byte 0x00030200
-_0809A44C: .4byte gSpriteTemplate_83BB2B8
-_0809A450: .4byte 0x00000cca
-_0809A454: .4byte 0x00000cec
-_0809A458:
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- orrs r0, r1
- str r0, [r6, 0x4]
- ldr r4, _0809A570 @ =0x00000cec
- adds r0, r5, r4
- ldrh r0, [r0]
- mov r8, r0
- mov r1, sp
- movs r0, 0x4
- strh r0, [r1]
- ldr r0, _0809A574 @ =0x0000dac9
- strh r0, [r1, 0x2]
-_0809A478:
- ldr r0, [r3]
- ldr r7, _0809A578 @ =0x000008ca
- adds r0, r7
- ldr r1, [sp, 0x28]
- lsls r5, r1, 3
- adds r5, r1
- ldr r4, _0809A57C @ =gUnknown_020383E4
- adds r5, r4
- adds r1, r5, 0
- bl sub_809A1BC
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r4, 0x7E
- ldr r3, [sp, 0x28]
- adds r4, r3, r4
- ldrb r0, [r4]
- lsls r0, 2
- ldr r1, _0809A580 @ =gUnknown_083BB0A8
- adds r0, r1
- mov r1, r8
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- lsls r0, 16
- mov r4, r10
- lsls r2, r4, 24
- asrs r2, 24
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 6
- lsrs r6, r0, 16
- str r6, [sp, 0x20]
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x24]
- movs r7, 0
- negs r2, r2
- mov r9, r2
- movs r0, 0x1
- mov r10, r0
-_0809A4DE:
- lsls r1, r7, 5
- mov r8, r1
- ldr r3, [sp, 0x24]
- lsls r1, r3, 16
- asrs r1, 16
- add r1, r8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A584 @ =gUnknown_083B6DB4
- ldr r4, [r1]
- lsls r6, r7, 2
- ldr r1, _0809A588 @ =0x00000cf8
- adds r2, r4, r1
- adds r2, r6
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0809A58C @ =gSprites
- adds r1, r0
- str r1, [r2]
- mov r3, r9
- lsls r5, r3, 1
- add r5, r9
- lsls r5, 1
- strh r5, [r1, 0x2E]
- ldr r1, [r2]
- ldr r3, [sp, 0x20]
- lsls r0, r3, 16
- asrs r0, 16
- add r0, r8
- strh r0, [r1, 0x30]
- ldr r0, [r2]
- mov r1, r10
- strh r1, [r0, 0x32]
- ldr r0, [r2]
- ldr r1, _0809A590 @ =sub_809A5E8
- str r1, [r0, 0x1C]
- lsls r1, r7, 24
- lsrs r1, 24
- bl StartSpriteAnim
- movs r3, 0xCF
- lsls r3, 4
- adds r4, r3
- adds r4, r6
- ldr r0, [r4]
- strh r5, [r0, 0x2E]
- ldr r0, [r4]
- mov r6, r10
- strh r6, [r0, 0x30]
- ldr r1, [r4]
- ldr r0, _0809A594 @ =sub_809A61C
- str r0, [r1, 0x1C]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _0809A4DE
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A570: .4byte 0x00000cec
-_0809A574: .4byte 0x0000dac9
-_0809A578: .4byte 0x000008ca
-_0809A57C: .4byte gUnknown_020383E4
-_0809A580: .4byte gUnknown_083BB0A8
-_0809A584: .4byte gUnknown_083B6DB4
-_0809A588: .4byte 0x00000cf8
-_0809A58C: .4byte gSprites
-_0809A590: .4byte sub_809A5E8
-_0809A594: .4byte sub_809A61C
- thumb_func_end sub_809A3D0
-
- thumb_func_start sub_809A598
-sub_809A598: @ 809A598
- push {lr}
- ldr r0, _0809A5B0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A5B4 @ =0x00000cca
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A5B8
- movs r0, 0x4
- bl FreeSpriteTilesByTag
- b _0809A5BE
- .align 2, 0
-_0809A5B0: .4byte gUnknown_083B6DB4
-_0809A5B4: .4byte 0x00000cca
-_0809A5B8:
- movs r0, 0x3
- bl FreeSpriteTilesByTag
-_0809A5BE:
- ldr r0, _0809A5E0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r0, r3
- adds r3, 0x8
- adds r1, r0, r3
- ldr r1, [r1]
- str r1, [r2]
- ldr r2, _0809A5E4 @ =0x00000cf4
- adds r1, r0, r2
- adds r3, 0x4
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809A5E0: .4byte gUnknown_083B6DB4
-_0809A5E4: .4byte 0x00000cf4
- thumb_func_end sub_809A598
-
- thumb_func_start sub_809A5E8
-sub_809A5E8: @ 809A5E8
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x32]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A5FC
- subs r0, r1, 0x1
- strh r0, [r2, 0x32]
- b _0809A614
-_0809A5FC:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _0809A614
- ldr r0, _0809A618 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0809A614:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A618: .4byte SpriteCallbackDummy
- thumb_func_end sub_809A5E8
-
- thumb_func_start sub_809A61C
-sub_809A61C: @ 809A61C
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A630
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- b _0809A64E
-_0809A630:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x32]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC0
- bls _0809A64E
- adds r0, r2, 0
- bl DestroySprite
-_0809A64E:
- pop {r0}
- bx r0
- thumb_func_end sub_809A61C
-
- thumb_func_start sub_809A654
-sub_809A654: @ 809A654
- push {lr}
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A690 @ =gPokemonStorage
- ldr r2, _0809A694 @ =0x000083c2
- adds r1, r2
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0809A698 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809A69C @ =0x00000cca
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A6A8
- lsls r0, r1, 2
- ldr r1, _0809A6A0 @ =gUnknown_083BB0A8
- adds r0, r1
- adds r3, 0x22
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6A4 @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
- b _0809A6C0
- .align 2, 0
-_0809A690: .4byte gPokemonStorage
-_0809A694: .4byte 0x000083c2
-_0809A698: .4byte gUnknown_083B6DB4
-_0809A69C: .4byte 0x00000cca
-_0809A6A0: .4byte gUnknown_083BB0A8
-_0809A6A4: .4byte gPlttBufferUnfaded
-_0809A6A8:
- lsls r0, r1, 2
- ldr r1, _0809A6C4 @ =gUnknown_083BB0A8
- adds r0, r1
- ldr r3, _0809A6C8 @ =0x00000cee
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6CC @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
-_0809A6C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A6C4: .4byte gUnknown_083BB0A8
-_0809A6C8: .4byte 0x00000cee
-_0809A6CC: .4byte gPlttBufferUnfaded
- thumb_func_end sub_809A654
-
- thumb_func_start sub_809A6D0
-sub_809A6D0: @ 809A6D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- movs r0, 0xB0
- subs r0, r1
- bx lr
- thumb_func_end sub_809A6D0
-
- thumb_func_start sub_809A6DC
-sub_809A6DC: @ 809A6DC
- push {r4,r5,lr}
- ldr r0, _0809A760 @ =gUnknown_083BB288
- bl LoadSpriteSheet
- ldr r0, _0809A764 @ =gUnknown_083BB290
- bl LoadSpritePalette
- movs r5, 0
-_0809A6EC:
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0
- movs r2, 0x1C
- movs r3, 0x15
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0809A73E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A76C @ =gSprites
- adds r4, r0, r1
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x1
- cmp r5, 0
- bne _0809A72C
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809A72C:
- strh r0, [r4, 0x34]
- ldr r0, _0809A770 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r5, 2
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- str r4, [r0]
-_0809A73E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _0809A6EC
- bl sub_809BF2C
- lsls r0, 24
- cmp r0, 0
- beq _0809A758
- movs r0, 0x1
- bl sub_809A860
-_0809A758:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A760: .4byte gUnknown_083BB288
-_0809A764: .4byte gUnknown_083BB290
-_0809A768: .4byte gSpriteTemplate_83BB2F0
-_0809A76C: .4byte gSprites
-_0809A770: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A6DC
-
- thumb_func_start sub_809A774
-sub_809A774: @ 809A774
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- ldr r7, _0809A7C4 @ =gUnknown_083B6DB4
- ldr r0, [r7]
- movs r1, 0xD0
- lsls r1, 4
- adds r3, r0, r1
- movs r5, 0
- movs r4, 0x2
-_0809A78A:
- lsls r1, r2, 2
- adds r1, r3, r1
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r0, [r1]
- strh r4, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A78A
- lsls r0, r6, 24
- cmp r0, 0
- bge _0809A7CC
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, _0809A7C8 @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0x48
- b _0809A7E8
- .align 2, 0
-_0809A7C4: .4byte gUnknown_083B6DB4
-_0809A7C8: .4byte 0x00000d04
-_0809A7CC:
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0xF8
-_0809A7E8:
- strh r2, [r0, 0x32]
- ldr r0, [r1]
- strh r2, [r0, 0x32]
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r1, r2
- ldr r2, [r0]
- movs r0, 0
- strh r0, [r2, 0x3C]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A80C: .4byte 0x00000d04
- thumb_func_end sub_809A774
-
- thumb_func_start sub_809A810
-sub_809A810: @ 809A810
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _0809A85C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r5, 0
- movs r6, 0x5
- negs r6, r6
-_0809A824:
- lsls r1, r3, 2
- adds r1, r4, r1
- ldr r2, [r1]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 3
- adds r0, 0x5C
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _0809A824
- movs r0, 0x1
- bl sub_809A860
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A85C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A810
-
- thumb_func_start sub_809A860
-sub_809A860: @ 809A860
- push {r4,r5,lr}
- lsls r0, 24
- cmp r0, 0
- beq _0809A89C
- movs r2, 0
- ldr r0, _0809A898 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r3, 0
- movs r5, 0x1
-_0809A878:
- lsls r1, r2, 2
- adds r1, r4, r1
- ldr r0, [r1]
- strh r5, [r0, 0x2E]
- ldr r0, [r1]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x32]
- ldr r0, [r1]
- strh r3, [r0, 0x36]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A878
- b _0809A8BC
- .align 2, 0
-_0809A898: .4byte gUnknown_083B6DB4
-_0809A89C:
- movs r2, 0
- ldr r0, _0809A8C4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0xD0
- lsls r3, 4
- adds r1, r0, r3
- movs r3, 0
-_0809A8AA:
- lsls r0, r2, 2
- adds r0, r1, r0
- ldr r0, [r0]
- strh r3, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A8AA
-_0809A8BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A8C4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A860
-
- thumb_func_start sub_809A8C8
-sub_809A8C8: @ 809A8C8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _0809A994
- lsls r0, 2
- ldr r1, _0809A8E0 @ =_0809A8E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809A8E0: .4byte _0809A8E4
- .align 2, 0
-_0809A8E4:
- .4byte _0809A8F8
- .4byte _0809A8FE
- .4byte _0809A92C
- .4byte _0809A932
- .4byte _0809A984
-_0809A8F8:
- movs r0, 0
- strh r0, [r2, 0x24]
- b _0809A994
-_0809A8FE:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0809A994
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x24]
- adds r0, r3
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0809A994
- strh r1, [r2, 0x32]
- strh r1, [r2, 0x24]
- b _0809A994
-_0809A92C:
- movs r0, 0x3
- strh r0, [r2, 0x2E]
- b _0809A994
-_0809A932:
- ldr r0, _0809A97C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809A980 @ =0x000008b6
- adds r1, r0
- ldrh r0, [r2, 0x20]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2, 0x20]
- subs r0, 0x49
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAE
- bls _0809A958
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_0809A958:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _0809A994
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x4
- strh r0, [r2, 0x2E]
- b _0809A994
- .align 2, 0
-_0809A97C: .4byte gUnknown_083B6DB4
-_0809A980: .4byte 0x000008b6
-_0809A984:
- ldr r0, _0809A998 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A99C @ =0x000008b6
- adds r0, r1
- ldrh r1, [r2, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x20]
-_0809A994:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A998: .4byte gUnknown_083B6DB4
-_0809A99C: .4byte 0x000008b6
- thumb_func_end sub_809A8C8
-
- thumb_func_start sub_809A9A0
-sub_809A9A0: @ 809A9A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0809AA18
- movs r1, 0x1
- ands r1, r7
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _0809AA10 @ =gSprites
- adds r6, r4, r5
- adds r0, r6, 0
- bl StartSpriteAnim
- movs r0, 0x3
- mov r1, r8
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0809AA14 @ =SpriteCallbackDummy
- str r0, [r4]
- adds r0, r6, 0
- b _0809AA1A
- .align 2, 0
-_0809AA0C: .4byte gSpriteTemplate_83BB2F0
-_0809AA10: .4byte gSprites
-_0809AA14: .4byte SpriteCallbackDummy
-_0809AA18:
- movs r0, 0
-_0809AA1A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A9A0
-
- thumb_func_start sub_809AA24
-sub_809AA24: @ 809AA24
- push {lr}
- ldr r0, _0809AA38 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- cmp r1, 0x1
- beq _0809AA40
- ldr r1, _0809AA3C @ =gUnknown_020384E4
- movs r0, 0
- strb r0, [r1]
- b _0809AA44
- .align 2, 0
-_0809AA38: .4byte gUnknown_083B6DB4
-_0809AA3C: .4byte gUnknown_020384E4
-_0809AA40:
- ldr r0, _0809AA78 @ =gUnknown_020384E4
- strb r1, [r0]
-_0809AA44:
- ldr r0, _0809AA7C @ =gUnknown_020384E5
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0809AA80 @ =gUnknown_020384E6
- strb r1, [r0]
- ldr r0, _0809AA84 @ =gUnknown_020384E7
- strb r1, [r0]
- ldr r0, _0809AA88 @ =gUnknown_020384E8
- strb r1, [r0]
- ldr r0, _0809AA8C @ =gUnknown_020384E9
- strb r1, [r0]
- bl sub_809B0D4
- bl sub_809CC04
- ldr r0, _0809AA90 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809AA94 @ =0x000011e2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809AA78: .4byte gUnknown_020384E4
-_0809AA7C: .4byte gUnknown_020384E5
-_0809AA80: .4byte gUnknown_020384E6
-_0809AA84: .4byte gUnknown_020384E7
-_0809AA88: .4byte gUnknown_020384E8
-_0809AA8C: .4byte gUnknown_020384E9
-_0809AA90: .4byte gUnknown_083B6DB4
-_0809AA94: .4byte 0x000011e2
- thumb_func_end sub_809AA24
-
- thumb_func_start sub_809AA98
-sub_809AA98: @ 809AA98
- push {lr}
- bl sub_809CC04
- bl sub_809C028
- ldr r0, _0809AAC0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809AAC4 @ =0x000011e2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0809AAC8 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809AABA
- bl sub_8098BF0
-_0809AABA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809AAC0: .4byte gUnknown_083B6DB4
-_0809AAC4: .4byte 0x000011e2
-_0809AAC8: .4byte gUnknown_020384E6
- thumb_func_end sub_809AA98
-
- thumb_func_start sub_809AACC
-sub_809AACC: @ 809AACC
- push {r4-r6,lr}
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x4
- bhi _0809AB84
- lsls r0, 2
- ldr r1, _0809AAE8 @ =_0809AAEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809AAE8: .4byte _0809AAEC
- .align 2, 0
-_0809AAEC:
- .4byte _0809AB00
- .4byte _0809AB2E
- .4byte _0809AB56
- .4byte _0809AB5E
- .4byte _0809AB7C
-_0809AB00:
- adds r0, r5, 0
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x64
- strh r1, [r4]
- adds r0, r5, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x20
- strh r1, [r6]
- b _0809AB84
-_0809AB2E:
- cmp r5, 0
- bne _0809AB3A
- movs r0, 0x68
- strh r0, [r4]
- movs r0, 0x34
- b _0809AB82
-_0809AB3A:
- cmp r5, 0x6
- bne _0809AB46
- movs r0, 0x98
- strh r0, [r4]
- movs r0, 0x84
- b _0809AB82
-_0809AB46:
- movs r0, 0x98
- strh r0, [r4]
- subs r1, r5, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- b _0809AB82
-_0809AB56:
- movs r0, 0xA2
- strh r0, [r4]
- movs r0, 0xC
- b _0809AB82
-_0809AB5E:
- ldr r0, _0809AB78 @ =gUnknown_020384E6
- ldrb r0, [r0]
- movs r1, 0xE
- cmp r0, 0
- beq _0809AB6A
- movs r1, 0x8
-_0809AB6A:
- strh r1, [r6]
- movs r0, 0x58
- muls r0, r5
- adds r0, 0x78
- strh r0, [r4]
- b _0809AB84
- .align 2, 0
-_0809AB78: .4byte gUnknown_020384E6
-_0809AB7C:
- movs r0, 0xA0
- strh r0, [r4]
- movs r0, 0x60
-_0809AB82:
- strh r0, [r6]
-_0809AB84:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809AACC
-
- thumb_func_start sub_809AB8C
-sub_809AB8C: @ 809AB8C
- push {lr}
- ldr r0, _0809ABB4 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809ABC0
- cmp r0, 0x1
- bne _0809ABF8
- ldr r0, _0809ABB8 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809ABBC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- b _0809ABEA
- .align 2, 0
-_0809ABB4: .4byte gUnknown_020384E4
-_0809ABB8: .4byte gUnknown_020384E5
-_0809ABBC: .4byte gPlayerParty
-_0809ABC0:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809ABF0 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809ABF4 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
-_0809ABEA:
- lsls r0, 16
- lsrs r0, 16
- b _0809ABFA
- .align 2, 0
-_0809ABF0: .4byte gUnknown_020384E5
-_0809ABF4: .4byte gUnknown_020300A4
-_0809ABF8:
- movs r0, 0
-_0809ABFA:
- pop {r1}
- bx r1
- thumb_func_end sub_809AB8C
-
- thumb_func_start sub_809AC00
-sub_809AC00: @ 809AC00
- push {r4-r6,lr}
- ldr r0, _0809AC14 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809AC18 @ =0x000011dc
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0809AC1C
- movs r0, 0
- b _0809AD2C
- .align 2, 0
-_0809AC14: .4byte gUnknown_083B6DB4
-_0809AC18: .4byte 0x000011dc
-_0809AC1C:
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809AD0C
- ldr r1, _0809ACF4 @ =0x000011c8
- adds r3, r4, r1
- ldr r2, _0809ACF8 @ =0x000011d0
- adds r1, r4, r2
- ldr r0, [r3]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r3]
- ldr r6, _0809ACFC @ =0x000011cc
- adds r2, r4, r6
- ldr r0, _0809AD00 @ =0x000011d4
- adds r1, r4, r0
- ldr r0, [r2]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r2]
- movs r1, 0x8E
- lsls r1, 5
- adds r5, r4, r1
- ldr r1, [r5]
- ldr r0, [r3]
- asrs r0, 8
- strh r0, [r1, 0x20]
- ldr r1, [r5]
- ldr r0, [r2]
- asrs r0, 8
- strh r0, [r1, 0x22]
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x80
- lsls r3, 1
- cmp r0, r3
- ble _0809AC78
- ldr r6, _0809AD04 @ =0xffffff00
- adds r0, r2, r6
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x40
- strh r0, [r1, 0x20]
-_0809AC78:
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r6, 0x20
- ldrsh r0, [r1, r6]
- cmp r0, 0x3F
- bgt _0809AC90
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- subs r0, r3, r0
- strh r0, [r1, 0x20]
-_0809AC90:
- ldr r1, [r5]
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0xB0
- ble _0809ACA8
- adds r0, r2, 0
- subs r0, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r0, 0x10
- strh r0, [r1, 0x22]
-_0809ACA8:
- ldr r2, [r5]
- ldrh r3, [r2, 0x22]
- movs r6, 0x22
- ldrsh r0, [r2, r6]
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _0809ACC4
- subs r0, r1, r3
- movs r1, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r2, 0x22]
-_0809ACC4:
- ldr r0, _0809AD08 @ =0x000011e3
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809AD2A
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0809AD2A
- ldr r2, [r5]
- adds r2, 0x3F
- ldrb r3, [r2]
- lsrs r1, r3, 1
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _0809AD2A
- .align 2, 0
-_0809ACF4: .4byte 0x000011c8
-_0809ACF8: .4byte 0x000011d0
-_0809ACFC: .4byte 0x000011cc
-_0809AD00: .4byte 0x000011d4
-_0809AD04: .4byte 0xffffff00
-_0809AD08: .4byte 0x000011e3
-_0809AD0C:
- movs r1, 0x8E
- lsls r1, 5
- adds r2, r4, r1
- ldr r1, [r2]
- ldr r3, _0809AD34 @ =0x000011d8
- adds r0, r4, r3
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- ldr r6, _0809AD38 @ =0x000011da
- adds r0, r4, r6
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- bl sub_809AFB8
-_0809AD2A:
- movs r0, 0x1
-_0809AD2C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AD34: .4byte 0x000011d8
-_0809AD38: .4byte 0x000011da
- thumb_func_end sub_809AC00
-
- thumb_func_start sub_809AD3C
-sub_809AD3C: @ 809AD3C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r6, sp
- adds r6, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- adds r3, r6, 0
- bl sub_809AACC
- ldr r0, _0809AD88 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- movs r2, 0x8F
- lsls r2, 5
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0809AD8C @ =0x000011e1
- adds r0, r1, r3
- strb r5, [r0]
- mov r0, sp
- ldrh r2, [r0]
- subs r3, 0x9
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r6]
- ldr r2, _0809AD90 @ =0x000011da
- adds r1, r2
- strh r0, [r1]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AD88: .4byte gUnknown_083B6DB4
-_0809AD8C: .4byte 0x000011e1
-_0809AD90: .4byte 0x000011da
- thumb_func_end sub_809AD3C
-
- thumb_func_start sub_809AD94
-sub_809AD94: @ 809AD94
- push {r4-r7,lr}
- ldr r0, _0809ADB0 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809ADB4 @ =0x000011de
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r4, r0, 0
- cmp r1, 0
- beq _0809ADBC
- ldr r0, _0809ADB8 @ =0x000011dc
- adds r1, r2, r0
- movs r0, 0xC
- b _0809ADC2
- .align 2, 0
-_0809ADB0: .4byte gUnknown_083B6DB4
-_0809ADB4: .4byte 0x000011de
-_0809ADB8: .4byte 0x000011dc
-_0809ADBC:
- ldr r3, _0809AE04 @ =0x000011dc
- adds r1, r2, r3
- movs r0, 0x6
-_0809ADC2:
- strh r0, [r1]
- ldr r2, [r4]
- ldr r0, _0809AE08 @ =0x000011e3
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809ADDA
- ldr r3, _0809AE04 @ =0x000011dc
- adds r0, r2, r3
- ldrh r0, [r0]
- lsrs r0, 1
- strb r0, [r1]
-_0809ADDA:
- ldr r1, _0809AE0C @ =0x000011de
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE14
- cmp r1, 0x1
- beq _0809AE30
- ldr r3, _0809AE10 @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- b _0809AE46
- .align 2, 0
-_0809AE04: .4byte 0x000011dc
-_0809AE08: .4byte 0x000011e3
-_0809AE0C: .4byte 0x000011de
-_0809AE10: .4byte 0x000011da
-_0809AE14:
- ldr r3, _0809AE2C @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AE46
- .align 2, 0
-_0809AE2C: .4byte 0x000011da
-_0809AE30:
- ldr r3, _0809AE74 @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AE46:
- subs r7, r1, r0
- ldr r2, [r4]
- ldr r3, _0809AE78 @ =0x000011df
- adds r0, r2, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE80
- cmp r1, 0x1
- beq _0809AE9C
- ldr r1, _0809AE7C @ =0x000011d8
- adds r0, r2, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- b _0809AEB2
- .align 2, 0
-_0809AE74: .4byte 0x000011da
-_0809AE78: .4byte 0x000011df
-_0809AE7C: .4byte 0x000011d8
-_0809AE80:
- ldr r3, _0809AE98 @ =0x000011d8
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AEB2
- .align 2, 0
-_0809AE98: .4byte 0x000011d8
-_0809AE9C:
- ldr r3, _0809AF00 @ =0x000011d8
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AEB2:
- subs r0, r1, r0
- lsls r7, 8
- lsls r0, 8
- ldr r4, [r4]
- ldr r3, _0809AF04 @ =0x000011d0
- adds r6, r4, r3
- ldr r1, _0809AF08 @ =0x000011dc
- adds r5, r4, r1
- ldrh r1, [r5]
- bl __divsi3
- str r0, [r6]
- ldr r2, _0809AF0C @ =0x000011d4
- adds r6, r4, r2
- ldrh r1, [r5]
- adds r0, r7, 0
- bl __divsi3
- str r0, [r6]
- ldr r3, _0809AF10 @ =0x000011c8
- adds r2, r4, r3
- movs r0, 0x8E
- lsls r0, 5
- adds r1, r4, r0
- ldr r0, [r1]
- movs r3, 0x20
- ldrsh r0, [r0, r3]
- lsls r0, 8
- str r0, [r2]
- ldr r0, _0809AF14 @ =0x000011cc
- adds r4, r0
- ldr r0, [r1]
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- lsls r0, 8
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AF00: .4byte 0x000011d8
-_0809AF04: .4byte 0x000011d0
-_0809AF08: .4byte 0x000011dc
-_0809AF0C: .4byte 0x000011d4
-_0809AF10: .4byte 0x000011c8
-_0809AF14: .4byte 0x000011cc
- thumb_func_end sub_809AD94
-
- thumb_func_start sub_809AF18
-sub_809AF18: @ 809AF18
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809AD3C
- bl sub_809AD94
- ldr r0, _0809AFA4 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AF46
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
-_0809AF46:
- cmp r4, 0x1
- bne _0809AF70
- ldr r0, _0809AFAC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809AF70
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _0809AFB0 @ =0x000011e2
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _0809AFB4 @ =0x000011c4
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0809AF70:
- cmp r4, 0
- beq _0809AF9E
- cmp r4, 0
- blt _0809AF9E
- cmp r4, 0x3
- bgt _0809AF9E
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809AFB4 @ =0x000011c4
- adds r2, r0
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r2, [r2]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
-_0809AF9E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AFA4: .4byte gUnknown_020384E6
-_0809AFA8: .4byte gUnknown_083B6DB4
-_0809AFAC: .4byte gUnknown_020384E4
-_0809AFB0: .4byte 0x000011e2
-_0809AFB4: .4byte 0x000011c4
- thumb_func_end sub_809AF18
-
- thumb_func_start sub_809AFB8
-sub_809AFB8: @ 809AFB8
- push {r4,r5,lr}
- ldr r5, _0809B000 @ =gUnknown_020384E4
- ldr r0, _0809B004 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- movs r1, 0x8F
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _0809B008 @ =gUnknown_020384E5
- ldr r2, _0809B00C @ =0x000011e1
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0809B010 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AFEA
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809AFEA:
- bl sub_809BF74
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0x1
- beq _0809B020
- cmp r0, 0x1
- bgt _0809B014
- cmp r0, 0
- beq _0809B034
- b _0809B05E
- .align 2, 0
-_0809B000: .4byte gUnknown_020384E4
-_0809B004: .4byte gUnknown_083B6DB4
-_0809B008: .4byte gUnknown_020384E5
-_0809B00C: .4byte 0x000011e1
-_0809B010: .4byte gUnknown_020384E6
-_0809B014:
- cmp r0, 0x2
- bne _0809B05E
- movs r0, 0x1
- bl sub_809A860
- b _0809B05E
-_0809B020:
- ldr r2, _0809B030 @ =0x000011c4
- adds r0, r4, r2
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0xC
- strb r1, [r0]
- b _0809B05E
- .align 2, 0
-_0809B030: .4byte 0x000011c4
-_0809B034:
- ldr r0, _0809B064 @ =0x000011c4
- adds r2, r4, r0
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x14
- strb r1, [r0]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0809B05E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B064: .4byte 0x000011c4
- thumb_func_end sub_809AFB8
-
- thumb_func_start sub_809B068
-sub_809B068: @ 809B068
- push {lr}
- ldr r0, _0809B078 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809B07C
- movs r3, 0
- b _0809B08A
- .align 2, 0
-_0809B078: .4byte gUnknown_020384E6
-_0809B07C:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _0809B08A
- movs r3, 0x5
-_0809B08A:
- ldr r0, _0809B0B8 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r2, r1
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809B0AA
- ldr r0, _0809B0BC @ =0x000011e3
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_0809B0AA:
- movs r0, 0x1
- adds r1, r3, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- .align 2, 0
-_0809B0B8: .4byte gUnknown_083B6DB4
-_0809B0BC: .4byte 0x000011e3
- thumb_func_end sub_809B068
-
- thumb_func_start sub_809B0C0
-sub_809B0C0: @ 809B0C0
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- thumb_func_end sub_809B0C0
-
- thumb_func_start sub_809B0D4
-sub_809B0D4: @ 809B0D4
- ldr r1, _0809B0DC @ =gUnknown_020384EA
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B0DC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0D4
-
- thumb_func_start sub_809B0E0
-sub_809B0E0: @ 809B0E0
- ldr r0, _0809B0EC @ =gUnknown_020384EA
- ldr r1, _0809B0F0 @ =gUnknown_020384E5
- ldrb r1, [r1]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0809B0EC: .4byte gUnknown_020384EA
-_0809B0F0: .4byte gUnknown_020384E5
- thumb_func_end sub_809B0E0
-
- thumb_func_start sub_809B0F4
-sub_809B0F4: @ 809B0F4
- ldr r0, _0809B0FC @ =gUnknown_020384EA
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809B0FC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0F4
-
- thumb_func_start sub_809B100
-sub_809B100: @ 809B100
- lsls r0, 24
- ldr r1, _0809B120 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B124 @ =0x000012a4
- adds r3, r1, r2
- ldr r2, _0809B128 @ =gUnknown_083BBBC8
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0809B12C @ =0x000012a8
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B120: .4byte gUnknown_083B6DB4
-_0809B124: .4byte 0x000012a4
-_0809B128: .4byte gUnknown_083BBBC8
-_0809B12C: .4byte 0x000012a8
- thumb_func_end sub_809B100
-
- thumb_func_start sub_809B130
-sub_809B130: @ 809B130
- push {lr}
- ldr r0, _0809B148 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B14C @ =0x000012a4
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0809B148: .4byte gUnknown_083B6DB4
-_0809B14C: .4byte 0x000012a4
- thumb_func_end sub_809B130
-
- thumb_func_start sub_809B150
-sub_809B150: @ 809B150
- push {r4,r5,lr}
- ldr r0, _0809B16C @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _0809B170 @ =0x000012a8
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _0809B1A0
- cmp r0, 0x1
- bgt _0809B174
- cmp r0, 0
- beq _0809B17E
- b _0809B1CE
- .align 2, 0
-_0809B16C: .4byte gUnknown_083B6DB4
-_0809B170: .4byte 0x000012a8
-_0809B174:
- cmp r0, 0x2
- beq _0809B1BE
- cmp r0, 0x3
- beq _0809B186
- b _0809B1CE
-_0809B17E:
- ldr r0, _0809B18C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B190
-_0809B186:
- movs r0, 0
- b _0809B1D0
- .align 2, 0
-_0809B18C: .4byte gUnknown_020384E6
-_0809B190:
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- b _0809B1C8
-_0809B1A0:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- bl sub_809B384
- b _0809B1C8
-_0809B1BE:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
-_0809B1C8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_0809B1CE:
- movs r0, 0x1
-_0809B1D0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B150
-
- thumb_func_start sub_809B1D8
-sub_809B1D8: @ 809B1D8
- push {r4,r5,lr}
- ldr r0, _0809B1F4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B1F8 @ =0x000012a8
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B220
- cmp r0, 0x1
- bgt _0809B1FC
- cmp r0, 0
- beq _0809B202
- b _0809B244
- .align 2, 0
-_0809B1F4: .4byte gUnknown_083B6DB4
-_0809B1F8: .4byte 0x000012a8
-_0809B1FC:
- cmp r0, 0x2
- beq _0809B240
- b _0809B244
-_0809B202:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- bl sub_809B3E0
- b _0809B238
-_0809B220:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809B238:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B244
-_0809B240:
- movs r0, 0
- b _0809B246
-_0809B244:
- movs r0, 0x1
-_0809B246:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B1D8
-
- thumb_func_start sub_809B24C
-sub_809B24C: @ 809B24C
- push {r4,r5,lr}
- ldr r0, _0809B268 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B26C @ =0x000012a8
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B2E0
- cmp r0, 0x1
- bgt _0809B270
- cmp r0, 0
- beq _0809B276
- b _0809B31C
- .align 2, 0
-_0809B268: .4byte gUnknown_083B6DB4
-_0809B26C: .4byte 0x000012a8
-_0809B270:
- cmp r0, 0x2
- beq _0809B318
- b _0809B31C
-_0809B276:
- ldr r0, _0809B290 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B298
- cmp r0, 0x1
- bne _0809B318
- ldr r2, _0809B294 @ =0x000012a9
- adds r1, r4, r2
- movs r0, 0xE
- b _0809B2A0
- .align 2, 0
-_0809B290: .4byte gUnknown_020384E4
-_0809B294: .4byte 0x000012a9
-_0809B298:
- bl get_preferred_box
- ldr r2, _0809B2D0 @ =0x000012a9
- adds r1, r4, r2
-_0809B2A0:
- strb r0, [r1]
- ldr r0, _0809B2D4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0809B2D0 @ =0x000012a9
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B2D8 @ =gUnknown_020384E5
- ldrb r1, [r1]
- bl sub_80996B0
- ldr r0, _0809B2DC @ =0x000012a8
- adds r4, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0809B31C
- .align 2, 0
-_0809B2D0: .4byte 0x000012a9
-_0809B2D4: .4byte gUnknown_083B6DB4
-_0809B2D8: .4byte gUnknown_020384E5
-_0809B2DC: .4byte 0x000012a8
-_0809B2E0:
- bl sub_809971C
- lsls r0, 24
- cmp r0, 0
- bne _0809B31C
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- ldr r2, _0809B310 @ =0x000012a9
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B314 @ =gUnknown_020384E5
- ldrb r1, [r1]
- bl diegohint1
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B31C
- .align 2, 0
-_0809B310: .4byte 0x000012a9
-_0809B314: .4byte gUnknown_020384E5
-_0809B318:
- movs r0, 0
- b _0809B31E
-_0809B31C:
- movs r0, 0x1
-_0809B31E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B24C
-
- thumb_func_start sub_809B324
-sub_809B324: @ 809B324
- push {lr}
- ldr r0, _0809B348 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B33E
- cmp r0, 0x8
- beq _0809B34C
-_0809B33E:
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _0809B350
- .align 2, 0
-_0809B348: .4byte gUnknown_083B6DB4
-_0809B34C:
- movs r0, 0
- b _0809B352
-_0809B350:
- movs r0, 0x1
-_0809B352:
- pop {r1}
- bx r1
- thumb_func_end sub_809B324
-
- thumb_func_start sub_809B358
-sub_809B358: @ 809B358
- push {lr}
- ldr r0, _0809B378 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B37C
- ldrh r0, [r1, 0x26]
- subs r0, 0x1
- strh r0, [r1, 0x26]
- movs r0, 0x1
- b _0809B37E
- .align 2, 0
-_0809B378: .4byte gUnknown_083B6DB4
-_0809B37C:
- movs r0, 0
-_0809B37E:
- pop {r1}
- bx r1
- thumb_func_end sub_809B358
-
- thumb_func_start sub_809B384
-sub_809B384: @ 809B384
- push {r4,lr}
- ldr r0, _0809B3AC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B3B4
- cmp r0, 0x1
- bne _0809B3D2
- ldr r4, _0809B3B0 @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0
- bl sub_8099584
- b _0809B3CC
- .align 2, 0
-_0809B3AC: .4byte gUnknown_020384E4
-_0809B3B0: .4byte gUnknown_020384E5
-_0809B3B4:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0809B3D8 @ =gUnknown_020384E5
- ldrb r1, [r4]
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0x1
- bl sub_8099584
-_0809B3CC:
- ldr r1, _0809B3DC @ =gUnknown_020384E6
- movs r0, 0x1
- strb r0, [r1]
-_0809B3D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B3D8: .4byte gUnknown_020384E5
-_0809B3DC: .4byte gUnknown_020384E6
- thumb_func_end sub_809B384
-
- thumb_func_start sub_809B3E0
-sub_809B3E0: @ 809B3E0
- push {r4,r5,lr}
- ldr r0, _0809B408 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B410
- cmp r0, 0x1
- bne _0809B432
- ldr r4, _0809B40C @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl diegohint2
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809960C
- b _0809B42C
- .align 2, 0
-_0809B408: .4byte gUnknown_020384E4
-_0809B40C: .4byte gUnknown_020384E5
-_0809B410:
- bl get_preferred_box
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0809B438 @ =gUnknown_020384E5
- ldrb r1, [r5]
- adds r0, r4, 0
- bl diegohint2
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809960C
-_0809B42C:
- ldr r1, _0809B43C @ =gUnknown_020384E6
- movs r0, 0
- strb r0, [r1]
-_0809B432:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B438: .4byte gUnknown_020384E5
-_0809B43C: .4byte gUnknown_020384E6
- thumb_func_end sub_809B3E0
-
- thumb_func_start sub_809B440
-sub_809B440: @ 809B440
- push {lr}
- bl sub_809BF74
- pop {r0}
- bx r0
- thumb_func_end sub_809B440
-
- thumb_func_start sub_809B44C
-sub_809B44C: @ 809B44C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0xE
- bne _0809B488
- ldr r0, _0809B478 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B47C @ =0x000025b4
- adds r0, r1
- ldr r3, _0809B480 @ =gPlayerParty
- ldr r1, _0809B484 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- b _0809B4AA
- .align 2, 0
-_0809B478: .4byte gUnknown_083B6DB4
-_0809B47C: .4byte 0x000025b4
-_0809B480: .4byte gPlayerParty
-_0809B484: .4byte gUnknown_020384E5
-_0809B488:
- lsls r1, r4, 2
- adds r1, r4
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 4
- ldr r2, _0809B4C0 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B4C4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B4C8 @ =0x000025b4
- adds r1, r2
- bl sub_803B4B4
-_0809B4AA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809B548
- ldr r0, _0809B4CC @ =gUnknown_020384E7
- strb r4, [r0]
- ldr r0, _0809B4D0 @ =gUnknown_020384E8
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B4C0: .4byte gUnknown_020300A4
-_0809B4C4: .4byte gUnknown_083B6DB4
-_0809B4C8: .4byte 0x000025b4
-_0809B4CC: .4byte gUnknown_020384E7
-_0809B4D0: .4byte gUnknown_020384E8
- thumb_func_end sub_809B44C
-
- thumb_func_start diegohint2
-diegohint2: @ 809B4D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r6, 0xE
- bne _0809B508
- ldr r1, _0809B4FC @ =gPlayerParty
- movs r0, 0x64
- muls r0, r5
- adds r0, r1
- ldr r1, _0809B500 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B504 @ =0x000025b4
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B536
- .align 2, 0
-_0809B4FC: .4byte gPlayerParty
-_0809B500: .4byte gUnknown_083B6DB4
-_0809B504: .4byte 0x000025b4
-_0809B508:
- ldr r0, _0809B53C @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B540 @ =0x000025b4
- adds r4, r0
- adds r0, r4, 0
- bl pokemon_restore_pp
- ldr r3, _0809B544 @ =gPokemonStorage
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- lsls r2, r6, 2
- adds r2, r6
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 5
- adds r0, r1
- adds r0, r3
- adds r0, 0x4
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809B536:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B53C: .4byte gUnknown_083B6DB4
-_0809B540: .4byte 0x000025b4
-_0809B544: .4byte gPokemonStorage
- thumb_func_end diegohint2
-
- thumb_func_start sub_809B548
-sub_809B548: @ 809B548
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r0, 0xE
- bne _0809B568
- movs r0, 0x64
- muls r0, r2
- ldr r1, _0809B564 @ =gPlayerParty
- adds r0, r1
- bl ZeroMonData
- b _0809B582
- .align 2, 0
-_0809B564: .4byte gPlayerParty
-_0809B568:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809B588 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- bl ZeroBoxMonData
-_0809B582:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B588: .4byte gUnknown_020300A4
- thumb_func_end sub_809B548
-
- thumb_func_start diegohint1
-diegohint1: @ 809B58C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r5, 0xE
- bne _0809B5C0
- ldr r0, _0809B5B4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B5B8 @ =0x00002618
- adds r0, r1
- ldr r2, _0809B5BC @ =gPlayerParty
- movs r1, 0x64
- muls r1, r6
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B5E2
- .align 2, 0
-_0809B5B4: .4byte gUnknown_083B6DB4
-_0809B5B8: .4byte 0x00002618
-_0809B5BC: .4byte gPlayerParty
-_0809B5C0:
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 4
- ldr r2, _0809B614 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B618 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- bl sub_803B4B4
-_0809B5E2:
- adds r0, r5, 0
- adds r1, r6, 0
- bl diegohint2
- ldr r0, _0809B618 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809B620 @ =0x000025b4
- adds r4, r1, r0
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_809C04C
- ldr r0, _0809B624 @ =gUnknown_020384E7
- strb r5, [r0]
- ldr r0, _0809B628 @ =gUnknown_020384E8
- strb r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B614: .4byte gUnknown_020300A4
-_0809B618: .4byte gUnknown_083B6DB4
-_0809B61C: .4byte 0x00002618
-_0809B620: .4byte 0x000025b4
-_0809B624: .4byte gUnknown_020384E7
-_0809B628: .4byte gUnknown_020384E8
- thumb_func_end diegohint1
-
- thumb_func_start sub_809B62C
-sub_809B62C: @ 809B62C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_8095B24
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0809B64A
- movs r0, 0
- b _0809B6AC
-_0809B64A:
- ldr r5, _0809B668 @ =gUnknown_020384E6
- ldrb r0, [r5]
- cmp r0, 0
- beq _0809B66C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- bl sub_8099480
- movs r0, 0
- strb r0, [r5]
- b _0809B686
- .align 2, 0
-_0809B668: .4byte gUnknown_020384E6
-_0809B66C:
- ldr r5, _0809B6B4 @ =gUnknown_020384E5
- ldrb r1, [r5]
- movs r0, 0xE
- bl sub_809B44C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- ldrb r0, [r5]
- bl sub_8099520
-_0809B686:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0809B698
- lsrs r0, r4, 24
- bl sub_8098D20
-_0809B698:
- ldr r0, _0809B6B8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x1
-_0809B6AC:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809B6B4: .4byte gUnknown_020384E5
-_0809B6B8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B62C
-
- thumb_func_start sub_809B6BC
-sub_809B6BC: @ 809B6BC
- push {lr}
- ldr r0, _0809B6D8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B6D8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B6BC
-
- thumb_func_start sub_809B6DC
-sub_809B6DC: @ 809B6DC
- push {lr}
- ldr r0, _0809B6EC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B6F0
- movs r2, 0x2
- b _0809B700
- .align 2, 0
-_0809B6EC: .4byte gUnknown_020384E6
-_0809B6F0:
- ldr r0, _0809B720 @ =gUnknown_020384E4
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0x1
- eors r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r2, r0, 31
-_0809B700:
- ldr r0, _0809B724 @ =gUnknown_020384E5
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809981C
- ldr r0, _0809B728 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809B72C @ =0x000026e4
- adds r0, r1, r2
- ldr r2, _0809B730 @ =0x000011fa
- adds r1, r2
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_0809B720: .4byte gUnknown_020384E4
-_0809B724: .4byte gUnknown_020384E5
-_0809B728: .4byte gUnknown_083B6DB4
-_0809B72C: .4byte 0x000026e4
-_0809B730: .4byte 0x000011fa
- thumb_func_end sub_809B6DC
-
- thumb_func_start sub_809B734
-sub_809B734: @ 809B734
- push {lr}
- bl sub_80998D8
- lsls r0, 24
- cmp r0, 0
- beq _0809B744
- movs r0, 0x1
- b _0809B758
-_0809B744:
- ldr r0, _0809B75C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0
-_0809B758:
- pop {r1}
- bx r1
- .align 2, 0
-_0809B75C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B734
-
- thumb_func_start sub_809B760
-sub_809B760: @ 809B760
- push {lr}
- bl sub_8099920
- ldr r1, _0809B774 @ =gUnknown_020384E6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809B778
- movs r0, 0
- strb r0, [r1]
- b _0809B79E
- .align 2, 0
-_0809B774: .4byte gUnknown_020384E6
-_0809B778:
- ldr r0, _0809B788 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B78C
- movs r2, 0xE
- b _0809B794
- .align 2, 0
-_0809B788: .4byte gUnknown_020384E4
-_0809B78C:
- bl get_preferred_box
- lsls r0, 24
- lsrs r2, r0, 24
-_0809B794:
- ldr r0, _0809B7A8 @ =gUnknown_020384E5
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809B548
-_0809B79E:
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7A8: .4byte gUnknown_020384E5
- thumb_func_end sub_809B760
-
- thumb_func_start sub_809B7AC
-sub_809B7AC: @ 809B7AC
- push {lr}
- ldr r0, _0809B7CC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B7C8
- ldr r0, _0809B7D0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
-_0809B7C8:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7CC: .4byte gUnknown_020384E6
-_0809B7D0: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B7AC
-
- thumb_func_start sub_809B7D4
-sub_809B7D4: @ 809B7D4
- push {r4-r6,lr}
- ldr r0, _0809B804 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B81C
- ldr r0, _0809B808 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r1, _0809B80C @ =0x00002618
- adds r0, r4, r1
- ldr r2, _0809B810 @ =0x000025b4
- adds r1, r4, r2
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B814 @ =0x00002682
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _0809B818 @ =0x00002683
- adds r4, r1
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4]
- b _0809B8A6
- .align 2, 0
-_0809B804: .4byte gUnknown_020384E6
-_0809B808: .4byte gUnknown_083B6DB4
-_0809B80C: .4byte 0x00002618
-_0809B810: .4byte 0x000025b4
-_0809B814: .4byte 0x00002682
-_0809B818: .4byte 0x00002683
-_0809B81C:
- ldr r0, _0809B84C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B864
- ldr r0, _0809B850 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809B854 @ =0x00002618
- adds r0, r4, r2
- ldr r3, _0809B858 @ =gPlayerParty
- ldr r1, _0809B85C @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B860 @ =0x00002682
- adds r4, r0
- movs r0, 0xE
- b _0809B896
- .align 2, 0
-_0809B84C: .4byte gUnknown_020384E4
-_0809B850: .4byte gUnknown_083B6DB4
-_0809B854: .4byte 0x00002618
-_0809B858: .4byte gPlayerParty
-_0809B85C: .4byte gUnknown_020384E5
-_0809B860: .4byte 0x00002682
-_0809B864:
- ldr r5, _0809B8FC @ =gPokemonStorage
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809B900 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r2, r5, 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B904 @ =gUnknown_083B6DB4
- ldr r4, [r1]
- ldr r2, _0809B908 @ =0x00002618
- adds r1, r4, r2
- bl sub_803B4B4
- ldrb r0, [r5]
- ldr r1, _0809B90C @ =0x00002682
- adds r4, r1
-_0809B896:
- strb r0, [r4]
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B900 @ =gUnknown_020384E5
- ldrb r1, [r1]
- ldr r2, _0809B910 @ =0x00002683
- adds r0, r2
- strb r1, [r0]
-_0809B8A6:
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
- ldr r6, [r0]
- ldr r0, _0809B914 @ =0x0000267e
- adds r4, r6, r0
- movs r0, 0
- strb r0, [r4]
- ldr r1, _0809B918 @ =0x0000267f
- adds r5, r6, r1
- strb r0, [r5]
- ldr r0, _0809B91C @ =0x00002686
- adds r2, r6, r0
- movs r0, 0x39
- strh r0, [r2]
- ldr r0, _0809B920 @ =0x00002688
- adds r1, r6, r0
- ldr r0, _0809B924 @ =0x00000123
- strh r0, [r1]
- ldr r0, _0809B928 @ =0x0000268a
- adds r1, r6, r0
- ldr r0, _0809B92C @ =0x00000163
- strh r0, [r1]
- ldr r1, _0809B908 @ =0x00002618
- adds r0, r6, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- movs r2, 0x1
- ands r1, r2
- strb r1, [r4]
- lsrs r0, 17
- movs r1, 0x1
- ands r0, r1
- strb r0, [r5]
- ldrh r0, [r4]
- cmp r0, 0
- beq _0809B934
- ldr r2, _0809B930 @ =0x0000267d
- adds r1, r6, r2
- movs r0, 0
- strb r0, [r1]
- b _0809B940
- .align 2, 0
-_0809B8FC: .4byte gPokemonStorage
-_0809B900: .4byte gUnknown_020384E5
-_0809B904: .4byte gUnknown_083B6DB4
-_0809B908: .4byte 0x00002618
-_0809B90C: .4byte 0x00002682
-_0809B910: .4byte 0x00002683
-_0809B914: .4byte 0x0000267e
-_0809B918: .4byte 0x0000267f
-_0809B91C: .4byte 0x00002686
-_0809B920: .4byte 0x00002688
-_0809B924: .4byte 0x00000123
-_0809B928: .4byte 0x0000268a
-_0809B92C: .4byte 0x00000163
-_0809B930: .4byte 0x0000267d
-_0809B934:
- ldr r2, _0809B954 @ =0x0000267d
- adds r0, r6, r2
- strb r1, [r0]
- subs r2, 0x1
- adds r0, r6, r2
- strb r1, [r0]
-_0809B940:
- ldr r0, _0809B958 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B95C @ =0x00002684
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B954: .4byte 0x0000267d
-_0809B958: .4byte gUnknown_083B6DB4
-_0809B95C: .4byte 0x00002684
- thumb_func_end sub_809B7D4
-
- thumb_func_start sub_809B960
-sub_809B960: @ 809B960
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809B988 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809B98C @ =0x0000267d
- adds r1, r2, r3
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _0809B994
- ldr r7, _0809B990 @ =0x0000267c
- adds r0, r2, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _0809BB5C
- .align 2, 0
-_0809B988: .4byte gUnknown_083B6DB4
-_0809B98C: .4byte 0x0000267d
-_0809B990: .4byte 0x0000267c
-_0809B994:
- ldr r1, _0809B9A4 @ =0x00002684
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809B9A8
- cmp r0, 0x1
- beq _0809BA84
- b _0809BB58
- .align 2, 0
-_0809B9A4: .4byte 0x00002684
-_0809B9A8:
- movs r5, 0
- movs r6, 0
-_0809B9AC:
- mov r2, r12
- ldr r4, [r2]
- ldr r3, _0809BA28 @ =0x00002682
- adds r0, r4, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xE
- bne _0809B9CC
- ldr r7, _0809BA2C @ =0x00002683
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r5
- beq _0809BA02
-_0809B9CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809BA30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0809BA34 @ =0x00002686
- adds r2, r4, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809B9F0
- ldr r2, _0809BA38 @ =0x0000267e
- adds r0, r4, r2
- strb r6, [r0]
-_0809B9F0:
- movs r0, 0x2
- ands r3, r0
- ldr r7, _0809BA3C @ =gUnknown_083B6DB4
- mov r12, r7
- cmp r3, 0
- beq _0809BA02
- ldr r1, _0809BA40 @ =0x0000267f
- adds r0, r4, r1
- strb r6, [r0]
-_0809BA02:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809B9AC
- mov r3, r12
- ldr r2, [r3]
- ldr r7, _0809BA38 @ =0x0000267e
- adds r0, r2, r7
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BA4C
- ldr r1, _0809BA44 @ =0x0000267d
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r3, _0809BA48 @ =0x0000267c
- b _0809BB54
- .align 2, 0
-_0809BA28: .4byte 0x00002682
-_0809BA2C: .4byte 0x00002683
-_0809BA30: .4byte gPlayerParty
-_0809BA34: .4byte 0x00002686
-_0809BA38: .4byte 0x0000267e
-_0809BA3C: .4byte gUnknown_083B6DB4
-_0809BA40: .4byte 0x0000267f
-_0809BA44: .4byte 0x0000267d
-_0809BA48: .4byte 0x0000267c
-_0809BA4C:
- movs r7, 0x9A
- lsls r7, 6
- adds r0, r2, r7
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BA68 @ =0x00002681
- adds r0, r2, r3
- strb r1, [r0]
- adds r7, 0x4
- adds r1, r2, r7
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0809BB58
- .align 2, 0
-_0809BA68: .4byte 0x00002681
-_0809BA6C:
- ldr r1, _0809BA7C @ =0x0000267d
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r7, _0809BA80 @ =0x0000267c
- adds r0, r2, r7
- strb r3, [r0]
- b _0809BB3C
- .align 2, 0
-_0809BA7C: .4byte 0x0000267d
-_0809BA80: .4byte 0x0000267c
-_0809BA84:
- movs r5, 0
- mov r9, r12
- adds r4, r2, 0
- movs r0, 0x9A
- lsls r0, 6
- adds r6, r4, r0
- ldr r1, _0809BB6C @ =0x0000267f
- adds r1, r4
- mov r8, r1
- ldr r2, _0809BB70 @ =0x0000ffff
- mov r10, r2
-_0809BA9A:
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r3, _0809BB74 @ =0x00002681
- adds r1, r4, r3
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BB78 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x50
- ldr r7, _0809BB7C @ =0x00002686
- adds r2, r4, r7
- bl GetBoxMonData
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0809BB00
- ldr r1, _0809BB80 @ =0x00002682
- adds r0, r4, r1
- ldrh r0, [r0]
- ldrh r2, [r6]
- mov r1, r10
- ands r1, r0
- mov r0, r10
- ands r0, r2
- cmp r1, r0
- beq _0809BB00
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809BAF2
- ldr r2, _0809BB84 @ =0x0000267e
- adds r1, r4, r2
- movs r0, 0
- strb r0, [r1]
-_0809BAF2:
- movs r0, 0x2
- ands r3, r0
- cmp r3, 0
- beq _0809BB00
- movs r0, 0
- mov r3, r8
- strb r0, [r3]
-_0809BB00:
- mov r7, r9
- ldr r2, [r7]
- ldr r0, _0809BB74 @ =0x00002681
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- ldr r7, _0809BB88 @ =gUnknown_083B6DB4
- mov r12, r7
- cmp r0, 0x1D
- ble _0809BB32
- strb r3, [r1]
- movs r0, 0x9A
- lsls r0, 6
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xD
- bgt _0809BA6C
-_0809BB32:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _0809BA9A
-_0809BB3C:
- mov r1, r12
- ldr r2, [r1]
- ldr r3, _0809BB84 @ =0x0000267e
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BB58
- ldr r7, _0809BB8C @ =0x0000267d
- adds r0, r2, r7
- movs r1, 0x1
- strb r1, [r0]
- subs r3, 0x2
-_0809BB54:
- adds r0, r2, r3
- strb r1, [r0]
-_0809BB58:
- movs r0, 0x1
- negs r0, r0
-_0809BB5C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BB6C: .4byte 0x0000267f
-_0809BB70: .4byte 0x0000ffff
-_0809BB74: .4byte 0x00002681
-_0809BB78: .4byte gUnknown_020300A4
-_0809BB7C: .4byte 0x00002686
-_0809BB80: .4byte 0x00002682
-_0809BB84: .4byte 0x0000267e
-_0809BB88: .4byte gUnknown_083B6DB4
-_0809BB8C: .4byte 0x0000267d
- thumb_func_end sub_809B960
-
- thumb_func_start sub_809BB90
-sub_809BB90: @ 809BB90
- push {lr}
- ldr r0, _0809BBB0 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BBAA
- ldr r0, _0809BBB4 @ =gUnknown_02038480
- ldr r1, _0809BBB8 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809BBBC @ =0x000025b4
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_0809BBAA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BBB0: .4byte gUnknown_020384E6
-_0809BBB4: .4byte gUnknown_02038480
-_0809BBB8: .4byte gUnknown_083B6DB4
-_0809BBBC: .4byte 0x000025b4
- thumb_func_end sub_809BB90
-
- thumb_func_start sub_809BBC0
-sub_809BBC0: @ 809BBC0
- push {lr}
- ldr r0, _0809BBE4 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BC08
- ldr r0, _0809BBE8 @ =gUnknown_020384E7
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0809BBF8
- ldr r0, _0809BBEC @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809BBF0 @ =0x000025b4
- adds r0, r1
- ldr r1, _0809BBF4 @ =gUnknown_02038480
- movs r2, 0x64
- bl memcpy
- b _0809BC08
- .align 2, 0
-_0809BBE4: .4byte gUnknown_020384E6
-_0809BBE8: .4byte gUnknown_020384E7
-_0809BBEC: .4byte gUnknown_083B6DB4
-_0809BBF0: .4byte 0x000025b4
-_0809BBF4: .4byte gUnknown_02038480
-_0809BBF8:
- ldr r0, _0809BC0C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809BC10 @ =0x000025b4
- adds r0, r1
- ldr r1, _0809BC14 @ =gUnknown_02038480
- movs r2, 0x50
- bl memcpy
-_0809BC08:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BC0C: .4byte gUnknown_083B6DB4
-_0809BC10: .4byte 0x000025b4
-_0809BC14: .4byte gUnknown_02038480
- thumb_func_end sub_809BBC0
-
- thumb_func_start sub_809BC18
-sub_809BC18: @ 809BC18
- push {r4,r5,lr}
- ldr r0, _0809BC48 @ =gUnknown_020384E6
- ldrb r5, [r0]
- cmp r5, 0
- beq _0809BC64
- bl sub_809BB90
- ldr r0, _0809BC4C @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809BC50 @ =0x00002690
- adds r1, r2, r0
- ldr r0, _0809BC54 @ =gUnknown_02038480
- str r0, [r1]
- ldr r1, _0809BC58 @ =0x0000268d
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BC5C @ =0x0000268c
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0809BC60 @ =0x0000268e
- adds r2, r0
- strb r1, [r2]
- b _0809BCF2
- .align 2, 0
-_0809BC48: .4byte gUnknown_020384E6
-_0809BC4C: .4byte gUnknown_083B6DB4
-_0809BC50: .4byte 0x00002690
-_0809BC54: .4byte gUnknown_02038480
-_0809BC58: .4byte 0x0000268d
-_0809BC5C: .4byte 0x0000268c
-_0809BC60: .4byte 0x0000268e
-_0809BC64:
- ldr r0, _0809BC9C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BCBC
- ldr r0, _0809BCA0 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809BCA4 @ =0x00002690
- adds r1, r4, r2
- ldr r0, _0809BCA8 @ =gPlayerParty
- str r0, [r1]
- ldr r0, _0809BCAC @ =gUnknown_020384E5
- ldrb r1, [r0]
- ldr r3, _0809BCB0 @ =0x0000268d
- adds r0, r4, r3
- strb r1, [r0]
- bl sub_8095C28
- subs r0, 0x1
- ldr r2, _0809BCB4 @ =0x0000268c
- adds r1, r4, r2
- strb r0, [r1]
- ldr r3, _0809BCB8 @ =0x0000268e
- adds r4, r3
- strb r5, [r4]
- b _0809BCF2
- .align 2, 0
-_0809BC9C: .4byte gUnknown_020384E4
-_0809BCA0: .4byte gUnknown_083B6DB4
-_0809BCA4: .4byte 0x00002690
-_0809BCA8: .4byte gPlayerParty
-_0809BCAC: .4byte gUnknown_020384E5
-_0809BCB0: .4byte 0x0000268d
-_0809BCB4: .4byte 0x0000268c
-_0809BCB8: .4byte 0x0000268e
-_0809BCBC:
- ldr r0, _0809BCF8 @ =gUnknown_083B6DB4
- ldr r3, [r0]
- ldr r0, _0809BCFC @ =0x00002690
- adds r4, r3, r0
- ldr r2, _0809BD00 @ =gPokemonStorage
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r2, 0x4
- adds r0, r2
- str r0, [r4]
- ldr r0, _0809BD04 @ =gUnknown_020384E5
- ldrb r1, [r0]
- ldr r2, _0809BD08 @ =0x0000268d
- adds r0, r3, r2
- strb r1, [r0]
- ldr r0, _0809BD0C @ =0x0000268c
- adds r1, r3, r0
- movs r0, 0x1D
- strb r0, [r1]
- ldr r1, _0809BD10 @ =0x0000268e
- adds r3, r1
- movs r0, 0x5
- strb r0, [r3]
-_0809BCF2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BCF8: .4byte gUnknown_083B6DB4
-_0809BCFC: .4byte 0x00002690
-_0809BD00: .4byte gPokemonStorage
-_0809BD04: .4byte gUnknown_020384E5
-_0809BD08: .4byte 0x0000268d
-_0809BD0C: .4byte 0x0000268c
-_0809BD10: .4byte 0x0000268e
- thumb_func_end sub_809BC18
-
- thumb_func_start sub_809BD14
-sub_809BD14: @ 809BD14
- push {lr}
- ldr r0, _0809BD24 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BD28
- bl sub_809BBC0
- b _0809BD30
- .align 2, 0
-_0809BD24: .4byte gUnknown_020384E6
-_0809BD28:
- ldr r0, _0809BD34 @ =gUnknown_020384E5
- ldr r1, _0809BD38 @ =0x02018000
- ldrb r1, [r1, 0x9]
- strb r1, [r0]
-_0809BD30:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BD34: .4byte gUnknown_020384E5
-_0809BD38: .4byte 0x02018000
- thumb_func_end sub_809BD14
-
- thumb_func_start party_compaction
-party_compaction: @ 809BD3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _0809BD88 @ =0x0000ffff
- movs r6, 0
- movs r5, 0
- movs r0, 0x64
- mov r9, r0
- ldr r1, _0809BD8C @ =gPlayerParty
- mov r8, r1
- subs r0, 0x65
- mov r10, r0
-_0809BD58:
- mov r0, r9
- muls r0, r6
- mov r1, r8
- adds r4, r0, r1
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- cmp r0, 0
- beq _0809BD90
- cmp r6, r5
- beq _0809BD80
- mov r0, r9
- muls r0, r5
- add r0, r8
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
-_0809BD80:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _0809BD9A
- .align 2, 0
-_0809BD88: .4byte 0x0000ffff
-_0809BD8C: .4byte gPlayerParty
-_0809BD90:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r10
- bne _0809BD9A
- adds r7, r6, 0
-_0809BD9A:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _0809BD58
- lsls r7, 16
- cmp r5, 0x5
- bhi _0809BDC2
- movs r6, 0x64
- ldr r4, _0809BDD4 @ =gPlayerParty
-_0809BDAE:
- adds r0, r5, 0
- muls r0, r6
- adds r0, r4
- bl ZeroMonData
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809BDAE
-_0809BDC2:
- asrs r0, r7, 16
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BDD4: .4byte gPlayerParty
- thumb_func_end party_compaction
-
- thumb_func_start sub_809BDD8
-sub_809BDD8: @ 809BDD8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- ldr r1, _0809BE04 @ =gUnknown_083B6DB4
- ldr r2, [r1]
- ldr r3, _0809BE08 @ =0x000011f7
- adds r1, r2, r3
- strb r0, [r1]
- ldr r0, _0809BE0C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BE14
- ldr r1, _0809BE10 @ =0x000025b4
- adds r0, r2, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- b _0809BE68
- .align 2, 0
-_0809BE04: .4byte gUnknown_083B6DB4
-_0809BE08: .4byte 0x000011f7
-_0809BE0C: .4byte gUnknown_020384E6
-_0809BE10: .4byte 0x000025b4
-_0809BE14:
- ldr r4, _0809BE70 @ =gUnknown_020384E4
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1
- bne _0809BE34
- ldr r0, _0809BE74 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BE78 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
-_0809BE34:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _0809BE68
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809BE74 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BE7C @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetBoxMonData
-_0809BE68:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BE70: .4byte gUnknown_020384E4
-_0809BE74: .4byte gUnknown_020384E5
-_0809BE78: .4byte gPlayerParty
-_0809BE7C: .4byte gUnknown_020300A4
- thumb_func_end sub_809BDD8
-
- thumb_func_start sub_809BE80
-sub_809BE80: @ 809BE80
- push {lr}
- ldr r0, _0809BEA8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEB4
- ldr r0, _0809BEAC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BEB4
- ldr r0, _0809BEB0 @ =gUnknown_020384E5
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- cmp r0, 0
- bne _0809BEB4
- movs r0, 0x1
- b _0809BEB6
- .align 2, 0
-_0809BEA8: .4byte gUnknown_020384E4
-_0809BEAC: .4byte gUnknown_020384E6
-_0809BEB0: .4byte gUnknown_020384E5
-_0809BEB4:
- movs r0, 0
-_0809BEB6:
- pop {r1}
- bx r1
- thumb_func_end sub_809BE80
-
- thumb_func_start sub_809BEBC
-sub_809BEBC: @ 809BEBC
- push {lr}
- ldr r0, _0809BF00 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BF18
- ldr r0, _0809BF04 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEFC
- ldr r0, _0809BF08 @ =gUnknown_020384E5
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- cmp r0, 0
- bne _0809BEFC
- ldr r0, _0809BF0C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809BF10 @ =0x000011f9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BF18
- ldr r2, _0809BF14 @ =0x000025b4
- adds r0, r1, r2
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0809BF18
-_0809BEFC:
- movs r0, 0x1
- b _0809BF1A
- .align 2, 0
-_0809BF00: .4byte gUnknown_020384E6
-_0809BF04: .4byte gUnknown_020384E4
-_0809BF08: .4byte gUnknown_020384E5
-_0809BF0C: .4byte gUnknown_083B6DB4
-_0809BF10: .4byte 0x000011f9
-_0809BF14: .4byte 0x000025b4
-_0809BF18:
- movs r0, 0
-_0809BF1A:
- pop {r1}
- bx r1
- thumb_func_end sub_809BEBC
-
- thumb_func_start sub_809BF20
-sub_809BF20: @ 809BF20
- ldr r0, _0809BF28 @ =gUnknown_020384E6
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809BF28: .4byte gUnknown_020384E6
- thumb_func_end sub_809BF20
-
- thumb_func_start sub_809BF2C
-sub_809BF2C: @ 809BF2C
- push {lr}
- movs r1, 0
- ldr r0, _0809BF44 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- bne _0809BF3E
- movs r1, 0x1
-_0809BF3E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF44: .4byte gUnknown_020384E4
- thumb_func_end sub_809BF2C
-
- thumb_func_start sub_809BF48
-sub_809BF48: @ 809BF48
- push {lr}
- movs r1, 0
- ldr r0, _0809BF6C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _0809BF66
- ldr r0, _0809BF70 @ =gUnknown_020384E5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BF66
- movs r1, 0x1
-_0809BF66:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF6C: .4byte gUnknown_020384E4
-_0809BF70: .4byte gUnknown_020384E5
- thumb_func_end sub_809BF48
-
- thumb_func_start sub_809BF74
-sub_809BF74: @ 809BF74
- push {r4,lr}
- ldr r0, _0809BFA8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- movs r2, 0
- ldr r3, _0809BFAC @ =gUnknown_020384E6
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809BF86
- movs r2, 0x1
-_0809BF86:
- ldr r4, _0809BFB0 @ =0x000011f6
- adds r0, r1, r4
- strb r2, [r0]
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809C018
- ldr r0, _0809BFB4 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809BFBE
- cmp r0, 0x1
- bgt _0809BFB8
- cmp r0, 0
- beq _0809BFEE
- b _0809C018
- .align 2, 0
-_0809BFA8: .4byte gUnknown_083B6DB4
-_0809BFAC: .4byte gUnknown_020384E6
-_0809BFB0: .4byte 0x000011f6
-_0809BFB4: .4byte gUnknown_020384E4
-_0809BFB8:
- cmp r0, 0x3
- bgt _0809C018
- b _0809BFE4
-_0809BFBE:
- ldr r1, _0809BFDC @ =gUnknown_020384E5
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0809BFE4
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BFE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_809C04C
- b _0809C018
- .align 2, 0
-_0809BFDC: .4byte gUnknown_020384E5
-_0809BFE0: .4byte gPlayerParty
-_0809BFE4:
- movs r0, 0
- movs r1, 0x2
- bl sub_809C04C
- b _0809C018
-_0809BFEE:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809C020 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809C024 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x1
- bl sub_809C04C
-_0809C018:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C020: .4byte gUnknown_020384E5
-_0809C024: .4byte gUnknown_020300A4
- thumb_func_end sub_809BF74
-
- thumb_func_start sub_809C028
-sub_809C028: @ 809C028
- push {lr}
- ldr r0, _0809C03C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C044
- ldr r0, _0809C040 @ =gUnknown_02038480
- movs r1, 0
- bl sub_809C04C
- b _0809C048
- .align 2, 0
-_0809C03C: .4byte gUnknown_020384E6
-_0809C040: .4byte gUnknown_02038480
-_0809C044:
- bl sub_809BF74
-_0809C048:
- pop {r0}
- bx r0
- thumb_func_end sub_809C028
-
- thumb_func_start sub_809C04C
-sub_809C04C: @ 809C04C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- str r0, [sp]
- ldr r0, _0809C0FC @ =gUnknown_083B6DB4
- ldr r6, [r0]
- ldr r2, _0809C100 @ =0x000011f2
- adds r2, r6
- mov r8, r2
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r2]
- cmp r1, 0
- bne _0809C120
- adds r0, r7, 0
- movs r1, 0x41
- bl GetMonData
- ldr r2, _0809C104 @ =0x000011f0
- adds r1, r6, r2
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0809C08C
- b _0809C1EC
-_0809C08C:
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- ldr r2, _0809C108 @ =0x000011f9
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C10C @ =0x000011fa
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- ldr r2, _0809C110 @ =0x000011f8
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetMonData
- ldr r2, _0809C114 @ =0x000011f7
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- ldr r2, _0809C118 @ =0x000011ec
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl pokemon_get_pal
- ldr r2, _0809C11C @ =0x000011e8
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- b _0809C1B2
- .align 2, 0
-_0809C0FC: .4byte gUnknown_083B6DB4
-_0809C100: .4byte 0x000011f2
-_0809C104: .4byte 0x000011f0
-_0809C108: .4byte 0x000011f9
-_0809C10C: .4byte 0x000011fa
-_0809C110: .4byte 0x000011f8
-_0809C114: .4byte 0x000011f7
-_0809C118: .4byte 0x000011ec
-_0809C11C: .4byte 0x000011e8
-_0809C120:
- cmp r1, 0x1
- bne _0809C1D4
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- ldr r2, _0809C1B8 @ =0x000011f0
- adds r5, r6, r2
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- beq _0809C1EC
- adds r0, r7, 0
- movs r1, 0x1
- bl GetBoxMonData
- mov r9, r0
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetBoxMonData
- ldr r2, _0809C1BC @ =0x000011f9
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C1C0 @ =0x000011fa
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetBoxMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- bl GetLevelFromBoxMonExp
- ldr r2, _0809C1C4 @ =0x000011f8
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetBoxMonData
- ldr r2, _0809C1C8 @ =0x000011f7
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r2, r0, 0
- ldr r0, _0809C1CC @ =0x000011ec
- adds r4, r6, r0
- str r2, [r4]
- ldrh r0, [r5]
- mov r1, r9
- bl species_and_otid_get_pal
- ldr r2, _0809C1D0 @ =0x000011e8
- adds r1, r6, r2
- str r0, [r1]
- ldrh r0, [r5]
- ldr r1, [r4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetBoxMonData
-_0809C1B2:
- mov r1, r8
- strh r0, [r1]
- b _0809C1DE
- .align 2, 0
-_0809C1B8: .4byte 0x000011f0
-_0809C1BC: .4byte 0x000011f9
-_0809C1C0: .4byte 0x000011fa
-_0809C1C4: .4byte 0x000011f8
-_0809C1C8: .4byte 0x000011f7
-_0809C1CC: .4byte 0x000011ec
-_0809C1D0: .4byte 0x000011e8
-_0809C1D4:
- ldr r2, _0809C220 @ =0x000011f0
- adds r0, r6, r2
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0]
-_0809C1DE:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809C220 @ =0x000011f0
- adds r0, r4, r2
- ldrh r1, [r0]
- cmp r1, 0
- bne _0809C23C
-_0809C1EC:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C228 @ =0x000011fa
- adds r2, r1, r0
- movs r0, 0xFF
- strb r0, [r2]
- ldr r0, _0809C22C @ =0x0000120f
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C230 @ =0x00001234
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C234 @ =0x00001259
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r2, _0809C238 @ =0x0000127a
- adds r1, r2
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C220: .4byte 0x000011f0
-_0809C224: .4byte gUnknown_083B6DB4
-_0809C228: .4byte 0x000011fa
-_0809C22C: .4byte 0x0000120f
-_0809C230: .4byte 0x00001234
-_0809C234: .4byte 0x00001259
-_0809C238: .4byte 0x0000127a
-_0809C23C:
- ldr r2, _0809C28C @ =0x000011f9
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C2A4
- ldr r0, _0809C290 @ =0x0000120f
- adds r7, r4, r0
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x4
- strb r0, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r1, _0809C294 @ =0x00001214
- adds r7, r4, r1
- adds r2, 0x1
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C298 @ =0x00001234
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, _0809C29C @ =0x00001259
- adds r1, r4, r2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- ldr r0, _0809C2A0 @ =0x0000127a
- adds r1, r4, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C28C: .4byte 0x000011f9
-_0809C290: .4byte 0x0000120f
-_0809C294: .4byte 0x00001214
-_0809C298: .4byte 0x00001234
-_0809C29C: .4byte 0x00001259
-_0809C2A0: .4byte 0x0000127a
-_0809C2A4:
- cmp r1, 0x20
- beq _0809C2AC
- cmp r1, 0x1D
- bne _0809C2B0
-_0809C2AC:
- movs r1, 0xFF
- str r1, [sp]
-_0809C2B0:
- ldr r0, _0809C388 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809C38C @ =0x0000120f
- adds r7, r4, r2
- movs r0, 0xFC
- mov r9, r0
- strb r0, [r7]
- movs r1, 0x4
- mov r8, r1
- strb r1, [r7, 0x1]
- movs r2, 0xF
- strb r2, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r6, 0x1
- strb r6, [r7, 0x4]
- ldr r1, _0809C390 @ =0x00001214
- adds r7, r4, r1
- ldr r2, _0809C394 @ =0x000011fa
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C398 @ =0x00001234
- adds r7, r4, r0
- mov r1, r9
- strb r1, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r7, 0x6]
- movs r1, 0x7
- strb r1, [r7, 0x7]
- movs r0, 0xBA
- strb r0, [r7, 0x8]
- ldr r2, _0809C39C @ =0x0000123d
- adds r7, r4, r2
- ldr r1, _0809C3A0 @ =0x000011f0
- adds r0, r4, r1
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _0809C3A4 @ =gSpeciesNames
- adds r1, r0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- mov r2, r9
- strb r2, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- movs r0, 0x50
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r1, _0809C3A8 @ =0x00001259
- adds r7, r4, r1
- strb r2, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- mov r0, r10
- strb r0, [r7, 0x6]
- movs r6, 0x8
- strb r6, [r7, 0x7]
- ldr r1, _0809C3AC @ =0x00001261
- adds r7, r4, r1
- movs r0, 0x34
- strb r0, [r7]
- ldr r2, _0809C3B0 @ =0x00001262
- adds r7, r4, r2
- ldr r0, _0809C3B4 @ =0x000011f8
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r7, 0
- movs r2, 0x22
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- mov r1, r9
- strb r1, [r7]
- movs r0, 0x11
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- adds r7, 0x3
- ldr r2, [sp]
- cmp r2, 0
- beq _0809C3B8
- cmp r2, 0xFE
- beq _0809C3D0
- b _0809C3EA
- .align 2, 0
-_0809C388: .4byte gUnknown_083B6DB4
-_0809C38C: .4byte 0x0000120f
-_0809C390: .4byte 0x00001214
-_0809C394: .4byte 0x000011fa
-_0809C398: .4byte 0x00001234
-_0809C39C: .4byte 0x0000123d
-_0809C3A0: .4byte 0x000011f0
-_0809C3A4: .4byte gSpeciesNames
-_0809C3A8: .4byte 0x00001259
-_0809C3AC: .4byte 0x00001261
-_0809C3B0: .4byte 0x00001262
-_0809C3B4: .4byte 0x000011f8
-_0809C3B8:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- strb r1, [r7, 0x2]
- mov r2, sp
- ldrb r2, [r2]
- strb r2, [r7, 0x3]
- movs r0, 0x5
- strb r0, [r7, 0x4]
- movs r0, 0xB5
- b _0809C3E6
-_0809C3D0:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- movs r2, 0
- strb r2, [r7, 0x3]
- movs r0, 0x7
- strb r0, [r7, 0x4]
- movs r0, 0xB6
-_0809C3E6:
- strb r0, [r7, 0x5]
- adds r7, 0x6
-_0809C3EA:
- movs r5, 0xFF
- strb r5, [r7]
- ldr r0, _0809C450 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r1, _0809C454 @ =0x0000127a
- adds r7, r2, r1
- ldr r0, _0809C458 @ =0x000011f2
- adds r3, r2, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _0809C43C
- movs r4, 0xFC
- strb r4, [r7]
- movs r1, 0x4
- strb r1, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r0, _0809C45C @ =0x0000127f
- adds r7, r2, r0
- strb r4, [r7]
- movs r0, 0x6
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- ldr r1, _0809C460 @ =0x00001282
- adds r7, r2, r1
- ldrh r0, [r3]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x7
- strb r0, [r7, 0x1]
- adds r7, 0x2
-_0809C43C:
- strb r5, [r7]
-_0809C43E:
- 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
-_0809C450: .4byte gUnknown_083B6DB4
-_0809C454: .4byte 0x0000127a
-_0809C458: .4byte 0x000011f2
-_0809C45C: .4byte 0x0000127f
-_0809C460: .4byte 0x00001282
- thumb_func_end sub_809C04C
-
- thumb_func_start sub_809C464
-sub_809C464: @ 809C464
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0809C4D8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r8, r0
- ldr r2, _0809C4DC @ =gUnknown_020384E5
- ldrb r4, [r2]
- ldr r0, _0809C4E0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C4E4 @ =0x000011de
- adds r7, r1, r0
- movs r0, 0
- strb r0, [r7]
- ldr r3, _0809C4E8 @ =0x000011df
- adds r5, r1, r3
- strb r0, [r5]
- adds r3, 0x4
- adds r6, r1, r3
- strb r0, [r6]
- ldr r0, _0809C4EC @ =gMain
- mov r12, r0
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _0809C4A0
- b _0809C62A
-_0809C4A0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809C4F0
- movs r1, 0x1
- mov r9, r1
- lsls r0, r4, 24
- movs r3, 0xC0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x1D
- bgt _0809C4BE
- b _0809C648
-_0809C4BE:
- movs r1, 0x3
- mov r8, r1
- subs r0, 0x1E
- lsls r0, 24
- asrs r0, 24
- bl __divsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r3, r9
- strb r3, [r7]
- strb r3, [r6]
- b _0809C648
- .align 2, 0
-_0809C4D8: .4byte gUnknown_020384E4
-_0809C4DC: .4byte gUnknown_020384E5
-_0809C4E0: .4byte gUnknown_083B6DB4
-_0809C4E4: .4byte 0x000011de
-_0809C4E8: .4byte 0x000011df
-_0809C4EC: .4byte gMain
-_0809C4F0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809C524
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 24
- cmp r0, 0
- beq _0809C514
- lsls r0, r4, 24
- movs r1, 0xFF
- lsls r1, 24
- b _0809C63C
-_0809C514:
- movs r0, 0xFF
- strb r0, [r5]
- lsls r0, r4, 24
- movs r3, 0xA0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- b _0809C648
-_0809C524:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C554
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, 0x1
- movs r1, 0x6
- bl __modsi3
- cmp r0, 0
- beq _0809C548
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- b _0809C63C
-_0809C548:
- mov r3, r9
- strb r3, [r5]
- lsls r0, r4, 24
- movs r1, 0xFB
- lsls r1, 24
- b _0809C63C
-_0809C554:
- mov r3, r12
- ldrh r1, [r3, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0809C56A
- movs r0, 0x1
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
- b _0809C646
-_0809C56A:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C5D4
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C5D4
- ldr r0, _0809C588 @ =gUnknown_020384E9
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C58C
- movs r0, 0x8
- b _0809C658
- .align 2, 0
-_0809C588: .4byte gUnknown_020384E9
-_0809C58C:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C5D4
- lsls r0, 2
- ldr r1, _0809C5A8 @ =_0809C5AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C5A8: .4byte _0809C5AC
- .align 2, 0
-_0809C5AC:
- .4byte _0809C5C0
- .4byte _0809C5C4
- .4byte _0809C5C8
- .4byte _0809C5CC
- .4byte _0809C5D0
-_0809C5C0:
- movs r0, 0xB
- b _0809C658
-_0809C5C4:
- movs r0, 0xC
- b _0809C658
-_0809C5C8:
- movs r0, 0xD
- b _0809C658
-_0809C5CC:
- movs r0, 0xE
- b _0809C658
-_0809C5D0:
- movs r0, 0xF
- b _0809C658
-_0809C5D4:
- ldr r2, _0809C5E4 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C5E8
- movs r0, 0x10
- b _0809C658
- .align 2, 0
-_0809C5E4: .4byte gMain
-_0809C5E8:
- ldr r0, _0809C600 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809C612
- ldrh r1, [r2, 0x2C]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0809C604
- movs r0, 0xA
- b _0809C658
- .align 2, 0
-_0809C600: .4byte gSaveBlock2
-_0809C604:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0809C612
- movs r0, 0x9
- b _0809C658
-_0809C612:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C624
- bl sub_809CD88
- movs r0, 0
- b _0809C658
-_0809C624:
- movs r3, 0
- mov r9, r3
- b _0809C656
-_0809C62A:
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- ble _0809C642
- lsls r0, r4, 24
- movs r1, 0xFA
- lsls r1, 24
-_0809C63C:
- adds r0, r1
- lsrs r4, r0, 24
- b _0809C648
-_0809C642:
- movs r3, 0x2
- mov r8, r3
-_0809C646:
- movs r4, 0
-_0809C648:
- mov r0, r9
- cmp r0, 0
- beq _0809C656
- mov r0, r8
- adds r1, r4, 0
- bl sub_809AF18
-_0809C656:
- mov r0, r9
-_0809C658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C464
-
- thumb_func_start sub_809C664
-sub_809C664: @ 809C664
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809C6D8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r10, r0
- ldr r7, _0809C6DC @ =gUnknown_020384E5
- ldrb r4, [r7]
- ldr r2, _0809C6E0 @ =gUnknown_083B6DB4
- ldr r5, [r2]
- ldr r1, _0809C6E4 @ =0x000011df
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809C6E8 @ =0x000011de
- adds r0, r5, r3
- strb r1, [r0]
- adds r3, 0x5
- adds r0, r5, r3
- strb r1, [r0]
- mov r9, r1
- mov r8, r1
- ldr r1, _0809C6EC @ =gMain
- ldrh r3, [r1, 0x30]
- movs r0, 0x40
- ands r0, r3
- adds r6, r7, 0
- mov r12, r2
- adds r2, r1, 0
- cmp r0, 0
- beq _0809C6A8
- b _0809C81C
-_0809C6A8:
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809C6F0
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x6
- ble _0809C6C2
- movs r4, 0
-_0809C6C2:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- bne _0809C6D0
- b _0809C83C
-_0809C6D0:
- movs r2, 0x1
- mov r8, r2
- b _0809C842
- .align 2, 0
-_0809C6D8: .4byte gUnknown_020384E4
-_0809C6DC: .4byte gUnknown_020384E5
-_0809C6E0: .4byte gUnknown_083B6DB4
-_0809C6E4: .4byte 0x000011df
-_0809C6E8: .4byte 0x000011de
-_0809C6EC: .4byte gMain
-_0809C6F0:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0809C714
- ldrb r1, [r6]
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- beq _0809C714
- movs r3, 0x1
- mov r8, r3
- ldr r2, _0809C710 @ =0x000011e2
- adds r0, r5, r2
- strb r1, [r0]
- movs r4, 0
- b _0809C83C
- .align 2, 0
-_0809C710: .4byte 0x000011e2
-_0809C714:
- ldrh r1, [r2, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C748
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- bne _0809C73C
- movs r3, 0x1
- mov r8, r3
- mov r1, r12
- ldr r0, [r1]
- ldr r2, _0809C738 @ =0x000011e2
- adds r0, r2
- ldrb r4, [r0]
- b _0809C83C
- .align 2, 0
-_0809C738: .4byte 0x000011e2
-_0809C73C:
- movs r3, 0x6
- mov r8, r3
- movs r0, 0
- mov r10, r0
- movs r4, 0
- b _0809C83C
-_0809C748:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C7D0
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- bne _0809C76E
- mov r1, r12
- ldr r0, [r1]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C768
- movs r0, 0x4
- b _0809C84C
-_0809C768:
- movs r2, 0x1
- mov r9, r2
- b _0809C7D0
-_0809C76E:
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C7D0
- ldr r0, _0809C784 @ =gUnknown_020384E9
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C788
- movs r0, 0x8
- b _0809C84C
- .align 2, 0
-_0809C784: .4byte gUnknown_020384E9
-_0809C788:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C7D0
- lsls r0, 2
- ldr r1, _0809C7A4 @ =_0809C7A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C7A4: .4byte _0809C7A8
- .align 2, 0
-_0809C7A8:
- .4byte _0809C7BC
- .4byte _0809C7C0
- .4byte _0809C7C4
- .4byte _0809C7C8
- .4byte _0809C7CC
-_0809C7BC:
- movs r0, 0xB
- b _0809C84C
-_0809C7C0:
- movs r0, 0xC
- b _0809C84C
-_0809C7C4:
- movs r0, 0xD
- b _0809C84C
-_0809C7C8:
- movs r0, 0xE
- b _0809C84C
-_0809C7CC:
- movs r0, 0xF
- b _0809C84C
-_0809C7D0:
- ldr r2, _0809C7EC @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C7F8
- ldr r0, _0809C7F0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C7F4
- movs r0, 0x10
- b _0809C84C
- .align 2, 0
-_0809C7EC: .4byte gMain
-_0809C7F0: .4byte gUnknown_083B6DB4
-_0809C7F4:
- movs r3, 0x1
- mov r9, r3
-_0809C7F8:
- mov r0, r9
- cmp r0, 0
- beq _0809C80A
- movs r1, 0x6
- mov r8, r1
- movs r2, 0
- mov r10, r2
- movs r4, 0
- b _0809C83C
-_0809C80A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C83C
- bl sub_809CD88
- movs r0, 0
- b _0809C84C
-_0809C81C:
- lsls r0, r4, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r0, r3
- lsrs r4, r0, 24
- cmp r0, 0
- bge _0809C82C
- movs r4, 0x6
-_0809C82C:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r7, r1]
- cmp r0, r1
- beq _0809C83C
- movs r0, 0x1
- mov r8, r0
-_0809C83C:
- mov r1, r8
- cmp r1, 0
- beq _0809C84A
-_0809C842:
- mov r0, r10
- adds r1, r4, 0
- bl sub_809AF18
-_0809C84A:
- mov r0, r8
-_0809C84C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C664
-
- thumb_func_start sub_809C85C
-sub_809C85C: @ 809C85C
- push {r4-r6,lr}
- ldr r0, _0809C894 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r1, _0809C898 @ =0x000011df
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809C89C @ =0x000011de
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0809C8A0 @ =0x000011e3
- adds r2, r0
- strb r1, [r2]
- ldr r1, _0809C8A4 @ =gMain
- ldrh r3, [r1, 0x30]
- movs r0, 0x40
- ands r0, r3
- cmp r0, 0
- bne _0809C91A
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809C8A8
- movs r4, 0x1
- movs r0, 0
- movs r5, 0x2
- b _0809C922
- .align 2, 0
-_0809C894: .4byte gUnknown_083B6DB4
-_0809C898: .4byte 0x000011df
-_0809C89C: .4byte 0x000011de
-_0809C8A0: .4byte 0x000011e3
-_0809C8A4: .4byte gMain
-_0809C8A8:
- ldrh r2, [r1, 0x2C]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0809C8CC
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0809C8DE
- ldr r0, _0809C8D0 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809C8E2
- movs r0, 0x80
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0809C8D4
-_0809C8CC:
- movs r0, 0xA
- b _0809C93E
- .align 2, 0
-_0809C8D0: .4byte gSaveBlock2
-_0809C8D4:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0809C8E2
-_0809C8DE:
- movs r0, 0x9
- b _0809C93E
-_0809C8E2:
- ldrh r1, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C8FA
- movs r0, 0
- bl sub_809A860
- bl sub_809CA8C
- movs r0, 0x7
- b _0809C93E
-_0809C8FA:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C906
- movs r0, 0x10
- b _0809C93E
-_0809C906:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C916
- bl sub_809CD88
- movs r0, 0
- b _0809C93E
-_0809C916:
- movs r4, 0
- b _0809C93C
-_0809C91A:
- movs r4, 0x1
- movs r0, 0x3
- movs r5, 0
- strb r4, [r2]
-_0809C922:
- cmp r4, 0
- beq _0809C93C
- lsls r6, r0, 24
- cmp r0, 0x2
- beq _0809C932
- movs r0, 0
- bl sub_809A860
-_0809C932:
- lsrs r0, r6, 24
- lsls r1, r5, 24
- lsrs r1, 24
- bl sub_809AF18
-_0809C93C:
- adds r0, r4, 0
-_0809C93E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809C85C
-
- thumb_func_start sub_809C944
-sub_809C944: @ 809C944
- push {r4-r7,lr}
- ldr r0, _0809C988 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r12, r0
- ldr r7, _0809C98C @ =gUnknown_020384E5
- ldrb r3, [r7]
- ldr r0, _0809C990 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C994 @ =0x000011df
- adds r5, r1, r0
- movs r0, 0
- strb r0, [r5]
- ldr r2, _0809C998 @ =0x000011de
- adds r4, r1, r2
- strb r0, [r4]
- adds r2, 0x5
- adds r1, r2
- strb r0, [r1]
- ldr r6, _0809C99C @ =gMain
- ldrh r2, [r6, 0x30]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _0809CA14
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- beq _0809C9A0
- movs r6, 0x1
- movs r0, 0x2
- mov r12, r0
- movs r3, 0
- b _0809CA2A
- .align 2, 0
-_0809C988: .4byte gUnknown_020384E4
-_0809C98C: .4byte gUnknown_020384E5
-_0809C990: .4byte gUnknown_083B6DB4
-_0809C994: .4byte 0x000011df
-_0809C998: .4byte 0x000011de
-_0809C99C: .4byte gMain
-_0809C9A0:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0809C9C0
- movs r6, 0x1
- lsls r0, r3, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r3, r0, 24
- cmp r0, 0
- bge _0809CA2C
- movs r0, 0xFF
- strb r0, [r5]
- movs r3, 0x1
- b _0809CA2C
-_0809C9C0:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _0809C9E0
- movs r6, 0x1
- lsls r0, r3, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x1
- ble _0809CA2C
- strb r6, [r5]
- movs r3, 0
- b _0809CA2C
-_0809C9E0:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C9F4
- movs r0, 0x4
- cmp r3, 0
- bne _0809CA3A
- movs r0, 0x5
- b _0809CA3A
-_0809C9F4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809CA00
- movs r0, 0x10
- b _0809CA3A
-_0809CA00:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809CA10
- bl sub_809CD88
- movs r0, 0
- b _0809CA3A
-_0809CA10:
- movs r6, 0
- b _0809CA38
-_0809CA14:
- movs r6, 0x1
- movs r0, 0
- mov r12, r0
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0
- ldrsb r0, [r7, r0]
- movs r3, 0x1D
- cmp r0, 0
- bne _0809CA2A
- movs r3, 0x18
-_0809CA2A:
- strb r6, [r1]
-_0809CA2C:
- cmp r6, 0
- beq _0809CA38
- mov r0, r12
- adds r1, r3, 0
- bl sub_809AF18
-_0809CA38:
- adds r0, r6, 0
-_0809CA3A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C944
-
- thumb_func_start sub_809CA40
-sub_809CA40: @ 809CA40
- push {r4,r5,lr}
- movs r3, 0
- ldr r0, _0809CA6C @ =gUnknown_083BBBD4
- ldr r1, [r0]
- adds r4, r0, 0
- cmp r1, 0
- beq _0809CA84
- ldr r5, _0809CA70 @ =gUnknown_020384E4
-_0809CA50:
- lsls r0, r3, 3
- adds r2, r0, r4
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bne _0809CA74
- ldr r0, [r2]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- b _0809CA86
- .align 2, 0
-_0809CA6C: .4byte gUnknown_083BBBD4
-_0809CA70: .4byte gUnknown_020384E4
-_0809CA74:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r0, r3, 3
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- bne _0809CA50
-_0809CA84:
- movs r0, 0
-_0809CA86:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809CA40
-
- thumb_func_start sub_809CA8C
-sub_809CA8C: @ 809CA8C
- push {lr}
- bl sub_809CDCC
- movs r0, 0x9
- bl sub_809CDEC
- movs r0, 0xA
- bl sub_809CDEC
- movs r0, 0xB
- bl sub_809CDEC
- movs r0, 0
- bl sub_809CDEC
- pop {r0}
- bx r0
- thumb_func_end sub_809CA8C
-
- thumb_func_start sub_809CAB0
-sub_809CAB0: @ 809CAB0
- push {lr}
- bl sub_809CDCC
- bl sub_809AB8C
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0809CAD4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- beq _0809CADE
- cmp r0, 0x1
- bgt _0809CAD8
- cmp r0, 0
- beq _0809CAEA
- b _0809CB24
- .align 2, 0
-_0809CAD4: .4byte gUnknown_083B6DB4
-_0809CAD8:
- cmp r0, 0x2
- beq _0809CAF6
- b _0809CB24
-_0809CADE:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x1
- bl sub_809CDEC
- b _0809CB28
-_0809CAEA:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x2
- bl sub_809CDEC
- b _0809CB28
-_0809CAF6:
- ldr r0, _0809CB0C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809CB18
- cmp r1, 0
- beq _0809CB10
- movs r0, 0x4
- bl sub_809CDEC
- b _0809CB28
- .align 2, 0
-_0809CB0C: .4byte gUnknown_020384E6
-_0809CB10:
- movs r0, 0x5
- bl sub_809CDEC
- b _0809CB28
-_0809CB18:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x3
- bl sub_809CDEC
- b _0809CB28
-_0809CB24:
- movs r0, 0
- b _0809CB6E
-_0809CB28:
- movs r0, 0x6
- bl sub_809CDEC
- ldr r0, _0809CB4C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x2
- bne _0809CB5A
- ldr r0, _0809CB50 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _0809CB54
- movs r0, 0x2
- bl sub_809CDEC
- b _0809CB5A
- .align 2, 0
-_0809CB4C: .4byte gUnknown_083B6DB4
-_0809CB50: .4byte gUnknown_020384E4
-_0809CB54:
- movs r0, 0x1
- bl sub_809CDEC
-_0809CB5A:
- movs r0, 0x8
- bl sub_809CDEC
- movs r0, 0x7
- bl sub_809CDEC
- movs r0, 0
- bl sub_809CDEC
- movs r0, 0x1
-_0809CB6E:
- pop {r1}
- bx r1
- thumb_func_end sub_809CAB0
-
- thumb_func_start sub_809CB74
-sub_809CB74: @ 809CB74
- ldr r1, _0809CB90 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- movs r2, 0x8E
- lsls r2, 5
- adds r1, r2
- ldr r2, [r1]
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0x20]
- ldr r1, [r1]
- ldrh r1, [r1, 0x22]
- adds r1, 0x14
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0809CB90: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809CB74
-
- thumb_func_start unref_sub_809CB94
-unref_sub_809CB94: @ 809CB94
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0809CBBC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809CBC8
- ldr r2, _0809CBC0 @ =gPlayerParty
- ldr r0, _0809CBC4 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x50
- bl memcpy
- b _0809CBF6
- .align 2, 0
-_0809CBBC: .4byte gUnknown_020384E4
-_0809CBC0: .4byte gPlayerParty
-_0809CBC4: .4byte gUnknown_020384E5
-_0809CBC8:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0809CBFC @ =gPokemonStorage
- ldr r1, _0809CC00 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- lsls r2, r0, 2
- adds r2, r0
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- adds r1, r0
- adds r1, r3
- adds r1, 0x4
- adds r0, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809CBF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CBFC: .4byte gPokemonStorage
-_0809CC00: .4byte gUnknown_020384E5
- thumb_func_end unref_sub_809CB94
-
- thumb_func_start sub_809CC04
-sub_809CC04: @ 809CC04
- push {r4-r7,lr}
- sub sp, 0x34
- mov r1, sp
- ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- add r4, sp, 0x18
- adds r1, r4, 0
- ldr r0, _0809CCB4 @ =gHandCursorSpritePalettes
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- ldr r0, _0809CCB8 @ =0x0000dac6
- bl IndexOfSpritePaletteTag
- ldr r1, _0809CCBC @ =gUnknown_083B6DB4
- ldr r6, [r1]
- ldr r4, _0809CCC0 @ =0x000011e4
- adds r7, r6, r4
- strb r0, [r7]
- ldr r0, _0809CCC4 @ =0x0000dad1
- bl IndexOfSpritePaletteTag
- ldr r5, _0809CCC8 @ =0x000011e5
- adds r1, r6, r5
- strb r0, [r1]
- ldr r0, _0809CCCC @ =gUnknown_020384E4
- ldrb r0, [r0]
- ldr r1, _0809CCD0 @ =gUnknown_020384E5
- ldrb r1, [r1]
- add r4, sp, 0x30
- mov r5, sp
- adds r5, 0x32
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_809AACC
- ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0
- ldrsh r2, [r5, r3]
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0809CCE4
- movs r5, 0x8E
- lsls r5, 5
- adds r4, r6, r5
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r0, _0809CCD8 @ =gSprites
- adds r1, r0
- str r1, [r4]
- ldr r0, _0809CCDC @ =gUnknown_020384E9
- ldrb r0, [r0]
- adds r0, r7, r0
- ldrb r2, [r0]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, _0809CCE0 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809CCEE
- ldr r0, [r4]
- movs r1, 0x3
- bl StartSpriteAnim
- b _0809CCEE
- .align 2, 0
-_0809CCB0: .4byte gHandCursorSpriteSheets
-_0809CCB4: .4byte gHandCursorSpritePalettes
-_0809CCB8: .4byte 0x0000dac6
-_0809CCBC: .4byte gUnknown_083B6DB4
-_0809CCC0: .4byte 0x000011e4
-_0809CCC4: .4byte 0x0000dad1
-_0809CCC8: .4byte 0x000011e5
-_0809CCCC: .4byte gUnknown_020384E4
-_0809CCD0: .4byte gUnknown_020384E5
-_0809CCD4: .4byte gSpriteTemplate_83BBC70
-_0809CCD8: .4byte gSprites
-_0809CCDC: .4byte gUnknown_020384E9
-_0809CCE0: .4byte gUnknown_020384E6
-_0809CCE4:
- movs r0, 0x8E
- lsls r0, 5
- adds r1, r6, r0
- movs r0, 0
- str r0, [r1]
-_0809CCEE:
- ldr r0, _0809CD00 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809CD04
- movs r3, 0xC
- movs r5, 0x1
- b _0809CD08
- .align 2, 0
-_0809CD00: .4byte gUnknown_020384E4
-_0809CD04:
- movs r3, 0x14
- movs r5, 0x2
-_0809CD08:
- ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88
- movs r1, 0
- movs r2, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0809CD6C
- ldr r0, _0809CD5C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809CD60 @ =0x000011c4
- adds r4, r0, r1
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r0, _0809CD64 @ =gSprites
- adds r1, r0
- str r1, [r4]
- lsls r3, r5, 2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldr r0, _0809CD68 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809CD78
- ldr r0, [r4]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809CD78
- .align 2, 0
-_0809CD58: .4byte gSpriteTemplate_83BBC88
-_0809CD5C: .4byte gUnknown_083B6DB4
-_0809CD60: .4byte 0x000011c4
-_0809CD64: .4byte gSprites
-_0809CD68: .4byte gUnknown_020384E4
-_0809CD6C:
- ldr r0, _0809CD80 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _0809CD84 @ =0x000011c4
- adds r0, r2
- movs r1, 0
- str r1, [r0]
-_0809CD78:
- add sp, 0x34
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CD80: .4byte gUnknown_083B6DB4
-_0809CD84: .4byte 0x000011c4
- thumb_func_end sub_809CC04
-
- thumb_func_start sub_809CD88
-sub_809CD88: @ 809CD88
- push {lr}
- ldr r2, _0809CDC0 @ =gUnknown_020384E9
- movs r1, 0
- ldrb r0, [r2]
- cmp r0, 0
- bne _0809CD96
- movs r1, 0x1
-_0809CD96:
- strb r1, [r2]
- ldr r0, _0809CDC4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0x8E
- lsls r3, 5
- adds r1, r0, r3
- ldr r3, [r1]
- ldr r1, _0809CDC8 @ =0x000011e4
- adds r0, r1
- ldrb r2, [r2]
- adds r0, r2
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r3, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- pop {r0}
- bx r0
- .align 2, 0
-_0809CDC0: .4byte gUnknown_020384E9
-_0809CDC4: .4byte gUnknown_083B6DB4
-_0809CDC8: .4byte 0x000011e4
- thumb_func_end sub_809CD88
-
- thumb_func_start sub_809CDCC
-sub_809CDCC: @ 809CDCC
- ldr r0, _0809CDE0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _0809CDE4 @ =0x000011b8
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0809CDE8 @ =0x000011b9
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0809CDE0: .4byte gUnknown_083B6DB4
-_0809CDE4: .4byte 0x000011b8
-_0809CDE8: .4byte 0x000011b9
- thumb_func_end sub_809CDCC
-
- thumb_func_start sub_809CDEC
-sub_809CDEC: @ 809CDEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809CE3C @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _0809CE40 @ =0x000011b8
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x6
- bhi _0809CE36
- adds r1, r0, 0
- lsls r1, 3
- movs r2, 0x8C
- lsls r2, 5
- adds r1, r2
- adds r1, r5, r1
- ldr r2, _0809CE44 @ =gUnknown_083BBCA0
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- str r3, [r1, 0x4]
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r1, 3
- ldr r2, _0809CE48 @ =0x000011b9
- adds r0, r5, r2
- ldrb r2, [r0]
- cmp r1, r2
- bls _0809CE30
- strb r1, [r0]
-_0809CE30:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_0809CE36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CE3C: .4byte gUnknown_083B6DB4
-_0809CE40: .4byte 0x000011b8
-_0809CE44: .4byte gUnknown_083BBCA0
-_0809CE48: .4byte 0x000011b9
- thumb_func_end sub_809CDEC
-
- thumb_func_start sub_809CE4C
-sub_809CE4C: @ 809CE4C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0809CE70 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _0809CE74 @ =0x000011b8
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcs _0809CE7C
- lsls r0, r2, 3
- ldr r2, _0809CE78 @ =0x00001184
- adds r1, r2
- adds r1, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- b _0809CE80
- .align 2, 0
-_0809CE70: .4byte gUnknown_083B6DB4
-_0809CE74: .4byte 0x000011b8
-_0809CE78: .4byte 0x00001184
-_0809CE7C:
- movs r0, 0x1
- negs r0, r0
-_0809CE80:
- pop {r1}
- bx r1
- thumb_func_end sub_809CE4C
-
- thumb_func_start sub_809CE84
-sub_809CE84: @ 809CE84
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _0809CF20 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809CF24 @ =0x000011b8
- adds r0, r4
- mov r8, r0
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0xE
- subs r1, r0
- ldr r3, _0809CF28 @ =0x000011bc
- adds r6, r4, r3
- movs r0, 0
- mov r10, r0
- strh r1, [r6]
- ldr r1, _0809CF2C @ =0x000011b9
- adds r1, r4
- mov r9, r1
- ldrb r1, [r1]
- movs r0, 0x1C
- subs r0, r1
- subs r3, 0x2
- adds r5, r4, r3
- strh r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuDrawTextWindow
- ldrb r0, [r5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r3, r8
- ldrb r2, [r3]
- movs r3, 0x8C
- lsls r3, 5
- adds r4, r3
- adds r3, r4, 0
- bl PrintMenuItems
- ldrb r1, [r5]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- mov r4, r8
- ldrb r3, [r4]
- mov r0, r10
- str r0, [sp]
- mov r4, r9
- ldrb r0, [r4]
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CF20: .4byte gUnknown_083B6DB4
-_0809CF24: .4byte 0x000011b8
-_0809CF28: .4byte 0x000011bc
-_0809CF2C: .4byte 0x000011b9
- thumb_func_end sub_809CE84
-
- thumb_func_start sub_809CF30
-sub_809CF30: @ 809CF30
- push {r4,r5,lr}
- movs r5, 0x2
- negs r5, r5
- ldr r4, _0809CF6C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809CF86
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809CF52
- movs r0, 0x5
- bl PlaySE
- adds r5, 0x1
-_0809CF52:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809CF70
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0809CF8E
- .align 2, 0
-_0809CF6C: .4byte gMain
-_0809CF70:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809CF8E
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0809CF8E
-_0809CF86:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r5, r0, 24
-_0809CF8E:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _0809CFB2
- bl sub_8072DEC
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809CFD4 @ =0x000011ba
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
-_0809CFB2:
- cmp r5, 0
- blt _0809CFC4
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r5, 3
- ldr r2, _0809CFD8 @ =0x00001184
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
-_0809CFC4:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CFD0: .4byte gUnknown_083B6DB4
-_0809CFD4: .4byte 0x000011ba
-_0809CFD8: .4byte 0x00001184
- thumb_func_end sub_809CF30
-
- thumb_func_start sub_809CFDC
-sub_809CFDC: @ 809CFDC
- ldr r3, _0809CFEC @ =gUnknown_020384EC
- str r0, [r3]
- str r1, [r0]
- movs r1, 0
- strb r2, [r0, 0x5]
- strb r1, [r0, 0x4]
- bx lr
- .align 2, 0
-_0809CFEC: .4byte gUnknown_020384EC
- thumb_func_end sub_809CFDC
-
- thumb_func_start sub_809CFF0
-sub_809CFF0: @ 809CFF0
- push {r4,r5,lr}
- ldr r2, _0809D030 @ =gUnknown_020384EC
- ldr r1, [r2]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809D02A
- movs r4, 0
- ldrb r1, [r1, 0x4]
- cmp r4, r1
- bcs _0809D022
- adds r5, r2, 0
-_0809D006:
- ldr r0, [r5]
- lsls r1, r4, 4
- ldr r0, [r0]
- adds r0, r1
- ldr r1, [r0, 0xC]
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcc _0809D006
-_0809D022:
- ldr r0, _0809D030 @ =gUnknown_020384EC
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x4]
-_0809D02A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D030: .4byte gUnknown_020384EC
- thumb_func_end sub_809CFF0
-
- thumb_func_start sub_809D034
-sub_809D034: @ 809D034
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- mov r9, r3
- ldr r0, [sp, 0x20]
- ldr r3, [sp, 0x24]
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _0809D0A4 @ =gUnknown_020384EC
- ldr r2, [r0]
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0
- ldrb r7, [r2, 0x5]
- cmp r1, r7
- bcs _0809D0AC
- adds r0, 0x1
- strb r0, [r2, 0x4]
- lsls r0, r1, 4
- ldr r2, [r2]
- adds r2, r0
- lsls r0, r4, 1
- strh r0, [r2, 0x8]
- lsls r0, r6, 6
- add r0, r8
- mov r4, r10
- lsls r1, r4, 1
- adds r0, r1
- str r0, [r2, 0x4]
- lsls r0, r3, 6
- add r0, r9
- mov r7, r12
- lsls r1, r7, 1
- adds r0, r1
- str r0, [r2]
- strh r5, [r2, 0xA]
- ldr r0, _0809D0A8 @ =sub_809D0BC
- str r0, [r2, 0xC]
- movs r0, 0x1
- b _0809D0AE
- .align 2, 0
-_0809D0A4: .4byte gUnknown_020384EC
-_0809D0A8: .4byte sub_809D0BC
-_0809D0AC:
- movs r0, 0
-_0809D0AE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D034
-
- thumb_func_start sub_809D0BC
-sub_809D0BC: @ 809D0BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, [r0]
- ldr r5, [r0, 0x4]
- ldrh r7, [r0, 0xA]
- ldrh r2, [r0, 0x8]
- movs r4, 0
- cmp r4, r7
- bcs _0809D0F2
- lsrs r2, 1
- mov r8, r2
- ldr r0, _0809D100 @ =0x001fffff
- mov r9, r0
-_0809D0DA:
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r9
- ands r2, r3
- bl CpuSet
- adds r5, 0x40
- adds r6, 0x40
- adds r4, 0x1
- cmp r4, r7
- bcc _0809D0DA
-_0809D0F2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D100: .4byte 0x001fffff
- thumb_func_end sub_809D0BC
-
- thumb_func_start sub_809D104
-sub_809D104: @ 809D104
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- mov r8, r6
- ldr r6, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r5, 16
- lsls r4, 16
- mov r7, r8
- lsls r7, 16
- lsls r6, 16
- lsrs r6, 16
- lsrs r4, 10
- adds r3, r4
- lsrs r5, 15
- adds r5, r3, r5
- lsls r3, r2, 6
- adds r3, r0, r3
- lsrs r1, 15
- adds r4, r3, r1
- adds r2, r6
- lsls r2, 6
- adds r6, r0, r2
- lsrs r2, r7, 15
- cmp r4, r6
- bcs _0809D15C
- lsrs r7, r2, 1
- ldr r0, _0809D168 @ =0x001fffff
- mov r8, r0
-_0809D148:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- ands r2, r7
- bl CpuSet
- adds r4, 0x40
- adds r5, 0x40
- cmp r4, r6
- bcc _0809D148
-_0809D15C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D168: .4byte 0x001fffff
- thumb_func_end sub_809D104
-
- thumb_func_start sub_809D16C
-sub_809D16C: @ 809D16C
- push {r4-r7,lr}
- mov r12, r0
- ldr r0, [sp, 0x14]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0809D1B4 @ =gUnknown_020384EC
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- adds r2, r0, 0
- ldrb r7, [r1, 0x5]
- cmp r2, r7
- bcs _0809D1BC
- adds r0, 0x1
- strb r0, [r1, 0x4]
- lsls r0, r2, 4
- ldr r1, [r1]
- adds r1, r0
- lsls r0, r3, 1
- strh r0, [r1, 0x8]
- lsls r0, r4, 5
- adds r0, r6
- lsls r0, 1
- add r0, r12
- str r0, [r1, 0x4]
- strh r5, [r1, 0xA]
- ldr r0, _0809D1B8 @ =sub_809D1C4
- str r0, [r1, 0xC]
- movs r0, 0x1
- b _0809D1BE
- .align 2, 0
-_0809D1B4: .4byte gUnknown_020384EC
-_0809D1B8: .4byte sub_809D1C4
-_0809D1BC:
- movs r0, 0
-_0809D1BE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D16C
-
- thumb_func_start sub_809D1C4
-sub_809D1C4: @ 809D1C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r0, 0
- movs r0, 0
- ldrh r1, [r6, 0xA]
- cmp r0, r1
- bcs _0809D252
- movs r7, 0x80
- lsls r7, 5
- mov r5, sp
- ldr r2, _0809D210 @ =0x040000d4
- mov r8, r2
- movs r1, 0x81
- lsls r1, 24
- mov r10, r1
-_0809D1EA:
- ldr r2, [r6, 0x4]
- ldrh r3, [r6, 0x8]
- mov r12, r2
- adds r0, 0x1
- mov r9, r0
- cmp r3, r7
- bhi _0809D214
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- mov r0, r8
- str r2, [r0]
- mov r1, r12
- str r1, [r0, 0x4]
- lsrs r0, r3, 1
- mov r2, r10
- orrs r0, r2
- mov r1, r8
- b _0809D23C
- .align 2, 0
-_0809D210: .4byte 0x040000d4
-_0809D214:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _0809D264 @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0809D268 @ =0x81000800
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r7
- subs r3, r7
- cmp r3, r7
- bhi _0809D214
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r10
- orrs r0, r2
-_0809D23C:
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, r12
- adds r0, 0x40
- str r0, [r6, 0x4]
- mov r1, r9
- lsls r0, r1, 16
- lsrs r0, 16
- ldrh r2, [r6, 0xA]
- cmp r0, r2
- bcc _0809D1EA
-_0809D252:
- 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
-_0809D264: .4byte 0x040000d4
-_0809D268: .4byte 0x81000800
- thumb_func_end sub_809D1C4
-
- thumb_func_start unref_sub_809D26C
-unref_sub_809D26C: @ 809D26C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D2E0 @ =gOamData_83BC5E8
- str r4, [sp]
- ldr r5, _0809D2E4 @ =gMonIconTable
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C
- str r4, [sp, 0x8]
- ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D2F0 @ =gMonIconPaletteIndices
- adds r0, r1
- ldr r4, _0809D2F4 @ =0x0000dac0
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D2F8 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D2E0: .4byte gOamData_83BC5E8
-_0809D2E4: .4byte gMonIconTable
-_0809D2E8: .4byte gSpriteAnimTable_83BC62C
-_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
-_0809D2F0: .4byte gMonIconPaletteIndices
-_0809D2F4: .4byte 0x0000dac0
-_0809D2F8: .4byte gSprites
- thumb_func_end unref_sub_809D26C
-
- thumb_func_start sub_809D2FC
-sub_809D2FC: @ 809D2FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x48]
- ldr r1, [sp, 0x4C]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809D38C @ =gOamData_83BC5E8
- str r0, [sp, 0x18]
- adds r0, r4, 0
- bl sub_809D4F4
- str r0, [sp, 0x1C]
- ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C
- str r0, [sp, 0x20]
- ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660
- str r0, [sp, 0x24]
- str r5, [sp, 0x28]
- ldr r0, _0809D398 @ =gMonIconPaletteIndices
- adds r0, r4, r0
- ldr r1, _0809D39C @ =0x0000dac0
- adds r5, r1, 0
- ldrb r0, [r0]
- adds r1, r5, r0
- add r0, sp, 0x2C
- strh r1, [r0]
- add r1, sp, 0x18
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _0809D35A
- mov r0, sp
- strh r5, [r0, 0x14]
-_0809D35A:
- lsls r1, r7, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r8
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D3A0 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D38C: .4byte gOamData_83BC5E8
-_0809D390: .4byte gSpriteAnimTable_83BC62C
-_0809D394: .4byte gSpriteAffineAnimTable_83BC660
-_0809D398: .4byte gMonIconPaletteIndices
-_0809D39C: .4byte 0x0000dac0
-_0809D3A0: .4byte gSprites
- thumb_func_end sub_809D2FC
-
- thumb_func_start sub_809D3A4
-sub_809D3A4: @ 809D3A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D418 @ =gOamData_83BC5E8
- str r4, [sp]
- ldr r5, _0809D41C @ =gMonIconTable
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C
- str r4, [sp, 0x8]
- ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D428 @ =gMonIconPaletteIndices
- adds r0, r1
- ldr r4, _0809D42C @ =0x0000dac0
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D430 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D418: .4byte gOamData_83BC5E8
-_0809D41C: .4byte gMonIconTable
-_0809D420: .4byte gSpriteAnimTable_83BC62C
-_0809D424: .4byte gSpriteAffineAnimTable_83BC660
-_0809D428: .4byte gMonIconPaletteIndices
-_0809D42C: .4byte 0x0000dac0
-_0809D430: .4byte gSprites
- thumb_func_end sub_809D3A4
-
- thumb_func_start mon_icon_convert_unown_species_id
-mon_icon_convert_unown_species_id: @ 809D434
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, SPECIES_UNOWN
- bne _0809D45E
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0809D450
- movs r0, SPECIES_UNOWN
- b _0809D45A
-_0809D450:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0809D45A:
- adds r1, r0, 0
- b _0809D46C
-_0809D45E:
- movs r0, 0xCE
- lsls r0, 1
- adds r1, r2, 0
- cmp r1, r0
- bls _0809D46C
- movs r1, 0x82
- lsls r1, 1
-_0809D46C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end mon_icon_convert_unown_species_id
-
- thumb_func_start sub_809D474
-sub_809D474: @ 809D474
- push {lr}
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809D474
-
- thumb_func_start sub_809D4A8
-sub_809D4A8: @ 809D4A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- lsrs r0, 16
- cmp r0, SPECIES_UNOWN
- bne _0809D4DE
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809D4CE
- mov r1, sp
- adds r0, SPECIES_UNOWN
- b _0809D4D6
-_0809D4CE:
- mov r1, sp
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r2
-_0809D4D6:
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- b _0809D4EA
-_0809D4DE:
- adds r0, r4, 0
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
-_0809D4EA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D4A8
-
- thumb_func_start sub_809D4F4
-sub_809D4F4: @ 809D4F4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- ldr r1, _0809D50C @ =gMonIconTable
- lsrs r0, 14
- adds r0, r1
- ldr r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_0809D50C: .4byte gMonIconTable
- thumb_func_end sub_809D4F4
-
- thumb_func_start sub_809D510
-sub_809D510: @ 809D510
- push {lr}
- bl sub_809D7E8
- pop {r0}
- bx r0
- thumb_func_end sub_809D510
-
- thumb_func_start sub_809D51C
-sub_809D51C: @ 809D51C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D53C @ =gMonIconPaletteTable
-_0809D522:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadSpritePalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D522
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D53C: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D51C
-
- thumb_func_start unref_sub_809D540
-unref_sub_809D540: @ 809D540
- push {r4,lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D552
- movs r1, 0x82
- lsls r1, 1
-_0809D552:
- ldr r0, _0809D578 @ =gMonIconPaletteIndices
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D57C @ =gMonIconPaletteTable
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D572
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D572:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D578: .4byte gMonIconPaletteIndices
-_0809D57C: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D540
-
- thumb_func_start sub_809D580
-sub_809D580: @ 809D580
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D5AC @ =gMonIconPaletteIndices
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D5B0 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D5A6
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5AC: .4byte gMonIconPaletteIndices
-_0809D5B0: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D580
-
- thumb_func_start unref_sub_809D5B4
-unref_sub_809D5B4: @ 809D5B4
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D5D4 @ =gMonIconPaletteTable
-_0809D5BA:
- lsls r0, r4, 3
- adds r0, r5
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D5BA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5D4: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5B4
-
- thumb_func_start unref_sub_809D5D8
-unref_sub_809D5D8: @ 809D5D8
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D5EA
- movs r1, 0x82
- lsls r1, 1
-_0809D5EA:
- ldr r0, _0809D600 @ =gMonIconPaletteIndices
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D604 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D600: .4byte gMonIconPaletteIndices
-_0809D604: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5D8
-
- thumb_func_start sub_809D608
-sub_809D608: @ 809D608
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D624 @ =gMonIconPaletteIndices
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D628 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D624: .4byte gMonIconPaletteIndices
-_0809D628: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D608
-
- thumb_func_start sub_809D62C
-sub_809D62C: @ 809D62C
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_809D62C
-
- thumb_func_start sub_809D638
-sub_809D638: @ 809D638
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r7, 0
- adds r6, r4, 0
- adds r6, 0x2C
- ldrb r2, [r6]
- movs r0, 0x3F
- mov r9, r0
- ands r0, r2
- cmp r0, 0
- bne _0809D6EC
- movs r1, 0x2A
- adds r1, r4
- mov r8, r1
- ldrb r1, [r1]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r5, r4, 0
- adds r5, 0x2B
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r0, 0x2
- negs r0, r0
- cmp r3, r0
- beq _0809D682
- adds r0, 0x1
- cmp r3, r0
- bne _0809D686
- b _0809D700
-_0809D682:
- strb r7, [r5]
- b _0809D700
-_0809D686:
- ldr r2, _0809D6E4 @ =gSpriteImageSizes
- ldrb r1, [r4, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r4, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- adds r1, r2, 0
- muls r1, r3
- ldr r0, [r4, 0xC]
- adds r0, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r3, _0809D6E8 @ =0x06010000
- adds r1, r3
- bl RequestSpriteCopy
- mov r0, r8
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 10
- lsrs r0, 26
- mov r1, r9
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldrb r7, [r5]
- b _0809D700
- .align 2, 0
-_0809D6E4: .4byte gSpriteImageSizes
-_0809D6E8: .4byte 0x06010000
-_0809D6EC:
- lsls r0, r2, 26
- lsrs r0, 26
- subs r0, 0x1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6]
-_0809D700:
- adds r0, r7, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D638
-
- thumb_func_start sub_809D710
-sub_809D710: @ 809D710
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x38
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- str r0, [sp, 0x30]
- ldr r2, _0809D7D8 @ =gSpriteImageSizes
- mov r0, r9
- ldr r6, [r0]
- ldrb r1, [r6, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r6, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- ldr r1, _0809D7DC @ =0xffff0000
- add r3, sp, 0x30
- ldr r0, [r3, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [r3, 0x4]
- add r1, sp, 0x18
- ldr r0, _0809D7E0 @ =0x0000ffff
- strh r0, [r1]
- mov r0, r9
- ldrh r2, [r0, 0x14]
- mov r0, sp
- adds r0, 0x1A
- strh r2, [r0]
- str r6, [sp, 0x1C]
- mov r2, r9
- ldr r0, [r2, 0x8]
- str r0, [sp, 0x20]
- str r3, [sp, 0x24]
- ldr r0, [r2, 0xC]
- str r0, [sp, 0x28]
- ldr r0, [r2, 0x10]
- str r0, [sp, 0x2C]
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0809D7E4 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r4, r3, r6
- adds r5, r4, 0
- adds r5, 0x2C
- ldrb r1, [r5]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r5]
- adds r4, 0x3F
- ldrb r2, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r4]
- adds r6, 0xC
- adds r3, r6
- mov r2, r9
- ldr r1, [r2, 0x4]
- str r1, [r3]
- add sp, 0x38
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D7D8: .4byte gSpriteImageSizes
-_0809D7DC: .4byte 0xffff0000
-_0809D7E0: .4byte 0x0000ffff
-_0809D7E4: .4byte gSprites
- thumb_func_end sub_809D710
-
- thumb_func_start sub_809D7E8
-sub_809D7E8: @ 809D7E8
- push {lr}
- sub sp, 0x8
- movs r1, 0
- str r1, [sp]
- ldr r3, _0809D81C @ =gSpriteImageSizes
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r2, 1
- ldrb r1, [r0, 0x1]
- lsrs r1, 6
- lsls r1, 3
- adds r2, r1
- adds r2, r3
- ldrh r3, [r2]
- ldr r2, _0809D820 @ =0xffff0000
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r3
- str r1, [sp, 0x4]
- mov r1, sp
- str r1, [r0, 0xC]
- bl DestroySprite
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0809D81C: .4byte gSpriteImageSizes
-_0809D820: .4byte 0xffff0000
- thumb_func_end sub_809D7E8
-
- thumb_func_start sub_809D824
-sub_809D824: @ 809D824
- mov r12, r0
- adds r0, 0x2A
- movs r3, 0
- strb r1, [r0]
- mov r2, r12
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, r12
- adds r0, 0x2B
- strb r3, [r0]
- bx lr
- thumb_func_end sub_809D824
-
- thumb_func_start sub_809D844
-sub_809D844: @ 809D844
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809D844
-
- thumb_func_start sub_809D85C
-sub_809D85C: @ 809D85C
- push {lr}
- ldr r1, _0809D8A0 @ =REG_BG1HOFS
- ldr r0, _0809D8A4 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8A8 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8AC @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B0 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B4 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B8 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0809D8A0: .4byte REG_BG1HOFS
-_0809D8A4: .4byte gUnknown_030042C0
-_0809D8A8: .4byte gUnknown_030041B4
-_0809D8AC: .4byte gUnknown_03004288
-_0809D8B0: .4byte gUnknown_03004280
-_0809D8B4: .4byte gUnknown_030041B0
-_0809D8B8: .4byte gUnknown_030041B8
- thumb_func_end sub_809D85C
-
- thumb_func_start sub_809D8BC
-sub_809D8BC: @ 809D8BC
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r6, _0809D904 @ =gPaletteFade
- ldrb r4, [r6, 0x8]
- movs r5, 0x80
- orrs r4, r5
- strb r4, [r6, 0x8]
- ldr r5, _0809D908 @ =0x02018000
- str r0, [r5]
- movs r4, 0
- strb r7, [r5, 0x8]
- strb r1, [r5, 0x9]
- strb r2, [r5, 0xA]
- str r3, [r5, 0x4]
- adds r0, r5, 0
- adds r0, 0x74
- strb r4, [r0]
- adds r1, r5, 0
- adds r1, 0x79
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x7C
- movs r1, 0
- strh r4, [r0]
- adds r0, 0x4
- strb r1, [r0]
- subs r0, 0x5
- strb r1, [r0]
- cmp r7, 0x4
- bls _0809D90C
- movs r0, 0x1
- strb r0, [r5, 0xE]
- b _0809D90E
- .align 2, 0
-_0809D904: .4byte gPaletteFade
-_0809D908: .4byte 0x02018000
-_0809D90C:
- strb r1, [r5, 0xE]
-_0809D90E:
- cmp r7, 0x6
- bhi _0809D9D6
- lsls r0, r7, 2
- ldr r1, _0809D91C @ =_0809D920
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809D91C: .4byte _0809D920
- .align 2, 0
-_0809D920:
- .4byte _0809D93C
- .4byte _0809D9BC
- .4byte _0809D992
- .4byte _0809D9D6
- .4byte _0809D966
- .4byte _0809D93C
- .4byte _0809D9BC
-_0809D93C:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r5, 0
- adds r1, 0x7E
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x7
- strb r0, [r1]
- b _0809D9D6
-_0809D966:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- movs r1, 0x1
- strb r1, [r0]
- adds r2, 0x9
- movs r0, 0x7
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x7B
- b _0809D9D4
-_0809D992:
- adds r1, r5, 0
- adds r1, 0x75
- movs r3, 0
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x76
- movs r2, 0x3
- strb r2, [r0]
- adds r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- strb r2, [r0]
- adds r0, 0x1
- strb r3, [r0]
- subs r0, 0x6
- strb r3, [r0]
- b _0809D9D6
-_0809D9BC:
- adds r1, r5, 0
- adds r1, 0x75
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x77
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
-_0809D9D4:
- strb r1, [r0]
-_0809D9D6:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- strb r0, [r5, 0xB]
- ldr r0, _0809D9EC @ =sub_809DE44
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D9EC: .4byte sub_809DE44
- thumb_func_end sub_809D8BC
-
- thumb_func_start sub_809D9F0
-sub_809D9F0: @ 809D9F0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- movs r4, 0x2
- str r4, [sp]
- bl sub_809D8BC
- ldr r0, _0809DA18 @ =0x02018000
- adds r0, 0x7C
- strh r5, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA18: .4byte 0x02018000
- thumb_func_end sub_809D9F0
-
- thumb_func_start sub_809DA1C
-sub_809DA1C: @ 809DA1C
- push {lr}
- ldr r0, _0809DA30 @ =0x02018000
- ldrb r0, [r0, 0x8]
- cmp r0, 0x6
- bhi _0809DA78
- lsls r0, 2
- ldr r1, _0809DA34 @ =_0809DA38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DA30: .4byte 0x02018000
-_0809DA34: .4byte _0809DA38
- .align 2, 0
-_0809DA38:
- .4byte _0809DA54
- .4byte _0809DA6C
- .4byte _0809DA64
- .4byte _0809DA64
- .4byte _0809DA5C
- .4byte _0809DA54
- .4byte _0809DA6C
-_0809DA54:
- ldr r0, _0809DA58 @ =sub_809E19C
- b _0809DA6E
- .align 2, 0
-_0809DA58: .4byte sub_809E19C
-_0809DA5C:
- ldr r0, _0809DA60 @ =sub_809E19C
- b _0809DA6E
- .align 2, 0
-_0809DA60: .4byte sub_809E19C
-_0809DA64:
- ldr r0, _0809DA68 @ =sub_809EB40
- b _0809DA6E
- .align 2, 0
-_0809DA68: .4byte sub_809EB40
-_0809DA6C:
- ldr r0, _0809DA7C @ =sub_809E3FC
-_0809DA6E:
- movs r1, 0
- bl CreateTask
- ldr r1, _0809DA80 @ =0x02018000
- strb r0, [r1, 0xF]
-_0809DA78:
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA7C: .4byte sub_809E3FC
-_0809DA80: .4byte 0x02018000
- thumb_func_end sub_809DA1C
-
- thumb_func_start sub_809DA84
-sub_809DA84: @ 809DA84
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _0809DAA4 @ =gMain
- ldr r2, _0809DAA8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x16
- bls _0809DA98
- b _0809DE00
-_0809DA98:
- lsls r0, 2
- ldr r1, _0809DAAC @ =_0809DAB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DAA4: .4byte gMain
-_0809DAA8: .4byte 0x0000043c
-_0809DAAC: .4byte _0809DAB0
- .align 2, 0
-_0809DAB0:
- .4byte _0809DB0C
- .4byte _0809DB18
- .4byte _0809DB2C
- .4byte _0809DB32
- .4byte _0809DB80
- .4byte _0809DB94
- .4byte _0809DBA0
- .4byte _0809DBBC
- .4byte _0809DBC8
- .4byte _0809DBDC
- .4byte _0809DC2C
- .4byte _0809DC48
- .4byte _0809DC5C
- .4byte _0809DC90
- .4byte _0809DCB0
- .4byte _0809DCC4
- .4byte _0809DCF8
- .4byte _0809DD02
- .4byte _0809DD30
- .4byte _0809DD3C
- .4byte _0809DD68
- .4byte _0809DD98
- .4byte _0809DDE0
-_0809DB0C:
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- b _0809DDE8
-_0809DB18:
- bl remove_some_task
- ldr r1, _0809DB24 @ =gMain
- ldr r2, _0809DB28 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB24: .4byte gMain
-_0809DB28: .4byte 0x0000043c
-_0809DB2C:
- bl FreeAllSpritePalettes
- b _0809DDE8
-_0809DB32:
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- movs r5, 0
- ldr r1, _0809DB74 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _0809DB78 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_0809DB48:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0809DB48
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0809DB7C @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DB74: .4byte 0x040000d4
-_0809DB78: .4byte 0x85000400
-_0809DB7C: .4byte 0x0000043c
-_0809DB80:
- bl sub_809DE64
- ldr r1, _0809DB8C @ =gMain
- ldr r2, _0809DB90 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB8C: .4byte gMain
-_0809DB90: .4byte 0x0000043c
-_0809DB94:
- ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C
- bl SetUpWindowConfig
- b _0809DDE8
- .align 2, 0
-_0809DB9C: .4byte gWindowConfig_81E6E6C
-_0809DBA0:
- ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C
- bl MultistepInitMenuWindowBegin
- ldr r1, _0809DBB4 @ =gMain
- ldr r2, _0809DBB8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBB0: .4byte gWindowConfig_81E6E6C
-_0809DBB4: .4byte gMain
-_0809DBB8: .4byte 0x0000043c
-_0809DBBC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0809DBC6
- b _0809DE38
-_0809DBC6:
- b _0809DDE8
-_0809DBC8:
- bl sub_809DA1C
- ldr r1, _0809DBD4 @ =gMain
- ldr r2, _0809DBD8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBD4: .4byte gMain
-_0809DBD8: .4byte 0x0000043c
-_0809DBDC:
- ldr r1, _0809DC08 @ =gSummaryScreenTextTiles
- ldr r2, _0809DC0C @ =0x0600d000
- ldr r0, _0809DC10 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC14 @ =0x800000a0
- str r1, [r0, 0x8]
- ldr r1, [r0, 0x8]
- ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles
- ldr r2, _0809DC1C @ =0x0600d140
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC20 @ =0x80000080
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0809DC24 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0809DC28 @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DC08: .4byte gSummaryScreenTextTiles
-_0809DC0C: .4byte 0x0600d000
-_0809DC10: .4byte 0x040000d4
-_0809DC14: .4byte 0x800000a0
-_0809DC18: .4byte gSummaryScreenButtonTiles
-_0809DC1C: .4byte 0x0600d140
-_0809DC20: .4byte 0x80000080
-_0809DC24: .4byte 0x02018000
-_0809DC28: .4byte 0x0000043c
-_0809DC2C:
- bl sub_809DF00
- lsls r0, 24
- cmp r0, 0
- bne _0809DC38
- b _0809DE38
-_0809DC38:
- ldr r0, _0809DC44 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DC44: .4byte 0x02018000
-_0809DC48:
- bl sub_80A18C4
- ldr r1, _0809DC54 @ =gMain
- ldr r2, _0809DC58 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DC54: .4byte gMain
-_0809DC58: .4byte 0x0000043c
-_0809DC5C:
- ldr r4, _0809DC78 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- bne _0809DC7C
- movs r0, 0
- bl sub_80A12D0
- b _0809DC82
- .align 2, 0
-_0809DC78: .4byte 0x02018010
-_0809DC7C:
- movs r0, 0xA
- bl sub_80A12D0
-_0809DC82:
- ldr r0, _0809DC8C @ =0x02018010
- bl sub_80A0EA4
- b _0809DDE8
- .align 2, 0
-_0809DC8C: .4byte 0x02018010
-_0809DC90:
- bl sub_80A1950
- ldr r0, _0809DCA4 @ =0x02018010
- bl sub_80A1D84
- ldr r1, _0809DCA8 @ =gMain
- ldr r2, _0809DCAC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCA4: .4byte 0x02018010
-_0809DCA8: .4byte gMain
-_0809DCAC: .4byte 0x0000043c
-_0809DCB0:
- ldr r4, _0809DCC0 @ =0x02018010
- adds r0, r4, 0
- bl sub_80A1DE8
- adds r4, 0x64
- movs r0, 0
- strb r0, [r4]
- b _0809DDE8
- .align 2, 0
-_0809DCC0: .4byte 0x02018010
-_0809DCC4:
- ldr r4, _0809DCEC @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- subs r4, 0x10
- strb r0, [r4, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809DCE0
- b _0809DE38
-_0809DCE0:
- movs r0, 0
- strb r0, [r5]
- ldr r1, _0809DCF0 @ =gMain
- ldr r2, _0809DCF4 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCEC: .4byte 0x02018010
-_0809DCF0: .4byte gMain
-_0809DCF4: .4byte 0x0000043c
-_0809DCF8:
- bl sub_809E044
- bl sub_80A0EE8
- b _0809DDE8
-_0809DD02:
- ldr r1, _0809DD20 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bhi _0809DD18
- ldr r0, _0809DD24 @ =gUnknown_083C1580
- ldrb r1, [r1, 0xB]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0809DD18:
- ldr r1, _0809DD28 @ =gMain
- ldr r2, _0809DD2C @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD20: .4byte 0x02018000
-_0809DD24: .4byte gUnknown_083C1580
-_0809DD28: .4byte gMain
-_0809DD2C: .4byte 0x0000043c
-_0809DD30:
- ldr r0, _0809DD38 @ =0x02018010
- bl sub_809FAC8
- b _0809DDE8
- .align 2, 0
-_0809DD38: .4byte 0x02018010
-_0809DD3C:
- ldr r2, _0809DD58 @ =gUnknown_083C1598
- ldr r0, _0809DD5C @ =0x02018000
- ldrb r1, [r0, 0xB]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _0809DD60 @ =gMain
- ldr r2, _0809DD64 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD58: .4byte gUnknown_083C1598
-_0809DD5C: .4byte 0x02018000
-_0809DD60: .4byte gMain
-_0809DD64: .4byte 0x0000043c
-_0809DD68:
- ldr r0, _0809DD84 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809DD8C
- ldr r1, _0809DD88 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809DDE8
- .align 2, 0
-_0809DD84: .4byte 0x02018010
-_0809DD88: .4byte gUnknown_030041B0
-_0809DD8C:
- ldr r0, _0809DD94 @ =gUnknown_030041B0
- strh r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DD94: .4byte gUnknown_030041B0
-_0809DD98:
- bl sub_809EBC4
- ldr r0, _0809DDB8 @ =0x02018000
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809DDBC
- movs r0, 0
- movs r1, 0
- bl sub_80A1488
- movs r0, 0
- movs r1, 0
- bl sub_80A1654
- b _0809DDCC
- .align 2, 0
-_0809DDB8: .4byte 0x02018000
-_0809DDBC:
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1654
-_0809DDCC:
- bl sub_80A0DD0
- ldr r1, _0809DDD8 @ =gMain
- ldr r2, _0809DDDC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DDD8: .4byte gMain
-_0809DDDC: .4byte 0x0000043c
-_0809DDE0:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809DE38
-_0809DDE8:
- ldr r1, _0809DDF8 @ =gMain
- ldr r0, _0809DDFC @ =0x0000043c
- adds r1, r0
-_0809DDEE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809DE38
- .align 2, 0
-_0809DDF8: .4byte gMain
-_0809DDFC: .4byte 0x0000043c
-_0809DE00:
- ldr r0, _0809DE2C @ =sub_809D85C
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _0809DE30 @ =sub_809D844
- bl SetMainCallback2
- ldr r2, _0809DE34 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0x1
- b _0809DE3A
- .align 2, 0
-_0809DE2C: .4byte sub_809D85C
-_0809DE30: .4byte sub_809D844
-_0809DE34: .4byte gPaletteFade
-_0809DE38:
- movs r0, 0
-_0809DE3A:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DA84
-
- thumb_func_start sub_809DE44
-sub_809DE44: @ 809DE44
- push {lr}
-_0809DE46:
- bl sub_809DA84
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809DE5E
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809DE46
-_0809DE5E:
- pop {r0}
- bx r0
- thumb_func_end sub_809DE44
-
- thumb_func_start sub_809DE64
-sub_809DE64: @ 809DE64
- ldr r1, _0809DED0 @ =REG_BG0CNT
- ldr r2, _0809DED4 @ =0x00001e08
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DED8 @ =0x00004801
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEDC @ =0x00004a02
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEE0 @ =0x00005c03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0809DEE4 @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0809DEE8 @ =gUnknown_030041B4
- strh r0, [r1]
- ldr r1, _0809DEEC @ =gUnknown_03004288
- strh r0, [r1]
- ldr r1, _0809DEF0 @ =gUnknown_03004280
- strh r0, [r1]
- ldr r1, _0809DEF4 @ =gUnknown_030041B0
- strh r0, [r1]
- ldr r1, _0809DEF8 @ =gUnknown_030041B8
- strh r0, [r1]
- ldr r1, _0809DEFC @ =REG_BG0HOFS
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x32
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0809DED0: .4byte REG_BG0CNT
-_0809DED4: .4byte 0x00001e08
-_0809DED8: .4byte 0x00004801
-_0809DEDC: .4byte 0x00004a02
-_0809DEE0: .4byte 0x00005c03
-_0809DEE4: .4byte gUnknown_030042C0
-_0809DEE8: .4byte gUnknown_030041B4
-_0809DEEC: .4byte gUnknown_03004288
-_0809DEF0: .4byte gUnknown_03004280
-_0809DEF4: .4byte gUnknown_030041B0
-_0809DEF8: .4byte gUnknown_030041B8
-_0809DEFC: .4byte REG_BG0HOFS
- thumb_func_end sub_809DE64
-
- thumb_func_start sub_809DF00
-sub_809DF00: @ 809DF00
- push {lr}
- ldr r0, _0809DF18 @ =0x02018000
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0809DF0E
- b _0809E030
-_0809DF0E:
- lsls r0, 2
- ldr r1, _0809DF1C @ =_0809DF20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DF18: .4byte 0x02018000
-_0809DF1C: .4byte _0809DF20
- .align 2, 0
-_0809DF20:
- .4byte _0809DF54
- .4byte _0809DF64
- .4byte _0809DF74
- .4byte _0809DF88
- .4byte _0809DF9C
- .4byte _0809DFAC
- .4byte _0809DFC4
- .4byte _0809DFD4
- .4byte _0809DFE0
- .4byte _0809DFEC
- .4byte _0809DFF8
- .4byte _0809E004
- .4byte _0809E010
-_0809DF54:
- ldr r0, _0809DF60 @ =gStatusScreen_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF60: .4byte gStatusScreen_Gfx
-_0809DF64:
- ldr r0, _0809DF6C @ =gUnknown_08E73508
- ldr r1, _0809DF70 @ =0x0600e000
- b _0809DFB0
- .align 2, 0
-_0809DF6C: .4byte gUnknown_08E73508
-_0809DF70: .4byte 0x0600e000
-_0809DF74:
- ldr r0, _0809DF80 @ =gUnknown_08E74E88
- ldr r1, _0809DF84 @ =0x0600e800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF80: .4byte gUnknown_08E74E88
-_0809DF84: .4byte 0x0600e800
-_0809DF88:
- ldr r0, _0809DF94 @ =gStatusScreen_Tilemap
- ldr r1, _0809DF98 @ =0x06004800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF94: .4byte gStatusScreen_Tilemap
-_0809DF98: .4byte 0x06004800
-_0809DF9C:
- ldr r0, _0809DFA4 @ =gUnknown_08E73E88
- ldr r1, _0809DFA8 @ =0x06005800
- b _0809DFB0
- .align 2, 0
-_0809DFA4: .4byte gUnknown_08E73E88
-_0809DFA8: .4byte 0x06005800
-_0809DFAC:
- ldr r0, _0809DFBC @ =gUnknown_08E74688
- ldr r1, _0809DFC0 @ =0x06006800
-_0809DFB0:
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- b _0809E030
- .align 2, 0
-_0809DFBC: .4byte gUnknown_08E74688
-_0809DFC0: .4byte 0x06006800
-_0809DFC4:
- ldr r0, _0809DFD0 @ =gStatusScreen_Pal
- movs r1, 0
- movs r2, 0xA0
- bl LoadCompressedPalette
- b _0809E030
- .align 2, 0
-_0809DFD0: .4byte gStatusScreen_Pal
-_0809DFD4:
- ldr r0, _0809DFDC @ =gUnknown_083C11B8
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFDC: .4byte gUnknown_083C11B8
-_0809DFE0:
- ldr r0, _0809DFE8 @ =gUnknown_083C1270
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFE8: .4byte gUnknown_083C1270
-_0809DFEC:
- ldr r0, _0809DFF4 @ =gUnknown_083C12F4
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFF4: .4byte gUnknown_083C12F4
-_0809DFF8:
- ldr r0, _0809E000 @ =gUnknown_083C12FC
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E000: .4byte gUnknown_083C12FC
-_0809E004:
- ldr r0, _0809E00C @ =gUnknown_083C1278
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E00C: .4byte gUnknown_083C1278
-_0809E010:
- ldr r0, _0809E028 @ =gMoveTypes_Pal
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _0809E02C @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0809E03C
- .align 2, 0
-_0809E028: .4byte gMoveTypes_Pal
-_0809E02C: .4byte 0x02018000
-_0809E030:
- ldr r1, _0809E040 @ =0x02018000
- adds r1, 0x74
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0809E03C:
- pop {r1}
- bx r1
- .align 2, 0
-_0809E040: .4byte 0x02018000
- thumb_func_end sub_809DF00
-
- thumb_func_start sub_809E044
-sub_809E044: @ 809E044
- push {r4,r5,lr}
- ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C
- adds r0, r4, 0
- movs r1, 0x81
- movs r2, 0x2
- bl LoadPalette
- adds r5, r4, 0x2
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x8F
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x89
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x12
- adds r0, r5, 0
- movs r1, 0xD1
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x8
- movs r1, 0xD3
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD5
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xD7
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x14
- movs r1, 0xD9
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0xC
- movs r1, 0xDB
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x18
- movs r1, 0xDD
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x6
- adds r0, r5, 0
- movs r1, 0xDE
- movs r2, 0x2
- bl LoadPalette
- subs r4, 0x1A
- adds r0, r4, 0
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0809E0F8 @ =gFontDefaultPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xF9
- movs r2, 0x2
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
-_0809E0F8: .4byte gFontDefaultPalette
- thumb_func_end sub_809E044
-
- thumb_func_start sub_809E0FC
-sub_809E0FC: @ 809E0FC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809E134 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E138 @ =sub_809E13C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E134: .4byte gTasks
-_0809E138: .4byte sub_809E13C
- thumb_func_end sub_809E0FC
-
- thumb_func_start sub_809E13C
-sub_809E13C: @ 809E13C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0809E182
- ldr r0, _0809E188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809E182
- ldr r1, _0809E18C @ =gUnknown_020384F0
- ldr r4, _0809E190 @ =0x02018000
- ldrb r0, [r4, 0x9]
- strb r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl StopCryAndClearCrySongs
- ldr r0, _0809E194 @ =gMPlay_BGM
- ldr r1, _0809E198 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, [r4, 0x4]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0809E182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E188: .4byte gPaletteFade
-_0809E18C: .4byte gUnknown_020384F0
-_0809E190: .4byte 0x02018000
-_0809E194: .4byte gMPlay_BGM
-_0809E198: .4byte 0x0000ffff
- thumb_func_end sub_809E13C
-
- thumb_func_start sub_809E19C
-sub_809E19C: @ 809E19C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E1C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E25A
- ldr r5, _0809E1CC @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E1D0
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F1B8
- b _0809E25A
- .align 2, 0
-_0809E1C8: .4byte gPaletteFade
-_0809E1CC: .4byte gMain
-_0809E1D0:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E1E2
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F1B8
- b _0809E25A
-_0809E1E2:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E1F6
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E202
-_0809E1F6:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E25A
-_0809E202:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E218
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E222
-_0809E218:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E25A
-_0809E222:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E24C
- ldr r5, _0809E248 @ =0x02018000
- ldrb r0, [r5, 0xB]
- cmp r0, 0x1
- bls _0809E23A
- adds r0, r4, 0
- bl sub_809EA50
-_0809E23A:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E25A
- .align 2, 0
-_0809E248: .4byte 0x02018000
-_0809E24C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E25A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809E19C
-
- thumb_func_start sub_809E260
-sub_809E260: @ 809E260
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E29C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E276
- b _0809E3EE
-_0809E276:
- ldr r5, _0809E2A0 @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E2AC
- ldr r1, _0809E2A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E2A8 @ =0x02018079
- adds r0, r4, 0
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E29C: .4byte gPaletteFade
-_0809E2A0: .4byte gMain
-_0809E2A4: .4byte gTasks
-_0809E2A8: .4byte 0x02018079
-_0809E2AC:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E2D8
- ldr r1, _0809E2D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E2D4 @ =0x02018079
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E2D0: .4byte gTasks
-_0809E2D4: .4byte 0x02018079
-_0809E2D8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E2EC
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E324
-_0809E2EC:
- ldr r1, _0809E320 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x3
- bne _0809E314
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E308
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E314
-_0809E308:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E314:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E320: .4byte 0x02018000
-_0809E324:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E33A
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E37C
-_0809E33A:
- ldr r1, _0809E378 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E3EE
- cmp r0, 0x2
- bne _0809E36C
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E360
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E36C
-_0809E360:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E36C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E378: .4byte 0x02018000
-_0809E37C:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E3D4
- adds r0, r4, 0
- bl sub_809F7D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809E3A0
- ldr r0, _0809E3BC @ =0x02018000
- adds r5, r0, 0
- adds r5, 0x79
- ldrb r0, [r5]
- cmp r0, 0x4
- bne _0809E3C4
-_0809E3A0:
- ldr r0, _0809E3BC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x79
- ldrb r1, [r1]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E3EE
- .align 2, 0
-_0809E3BC: .4byte 0x02018000
-_0809E3C0: .4byte gSpecialVar_0x8005
-_0809E3C4:
- movs r0, 0x20
- bl PlaySE
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809F9D0
- b _0809E3EE
-_0809E3D4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E3EE
- ldr r0, _0809E3F4 @ =0x02018000
- adds r0, 0x7A
- movs r1, 0x4
- strb r1, [r0]
- ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E3EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E3F4: .4byte 0x02018000
-_0809E3F8: .4byte gSpecialVar_0x8005
- thumb_func_end sub_809E260
-
- thumb_func_start sub_809E3FC
-sub_809E3FC: @ 809E3FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r0, _0809E438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E502
- ldr r0, _0809E43C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E448
- ldr r1, _0809E440 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E444 @ =0x02018079
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E438: .4byte gPaletteFade
-_0809E43C: .4byte gMain
-_0809E440: .4byte gTasks
-_0809E444: .4byte 0x02018079
-_0809E448:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E474
- ldr r1, _0809E46C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E470 @ =0x02018079
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E46C: .4byte gTasks
-_0809E470: .4byte 0x02018079
-_0809E474:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E4EE
- ldr r4, _0809E4A8 @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- ldrb r0, [r6]
- cmp r0, 0x4
- beq _0809E4E0
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809E4E0
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809E508
- lsls r0, 24
- cmp r0, 0
- bne _0809E4AC
- movs r0, 0x20
- bl PlaySE
- b _0809E502
- .align 2, 0
-_0809E4A8: .4byte 0x02018000
-_0809E4AC:
- movs r0, 0x5
- bl PlaySE
- ldrb r1, [r6]
- adds r0, r4, 0
- adds r0, 0x7A
- strb r1, [r0]
- movs r0, 0x1
- bl sub_80A1B40
- movs r0, 0x13
- bl sub_80A1A30
- ldr r1, _0809E4D8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E4DC @ =sub_809E534
- str r1, [r0]
- b _0809E502
- .align 2, 0
-_0809E4D8: .4byte gTasks
-_0809E4DC: .4byte sub_809E534
-_0809E4E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
- b _0809E502
-_0809E4EE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E502
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
-_0809E502:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E3FC
-
- thumb_func_start sub_809E508
-sub_809E508: @ 809E508
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0x1
-_0809E50E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809F760
- lsls r0, 16
- cmp r0, 0
- beq _0809E520
- movs r0, 0x1
- b _0809E52C
-_0809E520:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0809E50E
- movs r0, 0
-_0809E52C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809E508
-
- thumb_func_start sub_809E534
-sub_809E534: @ 809E534
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r3, 0
- ldr r0, _0809E564 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E570
- ldr r1, _0809E568 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- subs r1, 0x4
- ldr r2, _0809E56C @ =0x0201807a
- adds r0, r3, 0
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E564: .4byte gMain
-_0809E568: .4byte gTasks
-_0809E56C: .4byte 0x0201807a
-_0809E570:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809E59C
- ldr r1, _0809E594 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- ldr r2, _0809E598 @ =0x0201807a
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E594: .4byte gTasks
-_0809E598: .4byte 0x0201807a
-_0809E59C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E5AE
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E83C
- b _0809E5C0
-_0809E5AE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E5C0
- movs r1, 0x1
- negs r1, r1
- adds r0, r2, 0
- bl sub_809E83C
-_0809E5C0:
- pop {r0}
- bx r0
- thumb_func_end sub_809E534
-
- thumb_func_start sub_809E5C4
-sub_809E5C4: @ 809E5C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r1, _0809E6D0 @ =0x02018000
- ldr r5, [r1]
- ldrb r2, [r1, 0x9]
- movs r0, 0x64
- muls r0, r2
- adds r5, r0
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r1, 0x7A
- ldrb r6, [r1]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E6D4 @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E6D0: .4byte 0x02018000
-_0809E6D4: .4byte gUnknown_08208238
- thumb_func_end sub_809E5C4
-
- thumb_func_start sub_809E6D8
-sub_809E6D8: @ 809E6D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r2, _0809E7E8 @ =0x02018000
- ldr r5, [r2]
- ldrb r1, [r2, 0x9]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r5, r0
- adds r0, r2, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r2, 0x7A
- ldrb r6, [r2]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetBoxMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetBoxMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetBoxMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetBoxMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetBoxMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E7EC @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetBoxMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetBoxMonData
- 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
-_0809E7E8: .4byte 0x02018000
-_0809E7EC: .4byte gUnknown_08208238
- thumb_func_end sub_809E6D8
-
- thumb_func_start sub_809E7F0
-sub_809E7F0: @ 809E7F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809E828
- ldr r1, _0809E830 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x74
- movs r0, 0
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x79
- bl sub_80A0428
- ldr r1, _0809E834 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E838 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r4, 0
- bl sub_80A2078
-_0809E828:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E830: .4byte 0x02018000
-_0809E834: .4byte gTasks
-_0809E838: .4byte sub_809E3FC
- thumb_func_end sub_809E7F0
-
- thumb_func_start sub_809E83C
-sub_809E83C: @ 809E83C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- bl sub_80A1B1C
- movs r0, 0
- bl sub_80A1B40
- cmp r4, 0x1
- bne _0809E8C0
- ldr r1, _0809E87C @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x79
- adds r2, r1, 0
- adds r2, 0x7A
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E8CA
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809E880
- bl sub_809E5C4
- b _0809E884
- .align 2, 0
-_0809E87C: .4byte 0x02018000
-_0809E880:
- bl sub_809E6D8
-_0809E884:
- ldr r4, _0809E8B4 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7A
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x79
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809F678
- adds r1, r4, 0
- adds r1, 0x74
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0809E8B8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E8BC @ =sub_809E7F0
- str r1, [r0]
- b _0809E8DE
- .align 2, 0
-_0809E8B4: .4byte 0x02018000
-_0809E8B8: .4byte gTasks
-_0809E8BC: .4byte sub_809E7F0
-_0809E8C0:
- ldr r0, _0809E8E4 @ =0x02018010
- adds r1, r0, 0
- adds r1, 0x69
- bl sub_80A0428
-_0809E8CA:
- ldr r0, _0809E8E8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809E8EC @ =sub_809E3FC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80A2078
-_0809E8DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E8E4: .4byte 0x02018010
-_0809E8E8: .4byte gTasks
-_0809E8EC: .4byte sub_809E3FC
- thumb_func_end sub_809E83C
-
- thumb_func_start sub_809E8F0
-sub_809E8F0: @ 809E8F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- bl PlaySE
- mov r1, r9
- ldrb r6, [r1]
- ldr r1, _0809E944 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r2, 0
- lsls r4, 24
- asrs r4, 24
- mov r10, r4
- lsls r7, r0, 24
-_0809E930:
- lsls r0, r6, 24
- asrs r0, 24
- add r0, r10
- lsls r0, 24
- lsrs r6, r0, 24
- asrs r1, r0, 24
- cmp r0, r7
- ble _0809E948
- movs r6, 0
- b _0809E94E
- .align 2, 0
-_0809E944: .4byte gTasks
-_0809E948:
- cmp r1, 0
- bge _0809E94E
- lsrs r6, r7, 24
-_0809E94E:
- lsls r4, r6, 24
- lsrs r1, r4, 24
- ldr r0, _0809EA10 @ =0x02018010
- str r2, [sp, 0x4]
- bl sub_809F760
- lsls r0, 16
- adds r5, r4, 0
- ldr r2, [sp, 0x4]
- cmp r0, 0
- bne _0809E97A
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E97A
- lsls r0, r2, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0809E930
-_0809E97A:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- bne _0809E996
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E996
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- mov r2, r8
- lsls r7, r2, 2
- cmp r0, 0
- beq _0809E9AC
-_0809E996:
- ldr r2, _0809EA18 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x1
- bne _0809E9D0
-_0809E9AC:
- lsrs r4, r5, 24
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1488
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1654
- ldr r1, _0809EA18 @ =gTasks
- mov r3, r8
- adds r0, r7, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x22]
- movs r0, 0
- str r0, [sp]
-_0809E9D0:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0809E9FE
- asrs r0, r5, 24
- cmp r0, 0x4
- bne _0809E9FE
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809E9FE
- movs r4, 0x2
- negs r4, r4
- lsrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1488
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1654
-_0809E9FE:
- mov r2, r9
- strb r6, [r2]
- ldr r0, _0809EA1C @ =0x02018079
- cmp r9, r0
- bne _0809EA20
- movs r0, 0
- bl sub_80A1C30
- b _0809EA26
- .align 2, 0
-_0809EA10: .4byte 0x02018010
-_0809EA14: .4byte 0x02018000
-_0809EA18: .4byte gTasks
-_0809EA1C: .4byte 0x02018079
-_0809EA20:
- movs r0, 0x1
- bl sub_80A1C30
-_0809EA26:
- ldr r3, [sp]
- cmp r3, 0
- beq _0809EA34
- ldr r0, _0809EA4C @ =0x02018010
- mov r1, r9
- bl sub_80A0428
-_0809EA34:
- mov r0, r8
- bl sub_80A2078
- 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
-_0809EA4C: .4byte 0x02018010
- thumb_func_end sub_809E8F0
-
- thumb_func_start sub_809EA50
-sub_809EA50: @ 809EA50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0809EABC @ =0x02018000
- adds r1, r4, 0
- adds r1, 0x79
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1488
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1654
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EA8C
- adds r1, r4, 0
- adds r1, 0x7F
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80A0DD0
-_0809EA8C:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
- movs r0, 0x9
- bl sub_80A1A30
- ldr r1, _0809EAC0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EAC4 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r5, 0
- bl sub_80A2078
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EABC: .4byte 0x02018000
-_0809EAC0: .4byte gTasks
-_0809EAC4: .4byte sub_809E3FC
- thumb_func_end sub_809EA50
-
- thumb_func_start sub_809EAC8
-sub_809EAC8: @ 809EAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0809EB34 @ =0x02018000
- adds r0, r6, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0809EAEE
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1488
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1654
-_0809EAEE:
- movs r0, 0x9
- bl sub_80A1B1C
- movs r0, 0x1
- bl sub_80A16CC
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r1, r6, 0
- adds r1, 0x7F
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80A0DD0
- ldr r1, _0809EB38 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EB3C @ =sub_809E19C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EB34: .4byte 0x02018000
-_0809EB38: .4byte gTasks
-_0809EB3C: .4byte sub_809E19C
- thumb_func_end sub_809EAC8
-
- thumb_func_start sub_809EB40
-sub_809EB40: @ 809EB40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0809EB6C @ =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
- beq _0809EB74
- cmp r0, 0x5
- bne _0809EBA4
- movs r0, 0x9
- bl sub_80A1A30
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0809EB70 @ =sub_809E260
- str r0, [r4]
- b _0809EBB4
- .align 2, 0
-_0809EB6C: .4byte gTasks
-_0809EB70: .4byte sub_809E260
-_0809EB74:
- ldr r4, _0809EBBC @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- strb r0, [r6]
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809EB96
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- ldrb r1, [r6]
- movs r0, 0xA
- bl sub_80A1654
-_0809EB96:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
-_0809EBA4:
- ldr r0, _0809EBC0 @ =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]
-_0809EBB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EBBC: .4byte 0x02018000
-_0809EBC0: .4byte gTasks
- thumb_func_end sub_809EB40
-
- thumb_func_start sub_809EBC4
-sub_809EBC4: @ 809EBC4
- push {r4,lr}
- ldr r4, _0809EC28 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0809EC22
- bl sub_80A0EE8
- ldr r0, _0809EC2C @ =gUnknown_030042C0
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- strh r1, [r0]
- ldrb r0, [r4, 0xB]
- cmp r0, 0x1
- bne _0809EBF4
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EBF4:
- ldrb r3, [r4, 0xB]
- cmp r3, 0x2
- bne _0809EC0C
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0xA0
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC0C:
- cmp r3, 0x3
- bne _0809EC22
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xC0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EC28: .4byte 0x02018000
-_0809EC2C: .4byte gUnknown_030042C0
-_0809EC30: .4byte REG_BG1CNT
-_0809EC34: .4byte 0x0000e0ff
- thumb_func_end sub_809EBC4
-
- thumb_func_start sub_809EC38
-sub_809EC38: @ 809EC38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EC5C @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0809EC52
- b _0809EE64
-_0809EC52:
- lsls r0, 2
- ldr r1, _0809EC60 @ =_0809EC64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EC5C: .4byte gTasks + 0x8
-_0809EC60: .4byte _0809EC64
- .align 2, 0
-_0809EC64:
- .4byte _0809EC7C
- .4byte _0809ED14
- .4byte _0809ED98
- .4byte _0809EE12
- .4byte _0809EE1C
- .4byte _0809EE4C
-_0809EC7C:
- ldr r1, _0809ECB8 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ECC8
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809EC98
- ldr r1, _0809ECBC @ =gUnknown_03004288
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_0809EC98:
- cmp r3, 0x1
- bne _0809ECAE
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809ECC4 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECAE:
- cmp r3, 0x2
- beq _0809ECB4
- b _0809EE3A
-_0809ECB4:
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- b _0809ECF6
- .align 2, 0
-_0809ECB8: .4byte 0x02018000
-_0809ECBC: .4byte gUnknown_03004288
-_0809ECC0: .4byte REG_BG2CNT
-_0809ECC4: .4byte 0x0000e0ff
-_0809ECC8:
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809ECD8
- ldr r1, _0809ED08 @ =gUnknown_030042C0
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
-_0809ECD8:
- cmp r3, 0x1
- bne _0809ECEE
- ldr r2, _0809ED0C @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECEE:
- cmp r3, 0x2
- beq _0809ECF4
- b _0809EE3A
-_0809ECF4:
- ldr r2, _0809ED0C @ =REG_BG1CNT
-_0809ECF6:
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xA0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED08: .4byte gUnknown_030042C0
-_0809ED0C: .4byte REG_BG1CNT
-_0809ED10: .4byte 0x0000e0ff
-_0809ED14:
- ldr r0, _0809ED48 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ED5C
- ldr r1, _0809ED4C @ =gUnknown_030042C0
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED2E
- b _0809EE64
-_0809ED2E:
- ldr r3, _0809ED50 @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED54 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x2
- strh r0, [r3]
- ldr r2, _0809ED58 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x1
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED48: .4byte 0x02018000
-_0809ED4C: .4byte gUnknown_030042C0
-_0809ED50: .4byte REG_BG1CNT
-_0809ED54: .4byte 0x0000fffc
-_0809ED58: .4byte REG_BG2CNT
-_0809ED5C:
- ldr r1, _0809ED88 @ =gUnknown_03004288
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED6C
- b _0809EE64
-_0809ED6C:
- ldr r3, _0809ED8C @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED90 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x1
- strh r0, [r3]
- ldr r2, _0809ED94 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x2
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED88: .4byte gUnknown_03004288
-_0809ED8C: .4byte REG_BG1CNT
-_0809ED90: .4byte 0x0000fffc
-_0809ED94: .4byte REG_BG2CNT
-_0809ED98:
- ldr r1, _0809EDD4 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809EDD8
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809EE3A
- .align 2, 0
-_0809EDD4: .4byte 0x02018000
-_0809EDD8:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809EDFA
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809EDF2
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809EDFA
-_0809EDF2:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809EE0E
-_0809EDFA:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809EE08
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809EE0E
-_0809EE08:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809EE0E:
- strb r0, [r1]
- b _0809EE3A
-_0809EE12:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809EE3A
-_0809EE1C:
- ldr r0, _0809EE44 @ =gUnknown_083C1598
- ldr r4, _0809EE48 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809EE3A:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809EE64
- .align 2, 0
-_0809EE44: .4byte gUnknown_083C1598
-_0809EE48: .4byte 0x02018000
-_0809EE4C:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809EE64
- ldr r1, _0809EE6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EE70 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809EE64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EE6C: .4byte gTasks
-_0809EE70: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EC38
-
- thumb_func_start sub_809EE74
-sub_809EE74: @ 809EE74
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EE98 @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x6
- bls _0809EE8E
- b _0809F0C0
-_0809EE8E:
- lsls r0, 2
- ldr r1, _0809EE9C @ =_0809EEA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EE98: .4byte gTasks + 0x8
-_0809EE9C: .4byte _0809EEA0
- .align 2, 0
-_0809EEA0:
- .4byte _0809EEBC
- .4byte _0809EEE0
- .4byte _0809EFB4
- .4byte _0809EFF4
- .4byte _0809F06E
- .4byte _0809F078
- .4byte _0809F0A8
-_0809EEBC:
- ldr r0, _0809EECC @ =0x02018000
- adds r0, 0x80
- ldrb r1, [r0]
- cmp r1, 0
- bne _0809EED4
- ldr r0, _0809EED0 @ =gUnknown_03004288
- strh r1, [r0]
- b _0809F096
- .align 2, 0
-_0809EECC: .4byte 0x02018000
-_0809EED0: .4byte gUnknown_03004288
-_0809EED4:
- ldr r1, _0809EEDC @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- b _0809F096
- .align 2, 0
-_0809EEDC: .4byte gUnknown_030042C0
-_0809EEE0:
- ldr r1, _0809EF30 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EF4C
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF02
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF3C @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF02:
- cmp r3, 0x2
- bne _0809EF16
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF40 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF16:
- cmp r3, 0x3
- bne _0809EF2A
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EF44 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF2A:
- ldr r2, _0809EF48 @ =REG_BG1CNT
- b _0809EF8C
- .align 2, 0
-_0809EF30: .4byte 0x02018000
-_0809EF34: .4byte REG_BG2CNT
-_0809EF38: .4byte 0x0000e0fc
-_0809EF3C: .4byte 0x00000801
-_0809EF40: .4byte 0x00000a01
-_0809EF44: .4byte 0x00000c01
-_0809EF48: .4byte REG_BG1CNT
-_0809EF4C:
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF62
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA0 @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF62:
- cmp r3, 0x2
- bne _0809EF76
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA4 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF76:
- cmp r3, 0x3
- bne _0809EF8A
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EFA8 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF8A:
- ldr r2, _0809EFAC @ =REG_BG2CNT
-_0809EF8C:
- ldrh r1, [r2]
- ldr r0, _0809EFB0 @ =0x0000fffc
- ands r0, r1
- adds r0, 0x2
- strh r0, [r2]
- b _0809F096
- .align 2, 0
-_0809EF98: .4byte REG_BG1CNT
-_0809EF9C: .4byte 0x0000e0fc
-_0809EFA0: .4byte 0x00000801
-_0809EFA4: .4byte 0x00000a01
-_0809EFA8: .4byte 0x00000c01
-_0809EFAC: .4byte REG_BG2CNT
-_0809EFB0: .4byte 0x0000fffc
-_0809EFB4:
- ldr r0, _0809EFD4 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EFDC
- ldr r0, _0809EFD8 @ =gUnknown_03004288
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFD4: .4byte 0x02018000
-_0809EFD8: .4byte gUnknown_03004288
-_0809EFDC:
- ldr r0, _0809EFF0 @ =gUnknown_030042C0
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFF0: .4byte gUnknown_030042C0
-_0809EFF4:
- ldr r1, _0809F030 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809F034
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809F096
- .align 2, 0
-_0809F030: .4byte 0x02018000
-_0809F034:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809F056
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809F04E
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809F056
-_0809F04E:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809F06A
-_0809F056:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809F064
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809F06A
-_0809F064:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809F06A:
- strb r0, [r1]
- b _0809F096
-_0809F06E:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809F096
-_0809F078:
- ldr r0, _0809F0A0 @ =gUnknown_083C1598
- ldr r4, _0809F0A4 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809F096:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809F0C0
- .align 2, 0
-_0809F0A0: .4byte gUnknown_083C1598
-_0809F0A4: .4byte 0x02018000
-_0809F0A8:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F0C0
- ldr r1, _0809F0C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F0CC @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809F0C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F0C8: .4byte gTasks
-_0809F0CC: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EE74
-
- thumb_func_start sub_809F0D0
-sub_809F0D0: @ 809F0D0
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0809F110 @ =0x02018000
- ldrb r0, [r1, 0xB]
- adds r0, r4
- movs r5, 0
- strb r0, [r1, 0xB]
- ldr r2, _0809F114 @ =gUnknown_03005CF0
- ldr r1, _0809F118 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldr r0, [r6]
- str r0, [r2]
- bl sub_809FBE4
- strh r5, [r6, 0x8]
- lsls r4, 24
- asrs r4, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0809F120
- ldr r0, _0809F11C @ =sub_809EC38
- str r0, [r6]
- b _0809F12A
- .align 2, 0
-_0809F110: .4byte 0x02018000
-_0809F114: .4byte gUnknown_03005CF0
-_0809F118: .4byte gTasks
-_0809F11C: .4byte sub_809EC38
-_0809F120:
- ldr r1, _0809F130 @ =sub_809EE74
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
-_0809F12A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F130: .4byte sub_809EE74
- thumb_func_end sub_809F0D0
-
- thumb_func_start sub_809F134
-sub_809F134: @ 809F134
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _0809F1AC @ =0x02018010
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F1A6
- lsls r0, r5, 24
- asrs r5, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0809F168
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x65
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F168:
- cmp r5, 0x1
- bne _0809F17C
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x66
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F17C:
- ldr r0, _0809F1B0 @ =sub_80A1334
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- ldr r0, _0809F1B4 @ =sub_80A1500
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_809F0D0
-_0809F1A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F1AC: .4byte 0x02018010
-_0809F1B0: .4byte sub_80A1334
-_0809F1B4: .4byte sub_80A1500
- thumb_func_end sub_809F134
-
- thumb_func_start sub_809F1B8
-sub_809F1B8: @ 809F1B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _0809F1E4 @ =0x02018000
- ldrb r1, [r0, 0xE]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _0809F202
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0809F1E8
- lsls r1, r4, 24
- asrs r1, 24
- movs r4, 0x1
- eors r1, r4
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- b _0809F1F4
- .align 2, 0
-_0809F1E4: .4byte 0x02018000
-_0809F1E8:
- lsls r0, r4, 24
- asrs r0, 24
- movs r4, 0x3
- cmp r0, 0x1
- bne _0809F1F4
- movs r4, 0x2
-_0809F1F4:
- ldr r0, [r2]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- adds r3, r4, 0
- bl sub_8095DCC
- b _0809F22C
-_0809F202:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F3CC
- b _0809F22C
-_0809F224:
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F284
-_0809F22C:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809F270
- movs r0, 0x5
- bl PlaySE
- ldr r5, _0809F278 @ =0x02018010
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F258
- movs r0, 0x2
- negs r0, r0
- bl sub_80A12D0
-_0809F258:
- adds r0, r5, 0
- subs r0, 0x10
- strb r4, [r0, 0x9]
- ldr r1, _0809F27C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- str r1, [r5, 0x74]
- ldr r1, _0809F280 @ =sub_809F43C
- str r1, [r0]
-_0809F270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F278: .4byte 0x02018010
-_0809F27C: .4byte gTasks
-_0809F280: .4byte sub_809F43C
- thumb_func_end sub_809F1B8
-
- thumb_func_start sub_809F284
-sub_809F284: @ 809F284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809F2C0 @ =0x02018000
- ldr r7, [r0]
- movs r6, 0
- ldrb r1, [r0, 0xB]
- adds r4, r0, 0
- cmp r1, 0
- bne _0809F2C4
- lsls r0, r3, 24
- asrs r2, r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r5, r0, 0
- cmp r2, r1
- bne _0809F2AC
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809F2E4
-_0809F2AC:
- asrs r0, r5, 24
- cmp r0, 0x1
- bne _0809F2BA
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- cmp r0, r1
- bcs _0809F2E4
-_0809F2BA:
- ldrb r0, [r4, 0x9]
- adds r0, r3
- b _0809F304
- .align 2, 0
-_0809F2C0: .4byte 0x02018000
-_0809F2C4:
- lsls r5, r3, 24
-_0809F2C6:
- lsls r0, r6, 24
- asrs r0, 24
- asrs r1, r5, 24
- adds r0, r1
- lsls r0, 24
- ldr r4, _0809F2EC @ =0x02018000
- lsrs r6, r0, 24
- asrs r0, 24
- ldrb r2, [r4, 0x9]
- adds r1, r0, r2
- cmp r1, 0
- blt _0809F2E4
- ldrb r0, [r4, 0xA]
- cmp r1, r0
- ble _0809F2F0
-_0809F2E4:
- movs r0, 0x1
- negs r0, r0
- b _0809F308
- .align 2, 0
-_0809F2EC: .4byte 0x02018000
-_0809F2F0:
- movs r0, 0x64
- muls r0, r1
- adds r0, r7, r0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F2C6
- ldrb r0, [r4, 0x9]
- adds r0, r6
-_0809F304:
- lsls r0, 24
- asrs r0, 24
-_0809F308:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F284
-
- thumb_func_start sub_809F310
-sub_809F310: @ 809F310
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0809F33C
- ldr r0, _0809F338 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _0809F332
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F33C
-_0809F332:
- movs r0, 0x1
- b _0809F33E
- .align 2, 0
-_0809F338: .4byte 0x02018000
-_0809F33C:
- movs r0, 0
-_0809F33E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F310
-
- thumb_func_start sub_809F344
-sub_809F344: @ 809F344
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F34A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0809F37C
- ldr r0, _0809F374 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F378 @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F34A
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F380
- .align 2, 0
-_0809F374: .4byte gUnknown_083C15A8
-_0809F378: .4byte gPlayerParty
-_0809F37C:
- movs r0, 0x1
- negs r0, r0
-_0809F380:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F344
-
- thumb_func_start sub_809F388
-sub_809F388: @ 809F388
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F38E:
- cmp r4, 0
- beq _0809F3C0
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F3B8 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F3BC @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F38E
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F3C4
- .align 2, 0
-_0809F3B8: .4byte gUnknown_083C15A8
-_0809F3BC: .4byte gPlayerParty
-_0809F3C0:
- movs r0, 0x1
- negs r0, r0
-_0809F3C4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F388
-
- thumb_func_start sub_809F3CC
-sub_809F3CC: @ 809F3CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- movs r1, 0
- ldr r3, _0809F41C @ =gUnknown_083C15A8
- ldr r4, _0809F420 @ =0x02018000
- ldrb r0, [r3]
- ldrb r5, [r4, 0x9]
- cmp r0, r5
- beq _0809F3FC
- adds r5, r3, 0
- adds r3, r4, 0
-_0809F3E6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bhi _0809F3FC
- adds r0, r1, r5
- ldrb r0, [r0]
- ldrb r4, [r3, 0x9]
- cmp r0, r4
- bne _0809F3E6
- adds r2, r1, 0
-_0809F3FC:
- lsls r0, r6, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809F40C
- cmp r2, 0
- beq _0809F414
-_0809F40C:
- cmp r1, 0x1
- bne _0809F424
- cmp r2, 0x5
- bne _0809F42C
-_0809F414:
- movs r0, 0x1
- negs r0, r0
- b _0809F436
- .align 2, 0
-_0809F41C: .4byte gUnknown_083C15A8
-_0809F420: .4byte 0x02018000
-_0809F424:
- adds r0, r2, 0
- bl sub_809F388
- b _0809F432
-_0809F42C:
- adds r0, r2, 0
- bl sub_809F344
-_0809F432:
- lsls r0, 24
- asrs r0, 24
-_0809F436:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809F3CC
-
- thumb_func_start sub_809F43C
-sub_809F43C: @ 809F43C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F45C @ =gMain
- ldr r1, _0809F460 @ =0x0000043c
- adds r5, r0, r1
- ldrb r2, [r5]
- adds r3, r0, 0
- cmp r2, 0x8
- bls _0809F452
- b _0809F5CC
-_0809F452:
- lsls r0, r2, 2
- ldr r1, _0809F464 @ =_0809F468
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809F45C: .4byte gMain
-_0809F460: .4byte 0x0000043c
-_0809F464: .4byte _0809F468
- .align 2, 0
-_0809F468:
- .4byte _0809F48C
- .4byte _0809F492
- .4byte _0809F4BC
- .4byte _0809F4D8
- .4byte _0809F4F4
- .4byte _0809F51C
- .4byte _0809F578
- .4byte _0809F584
- .4byte _0809F5A0
-_0809F48C:
- bl StopCryAndClearCrySongs
- b _0809F5B2
-_0809F492:
- ldr r0, _0809F4AC @ =0x02018000
- ldrb r1, [r0, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4B0 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r1, _0809F4B4 @ =gMain
- ldr r0, _0809F4B8 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F4AC: .4byte 0x02018000
-_0809F4B0: .4byte gSprites
-_0809F4B4: .4byte gMain
-_0809F4B8: .4byte 0x0000043c
-_0809F4BC:
- ldr r0, _0809F4D0 @ =0x02018000
- ldrb r1, [r0, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4D4 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- b _0809F5B2
- .align 2, 0
-_0809F4D0: .4byte 0x02018000
-_0809F4D4: .4byte gSprites
-_0809F4D8:
- ldr r0, _0809F4EC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x74
- movs r2, 0
- strb r2, [r1]
- adds r0, 0x79
- strb r2, [r0]
- ldr r0, _0809F4F0 @ =0x0000043c
- adds r1, r3, r0
- b _0809F5B8
- .align 2, 0
-_0809F4EC: .4byte 0x02018000
-_0809F4F0: .4byte 0x0000043c
-_0809F4F4:
- ldr r4, _0809F518 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F50E
- movs r0, 0x2
- bl sub_80A12D0
-_0809F50E:
- adds r0, r4, 0
- bl sub_80A0EA4
- b _0809F5B2
- .align 2, 0
-_0809F518: .4byte 0x02018010
-_0809F51C:
- ldr r4, _0809F558 @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- adds r1, r4, 0
- subs r1, 0x10
- strb r0, [r1, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809F560
- ldr r1, _0809F55C @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809F564
- .align 2, 0
-_0809F558: .4byte 0x02018010
-_0809F55C: .4byte gUnknown_030041B0
-_0809F560:
- ldr r0, _0809F56C @ =gUnknown_030041B0
- strh r1, [r0]
-_0809F564:
- ldr r1, _0809F570 @ =gMain
- ldr r0, _0809F574 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F56C: .4byte gUnknown_030041B0
-_0809F570: .4byte gMain
-_0809F574: .4byte 0x0000043c
-_0809F578:
- ldr r0, _0809F580 @ =0x02018010
- bl sub_80A1DCC
- b _0809F5B2
- .align 2, 0
-_0809F580: .4byte 0x02018010
-_0809F584:
- ldr r0, _0809F594 @ =0x02018010
- bl sub_80A1DE8
- ldr r1, _0809F598 @ =gMain
- ldr r0, _0809F59C @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F594: .4byte 0x02018010
-_0809F598: .4byte gMain
-_0809F59C: .4byte 0x0000043c
-_0809F5A0:
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809F5EA
- ldr r0, _0809F5C0 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
-_0809F5B2:
- ldr r1, _0809F5C4 @ =gMain
- ldr r2, _0809F5C8 @ =0x0000043c
- adds r1, r2
-_0809F5B8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809F5EA
- .align 2, 0
-_0809F5C0: .4byte 0x02018000
-_0809F5C4: .4byte gMain
-_0809F5C8: .4byte 0x0000043c
-_0809F5CC:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0809F5F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809F5F4 @ =0x02018000
- adds r0, 0x84
- ldr r0, [r0]
- str r0, [r1]
-_0809F5EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F5F0: .4byte gTasks
-_0809F5F4: .4byte 0x02018000
- thumb_func_end sub_809F43C
-
- thumb_func_start sub_809F5F8
-sub_809F5F8: @ 809F5F8
- push {r4,lr}
- ldr r2, _0809F61C @ =0x02018000
- adds r4, r2, 0
- adds r4, 0x74
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809F624
- ldr r0, _0809F620 @ =gUnknown_083C1588
- ldrb r1, [r2, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- movs r0, 0x1
- b _0809F634
- .align 2, 0
-_0809F61C: .4byte 0x02018000
-_0809F620: .4byte gUnknown_083C1588
-_0809F624:
- adds r0, r2, 0
- adds r0, 0x10
- bl sub_809FAC8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
-_0809F634:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F5F8
-
- thumb_func_start sub_809F63C
-sub_809F63C: @ 809F63C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FE80
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F63C
-
- thumb_func_start sub_809F650
-sub_809F650: @ 809F650
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A00A4
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F650
-
- thumb_func_start sub_809F664
-sub_809F664: @ 809F664
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A0390
- adds r0, r4, 0
- bl sub_80A015C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F664
-
- thumb_func_start sub_809F678
-sub_809F678: @ 809F678
- push {lr}
- adds r3, r0, 0
- ldr r1, _0809F698 @ =0x02018000
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809F69C
- ldr r2, [r1]
- ldrb r1, [r1, 0x9]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r3, 0
- movs r2, 0x64
- bl memcpy
- b _0809F6AE
- .align 2, 0
-_0809F698: .4byte 0x02018000
-_0809F69C:
- ldr r0, [r1]
- ldrb r2, [r1, 0x9]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r1, r3, 0
- bl sub_803B4B4
-_0809F6AE:
- pop {r0}
- bx r0
- thumb_func_end sub_809F678
-
- thumb_func_start sub_809F6B4
-sub_809F6B4: @ 809F6B4
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r7, r1, 0
- ldrb r0, [r7]
- cmp r0, 0
- beq _0809F6D2
- cmp r0, 0x1
- beq _0809F718
- adds r0, r4, 0
- bl sub_80A1808
- lsls r0, 24
- lsrs r0, 24
- b _0809F756
-_0809F6D2:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r5, 3
- ldr r1, _0809F70C @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0809F710 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0809F714 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_800D334
- b _0809F74E
- .align 2, 0
-_0809F70C: .4byte gMonFrontPicTable
-_0809F710: .4byte gMonFrontPicCoords
-_0809F714: .4byte gUnknown_081FAF4C
-_0809F718:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- ldrh r0, [r4, 0x4]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
-_0809F74E:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- movs r0, 0xFF
-_0809F756:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F6B4
-
- thumb_func_start sub_809F760
-sub_809F760: @ 809F760
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F780
- cmp r1, 0x1
- bgt _0809F776
- cmp r1, 0
- beq _0809F77C
- b _0809F788
-_0809F776:
- cmp r2, 0x2
- beq _0809F784
- b _0809F788
-_0809F77C:
- movs r1, 0xD
- b _0809F78A
-_0809F780:
- movs r1, 0xE
- b _0809F78A
-_0809F784:
- movs r1, 0xF
- b _0809F78A
-_0809F788:
- movs r1, 0x10
-_0809F78A:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F760
-
- thumb_func_start sub_809F798
-sub_809F798: @ 809F798
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F7B8
- cmp r1, 0x1
- bgt _0809F7AE
- cmp r1, 0
- beq _0809F7B4
- b _0809F7C0
-_0809F7AE:
- cmp r2, 0x2
- beq _0809F7BC
- b _0809F7C0
-_0809F7B4:
- movs r1, 0x11
- b _0809F7C2
-_0809F7B8:
- movs r1, 0x12
- b _0809F7C2
-_0809F7BC:
- movs r1, 0x13
- b _0809F7C2
-_0809F7C0:
- movs r1, 0x14
-_0809F7C2:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F798
-
- thumb_func_start sub_809F7D0
-sub_809F7D0: @ 809F7D0
- push {r4,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- ldr r4, _0809F804 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x79
- ldrb r1, [r0]
- mov r0, sp
- bl sub_809F760
- lsls r0, 16
- lsrs r0, 16
- bl sub_806F7B8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F808
- ldrb r0, [r4, 0x8]
- cmp r0, 0x3
- beq _0809F808
- movs r0, 0
- b _0809F80A
- .align 2, 0
-_0809F804: .4byte 0x02018000
-_0809F808:
- movs r0, 0x1
-_0809F80A:
- add sp, 0x64
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F7D0
-
- thumb_func_start sub_809F814
-sub_809F814: @ 809F814
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _0809F83C @ =gTasks + 0x8
- mov r8, r0
- adds r4, r6, r0
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _0809F840
- adds r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _0809F9C0
- .align 2, 0
-_0809F83C: .4byte gTasks + 0x8
-_0809F840:
- ldr r7, _0809F874 @ =gMain
- ldrh r1, [r7, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809F880
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F878 @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F87C @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F874: .4byte gMain
-_0809F878: .4byte sub_809E260
-_0809F87C: .4byte 0x02018000
-_0809F880:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809F8B4
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F8AC @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F8B0 @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F8AC: .4byte sub_809E260
-_0809F8B0: .4byte 0x02018000
-_0809F8B4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809F8C8
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F918
-_0809F8C8:
- ldr r1, _0809F90C @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- beq _0809F9C0
- cmp r0, 0x3
- bne _0809F8F4
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F8E8
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F8F4
-_0809F8E8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F8F4:
- ldr r1, _0809F910 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F914 @ =sub_809E260
- str r1, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- b _0809F972
- .align 2, 0
-_0809F90C: .4byte 0x02018000
-_0809F910: .4byte gTasks
-_0809F914: .4byte sub_809E260
-_0809F918:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809F92E
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809F994
-_0809F92E:
- ldr r1, _0809F988 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809F9C0
- cmp r0, 0x2
- bne _0809F960
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F954
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F960
-_0809F954:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F960:
- ldr r1, _0809F98C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F990 @ =sub_809E260
- str r1, [r0]
- adds r0, r5, 0
- movs r1, 0x1
-_0809F972:
- bl sub_809F134
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1654
- b _0809F9C0
- .align 2, 0
-_0809F988: .4byte 0x02018000
-_0809F98C: .4byte gTasks
-_0809F990: .4byte sub_809E260
-_0809F994:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809F9A6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809F9C0
-_0809F9A6:
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1654
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F9CC @ =sub_809E260
- str r1, [r0]
-_0809F9C0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F9CC: .4byte sub_809E260
- thumb_func_end sub_809F814
-
- thumb_func_start sub_809F9D0
-sub_809F9D0: @ 809F9D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0809FA24 @ =gTasks + 0x8
- adds r2, r4, r6
- movs r0, 0
- strh r0, [r2, 0x1C]
- strh r1, [r2, 0x1E]
- movs r5, 0x2
- negs r5, r5
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1488
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1654
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0809FA2C @ =sub_809F814
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA24: .4byte gTasks + 0x8
-_0809FA28: .4byte gOtherText_CantForgetHMs
-_0809FA2C: .4byte sub_809F814
- thumb_func_end sub_809F9D0
-
- thumb_func_start sub_809FA30
-sub_809FA30: @ 809FA30
- ldr r0, _0809FA38 @ =0x02018000
- adds r0, 0x7A
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809FA38: .4byte 0x02018000
- thumb_func_end sub_809FA30
-
- thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
-GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
- push {r4,lr}
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r2, 23
- lsrs r3, 18
- ldr r4, _0809FA70 @ =0x0600f000
- adds r3, r4
- adds r2, r3
- lsrs r1, 12
- lsrs r0, 23
- movs r4, 0x80
- lsls r4, 2
- adds r3, r4, 0
- adds r0, r3
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x80
- strh r0, [r2]
- adds r2, 0x40
- adds r1, 0x81
- strh r1, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA70: .4byte 0x0600f000
- thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
-
- thumb_func_start GetStringCenterAlignXOffset
-GetStringCenterAlignXOffset: @ 809FA74
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xF
- adds r2, r4, 0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetStringCenterAlignXOffset
-
- thumb_func_start sub_809FA94
-sub_809FA94: @ 809FA94
- push {lr}
- bl sub_8040CB4
- lsls r0, 24
- cmp r0, 0
- beq _0809FAB4
- ldr r0, _0809FAB0 @ =gUnknown_083C157E
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x1
- b _0809FAC0
- .align 2, 0
-_0809FAB0: .4byte gUnknown_083C157E
-_0809FAB4:
- ldr r0, _0809FAC4 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0
-_0809FAC0:
- pop {r1}
- bx r1
- .align 2, 0
-_0809FAC4: .4byte gUnknown_083C157C
- thumb_func_end sub_809FA94
-
- thumb_func_start sub_809FAC8
-sub_809FAC8: @ 809FAC8
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FB28
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xB
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- ldr r4, _0809FB20 @ =gStringVar1
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMonNickname
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x3
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FB24 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- b _0809FBD6
- .align 2, 0
-_0809FB20: .4byte gStringVar1
-_0809FB24: .4byte gUnknown_083C157C
-_0809FB28:
- adds r0, r5, 0
- bl sub_809FA94
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0809FB6C @ =0x0000ffff
- cmp r4, r0
- beq _0809FB96
- cmp r6, 0
- bne _0809FB70
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl GetStringCenterAlignXOffset
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0xD
- b _0809FB8C
- .align 2, 0
-_0809FB6C: .4byte 0x0000ffff
-_0809FB70:
- movs r0, 0x2
- movs r1, 0x8
- movs r2, 0x1
- movs r3, 0x2
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x8
-_0809FB8C:
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80A1F98
- b _0809FBA2
-_0809FB96:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
-_0809FBA2:
- ldr r1, _0809FBE0 @ =gStringVar1
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r1, r0, 0
- adds r0, r5, 0
- bl GetMonNickname
- adds r1, r0, 0
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- movs r0, 0x3C
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0809FBE0 @ =gStringVar1
- movs r1, 0x1
- movs r2, 0xC
- bl MenuPrint
- adds r0, r5, 0
- bl sub_80A0958
-_0809FBD6:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FBE0: .4byte gStringVar1
- thumb_func_end sub_809FAC8
-
- thumb_func_start sub_809FBE4
-sub_809FBE4: @ 809FBE4
- push {r4,lr}
- movs r4, 0
-_0809FBE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1B
- bls _0809FBE8
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FBE4
-
- thumb_func_start sub_809FC0C
-sub_809FC0C: @ 809FC0C
- push {lr}
- ldr r0, _0809FC30 @ =gOtherText_Type2
- movs r1, 0xB
- movs r2, 0x6
- bl MenuPrint
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- movs r0, 0x2
- movs r1, 0x17
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- pop {r0}
- bx r0
- .align 2, 0
-_0809FC30: .4byte gOtherText_Type2
- thumb_func_end sub_809FC0C
-
- thumb_func_start sub_809FC34
-sub_809FC34: @ 809FC34
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r4, 0
-_0809FC3C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FC3C
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FD1C
- ldr r5, _0809FCD0 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash
- adds r1, r4, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FCD0 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0xC1
- movs r3, 0x20
- bl sub_80A1EF8
- movs r0, 0x9
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- adds r0, r6, 0
- movs r1, 0x20
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x5
- bhi _0809FCE0
- ldr r0, _0809FCDC @ =gOtherText_EggAbout
- b _0809FCF2
- .align 2, 0
-_0809FCD0: .4byte gStringVar1
-_0809FCD4: .4byte gOtherText_OriginalTrainer
-_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
-_0809FCDC: .4byte gOtherText_EggAbout
-_0809FCE0:
- cmp r0, 0xA
- bhi _0809FCEC
- ldr r0, _0809FCE8 @ =gOtherText_EggSoon
- b _0809FCF2
- .align 2, 0
-_0809FCE8: .4byte gOtherText_EggSoon
-_0809FCEC:
- cmp r1, 0x28
- bhi _0809FD00
- ldr r0, _0809FCFC @ =gOtherText_EggSomeTime
-_0809FCF2:
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- b _0809FD0A
- .align 2, 0
-_0809FCFC: .4byte gOtherText_EggSomeTime
-_0809FD00:
- ldr r0, _0809FD18 @ =gOtherText_EggLongTime
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
-_0809FD0A:
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0708
- b _0809FE4C
- .align 2, 0
-_0809FD18: .4byte gOtherText_EggLongTime
-_0809FD1C:
- ldr r4, _0809FD64 @ =gStringVar2
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r5, _0809FD68 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- adds r0, r6, 0
- movs r1, 0x31
- bl GetMonData
- cmp r0, 0
- bne _0809FD70
- adds r0, r5, 0
- movs r1, 0x9
- b _0809FD74
- .align 2, 0
-_0809FD64: .4byte gStringVar2
-_0809FD68: .4byte gStringVar1
-_0809FD6C: .4byte gOtherText_OriginalTrainer
-_0809FD70:
- adds r0, r5, 0
- movs r1, 0xA
-_0809FD74:
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FE54 @ =gStringVar2
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FE58 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _0809FE5C @ =0x0000ffff
- ands r1, r0
- movs r0, 0xC1
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0xD
- movs r2, 0x5
- movs r3, 0x2
- bl sub_80A1F98
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0809FE60 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r5, r1, r2
- ldrb r4, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- ldrb r0, [r5, 0x7]
- cmp r4, r0
- beq _0809FDF8
- ldrb r0, [r5, 0x7]
- movs r1, 0xA0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_80A198C
-_0809FDF8:
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x2E
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xD
- muls r0, r4
- ldr r1, _0809FE64 @ =gAbilityNames
- adds r0, r1
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1FF8
- ldr r0, _0809FE68 @ =gAbilityDescriptions
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- movs r2, 0xB
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0798
-_0809FE4C:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FE54: .4byte gStringVar2
-_0809FE58: .4byte gStringVar1
-_0809FE5C: .4byte 0x0000ffff
-_0809FE60: .4byte gBaseStats
-_0809FE64: .4byte gAbilityNames
-_0809FE68: .4byte gAbilityDescriptions
- thumb_func_end sub_809FC34
-
- thumb_func_start sub_809FE6C
-sub_809FE6C: @ 809FE6C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FC0C
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FE6C
-
- thumb_func_start sub_809FE80
-sub_809FE80: @ 809FE80
- push {lr}
- movs r0, 0xE
- movs r1, 0x4
- movs r2, 0x12
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x19
- movs r1, 0x4
- movs r2, 0x1E
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_809FE80
-
- thumb_func_start sub_809FEB8
-sub_809FEB8: @ 809FEB8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0809FF40 @ =gOtherText_ExpPoints
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xE
- bl sub_80A1FF8
- ldr r0, _0809FF44 @ =gOtherText_NextLv
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FF48 @ =gOtherText_Terminator18
- movs r1, 0x15
- movs r2, 0x10
- bl MenuPrint
- ldr r0, _0809FF4C @ =gOtherText_HP
- movs r4, 0x2A
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF50 @ =gOtherText_Attack
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF54 @ =gOtherText_Defense
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xB
- bl sub_80A1F48
- ldr r0, _0809FF58 @ =gOtherText_SpAtk
- movs r4, 0x24
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF5C @ =gOtherText_SpDef
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF60 @ =gOtherText_Speed
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0xB
- bl sub_80A1F48
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FF40: .4byte gOtherText_ExpPoints
-_0809FF44: .4byte gOtherText_NextLv
-_0809FF48: .4byte gOtherText_Terminator18
-_0809FF4C: .4byte gOtherText_HP
-_0809FF50: .4byte gOtherText_Attack
-_0809FF54: .4byte gOtherText_Defense
-_0809FF58: .4byte gOtherText_SpAtk
-_0809FF5C: .4byte gOtherText_SpDef
-_0809FF60: .4byte gOtherText_Speed
- thumb_func_end sub_809FEB8
-
- thumb_func_start sub_809FF64
-sub_809FF64: @ 809FF64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0809FF6A:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FF6A
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- movs r2, 0x4
- bl sub_80A0BF4
- adds r0, r5, 0
- bl sub_80A0B88
- ldr r4, _080A008C @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1D
- movs r2, 0xE
- bl MenuPrint_RightAligned
- adds r0, r5, 0
- movs r1, 0x17
- movs r2, 0x10
- bl sub_80A0C80
- adds r0, r5, 0
- movs r1, 0x3B
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3C
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3E
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x7
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3F
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x9
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3D
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0xB
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- movs r0, 0xBA
- strb r0, [r4]
- adds r4, 0x1
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A008C @ =gStringVar1
- movs r1, 0x7E
- movs r2, 0x38
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A008C: .4byte gStringVar1
- thumb_func_end sub_809FF64
-
- thumb_func_start sub_80A0090
-sub_80A0090: @ 80A0090
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FEB8
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0090
-
- thumb_func_start sub_80A00A4
-sub_80A00A4: @ 80A00A4
- push {lr}
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x13
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x10
- movs r1, 0x7
- movs r2, 0x15
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- movs r0, 0x11
- movs r1, 0x9
- movs r2, 0x15
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1B
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x16
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80A00A4
-
- thumb_func_start sub_80A00F4
-sub_80A00F4: @ 80A00F4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _080A012C @ =0x02018000
- adds r0, r2, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A010A
- cmp r1, 0x4
- beq _080A0150
-_080A010A:
- ldrb r0, [r2, 0xB]
- cmp r0, 0x2
- bne _080A0138
- ldr r0, _080A0130 @ =gOtherText_Power2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0134 @ =gOtherText_Accuracy2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
- b _080A0150
- .align 2, 0
-_080A012C: .4byte 0x02018000
-_080A0130: .4byte gOtherText_Power2
-_080A0134: .4byte gOtherText_Accuracy2
-_080A0138:
- ldr r0, _080A0154 @ =gOtherText_Appeal2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0158 @ =gOtherText_Jam2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
-_080A0150:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0154: .4byte gOtherText_Appeal2
-_080A0158: .4byte gOtherText_Jam2
- thumb_func_end sub_80A00F4
-
- thumb_func_start sub_80A015C
-sub_80A015C: @ 80A015C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- movs r7, 0
-_080A0168:
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F760
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F798
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r6, 0
- bne _080A01B8
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80A1918
- lsls r4, r7, 25
- movs r0, 0x80
- lsls r0, 19
- adds r4, r0
- lsrs r4, 24
- ldr r0, _080A01B0 @ =gOtherText_OneDash
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r4, 0
- bl sub_80A1FF8
- ldr r0, _080A01B4 @ =gOtherText_TwoDashes
- movs r1, 0x1A
- adds r2, r4, 0
- bl MenuPrint
- b _080A0276
- .align 2, 0
-_080A01B0: .4byte gOtherText_OneDash
-_080A01B4: .4byte gOtherText_TwoDashes
-_080A01B8:
- ldr r0, _080A01E0 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A01E8
- ldr r1, _080A01E4 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
- b _080A020C
- .align 2, 0
-_080A01E0: .4byte 0x02018000
-_080A01E4: .4byte gBattleMoves
-_080A01E8:
- ldr r1, _080A0290 @ =gContestMoves
- lsls r0, r6, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
-_080A020C:
- movs r0, 0xD
- muls r0, r6
- ldr r1, _080A0294 @ =gMoveNames
- adds r0, r1
- adds r5, r4, 0x4
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r5, 0
- bl sub_80A1FF8
- movs r0, 0x1
- movs r1, 0x18
- adds r2, r5, 0
- bl GetStringCenterAlignXOffset
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A0298 @ =gStringVar1
- adds r0, r1, 0
- mov r1, r9
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r1, r0, 0
- movs r0, 0xBA
- strb r0, [r1]
- adds r1, 0x1
- adds r0, r1, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0298 @ =gStringVar1
- movs r1, 0x19
- adds r2, r5, 0
- bl MenuPrint
-_080A0276:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bhi _080A0282
- b _080A0168
-_080A0282:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0290: .4byte gContestMoves
-_080A0294: .4byte gMoveNames
-_080A0298: .4byte gStringVar1
- thumb_func_end sub_80A015C
-
- thumb_func_start sub_80A029C
-sub_80A029C: @ 80A029C
- push {r4,r5,lr}
- ldr r1, _080A02B8 @ =0x02018000
- adds r4, r1, 0
- adds r4, 0x7C
- ldrh r0, [r4]
- cmp r0, 0
- bne _080A02C0
- ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A037E
- .align 2, 0
-_080A02B8: .4byte 0x02018000
-_080A02BC: .4byte gOtherText_CancelNoTerminator
-_080A02C0:
- ldrh r5, [r4]
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- bne _080A02E4
- ldr r1, _080A02E0 @ =gBattleMoves
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- b _080A0304
- .align 2, 0
-_080A02E0: .4byte gBattleMoves
-_080A02E4:
- ldr r1, _080A0320 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- lsls r4, r5, 1
-_080A0304:
- ldr r0, _080A0324 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A032C
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0328 @ =gMoveNames
- adds r0, r1
- movs r1, 0xA
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A033E
- .align 2, 0
-_080A0320: .4byte gContestMoves
-_080A0324: .4byte 0x02018000
-_080A0328: .4byte gMoveNames
-_080A032C:
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0384 @ =gMoveNames
- adds r0, r1
- movs r1, 0x9
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
-_080A033E:
- movs r0, 0x1
- movs r1, 0x18
- movs r2, 0xC
- bl GetStringCenterAlignXOffset
- ldr r2, _080A0388 @ =gStringVar1
- ldr r1, _080A038C @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x4]
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0388 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0xC
- bl MenuPrint
-_080A037E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0384: .4byte gMoveNames
-_080A0388: .4byte gStringVar1
-_080A038C: .4byte gBattleMoves
- thumb_func_end sub_80A029C
-
- thumb_func_start sub_80A0390
-sub_80A0390: @ 80A0390
- push {r4,lr}
- movs r4, 0
-_080A0394:
- lsls r3, r4, 1
- adds r1, r3, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xF
- movs r2, 0x1C
- bl MenuZeroFillWindowRect
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080A0394
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0390
-
- thumb_func_start sub_80A03BC
-sub_80A03BC: @ 80A03BC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x4
- beq _080A03D0
- bl sub_809F760
- lsls r0, 16
- lsrs r1, r0, 16
- b _080A03E0
-_080A03D0:
- ldr r0, _080A03E8 @ =0x02018000
- adds r2, r0, 0
- adds r2, 0x7C
- ldrh r0, [r2]
- ldr r1, _080A03EC @ =0x0000ffff
- cmp r0, 0
- beq _080A03E0
- adds r1, r0, 0
-_080A03E0:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A03E8: .4byte 0x02018000
-_080A03EC: .4byte 0x0000ffff
- thumb_func_end sub_80A03BC
-
- thumb_func_start sub_80A03F0
-sub_80A03F0: @ 80A03F0
- push {lr}
- ldrb r1, [r1]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0414 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A041C
- adds r0, r1, 0
- bl sub_80A04CC
- ldr r0, _080A0418 @ =0x0000ffff
- bl sub_80A057C
- b _080A0422
- .align 2, 0
-_080A0414: .4byte 0x02018000
-_080A0418: .4byte 0x0000ffff
-_080A041C:
- adds r0, r1, 0
- bl sub_80A057C
-_080A0422:
- pop {r0}
- bx r0
- thumb_func_end sub_80A03F0
-
- thumb_func_start sub_80A0428
-sub_80A0428: @ 80A0428
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrb r1, [r6]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _080A0454 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A0458
- adds r0, r4, 0
- bl sub_80A046C
- b _080A045E
- .align 2, 0
-_080A0454: .4byte 0x02018000
-_080A0458:
- adds r0, r4, 0
- bl sub_80A0498
-_080A045E:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A03F0
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0428
-
- thumb_func_start sub_80A046C
-sub_80A046C: @ 80A046C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0490 @ =0x0000ffff
- cmp r1, r0
- beq _080A048A
- ldr r0, _080A0494 @ =gMoveDescriptions
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A048A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0490: .4byte 0x0000ffff
-_080A0494: .4byte gMoveDescriptions
- thumb_func_end sub_80A046C
-
- thumb_func_start sub_80A0498
-sub_80A0498: @ 80A0498
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A04C0 @ =0x0000ffff
- cmp r3, r0
- beq _080A04BC
- ldr r2, _080A04C4 @ =gUnknown_083CADD4
- ldr r1, _080A04C8 @ =gContestMoves
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A04BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080A04C0: .4byte 0x0000ffff
-_080A04C4: .4byte gUnknown_083CADD4
-_080A04C8: .4byte gContestMoves
- thumb_func_end sub_80A0498
-
- thumb_func_start sub_80A04CC
-sub_80A04CC: @ 80A04CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080A0504 @ =0x0000ffff
- cmp r4, r0
- beq _080A0572
- ldr r2, _080A0508 @ =gBattleMoves
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _080A0514
- ldr r0, _080A050C @ =gStringVar1
- ldr r1, _080A0510 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A050C @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
- b _080A052A
- .align 2, 0
-_080A0504: .4byte 0x0000ffff
-_080A0508: .4byte gBattleMoves
-_080A050C: .4byte gStringVar1
-_080A0510: .4byte gOtherText_ThreeDashes2
-_080A0514:
- ldr r0, _080A0550 @ =gStringVar1
- ldrb r1, [r2, 0x1]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
-_080A052A:
- ldr r0, _080A0554 @ =gBattleMoves
- adds r1, r5, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _080A055C
- ldr r0, _080A0550 @ =gStringVar1
- ldr r1, _080A0558 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
- b _080A0572
- .align 2, 0
-_080A0550: .4byte gStringVar1
-_080A0554: .4byte gBattleMoves
-_080A0558: .4byte gOtherText_ThreeDashes2
-_080A055C:
- ldr r0, _080A0578 @ =gStringVar1
- ldrb r1, [r1, 0x3]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0578 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
-_080A0572:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0578: .4byte gStringVar1
- thumb_func_end sub_80A04CC
-
- thumb_func_start sub_80A057C
-sub_80A057C: @ 80A057C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080A0648 @ =0x06006800
- mov r8, r0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- ldr r1, _080A0650 @ =gContestEffects
- ldr r2, _080A0654 @ =gContestMoves
- lsls r3, r5, 3
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- mov r10, r2
- mov r9, r3
- cmp r4, 0xFF
- beq _080A05B8
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A05B8:
- movs r2, 0
- movs r7, 0x3
- movs r6, 0xF3
- lsls r6, 2
-_080A05C0:
- ldr r3, _080A0658 @ =0x00001039
- cmp r4, 0xFF
- beq _080A05CC
- cmp r2, r4
- bcs _080A05CC
- adds r3, 0x1
-_080A05CC:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r7
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r6
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A05C0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- mov r0, r9
- add r0, r10
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _080A0650 @ =gContestEffects
- adds r0, r1
- ldrb r4, [r0, 0x2]
- cmp r4, 0xFF
- beq _080A060C
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A060C:
- movs r2, 0
- movs r6, 0x3
- ldr r5, _080A065C @ =0x0000044c
-_080A0612:
- ldr r3, _080A0660 @ =0x0000103d
- cmp r4, 0xFF
- beq _080A061E
- cmp r2, r4
- bcs _080A061E
- subs r3, 0x1
-_080A061E:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r6
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r5
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A0612
-_080A063A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0648: .4byte 0x06006800
-_080A064C: .4byte 0x0000ffff
-_080A0650: .4byte gContestEffects
-_080A0654: .4byte gContestMoves
-_080A0658: .4byte 0x00001039
-_080A065C: .4byte 0x0000044c
-_080A0660: .4byte 0x0000103d
- thumb_func_end sub_80A057C
-
- thumb_func_start sub_80A0664
-sub_80A0664: @ 80A0664
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080A06A0 @ =0x02018000
- ldr r1, [r0]
- ldr r0, _080A06A4 @ =gEnemyParty
- cmp r1, r0
- bne _080A06B0
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A06A8 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldrh r5, [r0]
- ldr r4, _080A06AC @ =gStringVar1
- adds r2, 0x8
- adds r1, r2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StripExtCtrlCodes
- b _080A06C2
- .align 2, 0
-_080A06A0: .4byte 0x02018000
-_080A06A4: .4byte gEnemyParty
-_080A06A8: .4byte gLinkPlayers
-_080A06AC: .4byte gStringVar1
-_080A06B0:
- bl sub_80BFB94
- adds r5, r0, 0
- ldr r0, _080A06F0 @ =0x0000ffff
- ands r5, r0
- ldr r0, _080A06F4 @ =gStringVar1
- ldr r1, _080A06F8 @ =gSaveBlock2
- bl StringCopy
-_080A06C2:
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _080A06F0 @ =0x0000ffff
- ands r1, r0
- cmp r5, r1
- bne _080A06EA
- ldr r4, _080A06FC @ =gStringVar2
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080A06F4 @ =gStringVar1
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080A0700
-_080A06EA:
- movs r0, 0
- b _080A0702
- .align 2, 0
-_080A06F0: .4byte 0x0000ffff
-_080A06F4: .4byte gStringVar1
-_080A06F8: .4byte gSaveBlock2
-_080A06FC: .4byte gStringVar2
-_080A0700:
- movs r0, 0x1
-_080A0702:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0664
-
- thumb_func_start sub_80A0708
-sub_80A0708: @ 80A0708
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r9, r5
- lsls r2, 24
- lsrs r6, r2, 24
- mov r8, r6
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bls _080A073C
- ldr r0, _080A0738 @ =gOtherText_EggObtainedInTrade
- b _080A076E
- .align 2, 0
-_080A0738: .4byte gOtherText_EggObtainedInTrade
-_080A073C:
- adds r0, r4, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xFF
- bne _080A0754
- ldr r0, _080A0750 @ =gOtherText_EggNicePlace
- b _080A076E
- .align 2, 0
-_080A0750: .4byte gOtherText_EggNicePlace
-_080A0754:
- adds r0, r4, 0
- bl sub_80A0664
- lsls r0, 24
- cmp r0, 0
- bne _080A0768
- ldr r0, _080A0764 @ =gOtherText_EggObtainedInTrade
- b _080A076E
- .align 2, 0
-_080A0764: .4byte gOtherText_EggObtainedInTrade
-_080A0768:
- cmp r7, 0xFD
- bne _080A077C
- ldr r0, _080A0778 @ =gOtherText_EggHotSprings
-_080A076E:
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- b _080A0786
- .align 2, 0
-_080A0778: .4byte gOtherText_EggHotSprings
-_080A077C:
- ldr r0, _080A0794 @ =gOtherText_EggDayCare
- mov r1, r9
- mov r2, r8
- bl MenuPrint
-_080A0786:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0794: .4byte gOtherText_EggDayCare
- thumb_func_end sub_80A0708
-
- thumb_func_start sub_80A0798
-sub_80A0798: @ 80A0798
- 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
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r5, _080A0838 @ =gStringVar4
- bl GetNature
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A083C @ =gNatureNames
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- cmp r4, 0x5
- beq _080A07DA
- cmp r4, 0x15
- beq _080A07DA
- ldr r1, _080A0840 @ =gOtherText_Terminator4
- bl StringCopy
- adds r5, r0, 0
-_080A07DA:
- ldr r1, _080A0844 @ =gOtherText_Nature
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- adds r0, r7, 0
- bl sub_80A0664
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0898
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- cmp r0, 0
- bne _080A0850
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0848 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A084C @ =gOtherText_Egg2
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0838: .4byte gStringVar4
-_080A083C: .4byte gNatureNames
-_080A0840: .4byte gOtherText_Terminator4
-_080A0844: .4byte gOtherText_Nature
-_080A0848: .4byte gStringVar1
-_080A084C: .4byte gOtherText_Egg2
-_080A0850:
- cmp r6, 0x57
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0890 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0894 @ =gOtherText_Met
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0890: .4byte gStringVar1
-_080A0894: .4byte gOtherText_Met
-_080A0898:
- adds r0, r7, 0
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080A08E4
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08E0 @ =gOtherText_FatefulEncounter
- b _080A08F0
- .align 2, 0
-_080A08E0: .4byte gOtherText_FatefulEncounter
-_080A08E4:
- cmp r6, 0x57
- bls _080A08FC
-_080A08E8:
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08F8 @ =gOtherText_ObtainedInTrade
-_080A08F0:
- adds r0, r5, 0
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A08F8: .4byte gOtherText_ObtainedInTrade
-_080A08FC:
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A094C @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0950 @ =gOtherText_Met2
- bl StringCopy
-_080A0934:
- ldr r0, _080A0954 @ =gStringVar4
- mov r1, r9
- mov r2, r8
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A094C: .4byte gStringVar1
-_080A0950: .4byte gOtherText_Met2
-_080A0954: .4byte gStringVar4
- thumb_func_end sub_80A0798
-
- thumb_func_start sub_80A0958
-sub_80A0958: @ 80A0958
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r2, _080A0A24 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x7
- strb r0, [r2, 0x2]
- movs r0, 0xBA
- strb r0, [r2, 0x3]
- adds r2, 0x4
- movs r0, 0xB
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080A0A28 @ =gSpeciesNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r6, [r2]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r2, 0x1]
- movs r0, 0x50
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- mov r9, r0
- strb r0, [r2, 0x3]
- ldr r5, _080A0A24 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- bl MenuPrint
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r0, 0x34
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- strb r6, [r2]
- mov r0, r10
- strb r0, [r2, 0x1]
- movs r0, 0x20
- strb r0, [r2, 0x2]
- mov r0, r9
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x10
- bl MenuPrint
- mov r0, r8
- movs r1, 0x7
- movs r2, 0x10
- bl sub_80A0A2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A24: .4byte gStringVar1
-_080A0A28: .4byte gSpeciesNames
- thumb_func_end sub_80A0958
-
- thumb_func_start sub_80A0A2C
-sub_80A0A2C: @ 80A0A2C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x20
- beq _080A0A84
- cmp r0, 0x1D
- beq _080A0A84
- adds r0, r6, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A0A6E
- cmp r0, 0xFE
- beq _080A0A78
- adds r3, r4, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuZeroFillWindowRect
- b _080A0A84
-_080A0A6E:
- ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2
- movs r1, 0xB
- b _080A0A7C
- .align 2, 0
-_080A0A74: .4byte gOtherText_MaleSymbol2
-_080A0A78:
- ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv
- movs r1, 0xC
-_080A0A7C:
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_80A1FF8
-_080A0A84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
- thumb_func_end sub_80A0A2C
-
- thumb_func_start sub_80A0A90
-sub_80A0A90: @ 80A0A90
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x33
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x34
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x35
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x36
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x43
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x44
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x45
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x46
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x47
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x48
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x49
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4A
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4B
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4C
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4D
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4E
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0A90
-
- thumb_func_start sub_80A0B88
-sub_80A0B88: @ 80A0B88
- push {r4,r5,lr}
- bl sub_80A0A90
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A0BA8
- ldr r0, _080A0BA0 @ =gStringVar1
- ldr r1, _080A0BA4 @ =gOtherText_None
- bl StringCopy
- b _080A0BD8
- .align 2, 0
-_080A0BA0: .4byte gStringVar1
-_080A0BA4: .4byte gOtherText_None
-_080A0BA8:
- ldr r4, _080A0BE8 @ =gStringVar1
- ldr r1, _080A0BEC @ =gOtherText_Ribbons00
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r0, 24
- subs r4, 0x2
- adds r0, r4
- movs r1, 0xFC
- strb r1, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x6
- strb r1, [r0, 0x2]
- adds r0, 0x3
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
-_080A0BD8:
- ldr r0, _080A0BF0 @ =gUnknown_083C15AE
- movs r1, 0x15
- movs r2, 0x4
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0BE8: .4byte gStringVar1
-_080A0BEC: .4byte gOtherText_Ribbons00
-_080A0BF0: .4byte gUnknown_083C15AE
- thumb_func_end sub_80A0B88
-
- thumb_func_start sub_80A0BF4
-sub_80A0BF4: @ 80A0BF4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r5, 0xAF
- bne _080A0C48
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- ldr r0, _080A0C40 @ =0x02018000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- beq _080A0C2E
- cmp r0, 0x4
- beq _080A0C2E
- cmp r0, 0x5
- bne _080A0C48
-_080A0C2E:
- ldr r4, _080A0C44 @ =gStringVar1
- adds r0, r5, 0
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C40: .4byte 0x02018000
-_080A0C44: .4byte gStringVar1
-_080A0C48:
- cmp r5, 0
- bne _080A0C60
- ldr r0, _080A0C58 @ =gStringVar1
- ldr r1, _080A0C5C @ =gOtherText_None
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C58: .4byte gStringVar1
-_080A0C5C: .4byte gOtherText_None
-_080A0C60:
- ldr r1, _080A0C78 @ =gStringVar1
- adds r0, r5, 0
- bl CopyItemName
-_080A0C68:
- ldr r0, _080A0C7C @ =gUnknown_083C15B4
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0C78: .4byte gStringVar1
-_080A0C7C: .4byte gUnknown_083C15B4
- thumb_func_end sub_80A0BF4
-
- thumb_func_start sub_80A0C80
-sub_80A0C80: @ 80A0C80
- 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
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- movs r0, 0
- mov r9, r0
- movs r6, 0
- movs r7, 0
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x63
- bhi _080A0D14
- ldr r3, _080A0D4C @ =gExperienceTables
- adds r1, r5, 0x1
- lsls r1, 2
- ldr r2, _080A0D50 @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- mov r0, r8
- subs r0, r1, r0
- mov r9, r0
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r3
- ldr r0, [r0]
- subs r1, r0
- mov r2, r8
- subs r4, r2, r0
- lsls r0, r4, 6
- bl __udivsi3
- adds r6, r0, 0
- movs r7, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _080A0D14
- cmp r4, 0
- beq _080A0D14
- movs r6, 0x1
- movs r7, 0
-_080A0D14:
- ldr r4, _080A0D54 @ =gStringVar1
- adds r0, r4, 0
- mov r1, r9
- bl ConvertIntToDecimalString
- mov r1, r10
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp]
- bl MenuPrint_RightAligned
- ldr r0, _080A0D58 @ =0x06004caa
- mov r9, r0
- movs r2, 0
- mov r12, r2
- ldr r0, _080A0D5C @ =0x00002062
- mov r8, r0
-_080A0D3A:
- cmp r7, 0
- bgt _080A0D46
- cmp r7, 0
- bne _080A0D64
- cmp r6, 0x7
- bls _080A0D64
-_080A0D46:
- ldr r1, _080A0D60 @ =0x0000206a
- b _080A0D96
- .align 2, 0
-_080A0D4C: .4byte gExperienceTables
-_080A0D50: .4byte gBaseStats
-_080A0D54: .4byte gStringVar1
-_080A0D58: .4byte 0x06004caa
-_080A0D5C: .4byte 0x00002062
-_080A0D60: .4byte 0x0000206a
-_080A0D64:
- adds r5, r7, 0
- adds r4, r6, 0
- cmp r7, 0
- bge _080A0D74
- movs r4, 0x7
- movs r5, 0
- adds r4, r6
- adcs r5, r7
-_080A0D74:
- lsls r3, r5, 29
- lsrs r2, r4, 3
- adds r0, r3, 0
- orrs r0, r2
- asrs r1, r5, 3
- lsrs r5, r0, 29
- lsls r4, r1, 3
- adds r3, r5, 0
- orrs r3, r4
- lsls r2, r0, 3
- adds r1, r7, 0
- adds r0, r6, 0
- subs r0, r2
- sbcs r1, r3
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
-_080A0D96:
- mov r2, r12
- lsls r0, r2, 1
- add r0, r9
- strh r1, [r0]
- movs r0, 0x8
- negs r0, r0
- asrs r1, r0, 31
- adds r6, r0
- adcs r7, r1
- cmp r7, 0
- bge _080A0DB0
- movs r6, 0
- movs r7, 0
-_080A0DB0:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x7
- bls _080A0D3A
- 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_80A0C80
-
- thumb_func_start sub_80A0DD0
-sub_80A0DD0: @ 80A0DD0
- push {r4,r5,lr}
- ldr r2, _080A0E3C @ =gStringVar1
- movs r5, 0xFC
- strb r5, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E40 @ =gUnknown_083C1068
- ldr r4, _080A0E44 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r5, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x58
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E3C @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r4, 0x7F
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A0E48
- movs r0, 0x5
- movs r1, 0x17
- movs r2, 0
- bl GetStringCenterAlignXOffset
- movs r0, 0x6
- movs r1, 0x18
- movs r2, 0
- bl GetStringCenterAlignXOffset
- b _080A0E54
- .align 2, 0
-_080A0E3C: .4byte gStringVar1
-_080A0E40: .4byte gUnknown_083C1068
-_080A0E44: .4byte 0x02018000
-_080A0E48:
- movs r0, 0x17
- movs r1, 0
- movs r2, 0x18
- movs r3, 0x1
- bl MenuZeroFillWindowRect
-_080A0E54:
- ldr r2, _080A0E98 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E9C @ =gUnknown_083C1068
- ldr r0, _080A0EA0 @ =0x02018000
- adds r0, 0x7F
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x28
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E98 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0E98: .4byte gStringVar1
-_080A0E9C: .4byte gUnknown_083C1068
-_080A0EA0: .4byte 0x02018000
- thumb_func_end sub_80A0DD0
-
- thumb_func_start sub_80A0EA4
-sub_80A0EA4: @ 80A0EA4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A0ECC @ =0x0600e444
- ldr r6, _080A0ED0 @ =0x0600ec44
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A0ED4
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- beq _080A0ED4
- movs r0, 0x2C
- b _080A0ED8
- .align 2, 0
-_080A0ECC: .4byte 0x0600e444
-_080A0ED0: .4byte 0x0600ec44
-_080A0ED4:
- ldr r1, _080A0EE4 @ =0x0000081a
- adds r0, r1, 0
-_080A0ED8:
- strh r0, [r5]
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0EE4: .4byte 0x0000081a
- thumb_func_end sub_80A0EA4
-
- thumb_func_start sub_80A0EE8
-sub_80A0EE8: @ 80A0EE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r3, 0
- ldr r6, _080A0F24 @ =0x02018000
- adds r5, r6, 0
- ldr r1, _080A0F28 @ =0x00004040
- mov r8, r1
- ldr r2, _080A0F2C @ =0x0000404a
- mov r10, r2
-_080A0F02:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080A0F30
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r4, r8
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r7, sp
- adds r0, r7, r1
- strh r4, [r0]
- b _080A0FE2
- .align 2, 0
-_080A0F24: .4byte 0x02018000
-_080A0F28: .4byte 0x00004040
-_080A0F2C: .4byte 0x0000404a
-_080A0F30:
- movs r0, 0x76
- adds r0, r6
- mov r12, r0
- ldrb r1, [r0]
- cmp r3, r1
- bls _080A0F52
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r2, r10
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r4, sp
- adds r0, r4, r1
- strh r2, [r0]
- b _080A0FE2
-_080A0F52:
- ldrb r4, [r5, 0xB]
- cmp r3, r4
- bcs _080A0F6E
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0F88 @ =0x00004046
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0F6E:
- cmp r3, r4
- bne _080A0FA6
- mov r0, r12
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0F90
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0F8C @ =0x00004041
- b _080A0F9A
- .align 2, 0
-_080A0F88: .4byte 0x00004046
-_080A0F8C: .4byte 0x00004041
-_080A0F90:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0FC4 @ =0x0000404b
-_080A0F9A:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FA6:
- ldrb r0, [r5, 0xB]
- cmp r3, r0
- bls _080A0FE2
- adds r0, r6, 0
- adds r0, 0x76
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0FCC
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0FC8 @ =0x00004043
- b _080A0FD6
- .align 2, 0
-_080A0FC4: .4byte 0x0000404b
-_080A0FC8: .4byte 0x00004043
-_080A0FCC:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A1034 @ =0x00004048
-_080A0FD6:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FE2:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A0F02
- ldr r1, _080A1038 @ =0x0600e016
- ldr r0, _080A103C @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r3, 0
-_080A0FFE:
- lsls r0, r3, 1
- mov r4, sp
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x10
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _080A0FFE
- ldr r1, _080A1044 @ =0x0600e056
- ldr r0, _080A103C @ =0x040000d4
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- 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
-_080A1034: .4byte 0x00004048
-_080A1038: .4byte 0x0600e016
-_080A103C: .4byte 0x040000d4
-_080A1040: .4byte 0x80000008
-_080A1044: .4byte 0x0600e056
- thumb_func_end sub_80A0EE8
-
- thumb_func_start sub_80A1048
-sub_80A1048: @ 80A1048
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080A10A0 @ =gTasks + 0x8
- adds r6, r0, r1
- ldrh r0, [r6]
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r6, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080A106E
- b _080A1224
-_080A106E:
- movs r5, 0x2
- ldrsh r2, [r6, r5]
- ldr r0, _080A10A4 @ =0x0000024a
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A10A8 @ =gUnknown_08E73508
- adds r4, r0, r1
- ldr r5, _080A10AC @ =0x0600e480
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 5
- adds r7, r1, 0
- cmp r2, r0
- bhi _080A10B4
- ldr r0, _080A10B0 @ =0x040000d4
- str r4, [r0]
- str r5, [r0, 0x4]
- lsrs r1, r2, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A10E0
- .align 2, 0
-_080A10A0: .4byte gTasks + 0x8
-_080A10A4: .4byte 0x0000024a
-_080A10A8: .4byte gUnknown_08E73508
-_080A10AC: .4byte 0x0600e480
-_080A10B0: .4byte 0x040000d4
-_080A10B4:
- ldr r3, _080A110C @ =0x040000d4
- str r4, [r3]
- str r5, [r3, 0x4]
- ldr r0, _080A1110 @ =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- adds r5, r0
- ldr r1, _080A1114 @ =0xfffff000
- adds r2, r1
- cmp r2, r0
- bhi _080A10B4
- str r4, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r2, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_080A10E0:
- movs r5, 0x2
- ldrsh r0, [r6, r5]
- ldr r1, _080A1118 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A111C @ =0x0600e4c0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A1120
- ldr r0, _080A110C @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A114C
- .align 2, 0
-_080A110C: .4byte 0x040000d4
-_080A1110: .4byte 0x80000800
-_080A1114: .4byte 0xfffff000
-_080A1118: .4byte 0x0000026a
-_080A111C: .4byte 0x0600e4c0
-_080A1120:
- ldr r2, _080A1178 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A117C @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A1180 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A1120
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A114C:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A1184 @ =0x0000024a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A1188 @ =0x0600ec80
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A118C
- ldr r0, _080A1178 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A11B8
- .align 2, 0
-_080A1178: .4byte 0x040000d4
-_080A117C: .4byte 0x80000800
-_080A1180: .4byte 0xfffff000
-_080A1184: .4byte 0x0000024a
-_080A1188: .4byte 0x0600ec80
-_080A118C:
- ldr r2, _080A11E4 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A11E8 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A11EC @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A118C
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A11B8:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A11F0 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A11F4 @ =0x0600ecc0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A11F8
- ldr r0, _080A11E4 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A1224
- .align 2, 0
-_080A11E4: .4byte 0x040000d4
-_080A11E8: .4byte 0x80000800
-_080A11EC: .4byte 0xfffff000
-_080A11F0: .4byte 0x0000026a
-_080A11F4: .4byte 0x0600ecc0
-_080A11F8:
- ldr r2, _080A12B0 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A12B4 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A12B8 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A11F8
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A1224:
- ldrb r4, [r6, 0x2]
- ldrh r7, [r6, 0x2]
- ldrh r0, [r6]
- mov r12, r0
- cmp r4, 0x9
- bhi _080A1272
- adds r3, r6, 0x4
- ldr r2, _080A12B0 @ =0x040000d4
- ldr r5, _080A12BC @ =0x80000001
-_080A1236:
- lsls r1, r4, 1
- ldr r6, _080A12C0 @ =0x0600e480
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r6, 0x40
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r6, _080A12C4 @ =0x0600ec80
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080A12C8 @ =0x0600ecc0
- adds r1, r0
- str r3, [r2]
- str r1, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1236
-_080A1272:
- mov r1, r12
- lsls r0, r1, 16
- cmp r0, 0
- beq _080A1286
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- ble _080A1286
- cmp r0, 0x9
- ble _080A12A4
-_080A1286:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080A129A
- ldr r0, _080A12CC @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A129A:
- bl sub_80A1D18
- mov r0, r8
- bl DestroyTask
-_080A12A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A12B0: .4byte 0x040000d4
-_080A12B4: .4byte 0x80000800
-_080A12B8: .4byte 0xfffff000
-_080A12BC: .4byte 0x80000001
-_080A12C0: .4byte 0x0600e480
-_080A12C4: .4byte 0x0600ec80
-_080A12C8: .4byte 0x0600ecc0
-_080A12CC: .4byte gOtherText_Status
- thumb_func_end sub_80A1048
-
- thumb_func_start sub_80A12D0
-sub_80A12D0: @ 80A12D0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1D
- bl sub_80A18E4
- ldr r0, _080A1310 @ =sub_80A1048
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A1314 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- cmp r4, 0
- bge _080A1318
- movs r0, 0xA
- b _080A131A
- .align 2, 0
-_080A1310: .4byte sub_80A1048
-_080A1314: .4byte gTasks
-_080A1318:
- movs r0, 0
-_080A131A:
- strh r0, [r1, 0xA]
- ldr r0, _080A1330 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1330: .4byte gTasks
- thumb_func_end sub_80A12D0
-
- thumb_func_start sub_80A1334
-sub_80A1334: @ 80A1334
- 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 r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A13E4 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A136A
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A136A
- ldrh r0, [r7, 0x2]
-_080A136A:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A13A6
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A13E8 @ =0x06005b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A13EC @ =0x001fffff
- mov r8, r0
-_080A1386:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A13F0 @ =gUnknown_08E73E88
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1386
-_080A13A6:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A13F4
- ldr r4, _080A13E8 @ =0x06005b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A13EC @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A13C2:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A13C2
- b _080A1400
- .align 2, 0
-_080A13E4: .4byte gTasks + 0x8
-_080A13E8: .4byte 0x06005b40
-_080A13EC: .4byte 0x001fffff
-_080A13F0: .4byte gUnknown_08E73E88
-_080A13F4:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1400:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A1410
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A144A
-_080A1410:
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1444
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1444
- ldr r0, _080A1484 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1444:
- mov r0, r10
- bl DestroyTask
-_080A144A:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A1470
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1460
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A1460:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A1470:
- 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
-_080A1480: .4byte 0x02018000
-_080A1484: .4byte gOtherText_Status
- thumb_func_end sub_80A1334
-
- thumb_func_start sub_80A1488
-sub_80A1488: @ 80A1488
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A14DC @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A14A6
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A14A6:
- ldr r5, _080A14E0 @ =sub_80A1334
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A14C2
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A14C2:
- ldr r1, _080A14E4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A14E8
- movs r0, 0xA
- b _080A14EA
- .align 2, 0
-_080A14DC: .4byte 0x02018000
-_080A14E0: .4byte sub_80A1334
-_080A14E4: .4byte gTasks
-_080A14E8:
- movs r0, 0
-_080A14EA:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1488
-
- thumb_func_start sub_80A1500
-sub_80A1500: @ 80A1500
- 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 r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A15B0 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A1536
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A1536
- ldrh r0, [r7, 0x2]
-_080A1536:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A1572
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A15B4 @ =0x06006b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A15B8 @ =0x001fffff
- mov r8, r0
-_080A1552:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A15BC @ =gUnknown_08E74688
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1552
-_080A1572:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A15C0
- ldr r4, _080A15B4 @ =0x06006b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A15B8 @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A158E:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A158E
- b _080A15CC
- .align 2, 0
-_080A15B0: .4byte gTasks + 0x8
-_080A15B4: .4byte 0x06006b40
-_080A15B8: .4byte 0x001fffff
-_080A15BC: .4byte gUnknown_08E74688
-_080A15C0:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A15CC:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A15DC
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A1616
-_080A15DC:
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A1610
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1610
- ldr r0, _080A1650 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1610:
- mov r0, r10
- bl DestroyTask
-_080A1616:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A163C
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A162C
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A162C:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A163C:
- 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
-_080A164C: .4byte 0x02018000
-_080A1650: .4byte gOtherText_Status
- thumb_func_end sub_80A1500
-
- thumb_func_start sub_80A1654
-sub_80A1654: @ 80A1654
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A16A8 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x3
- bne _080A1672
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1672:
- ldr r5, _080A16AC @ =sub_80A1500
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A168E
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A168E:
- ldr r1, _080A16B0 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A16B4
- movs r0, 0xA
- b _080A16B6
- .align 2, 0
-_080A16A8: .4byte 0x02018000
-_080A16AC: .4byte sub_80A1500
-_080A16B0: .4byte gTasks
-_080A16B4:
- movs r0, 0
-_080A16B6:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1654
-
- thumb_func_start sub_80A16CC
-sub_80A16CC: @ 80A16CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080A1724 @ =0x06006ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A172C
- movs r5, 0
- ldr r7, _080A1728 @ =gUnknown_08E94510
- movs r0, 0x80
- lsls r0, 5
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A16F4:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A16F4
- b _080A1768
- .align 2, 0
-_080A1724: .4byte 0x06006ad4
-_080A1728: .4byte gUnknown_08E94510
-_080A172C:
- movs r5, 0
- ldr r6, _080A17B0 @ =gUnknown_08E94550
- movs r7, 0x80
- lsls r7, 5
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A173C:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A173C
-_080A1768:
- ldr r0, _080A17B4 @ =0x06005ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A17BC
- movs r5, 0
- ldr r7, _080A17B8 @ =gUnknown_08E94510
- movs r0, 0xC0
- lsls r0, 6
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A1782:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A1782
- b _080A17F8
- .align 2, 0
-_080A17B0: .4byte gUnknown_08E94550
-_080A17B4: .4byte 0x06005ad4
-_080A17B8: .4byte gUnknown_08E94510
-_080A17BC:
- movs r5, 0
- ldr r6, _080A1804 @ =gUnknown_08E94550
- movs r7, 0xC0
- lsls r7, 6
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A17CC:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A17CC
-_080A17F8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1804: .4byte gUnknown_08E94550
- thumb_func_end sub_80A16CC
-
- thumb_func_start sub_80A1808
-sub_80A1808: @ 80A1808
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r1, 0x41
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1860 @ =gUnknown_02024E8C
- movs r1, 0x28
- movs r2, 0x40
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, r0, 4
- add r4, r8
- lsls r4, 2
- ldr r5, _080A1864 @ =gSprites
- adds r7, r4, r5
- adds r0, r7, 0
- bl FreeSpriteOamMatrix
- strh r6, [r7, 0x2E]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080A1868 @ =sub_80A1888
- str r0, [r4]
- adds r0, r6, 0
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _080A186C
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _080A187A
- .align 2, 0
-_080A1860: .4byte gUnknown_02024E8C
-_080A1864: .4byte gSprites
-_080A1868: .4byte sub_80A1888
-_080A186C:
- adds r2, r7, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080A187A:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1808
-
- thumb_func_start sub_80A1888
-sub_80A1888: @ 80A1888
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A18B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A18B0
- ldr r0, _080A18BC @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- ldr r0, _080A18C0 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080A18B0
- ldrh r0, [r4, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080A18B0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A18B8: .4byte gPaletteFade
-_080A18BC: .4byte SpriteCallbackDummy
-_080A18C0: .4byte 0x02018010
- thumb_func_end sub_80A1888
-
- thumb_func_start sub_80A18C4
-sub_80A18C4: @ 80A18C4
- push {lr}
- movs r1, 0
- ldr r3, _080A18E0 @ =0x0201a000
- movs r2, 0xFF
-_080A18CC:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bls _080A18CC
- pop {r0}
- bx r0
- .align 2, 0
-_080A18E0: .4byte 0x0201a000
- thumb_func_end sub_80A18C4
-
- thumb_func_start sub_80A18E4
-sub_80A18E4: @ 80A18E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A1910 @ =0x0201a000
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A1908
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1914 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080A1908:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1910: .4byte 0x0201a000
-_080A1914: .4byte gSprites
- thumb_func_end sub_80A18E4
-
- thumb_func_start sub_80A1918
-sub_80A1918: @ 80A1918
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080A1948 @ =gSprites
- ldr r2, _080A194C @ =0x0201a000
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080A1948: .4byte gSprites
-_080A194C: .4byte 0x0201a000
- thumb_func_end sub_80A1918
-
- thumb_func_start sub_80A1950
-sub_80A1950: @ 80A1950
- push {r4,r5,lr}
- movs r5, 0
-_080A1954:
- ldr r0, _080A1984 @ =0x0201a000
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A196C
- ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl CreateSprite
- strb r0, [r4]
-_080A196C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080A1954
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1984: .4byte 0x0201a000
-_080A1988: .4byte gSpriteTemplate_83C11C0
- thumb_func_end sub_80A1950
-
- thumb_func_start sub_80A198C
-sub_80A198C: @ 80A198C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080A1A24 @ =0x0201a000
- mov r8, r1
- add r8, r10
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1A28 @ =gSprites
- mov r9, r1
- add r0, r9
- adds r1, r4, 0
- bl StartSpriteAnim
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _080A1A2C @ =gUnknown_083C11D8
- adds r4, r0
- ldrb r2, [r4]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r5, 0x10
- strh r5, [r0, 0x20]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r6, 0x8
- strh r6, [r0, 0x22]
- mov r0, r10
- movs r1, 0
- bl sub_80A1918
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1A24: .4byte 0x0201a000
-_080A1A28: .4byte gSprites
-_080A1A2C: .4byte gUnknown_083C11D8
- thumb_func_end sub_80A198C
-
- thumb_func_start sub_80A1A30
-sub_80A1A30: @ 80A1A30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- mov r9, r0
- ldr r1, _080A1A98 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bls _080A1B0A
- cmp r4, 0x9
- bne _080A1A52
- movs r3, 0x1
- mov r9, r3
-_080A1A52:
- movs r5, 0
- movs r0, 0x80
- lsls r0, 6
- adds r0, r1
- mov r8, r0
- ldr r6, _080A1A9C @ =gSprites
- mov r10, r5
-_080A1A60:
- lsls r1, r5, 20
- movs r3, 0xB0
- lsls r3, 15
- adds r1, r3
- asrs r1, 16
- ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280
- movs r2, 0x28
- mov r3, r9
- bl CreateSprite
- adds r1, r4, r5
- mov r3, r8
- adds r2, r1, r3
- strb r0, [r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A1AA4
- adds r0, r4, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x4
- bl StartSpriteAnim
- b _080A1AD0
- .align 2, 0
-_080A1A98: .4byte 0x02018000
-_080A1A9C: .4byte gSprites
-_080A1AA0: .4byte gSpriteTemplate_83C1280
-_080A1AA4:
- cmp r5, 0x9
- bne _080A1AC0
- adds r0, r4, 0
- adds r0, 0x9
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- bl StartSpriteAnim
- b _080A1AD0
-_080A1AC0:
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x6
- bl StartSpriteAnim
-_080A1AD0:
- mov r0, r8
- adds r2, r7, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1B18 @ =sub_80A1BC0
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r10
- strh r1, [r0, 0x30]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _080A1A60
-_080A1B0A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1B18: .4byte sub_80A1BC0
- thumb_func_end sub_80A1A30
-
- thumb_func_start sub_80A1B1C
-sub_80A1B1C: @ 80A1B1C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_080A1B24:
- adds r0, r5, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A18E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1B24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1B1C
-
- thumb_func_start sub_80A1B40
-sub_80A1B40: @ 80A1B40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 24
- ldr r0, _080A1BB4 @ =0x0201a009
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r2, _080A1BB8 @ =gSprites
- adds r0, r2
- lsrs r7, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl StartSpriteAnim
- movs r4, 0
- adds r0, r7, 0x6
- lsls r0, 24
- mov r8, r0
-_080A1B74:
- ldr r6, _080A1BBC @ =0x0201a00a
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A1BB8 @ =gSprites
- adds r0, r5
- mov r2, r8
- lsrs r1, r2, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A1B74
- ldrb r1, [r6, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r7, 0x5
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1BB4: .4byte 0x0201a009
-_080A1BB8: .4byte gSprites
-_080A1BBC: .4byte 0x0201a00a
- thumb_func_end sub_80A1B40
-
- thumb_func_start sub_80A1BC0
-sub_80A1BC0: @ 80A1BC0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A1BF8
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x30]
- cmp r0, 0x18
- ble _080A1BEC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- b _080A1C06
-_080A1BEC:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- b _080A1C04
-_080A1BF8:
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- subs r0, 0x5
-_080A1C04:
- ands r0, r1
-_080A1C06:
- strb r0, [r3]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x9
- bne _080A1C1C
- ldr r0, _080A1C18 @ =0x02018000
- adds r0, 0x79
- b _080A1C20
- .align 2, 0
-_080A1C18: .4byte 0x02018000
-_080A1C1C:
- ldr r0, _080A1C2C @ =0x02018000
- adds r0, 0x7A
-_080A1C20:
- ldrb r0, [r0]
- lsls r0, 4
- strh r0, [r2, 0x26]
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C2C: .4byte 0x02018000
- thumb_func_end sub_80A1BC0
-
- thumb_func_start sub_80A1C30
-sub_80A1C30: @ 80A1C30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 25
- lsrs r3, r0, 24
- adds r4, r3, 0
- adds r0, r3, 0
- adds r0, 0xA
- cmp r3, r0
- bge _080A1C82
- ldr r5, _080A1C88 @ =gSprites
- movs r7, 0x5
- negs r7, r7
- ldr r6, _080A1C8C @ =0x0201a009
-_080A1C50:
- adds r2, r3, r6
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0xA
- cmp r3, r0
- blt _080A1C50
-_080A1C82:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C88: .4byte gSprites
-_080A1C8C: .4byte 0x0201a009
- thumb_func_end sub_80A1C30
-
- thumb_func_start pokemon_ailments_get_primary
-pokemon_ailments_get_primary: @ 80A1C90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- beq _080A1CA0
- movs r0, 0x1
- b _080A1CD2
-_080A1CA0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080A1CAC
- movs r0, 0x2
- b _080A1CD2
-_080A1CAC:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080A1CB8
- movs r0, 0x3
- b _080A1CD2
-_080A1CB8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A1CC4
- movs r0, 0x4
- b _080A1CD2
-_080A1CC4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080A1CD0
- movs r0, 0
- b _080A1CD2
-_080A1CD0:
- movs r0, 0x5
-_080A1CD2:
- pop {r1}
- bx r1
- thumb_func_end pokemon_ailments_get_primary
-
- thumb_func_start sub_80A1CD8
-sub_80A1CD8: @ 80A1CD8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080A1CEA
- movs r0, 0x7
- b _080A1D12
-_080A1CEA:
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A1D12
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A1D10
- movs r0, 0
- b _080A1D12
-_080A1D10:
- movs r0, 0x6
-_080A1D12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1CD8
-
- thumb_func_start sub_80A1D18
-sub_80A1D18: @ 80A1D18
- push {r4,r5,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- mov r0, sp
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A1D58
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A1D50 @ =0x0201a01d
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A1D60
- ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304
- movs r1, 0x40
- movs r2, 0x98
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- b _080A1D60
- .align 2, 0
-_080A1D50: .4byte 0x0201a01d
-_080A1D54: .4byte gSpriteTemplate_83C1304
-_080A1D58:
- movs r0, 0x1D
- bl sub_80A18E4
- b _080A1D74
-_080A1D60:
- ldr r0, _080A1D7C @ =0x0201a01d
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1D80 @ =gSprites
- adds r0, r1
- adds r1, r5, 0
- bl StartSpriteAnim
-_080A1D74:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D7C: .4byte 0x0201a01d
-_080A1D80: .4byte gSprites
- thumb_func_end sub_80A1D18
-
- thumb_func_start sub_80A1D84
-sub_80A1D84: @ 80A1D84
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080A1DC0 @ =0x00007533
- ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette
- adds r0, r1, 0
- bl sub_80F7920
- adds r4, r0, 0
- ldr r6, _080A1DC8 @ =gUnknown_020384F4
- str r4, [r6]
- cmp r4, 0
- beq _080A1DBA
- adds r0, r5, 0
- movs r1, 0x8
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, [r6]
- movs r0, 0x3C
- strh r0, [r1, 0x20]
- movs r0, 0x1A
- strh r0, [r1, 0x22]
-_080A1DBA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DC0: .4byte 0x00007533
-_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
-_080A1DC8: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1D84
-
- thumb_func_start sub_80A1DCC
-sub_80A1DCC: @ 80A1DCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A1DE4 @ =gUnknown_020384F4
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- bl sub_80A1D84
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DE4: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1DCC
-
- thumb_func_start sub_80A1DE8
-sub_80A1DE8: @ 80A1DE8
- push {r4,lr}
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x6
- movs r2, 0x88
- movs r3, 0
- bl CreateSprite
- ldr r2, _080A1E4C @ =0x02018000
- strb r0, [r2, 0xD]
- ldr r3, _080A1E50 @ =gSprites
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1E54 @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r2, 0xD]
- 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]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1E48: .4byte gSpriteTemplate_820AAB4
-_080A1E4C: .4byte 0x02018000
-_080A1E50: .4byte gSprites
-_080A1E54: .4byte SpriteCallbackDummy
- thumb_func_end sub_80A1DE8
-
- thumb_func_start sub_80A1E58
-sub_80A1E58: @ 80A1E58
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- beq _080A1E92
- ldr r3, _080A1E6C @ =gUnknown_083C15BC
- ldrb r0, [r3]
- adds r4, r2, 0x5
- b _080A1E74
- .align 2, 0
-_080A1E6C: .4byte gUnknown_083C15BC
-_080A1E70:
- adds r3, 0x4
- ldrb r0, [r3]
-_080A1E74:
- cmp r0, 0xFF
- beq _080A1E7C
- cmp r0, r1
- bne _080A1E70
-_080A1E7C:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- strb r0, [r2, 0x2]
- ldrb r0, [r3, 0x2]
- strb r0, [r2, 0x3]
- ldrb r0, [r3, 0x3]
- strb r0, [r2, 0x4]
- adds r2, r4, 0
-_080A1E92:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E58
-
- thumb_func_start sub_80A1E9C
-sub_80A1E9C: @ 80A1E9C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- mov r1, sp
- adds r1, 0x1
- mov r2, sp
- adds r2, 0x2
- mov r0, sp
- bl sub_8072CD4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80A1E58
- adds r6, r0, 0
- adds r1, r5, 0
- bl StringCopy
- adds r6, r0, 0
- cmp r4, 0xFF
- beq _080A1EEC
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x4
- strb r0, [r6, 0x1]
- mov r0, sp
- ldrb r0, [r0]
- strb r0, [r6, 0x2]
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strb r0, [r6, 0x3]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- strb r0, [r6, 0x4]
- movs r0, 0xFF
- strb r0, [r6, 0x5]
- adds r6, 0x5
-_080A1EEC:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E9C
-
- thumb_func_start sub_80A1EF8
-sub_80A1EF8: @ 80A1EF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1F44 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- ldr r3, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint_PixelCoords
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F44: .4byte gStringVar4
- thumb_func_end sub_80A1EF8
-
- thumb_func_start sub_80A1F48
-sub_80A1F48: @ 80A1F48
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _080A1F94 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- ldr r3, [sp]
- bl sub_8072BD8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F94: .4byte gStringVar4
- thumb_func_end sub_80A1F48
-
- thumb_func_start sub_80A1F98
-sub_80A1F98: @ 80A1F98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- mov r8, r1
- adds r4, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1FF4 @ =gStringVar1
- mov r9, r0
- mov r1, r10
- adds r3, r4, 0
- bl ConvertIntToDecimalStringN
- str r7, [sp]
- mov r0, r9
- mov r1, r8
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80A1EF8
- 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
-_080A1FF4: .4byte gStringVar1
- thumb_func_end sub_80A1F98
-
- thumb_func_start sub_80A1FF8
-sub_80A1FF8: @ 80A1FF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080A2038 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2038: .4byte gStringVar4
- thumb_func_end sub_80A1FF8
-
- thumb_func_start sub_80A203C
-sub_80A203C: @ 80A203C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- adds r4, 0x1
- cmp r1, 0
- bne _080A2052
- movs r1, 0x5
-_080A2052:
- mov r0, sp
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xE
- bl sub_80A1E9C
- adds r4, r0, 0
- ldr r1, _080A2074 @ =gOtherText_Comma
- bl StringCopy
- adds r4, r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2074: .4byte gOtherText_Comma
- thumb_func_end sub_80A203C
-
- thumb_func_start sub_80A2078
-sub_80A2078: @ 80A2078
- push {lr}
- ldr r3, _080A209C @ =gUnknown_03005CF0
- ldr r2, _080A20A0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _080A20A4 @ =sub_80A20A8
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080A209C: .4byte gUnknown_03005CF0
-_080A20A0: .4byte gTasks
-_080A20A4: .4byte sub_80A20A8
- thumb_func_end sub_80A2078
-
- thumb_func_start sub_80A20A8
-sub_80A20A8: @ 80A20A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _080A20C6
- ldr r1, _080A20CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A20D0 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_080A20C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A20CC: .4byte gTasks
-_080A20D0: .4byte gUnknown_03005CF0
- thumb_func_end sub_80A20A8
-
- thumb_func_start exec_movement
-exec_movement: @ 80A20D4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080A20F6
- movs r0, 0x1
- b _080A211E
-_080A20F6:
- ldr r0, _080A2128 @ =sub_80A244C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080A2108
- movs r0, 0x32
- bl sub_80A2198
-_080A2108:
- bl sub_80A21E0
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- ldrb r1, [r1]
- adds r2, r4, 0
- bl sub_80A21F4
- lsls r0, 24
- lsrs r0, 24
-_080A211E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2128: .4byte sub_80A244C
- thumb_func_end exec_movement
-
- thumb_func_start sub_80A212C
-sub_80A212C: @ 80A212C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080A216E
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _080A216E
- adds r0, r4, 0
- bl sub_80A2370
- lsls r0, 24
- lsrs r0, 24
- b _080A2170
-_080A216E:
- movs r0, 0x1
-_080A2170:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A212C
-
- thumb_func_start sub_80A2178
-sub_80A2178: @ 80A2178
- push {r4,lr}
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080A2192
- adds r0, r4, 0
- bl sub_80A2408
- adds r0, r4, 0
- bl DestroyTask
-_080A2192:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2178
-
- thumb_func_start sub_80A2198
-sub_80A2198: @ 80A2198
- push {r4,r5,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080A21D4 @ =sub_80A244C
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r5, _080A21D8 @ =gTasks + 0x8
- ldr r0, _080A21DC @ =0x0000ffff
- adds r4, r0, 0
-_080A21B8:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080A21B8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A21D4: .4byte sub_80A244C
-_080A21D8: .4byte gTasks + 0x8
-_080A21DC: .4byte 0x0000ffff
- thumb_func_end sub_80A2198
-
- thumb_func_start sub_80A21E0
-sub_80A21E0: @ 80A21E0
- push {lr}
- ldr r0, _080A21F0 @ =sub_80A244C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A21F0: .4byte sub_80A244C
- thumb_func_end sub_80A21E0
-
- thumb_func_start sub_80A21F4
-sub_80A21F4: @ 80A21F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2230
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2370
- lsls r0, 24
- cmp r0, 0
- beq _080A2250
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- b _080A2246
-_080A2230:
- adds r0, r7, 0
- movs r1, 0xFF
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2250
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
-_080A2246:
- mov r3, r9
- bl sub_80A23C8
- movs r0, 0
- b _080A2252
-_080A2250:
- movs r0, 0x1
-_080A2252:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A21F4
-
- thumb_func_start sub_80A2260
-sub_80A2260: @ 80A2260
- 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, _080A2284 @ =gTasks + 0x8
- adds r1, r0
- adds r1, 0x2
- movs r2, 0
-_080A2278:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080A2288
- adds r0, r2, 0
- b _080A2296
- .align 2, 0
-_080A2284: .4byte gTasks + 0x8
-_080A2288:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r2, 0xF
- bls _080A2278
- movs r0, 0x10
-_080A2296:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2260
-
- thumb_func_start sub_80A229C
-sub_80A229C: @ 80A229C
- 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, _080A22CC @ =gTasks + 0x8
- adds r1, r0
- adds r1, 0x2
- str r1, [r2]
- movs r0, 0
- cmp r0, r3
- bcs _080A22C8
-_080A22BA:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, 0x1
- cmp r0, r3
- bcc _080A22BA
- str r1, [r2]
-_080A22C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080A22CC: .4byte gTasks + 0x8
- thumb_func_end sub_80A229C
-
- thumb_func_start sub_80A22D0
-sub_80A22D0: @ 80A22D0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22D0
-
- thumb_func_start sub_80A22F4
-sub_80A22F4: @ 80A22F4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- ldrb r0, [r0]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22F4
-
- thumb_func_start sub_80A2318
-sub_80A2318: @ 80A2318
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r2, _080A2340 @ =gBitTable
- lsrs r1, 22
- adds r1, r2
- ldr r2, [r1]
- mvns r2, r2
- lsls r2, 16
- lsrs r2, 16
- ldr r3, _080A2344 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0x8]
- ands r2, r0
- strh r2, [r1, 0x8]
- bx lr
- .align 2, 0
-_080A2340: .4byte gBitTable
-_080A2344: .4byte gTasks
- thumb_func_end sub_80A2318
-
- thumb_func_start sub_80A2348
-sub_80A2348: @ 80A2348
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2368 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A236C @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- orrs r0, r1
- strh r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_080A2368: .4byte gTasks
-_080A236C: .4byte gBitTable
- thumb_func_end sub_80A2348
-
- thumb_func_start sub_80A2370
-sub_80A2370: @ 80A2370
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2398 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A239C @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _080A23A0
- movs r0, 0
- b _080A23A2
- .align 2, 0
-_080A2398: .4byte gTasks
-_080A239C: .4byte gBitTable
-_080A23A0:
- movs r0, 0x1
-_080A23A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2370
-
- thumb_func_start npc_obj_offscreen_culling_and_flag_update
-npc_obj_offscreen_culling_and_flag_update: @ 80A23A8
- lsls r0, 24
- ldr r2, _080A23B4 @ =gUnknown_020384F8
- lsrs r0, 22
- adds r0, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_080A23B4: .4byte gUnknown_020384F8
- thumb_func_end npc_obj_offscreen_culling_and_flag_update
-
- thumb_func_start sub_80A23B8
-sub_80A23B8: @ 80A23B8
- lsls r0, 24
- ldr r1, _080A23C4 @ =gUnknown_020384F8
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080A23C4: .4byte gUnknown_020384F8
- thumb_func_end sub_80A23B8
-
- thumb_func_start sub_80A23C8
-sub_80A23C8: @ 80A23C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- 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
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2318
- adds r0, r4, 0
- mov r1, r8
- bl npc_obj_offscreen_culling_and_flag_update
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80A22D0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A23C8
-
- thumb_func_start sub_80A2408
-sub_80A2408: @ 80A2408
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A2444 @ =gTasks + 0x8
- adds r1, r0
- adds r4, r1, 0x2
- movs r5, 0
-_080A241C:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A2432
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A2448 @ =gMapObjects
- adds r0, r1
- bl npc_sync_anim_pause_bits
-_080A2432:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x1
- cmp r5, 0xF
- bls _080A241C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2444: .4byte gTasks + 0x8
-_080A2448: .4byte gMapObjects
- thumb_func_end sub_80A2408
-
- thumb_func_start sub_80A244C
-sub_80A244C: @ 80A244C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- mov r6, sp
-_080A2458:
- adds r0, r7, 0
- adds r1, r5, 0
- mov r2, sp
- bl sub_80A22F4
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080A247C
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_80A23B8
- adds r3, r0, 0
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80A2490
-_080A247C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080A2458
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A244C
-
- thumb_func_start sub_80A2490
-sub_80A2490: @ 80A2490
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r3, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r1, _080A24E0 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080A24C8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080A24FA
-_080A24C8:
- ldrb r1, [r5]
- cmp r1, 0xFE
- bne _080A24E4
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80A2348
- adds r0, r4, 0
- bl sub_80643A4
- b _080A24FA
- .align 2, 0
-_080A24E0: .4byte gMapObjects
-_080A24E4:
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- lsls r0, 24
- cmp r0, 0
- bne _080A24FA
- adds r5, 0x1
- mov r0, r8
- adds r1, r5, 0
- bl npc_obj_offscreen_culling_and_flag_update
-_080A24FA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2490
-
- thumb_func_start SetUpFieldMove_Cut
-SetUpFieldMove_Cut: @ 80A2504
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x52
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2534
- ldr r1, _080A2524 @ =gUnknown_0300485C
- ldr r0, _080A2528 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A252C @ =gUnknown_03005CE4
- ldr r0, _080A2530 @ =sub_80A2634
- b _080A25A8
- .align 2, 0
-_080A2524: .4byte gUnknown_0300485C
-_080A2528: .4byte sub_808AB90
-_080A252C: .4byte gUnknown_03005CE4
-_080A2530: .4byte sub_80A2634
-_080A2534:
- ldr r4, _080A25B0 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- movs r7, 0
- mov r8, r4
-_080A2542:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A2552:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A25C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8056E14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A259E
- adds r0, r4, 0
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A25C8
-_080A259E:
- ldr r1, _080A25B8 @ =gUnknown_0300485C
- ldr r0, _080A25BC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A25C0 @ =gUnknown_03005CE4
- ldr r0, _080A25C4 @ =sub_80A25E8
-_080A25A8:
- str r0, [r1]
- movs r0, 0x1
- b _080A25DE
- .align 2, 0
-_080A25B0: .4byte gUnknown_0203923C
-_080A25B4: .4byte 0x0000ffff
-_080A25B8: .4byte gUnknown_0300485C
-_080A25BC: .4byte sub_808AB90
-_080A25C0: .4byte gUnknown_03005CE4
-_080A25C4: .4byte sub_80A25E8
-_080A25C8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A2552
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A2542
- movs r0, 0
-_080A25DE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Cut
-
- thumb_func_start sub_80A25E8
-sub_80A25E8: @ 80A25E8
- push {lr}
- movs r0, 0x1
- bl FieldEffectStart
- ldr r0, _080A25FC @ =gUnknown_0202FF84
- ldr r1, _080A2600 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080A25FC: .4byte gUnknown_0202FF84
-_080A2600: .4byte gUnknown_03005CE0
- thumb_func_end sub_80A25E8
-
- thumb_func_start FldEff_UseCutOnGrass
-FldEff_UseCutOnGrass: @ 80A2604
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A262C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2630 @ =sub_80A2684
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A262C: .4byte gTasks
-_080A2630: .4byte sub_80A2684
- thumb_func_end FldEff_UseCutOnGrass
-
- thumb_func_start sub_80A2634
-sub_80A2634: @ 80A2634
- push {lr}
- ldr r1, _080A2648 @ =gUnknown_0202FF84
- ldr r0, _080A264C @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080A2650 @ =UseCutScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080A2648: .4byte gUnknown_0202FF84
-_080A264C: .4byte gUnknown_03005CE0
-_080A2650: .4byte UseCutScript
- thumb_func_end sub_80A2634
-
- thumb_func_start FldEff_UseCutOnTree
-FldEff_UseCutOnTree: @ 80A2654
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A267C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2680 @ =sub_80A2B00
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A267C: .4byte gTasks
-_080A2680: .4byte sub_80A2B00
- thumb_func_end FldEff_UseCutOnTree
-
- thumb_func_start sub_80A2684
-sub_80A2684: @ 80A2684
- push {lr}
- movs r0, 0x1
- bl FieldEffectActiveListRemove
- movs r0, 0x3A
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80A2684
-
- thumb_func_start FldEff_CutGrass
-FldEff_CutGrass: @ 80A2698
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- movs r0, 0x80
- bl PlaySE
- ldr r4, _080A2790 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- mov r8, r4
-_080A26B2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A26C2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80578F8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A27A8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805BCC0
-_080A270E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A26C2
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A26B2
- ldr r1, _080A2790 @ =gUnknown_0203923C
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r1, 0x2]
- subs r1, 0x2
- lsls r1, 16
- asrs r1, 16
- bl sub_80A28F4
- bl DrawWholeMapView
- movs r7, 0
- ldr r4, _080A2798 @ =gSprites
-_080A2740:
- ldr r0, _080A279C @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r2, 0x80
- lsls r2, 12
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r0]
- adds r2, 0x14
- ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass
- movs r3, 0
- bl CreateSprite
- ldr r1, _080A27A4 @ =0x0201fff0
- adds r1, r7, r1
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- lsls r1, r7, 5
- strh r1, [r0, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080A2740
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2790: .4byte gUnknown_0203923C
-_080A2794: .4byte 0x0000ffff
-_080A2798: .4byte gSprites
-_080A279C: .4byte gPlayerAvatar
-_080A27A0: .4byte gSpriteTemplate_CutGrass
-_080A27A4: .4byte 0x0201fff0
- thumb_func_end FldEff_CutGrass
-
- thumb_func_start sub_80A27A8
-sub_80A27A8: @ 80A27A8
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r6, r0, 16
- asrs r4, r0, 16
- lsrs r7, r1, 16
- asrs r5, r1, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080A27E0 @ =0x00000207
- cmp r1, r0
- bgt _080A27F4
- subs r0, 0x1
- cmp r1, r0
- bge _080A286C
- cmp r1, 0x25
- beq _080A288E
- cmp r1, 0x25
- bgt _080A27E4
- cmp r1, 0xD
- beq _080A2834
- cmp r1, 0x15
- beq _080A2834
- b _080A2898
- .align 2, 0
-_080A27E0: .4byte 0x00000207
-_080A27E4:
- movs r0, 0xE3
- lsls r0, 1
- cmp r1, r0
- beq _080A2844
- adds r0, 0x1
- cmp r1, r0
- beq _080A284A
- b _080A2898
-_080A27F4:
- ldr r0, _080A280C @ =0x00000212
- cmp r1, r0
- beq _080A287C
- cmp r1, r0
- bgt _080A2810
- subs r0, 0xA
- cmp r1, r0
- beq _080A2834
- adds r0, 0x2
- cmp r1, r0
- beq _080A287C
- b _080A2898
- .align 2, 0
-_080A280C: .4byte 0x00000212
-_080A2810:
- ldr r0, _080A2824 @ =0x00000282
- cmp r1, r0
- beq _080A285C
- cmp r1, r0
- bgt _080A2828
- subs r0, 0x1
- cmp r1, r0
- beq _080A2854
- b _080A2898
- .align 2, 0
-_080A2824: .4byte 0x00000282
-_080A2828:
- ldr r0, _080A2830 @ =0x00000283
- cmp r1, r0
- beq _080A2864
- b _080A2898
- .align 2, 0
-_080A2830: .4byte 0x00000283
-_080A2834:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A2844:
- movs r2, 0xE7
- lsls r2, 1
- b _080A286E
-_080A284A:
- ldr r2, _080A2850 @ =0x000001cf
- b _080A286E
- .align 2, 0
-_080A2850: .4byte 0x000001cf
-_080A2854:
- ldr r2, _080A2858 @ =0x00000279
- b _080A286E
- .align 2, 0
-_080A2858: .4byte 0x00000279
-_080A285C:
- ldr r2, _080A2860 @ =0x0000027a
- b _080A286E
- .align 2, 0
-_080A2860: .4byte 0x0000027a
-_080A2864:
- ldr r2, _080A2868 @ =0x0000027b
- b _080A286E
- .align 2, 0
-_080A2868: .4byte 0x0000027b
-_080A286C:
- ldr r2, _080A2878 @ =0x00000271
-_080A286E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _080A2898
- .align 2, 0
-_080A2878: .4byte 0x00000271
-_080A287C:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x86
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A288E:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xE
- bl MapGridSetMetatileIdAt
-_080A2898:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A27A8
-
- thumb_func_start sub_80A28A0
-sub_80A28A0: @ 80A28A0
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- cmp r1, 0x1
- bne _080A28BC
- movs r0, 0x1
- b _080A28EE
-_080A28BC:
- ldr r0, _080A28C8 @ =0x00000279
- cmp r1, r0
- bne _080A28CC
- movs r0, 0x2
- b _080A28EE
- .align 2, 0
-_080A28C8: .4byte 0x00000279
-_080A28CC:
- ldr r0, _080A28D8 @ =0x0000027a
- cmp r1, r0
- bne _080A28DC
- movs r0, 0x3
- b _080A28EE
- .align 2, 0
-_080A28D8: .4byte 0x0000027a
-_080A28DC:
- ldr r0, _080A28E8 @ =0x0000027b
- cmp r2, r0
- beq _080A28EC
- movs r0, 0
- b _080A28EE
- .align 2, 0
-_080A28E8: .4byte 0x0000027b
-_080A28EC:
- movs r0, 0x4
-_080A28EE:
- pop {r1}
- bx r1
- thumb_func_end sub_80A28A0
-
- thumb_func_start sub_80A28F4
-sub_80A28F4: @ 80A28F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r1, r2
- lsrs r0, 16
- mov r9, r0
- movs r4, 0
- asrs r7, r1, 16
-_080A2914:
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- lsls r4, 16
- asrs r1, r4, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r5, r0, 16
- adds r0, r5, 0
- adds r1, r7, 0
- bl MapGridGetMetatileIdAt
- mov r8, r4
- cmp r0, 0x15
- bne _080A2996
- adds r4, r7, 0x1
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80A28A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080A296A
- cmp r0, 0x2
- bgt _080A2952
- cmp r0, 0x1
- beq _080A295C
- b _080A2996
-_080A2952:
- cmp r0, 0x3
- beq _080A297C
- cmp r0, 0x4
- beq _080A298C
- b _080A2996
-_080A295C:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x82
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2996
-_080A296A:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2978 @ =0x00000281
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2978: .4byte 0x00000281
-_080A297C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2988 @ =0x00000282
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2988: .4byte 0x00000282
-_080A298C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A30 @ =0x00000283
- bl MapGridSetMetatileIdAt
-_080A2996:
- lsls r0, r6, 16
- asrs r5, r0, 16
- mov r2, r9
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- cmp r0, 0x1
- bne _080A2A10
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x82
- lsls r1, 2
- cmp r0, r1
- bne _080A29C8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
-_080A29C8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A34 @ =0x00000281
- cmp r0, r1
- bne _080A29E0
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A38 @ =0x00000279
- bl MapGridSetMetatileIdAt
-_080A29E0:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A3C @ =0x00000282
- cmp r0, r1
- bne _080A29F8
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A40 @ =0x0000027a
- bl MapGridSetMetatileIdAt
-_080A29F8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A30 @ =0x00000283
- cmp r0, r1
- bne _080A2A10
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A44 @ =0x0000027b
- bl MapGridSetMetatileIdAt
-_080A2A10:
- movs r0, 0x80
- lsls r0, 9
- add r0, r8
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _080A2A20
- b _080A2914
-_080A2A20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A30: .4byte 0x00000283
-_080A2A34: .4byte 0x00000281
-_080A2A38: .4byte 0x00000279
-_080A2A3C: .4byte 0x00000282
-_080A2A40: .4byte 0x0000027a
-_080A2A44: .4byte 0x0000027b
- thumb_func_end sub_80A28F4
-
- thumb_func_start sub_80A2A48
-sub_80A2A48: @ 80A2A48
- movs r2, 0
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x34]
- ldr r1, _080A2A58 @ =objc_8097BBC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A2A58: .4byte objc_8097BBC
- thumb_func_end sub_80A2A48
-
- thumb_func_start objc_8097BBC
-objc_8097BBC: @ 80A2A5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x2E]
- adds r1, 0x1
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 18
- adds r1, r0
- strh r1, [r4, 0x2E]
- adds r2, 0x1
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1C
- beq _080A2AA8
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080A2AAC
-_080A2AA8:
- ldr r0, _080A2AB4 @ =sub_80A2AB8
- str r0, [r4, 0x1C]
-_080A2AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AB4: .4byte sub_80A2AB8
- thumb_func_end objc_8097BBC
-
- thumb_func_start sub_80A2AB8
-sub_80A2AB8: @ 80A2AB8
- push {r4-r6,lr}
- movs r4, 0x1
-_080A2ABC:
- ldr r6, _080A2AF8 @ =0x0201fff0
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A2AFC @ =gSprites
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A2ABC
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x3A
- bl FieldEffectStop
- bl sub_8064E2C
- bl ScriptContext2_Disable
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AF8: .4byte 0x0201fff0
-_080A2AFC: .4byte gSprites
- thumb_func_end sub_80A2AB8
-
- thumb_func_start sub_80A2B00
-sub_80A2B00: @ 80A2B00
- push {lr}
- movs r0, 0x80
- bl PlaySE
- movs r0, 0x2
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B00
-
- thumb_func_start sub_80A2B18
-sub_80A2B18: @ 80A2B18
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C
-_080A2B1E:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl sub_80A2B40
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080A2B1E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
- thumb_func_end sub_80A2B18
-
- thumb_func_start sub_80A2B40
-sub_80A2B40: @ 80A2B40
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, _080A2B90 @ =0x0000ffff
- adds r4, r0, 0
- adds r1, r3, 0
- movs r2, 0x8
-_080A2B4C:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A2B4C
- movs r2, 0
- adds r6, r3, 0
- adds r6, 0x1A
- adds r4, r3, 0
- adds r4, 0x12
- movs r5, 0xFF
-_080A2B66:
- adds r1, r4, r2
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080A2B66
- adds r1, r6, 0
- movs r2, 0
- adds r0, r1, 0x3
-_080A2B7A:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080A2B7A
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B90: .4byte 0x0000ffff
- thumb_func_end sub_80A2B40
-
- thumb_func_start sub_80A2B94
-sub_80A2B94: @ 80A2B94
- 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 _080A2BBC
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- cmp r0, 0xFF
- beq _080A2BBC
- movs r0, 0x1
- b _080A2BBE
-_080A2BBC:
- movs r0, 0
-_080A2BBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2B94
-
- thumb_func_start sub_80A2BC4
-sub_80A2BC4: @ 80A2BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- 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 r3, sp, 0x4
- strb r2, [r3]
- mov r10, r3
- ldr r4, _080A2D00 @ =gSaveBlock1
- mov r9, r4
- mov r8, r3
- adds r2, r3, 0
-_080A2BF2:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r5, _080A2D04 @ =0x00002b6c
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A2C08
- b _080A2D24
-_080A2C08:
- movs r3, 0
- ldr r0, _080A2D08 @ =gSaveBlock2
- mov r12, r0
- mov r4, r10
- ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C
- ldr r1, _080A2D10 @ =0x0000ffff
- adds r5, r1, 0
-_080A2C16:
- lsls r2, r3, 1
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- orrs r0, r5
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _080A2C16
- movs r3, 0
- mov r2, r10
- ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E
-_080A2C3A:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r4
- mov r5, r12
- adds r1, r3, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bls _080A2C3A
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r3
- movs r1, 0
- bl sub_814A518
- movs r3, 0
- mov r2, r10
- ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66
- ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA
-_080A2C88:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r5
- adds r1, r3, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A2C88
- adds r0, r7, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_80A2D44
- mov r4, r8
- ldrb r2, [r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- add r1, r9
- ldr r5, _080A2D20 @ =0x00002b6a
- adds r1, r5
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r1, _080A2D04 @ =0x00002b6c
- adds r0, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r0]
- adds r0, r7, 0
- movs r1, 0x40
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2D32
- .align 2, 0
-_080A2D00: .4byte gSaveBlock1
-_080A2D04: .4byte 0x00002b6c
-_080A2D08: .4byte gSaveBlock2
-_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
-_080A2D10: .4byte 0x0000ffff
-_080A2D14: .4byte gSaveBlock1 + 0x2B5E
-_080A2D18: .4byte gSaveBlock1 + 0x2B66
-_080A2D1C: .4byte gSaveBlock2 + 0xA
-_080A2D20: .4byte 0x00002b6a
-_080A2D24:
- adds r0, r1, 0x1
- strb r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0x5
- bhi _080A2D30
- b _080A2BF2
-_080A2D30:
- movs r0, 0xFF
-_080A2D32:
- 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_80A2BC4
-
- thumb_func_start sub_80A2D44
-sub_80A2D44: @ 80A2D44
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _080A2D5C
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- ldr r1, _080A2D60 @ =0x75300000
- adds r0, r1
- lsrs r0, 16
-_080A2D5C:
- pop {r1}
- bx r1
- .align 2, 0
-_080A2D60: .4byte 0x75300000
- thumb_func_end sub_80A2D44
-
- thumb_func_start sub_80A2D64
-sub_80A2D64: @ 80A2D64
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A2D7C @ =0xffff8ad0
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _080A2D80
- movs r0, 0xC9
- strh r2, [r1]
- b _080A2D82
- .align 2, 0
-_080A2D7C: .4byte 0xffff8ad0
-_080A2D80:
- adds r0, r3, 0
-_080A2D82:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D64
-
- thumb_func_start sub_80A2D88
-sub_80A2D88: @ 80A2D88
- 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_80A2BC4
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _080A2DE8
- ldr r0, _080A2DE0 @ =gSaveBlock1
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _080A2DE4 @ =0x00002b4c
- 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 _080A2DEA
- .align 2, 0
-_080A2DE0: .4byte gSaveBlock1
-_080A2DE4: .4byte 0x00002b4c
-_080A2DE8:
- movs r0, 0xFF
-_080A2DEA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D88
-
- thumb_func_start unref_sub_80A2DF4
-unref_sub_80A2DF4: @ 80A2DF4
- movs r0, 0
- bx lr
- thumb_func_end unref_sub_80A2DF4
-
- thumb_func_start sub_80A2DF8
-sub_80A2DF8: @ 80A2DF8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _080A2E46
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r3, _080A2E50 @ =gSaveBlock1
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080A2E54 @ =0x00002b6c
- adds r0, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r3, [r0]
- strb r3, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_080A2E46:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E50: .4byte gSaveBlock1
-_080A2E54: .4byte 0x00002b6c
- thumb_func_end sub_80A2DF8
-
- thumb_func_start unref_sub_80A2E58
-unref_sub_80A2E58: @ 80A2E58
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A2E70 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080A2E74 @ =0x00002b6c
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A2E70: .4byte gSaveBlock1
-_080A2E74: .4byte 0x00002b6c
- thumb_func_end unref_sub_80A2E58
-
- thumb_func_start sub_80A2E78
-sub_80A2E78: @ 80A2E78
- 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, _080A2F04 @ =gSaveBlock1
- mov r8, r0
- ldr r2, _080A2F08 @ =0x00002b4c
- add r2, r8
-_080A2E9E:
- lsls r0, r7, 3
- adds r0, r7
- lsls r4, r0, 2
- mov r1, r8
- adds r0, r4, r1
- ldr r3, _080A2F0C @ =0x00002b6c
- adds r0, r3
- ldrh r6, [r0]
- cmp r6, 0
- bne _080A2F10
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x40
- str r2, [sp, 0x8]
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, [sp, 0x8]
- adds r1, r2
- 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
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldr r0, _080A2F0C @ =0x00002b6c
- adds r1, r0
- strh r6, [r1]
- 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 _080A2F1C
- .align 2, 0
-_080A2F04: .4byte gSaveBlock1
-_080A2F08: .4byte 0x00002b4c
-_080A2F0C: .4byte 0x00002b6c
-_080A2F10:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080A2E9E
- movs r0, 0xFF
-_080A2F1C:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2E78
-
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80A2F2C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _080A2F3E
- cmp r0, 0x79
- blt _080A2F3E
- movs r0, 0x1
- b _080A2F40
-_080A2F3E:
- movs r0, 0
-_080A2F40:
- pop {r1}
- bx r1
- thumb_func_end itemid_is_mail
-
- thumb_func_start unref_sub_80A2F44
-unref_sub_80A2F44: @ 80A2F44
- push {lr}
- bl sub_8071C20
- bl AddMapNamePopUpWindowTask
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80A2F44
-
- thumb_func_start AddMapNamePopUpWindowTask
-AddMapNamePopUpWindowTask: @ 80A2F54
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 7
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A2FE4
- ldr r4, _080A2FAC @ =sub_80A2FF4
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A2FBC
- adds r0, r4, 0
- movs r1, 0x5A
- bl CreateTask
- ldr r4, _080A2FB0 @ =gUnknown_02038538
- strb r0, [r4]
- ldr r1, _080A2FB4 @ =REG_BG0VOFS
- movs r0, 0x20
- strh r0, [r1]
- bl sub_80A30E0
- ldr r2, _080A2FB8 @ =gTasks
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r5, [r0, 0x8]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- strh r1, [r0, 0xC]
- b _080A2FE4
- .align 2, 0
-_080A2FAC: .4byte sub_80A2FF4
-_080A2FB0: .4byte gUnknown_02038538
-_080A2FB4: .4byte REG_BG0VOFS
-_080A2FB8: .4byte gTasks
-_080A2FBC:
- ldr r3, _080A2FEC @ =gTasks
- ldr r2, _080A2FF0 @ =gUnknown_02038538
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, 0x2
- beq _080A2FD6
- movs r0, 0x2
- strh r0, [r1, 0x8]
-_080A2FD6:
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080A2FE4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FEC: .4byte gTasks
-_080A2FF0: .4byte gUnknown_02038538
- thumb_func_end AddMapNamePopUpWindowTask
-
- thumb_func_start sub_80A2FF4
-sub_80A2FF4: @ 80A2FF4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r3, _080A3018 @ =gTasks
- adds r4, r1, r3
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A304C
- cmp r2, 0x1
- bgt _080A301C
- cmp r2, 0
- beq _080A3026
- b _080A3092
- .align 2, 0
-_080A3018: .4byte gTasks
-_080A301C:
- cmp r2, 0x2
- beq _080A3064
- cmp r2, 0x4
- beq _080A308C
- b _080A3092
-_080A3026:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080A3092
- movs r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080A3048 @ =gUnknown_02038538
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0xA]
- b _080A3092
- .align 2, 0
-_080A3048: .4byte gUnknown_02038538
-_080A304C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080A3092
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080A3092
-_080A3064:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- movs r5, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080A3092
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A3086
- bl sub_80A30E0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xE]
- b _080A3092
-_080A3086:
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080A3098
-_080A308C:
- bl HideMapNamePopUpWindow
- b _080A3098
-_080A3092:
- ldr r1, _080A30A0 @ =REG_BG0VOFS
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
-_080A3098:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A30A0: .4byte REG_BG0VOFS
- thumb_func_end sub_80A2FF4
-
- thumb_func_start HideMapNamePopUpWindow
-HideMapNamePopUpWindow: @ 80A30A4
- push {lr}
- ldr r0, _080A30D4 @ =sub_80A2FF4
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080A30D0
- bl MenuLoadTextWindowGraphics
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- ldr r1, _080A30D8 @ =REG_BG0VOFS
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080A30DC @ =gUnknown_02038538
- ldrb r0, [r0]
- bl DestroyTask
-_080A30D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A30D4: .4byte sub_80A2FF4
-_080A30D8: .4byte REG_BG0VOFS
-_080A30DC: .4byte gUnknown_02038538
- thumb_func_end HideMapNamePopUpWindow
-
- thumb_func_start sub_80A30E0
-sub_80A30E0: @ 80A30E0
- push {lr}
- sub sp, 0x14
- movs r0, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
- ldr r0, _080A3114 @ =gMapHeader
- ldrb r1, [r0, 0x14]
- mov r0, sp
- movs r2, 0
- bl sub_80FBFB4
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x60
- bl sub_8072BD8
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_080A3114: .4byte gMapHeader
- thumb_func_end sub_80A30E0
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_810CBB4.s b/asm/rom_810CBB4.s
new file mode 100644
index 000000000..78fb7e6ac
--- /dev/null
+++ b/asm/rom_810CBB4.s
@@ -0,0 +1,6732 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Flash
+SetUpFieldMove_Flash: @ 810CBB4
+ push {lr}
+ ldr r0, _0810CBDC @ =gMapHeader
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _0810CBF4
+ ldr r0, _0810CBE0 @ =0x00000828
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CBF4
+ ldr r1, _0810CBE4 @ =gUnknown_0300485C
+ ldr r0, _0810CBE8 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0810CBEC @ =gUnknown_03005CE4
+ ldr r0, _0810CBF0 @ =sub_810CBFC
+ str r0, [r1]
+ movs r0, 0x1
+ b _0810CBF6
+ .align 2, 0
+_0810CBDC: .4byte gMapHeader
+_0810CBE0: .4byte 0x00000828
+_0810CBE4: .4byte gUnknown_0300485C
+_0810CBE8: .4byte sub_808AB90
+_0810CBEC: .4byte gUnknown_03005CE4
+_0810CBF0: .4byte sub_810CBFC
+_0810CBF4:
+ movs r0, 0
+_0810CBF6:
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Flash
+
+ thumb_func_start sub_810CBFC
+sub_810CBFC: @ 810CBFC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CC24 @ =gUnknown_0202FF84
+ ldr r1, _0810CC28 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r2]
+ ldr r2, _0810CC2C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0810CC30 @ =sub_810CC34
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC24: .4byte gUnknown_0202FF84
+_0810CC28: .4byte gUnknown_03005CE0
+_0810CC2C: .4byte gTasks
+_0810CC30: .4byte sub_810CC34
+ thumb_func_end sub_810CBFC
+
+ thumb_func_start sub_810CC34
+sub_810CC34: @ 810CC34
+ push {lr}
+ movs r0, 0xCF
+ bl PlaySE
+ ldr r0, _0810CC4C @ =0x00000828
+ bl FlagSet
+ ldr r0, _0810CC50 @ =gUnknown_081B694A
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC4C: .4byte 0x00000828
+_0810CC50: .4byte gUnknown_081B694A
+ thumb_func_end sub_810CC34
+
+ thumb_func_start sub_810CC54
+sub_810CC54: @ 810CC54
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC54
+
+ thumb_func_start sub_810CC6C
+sub_810CC6C: @ 810CC6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC6C
+
+ thumb_func_start sub_810CC80
+sub_810CC80: @ 810CC80
+ push {r4,lr}
+ sub sp, 0x8
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, _0810CD34 @ =0x040000d4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD38 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD3C @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r1]
+ ldr r0, _0810CD40 @ =0x05000002
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD44 @ =0x810001ff
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r3, _0810CD48 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0810CD4C @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, _0810CD50 @ =sub_810CC6C
+ bl SetVBlankCallback
+ ldr r0, _0810CD54 @ =sub_810CC54
+ bl SetMainCallback2
+ bl sub_810CD5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CD2A
+ ldr r0, _0810CD58 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CD2A:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CD34: .4byte 0x040000d4
+_0810CD38: .4byte 0x8100c000
+_0810CD3C: .4byte 0x85000100
+_0810CD40: .4byte 0x05000002
+_0810CD44: .4byte 0x810001ff
+_0810CD48: .4byte 0x04000208
+_0810CD4C: .4byte 0x04000200
+_0810CD50: .4byte sub_810CC6C
+_0810CD54: .4byte sub_810CC54
+_0810CD58: .4byte gMain
+ thumb_func_end sub_810CC80
+
+ thumb_func_start sub_810CD5C
+sub_810CD5C: @ 810CD5C
+ push {r4-r7,lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r4, _0810CD9C @ =gUnknown_083F7FC4
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810CDB0
+ adds r7, r4, 0
+ adds r0, r4, 0x4
+ mov r12, r0
+_0810CD7E:
+ lsls r2, r3, 3
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _0810CDA0
+ ldrb r0, [r1, 0x1]
+ cmp r0, r5
+ bne _0810CDA0
+ mov r1, r12
+ adds r0, r2, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ movs r0, 0x1
+ b _0810CDB2
+ .align 2, 0
+_0810CD9C: .4byte gUnknown_083F7FC4
+_0810CDA0:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CD7E
+_0810CDB0:
+ movs r0, 0
+_0810CDB2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CD5C
+
+ thumb_func_start sub_810CDB8
+sub_810CDB8: @ 810CDB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CDF8
+ adds r6, r1, 0
+_0810CDCE:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CDE8
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CDE8
+ ldrb r0, [r2, 0x2]
+ b _0810CDFA
+ .align 2, 0
+_0810CDE4: .4byte gUnknown_083F7FC4
+_0810CDE8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CDCE
+_0810CDF8:
+ movs r0, 0
+_0810CDFA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CDB8
+
+ thumb_func_start fade_type_for_given_maplight_pair
+fade_type_for_given_maplight_pair: @ 810CE00
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CE2C @ =gUnknown_083F7FC4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CE40
+ adds r6, r1, 0
+_0810CE16:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CE30
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CE30
+ ldrb r0, [r2, 0x3]
+ b _0810CE42
+ .align 2, 0
+_0810CE2C: .4byte gUnknown_083F7FC4
+_0810CE30:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CE16
+_0810CE40:
+ movs r0, 0
+_0810CE42:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end fade_type_for_given_maplight_pair
+
+ thumb_func_start sub_810CE48
+sub_810CE48: @ 810CE48
+ push {lr}
+ ldr r0, _0810CE58 @ =sub_810CE5C
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CE58: .4byte sub_810CE5C
+ thumb_func_end sub_810CE48
+
+ thumb_func_start sub_810CE5C
+sub_810CE5C: @ 810CE5C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CE70 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810CE74 @ =sub_810CE78
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810CE70: .4byte gTasks
+_0810CE74: .4byte sub_810CE78
+ thumb_func_end sub_810CE5C
+
+ thumb_func_start sub_810CE78
+sub_810CE78: @ 810CE78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _0810CEE8 @ =gCaveTransitionTiles
+ ldr r1, _0810CEEC @ =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
+ ldr r1, _0810CEF4 @ =0x0600f800
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CEFC @ =gUnknown_083F809C
+ movs r1, 0xE0
+ movs r2, 0x10
+ bl LoadPalette
+ ldr r1, _0810CF00 @ =REG_BLDCNT
+ ldr r2, _0810CF04 @ =0x00003e41
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810CF08 @ =REG_BLDALPHA
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r1, 0x48
+ ldr r2, _0810CF0C @ =0x00001f0c
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r1, _0810CF10 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810CF14 @ =sub_810CF18
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CEE8: .4byte gCaveTransitionTiles
+_0810CEEC: .4byte 0x0600c000
+_0810CEF0: .4byte gCaveTransitionTilemap
+_0810CEF4: .4byte 0x0600f800
+_0810CEF8: .4byte gCaveTransitionPalette_White
+_0810CEFC: .4byte gUnknown_083F809C
+_0810CF00: .4byte REG_BLDCNT
+_0810CF04: .4byte 0x00003e41
+_0810CF08: .4byte REG_BLDALPHA
+_0810CF0C: .4byte 0x00001f0c
+_0810CF10: .4byte gTasks
+_0810CF14: .4byte sub_810CF18
+ thumb_func_end sub_810CE78
+
+ thumb_func_start sub_810CF18
+sub_810CF18: @ 810CF18
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF44 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r2, [r3, 0xA]
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0810CF48 @ =REG_BLDALPHA
+ strh r0, [r1]
+ cmp r2, 0x10
+ bhi _0810CF4C
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810CF54
+ .align 2, 0
+_0810CF44: .4byte gTasks
+_0810CF48: .4byte REG_BLDALPHA
+_0810CF4C:
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldr r0, _0810CF58 @ =sub_810CF5C
+ str r0, [r3]
+_0810CF54:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CF58: .4byte sub_810CF5C
+ thumb_func_end sub_810CF18
+
+ thumb_func_start sub_810CF5C
+sub_810CF5C: @ 810CF5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF94 @ =REG_BLDALPHA
+ ldr r3, _0810CF98 @ =0x00001010
+ adds r1, r3, 0
+ strh r1, [r2]
+ ldr r2, _0810CF9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0x7
+ bhi _0810CFA4
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 1
+ ldr r0, _0810CFA0 @ =gUnknown_083F809C
+ adds r0, r1, r0
+ movs r2, 0x10
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810CFB6
+ .align 2, 0
+_0810CF94: .4byte REG_BLDALPHA
+_0810CF98: .4byte 0x00001010
+_0810CF9C: .4byte gTasks
+_0810CFA0: .4byte gUnknown_083F809C
+_0810CFA4:
+ ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CFC0 @ =sub_810CFC4
+ str r0, [r4]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+_0810CFB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFBC: .4byte gCaveTransitionPalette_White
+_0810CFC0: .4byte sub_810CFC4
+ thumb_func_end sub_810CF5C
+
+ thumb_func_start sub_810CFC4
+sub_810CFC4: @ 810CFC4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CFE4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0810CFE8
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _0810CFF0
+ .align 2, 0
+_0810CFE4: .4byte gTasks
+_0810CFE8:
+ ldr r0, _0810CFF4 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CFF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFF4: .4byte gMain
+ thumb_func_end sub_810CFC4
+
+ thumb_func_start sub_810CFF8
+sub_810CFF8: @ 810CFF8
+ push {lr}
+ ldr r0, _0810D008 @ =sub_810D00C
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D008: .4byte sub_810D00C
+ thumb_func_end sub_810CFF8
+
+ thumb_func_start sub_810D00C
+sub_810D00C: @ 810D00C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D020 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810D024 @ =sub_810D028
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D020: .4byte gTasks
+_0810D024: .4byte sub_810D028
+ thumb_func_end sub_810D00C
+
+ thumb_func_start sub_810D028
+sub_810D028: @ 810D028
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r4, 0
+ strh r4, [r6]
+ ldr r0, _0810D098 @ =gCaveTransitionTiles
+ ldr r1, _0810D09C @ =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
+ ldr r1, _0810D0A4 @ =0x0600f800
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A8 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _0810D0AC @ =REG_BG0CNT
+ ldr r2, _0810D0B0 @ =0x00001f0c
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _0810D0BC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810D0C0 @ =sub_810D0C4
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D098: .4byte gCaveTransitionTiles
+_0810D09C: .4byte 0x0600c000
+_0810D0A0: .4byte gCaveTransitionTilemap
+_0810D0A4: .4byte 0x0600f800
+_0810D0A8: .4byte REG_BLDCNT
+_0810D0AC: .4byte REG_BG0CNT
+_0810D0B0: .4byte 0x00001f0c
+_0810D0B4: .4byte gCaveTransitionPalette_White
+_0810D0B8: .4byte gCaveTransitionPalette_Black
+_0810D0BC: .4byte gTasks
+_0810D0C0: .4byte sub_810D0C4
+ thumb_func_end sub_810D028
+
+ thumb_func_start sub_810D0C4
+sub_810D0C4: @ 810D0C4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D0F8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r1, [r3, 0xC]
+ cmp r1, 0xF
+ bhi _0810D100
+ adds r2, r1, 0x1
+ adds r0, r2, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0xF
+ subs r0, r1
+ lsls r0, 1
+ ldr r1, _0810D0FC @ =gUnknown_083F808C
+ adds r0, r1
+ lsls r2, 17
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810D114
+ .align 2, 0
+_0810D0F8: .4byte gTasks
+_0810D0FC: .4byte gUnknown_083F808C
+_0810D100:
+ ldr r1, _0810D118 @ =REG_BLDALPHA
+ ldr r2, _0810D11C @ =0x00001010
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _0810D120 @ =0x00003e41
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810D124 @ =sub_810D128
+ str r0, [r3]
+_0810D114:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D118: .4byte REG_BLDALPHA
+_0810D11C: .4byte 0x00001010
+_0810D120: .4byte 0x00003e41
+_0810D124: .4byte sub_810D128
+ thumb_func_end sub_810D0C4
+
+ thumb_func_start sub_810D128
+sub_810D128: @ 810D128
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D158 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 16
+ movs r2, 0x80
+ lsls r2, 21
+ adds r0, r1, r2
+ lsrs r0, 16
+ ldr r2, _0810D15C @ =REG_BLDALPHA
+ strh r0, [r2]
+ cmp r1, 0
+ beq _0810D160
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810D172
+ .align 2, 0
+_0810D158: .4byte gTasks
+_0810D15C: .4byte REG_BLDALPHA
+_0810D160:
+ ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D17C @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810D172:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D178: .4byte gCaveTransitionPalette_Black
+_0810D17C: .4byte gMain
+ thumb_func_end sub_810D128
+
+ thumb_func_start sub_810D180
+sub_810D180: @ 810D180
+ push {r4-r7,lr}
+ sub sp, 0x4
+ bl HealPlayerParty
+ ldr r4, _0810D1A0 @ =0x00000804
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _0810D1A8
+ ldr r0, _0810D1A4 @ =gUnknown_02039324
+ strb r1, [r0]
+ b _0810D1B4
+ .align 2, 0
+_0810D1A0: .4byte 0x00000804
+_0810D1A4: .4byte gUnknown_02039324
+_0810D1A8:
+ ldr r1, _0810D1E8 @ =gUnknown_02039324
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl FlagSet
+_0810D1B4:
+ movs r0, 0x1
+ bl GetGameStat
+ cmp r0, 0
+ bne _0810D1D4
+ ldr r2, _0810D1EC @ =gSaveBlock2
+ ldrh r1, [r2, 0xE]
+ lsls r1, 16
+ ldrb r0, [r2, 0x10]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x11]
+ orrs r1, r0
+ movs r0, 0x1
+ bl SetGameStat
+_0810D1D4:
+ bl SetSecretBase2Field_9
+ ldr r0, _0810D1EC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810D1F0
+ movs r0, 0x1
+ bl sub_80537CC
+ b _0810D1F6
+ .align 2, 0
+_0810D1E8: .4byte gUnknown_02039324
+_0810D1EC: .4byte gSaveBlock2
+_0810D1F0:
+ movs r0, 0x2
+ bl sub_80537CC
+_0810D1F6:
+ movs r6, 0
+ movs r5, 0
+ mov r7, sp
+_0810D1FC:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810D260 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0810D23A
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _0810D23A
+ adds r0, r4, 0
+ movs r1, 0x43
+ bl GetMonData
+ cmp r0, 0
+ bne _0810D23A
+ movs r0, 0x1
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x43
+ mov r2, sp
+ bl SetMonData
+ movs r6, 0x1
+_0810D23A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0810D1FC
+ cmp r6, 0x1
+ bne _0810D250
+ movs r0, 0x2A
+ bl IncrementGameStat
+ ldr r0, _0810D264 @ =0x0000083b
+ bl FlagSet
+_0810D250:
+ ldr r0, _0810D268 @ =sub_8141F90
+ bl SetMainCallback2
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D260: .4byte gPlayerParty
+_0810D264: .4byte 0x0000083b
+_0810D268: .4byte sub_8141F90
+ thumb_func_end sub_810D180
+
+ thumb_func_start sp0C8_whiteout_maybe
+sp0C8_whiteout_maybe: @ 810D26C
+ push {lr}
+ ldr r0, _0810D27C @ =CB2_WhiteOut
+ bl SetMainCallback2
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D27C: .4byte CB2_WhiteOut
+ thumb_func_end sp0C8_whiteout_maybe
+
+ thumb_func_start sub_810D280
+sub_810D280: @ 810D280
+ push {r4,lr}
+ ldr r0, _0810D2A4 @ =0x00004024
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D2A8 @ =0x00004025
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D2A4: .4byte 0x00004024
+_0810D2A8: .4byte 0x00004025
+ thumb_func_end sub_810D280
+
+ thumb_func_start sub_810D2AC
+sub_810D2AC: @ 810D2AC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0810D2CC @ =0x00004024
+ lsrs r1, r4, 16
+ bl VarSet
+ ldr r0, _0810D2D0 @ =0x00004025
+ lsls r4, 16
+ lsrs r4, 16
+ adds r1, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D2CC: .4byte 0x00004024
+_0810D2D0: .4byte 0x00004025
+ thumb_func_end sub_810D2AC
+
+ thumb_func_start unref_sub_810D2D4
+unref_sub_810D2D4: @ 810D2D4
+ push {r4,lr}
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ bl sub_810D2AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_810D2D4
+
+ thumb_func_start sub_810D2F4
+sub_810D2F4: @ 810D2F4
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_810D280
+ adds r1, r0, 0
+ cmp r4, 0
+ beq _0810D318
+ ldr r3, _0810D324 @ =0x41c64e6d
+ ldr r2, _0810D328 @ =0x00003039
+_0810D308:
+ adds r0, r1, 0
+ muls r0, r3
+ adds r1, r0, r2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _0810D308
+_0810D318:
+ adds r0, r1, 0
+ bl sub_810D2AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D324: .4byte 0x41c64e6d
+_0810D328: .4byte 0x00003039
+ thumb_func_end sub_810D2F4
+
+ thumb_func_start sub_810D32C
+sub_810D32C: @ 810D32C
+ push {r4-r6,lr}
+ bl sub_810D280
+ lsrs r6, r0, 16
+ movs r5, 0
+_0810D336:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810D360 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0810D368
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _0810D364 @ =0x0000ffff
+ ands r1, r0
+ cmp r1, r6
+ bne _0810D368
+ movs r0, 0x1
+ b _0810D370
+ .align 2, 0
+_0810D360: .4byte gPlayerParty
+_0810D364: .4byte 0x0000ffff
+_0810D368:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0810D336
+ movs r0, 0
+_0810D370:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D32C
+
+ thumb_func_start sub_810D378
+sub_810D378: @ 810D378
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D3BE
+ bl RtcCalcLocalTime
+ ldr r1, _0810D3AC @ =gUnknown_083F8340
+ ldr r0, _0810D3B0 @ =gLocalTime
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810D3B8
+ ldr r0, _0810D3B4 @ =0x0000083a
+ bl FlagSet
+ b _0810D3BE
+ .align 2, 0
+_0810D3AC: .4byte gUnknown_083F8340
+_0810D3B0: .4byte gLocalTime
+_0810D3B4: .4byte 0x0000083a
+_0810D3B8:
+ ldr r0, _0810D3C4 @ =0x0000083a
+ bl FlagReset
+_0810D3BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D3C4: .4byte 0x0000083a
+ thumb_func_end sub_810D378
+
+ thumb_func_start sub_810D3C8
+sub_810D3C8: @ 810D3C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807DDFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D3E2
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_0810D3E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810D3C8
+
+ thumb_func_start sub_810D3E8
+sub_810D3E8: @ 810D3E8
+ push {lr}
+ ldr r0, _0810D3F8 @ =sub_810D3C8
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D3F8: .4byte sub_810D3C8
+ thumb_func_end sub_810D3E8
+
+ thumb_func_start sub_810D3FC
+sub_810D3FC: @ 810D3FC
+ push {lr}
+ ldr r0, _0810D40C @ =0x00004049
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D40C: .4byte 0x00004049
+ thumb_func_end sub_810D3FC
+
+ thumb_func_start UpdateBirchState
+UpdateBirchState: @ 810D410
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D438 @ =0x00004049
+ bl GetVarPointer
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ adds r4, r0
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0x7
+ bl __umodsi3
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D438: .4byte 0x00004049
+ thumb_func_end UpdateBirchState
+
+ thumb_func_start ScriptGetPokedexInfo
+ScriptGetPokedexInfo: @ 810D43C
+ push {lr}
+ ldr r0, _0810D458 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810D460
+ movs r0, 0
+ bl GetHoennPokedexCount
+ ldr r1, _0810D45C @ =gSpecialVar_0x8005
+ strh r0, [r1]
+ movs r0, 0x1
+ bl GetHoennPokedexCount
+ b _0810D470
+ .align 2, 0
+_0810D458: .4byte gSpecialVar_0x8004
+_0810D45C: .4byte gSpecialVar_0x8005
+_0810D460:
+ movs r0, 0
+ bl GetNationalPokedexCount
+ ldr r1, _0810D480 @ =gSpecialVar_0x8005
+ strh r0, [r1]
+ movs r0, 0x1
+ bl GetNationalPokedexCount
+_0810D470:
+ ldr r1, _0810D484 @ =gSpecialVar_0x8006
+ strh r0, [r1]
+ bl IsNationalPokedexEnabled
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D480: .4byte gSpecialVar_0x8005
+_0810D484: .4byte gSpecialVar_0x8006
+ thumb_func_end ScriptGetPokedexInfo
+
+ thumb_func_start GetPokedexRatingText
+GetPokedexRatingText: @ 810D488
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x9
+ bhi _0810D494
+ b _0810D5EC
+_0810D494:
+ cmp r0, 0x13
+ bhi _0810D4A0
+ ldr r0, _0810D49C @ =gUnknown_081C456A
+ b _0810D5F6
+ .align 2, 0
+_0810D49C: .4byte gUnknown_081C456A
+_0810D4A0:
+ cmp r0, 0x1D
+ bhi _0810D4AC
+ ldr r0, _0810D4A8 @ =gUnknown_081C45B0
+ b _0810D5F6
+ .align 2, 0
+_0810D4A8: .4byte gUnknown_081C45B0
+_0810D4AC:
+ cmp r0, 0x27
+ bhi _0810D4B8
+ ldr r0, _0810D4B4 @ =gUnknown_081C45F9
+ b _0810D5F6
+ .align 2, 0
+_0810D4B4: .4byte gUnknown_081C45F9
+_0810D4B8:
+ cmp r0, 0x31
+ bhi _0810D4C4
+ ldr r0, _0810D4C0 @ =gUnknown_081C4648
+ b _0810D5F6
+ .align 2, 0
+_0810D4C0: .4byte gUnknown_081C4648
+_0810D4C4:
+ cmp r0, 0x3B
+ bhi _0810D4D0
+ ldr r0, _0810D4CC @ =gUnknown_081C467E
+ b _0810D5F6
+ .align 2, 0
+_0810D4CC: .4byte gUnknown_081C467E
+_0810D4D0:
+ cmp r0, 0x45
+ bhi _0810D4DC
+ ldr r0, _0810D4D8 @ =gUnknown_081C46B9
+ b _0810D5F6
+ .align 2, 0
+_0810D4D8: .4byte gUnknown_081C46B9
+_0810D4DC:
+ cmp r0, 0x4F
+ bhi _0810D4E8
+ ldr r0, _0810D4E4 @ =gUnknown_081C46FE
+ b _0810D5F6
+ .align 2, 0
+_0810D4E4: .4byte gUnknown_081C46FE
+_0810D4E8:
+ cmp r0, 0x59
+ bhi _0810D4F4
+ ldr r0, _0810D4F0 @ =gUnknown_081C4747
+ b _0810D5F6
+ .align 2, 0
+_0810D4F0: .4byte gUnknown_081C4747
+_0810D4F4:
+ cmp r0, 0x63
+ bhi _0810D500
+ ldr r0, _0810D4FC @ =gUnknown_081C4780
+ b _0810D5F6
+ .align 2, 0
+_0810D4FC: .4byte gUnknown_081C4780
+_0810D500:
+ cmp r0, 0x6D
+ bhi _0810D50C
+ ldr r0, _0810D508 @ =gUnknown_081C47DF
+ b _0810D5F6
+ .align 2, 0
+_0810D508: .4byte gUnknown_081C47DF
+_0810D50C:
+ cmp r0, 0x77
+ bhi _0810D518
+ ldr r0, _0810D514 @ =gUnknown_081C4828
+ b _0810D5F6
+ .align 2, 0
+_0810D514: .4byte gUnknown_081C4828
+_0810D518:
+ cmp r0, 0x81
+ bhi _0810D524
+ ldr r0, _0810D520 @ =gUnknown_081C4863
+ b _0810D5F6
+ .align 2, 0
+_0810D520: .4byte gUnknown_081C4863
+_0810D524:
+ cmp r0, 0x8B
+ bhi _0810D530
+ ldr r0, _0810D52C @ =gUnknown_081C489C
+ b _0810D5F6
+ .align 2, 0
+_0810D52C: .4byte gUnknown_081C489C
+_0810D530:
+ cmp r0, 0x95
+ bhi _0810D53C
+ ldr r0, _0810D538 @ =gUnknown_081C48EB
+ b _0810D5F6
+ .align 2, 0
+_0810D538: .4byte gUnknown_081C48EB
+_0810D53C:
+ cmp r0, 0x9F
+ bhi _0810D548
+ ldr r0, _0810D544 @ =gUnknown_081C4936
+ b _0810D5F6
+ .align 2, 0
+_0810D544: .4byte gUnknown_081C4936
+_0810D548:
+ cmp r0, 0xA9
+ bhi _0810D554
+ ldr r0, _0810D550 @ =gUnknown_081C49A2
+ b _0810D5F6
+ .align 2, 0
+_0810D550: .4byte gUnknown_081C49A2
+_0810D554:
+ cmp r0, 0xB3
+ bhi _0810D560
+ ldr r0, _0810D55C @ =gUnknown_081C4A06
+ b _0810D5F6
+ .align 2, 0
+_0810D55C: .4byte gUnknown_081C4A06
+_0810D560:
+ cmp r0, 0xBD
+ bhi _0810D56C
+ ldr r0, _0810D568 @ =gUnknown_081C4A4F
+ b _0810D5F6
+ .align 2, 0
+_0810D568: .4byte gUnknown_081C4A4F
+_0810D56C:
+ cmp r0, 0xC7
+ bls _0810D5DA
+ cmp r0, 0xC8
+ bne _0810D5A8
+ ldr r0, _0810D5A4 @ =0x00000199
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D5DA
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D5DA
+ b _0810D5F4
+ .align 2, 0
+_0810D5A4: .4byte 0x00000199
+_0810D5A8:
+ cmp r0, 0xC9
+ bne _0810D5E8
+ ldr r0, _0810D5E0 @ =0x00000199
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D5F4
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D5F4
+_0810D5DA:
+ ldr r0, _0810D5E4 @ =gUnknown_081C4A91
+ b _0810D5F6
+ .align 2, 0
+_0810D5E0: .4byte 0x00000199
+_0810D5E4: .4byte gUnknown_081C4A91
+_0810D5E8:
+ cmp r0, 0xCA
+ beq _0810D5F4
+_0810D5EC:
+ ldr r0, _0810D5F0 @ =gUnknown_081C4520
+ b _0810D5F6
+ .align 2, 0
+_0810D5F0: .4byte gUnknown_081C4520
+_0810D5F4:
+ ldr r0, _0810D5FC @ =gUnknown_081C4ADA
+_0810D5F6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D5FC: .4byte gUnknown_081C4ADA
+ thumb_func_end GetPokedexRatingText
+
+ thumb_func_start ShowPokedexRatingMessage
+ShowPokedexRatingMessage: @ 810D600
+ push {lr}
+ ldr r0, _0810D614 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl GetPokedexRatingText
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D614: .4byte gSpecialVar_0x8004
+ thumb_func_end ShowPokedexRatingMessage
+
+ thumb_func_start AccessHallOfFamePC
+AccessHallOfFamePC: @ 810D618
+ push {lr}
+ ldr r0, _0810D628 @ =sub_81428CC
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D628: .4byte sub_81428CC
+ thumb_func_end AccessHallOfFamePC
+
+ thumb_func_start ReturnFromHallOfFamePC
+ReturnFromHallOfFamePC: @ 810D62C
+ push {lr}
+ ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ ldr r1, _0810D644 @ =gUnknown_0300485C
+ ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D640: .4byte c2_exit_to_overworld_2_switch
+_0810D644: .4byte gUnknown_0300485C
+_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC
+ thumb_func_end ReturnFromHallOfFamePC
+
+ thumb_func_start ReshowPCMenuAfterHallOfFamePC
+ReshowPCMenuAfterHallOfFamePC: @ 810D64C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ bl sub_8053E90
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl TryCreatePCMenu
+ bl sub_80B5838
+ ldr r0, _0810D680 @ =sub_810D684
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D680: .4byte sub_810D684
+ thumb_func_end ReshowPCMenuAfterHallOfFamePC
+
+ thumb_func_start sub_810D684
+sub_810D684: @ 810D684
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0810D6A0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810D69C
+ adds r0, r2, 0
+ bl DestroyTask
+_0810D69C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6A0: .4byte gPaletteFade
+ thumb_func_end sub_810D684
+
+ thumb_func_start sub_810D6A4
+sub_810D6A4: @ 810D6A4
+ push {lr}
+ ldr r0, _0810D6B4 @ =sub_8145D88
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6B4: .4byte sub_8145D88
+ thumb_func_end sub_810D6A4
+
+ thumb_func_start sub_810D6B8
+sub_810D6B8: @ 810D6B8
+ push {lr}
+ ldr r0, _0810D6D0 @ =gMain
+ ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch
+ str r1, [r0, 0x8]
+ ldr r0, _0810D6D8 @ =CB2_ViewWallClock
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6D0: .4byte gMain
+_0810D6D4: .4byte c2_exit_to_overworld_2_switch
+_0810D6D8: .4byte CB2_ViewWallClock
+ thumb_func_end sub_810D6B8
+
+ thumb_func_start ResetCyclingRoadChallengeData
+ResetCyclingRoadChallengeData: @ 810D6DC
+ ldr r0, _0810D6F0 @ =gUnknown_02039250
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0810D6F4 @ =gUnknown_02039251
+ strb r1, [r0]
+ ldr r1, _0810D6F8 @ =gUnknown_02039254
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D6F0: .4byte gUnknown_02039250
+_0810D6F4: .4byte gUnknown_02039251
+_0810D6F8: .4byte gUnknown_02039254
+ thumb_func_end ResetCyclingRoadChallengeData
+
+ thumb_func_start BeginCyclingRoadChallenge
+BeginCyclingRoadChallenge: @ 810D6FC
+ ldr r1, _0810D714 @ =gUnknown_02039250
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0810D718 @ =gUnknown_02039251
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0810D71C @ =gUnknown_02039254
+ ldr r0, _0810D720 @ =gMain
+ ldr r0, [r0, 0x20]
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D714: .4byte gUnknown_02039250
+_0810D718: .4byte gUnknown_02039251
+_0810D71C: .4byte gUnknown_02039254
+_0810D720: .4byte gMain
+ thumb_func_end BeginCyclingRoadChallenge
+
+ thumb_func_start GetPlayerAvatarBike
+GetPlayerAvatarBike: @ 810D724
+ push {lr}
+ movs r0, 0x4
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D736
+ movs r0, 0x1
+ b _0810D748
+_0810D736:
+ movs r0, 0x2
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D746
+ movs r0, 0
+ b _0810D748
+_0810D746:
+ movs r0, 0x2
+_0810D748:
+ pop {r1}
+ bx r1
+ thumb_func_end GetPlayerAvatarBike
+
+ thumb_func_start DetermineCyclingRoadResults
+DetermineCyclingRoadResults: @ 810D74C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r6, 0x63
+ bhi _0810D778
+ ldr r4, _0810D770 @ =gStringVar1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, _0810D774 @ =gOtherText_Times
+ adds r0, r4, 0
+ bl StringAppend
+ b _0810D780
+ .align 2, 0
+_0810D770: .4byte gStringVar1
+_0810D774: .4byte gOtherText_Times
+_0810D778:
+ ldr r0, _0810D7CC @ =gStringVar1
+ ldr r1, _0810D7D0 @ =gOtherText_99Times
+ bl StringCopy
+_0810D780:
+ ldr r0, _0810D7D4 @ =0x00000e0f
+ cmp r7, r0
+ bhi _0810D7E0
+ ldr r4, _0810D7D8 @ =gStringVar2
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0xAD
+ strb r0, [r4, 0x2]
+ adds r5, r4, 0x3
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ movs r1, 0x64
+ muls r0, r1
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, _0810D7DC @ =gOtherText_Seconds
+ adds r0, r4, 0
+ bl StringAppend
+ b _0810D7E8
+ .align 2, 0
+_0810D7CC: .4byte gStringVar1
+_0810D7D0: .4byte gOtherText_99Times
+_0810D7D4: .4byte 0x00000e0f
+_0810D7D8: .4byte gStringVar2
+_0810D7DC: .4byte gOtherText_Seconds
+_0810D7E0:
+ ldr r0, _0810D7F4 @ =gStringVar2
+ ldr r1, _0810D7F8 @ =gOtherText_1Minute
+ bl StringCopy
+_0810D7E8:
+ movs r4, 0
+ cmp r6, 0
+ bne _0810D7FC
+ movs r4, 0x5
+ b _0810D81A
+ .align 2, 0
+_0810D7F4: .4byte gStringVar2
+_0810D7F8: .4byte gOtherText_1Minute
+_0810D7FC:
+ cmp r6, 0x3
+ bhi _0810D804
+ movs r4, 0x4
+ b _0810D81A
+_0810D804:
+ cmp r6, 0x9
+ bhi _0810D80C
+ movs r4, 0x3
+ b _0810D81A
+_0810D80C:
+ cmp r6, 0x13
+ bhi _0810D814
+ movs r4, 0x2
+ b _0810D81A
+_0810D814:
+ cmp r6, 0x63
+ bhi _0810D81A
+ movs r4, 0x1
+_0810D81A:
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ cmp r0, 0xA
+ bhi _0810D82A
+ adds r0, r4, 0x5
+ b _0810D848
+_0810D82A:
+ cmp r0, 0xF
+ bhi _0810D832
+ adds r0, r4, 0x4
+ b _0810D848
+_0810D832:
+ cmp r0, 0x14
+ bhi _0810D83A
+ adds r0, r4, 0x3
+ b _0810D848
+_0810D83A:
+ cmp r0, 0x28
+ bhi _0810D842
+ adds r0, r4, 0x2
+ b _0810D848
+_0810D842:
+ cmp r0, 0x3B
+ bhi _0810D84C
+ adds r0, r4, 0x1
+_0810D848:
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0810D84C:
+ ldr r0, _0810D858 @ =gScriptResult
+ strh r4, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D858: .4byte gScriptResult
+ thumb_func_end DetermineCyclingRoadResults
+
+ thumb_func_start FinishCyclingRoadChallenge
+FinishCyclingRoadChallenge: @ 810D85C
+ push {r4,r5,lr}
+ ldr r0, _0810D880 @ =gMain
+ ldr r1, _0810D884 @ =gUnknown_02039254
+ ldr r4, [r0, 0x20]
+ ldr r0, [r1]
+ subs r4, r0
+ ldr r5, _0810D888 @ =gUnknown_02039251
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl DetermineCyclingRoadResults
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl RecordCyclingRoadResults
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D880: .4byte gMain
+_0810D884: .4byte gUnknown_02039254
+_0810D888: .4byte gUnknown_02039251
+ thumb_func_end FinishCyclingRoadChallenge
+
+ thumb_func_start RecordCyclingRoadResults
+RecordCyclingRoadResults: @ 810D88C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r6, _0810D8E0 @ =0x00004028
+ adds r0, r6, 0
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r7, _0810D8E4 @ =0x00004029
+ adds r0, r7, 0
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, r5
+ bhi _0810D8BC
+ cmp r4, 0
+ bne _0810D8D6
+_0810D8BC:
+ lsls r1, r5, 16
+ lsrs r1, 16
+ adds r0, r6, 0
+ bl VarSet
+ lsrs r1, r5, 16
+ adds r0, r7, 0
+ bl VarSet
+ ldr r0, _0810D8E8 @ =0x00004027
+ mov r1, r8
+ bl VarSet
+_0810D8D6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D8E0: .4byte 0x00004028
+_0810D8E4: .4byte 0x00004029
+_0810D8E8: .4byte 0x00004027
+ thumb_func_end RecordCyclingRoadResults
+
+ thumb_func_start GetRecordedCyclingRoadResults
+GetRecordedCyclingRoadResults: @ 810D8EC
+ push {r4,lr}
+ ldr r0, _0810D920 @ =0x00004028
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D924 @ =0x00004029
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, 0
+ beq _0810D92C
+ ldr r0, _0810D928 @ =0x00004027
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl DetermineCyclingRoadResults
+ movs r0, 0x1
+ b _0810D92E
+ .align 2, 0
+_0810D920: .4byte 0x00004028
+_0810D924: .4byte 0x00004029
+_0810D928: .4byte 0x00004027
+_0810D92C:
+ movs r0, 0
+_0810D92E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetRecordedCyclingRoadResults
+
+ thumb_func_start UpdateCyclingRoadState
+UpdateCyclingRoadState: @ 810D934
+ push {r4,lr}
+ ldr r0, _0810D974 @ =gUnknown_020297F0
+ ldrh r1, [r0]
+ ldr r0, _0810D978 @ =0x00000c1d
+ cmp r1, r0
+ beq _0810D96C
+ ldr r4, _0810D97C @ =0x000040a9
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _0810D95E
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bne _0810D96C
+_0810D95E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl VarSet
+ movs r0, 0
+ bl sav1_set_battle_music_maybe
+_0810D96C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D974: .4byte gUnknown_020297F0
+_0810D978: .4byte 0x00000c1d
+_0810D97C: .4byte 0x000040a9
+ thumb_func_end UpdateCyclingRoadState
+
+ thumb_func_start SetSSTidalFlag
+SetSSTidalFlag: @ 810D980
+ push {lr}
+ ldr r0, _0810D998 @ =0x0000082d
+ bl FlagSet
+ ldr r0, _0810D99C @ =0x0000404a
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D998: .4byte 0x0000082d
+_0810D99C: .4byte 0x0000404a
+ thumb_func_end SetSSTidalFlag
+
+ thumb_func_start ResetSSTidalFlag
+ResetSSTidalFlag: @ 810D9A0
+ push {lr}
+ ldr r0, _0810D9AC @ =0x0000082d
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D9AC: .4byte 0x0000082d
+ thumb_func_end ResetSSTidalFlag
+
+ thumb_func_start sub_810D9B0
+sub_810D9B0: @ 810D9B0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0810D9DC @ =0x0000082d
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D9D6
+ ldr r0, _0810D9E0 @ =0x0000404a
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, r4, r1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xCC
+ bhi _0810D9E4
+_0810D9D6:
+ movs r0, 0
+ b _0810D9E6
+ .align 2, 0
+_0810D9DC: .4byte 0x0000082d
+_0810D9E0: .4byte 0x0000404a
+_0810D9E4:
+ movs r0, 0x1
+_0810D9E6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D9B0
+
+ thumb_func_start sub_810D9EC
+sub_810D9EC: @ 810D9EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldr r0, _0810DA1C @ =0x0000404a
+ bl GetVarPointer
+ adds r4, r0, 0
+ ldr r0, _0810DA20 @ =0x000040b4
+ bl GetVarPointer
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x9
+ bhi _0810DAB2
+ lsls r0, 2
+ ldr r1, _0810DA24 @ =_0810DA28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DA1C: .4byte 0x0000404a
+_0810DA20: .4byte 0x000040b4
+_0810DA24: .4byte _0810DA28
+ .align 2, 0
+_0810DA28:
+ .4byte _0810DA50
+ .4byte _0810DA60
+ .4byte _0810DA54
+ .4byte _0810DA58
+ .4byte _0810DA58
+ .4byte _0810DA5C
+ .4byte _0810DA88
+ .4byte _0810DA50
+ .4byte _0810DA54
+ .4byte _0810DA5C
+_0810DA50:
+ movs r0, 0x1
+ b _0810DABE
+_0810DA54:
+ movs r0, 0x4
+ b _0810DABE
+_0810DA58:
+ movs r0, 0x2
+ b _0810DABE
+_0810DA5C:
+ movs r0, 0x3
+ b _0810DABE
+_0810DA60:
+ ldrh r0, [r4]
+ cmp r0, 0x3B
+ bhi _0810DA70
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r0, [r4]
+ adds r0, 0x13
+ b _0810DAB0
+_0810DA70:
+ cmp r0, 0x8B
+ bhi _0810DA7E
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x3C
+ b _0810DAB0
+_0810DA7E:
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x8C
+ b _0810DAB0
+_0810DA88:
+ ldrh r0, [r4]
+ cmp r0, 0x41
+ bhi _0810DA98
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x41
+ b _0810DAAE
+_0810DA98:
+ cmp r0, 0x91
+ bhi _0810DAA6
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x91
+ b _0810DAAE
+_0810DAA6:
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0xE0
+_0810DAAE:
+ subs r0, r1
+_0810DAB0:
+ strh r0, [r6]
+_0810DAB2:
+ movs r0, 0
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strh r0, [r7]
+ movs r0, 0
+_0810DABE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D9EC
+
+ thumb_func_start GetLinkPartnerNames
+GetLinkPartnerNames: @ 810DAC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ bl sub_8008218
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_800820C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810DB12
+ ldr r0, _0810DB20 @ =gUnknown_083D1464
+ mov r8, r0
+_0810DAEA:
+ cmp r7, r4
+ beq _0810DB08
+ lsls r0, r6, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ bl StringCopy
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0810DB08:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810DAEA
+_0810DB12:
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810DB20: .4byte gUnknown_083D1464
+_0810DB24: .4byte gLinkPlayers + 0x8
+ thumb_func_end GetLinkPartnerNames
+
+ thumb_func_start sub_810DB28
+sub_810DB28: @ 810DB28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ mov r8, r0
+ ldr r1, _0810DB74 @ =gUnknown_083F8358
+ add r0, sp, 0x8
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0xC
+ ldr r1, _0810DB78 @ =gUnknown_083F835C
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl memcpy
+ bl sub_8008218
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ beq _0810DB94
+ cmp r0, 0x2
+ bgt _0810DB7C
+ cmp r0, 0x1
+ beq _0810DBC0
+ b _0810DBD2
+ .align 2, 0
+_0810DB74: .4byte gUnknown_083F8358
+_0810DB78: .4byte gUnknown_083F835C
+_0810DB7C:
+ cmp r1, 0x3
+ beq _0810DB86
+ cmp r1, 0x4
+ beq _0810DBA8
+ b _0810DBD2
+_0810DB86:
+ movs r7, 0x2
+ ldr r1, _0810DB90 @ =gSaveBlock1
+ ldrh r0, [r1]
+ subs r0, 0x1
+ b _0810DBAE
+ .align 2, 0
+_0810DB90: .4byte gSaveBlock1
+_0810DB94:
+ movs r7, 0x1
+ ldr r0, _0810DBA4 @ =gSaveBlock1
+ ldrh r1, [r0]
+ mov r9, r1
+ ldrh r0, [r0, 0x2]
+ subs r0, 0x1
+ b _0810DBCC
+ .align 2, 0
+_0810DBA4: .4byte gSaveBlock1
+_0810DBA8:
+ ldr r1, _0810DBBC @ =gSaveBlock1
+ ldrh r0, [r1]
+ adds r0, 0x1
+_0810DBAE:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldrh r1, [r1, 0x2]
+ mov r8, r1
+ b _0810DBD2
+ .align 2, 0
+_0810DBBC: .4byte gSaveBlock1
+_0810DBC0:
+ movs r7, 0x3
+ ldr r0, _0810DBD8 @ =gSaveBlock1
+ ldrh r4, [r0]
+ mov r9, r4
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x1
+_0810DBCC:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_0810DBD2:
+ movs r6, 0
+ b _0810DC5C
+ .align 2, 0
+_0810DBD8: .4byte gSaveBlock1
+_0810DBDC:
+ cmp r10, r6
+ beq _0810DC56
+ ldr r1, _0810DC74 @ =gLinkPlayers
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x13]
+ movs r0, 0
+ bl sub_805983C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ adds r1, r7
+ adds r1, 0x8
+ ldrb r1, [r1]
+ movs r2, 0xF0
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, r7, 1
+ mov r3, sp
+ adds r3, r5
+ adds r3, 0xC
+ ldrb r3, [r3]
+ lsls r3, 24
+ asrs r3, 24
+ mov r12, r3
+ mov r4, r9
+ lsls r3, r4, 16
+ asrs r3, 16
+ add r3, r12
+ adds r3, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ mov r4, sp
+ adds r4, 0xD
+ adds r4, r5
+ ldrb r4, [r4]
+ lsls r4, 24
+ asrs r4, 24
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 16
+ asrs r4, 16
+ add r4, r12
+ adds r4, 0x7
+ lsls r4, 16
+ asrs r4, 16
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ bl SpawnSpecialFieldObjectParametrized
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x4
+ bne _0810DC56
+ movs r7, 0
+_0810DC56:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0810DC5C:
+ ldr r0, _0810DC78 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcc _0810DBDC
+ 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
+_0810DC74: .4byte gLinkPlayers
+_0810DC78: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810DB28
+
+ thumb_func_start sub_810DC7C
+sub_810DC7C: @ 810DC7C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810DC9C @ =gUnknown_083F8364
+_0810DC82:
+ ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0810DCA8
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, _0810DCA4 @ =0x00000206
+ bl MapGridSetMetatileIdAt
+ b _0810DCB6
+ .align 2, 0
+_0810DC9C: .4byte gUnknown_083F8364
+_0810DCA0: .4byte gSpecialVar_0x8004
+_0810DCA4: .4byte 0x00000206
+_0810DCA8:
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, _0810DCC8 @ =0x00000205
+ bl MapGridSetMetatileIdAt
+_0810DCB6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0810DC82
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810DCC8: .4byte 0x00000205
+ thumb_func_end sub_810DC7C
+
+ thumb_func_start sub_810DCCC
+sub_810DCCC: @ 810DCCC
+ push {r4-r6,lr}
+ movs r5, 0xC
+_0810DCD0:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_0810DCD4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _0810DCF0 @ =0xfffffde6
+ adds r0, r1
+ cmp r0, 0x37
+ bls _0810DCE6
+ b _0810DEC0
+_0810DCE6:
+ lsls r0, 2
+ ldr r1, _0810DCF4 @ =_0810DCF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DCF0: .4byte 0xfffffde6
+_0810DCF4: .4byte _0810DCF8
+ .align 2, 0
+_0810DCF8:
+ .4byte _0810DE7E
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDD8
+ .4byte _0810DDDE
+ .4byte _0810DE18
+ .4byte _0810DE20
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDE8
+ .4byte _0810DDEE
+ .4byte _0810DE28
+ .4byte _0810DE30
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDF8
+ .4byte _0810DDFE
+ .4byte _0810DE38
+ .4byte _0810DE40
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE08
+ .4byte _0810DE10
+ .4byte _0810DE48
+ .4byte _0810DE50
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE58
+ .4byte _0810DE68
+ .4byte _0810DE78
+ .4byte _0810DEA0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE60
+ .4byte _0810DE70
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEB6
+ .4byte _0810DEA8
+_0810DDD8:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _0810DEAC
+_0810DDDE:
+ ldr r2, _0810DDE4 @ =0x00000231
+ b _0810DEAC
+ .align 2, 0
+_0810DDE4: .4byte 0x00000231
+_0810DDE8:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _0810DEAC
+_0810DDEE:
+ ldr r2, _0810DDF4 @ =0x00000239
+ b _0810DEAC
+ .align 2, 0
+_0810DDF4: .4byte 0x00000239
+_0810DDF8:
+ movs r2, 0x88
+ lsls r2, 2
+ b _0810DEAC
+_0810DDFE:
+ ldr r2, _0810DE04 @ =0x00000221
+ b _0810DEAC
+ .align 2, 0
+_0810DE04: .4byte 0x00000221
+_0810DE08:
+ ldr r2, _0810DE0C @ =0x00000e28
+ b _0810DEAC
+ .align 2, 0
+_0810DE0C: .4byte 0x00000e28
+_0810DE10:
+ ldr r2, _0810DE14 @ =0x00000e29
+ b _0810DEAC
+ .align 2, 0
+_0810DE14: .4byte 0x00000e29
+_0810DE18:
+ ldr r2, _0810DE1C @ =0x00000232
+ b _0810DEAC
+ .align 2, 0
+_0810DE1C: .4byte 0x00000232
+_0810DE20:
+ ldr r2, _0810DE24 @ =0x00000233
+ b _0810DEAC
+ .align 2, 0
+_0810DE24: .4byte 0x00000233
+_0810DE28:
+ ldr r2, _0810DE2C @ =0x0000023a
+ b _0810DEAC
+ .align 2, 0
+_0810DE2C: .4byte 0x0000023a
+_0810DE30:
+ ldr r2, _0810DE34 @ =0x0000023b
+ b _0810DEAC
+ .align 2, 0
+_0810DE34: .4byte 0x0000023b
+_0810DE38:
+ ldr r2, _0810DE3C @ =0x00000222
+ b _0810DEAC
+ .align 2, 0
+_0810DE3C: .4byte 0x00000222
+_0810DE40:
+ ldr r2, _0810DE44 @ =0x00000223
+ b _0810DEAC
+ .align 2, 0
+_0810DE44: .4byte 0x00000223
+_0810DE48:
+ ldr r2, _0810DE4C @ =0x00000e2a
+ b _0810DEAC
+ .align 2, 0
+_0810DE4C: .4byte 0x00000e2a
+_0810DE50:
+ ldr r2, _0810DE54 @ =0x00000e2b
+ b _0810DEAC
+ .align 2, 0
+_0810DE54: .4byte 0x00000e2b
+_0810DE58:
+ ldr r2, _0810DE5C @ =0x00000e42
+ b _0810DEAC
+ .align 2, 0
+_0810DE5C: .4byte 0x00000e42
+_0810DE60:
+ ldr r2, _0810DE64 @ =0x0000021a
+ b _0810DEAC
+ .align 2, 0
+_0810DE64: .4byte 0x0000021a
+_0810DE68:
+ ldr r2, _0810DE6C @ =0x00000e43
+ b _0810DEAC
+ .align 2, 0
+_0810DE6C: .4byte 0x00000e43
+_0810DE70:
+ ldr r2, _0810DE74 @ =0x0000021a
+ b _0810DEAC
+ .align 2, 0
+_0810DE74: .4byte 0x0000021a
+_0810DE78:
+ movs r2, 0xE4
+ lsls r2, 4
+ b _0810DEAC
+_0810DE7E:
+ subs r1, r5, 0x1
+ adds r0, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x90
+ lsls r1, 2
+ cmp r0, r1
+ bne _0810DE98
+ ldr r2, _0810DE94 @ =0x00000e48
+ b _0810DEAC
+ .align 2, 0
+_0810DE94: .4byte 0x00000e48
+_0810DE98:
+ ldr r2, _0810DE9C @ =0x00000e49
+ b _0810DEAC
+ .align 2, 0
+_0810DE9C: .4byte 0x00000e49
+_0810DEA0:
+ ldr r2, _0810DEA4 @ =0x00000e41
+ b _0810DEAC
+ .align 2, 0
+_0810DEA4: .4byte 0x00000e41
+_0810DEA8:
+ movs r2, 0xE5
+ lsls r2, 4
+_0810DEAC:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _0810DEC0
+_0810DEB6:
+ ldr r2, _0810DED8 @ =0x00000251
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_0810DEC0:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _0810DEC8
+ b _0810DCD4
+_0810DEC8:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _0810DED0
+ b _0810DCD0
+_0810DED0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810DED8: .4byte 0x00000251
+ thumb_func_end sub_810DCCC
+
+ thumb_func_start sub_810DEDC
+sub_810DEDC: @ 810DEDC
+ push {r4-r6,lr}
+ ldr r4, _0810DF18 @ =gUnknown_083F8364
+ movs r5, 0x2
+_0810DEE2:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ ldr r2, _0810DF1C @ =0x00000206
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0810DEE2
+ movs r5, 0xC
+_0810DEF6:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_0810DEFA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _0810DF20 @ =0xfffffde0
+ adds r0, r1
+ cmp r0, 0x30
+ bls _0810DF0C
+ b _0810E056
+_0810DF0C:
+ lsls r0, 2
+ ldr r1, _0810DF24 @ =_0810DF28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DF18: .4byte gUnknown_083F8364
+_0810DF1C: .4byte 0x00000206
+_0810DF20: .4byte 0xfffffde0
+_0810DF24: .4byte _0810DF28
+ .align 2, 0
+_0810DF28:
+ .4byte _0810DFEC
+ .4byte _0810DFF2
+ .4byte _0810E00C
+ .4byte _0810E014
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810DFFC
+ .4byte _0810E002
+ .4byte _0810E01C
+ .4byte _0810E024
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E02C
+ .4byte _0810E034
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E03C
+ .4byte _0810E03C
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E04C
+_0810DFEC:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _0810E03E
+_0810DFF2:
+ ldr r2, _0810DFF8 @ =0x00000231
+ b _0810E03E
+ .align 2, 0
+_0810DFF8: .4byte 0x00000231
+_0810DFFC:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _0810E03E
+_0810E002:
+ ldr r2, _0810E008 @ =0x00000239
+ b _0810E03E
+ .align 2, 0
+_0810E008: .4byte 0x00000239
+_0810E00C:
+ ldr r2, _0810E010 @ =0x00000232
+ b _0810E03E
+ .align 2, 0
+_0810E010: .4byte 0x00000232
+_0810E014:
+ ldr r2, _0810E018 @ =0x00000233
+ b _0810E03E
+ .align 2, 0
+_0810E018: .4byte 0x00000233
+_0810E01C:
+ ldr r2, _0810E020 @ =0x0000023a
+ b _0810E03E
+ .align 2, 0
+_0810E020: .4byte 0x0000023a
+_0810E024:
+ ldr r2, _0810E028 @ =0x0000023b
+ b _0810E03E
+ .align 2, 0
+_0810E028: .4byte 0x0000023b
+_0810E02C:
+ ldr r2, _0810E030 @ =0x00000e42
+ b _0810E03E
+ .align 2, 0
+_0810E030: .4byte 0x00000e42
+_0810E034:
+ ldr r2, _0810E038 @ =0x00000e43
+ b _0810E03E
+ .align 2, 0
+_0810E038: .4byte 0x00000e43
+_0810E03C:
+ ldr r2, _0810E048 @ =0x0000021a
+_0810E03E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _0810E056
+ .align 2, 0
+_0810E048: .4byte 0x0000021a
+_0810E04C:
+ ldr r2, _0810E06C @ =0x00000251
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_0810E056:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _0810E05E
+ b _0810DEFA
+_0810E05E:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _0810E066
+ b _0810DEF6
+_0810E066:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E06C: .4byte 0x00000251
+ thumb_func_end sub_810DEDC
+
+ thumb_func_start sub_810E070
+sub_810E070: @ 810E070
+ push {lr}
+ ldr r0, _0810E090 @ =gUnknown_02039258
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0810E094 @ =gUnknown_02039259
+ strb r1, [r0]
+ movs r0, 0x2C
+ bl PlaySE
+ ldr r0, _0810E098 @ =sub_810E09C
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E090: .4byte gUnknown_02039258
+_0810E094: .4byte gUnknown_02039259
+_0810E098: .4byte sub_810E09C
+ thumb_func_end sub_810E070
+
+ thumb_func_start sub_810E09C
+sub_810E09C: @ 810E09C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0810E0E4 @ =gUnknown_083F8370
+ ldr r5, _0810E0E8 @ =gUnknown_02039259
+ ldrb r1, [r5]
+ adds r0, r1, r0
+ ldr r4, _0810E0EC @ =gUnknown_02039258
+ ldrb r2, [r4]
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0810E0F8
+ ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ ldr r2, _0810E0F4 @ =gUnknown_083F8376
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_810E104
+ movs r0, 0
+ strb r0, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _0810E0FC
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ b _0810E0FC
+ .align 2, 0
+_0810E0E4: .4byte gUnknown_083F8370
+_0810E0E8: .4byte gUnknown_02039259
+_0810E0EC: .4byte gUnknown_02039258
+_0810E0F0: .4byte gSpecialVar_0x8004
+_0810E0F4: .4byte gUnknown_083F8376
+_0810E0F8:
+ adds r0, r2, 0x1
+ strb r0, [r4]
+_0810E0FC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E09C
+
+ thumb_func_start sub_810E104
+sub_810E104: @ 810E104
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r2, r1, 16
+ movs r7, 0
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _0810E1CC
+ lsls r0, 2
+ ldr r1, _0810E128 @ =_0810E12C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810E128: .4byte _0810E12C
+ .align 2, 0
+_0810E12C:
+ .4byte _0810E14C
+ .4byte _0810E15E
+ .4byte _0810E170
+ .4byte _0810E182
+ .4byte _0810E190
+ .4byte _0810E1A6
+ .4byte _0810E1B2
+ .4byte _0810E1C0
+_0810E14C:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x68
+ b _0810E1A0
+_0810E15E:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x4E
+ b _0810E1A0
+_0810E170:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x5B
+ b _0810E1A0
+_0810E182:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0x27
+ b _0810E1CA
+_0810E190:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x34
+_0810E1A0:
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ b _0810E1CC
+_0810E1A6:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x41
+ b _0810E1CA
+_0810E1B2:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0xD
+ b _0810E1CA
+_0810E1C0:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x1A
+_0810E1CA:
+ strh r0, [r1]
+_0810E1CC:
+ movs r6, 0
+ cmp r6, r7
+ bcs _0810E21E
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ adds r1, r2, 0
+ orrs r1, r0
+ lsls r1, 16
+ mov r9, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ orrs r1, r0
+ lsls r1, 16
+ mov r8, r1
+_0810E1EA:
+ lsls r1, r6, 1
+ mov r3, sp
+ adds r5, r3, r1
+ ldrh r0, [r5]
+ adds r0, 0x7
+ add r4, sp, 0x8
+ adds r4, r1
+ ldrh r1, [r4]
+ adds r1, 0x7
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ ldrh r0, [r5]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x8
+ mov r3, r8
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r7
+ bcc _0810E1EA
+_0810E21E:
+ bl DrawWholeMapView
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E104
+
+ thumb_func_start sub_810E230
+sub_810E230: @ 810E230
+ push {lr}
+ ldr r0, _0810E244 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ ldr r1, _0810E248 @ =gUnknown_083F8376
+ ldrh r1, [r1, 0x8]
+ bl sub_810E104
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E244: .4byte gSpecialVar_0x8004
+_0810E248: .4byte gUnknown_083F8376
+ thumb_func_end sub_810E230
+
+ thumb_func_start ShowFieldMessageStringVar4
+ShowFieldMessageStringVar4: @ 810E24C
+ push {lr}
+ ldr r0, _0810E258 @ =gStringVar4
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E258: .4byte gStringVar4
+ thumb_func_end ShowFieldMessageStringVar4
+
+ thumb_func_start StorePlayerCoordsInVars
+StorePlayerCoordsInVars: @ 810E25C
+ ldr r1, _0810E26C @ =gSpecialVar_0x8004
+ ldr r2, _0810E270 @ =gSaveBlock1
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _0810E274 @ =gSpecialVar_0x8005
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0810E26C: .4byte gSpecialVar_0x8004
+_0810E270: .4byte gSaveBlock1
+_0810E274: .4byte gSpecialVar_0x8005
+ thumb_func_end StorePlayerCoordsInVars
+
+ thumb_func_start GetPlayerTrainerIdOnesDigit
+GetPlayerTrainerIdOnesDigit: @ 810E278
+ push {lr}
+ ldr r0, _0810E294 @ =gSaveBlock2
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810E294: .4byte gSaveBlock2
+ thumb_func_end GetPlayerTrainerIdOnesDigit
+
+ thumb_func_start GetPlayerBigGuyGirlString
+GetPlayerBigGuyGirlString: @ 810E298
+ push {lr}
+ ldr r0, _0810E2AC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810E2B8
+ ldr r0, _0810E2B0 @ =gStringVar1
+ ldr r1, _0810E2B4 @ =gOtherText_BigGuy
+ bl StringCopy
+ b _0810E2C0
+ .align 2, 0
+_0810E2AC: .4byte gSaveBlock2
+_0810E2B0: .4byte gStringVar1
+_0810E2B4: .4byte gOtherText_BigGuy
+_0810E2B8:
+ ldr r0, _0810E2C4 @ =gStringVar1
+ ldr r1, _0810E2C8 @ =gOtherText_BigGirl
+ bl StringCopy
+_0810E2C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E2C4: .4byte gStringVar1
+_0810E2C8: .4byte gOtherText_BigGirl
+ thumb_func_end GetPlayerBigGuyGirlString
+
+ thumb_func_start GetRivalSonDaughterString
+GetRivalSonDaughterString: @ 810E2CC
+ push {lr}
+ ldr r0, _0810E2E0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810E2EC
+ ldr r0, _0810E2E4 @ =gStringVar1
+ ldr r1, _0810E2E8 @ =gOtherText_Daughter
+ bl StringCopy
+ b _0810E2F4
+ .align 2, 0
+_0810E2E0: .4byte gSaveBlock2
+_0810E2E4: .4byte gStringVar1
+_0810E2E8: .4byte gOtherText_Daughter
+_0810E2EC:
+ ldr r0, _0810E2F8 @ =gStringVar1
+ ldr r1, _0810E2FC @ =gOtherText_Son
+ bl StringCopy
+_0810E2F4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E2F8: .4byte gStringVar1
+_0810E2FC: .4byte gOtherText_Son
+ thumb_func_end GetRivalSonDaughterString
+
+ thumb_func_start sub_810E300
+sub_810E300: @ 810E300
+ ldr r0, _0810E308 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0810E308: .4byte gUnknown_02024D26
+ thumb_func_end sub_810E300
+
+ thumb_func_start CableCarWarp
+CableCarWarp: @ 810E30C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0810E32C @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0810E330
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r3, 0x6
+ bl warp1_set
+ b _0810E342
+ .align 2, 0
+_0810E32C: .4byte gSpecialVar_0x8004
+_0810E330:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0x1
+ movs r3, 0x6
+ bl warp1_set
+_0810E342:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end CableCarWarp
+
+ thumb_func_start SetFlagInVar
+SetFlagInVar: @ 810E348
+ push {lr}
+ ldr r0, _0810E358 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E358: .4byte gSpecialVar_0x8004
+ thumb_func_end SetFlagInVar
+
+ thumb_func_start GetWeekCount
+GetWeekCount: @ 810E35C
+ push {lr}
+ ldr r0, _0810E37C @ =gLocalTime
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x7
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0810E380 @ =0x0000270f
+ cmp r0, r1
+ bls _0810E376
+ adds r0, r1, 0
+_0810E376:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810E37C: .4byte gLocalTime
+_0810E380: .4byte 0x0000270f
+ thumb_func_end GetWeekCount
+
+ thumb_func_start GetLeadMonFriendshipScore
+GetLeadMonFriendshipScore: @ 810E384
+ push {r4,lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _0810E3A8 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xFF
+ bne _0810E3AC
+ movs r0, 0x6
+ b _0810E3FE
+ .align 2, 0
+_0810E3A8: .4byte gPlayerParty
+_0810E3AC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810E3BC
+ movs r0, 0x5
+ b _0810E3FE
+_0810E3BC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x95
+ bls _0810E3CC
+ movs r0, 0x4
+ b _0810E3FE
+_0810E3CC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0810E3DC
+ movs r0, 0x3
+ b _0810E3FE
+_0810E3DC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x31
+ bls _0810E3EC
+ movs r0, 0x2
+ b _0810E3FE
+_0810E3EC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0
+ bne _0810E3FC
+ movs r0, 0
+ b _0810E3FE
+_0810E3FC:
+ movs r0, 0x1
+_0810E3FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetLeadMonFriendshipScore
+
+ thumb_func_start CB2_FieldShowRegionMap
+CB2_FieldShowRegionMap: @ 810E404
+ push {lr}
+ ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl FieldInitRegionMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end CB2_FieldShowRegionMap
+
+ thumb_func_start FieldShowRegionMap
+FieldShowRegionMap: @ 810E414
+ push {lr}
+ ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E420: .4byte CB2_FieldShowRegionMap
+ thumb_func_end FieldShowRegionMap
+
+ thumb_func_start DoPCTurnOnEffect
+DoPCTurnOnEffect: @ 810E424
+ push {r4,lr}
+ ldr r4, _0810E460 @ =Task_PCTurnOnEffect
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810E458
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810E464 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810E458:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E460: .4byte Task_PCTurnOnEffect
+_0810E464: .4byte gTasks
+ thumb_func_end DoPCTurnOnEffect
+
+ thumb_func_start Task_PCTurnOnEffect
+Task_PCTurnOnEffect: @ 810E468
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0810E48C @ =gTasks
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0810E486
+ adds r0, r1, 0
+ bl PCTurnOffEffect_0
+_0810E486:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E48C: .4byte gTasks
+ thumb_func_end Task_PCTurnOnEffect
+
+ thumb_func_start PCTurnOffEffect_0
+PCTurnOffEffect_0: @ 810E490
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r6, 0
+ movs r5, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _0810E4FC
+ strh r5, [r4, 0xE]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _0810E4C4
+ cmp r0, 0x3
+ bgt _0810E4BA
+ cmp r0, 0x2
+ beq _0810E4C0
+ b _0810E4CC
+_0810E4BA:
+ cmp r1, 0x4
+ beq _0810E4C8
+ b _0810E4CC
+_0810E4C0:
+ movs r6, 0
+ b _0810E4CA
+_0810E4C4:
+ movs r6, 0xFF
+ b _0810E4CA
+_0810E4C8:
+ movs r6, 0x1
+_0810E4CA:
+ movs r5, 0xFF
+_0810E4CC:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r2, r5, 24
+ asrs r2, 24
+ bl PCTurnOffEffect_1
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0810E4FC
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_0810E4FC:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PCTurnOffEffect_0
+
+ thumb_func_start PCTurnOffEffect_1
+PCTurnOffEffect_1: @ 810E508
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r3, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _0810E544
+ ldr r0, _0810E528 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E52C
+ movs r3, 0x4
+ b _0810E566
+ .align 2, 0
+_0810E528: .4byte gSpecialVar_0x8004
+_0810E52C:
+ cmp r0, 0x1
+ bne _0810E538
+ ldr r3, _0810E534 @ =0x0000025a
+ b _0810E566
+ .align 2, 0
+_0810E534: .4byte 0x0000025a
+_0810E538:
+ cmp r0, 0x2
+ bne _0810E566
+ ldr r3, _0810E540 @ =0x00000259
+ b _0810E566
+ .align 2, 0
+_0810E540: .4byte 0x00000259
+_0810E544:
+ ldr r0, _0810E550 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E554
+ movs r3, 0x5
+ b _0810E566
+ .align 2, 0
+_0810E550: .4byte gSpecialVar_0x8004
+_0810E554:
+ cmp r0, 0x1
+ bne _0810E560
+ ldr r3, _0810E55C @ =0x0000027f
+ b _0810E566
+ .align 2, 0
+_0810E55C: .4byte 0x0000027f
+_0810E560:
+ cmp r0, 0x2
+ bne _0810E566
+ ldr r3, _0810E594 @ =0x0000027e
+_0810E566:
+ ldr r2, _0810E598 @ =gSaveBlock1
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r5, 0x2
+ ldrsh r1, [r2, r5]
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r3, r2
+ adds r2, r3, 0
+ bl MapGridSetMetatileIdAt
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E594: .4byte 0x0000027e
+_0810E598: .4byte gSaveBlock1
+ thumb_func_end PCTurnOffEffect_1
+
+ thumb_func_start DoPCTurnOffEffect
+DoPCTurnOffEffect: @ 810E59C
+ push {lr}
+ bl PCTurnOffEffect
+ pop {r0}
+ bx r0
+ thumb_func_end DoPCTurnOffEffect
+
+ thumb_func_start PCTurnOffEffect
+PCTurnOffEffect: @ 810E5A8
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _0810E5D2
+ cmp r0, 0x3
+ bgt _0810E5C8
+ cmp r0, 0x2
+ beq _0810E5CE
+ b _0810E5DA
+_0810E5C8:
+ cmp r1, 0x4
+ beq _0810E5D6
+ b _0810E5DA
+_0810E5CE:
+ movs r6, 0
+ b _0810E5D8
+_0810E5D2:
+ movs r6, 0xFF
+ b _0810E5D8
+_0810E5D6:
+ movs r6, 0x1
+_0810E5D8:
+ movs r5, 0xFF
+_0810E5DA:
+ ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E5EC
+ movs r4, 0x4
+ b _0810E5FE
+ .align 2, 0
+_0810E5E8: .4byte gSpecialVar_0x8004
+_0810E5EC:
+ cmp r0, 0x1
+ bne _0810E5F8
+ ldr r4, _0810E5F4 @ =0x0000025a
+ b _0810E5FE
+ .align 2, 0
+_0810E5F4: .4byte 0x0000025a
+_0810E5F8:
+ cmp r0, 0x2
+ bne _0810E5FE
+ ldr r4, _0810E630 @ =0x00000259
+_0810E5FE:
+ ldr r2, _0810E634 @ =gSaveBlock1
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ lsls r2, r5, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r2, r3, 0
+ orrs r4, r2
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E630: .4byte 0x00000259
+_0810E634: .4byte gSaveBlock1
+ thumb_func_end PCTurnOffEffect
+
+ thumb_func_start DoLotteryCornerComputerEffect
+DoLotteryCornerComputerEffect: @ 810E638
+ push {r4,lr}
+ ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810E66C
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810E678 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810E66C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E674: .4byte Task_LotteryCornerComputerEffect
+_0810E678: .4byte gTasks
+ thumb_func_end DoLotteryCornerComputerEffect
+
+ thumb_func_start Task_LotteryCornerComputerEffect
+Task_LotteryCornerComputerEffect: @ 810E67C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0810E6A0 @ =gTasks
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0810E69A
+ adds r0, r1, 0
+ bl LotteryCornerComputerEffect
+_0810E69A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E6A0: .4byte gTasks
+ thumb_func_end Task_LotteryCornerComputerEffect
+
+ thumb_func_start LotteryCornerComputerEffect
+LotteryCornerComputerEffect: @ 810E6A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _0810E712
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810E6DC
+ ldr r2, _0810E6D4 @ =0x00000e9d
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810E6D8 @ =0x00000ea5
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ b _0810E6F2
+ .align 2, 0
+_0810E6D4: .4byte 0x00000e9d
+_0810E6D8: .4byte 0x00000ea5
+_0810E6DC:
+ ldr r2, _0810E720 @ =0x00000e58
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0xE6
+ lsls r2, 4
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+_0810E6F2:
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0810E712
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_0810E712:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E720: .4byte 0x00000e58
+ thumb_func_end LotteryCornerComputerEffect
+
+ thumb_func_start EndLotteryCornerComputerEffect
+EndLotteryCornerComputerEffect: @ 810E724
+ push {lr}
+ ldr r2, _0810E744 @ =0x00000e9d
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810E748 @ =0x00000ea5
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E744: .4byte 0x00000e9d
+_0810E748: .4byte 0x00000ea5
+ thumb_func_end EndLotteryCornerComputerEffect
+
+ thumb_func_start SetDepartmentStoreFloorVar
+SetDepartmentStoreFloorVar: @ 810E74C
+ push {lr}
+ ldr r0, _0810E768 @ =gSaveBlock1
+ ldrb r0, [r0, 0x15]
+ subs r0, 0x11
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ bhi _0810E79C
+ lsls r0, 2
+ ldr r1, _0810E76C @ =_0810E770
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810E768: .4byte gSaveBlock1
+_0810E76C: .4byte _0810E770
+ .align 2, 0
+_0810E770:
+ .4byte _0810E79C
+ .4byte _0810E788
+ .4byte _0810E78C
+ .4byte _0810E790
+ .4byte _0810E794
+ .4byte _0810E798
+_0810E788:
+ movs r1, 0x1
+ b _0810E79E
+_0810E78C:
+ movs r1, 0x2
+ b _0810E79E
+_0810E790:
+ movs r1, 0x3
+ b _0810E79E
+_0810E794:
+ movs r1, 0x4
+ b _0810E79E
+_0810E798:
+ movs r1, 0xF
+ b _0810E79E
+_0810E79C:
+ movs r1, 0
+_0810E79E:
+ ldr r0, _0810E7A8 @ =0x00004043
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E7A8: .4byte 0x00004043
+ thumb_func_end SetDepartmentStoreFloorVar
+
+ thumb_func_start ScriptAddElevatorMenuItem
+ScriptAddElevatorMenuItem: @ 810E7AC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r12, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r0, _0810E81C @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ adds r2, r0, 0
+ ldr r3, _0810E820 @ =gUnknown_03000760
+ cmp r1, 0
+ bne _0810E7E8
+ movs r1, 0
+ adds r5, r3, 0
+ movs r4, 0x10
+_0810E7D8:
+ lsls r0, r1, 2
+ adds r0, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bls _0810E7D8
+_0810E7E8:
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ strb r6, [r0]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ strb r7, [r0, 0x1]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strb r1, [r0, 0x2]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r8
+ strb r1, [r0, 0x3]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E81C: .4byte gSpecialVar_0x8004
+_0810E820: .4byte gUnknown_03000760
+ thumb_func_end ScriptAddElevatorMenuItem
+
+ thumb_func_start ScriptShowElevatorMenu
+ScriptShowElevatorMenu: @ 810E824
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810E868 @ =gUnknown_0203925A
+ strb r4, [r5]
+ ldr r0, _0810E86C @ =gUnknown_0203925B
+ strb r4, [r0]
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl ScriptAddElevatorMenuItem
+ ldr r2, _0810E870 @ =gUnknown_03000760
+ ldrb r0, [r2]
+ cmp r0, 0x10
+ beq _0810E85C
+ adds r1, r5, 0
+_0810E846:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810E846
+_0810E85C:
+ bl sub_810E874
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E868: .4byte gUnknown_0203925A
+_0810E86C: .4byte gUnknown_0203925B
+_0810E870: .4byte gUnknown_03000760
+ thumb_func_end ScriptShowElevatorMenu
+
+ thumb_func_start sub_810E874
+sub_810E874: @ 810E874
+ push {r4-r6,lr}
+ sub sp, 0x8
+ bl ScriptContext2_Enable
+ ldr r4, _0810E8B8 @ =gUnknown_0203925A
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bls _0810E8C0
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x5
+ bl InitMenu
+ ldr r0, _0810E8BC @ =gUnknown_0203925C
+ strb r4, [r0]
+ bl sub_80F944C
+ bl LoadScrollIndicatorPalette
+ bl sub_810ECD4
+ b _0810E8E8
+ .align 2, 0
+_0810E8B8: .4byte gUnknown_0203925A
+_0810E8BC: .4byte gUnknown_0203925C
+_0810E8C0:
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl MenuDrawTextWindow
+ ldrb r3, [r4]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl InitMenu
+_0810E8E8:
+ movs r4, 0
+ ldr r1, _0810E938 @ =gUnknown_03000760
+ ldrb r0, [r1]
+ cmp r0, 0x10
+ beq _0810E924
+ ldr r6, _0810E93C @ =gUnknown_083F8380
+ adds r5, r1, 0
+_0810E8F6:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r2, r4, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bhi _0810E924
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810E8F6
+_0810E924:
+ bl sub_810E944
+ ldr r0, _0810E940 @ =sub_810E984
+ movs r1, 0x8
+ bl CreateTask
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E938: .4byte gUnknown_03000760
+_0810E93C: .4byte gUnknown_083F8380
+_0810E940: .4byte sub_810E984
+ thumb_func_end sub_810E874
+
+ thumb_func_start sub_810E944
+sub_810E944: @ 810E944
+ push {lr}
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x5
+ bl MenuDrawTextWindow
+ ldr r0, _0810E978 @ =gOtherText_NowOn
+ movs r1, 0x15
+ movs r2, 0x1
+ movs r3, 0x40
+ bl sub_8072BD8
+ ldr r1, _0810E97C @ =gUnknown_083F8380
+ ldr r0, _0810E980 @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x15
+ movs r2, 0x3
+ movs r3, 0x40
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E978: .4byte gOtherText_NowOn
+_0810E97C: .4byte gUnknown_083F8380
+_0810E980: .4byte gSpecialVar_0x8005
+ thumb_func_end sub_810E944
+
+ thumb_func_start sub_810E984
+sub_810E984: @ 810E984
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0810EA44 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0810E9B8
+ ldr r1, _0810EA48 @ =gUnknown_0203925B
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810E9B8
+ subs r0, 0x1
+ strb r0, [r1]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl sub_810EAC8
+_0810E9B8:
+ ldr r0, _0810EA44 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0810E9E8
+ ldr r2, _0810EA48 @ =gUnknown_0203925B
+ ldrb r1, [r2]
+ ldr r0, _0810EA4C @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0810E9E8
+ adds r0, r1, 0x1
+ strb r0, [r2]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x80
+ bl sub_810EAC8
+_0810E9E8:
+ ldr r0, _0810EA44 @ =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r2
+ cmp r1, 0
+ beq _0810EA94
+ ldr r1, _0810EA50 @ =gUnknown_03000760
+ ldr r4, _0810EA48 @ =gUnknown_0203925B
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x1
+ ldrsb r1, [r0, r1]
+ movs r2, 0x2
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0x2
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ bl saved_warp2_set_2
+ ldr r1, _0810EA54 @ =gSpecialVar_0x8005
+ ldrh r0, [r1]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _0810EA5C
+ ldr r1, _0810EA58 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_810EC9C
+ b _0810EABC
+ .align 2, 0
+_0810EA44: .4byte gMain
+_0810EA48: .4byte gUnknown_0203925B
+_0810EA4C: .4byte gUnknown_0203925A
+_0810EA50: .4byte gUnknown_03000760
+_0810EA54: .4byte gSpecialVar_0x8005
+_0810EA58: .4byte gScriptResult
+_0810EA5C:
+ ldr r0, _0810EA88 @ =gScriptResult
+ strh r5, [r0]
+ ldrb r0, [r4]
+ strh r0, [r1]
+ bl sub_810EBEC
+ ldr r0, _0810EA8C @ =gScriptLastTalked
+ ldrb r0, [r0]
+ ldr r2, _0810EA90 @ =gSaveBlock1
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ movs r3, 0x1
+ bl FieldObjectTurnByLocalIdAndMap
+ bl sub_810EEDC
+ bl MenuZeroFillScreen
+ adds r0, r6, 0
+ bl DestroyTask
+ b _0810EABC
+ .align 2, 0
+_0810EA88: .4byte gScriptResult
+_0810EA8C: .4byte gScriptLastTalked
+_0810EA90: .4byte gSaveBlock1
+_0810EA94:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0810EABC
+ ldr r0, _0810EAC4 @ =gScriptResult
+ strh r1, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_810EC9C
+_0810EABC:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EAC4: .4byte gScriptResult
+ thumb_func_end sub_810E984
+
+ thumb_func_start sub_810EAC8
+sub_810EAC8: @ 810EAC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r1, 0
+ movs r7, 0
+ movs r4, 0
+ ldr r0, _0810EAEC @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810EAF0
+ movs r0, 0
+ b _0810EB78
+ .align 2, 0
+_0810EAEC: .4byte gUnknown_0203925A
+_0810EAF0:
+ cmp r1, 0x40
+ bne _0810EB04
+ cmp r2, 0
+ bne _0810EB18
+ ldr r0, _0810EB00 @ =gUnknown_0203925B
+ ldrb r4, [r0]
+ movs r7, 0x1
+ b _0810EB1C
+ .align 2, 0
+_0810EB00: .4byte gUnknown_0203925B
+_0810EB04:
+ cmp r3, 0x80
+ bne _0810EB18
+ cmp r5, 0x4
+ bne _0810EB18
+ ldr r0, _0810EB84 @ =gUnknown_0203925B
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_0810EB18:
+ cmp r7, 0
+ beq _0810EB76
+_0810EB1C:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_810EB90
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0xA
+ bl MenuFillWindowRectWithBlankTile
+ movs r5, 0
+ ldr r2, _0810EB88 @ =gUnknown_03000760
+ lsls r1, r4, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ beq _0810EB76
+ ldr r0, _0810EB8C @ =gUnknown_083F8380
+ mov r8, r0
+ adds r6, r2, 0
+_0810EB44:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bhi _0810EB76
+ lsls r1, r4, 2
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810EB44
+_0810EB76:
+ adds r0, r7, 0
+_0810EB78:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810EB84: .4byte gUnknown_0203925B
+_0810EB88: .4byte gUnknown_03000760
+_0810EB8C: .4byte gUnknown_083F8380
+ thumb_func_end sub_810EAC8
+
+ thumb_func_start sub_810EB90
+sub_810EB90: @ 810EB90
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0
+ bne _0810EBB4
+ ldr r0, _0810EBB0 @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x2
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+ b _0810EBB8
+ .align 2, 0
+_0810EBB0: .4byte gUnknown_0203925C
+_0810EBB4:
+ bl sub_810ECB0
+_0810EBB8:
+ adds r1, r4, r5
+ ldr r0, _0810EBC8 @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0810EBCC
+ bl sub_810ECD4
+ b _0810EBE0
+ .align 2, 0
+_0810EBC8: .4byte gUnknown_0203925A
+_0810EBCC:
+ cmp r1, r0
+ bne _0810EBE0
+ ldr r0, _0810EBE8 @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+_0810EBE0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EBE8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810EB90
+
+ thumb_func_start sub_810EBEC
+sub_810EBEC: @ 810EBEC
+ push {lr}
+ ldr r0, _0810EC2C @ =sub_810EC34
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810EC30 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ movs r2, 0x1
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r2, [r1, 0x10]
+ movs r0, 0x3
+ strh r0, [r1, 0x12]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ bl sub_810ECFC
+ movs r0, 0x59
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EC2C: .4byte sub_810EC34
+_0810EC30: .4byte gTasks
+ thumb_func_end sub_810EBEC
+
+ thumb_func_start sub_810EC34
+sub_810EC34: @ 810EC34
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0810EC98 @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0810EC92
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810EC92
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ movs r0, 0
+ bl SetCameraPanning
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ bne _0810EC92
+ movs r0, 0x49
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_810EC9C
+ bl InstallCameraPanAheadCallback
+_0810EC92:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EC98: .4byte gTasks
+ thumb_func_end sub_810EC34
+
+ thumb_func_start sub_810EC9C
+sub_810EC9C: @ 810EC9C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810EC9C
+
+ thumb_func_start sub_810ECB0
+sub_810ECB0: @ 810ECB0
+ push {lr}
+ ldr r2, _0810ECD0 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ lsrs r0, r1, 1
+ cmp r0, 0x1
+ beq _0810ECCC
+ movs r0, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ movs r1, 0x24
+ movs r2, 0x8
+ bl CreateVerticalScrollIndicators
+_0810ECCC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ECD0: .4byte gUnknown_0203925C
+ thumb_func_end sub_810ECB0
+
+ thumb_func_start sub_810ECD4
+sub_810ECD4: @ 810ECD4
+ push {lr}
+ ldr r2, _0810ECF8 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810ECF2
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ movs r1, 0x24
+ movs r2, 0x48
+ bl CreateVerticalScrollIndicators
+_0810ECF2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ECF8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810ECD4
+
+ thumb_func_start sub_810ECFC
+sub_810ECFC: @ 810ECFC
+ push {r4,lr}
+ ldr r4, _0810ED38 @ =sub_810ED40
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810ED30
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810ED3C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810ED30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ED38: .4byte sub_810ED40
+_0810ED3C: .4byte gTasks
+ thumb_func_end sub_810ECFC
+
+ thumb_func_start sub_810ED40
+sub_810ED40: @ 810ED40
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0810ED5C @ =gTasks
+ adds r0, r1
+ bl sub_810ED60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ED5C: .4byte gTasks
+ thumb_func_end sub_810ED40
+
+ thumb_func_start sub_810ED60
+sub_810ED60: @ 810ED60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x8
+ beq _0810ED6E
+ b _0810EEB2
+_0810ED6E:
+ movs r0, 0
+ strh r0, [r5, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0810EE14
+ ldr r2, _0810EDFC @ =0x00000e68
+ movs r0, 0x7
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r4, _0810EE00 @ =0x00000e69
+ movs r0, 0x8
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE04 @ =0x00000e6a
+ movs r0, 0xA
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ movs r2, 0xE7
+ lsls r2, 4
+ movs r0, 0x7
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE08 @ =0x00000e72
+ movs r0, 0xA
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE0C @ =0x00000e78
+ movs r0, 0x7
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE10 @ =0x00000e7a
+ movs r0, 0xA
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ b _0810EE92
+ .align 2, 0
+_0810EDFC: .4byte 0x00000e68
+_0810EE00: .4byte 0x00000e69
+_0810EE04: .4byte 0x00000e6a
+_0810EE08: .4byte 0x00000e72
+_0810EE0C: .4byte 0x00000e78
+_0810EE10: .4byte 0x00000e7a
+_0810EE14:
+ ldr r2, _0810EEC0 @ =0x00000e6b
+ movs r0, 0x7
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r4, _0810EEC4 @ =0x00000e6c
+ movs r0, 0x8
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EEC8 @ =0x00000e6d
+ movs r0, 0xA
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EECC @ =0x00000e73
+ movs r0, 0x7
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED0 @ =0x00000e75
+ movs r0, 0xA
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED4 @ =0x00000e7b
+ movs r0, 0x7
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED8 @ =0x00000e7d
+ movs r0, 0xA
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+_0810EE92:
+ bl DrawWholeMapView
+ ldrh r0, [r5, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x10]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _0810EEB2
+ ldrb r0, [r5, 0xA]
+ bl DestroyTask
+_0810EEB2:
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EEC0: .4byte 0x00000e6b
+_0810EEC4: .4byte 0x00000e6c
+_0810EEC8: .4byte 0x00000e6d
+_0810EECC: .4byte 0x00000e73
+_0810EED0: .4byte 0x00000e75
+_0810EED4: .4byte 0x00000e7b
+_0810EED8: .4byte 0x00000e7d
+ thumb_func_end sub_810ED60
+
+ thumb_func_start sub_810EEDC
+sub_810EEDC: @ 810EEDC
+ push {r4,lr}
+ ldr r4, _0810EF08 @ =gUnknown_0203925C
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810EEF0
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+_0810EEF0:
+ ldrb r0, [r4]
+ lsrs r0, 1
+ cmp r0, 0x1
+ bne _0810EEFE
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+_0810EEFE:
+ bl BuyMenuFreeMemory
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF08: .4byte gUnknown_0203925C
+ thumb_func_end sub_810EEDC
+
+ thumb_func_start SetTrickHouseEndRoomFlag
+SetTrickHouseEndRoomFlag: @ 810EF0C
+ push {lr}
+ ldr r1, _0810EF1C @ =gSpecialVar_0x8004
+ ldr r0, _0810EF20 @ =0x00000259
+ strh r0, [r1]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF1C: .4byte gSpecialVar_0x8004
+_0810EF20: .4byte 0x00000259
+ thumb_func_end SetTrickHouseEndRoomFlag
+
+ thumb_func_start ResetTrickHouseEndRoomFlag
+ResetTrickHouseEndRoomFlag: @ 810EF24
+ push {lr}
+ ldr r1, _0810EF34 @ =gSpecialVar_0x8004
+ ldr r0, _0810EF38 @ =0x00000259
+ strh r0, [r1]
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF34: .4byte gSpecialVar_0x8004
+_0810EF38: .4byte 0x00000259
+ thumb_func_end ResetTrickHouseEndRoomFlag
+
+ thumb_func_start CheckLeadMonCool
+CheckLeadMonCool: @ 810EF3C
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EF5C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x16
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EF60
+ movs r0, 0x1
+ b _0810EF62
+ .align 2, 0
+_0810EF5C: .4byte gPlayerParty
+_0810EF60:
+ movs r0, 0
+_0810EF62:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonCool
+
+ thumb_func_start CheckLeadMonBeauty
+CheckLeadMonBeauty: @ 810EF68
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EF88 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x17
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EF8C
+ movs r0, 0x1
+ b _0810EF8E
+ .align 2, 0
+_0810EF88: .4byte gPlayerParty
+_0810EF8C:
+ movs r0, 0
+_0810EF8E:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonBeauty
+
+ thumb_func_start CheckLeadMonCute
+CheckLeadMonCute: @ 810EF94
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EFB4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x18
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EFB8
+ movs r0, 0x1
+ b _0810EFBA
+ .align 2, 0
+_0810EFB4: .4byte gPlayerParty
+_0810EFB8:
+ movs r0, 0
+_0810EFBA:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonCute
+
+ thumb_func_start CheckLeadMonSmart
+CheckLeadMonSmart: @ 810EFC0
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EFE0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x21
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EFE4
+ movs r0, 0x1
+ b _0810EFE6
+ .align 2, 0
+_0810EFE0: .4byte gPlayerParty
+_0810EFE4:
+ movs r0, 0
+_0810EFE6:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonSmart
+
+ thumb_func_start CheckLeadMonTough
+CheckLeadMonTough: @ 810EFEC
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F00C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2F
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810F010
+ movs r0, 0x1
+ b _0810F012
+ .align 2, 0
+_0810F00C: .4byte gPlayerParty
+_0810F010:
+ movs r0, 0
+_0810F012:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonTough
+
+ thumb_func_start IsGrassTypeInParty
+IsGrassTypeInParty: @ 810F018
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _0810F068 @ =gBaseStats
+_0810F01E:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810F06C @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0810F074
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0810F074
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0xC
+ beq _0810F060
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0xC
+ bne _0810F074
+_0810F060:
+ ldr r1, _0810F070 @ =gScriptResult
+ movs r0, 0x1
+ b _0810F082
+ .align 2, 0
+_0810F068: .4byte gBaseStats
+_0810F06C: .4byte gPlayerParty
+_0810F070: .4byte gScriptResult
+_0810F074:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0810F01E
+ ldr r1, _0810F08C @ =gScriptResult
+ movs r0, 0
+_0810F082:
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F08C: .4byte gScriptResult
+ thumb_func_end IsGrassTypeInParty
+
+ thumb_func_start ShowGlassWorkshopMenu
+ShowGlassWorkshopMenu: @ 810F090
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl ScriptContext2_Enable
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x5
+ bl InitMenu
+ ldr r0, _0810F104 @ =gUnknown_0203925C
+ strb r4, [r0]
+ bl sub_80F944C
+ bl LoadScrollIndicatorPalette
+ bl sub_810F2B4
+ ldr r5, _0810F108 @ =gUnknown_083F83C0
+_0810F0CA:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r2, r4, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0810F0CA
+ ldr r1, _0810F10C @ =gUnknown_0203925B
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0810F110 @ =gUnknown_0203925A
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _0810F114 @ =sub_810F118
+ movs r1, 0x8
+ bl CreateTask
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F104: .4byte gUnknown_0203925C
+_0810F108: .4byte gUnknown_083F83C0
+_0810F10C: .4byte gUnknown_0203925B
+_0810F110: .4byte gUnknown_0203925A
+_0810F114: .4byte sub_810F118
+ thumb_func_end ShowGlassWorkshopMenu
+
+ thumb_func_start sub_810F118
+sub_810F118: @ 810F118
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810F1E4 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0810F14A
+ ldr r1, _0810F1E8 @ =gUnknown_0203925B
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810F14A
+ subs r0, 0x1
+ strb r0, [r1]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl sub_810F1F4
+_0810F14A:
+ ldr r0, _0810F1E4 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0810F17A
+ ldr r2, _0810F1E8 @ =gUnknown_0203925B
+ ldrb r1, [r2]
+ ldr r0, _0810F1EC @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0810F17A
+ adds r0, r1, 0x1
+ strb r0, [r2]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x80
+ bl sub_810F1F4
+_0810F17A:
+ ldr r4, _0810F1E4 @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F1AE
+ bl sub_8072DEC
+ ldr r0, _0810F1F0 @ =gScriptResult
+ ldr r1, _0810F1E8 @ =gUnknown_0203925B
+ ldrb r1, [r1]
+ strh r1, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_810EC9C
+_0810F1AE:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F1DE
+ bl sub_8072DEC
+ ldr r1, _0810F1F0 @ =gScriptResult
+ movs r0, 0x7F
+ strh r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_810EC9C
+_0810F1DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F1E4: .4byte gMain
+_0810F1E8: .4byte gUnknown_0203925B
+_0810F1EC: .4byte gUnknown_0203925A
+_0810F1F0: .4byte gScriptResult
+ thumb_func_end sub_810F118
+
+ thumb_func_start sub_810F1F4
+sub_810F1F4: @ 810F1F4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r1, 0
+ movs r6, 0
+ movs r4, 0
+ ldr r0, _0810F214 @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810F218
+ movs r0, 0
+ b _0810F282
+ .align 2, 0
+_0810F214: .4byte gUnknown_0203925A
+_0810F218:
+ cmp r1, 0x40
+ bne _0810F22C
+ cmp r2, 0
+ bne _0810F240
+ ldr r0, _0810F228 @ =gUnknown_0203925B
+ ldrb r4, [r0]
+ movs r6, 0x1
+ b _0810F244
+ .align 2, 0
+_0810F228: .4byte gUnknown_0203925B
+_0810F22C:
+ cmp r3, 0x80
+ bne _0810F240
+ cmp r5, 0x4
+ bne _0810F240
+ ldr r0, _0810F288 @ =gUnknown_0203925B
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r6, 0x1
+_0810F240:
+ cmp r6, 0
+ beq _0810F280
+_0810F244:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GlassWorkshopUpdateScrollIndicators
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x9
+ movs r3, 0xA
+ bl MenuFillWindowRectWithBlankTile
+ movs r5, 0
+ ldr r7, _0810F28C @ =gUnknown_083F83C0
+_0810F25C:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r0, [r0]
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0810F25C
+_0810F280:
+ adds r0, r6, 0
+_0810F282:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F288: .4byte gUnknown_0203925B
+_0810F28C: .4byte gUnknown_083F83C0
+ thumb_func_end sub_810F1F4
+
+ thumb_func_start sub_810F290
+sub_810F290: @ 810F290
+ push {lr}
+ ldr r2, _0810F2B0 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ lsrs r0, r1, 1
+ cmp r0, 0x1
+ beq _0810F2AC
+ movs r0, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ movs r1, 0x2C
+ movs r2, 0x8
+ bl CreateVerticalScrollIndicators
+_0810F2AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F2B0: .4byte gUnknown_0203925C
+ thumb_func_end sub_810F290
+
+ thumb_func_start sub_810F2B4
+sub_810F2B4: @ 810F2B4
+ push {lr}
+ ldr r2, _0810F2D8 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810F2D2
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ movs r1, 0x2C
+ movs r2, 0x58
+ bl CreateVerticalScrollIndicators
+_0810F2D2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F2D8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810F2B4
+
+ thumb_func_start GlassWorkshopUpdateScrollIndicators
+GlassWorkshopUpdateScrollIndicators: @ 810F2DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0
+ bne _0810F300
+ ldr r0, _0810F2FC @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x2
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+ b _0810F304
+ .align 2, 0
+_0810F2FC: .4byte gUnknown_0203925C
+_0810F300:
+ bl sub_810F290
+_0810F304:
+ adds r1, r4, r5
+ ldr r0, _0810F314 @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0810F318
+ bl sub_810F2B4
+ b _0810F32C
+ .align 2, 0
+_0810F314: .4byte gUnknown_0203925A
+_0810F318:
+ cmp r1, r0
+ bne _0810F32C
+ ldr r0, _0810F334 @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+_0810F32C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F334: .4byte gUnknown_0203925C
+ thumb_func_end GlassWorkshopUpdateScrollIndicators
+
+ thumb_func_start SpawnCameraDummy
+SpawnCameraDummy: @ 810F338
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0810F380 @ =gSaveBlock1
+ ldrh r3, [r0]
+ adds r3, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0x7F
+ bl SpawnSpecialFieldObjectParametrized
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810F384 @ =gMapObjects
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r1, 0x4]
+ bl CameraObjectSetFollowedObjectId
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F380: .4byte gSaveBlock1
+_0810F384: .4byte gMapObjects
+ thumb_func_end SpawnCameraDummy
+
+ thumb_func_start RemoveCameraDummy
+RemoveCameraDummy: @ 810F388
+ push {lr}
+ bl GetPlayerAvatarObjectId
+ lsls r0, 24
+ lsrs r0, 24
+ bl CameraObjectSetFollowedObjectId
+ ldr r0, _0810F3A8 @ =gSaveBlock1
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x7F
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F3A8: .4byte gSaveBlock1
+ thumb_func_end RemoveCameraDummy
+
+ thumb_func_start GetPokeblockNameByMonNature
+GetPokeblockNameByMonNature: @ 810F3AC
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F3D4 @ =gPlayerParty
+ adds r0, r1
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810F3D8 @ =gStringVar1
+ bl sub_810CB68
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F3D4: .4byte gPlayerParty
+_0810F3D8: .4byte gStringVar1
+ thumb_func_end GetPokeblockNameByMonNature
+
+ thumb_func_start GetSecretBaseNearbyMapName
+GetSecretBaseNearbyMapName: @ 810F3DC
+ push {r4,lr}
+ ldr r4, _0810F3FC @ =gStringVar1
+ ldr r0, _0810F400 @ =0x00004026
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80FBFB4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F3FC: .4byte gStringVar1
+_0810F400: .4byte 0x00004026
+ thumb_func_end GetSecretBaseNearbyMapName
+
+ thumb_func_start sub_810F404
+sub_810F404: @ 810F404
+ push {lr}
+ movs r0, 0x20
+ bl GetGameStat
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F404
+
+ thumb_func_start sub_810F414
+sub_810F414: @ 810F414
+ push {lr}
+ ldr r0, _0810F420 @ =gStringVar1
+ bl sub_8135FF4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F420: .4byte gStringVar1
+ thumb_func_end sub_810F414
+
+ thumb_func_start sub_810F424
+sub_810F424: @ 810F424
+ push {r4,r5,lr}
+ ldr r2, _0810F458 @ =gSaveBlock1
+ ldr r1, _0810F45C @ =0x00002dd4
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 25
+ ldr r0, _0810F460 @ =0x00002dd6
+ adds r2, r0
+ lsrs r1, 25
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _0810F464 @ =gUnknown_083F83E0
+ ldr r0, _0810F468 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r5, r1, r0
+ movs r0, 0x2
+ bl GetPriceReduction
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F470
+ ldr r4, _0810F46C @ =gUnknown_083F83EC
+ b _0810F472
+ .align 2, 0
+_0810F458: .4byte gSaveBlock1
+_0810F45C: .4byte 0x00002dd4
+_0810F460: .4byte 0x00002dd6
+_0810F464: .4byte gUnknown_083F83E0
+_0810F468: .4byte gSpecialVar_0x8004
+_0810F46C: .4byte gUnknown_083F83EC
+_0810F470:
+ ldr r4, _0810F484 @ =gUnknown_083F83F8
+_0810F472:
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F484: .4byte gUnknown_083F83F8
+ thumb_func_end sub_810F424
+
+ thumb_func_start sub_810F488
+sub_810F488: @ 810F488
+ push {lr}
+ ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
+ ldr r0, _0810F4A4 @ =0x00000277
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4A8
+ movs r0, 0x1
+ b _0810F4AA
+ .align 2, 0
+_0810F4A0: .4byte gSpecialVar_0x8004
+_0810F4A4: .4byte 0x00000277
+_0810F4A8:
+ movs r0, 0
+_0810F4AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F488
+
+ thumb_func_start sub_810F4B0
+sub_810F4B0: @ 810F4B0
+ push {lr}
+ ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
+ movs r0, 0x9E
+ lsls r0, 2
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4CC
+ movs r0, 0x1
+ b _0810F4CE
+ .align 2, 0
+_0810F4C8: .4byte gSpecialVar_0x8004
+_0810F4CC:
+ movs r0, 0
+_0810F4CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4B0
+
+ thumb_func_start sub_810F4D4
+sub_810F4D4: @ 810F4D4
+ push {lr}
+ ldr r1, _0810F4EC @ =gSpecialVar_0x8004
+ ldr r0, _0810F4F0 @ =0x00000279
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4F4
+ movs r0, 0x1
+ b _0810F4F6
+ .align 2, 0
+_0810F4EC: .4byte gSpecialVar_0x8004
+_0810F4F0: .4byte 0x00000279
+_0810F4F4:
+ movs r0, 0
+_0810F4F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4D4
+
+ thumb_func_start sub_810F4FC
+sub_810F4FC: @ 810F4FC
+ push {lr}
+ ldr r1, _0810F514 @ =gSpecialVar_0x8004
+ ldr r0, _0810F518 @ =0x0000027a
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F51C
+ movs r0, 0x1
+ b _0810F51E
+ .align 2, 0
+_0810F514: .4byte gSpecialVar_0x8004
+_0810F518: .4byte 0x0000027a
+_0810F51C:
+ movs r0, 0
+_0810F51E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4FC
+
+ thumb_func_start LeadMonHasEffortRibbon
+LeadMonHasEffortRibbon: @ 810F524
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F548 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x47
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F548: .4byte gPlayerParty
+ thumb_func_end LeadMonHasEffortRibbon
+
+ thumb_func_start GivLeadMonEffortRibbon
+GivLeadMonEffortRibbon: @ 810F54C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x2A
+ bl IncrementGameStat
+ ldr r0, _0810F580 @ =0x0000083b
+ bl FlagSet
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F584 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x47
+ mov r2, sp
+ bl SetMonData
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F580: .4byte 0x0000083b
+_0810F584: .4byte gPlayerParty
+ thumb_func_end GivLeadMonEffortRibbon
+
+ thumb_func_start GetLeadMonEVCount
+GetLeadMonEVCount: @ 810F588
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F5AC @ =gPlayerParty
+ adds r0, r1
+ bl GetMonEVCount
+ lsls r0, 16
+ ldr r1, _0810F5B0 @ =0x01fd0000
+ cmp r0, r1
+ bhi _0810F5B4
+ movs r0, 0
+ b _0810F5B6
+ .align 2, 0
+_0810F5AC: .4byte gPlayerParty
+_0810F5B0: .4byte 0x01fd0000
+_0810F5B4:
+ movs r0, 0x1
+_0810F5B6:
+ pop {r1}
+ bx r1
+ thumb_func_end GetLeadMonEVCount
+
+ thumb_func_start sub_810F5BC
+sub_810F5BC: @ 810F5BC
+ push {lr}
+ movs r0, 0xC7
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F610
+ ldr r0, _0810F5E8 @ =gSaveBlock1
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x83
+ lsls r0, 3
+ cmp r1, r0
+ bne _0810F610
+ subs r0, 0x75
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F5F0
+ ldr r0, _0810F5EC @ =0x0000409a
+ movs r1, 0x4
+ b _0810F602
+ .align 2, 0
+_0810F5E8: .4byte gSaveBlock1
+_0810F5EC: .4byte 0x0000409a
+_0810F5F0:
+ movs r0, 0xE9
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F610
+ ldr r0, _0810F60C @ =0x0000409a
+ movs r1, 0x5
+_0810F602:
+ bl VarSet
+ movs r0, 0x1
+ b _0810F612
+ .align 2, 0
+_0810F60C: .4byte 0x0000409a
+_0810F610:
+ movs r0, 0
+_0810F612:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F5BC
+
+ thumb_func_start sub_810F618
+sub_810F618: @ 810F618
+ push {lr}
+ ldr r0, _0810F624 @ =0x0000085f
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F624: .4byte 0x0000085f
+ thumb_func_end sub_810F618
+
+ thumb_func_start PutZigzagoonInPlayerParty
+PutZigzagoonInPlayerParty: @ 810F628
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r5, _0810F690 @ =gPlayerParty
+ movs r1, 0x90
+ lsls r1, 1
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r2, 0x7
+ movs r3, 0x20
+ bl CreateMon
+ movs r1, 0x1
+ add r0, sp, 0x10
+ strh r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x2E
+ add r2, sp, 0x10
+ bl SetMonData
+ add r1, sp, 0x10
+ movs r0, 0x21
+ strh r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0xD
+ add r2, sp, 0x10
+ bl SetMonData
+ add r0, sp, 0x10
+ strh r4, [r0]
+ adds r0, r5, 0
+ movs r1, 0xE
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xF
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x10
+ add r2, sp, 0x10
+ bl SetMonData
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F690: .4byte gPlayerParty
+ thumb_func_end PutZigzagoonInPlayerParty
+
+ thumb_func_start IsStarterInParty
+IsStarterInParty: @ 810F694
+ push {r4-r6,lr}
+ ldr r0, _0810F6D0 @ =0x00004023
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetStarterPokemon
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810F6E2
+_0810F6B6:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0810F6D4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, r6
+ bne _0810F6D8
+ movs r0, 0x1
+ b _0810F6E4
+ .align 2, 0
+_0810F6D0: .4byte 0x00004023
+_0810F6D4: .4byte gPlayerParty
+_0810F6D8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810F6B6
+_0810F6E2:
+ movs r0, 0
+_0810F6E4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end IsStarterInParty
+
+ thumb_func_start CheckFreePokemonStorageSpace
+CheckFreePokemonStorageSpace: @ 810F6EC
+ push {r4-r6,lr}
+ movs r5, 0
+_0810F6F0:
+ movs r4, 0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_0810F6FC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _0810F718 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r0, r6, r0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _0810F71C
+ movs r0, 0x1
+ b _0810F732
+ .align 2, 0
+_0810F718: .4byte gPokemonStorage + 0x4
+_0810F71C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _0810F6FC
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _0810F6F0
+ movs r0, 0
+_0810F732:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckFreePokemonStorageSpace
+
+ thumb_func_start IsPokerusInParty
+IsPokerusInParty: @ 810F738
+ push {lr}
+ ldr r0, _0810F74C @ =gPlayerParty
+ movs r1, 0x3F
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F750
+ movs r0, 0x1
+ b _0810F752
+ .align 2, 0
+_0810F74C: .4byte gPlayerParty
+_0810F750:
+ movs r0, 0
+_0810F752:
+ pop {r1}
+ bx r1
+ thumb_func_end IsPokerusInParty
+
+ thumb_func_start sub_810F758
+sub_810F758: @ 810F758
+ push {lr}
+ ldr r0, _0810F798 @ =sub_810F7A8
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810F79C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
+ ldrh r2, [r0]
+ movs r0, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0xD6
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F798: .4byte sub_810F7A8
+_0810F79C: .4byte gTasks
+_0810F7A0: .4byte gSpecialVar_0x8005
+_0810F7A4: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810F758
+
+ thumb_func_start sub_810F7A8
+sub_810F7A8: @ 810F7A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0810F810 @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0810F808
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810F808
+ ldrh r0, [r4, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ bl SetCameraPanning
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _0810F808
+ adds r0, r5, 0
+ bl sub_810F814
+ bl InstallCameraPanAheadCallback
+_0810F808:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F810: .4byte gTasks
+ thumb_func_end sub_810F7A8
+
+ thumb_func_start sub_810F814
+sub_810F814: @ 810F814
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F814
+
+ thumb_func_start sub_810F828
+sub_810F828: @ 810F828
+ push {lr}
+ movs r0, 0xAE
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F828
+
+ thumb_func_start SetRoute119Weather
+SetRoute119Weather: @ 810F83C
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810F858
+ movs r0, 0x14
+ bl SetSav1Weather
+_0810F858:
+ pop {r0}
+ bx r0
+ thumb_func_end SetRoute119Weather
+
+ thumb_func_start SetRoute123Weather
+SetRoute123Weather: @ 810F85C
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810F878
+ movs r0, 0x15
+ bl SetSav1Weather
+_0810F878:
+ pop {r0}
+ bx r0
+ thumb_func_end SetRoute123Weather
+
+ thumb_func_start GetLeadMonIndex
+GetLeadMonIndex: @ 810F87C
+ push {r4-r6,lr}
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ cmp r5, r6
+ bcs _0810F8CA
+_0810F88C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810F8BC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0810F8C0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0810F8C0
+ adds r0, r5, 0
+ b _0810F8CC
+ .align 2, 0
+_0810F8BC: .4byte gPlayerParty
+_0810F8C0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _0810F88C
+_0810F8CA:
+ movs r0, 0
+_0810F8CC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end GetLeadMonIndex
+
+ thumb_func_start ScriptGetPartyMonSpecies
+ScriptGetPartyMonSpecies: @ 810F8D4
+ push {lr}
+ ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0810F8F8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F8F4: .4byte gSpecialVar_0x8004
+_0810F8F8: .4byte gPlayerParty
+ thumb_func_end ScriptGetPartyMonSpecies
+
+ thumb_func_start sub_810F8FC
+sub_810F8FC: @ 810F8FC
+ push {lr}
+ movs r0, 0x6
+ bl sub_805ADDC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F8FC
+
+ thumb_func_start sub_810F908
+sub_810F908: @ 810F908
+ push {r4,lr}
+ ldr r0, _0810F928 @ =0x000040c2
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r0, 0
+ ldr r2, _0810F92C @ =gLocalTime
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, r3
+ cmp r0, 0x6
+ ble _0810F930
+ movs r0, 0
+ b _0810F948
+ .align 2, 0
+_0810F928: .4byte 0x000040c2
+_0810F92C: .4byte gLocalTime
+_0810F930:
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ blt _0810F946
+ subs r1, r3
+ movs r0, 0x7
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ b _0810F948
+_0810F946:
+ movs r0, 0x8
+_0810F948:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F908
+
+ thumb_func_start sub_810F950
+sub_810F950: @ 810F950
+ push {r4,lr}
+ ldr r0, _0810F964 @ =0x000040c2
+ ldr r4, _0810F968 @ =gLocalTime
+ ldrh r1, [r4]
+ bl VarSet
+ ldrh r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F964: .4byte 0x000040c2
+_0810F968: .4byte gLocalTime
+ thumb_func_end sub_810F950
+
+ thumb_func_start sub_810F96C
+sub_810F96C: @ 810F96C
+ push {r4,lr}
+ ldr r0, _0810F994 @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0810F998 @ =gPlayerParty
+ adds r0, r1
+ ldr r4, _0810F99C @ =gStringVar1
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, _0810F9A0 @ =gSaveBlock2
+ adds r1, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _0810F9A4
+ movs r0, 0x1
+ b _0810F9A6
+ .align 2, 0
+_0810F994: .4byte gSpecialVar_0x8004
+_0810F998: .4byte gPlayerParty
+_0810F99C: .4byte gStringVar1
+_0810F9A0: .4byte gSaveBlock2
+_0810F9A4:
+ movs r0, 0
+_0810F9A6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F96C
+
+ thumb_func_start sub_810F9AC
+sub_810F9AC: @ 810F9AC
+ push {r4,r5,lr}
+ ldr r2, _0810F9C0 @ =gScriptResult
+ ldrh r1, [r2]
+ ldr r0, _0810F9C4 @ =0x0000270f
+ cmp r1, r0
+ bls _0810F9C8
+ movs r0, 0
+ bl sub_80BF088
+ b _0810FA4A
+ .align 2, 0
+_0810F9C0: .4byte gScriptResult
+_0810F9C4: .4byte 0x0000270f
+_0810F9C8:
+ ldr r0, _0810F9D8 @ =0x000003e7
+ cmp r1, r0
+ bls _0810F9E0
+ ldr r4, _0810F9DC @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ adds r4, 0x1
+ b _0810FA04
+ .align 2, 0
+_0810F9D8: .4byte 0x000003e7
+_0810F9DC: .4byte gStringVar1
+_0810F9E0:
+ cmp r1, 0x63
+ bls _0810F9F4
+ ldr r4, _0810F9F0 @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r4, 0x2
+ b _0810FA04
+ .align 2, 0
+_0810F9F0: .4byte gStringVar1
+_0810F9F4:
+ cmp r1, 0x9
+ bls _0810FA24
+ ldr r4, _0810FA20 @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_0810FA04:
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ b _0810FA4A
+ .align 2, 0
+_0810FA20: .4byte gStringVar1
+_0810FA24:
+ ldr r4, _0810FA50 @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ adds r4, 0x4
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+_0810FA4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FA50: .4byte gStringVar1
+ thumb_func_end sub_810F9AC
+
+ thumb_func_start sub_810FA54
+sub_810FA54: @ 810FA54
+ ldr r0, _0810FA68 @ =gSaveBlock1
+ ldr r2, _0810FA6C @ =0x000013c2
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _0810FA70 @ =0x000013c4
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_0810FA68: .4byte gSaveBlock1
+_0810FA6C: .4byte 0x000013c2
+_0810FA70: .4byte 0x000013c4
+ thumb_func_end sub_810FA54
+
+ thumb_func_start sub_810FA74
+sub_810FA74: @ 810FA74
+ push {lr}
+ bl sub_810FF30
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810FA90
+ bl sub_810FCE8
+ ldr r0, _0810FA94 @ =gSaveBlock1
+ ldr r1, _0810FA98 @ =gSaveBlock2
+ ldrh r1, [r1, 0xE]
+ ldr r2, _0810FA9C @ =0x000013c4
+ adds r0, r2
+ strh r1, [r0]
+_0810FA90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FA94: .4byte gSaveBlock1
+_0810FA98: .4byte gSaveBlock2
+_0810FA9C: .4byte 0x000013c4
+ thumb_func_end sub_810FA74
+
+ thumb_func_start sub_810FAA0
+sub_810FAA0: @ 810FAA0
+ push {r4,lr}
+ ldr r4, _0810FAF0 @ =gSaveBlock1
+ ldr r1, _0810FAF4 @ =0x000013c2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810FAE8
+ bl sub_810FF48
+ bl sub_810FD80
+ ldr r0, _0810FAF8 @ =gSaveBlock2
+ ldrh r1, [r0, 0xE]
+ ldr r2, _0810FAFC @ =0x000013c4
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _0810FB00 @ =0x00000315
+ bl FlagReset
+ ldr r0, _0810FB04 @ =0x00000316
+ bl FlagReset
+ ldr r0, _0810FB08 @ =0x00000317
+ bl FlagReset
+ movs r0, 0xC6
+ lsls r0, 2
+ bl FlagReset
+ ldr r0, _0810FB0C @ =0x00004095
+ movs r1, 0x1
+ bl VarSet
+_0810FAE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FAF0: .4byte gSaveBlock1
+_0810FAF4: .4byte 0x000013c2
+_0810FAF8: .4byte gSaveBlock2
+_0810FAFC: .4byte 0x000013c4
+_0810FB00: .4byte 0x00000315
+_0810FB04: .4byte 0x00000316
+_0810FB08: .4byte 0x00000317
+_0810FB0C: .4byte 0x00004095
+ thumb_func_end sub_810FAA0
+
+ thumb_func_start sub_810FB10
+sub_810FB10: @ 810FB10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810FB54 @ =0x00004095
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0810FB80
+ ldr r0, _0810FB58 @ =gSaveBlock1
+ ldr r1, _0810FB5C @ =0x000013c2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ movs r1, 0x7F
+ ands r1, r2
+ ldr r0, _0810FB60 @ =gUnknown_083F8404
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x13
+ ble _0810FB7C
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bhi _0810FB68
+ bl sub_810FB9C
+ ldrh r1, [r4]
+ ldr r0, _0810FB64 @ =0x0000ff80
+ ands r0, r1
+ b _0810FB7E
+ .align 2, 0
+_0810FB54: .4byte 0x00004095
+_0810FB58: .4byte gSaveBlock1
+_0810FB5C: .4byte 0x000013c2
+_0810FB60: .4byte gUnknown_083F8404
+_0810FB64: .4byte 0x0000ff80
+_0810FB68:
+ ldrh r0, [r4]
+ ldr r1, _0810FB78 @ =0x0000ff80
+ ands r1, r0
+ movs r0, 0x14
+ orrs r1, r0
+ strh r1, [r4]
+ b _0810FB80
+ .align 2, 0
+_0810FB78: .4byte 0x0000ff80
+_0810FB7C:
+ adds r0, r2, r0
+_0810FB7E:
+ strh r0, [r4]
+_0810FB80:
+ ldr r0, _0810FB94 @ =gSaveBlock1
+ ldr r1, _0810FB98 @ =0x000013c2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x7F
+ ands r0, r1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FB94: .4byte gSaveBlock1
+_0810FB98: .4byte 0x000013c2
+ thumb_func_end sub_810FB10
+
+ thumb_func_start sub_810FB9C
+sub_810FB9C: @ 810FB9C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r3, 0
+ movs r5, 0
+ ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
+ movs r6, 0x1
+_0810FBA8:
+ ldrh r1, [r7]
+ ldr r0, _0810FBDC @ =gUnknown_083F8408
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ asrs r1, r4
+ ands r1, r6
+ cmp r1, 0
+ bne _0810FBE0
+ adds r3, r5, 0
+ str r3, [sp]
+ bl Random
+ adds r1, r6, 0
+ ands r1, r0
+ ldr r3, [sp]
+ cmp r1, 0
+ beq _0810FBE0
+ adds r0, r6, 0
+ lsls r0, r4
+ ldrh r1, [r7]
+ orrs r0, r1
+ strh r0, [r7]
+ b _0810FC00
+ .align 2, 0
+_0810FBD8: .4byte gSaveBlock1 + 0x13C2
+_0810FBDC: .4byte gUnknown_083F8408
+_0810FBE0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0810FBA8
+ ldr r2, _0810FC0C @ =gSaveBlock1
+ ldr r0, _0810FC10 @ =0x000013c2
+ adds r2, r0
+ ldr r1, _0810FC14 @ =gUnknown_083F8408
+ adds r1, r3, r1
+ movs r0, 0x1
+ ldrb r1, [r1]
+ lsls r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+_0810FC00:
+ adds r0, r3, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FC0C: .4byte gSaveBlock1
+_0810FC10: .4byte 0x000013c2
+_0810FC14: .4byte gUnknown_083F8408
+ thumb_func_end sub_810FB9C
+
+ thumb_func_start sub_810FC18
+sub_810FC18: @ 810FC18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r8, r0
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0810FC3E
+ movs r0, 0
+ b _0810FC94
+_0810FC34:
+ lsls r4, r6
+ ldrh r0, [r2]
+ eors r4, r0
+ strh r4, [r2]
+ b _0810FC92
+_0810FC3E:
+ movs r5, 0
+ ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
+ movs r4, 0x1
+_0810FC44:
+ ldrh r1, [r2]
+ ldr r7, _0810FCA4 @ =gUnknown_083F8410
+ adds r0, r5, r7
+ ldrb r6, [r0]
+ asrs r1, r6
+ ands r1, r4
+ cmp r1, 0
+ beq _0810FC66
+ mov r8, r5
+ str r2, [sp]
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r2, [sp]
+ cmp r1, 0
+ bne _0810FC34
+_0810FC66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0810FC44
+ ldr r0, _0810FCA8 @ =gSaveBlock1
+ ldr r1, _0810FCAC @ =0x000013c2
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ mov r2, r8
+ adds r0, r2, r7
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ asrs r0, r2
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0810FC92
+ adds r0, r3, 0
+ lsls r0, r2
+ eors r1, r0
+ strh r1, [r4]
+_0810FC92:
+ mov r0, r8
+_0810FC94:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FCA0: .4byte gSaveBlock1 + 0x13C2
+_0810FCA4: .4byte gUnknown_083F8410
+_0810FCA8: .4byte gSaveBlock1
+_0810FCAC: .4byte 0x000013c2
+ thumb_func_end sub_810FC18
+
+ thumb_func_start sub_810FCB0
+sub_810FCB0: @ 810FCB0
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
+ ldrh r4, [r0]
+ movs r5, 0x1
+_0810FCBC:
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ asrs r0, r1
+ ands r0, r5
+ cmp r0, 0
+ beq _0810FCD0
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0810FCD0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _0810FCBC
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FCE4: .4byte gSaveBlock1 + 0x13C2
+ thumb_func_end sub_810FCB0
+
+ thumb_func_start sub_810FCE8
+sub_810FCE8: @ 810FCE8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r2, _0810FD08 @ =gSaveBlock2
+ ldrh r1, [r2, 0xE]
+ ldr r0, _0810FD0C @ =0x000003e6
+ cmp r1, r0
+ bhi _0810FD54
+ ldr r7, _0810FD10 @ =gSaveBlock1
+ adds r6, r2, 0
+ ldr r0, _0810FD14 @ =0x000013c4
+ adds r0, r7
+ mov r8, r0
+ b _0810FD36
+ .align 2, 0
+_0810FD08: .4byte gSaveBlock2
+_0810FD0C: .4byte 0x000003e6
+_0810FD10: .4byte gSaveBlock1
+_0810FD14: .4byte 0x000013c4
+_0810FD18:
+ ldrh r1, [r6, 0xE]
+ ldr r0, _0810FD4C @ =0x000013c4
+ adds r4, r7, r0
+ ldrh r0, [r4]
+ subs r1, r0
+ cmp r1, 0xB
+ ble _0810FD54
+ bl sub_810FC18
+ ldrh r0, [r4]
+ adds r0, 0xC
+ strh r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0810FD36:
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _0810FD50
+ ldrh r0, [r6, 0xE]
+ mov r1, r8
+ strh r0, [r1]
+ b _0810FD54
+ .align 2, 0
+_0810FD4C: .4byte 0x000013c4
+_0810FD50:
+ cmp r5, 0x8
+ bne _0810FD18
+_0810FD54:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FCE8
+
+ thumb_func_start sub_810FD60
+sub_810FD60: @ 810FD60
+ ldr r0, _0810FD74 @ =gSaveBlock1
+ ldr r1, _0810FD78 @ =0x000013c2
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, _0810FD7C @ =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0810FD74: .4byte gSaveBlock1
+_0810FD78: .4byte 0x000013c2
+_0810FD7C: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810FD60
+
+ thumb_func_start sub_810FD80
+sub_810FD80: @ 810FD80
+ ldr r2, _0810FDA4 @ =gSaveBlock1
+ ldr r0, _0810FDA8 @ =0x000013c2
+ adds r2, r0
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r0, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0810FDA4: .4byte gSaveBlock1
+_0810FDA8: .4byte 0x000013c2
+ thumb_func_end sub_810FD80
+
+ thumb_func_start sub_810FDAC
+sub_810FDAC: @ 810FDAC
+ push {lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ subs r0, 0x8
+ cmp r0, 0x7
+ bhi _0810FE0C
+ lsls r0, 2
+ ldr r1, _0810FDCC @ =_0810FDD0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810FDC8: .4byte gSpecialVar_0x8004
+_0810FDCC: .4byte _0810FDD0
+ .align 2, 0
+_0810FDD0:
+ .4byte _0810FE0C
+ .4byte _0810FE0C
+ .4byte _0810FDF0
+ .4byte _0810FDF6
+ .4byte _0810FDFC
+ .4byte _0810FE02
+ .4byte _0810FE08
+ .4byte _0810FE0C
+_0810FDF0:
+ movs r3, 0
+ movs r2, 0x3
+ b _0810FE0C
+_0810FDF6:
+ movs r3, 0
+ movs r2, 0x1
+ b _0810FE0C
+_0810FDFC:
+ movs r3, 0x1
+ movs r2, 0
+ b _0810FE0C
+_0810FE02:
+ movs r3, 0
+ movs r2, 0x4
+ b _0810FE0C
+_0810FE08:
+ movs r3, 0x1
+ movs r2, 0x5
+_0810FE0C:
+ ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
+ adds r1, r3, 0
+ bl sub_810FE1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FE18: .4byte gSaveBlock1 + 0x30B8
+ thumb_func_end sub_810FDAC
+
+ thumb_func_start sub_810FE1C
+sub_810FE1C: @ 810FE1C
+ push {r4,lr}
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsrs r1, 20
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0810FED0
+ cmp r2, 0x5
+ bhi _0810FEBC
+ lsls r0, r2, 2
+ ldr r1, _0810FE3C @ =_0810FE40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810FE3C: .4byte _0810FE40
+ .align 2, 0
+_0810FE40:
+ .4byte _0810FEBC
+ .4byte _0810FE58
+ .4byte _0810FE6C
+ .4byte _0810FE80
+ .4byte _0810FE94
+ .4byte _0810FEA8
+_0810FE58:
+ ldr r0, _0810FE64 @ =gStringVar1
+ ldr r1, _0810FE68 @ =gOtherText_Steven
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE64: .4byte gStringVar1
+_0810FE68: .4byte gOtherText_Steven
+_0810FE6C:
+ ldr r0, _0810FE78 @ =gStringVar1
+ ldr r1, _0810FE7C @ =gOtherText_Brawly
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE78: .4byte gStringVar1
+_0810FE7C: .4byte gOtherText_Brawly
+_0810FE80:
+ ldr r0, _0810FE8C @ =gStringVar1
+ ldr r1, _0810FE90 @ =gOtherText_Winona
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE8C: .4byte gStringVar1
+_0810FE90: .4byte gOtherText_Winona
+_0810FE94:
+ ldr r0, _0810FEA0 @ =gStringVar1
+ ldr r1, _0810FEA4 @ =gOtherText_Phoebe
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEA0: .4byte gStringVar1
+_0810FEA4: .4byte gOtherText_Phoebe
+_0810FEA8:
+ ldr r0, _0810FEB4 @ =gStringVar1
+ ldr r1, _0810FEB8 @ =gOtherText_Glacia
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEB4: .4byte gStringVar1
+_0810FEB8: .4byte gOtherText_Glacia
+_0810FEBC:
+ ldr r0, _0810FEC8 @ =gStringVar1
+ ldr r1, _0810FECC @ =gOtherText_Wallace
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEC8: .4byte gStringVar1
+_0810FECC: .4byte gOtherText_Wallace
+_0810FED0:
+ ldr r4, _0810FEF8 @ =gStringVar1
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl StringCopyN
+ movs r0, 0xFF
+ strb r0, [r4, 0x7]
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _0810FEF2
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _0810FEF2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_0810FEF2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FEF8: .4byte gStringVar1
+ thumb_func_end sub_810FE1C
+
+ thumb_func_start sub_810FEFC
+sub_810FEFC: @ 810FEFC
+ push {lr}
+ ldr r0, _0810FF20 @ =0x00004095
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0810FF2C
+ bl sub_810FA74
+ ldr r0, _0810FF24 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0810FF28
+ bl sub_810FB9C
+ b _0810FF2C
+ .align 2, 0
+_0810FF20: .4byte 0x00004095
+_0810FF24: .4byte gUnknown_02024D26
+_0810FF28:
+ bl sub_810FC18
+_0810FF2C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FEFC
+
+ thumb_func_start sub_810FF30
+sub_810FF30: @ 810FF30
+ ldr r0, _0810FF40 @ =gSaveBlock1
+ ldr r1, _0810FF44 @ =0x000013c2
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0810FF40: .4byte gSaveBlock1
+_0810FF44: .4byte 0x000013c2
+ thumb_func_end sub_810FF30
+
+ thumb_func_start sub_810FF48
+sub_810FF48: @ 810FF48
+ ldr r0, _0810FF58 @ =gSaveBlock1
+ ldr r1, _0810FF5C @ =0x000013c2
+ adds r0, r1
+ ldrh r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0810FF58: .4byte gSaveBlock1
+_0810FF5C: .4byte 0x000013c2
+ thumb_func_end sub_810FF48
+
+ thumb_func_start sub_810FF60
+sub_810FF60: @ 810FF60
+ push {lr}
+ ldr r0, _0810FF74 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ bl sub_810FB10
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FF74: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810FF60
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81258BC.s b/asm/rom_81258BC.s
index cbc5697a6..a169258ae 100644
--- a/asm/rom_81258BC.s
+++ b/asm/rom_81258BC.s
@@ -71,7 +71,7 @@ sub_812AF30: @ 812AF30
adds r6, r0
lsls r6, 3
adds r6, r1
- ldr r1, _0812AF90 @ =gUnknown_03004B00
+ ldr r1, _0812AF90 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r6, 0x8]
ldrh r0, [r1, 0x2]
@@ -107,7 +107,7 @@ sub_812AF30: @ 812AF30
bx r0
.align 2, 0
_0812AF8C: .4byte gTasks
-_0812AF90: .4byte gUnknown_03004B00
+_0812AF90: .4byte gBattleAnimArgs
_0812AF94: .4byte sub_812AF98
thumb_func_end sub_812AF30
@@ -224,7 +224,7 @@ sub_812B058: @ 812B058
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _0812B0FC @ =gUnknown_03004B00
+ ldr r0, _0812B0FC @ =gBattleAnimArgs
ldrh r1, [r0]
str r1, [sp]
ldrb r5, [r0, 0x4]
@@ -292,7 +292,7 @@ sub_812B058: @ 812B058
pop {r0}
bx r0
.align 2, 0
-_0812B0FC: .4byte gUnknown_03004B00
+_0812B0FC: .4byte gBattleAnimArgs
_0812B100: .4byte gTasks
_0812B104: .4byte sub_812B108
thumb_func_end sub_812B058
@@ -381,7 +381,7 @@ sub_812B18C: @ 812B18C
lsls r0, 24
cmp r0, 0
beq _0812B1CC
- ldr r0, _0812B1BC @ =gUnknown_03004B00
+ ldr r0, _0812B1BC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -390,14 +390,14 @@ sub_812B18C: @ 812B18C
ldrh r4, [r0]
b _0812B272
.align 2, 0
-_0812B1BC: .4byte gUnknown_03004B00
+_0812B1BC: .4byte gBattleAnimArgs
_0812B1C0: .4byte 0x02019348
_0812B1C4:
adds r0, r5, 0
bl move_anim_task_del
b _0812B272
_0812B1CC:
- ldr r0, _0812B1E0 @ =gUnknown_03004B00
+ ldr r0, _0812B1E0 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -407,7 +407,7 @@ _0812B1CC:
ldrb r4, [r0]
b _0812B20E
.align 2, 0
-_0812B1E0: .4byte gUnknown_03004B00
+_0812B1E0: .4byte gBattleAnimArgs
_0812B1E4: .4byte gUnknown_0202F7C8
_0812B1E8:
cmp r1, 0x1
@@ -483,7 +483,7 @@ _0812B266:
_0812B272:
cmp r4, 0
beq _0812B2AA
- ldr r0, _0812B298 @ =gUnknown_03004B00
+ ldr r0, _0812B298 @ =gBattleAnimArgs
ldrh r2, [r0, 0x2]
movs r1, 0x2
ldrsh r0, [r0, r1]
@@ -497,7 +497,7 @@ _0812B272:
.align 2, 0
_0812B290: .4byte gUnknown_02024A6A
_0812B294: .4byte gPlayerParty
-_0812B298: .4byte gUnknown_03004B00
+_0812B298: .4byte gBattleAnimArgs
_0812B29C:
lsls r1, r6, 24
asrs r1, 24
@@ -563,7 +563,7 @@ sub_812B30C: @ 812B30C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0812B33C @ =gUnknown_03004B00
+ ldr r0, _0812B33C @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
@@ -580,7 +580,7 @@ sub_812B30C: @ 812B30C
pop {r0}
bx r0
.align 2, 0
-_0812B33C: .4byte gUnknown_03004B00
+_0812B33C: .4byte gBattleAnimArgs
thumb_func_end sub_812B30C
thumb_func_start sub_812B340
@@ -589,7 +589,7 @@ sub_812B340: @ 812B340
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0812B370 @ =gUnknown_03004B00
+ ldr r0, _0812B370 @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
@@ -606,7 +606,7 @@ sub_812B340: @ 812B340
pop {r0}
bx r0
.align 2, 0
-_0812B370: .4byte gUnknown_03004B00
+_0812B370: .4byte gBattleAnimArgs
thumb_func_end sub_812B340
thumb_func_start sub_812B374
@@ -619,7 +619,7 @@ sub_812B374: @ 812B374
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _0812B3F8 @ =gUnknown_03004B00
+ ldr r0, _0812B3F8 @ =gBattleAnimArgs
ldrb r5, [r0, 0x2]
ldrb r6, [r0, 0x4]
ldrh r1, [r0, 0x6]
@@ -673,7 +673,7 @@ sub_812B374: @ 812B374
pop {r0}
bx r0
.align 2, 0
-_0812B3F8: .4byte gUnknown_03004B00
+_0812B3F8: .4byte gBattleAnimArgs
_0812B3FC: .4byte gTasks
_0812B400: .4byte sub_812B404
thumb_func_end sub_812B374
@@ -1177,7 +1177,7 @@ dp01_tbl6_exec_completed: @ 812B7C0
adds r0, r1
ldr r1, _0812B808 @ =sub_812B484
str r1, [r0]
- ldr r0, _0812B80C @ =gUnknown_020239F8
+ ldr r0, _0812B80C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1201,7 +1201,7 @@ dp01_tbl6_exec_completed: @ 812B7C0
_0812B800: .4byte gUnknown_03004330
_0812B804: .4byte gUnknown_02024A60
_0812B808: .4byte sub_812B484
-_0812B80C: .4byte gUnknown_020239F8
+_0812B80C: .4byte gBattleTypeFlags
_0812B810: .4byte gUnknown_02023A60
_0812B814:
ldr r2, _0812B830 @ =gUnknown_02024A64
@@ -2191,7 +2191,7 @@ sub_812BF54: @ 812BF54
movs r0, 0x3
bl BeginFastPaletteFade
bl dp01_tbl6_exec_completed
- ldr r0, _0812BFA4 @ =gUnknown_020239F8
+ ldr r0, _0812BFA4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -2211,7 +2211,7 @@ _0812BF90:
_0812BF98: .4byte gUnknown_02024D26
_0812BF9C: .4byte gUnknown_02023A60
_0812BFA0: .4byte gUnknown_02024A60
-_0812BFA4: .4byte gUnknown_020239F8
+_0812BFA4: .4byte gBattleTypeFlags
_0812BFA8: .4byte gUnknown_03004330
_0812BFAC: .4byte sub_812B6AC
thumb_func_end sub_812BF54
@@ -2427,7 +2427,7 @@ _0812C140: .4byte SweetScentNothingHereScript
sub_812C144: @ 812C144
push {lr}
adds r2, r0, 0
- ldr r1, _0812C168 @ =gUnknown_03004B00
+ ldr r1, _0812C168 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r3, [r2, 0x20]
adds r0, r3
@@ -2443,7 +2443,7 @@ sub_812C144: @ 812C144
ldrh r0, [r1, 0x4]
b _0812C170
.align 2, 0
-_0812C168: .4byte gUnknown_03004B00
+_0812C168: .4byte gBattleAnimArgs
_0812C16C:
ldrh r0, [r1, 0x4]
negs r0, r0
@@ -2675,7 +2675,7 @@ _0812C31A:
movs r1, 0
adds r2, r3, 0
bl sub_8078FDC
- ldr r0, _0812C34C @ =gUnknown_03004B00
+ ldr r0, _0812C34C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
strh r7, [r5, 0x32]
@@ -2691,7 +2691,7 @@ _0812C31A:
bx r0
.align 2, 0
_0812C348: .4byte gUnknown_0202F7C9
-_0812C34C: .4byte gUnknown_03004B00
+_0812C34C: .4byte gBattleAnimArgs
_0812C350: .4byte sub_8078B34
_0812C354: .4byte move_anim_8072740
thumb_func_end sub_812C2BC
@@ -3056,7 +3056,7 @@ _0812C5D6:
add r0, r9
strh r1, [r0, 0x12]
_0812C5F8:
- ldr r0, _0812C61C @ =gUnknown_03004B00
+ ldr r0, _0812C61C @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _0812C620 @ =0x0000ffff
cmp r1, r0
@@ -3073,7 +3073,7 @@ _0812C608:
.align 2, 0
_0812C614: .4byte gTasks
_0812C618: .4byte gPlttBufferFaded
-_0812C61C: .4byte gUnknown_03004B00
+_0812C61C: .4byte gBattleAnimArgs
_0812C620: .4byte 0x0000ffff
thumb_func_end sub_812C588
@@ -3184,7 +3184,7 @@ _0812C6CA:
adds r0, r2
strh r1, [r0, 0x12]
_0812C6EE:
- ldr r0, _0812C718 @ =gUnknown_03004B00
+ ldr r0, _0812C718 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _0812C71C @ =0x0000ffff
cmp r1, r0
@@ -3203,7 +3203,7 @@ _0812C6FE:
_0812C70C: .4byte gTasks
_0812C710: .4byte gPlttBufferFaded
_0812C714: .4byte gPlttBufferUnfaded
-_0812C718: .4byte gUnknown_03004B00
+_0812C718: .4byte gBattleAnimArgs
_0812C71C: .4byte 0x0000ffff
thumb_func_end sub_812C64C
@@ -3228,12 +3228,12 @@ sub_812C720: @ 812C720
lsls r0, 24
cmp r0, 0
beq _0812C754
- ldr r1, _0812C78C @ =gUnknown_03004B00
+ ldr r1, _0812C78C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_0812C754:
- ldr r1, _0812C78C @ =gUnknown_03004B00
+ ldr r1, _0812C78C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
mov r2, sp
@@ -3258,7 +3258,7 @@ _0812C754:
.align 2, 0
_0812C784: .4byte gUnknown_0202F7C9
_0812C788: .4byte gUnknown_0202F7C8
-_0812C78C: .4byte gUnknown_03004B00
+_0812C78C: .4byte gBattleAnimArgs
_0812C790: .4byte 0x0000ffce
_0812C794: .4byte sub_812C798
thumb_func_end sub_812C720
@@ -3333,7 +3333,7 @@ sub_812C80C: @ 812C80C
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _0812C83C @ =gUnknown_03004B00
+ ldr r5, _0812C83C @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -3351,7 +3351,7 @@ sub_812C80C: @ 812C80C
pop {r0}
bx r0
.align 2, 0
-_0812C83C: .4byte gUnknown_03004B00
+_0812C83C: .4byte gBattleAnimArgs
_0812C840: .4byte sub_8078600
_0812C844: .4byte move_anim_8072740
thumb_func_end sub_812C80C
@@ -3366,7 +3366,7 @@ sub_812C848: @ 812C848
bne _0812C8A8
adds r0, r4, 0
bl sub_8078650
- ldr r5, _0812C884 @ =gUnknown_03004B00
+ ldr r5, _0812C884 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r5, r2]
adds r0, r4, 0
@@ -3384,7 +3384,7 @@ sub_812C848: @ 812C848
ldrh r0, [r5, 0x4]
b _0812C8A2
.align 2, 0
-_0812C884: .4byte gUnknown_03004B00
+_0812C884: .4byte gBattleAnimArgs
_0812C888: .4byte gUnknown_0202F7C8
_0812C88C:
movs r1, 0x4
@@ -3482,14 +3482,14 @@ sub_812C924: @ 812C924
lsrs r0, 24
cmp r0, 0x1
bne _0812C948
- ldr r1, _0812C944 @ =gUnknown_03004B00
+ ldr r1, _0812C944 @ =gBattleAnimArgs
movs r0, 0
b _0812C94C
.align 2, 0
_0812C940: .4byte gUnknown_0202F7C9
-_0812C944: .4byte gUnknown_03004B00
+_0812C944: .4byte gBattleAnimArgs
_0812C948:
- ldr r1, _0812C95C @ =gUnknown_03004B00
+ ldr r1, _0812C95C @ =gBattleAnimArgs
movs r0, 0x1
_0812C94C:
strh r0, [r1, 0xE]
@@ -3499,7 +3499,7 @@ _0812C94C:
pop {r0}
bx r0
.align 2, 0
-_0812C95C: .4byte gUnknown_03004B00
+_0812C95C: .4byte gBattleAnimArgs
thumb_func_end sub_812C924
thumb_func_start sub_812C960
@@ -3511,14 +3511,14 @@ sub_812C960: @ 812C960
ldr r0, [r0]
cmp r0, 0
ble _0812C97C
- ldr r1, _0812C978 @ =gUnknown_03004B00
+ ldr r1, _0812C978 @ =gBattleAnimArgs
movs r0, 0
b _0812C980
.align 2, 0
_0812C974: .4byte gUnknown_0202F7B8
-_0812C978: .4byte gUnknown_03004B00
+_0812C978: .4byte gBattleAnimArgs
_0812C97C:
- ldr r1, _0812C98C @ =gUnknown_03004B00
+ ldr r1, _0812C98C @ =gBattleAnimArgs
movs r0, 0x1
_0812C980:
strh r0, [r1, 0xE]
@@ -3527,7 +3527,7 @@ _0812C980:
pop {r0}
bx r0
.align 2, 0
-_0812C98C: .4byte gUnknown_03004B00
+_0812C98C: .4byte gBattleAnimArgs
thumb_func_end sub_812C960
thumb_func_start sub_812C990
@@ -3719,7 +3719,7 @@ _0812CAF8: .4byte 0x00003f3f
sub_812CAFC: @ 812CAFC
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0812CB70 @ =gUnknown_03004B00
+ ldr r6, _0812CB70 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -3774,7 +3774,7 @@ _0812CB28:
movs r0, 0x2
b _0812CB8A
.align 2, 0
-_0812CB70: .4byte gUnknown_03004B00
+_0812CB70: .4byte gBattleAnimArgs
_0812CB74: .4byte gUnknown_0202F7C8
_0812CB78: .4byte 0x000003ff
_0812CB7C: .4byte 0xfffffc00
@@ -3785,7 +3785,7 @@ _0812CB84:
ldr r0, _0812CBA8 @ =0x0000fffe
_0812CB8A:
strh r0, [r5, 0x30]
- ldr r1, _0812CBAC @ =gUnknown_03004B00
+ ldr r1, _0812CBAC @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
movs r2, 0x34
@@ -3802,7 +3802,7 @@ _0812CB9E:
bx r0
.align 2, 0
_0812CBA8: .4byte 0x0000fffe
-_0812CBAC: .4byte gUnknown_03004B00
+_0812CBAC: .4byte gBattleAnimArgs
_0812CBB0: .4byte sub_812CBB4
thumb_func_end sub_812CAFC
@@ -3965,7 +3965,7 @@ _0812CCE4: .4byte gUnknown_03004244
sub_812CCE8: @ 812CCE8
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0812CCFC @ =gUnknown_03004B00
+ ldr r6, _0812CCFC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -3973,7 +3973,7 @@ sub_812CCE8: @ 812CCE8
ldr r4, _0812CD00 @ =gUnknown_0202F7C8
b _0812CD06
.align 2, 0
-_0812CCFC: .4byte gUnknown_03004B00
+_0812CCFC: .4byte gBattleAnimArgs
_0812CD00: .4byte gUnknown_0202F7C8
_0812CD04:
ldr r4, _0812CD58 @ =gUnknown_0202F7C9
@@ -3992,7 +3992,7 @@ _0812CD06:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r2, _0812CD5C @ =gUnknown_03004B00
+ ldr r2, _0812CD5C @ =gBattleAnimArgs
ldrh r0, [r2, 0x4]
strh r0, [r5, 0x26]
movs r3, 0
@@ -4020,7 +4020,7 @@ _0812CD3E:
bx r0
.align 2, 0
_0812CD58: .4byte gUnknown_0202F7C9
-_0812CD5C: .4byte gUnknown_03004B00
+_0812CD5C: .4byte gBattleAnimArgs
_0812CD60: .4byte sub_812CD64
thumb_func_end sub_812CCE8
@@ -4087,7 +4087,7 @@ sub_812CDC8: @ 812CDC8
lsls r1, 3
ldr r0, _0812CDE8 @ =gTasks
adds r5, r1, r0
- ldr r0, _0812CDEC @ =gUnknown_03004B00
+ ldr r0, _0812CDEC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -4096,7 +4096,7 @@ sub_812CDC8: @ 812CDC8
b _0812CDF6
.align 2, 0
_0812CDE8: .4byte gTasks
-_0812CDEC: .4byte gUnknown_03004B00
+_0812CDEC: .4byte gBattleAnimArgs
_0812CDF0: .4byte gUnknown_0202F7C8
_0812CDF4:
ldr r4, _0812CE3C @ =gUnknown_0202F7C9
@@ -4125,7 +4125,7 @@ _0812CE20:
strh r0, [r5, 0xE]
movs r0, 0x8
strh r0, [r5, 0x10]
- ldr r1, _0812CE40 @ =gUnknown_03004B00
+ ldr r1, _0812CE40 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x12]
strh r2, [r5, 0x14]
@@ -4136,7 +4136,7 @@ _0812CE20:
b _0812CE4A
.align 2, 0
_0812CE3C: .4byte gUnknown_0202F7C9
-_0812CE40: .4byte gUnknown_03004B00
+_0812CE40: .4byte gBattleAnimArgs
_0812CE44: .4byte gUnknown_030042C0
_0812CE48:
ldr r0, _0812CE68 @ =gUnknown_03004288
@@ -5487,14 +5487,14 @@ _0812D85E:
add r1, r8
lsls r1, 3
adds r1, r0
- ldr r0, _0812D884 @ =gUnknown_03004B00
+ ldr r0, _0812D884 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x1C]
b _0812DA2A
.align 2, 0
_0812D87C: .4byte REG_BG2CNT
_0812D880: .4byte gTasks
-_0812D884: .4byte gUnknown_03004B00
+_0812D884: .4byte gBattleAnimArgs
_0812D888:
mov r1, r8
lsls r0, r1, 2
@@ -5817,7 +5817,7 @@ c3_80DFBE4: @ 812DB18
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _0812DB48 @ =gUnknown_03004B00
+ ldr r4, _0812DB48 @ =gBattleAnimArgs
ldr r3, _0812DB4C @ =gSprites
ldr r2, _0812DB50 @ =gUnknown_02024BE0
ldr r1, _0812DB54 @ =gUnknown_0202F7C8
@@ -5838,7 +5838,7 @@ c3_80DFBE4: @ 812DB18
pop {r0}
bx r0
.align 2, 0
-_0812DB48: .4byte gUnknown_03004B00
+_0812DB48: .4byte gBattleAnimArgs
_0812DB4C: .4byte gSprites
_0812DB50: .4byte gUnknown_02024BE0
_0812DB54: .4byte gUnknown_0202F7C8
@@ -6288,7 +6288,7 @@ _0812DED6:
lsrs r0, 24
adds r0, 0x20
strh r0, [r7, 0x22]
- ldr r1, _0812DFD4 @ =gUnknown_03004B00
+ ldr r1, _0812DFD4 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r7, 0x30]
ldrh r0, [r1, 0x2]
@@ -6346,7 +6346,7 @@ _0812DED6:
adds r0, r4, 0
movs r1, 0x2
bl StartSpriteAnim
- ldr r1, _0812DFD4 @ =gUnknown_03004B00
+ ldr r1, _0812DFD4 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r5, 0x30]
ldrh r0, [r1, 0x2]
@@ -6393,7 +6393,7 @@ _0812DED6:
bx r0
.align 2, 0
_0812DFD0: .4byte gUnknown_0202F7C8
-_0812DFD4: .4byte gUnknown_03004B00
+_0812DFD4: .4byte gBattleAnimArgs
_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
_0812DFDC: .4byte gSprites
_0812DFE0: .4byte 0x0000ffff
@@ -6714,7 +6714,7 @@ _0812E260:
bl battle_get_per_side_status
lsls r0, 24
lsrs r4, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7107,7 +7107,7 @@ sub_812E568: @ 812E568
lsls r0, 3
ldr r1, _0812E58C @ =gTasks
adds r4, r0, r1
- ldr r5, _0812E590 @ =gUnknown_03004B00
+ ldr r5, _0812E590 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -7117,7 +7117,7 @@ sub_812E568: @ 812E568
b _0812E628
.align 2, 0
_0812E58C: .4byte gTasks
-_0812E590: .4byte gUnknown_03004B00
+_0812E590: .4byte gBattleAnimArgs
_0812E594:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -7396,16 +7396,16 @@ sub_812E7A0: @ 812E7A0
cmp r0, 0
bne _0812E7C4
strh r0, [r4, 0x20]
- ldr r1, _0812E7C0 @ =gUnknown_03004B00
+ ldr r1, _0812E7C0 @ =gBattleAnimArgs
ldrh r0, [r1]
b _0812E7CE
.align 2, 0
_0812E7BC: .4byte gUnknown_0202F7C8
-_0812E7C0: .4byte gUnknown_03004B00
+_0812E7C0: .4byte gBattleAnimArgs
_0812E7C4:
movs r0, 0xF0
strh r0, [r4, 0x20]
- ldr r1, _0812E7E8 @ =gUnknown_03004B00
+ ldr r1, _0812E7E8 @ =gBattleAnimArgs
ldrh r0, [r1]
subs r0, 0x1E
_0812E7CE:
@@ -7421,7 +7421,7 @@ _0812E7CE:
pop {r0}
bx r0
.align 2, 0
-_0812E7E8: .4byte gUnknown_03004B00
+_0812E7E8: .4byte gBattleAnimArgs
_0812E7EC: .4byte sub_812E7F0
thumb_func_end sub_812E7A0
@@ -7506,7 +7506,7 @@ sub_812E860: @ 812E860
movs r0, 0x80
lsls r0, 4
strh r0, [r4, 0x24]
- ldr r0, _0812E8AC @ =gUnknown_03004B00
+ ldr r0, _0812E8AC @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -7521,7 +7521,7 @@ sub_812E860: @ 812E860
bx r0
.align 2, 0
_0812E8A8: .4byte gTasks
-_0812E8AC: .4byte gUnknown_03004B00
+_0812E8AC: .4byte gBattleAnimArgs
_0812E8B0: .4byte sub_812E8B4
thumb_func_end sub_812E860
@@ -7742,7 +7742,7 @@ sub_812EA4C: @ 812EA4C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0812EAAC
- ldr r6, _0812EAA4 @ =gUnknown_03004B00
+ ldr r6, _0812EAA4 @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r6, r2]
cmp r0, 0
@@ -7780,7 +7780,7 @@ _0812EA80:
strh r0, [r5, 0x2E]
b _0812EB0A
.align 2, 0
-_0812EAA4: .4byte gUnknown_03004B00
+_0812EAA4: .4byte gBattleAnimArgs
_0812EAA8: .4byte gUnknown_0202F7C8
_0812EAAC:
ldrh r1, [r5, 0x30]
@@ -7852,7 +7852,7 @@ sub_812EB10: @ 812EB10
ldrsh r0, [r2, r1]
cmp r0, 0
bne _0812EC1C
- ldr r0, _0812EB44 @ =gUnknown_03004B00
+ ldr r0, _0812EB44 @ =gBattleAnimArgs
movs r3, 0
ldrsh r1, [r0, r3]
mov r8, r0
@@ -7862,7 +7862,7 @@ sub_812EB10: @ 812EB10
b _0812EB4E
.align 2, 0
_0812EB40: .4byte gTasks
-_0812EB44: .4byte gUnknown_03004B00
+_0812EB44: .4byte gBattleAnimArgs
_0812EB48: .4byte gUnknown_0202F7C8
_0812EB4C:
ldr r0, _0812EB88 @ =gUnknown_0202F7C9
@@ -8077,7 +8077,7 @@ _0812ECEA:
subs r0, r1
_0812ECF2:
strh r0, [r4, 0x30]
- ldr r0, _0812ED04 @ =gUnknown_03004B00
+ ldr r0, _0812ED04 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x32]
lsls r0, 16
@@ -8086,7 +8086,7 @@ _0812ECF2:
ldr r0, _0812ED08 @ =0x0000fff8
b _0812ED0E
.align 2, 0
-_0812ED04: .4byte gUnknown_03004B00
+_0812ED04: .4byte gBattleAnimArgs
_0812ED08: .4byte 0x0000fff8
_0812ED0C:
movs r0, 0xF8
@@ -8183,7 +8183,7 @@ sub_812ED84: @ 812ED84
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
- ldr r0, _0812EDF8 @ =gUnknown_03004B00
+ ldr r0, _0812EDF8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
adds r0, r4, 0
@@ -8213,7 +8213,7 @@ _0812EDE8: .4byte 0x00001f3f
_0812EDEC: .4byte gUnknown_030042C4
_0812EDF0: .4byte gUnknown_03004240
_0812EDF4: .4byte REG_WIN0H
-_0812EDF8: .4byte gUnknown_03004B00
+_0812EDF8: .4byte gBattleAnimArgs
_0812EDFC: .4byte sub_812EE00
thumb_func_end sub_812ED84
@@ -8323,7 +8323,7 @@ sub_812EEA4: @ 812EEA4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r1, _0812EEE4 @ =gUnknown_03004B00
+ ldr r1, _0812EEE4 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -8337,7 +8337,7 @@ sub_812EEA4: @ 812EEA4
bx r0
.align 2, 0
_0812EEE0: .4byte gUnknown_0202F7C8
-_0812EEE4: .4byte gUnknown_03004B00
+_0812EEE4: .4byte gBattleAnimArgs
_0812EEE8: .4byte sub_812EEEC
thumb_func_end sub_812EEA4
@@ -8867,7 +8867,7 @@ sub_812F314: @ 812F314
lsls r1, 3
ldr r0, _0812F334 @ =gTasks
adds r4, r1, r0
- ldr r0, _0812F338 @ =gUnknown_03004B00
+ ldr r0, _0812F338 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -8876,7 +8876,7 @@ sub_812F314: @ 812F314
b _0812F342
.align 2, 0
_0812F334: .4byte gTasks
-_0812F338: .4byte gUnknown_03004B00
+_0812F338: .4byte gBattleAnimArgs
_0812F33C: .4byte gUnknown_0202F7C8
_0812F340:
ldr r0, _0812F3C0 @ =gUnknown_0202F7C9
@@ -8919,7 +8919,7 @@ _0812F388:
ldrh r0, [r4, 0x22]
adds r0, 0x42
strh r0, [r4, 0x24]
- ldr r0, _0812F3C4 @ =gUnknown_03004B00
+ ldr r0, _0812F3C4 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -8943,7 +8943,7 @@ _0812F388:
b _0812F3EE
.align 2, 0
_0812F3C0: .4byte gUnknown_0202F7C9
-_0812F3C4: .4byte gUnknown_03004B00
+_0812F3C4: .4byte gBattleAnimArgs
_0812F3C8: .4byte REG_BG1HOFS
_0812F3CC: .4byte REG_BLDCNT
_0812F3D0: .4byte 0x00003f42
@@ -9390,7 +9390,7 @@ sub_812F724: @ 812F724
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _0812F760 @ =gUnknown_03004B00
+ ldr r0, _0812F760 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -9407,7 +9407,7 @@ sub_812F724: @ 812F724
bx r0
.align 2, 0
_0812F75C: .4byte gTasks
-_0812F760: .4byte gUnknown_03004B00
+_0812F760: .4byte gBattleAnimArgs
_0812F764: .4byte gUnknown_08402750
_0812F768: .4byte sub_812F76C
thumb_func_end sub_812F724
@@ -9570,7 +9570,7 @@ sub_812F88C: @ 812F88C
ldrh r6, [r4, 0x20]
ldrh r5, [r4, 0x22]
bl sub_8078650
- ldr r0, _0812F8D4 @ =gUnknown_03004B00
+ ldr r0, _0812F8D4 @ =gBattleAnimArgs
ldrb r1, [r0]
adds r0, r4, 0
bl StartSpriteAffineAnim
@@ -9597,7 +9597,7 @@ sub_812F88C: @ 812F88C
pop {r0}
bx r0
.align 2, 0
-_0812F8D4: .4byte gUnknown_03004B00
+_0812F8D4: .4byte gBattleAnimArgs
_0812F8D8: .4byte sub_812F8DC
thumb_func_end sub_812F88C
@@ -9661,7 +9661,7 @@ _0812F942:
sub_812F948: @ 812F948
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0812F9A0 @ =gUnknown_03004B00
+ ldr r6, _0812F9A0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x2E]
ldrb r1, [r6]
@@ -9700,7 +9700,7 @@ _0812F96E:
pop {r0}
bx r0
.align 2, 0
-_0812F9A0: .4byte gUnknown_03004B00
+_0812F9A0: .4byte gBattleAnimArgs
_0812F9A4: .4byte gUnknown_0202F7C9
_0812F9A8: .4byte gUnknown_0202F7C8
_0812F9AC: .4byte sub_80DA48C
@@ -10096,7 +10096,7 @@ sub_812FC68: @ 812FC68
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x26]
- ldr r5, _0812FCD4 @ =gUnknown_03004B00
+ ldr r5, _0812FCD4 @ =gBattleAnimArgs
ldrh r0, [r5]
strh r0, [r4, 0x24]
ldrh r0, [r5]
@@ -10129,7 +10129,7 @@ _0812FCAC:
_0812FCC8: .4byte gTasks
_0812FCCC: .4byte gUnknown_02024BE0
_0812FCD0: .4byte gUnknown_0202F7C8
-_0812FCD4: .4byte gUnknown_03004B00
+_0812FCD4: .4byte gBattleAnimArgs
_0812FCD8: .4byte 0xffff8000
_0812FCDC:
movs r7, 0x2
@@ -10152,7 +10152,7 @@ _0812FCF8:
orrs r0, r1
_0812FD00:
strh r0, [r4, 0xC]
- ldr r0, _0812FD2C @ =gUnknown_03004B00
+ ldr r0, _0812FD2C @ =gBattleAnimArgs
movs r3, 0x4
ldrsh r1, [r0, r3]
movs r2, 0x80
@@ -10172,7 +10172,7 @@ _0812FD00:
b _0812FD4A
.align 2, 0
_0812FD28: .4byte 0xffff8000
-_0812FD2C: .4byte gUnknown_03004B00
+_0812FD2C: .4byte gBattleAnimArgs
_0812FD30: .4byte gTasks
_0812FD34: .4byte 0x00007fff
_0812FD38:
@@ -10221,7 +10221,7 @@ sub_812FD7C: @ 812FD7C
lsls r0, 3
ldr r1, _0812FDB4 @ =gTasks
adds r5, r0, r1
- ldr r4, _0812FDB8 @ =gUnknown_03004B00
+ ldr r4, _0812FDB8 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -10243,7 +10243,7 @@ _0812FD9C:
b _0812FDC2
.align 2, 0
_0812FDB4: .4byte gTasks
-_0812FDB8: .4byte gUnknown_03004B00
+_0812FDB8: .4byte gBattleAnimArgs
_0812FDBC: .4byte gUnknown_0202F7C8
_0812FDC0:
ldr r0, _0812FE10 @ =gUnknown_0202F7C9
@@ -10266,7 +10266,7 @@ _0812FDC2:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
- ldr r0, _0812FE14 @ =gUnknown_03004B00
+ ldr r0, _0812FE14 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -10283,7 +10283,7 @@ _0812FDC2:
bx r0
.align 2, 0
_0812FE10: .4byte gUnknown_0202F7C9
-_0812FE14: .4byte gUnknown_03004B00
+_0812FE14: .4byte gBattleAnimArgs
_0812FE18: .4byte gUnknown_084028AC
_0812FE1C: .4byte sub_812FE20
thumb_func_end sub_812FD7C
@@ -10537,7 +10537,7 @@ sub_812FFE4: @ 812FFE4
adds r4, r1
movs r0, 0
strh r0, [r4, 0x8]
- ldr r1, _08130030 @ =gUnknown_03004B00
+ ldr r1, _08130030 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xA]
ldrb r0, [r1]
@@ -10564,7 +10564,7 @@ sub_812FFE4: @ 812FFE4
bx r0
.align 2, 0
_0813002C: .4byte gTasks
-_08130030: .4byte gUnknown_03004B00
+_08130030: .4byte gBattleAnimArgs
_08130034: .4byte gSprites
_08130038: .4byte sub_813003C
thumb_func_end sub_812FFE4
@@ -10634,7 +10634,7 @@ sub_81300A4: @ 81300A4
lsls r2, 1
ldr r1, _081300E0 @ =gUnknown_0202F7C8
ldrb r3, [r1]
- ldr r1, _081300E4 @ =gUnknown_03004B00
+ ldr r1, _081300E4 @ =gBattleAnimArgs
ldrb r1, [r1]
str r1, [sp]
movs r1, 0xA
@@ -10656,7 +10656,7 @@ sub_81300A4: @ 81300A4
bx r0
.align 2, 0
_081300E0: .4byte gUnknown_0202F7C8
-_081300E4: .4byte gUnknown_03004B00
+_081300E4: .4byte gBattleAnimArgs
_081300E8: .4byte gUnknown_08D2E014
_081300EC: .4byte gUnknown_08D2E170
_081300F0: .4byte gUnknown_08D2E150
@@ -10673,7 +10673,7 @@ sub_81300F4: @ 81300F4
lsrs r0, 24
cmp r0, 0x1
bne _08130110
- ldr r1, _08130150 @ =gUnknown_03004B00
+ ldr r1, _08130150 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -10682,7 +10682,7 @@ _08130110:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _08130150 @ =gUnknown_03004B00
+ ldr r4, _08130150 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -10707,7 +10707,7 @@ _08130110:
b _08130180
.align 2, 0
_0813014C: .4byte gUnknown_0202F7C8
-_08130150: .4byte gUnknown_03004B00
+_08130150: .4byte gBattleAnimArgs
_08130154: .4byte 0x0000fd80
_08130158:
cmp r0, 0x1
@@ -11214,7 +11214,7 @@ _08130518: .4byte gTasks
sub_813051C: @ 813051C
push {r4,lr}
adds r4, r0, 0
- ldr r1, _08130548 @ =gUnknown_03004B00
+ ldr r1, _08130548 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
@@ -11234,7 +11234,7 @@ sub_813051C: @ 813051C
pop {r0}
bx r0
.align 2, 0
-_08130548: .4byte gUnknown_03004B00
+_08130548: .4byte gBattleAnimArgs
_0813054C: .4byte move_anim_8072740
_08130550: .4byte sub_8078CC0
thumb_func_end sub_813051C
@@ -11540,7 +11540,7 @@ _081307AA:
sub_81307B0: @ 81307B0
push {r4-r6,lr}
adds r4, r0, 0
- ldr r0, _081307C4 @ =gUnknown_03004B00
+ ldr r0, _081307C4 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r6, r0, 0
@@ -11549,7 +11549,7 @@ sub_81307B0: @ 81307B0
ldr r0, _081307C8 @ =gUnknown_0202F7C8
b _081307CE
.align 2, 0
-_081307C4: .4byte gUnknown_03004B00
+_081307C4: .4byte gBattleAnimArgs
_081307C8: .4byte gUnknown_0202F7C8
_081307CC:
ldr r0, _08130834 @ =gUnknown_0202F7C9
@@ -11735,7 +11735,7 @@ sub_8130918: @ 8130918
push {r4,lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r2, _08130930 @ =gUnknown_03004B00
+ ldr r2, _08130930 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, 0
@@ -11744,7 +11744,7 @@ sub_8130918: @ 8130918
bl move_anim_task_del
b _0813095C
.align 2, 0
-_08130930: .4byte gUnknown_03004B00
+_08130930: .4byte gBattleAnimArgs
_08130934:
ldr r0, _08130964 @ =gTasks
lsls r4, r1, 2
@@ -11873,7 +11873,7 @@ _08130A26:
sub_8130A2C: @ 8130A2C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _08130A40 @ =gUnknown_03004B00
+ ldr r0, _08130A40 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -11881,7 +11881,7 @@ sub_8130A2C: @ 8130A2C
ldr r4, _08130A44 @ =gUnknown_0202F7C8
b _08130A4A
.align 2, 0
-_08130A40: .4byte gUnknown_03004B00
+_08130A40: .4byte gBattleAnimArgs
_08130A44: .4byte gUnknown_0202F7C8
_08130A48:
ldr r4, _08130A88 @ =gUnknown_0202F7C9
@@ -11905,7 +11905,7 @@ _08130A4A:
_08130A6E:
movs r2, 0
strh r2, [r5, 0x2E]
- ldr r1, _08130A8C @ =gUnknown_03004B00
+ ldr r1, _08130A8C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x30]
strh r2, [r5, 0x32]
@@ -11918,7 +11918,7 @@ _08130A6E:
bx r0
.align 2, 0
_08130A88: .4byte gUnknown_0202F7C9
-_08130A8C: .4byte gUnknown_03004B00
+_08130A8C: .4byte gBattleAnimArgs
_08130A90: .4byte sub_8130A94
thumb_func_end sub_8130A2C
@@ -11974,7 +11974,7 @@ _08130AE8:
sub_8130AEC: @ 8130AEC
push {lr}
adds r3, r0, 0
- ldr r0, _08130B18 @ =gUnknown_03004B00
+ ldr r0, _08130B18 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -11994,7 +11994,7 @@ sub_8130AEC: @ 8130AEC
movs r0, 0x1
b _08130B22
.align 2, 0
-_08130B18: .4byte gUnknown_03004B00
+_08130B18: .4byte gBattleAnimArgs
_08130B1C:
movs r0, 0x8C
strh r0, [r3, 0x20]
@@ -12284,7 +12284,7 @@ sub_8130D20: @ 8130D20
lsls r0, 24
cmp r0, 0
bne _08130DA8
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x1
@@ -12562,7 +12562,7 @@ _08130F58: .4byte gSprites
sub_8130F5C: @ 8130F5C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _08130F78 @ =gUnknown_03004B00
+ ldr r0, _08130F78 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -12573,7 +12573,7 @@ sub_8130F5C: @ 8130F5C
ldr r0, _08130F7C @ =gUnknown_0202F7C8
b _08130F82
.align 2, 0
-_08130F78: .4byte gUnknown_03004B00
+_08130F78: .4byte gBattleAnimArgs
_08130F7C: .4byte gUnknown_0202F7C8
_08130F80:
ldr r0, _08130FD8 @ =gUnknown_0202F7C9
@@ -12979,7 +12979,7 @@ sub_8131264: @ 8131264
cmp r0, 0
beq _081312A8
_08131290:
- ldr r2, _081312A4 @ =gUnknown_03004B00
+ ldr r2, _081312A4 @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r0, [r2]
subs r0, r1, r0
@@ -12989,9 +12989,9 @@ _08131290:
b _081312B6
.align 2, 0
_081312A0: .4byte gUnknown_0202F7C9
-_081312A4: .4byte gUnknown_03004B00
+_081312A4: .4byte gBattleAnimArgs
_081312A8:
- ldr r2, _081312DC @ =gUnknown_03004B00
+ ldr r2, _081312DC @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r0, [r2]
adds r0, r1, r0
@@ -13019,7 +13019,7 @@ _081312B6:
pop {r0}
bx r0
.align 2, 0
-_081312DC: .4byte gUnknown_03004B00
+_081312DC: .4byte gBattleAnimArgs
_081312E0: .4byte sub_81311E4
thumb_func_end sub_8131264
@@ -13810,7 +13810,7 @@ sub_81318F0: @ 81318F0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r3, _0813193C @ =gUnknown_03004B00
+ ldr r3, _0813193C @ =gBattleAnimArgs
movs r2, 0
strh r2, [r3, 0xE]
ldr r1, _08131940 @ =gUnknown_0202F7BE
@@ -13848,7 +13848,7 @@ _08131930:
pop {r0}
bx r0
.align 2, 0
-_0813193C: .4byte gUnknown_03004B00
+_0813193C: .4byte gBattleAnimArgs
_08131940: .4byte gUnknown_0202F7BE
thumb_func_end sub_81318F0
@@ -14305,7 +14305,7 @@ _08131D02:
ldrh r0, [r6, 0x24]
adds r0, 0x1
strh r0, [r6, 0x24]
- ldr r1, _08131D34 @ =gUnknown_03004B00
+ ldr r1, _08131D34 @ =gBattleAnimArgs
ldr r0, _08131D38 @ =0x0000ffff
strh r0, [r1, 0xE]
_08131D0E:
@@ -14329,7 +14329,7 @@ _08131D20:
b _08131DB6
.align 2, 0
_08131D30: .4byte gUnknown_0202F7C9
-_08131D34: .4byte gUnknown_03004B00
+_08131D34: .4byte gBattleAnimArgs
_08131D38: .4byte 0x0000ffff
_08131D3C: .4byte gTasks
_08131D40:
@@ -14527,7 +14527,7 @@ sub_8131EB8: @ 8131EB8
beq _08131F72
b _08131FF4
_08131ECA:
- ldr r0, _08131F50 @ =gUnknown_03004B00
+ ldr r0, _08131F50 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -14589,7 +14589,7 @@ _08131ECA:
strb r0, [r1]
b _08131FF4
.align 2, 0
-_08131F50: .4byte gUnknown_03004B00
+_08131F50: .4byte gBattleAnimArgs
_08131F54: .4byte gUnknown_0202F7C9
_08131F58: .4byte 0x0000ffe0
_08131F5C: .4byte gUnknown_0202F7C8
@@ -15129,7 +15129,7 @@ sub_8132370: @ 8132370
lsls r0, 24
cmp r0, 0
bne _081323B4
- ldr r2, _081323AC @ =gUnknown_03004B00
+ ldr r2, _081323AC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -15148,14 +15148,14 @@ sub_8132370: @ 8132370
b _081323CE
.align 2, 0
_081323A8: .4byte gUnknown_0202F7C9
-_081323AC: .4byte gUnknown_03004B00
+_081323AC: .4byte gBattleAnimArgs
_081323B0: .4byte 0x0000fff5
_081323B4:
movs r0, 0xB
strh r0, [r4, 0x2E]
movs r0, 0xC0
strh r0, [r4, 0x30]
- ldr r1, _081323D8 @ =gUnknown_03004B00
+ ldr r1, _081323D8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -15171,7 +15171,7 @@ _081323CE:
pop {r0}
bx r0
.align 2, 0
-_081323D8: .4byte gUnknown_03004B00
+_081323D8: .4byte gBattleAnimArgs
_081323DC: .4byte sub_8132318
thumb_func_end sub_8132370
@@ -15357,7 +15357,7 @@ sub_8132528: @ 8132528
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _08132544 @ =gUnknown_03004B00
+ ldr r2, _08132544 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r2, 0xE]
ldr r0, _08132548 @ =gUnknown_0202F7C0
@@ -15369,7 +15369,7 @@ sub_8132528: @ 8132528
movs r0, 0x1
b _0813256E
.align 2, 0
-_08132544: .4byte gUnknown_03004B00
+_08132544: .4byte gBattleAnimArgs
_08132548: .4byte gUnknown_0202F7C0
_0813254C:
movs r0, 0x7
@@ -15412,7 +15412,7 @@ sub_813257C: @ 813257C
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _081325B8 @ =gUnknown_03004B00
+ ldr r0, _081325B8 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -15429,7 +15429,7 @@ sub_813257C: @ 813257C
bx r0
.align 2, 0
_081325B4: .4byte gTasks
-_081325B8: .4byte gUnknown_03004B00
+_081325B8: .4byte gBattleAnimArgs
_081325BC: .4byte gUnknown_08402B28
_081325C0: .4byte sub_81325C4
thumb_func_end sub_813257C
@@ -21501,7 +21501,7 @@ _08135588:
beq _08135600
b _08135648
_0813558E:
- ldr r1, _081355A4 @ =gUnknown_020239F8
+ ldr r1, _081355A4 @ =gBattleTypeFlags
movs r3, 0x84
lsls r3, 1
adds r0, r3, 0
@@ -21511,7 +21511,7 @@ _0813558E:
bl sub_8134DD4
b _081355D6
.align 2, 0
-_081355A4: .4byte gUnknown_020239F8
+_081355A4: .4byte gBattleTypeFlags
_081355A8: .4byte gTrainerBattleOpponent
_081355AC:
movs r5, 0
@@ -21565,7 +21565,7 @@ _08135606:
adds r5, 0x1
cmp r5, 0x2
ble _08135606
- ldr r1, _08135658 @ =gUnknown_020239F8
+ ldr r1, _08135658 @ =gBattleTypeFlags
ldr r2, _0813565C @ =0x00000808
adds r0, r2, 0
strh r0, [r1]
@@ -21589,7 +21589,7 @@ _08135648:
.align 2, 0
_08135650: .4byte gEnemyParty
_08135654: .4byte gSaveBlock2 + 0x4CC
-_08135658: .4byte gUnknown_020239F8
+_08135658: .4byte gBattleTypeFlags
_0813565C: .4byte 0x00000808
_08135660: .4byte gTrainerBattleOpponent
_08135664: .4byte sub_8135534
@@ -21803,7 +21803,7 @@ _08135820:
adds r0, r5, r2
ldrh r1, [r0]
movs r0, 0x20
- bl sav12_xor_set
+ bl SetGameStat
b _0813589A
.align 2, 0
_08135830: .4byte 0x00000572
@@ -21985,7 +21985,7 @@ _081359A0:
adds r0, r3, r1
ldrh r1, [r0]
movs r0, 0x20
- bl sav12_xor_set
+ bl SetGameStat
b _08135A0A
.align 2, 0
_081359B0: .4byte 0x00000572
@@ -22093,7 +22093,7 @@ _08135A66:
adds r5, r0, 0
movs r0, 0x20
adds r1, r5, 0
- bl sav12_xor_set
+ bl SetGameStat
ldr r1, _08135A90 @ =0x0000270f
cmp r5, r1
bhi _08135AA4
@@ -22107,7 +22107,7 @@ _08135A94:
ldrh r5, [r1]
movs r0, 0x20
adds r1, r5, 0
- bl sav12_xor_set
+ bl SetGameStat
ldr r1, _08135AAC @ =0x0000270f
cmp r5, r1
bls _08135AB4
@@ -22179,7 +22179,7 @@ _08135B0E:
adds r0, 0xC
ldr r4, _08135B88 @ =gSaveBlock2 + 0xA
adds r1, r4, 0
- bl sub_8052D10
+ bl copy_word_to_mem
adds r0, r5, 0x4
subs r4, 0xA
adds r1, r4, 0
@@ -22651,7 +22651,7 @@ _08135EBA:
cmp r0, 0
beq _08135EC8
movs r0, 0x2A
- bl sav12_xor_increment
+ bl IncrementGameStat
_08135EC8:
pop {r3}
mov r8, r3
@@ -22708,7 +22708,7 @@ _08135F2A:
adds r0, 0xC
ldr r4, _08135FAC @ =gSaveBlock2 + 0xA
adds r1, r4, 0
- bl sub_8052D10
+ bl copy_word_to_mem
adds r0, r7, 0x4
subs r4, 0xA
adds r1, r4, 0
@@ -25546,11 +25546,11 @@ _08137596:
ands r0, r1
cmp r0, 0
bne _08137684
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08137626
- ldr r0, _0813769C @ =gUnknown_020239F8
+ ldr r0, _0813769C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -25644,7 +25644,7 @@ _0813768C: .4byte gUnknown_02024A60
_08137690: .4byte 0x02017810
_08137694: .4byte gUnknown_02024A6A
_08137698: .4byte gPlayerParty
-_0813769C: .4byte gUnknown_020239F8
+_0813769C: .4byte gBattleTypeFlags
_081376A0: .4byte gUnknown_0300434C
_081376A4: .4byte gSprites
_081376A8: .4byte gUnknown_03004340
@@ -26001,7 +26001,7 @@ dp01_tbl5_exec_completed: @ 813796C
adds r0, r1
ldr r1, _081379B4 @ =sub_813726C
str r1, [r0]
- ldr r0, _081379B8 @ =gUnknown_020239F8
+ ldr r0, _081379B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -26025,7 +26025,7 @@ dp01_tbl5_exec_completed: @ 813796C
_081379AC: .4byte gUnknown_03004330
_081379B0: .4byte gUnknown_02024A60
_081379B4: .4byte sub_813726C
-_081379B8: .4byte gUnknown_020239F8
+_081379B8: .4byte gBattleTypeFlags
_081379BC: .4byte gUnknown_02023A60
_081379C0:
ldr r2, _081379DC @ =gUnknown_02024A64
@@ -29815,7 +29815,7 @@ sub_81398BC: @ 81398BC
lsrs r0, 16
mov r8, r0
ldr r0, _08139A10 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _08139A14 @ =gUnknown_0300434C
mov r9, r1
add r9, r6
@@ -30171,7 +30171,7 @@ sub_8139BB8: @ 8139BB8
movs r0, 0x3
bl BeginFastPaletteFade
bl dp01_tbl5_exec_completed
- ldr r0, _08139C08 @ =gUnknown_020239F8
+ ldr r0, _08139C08 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -30191,7 +30191,7 @@ _08139BF4:
_08139BFC: .4byte gUnknown_02024D26
_08139C00: .4byte gUnknown_02023A60
_08139C04: .4byte gUnknown_02024A60
-_08139C08: .4byte gUnknown_020239F8
+_08139C08: .4byte gBattleTypeFlags
_08139C0C: .4byte gUnknown_03004330
_08139C10: .4byte sub_813746C
thumb_func_end sub_8139BB8
diff --git a/asm/rom_813BA94.s b/asm/rom_813BA94.s
deleted file mode 100644
index e11d5fad9..000000000
--- a/asm/rom_813BA94.s
+++ /dev/null
@@ -1,20259 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start task_intro_1
-task_intro_1: @ 813BA94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0813BC18 @ =gUnknown_02039318
- bl Random
- movs r1, 0x1
- ands r1, r0
- strh r1, [r4]
- bl intro_reset_and_hide_bgs
- ldr r0, _0813BC1C @ =REG_BG3VOFS
- movs r6, 0
- strh r6, [r0]
- ldr r1, _0813BC20 @ =REG_BG2VOFS
- movs r0, 0x50
- strh r0, [r1]
- subs r1, 0x4
- movs r0, 0x18
- strh r0, [r1]
- subs r1, 0x4
- movs r0, 0x28
- strh r0, [r1]
- ldr r0, _0813BC24 @ =gUnknown_08407764
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0813BC28 @ =gUnknown_08406B74
- ldr r1, _0813BC2C @ =0x06008000
- bl LZ77UnCompVram
- ldr r1, _0813BC30 @ =0x06008800
- add r0, sp, 0x8
- strh r6, [r0]
- ldr r4, _0813BC34 @ =0x040000d4
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r5, _0813BC38 @ =0x81000400
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC3C @ =gUnknown_08406F28
- ldr r1, _0813BC40 @ =0x06009000
- bl LZ77UnCompVram
- ldr r1, _0813BC44 @ =0x06009800
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC48 @ =gUnknown_0840725C
- ldr r1, _0813BC4C @ =0x0600a000
- bl LZ77UnCompVram
- ldr r1, _0813BC50 @ =0x0600a800
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC54 @ =gUnknown_0840754C
- ldr r1, _0813BC58 @ =0x0600b000
- bl LZ77UnCompVram
- ldr r1, _0813BC5C @ =0x0600b800
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC60 @ =gUnknown_08406974
- movs r5, 0x80
- lsls r5, 2
- movs r1, 0
- adds r2, r5, 0
- bl LoadPalette
- ldr r1, _0813BC64 @ =REG_BG3CNT
- ldr r2, _0813BC68 @ =0x00009603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r3, _0813BC6C @ =0x00009402
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0813BC70 @ =0x00009201
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- movs r3, 0x90
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0813BC74 @ =gUnknown_0840B008
- bl LoadCompressedObjectPic
- ldr r0, _0813BC78 @ =gUnknown_0840B018
- bl LoadCompressedObjectPic
- ldr r0, _0813BC7C @ =gUnknown_0840B028
- bl LoadSpritePalettes
- ldr r4, _0813BC80 @ =gPlttBufferUnfaded + 0x200
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0xE1
- lsls r2, 1
- adds r1, r4, r2
- adds r0, r4, 0
- movs r2, 0xF
- bl CpuSet
- movs r3, 0xD2
- lsls r3, 1
- adds r1, r4, r3
- adds r0, r4, 0
- movs r2, 0xE
- bl CpuSet
- movs r0, 0xC3
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xD
- bl CpuSet
- movs r2, 0xB4
- lsls r2, 1
- adds r1, r4, r2
- adds r0, r4, 0
- movs r2, 0xC
- bl CpuSet
- movs r3, 0xA5
- lsls r3, 1
- adds r1, r4, r3
- adds r0, r4, 0
- movs r2, 0xB
- bl CpuSet
- movs r0, 0x96
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xA
- bl CpuSet
- movs r1, 0xE
- negs r1, r1
- movs r0, 0x78
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r0, 0xEC
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_813D584
- ldr r2, _0813BC84 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- ldr r0, _0813BC88 @ =task_intro_2
- str r0, [r1]
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BC18: .4byte gUnknown_02039318
-_0813BC1C: .4byte REG_BG3VOFS
-_0813BC20: .4byte REG_BG2VOFS
-_0813BC24: .4byte gUnknown_08407764
-_0813BC28: .4byte gUnknown_08406B74
-_0813BC2C: .4byte 0x06008000
-_0813BC30: .4byte 0x06008800
-_0813BC34: .4byte 0x040000d4
-_0813BC38: .4byte 0x81000400
-_0813BC3C: .4byte gUnknown_08406F28
-_0813BC40: .4byte 0x06009000
-_0813BC44: .4byte 0x06009800
-_0813BC48: .4byte gUnknown_0840725C
-_0813BC4C: .4byte 0x0600a000
-_0813BC50: .4byte 0x0600a800
-_0813BC54: .4byte gUnknown_0840754C
-_0813BC58: .4byte 0x0600b000
-_0813BC5C: .4byte 0x0600b800
-_0813BC60: .4byte gUnknown_08406974
-_0813BC64: .4byte REG_BG3CNT
-_0813BC68: .4byte 0x00009603
-_0813BC6C: .4byte 0x00009402
-_0813BC70: .4byte 0x00009201
-_0813BC74: .4byte gUnknown_0840B008
-_0813BC78: .4byte gUnknown_0840B018
-_0813BC7C: .4byte gUnknown_0840B028
-_0813BC80: .4byte gPlttBufferUnfaded + 0x200
-_0813BC84: .4byte gTasks
-_0813BC88: .4byte task_intro_2
- thumb_func_end task_intro_1
-
- thumb_func_start task_intro_2
-task_intro_2: @ 813BC8C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813BCE0 @ =sub_813B784
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0813BCE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BCE8 @ =sub_813BCF0
- str r1, [r0]
- ldr r0, _0813BCEC @ =gUnknown_03005ED0
- str r5, [r0]
- movs r0, 0xCF
- lsls r0, 1
- bl m4aSongNumStart
- bl ResetSerial
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BCE0: .4byte sub_813B784
-_0813BCE4: .4byte gTasks
-_0813BCE8: .4byte sub_813BCF0
-_0813BCEC: .4byte gUnknown_03005ED0
- thumb_func_end task_intro_2
-
- thumb_func_start sub_813BCF0
-sub_813BCF0: @ 813BCF0
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldr r4, _0813BDD4 @ =gUnknown_03005ED0
- ldr r0, [r4]
- cmp r0, 0x4C
- bne _0813BD1E
- ldr r2, _0813BDD8 @ =gSprites
- ldr r1, _0813BDDC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r6, 0x8
- ldrsh r1, [r0, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813BD1E:
- ldr r0, [r4]
- cmp r0, 0xFB
- bne _0813BD40
- ldr r2, _0813BDD8 @ =gSprites
- ldr r1, _0813BDDC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813BD40:
- ldr r1, [r4]
- movs r0, 0xB8
- lsls r0, 1
- cmp r1, r0
- bne _0813BD60
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x70
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x30
- movs r1, 0
- movs r3, 0x5
- bl sub_813D584
-_0813BD60:
- ldr r1, [r4]
- movs r0, 0xC0
- lsls r0, 1
- cmp r1, r0
- bne _0813BD80
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x80
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0xC8
- movs r1, 0x3C
- movs r3, 0x9
- bl sub_813D584
-_0813BD80:
- ldr r1, [r4]
- movs r0, 0x8C
- lsls r0, 2
- cmp r1, r0
- bne _0813BDA0
- ldr r0, _0813BDE0 @ =sub_813CCE8
- movs r1, 0
- bl CreateTask
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x78
- movs r1, 0x50
- bl sub_813D954
-_0813BDA0:
- ldr r1, [r4]
- ldr r0, _0813BDE4 @ =0x000002e3
- cmp r1, r0
- bls _0813BDCA
- ldr r1, _0813BDDC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x50
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x18
- strh r1, [r0, 0xE]
- strh r2, [r0, 0x10]
- movs r1, 0x28
- strh r1, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r1, _0813BDE8 @ =task_intro_4
- str r1, [r0]
-_0813BDCA:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BDD4: .4byte gUnknown_03005ED0
-_0813BDD8: .4byte gSprites
-_0813BDDC: .4byte gTasks
-_0813BDE0: .4byte sub_813CCE8
-_0813BDE4: .4byte 0x000002e3
-_0813BDE8: .4byte task_intro_4
- thumb_func_end sub_813BCF0
-
- thumb_func_start task_intro_4
-task_intro_4: @ 813BDEC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _0813BE80 @ =gUnknown_03005ED0
- ldr r3, [r0]
- ldr r0, _0813BE84 @ =0x00000387
- cmp r3, r0
- bhi _0813BEAC
- ldr r0, _0813BE88 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0xC]
- adds r0, r2
- ldr r2, _0813BE8C @ =0xffff4000
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0xA]
- strh r0, [r1, 0xC]
- ldr r0, _0813BE90 @ =REG_BG2VOFS
- strh r2, [r0]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0x10]
- adds r0, r2
- ldr r2, _0813BE94 @ =0xffff0000
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0xE]
- strh r0, [r1, 0x10]
- ldr r0, _0813BE98 @ =REG_BG1VOFS
- strh r2, [r0]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0x14]
- adds r0, r2
- ldr r2, _0813BE9C @ =0xfffe8000
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0x12]
- strh r0, [r1, 0x14]
- ldr r0, _0813BEA0 @ =REG_BG0VOFS
- strh r2, [r0]
- movs r0, 0xDC
- lsls r0, 2
- cmp r3, r0
- bne _0813BED2
- ldr r0, _0813BEA4 @ =gSpriteTemplate_840AFF0
- movs r1, 0xC8
- movs r2, 0xA0
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813BEA8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- b _0813BED2
- .align 2, 0
-_0813BE80: .4byte gUnknown_03005ED0
-_0813BE84: .4byte 0x00000387
-_0813BE88: .4byte gTasks
-_0813BE8C: .4byte 0xffff4000
-_0813BE90: .4byte REG_BG2VOFS
-_0813BE94: .4byte 0xffff0000
-_0813BE98: .4byte REG_BG1VOFS
-_0813BE9C: .4byte 0xfffe8000
-_0813BEA0: .4byte REG_BG0VOFS
-_0813BEA4: .4byte gSpriteTemplate_840AFF0
-_0813BEA8: .4byte gSprites
-_0813BEAC:
- ldr r0, _0813BEDC @ =0x000003ef
- cmp r3, r0
- bls _0813BED2
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813BEE0 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813BEE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BEE8 @ =sub_813BEEC
- str r1, [r0]
-_0813BED2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BEDC: .4byte 0x000003ef
-_0813BEE0: .4byte 0x0000ffff
-_0813BEE4: .4byte gTasks
-_0813BEE8: .4byte sub_813BEEC
- thumb_func_end task_intro_4
-
- thumb_func_start sub_813BEEC
-sub_813BEEC: @ 813BEEC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813BF10 @ =gUnknown_03005ED0
- ldr r1, [r0]
- ldr r0, _0813BF14 @ =0x00000402
- cmp r1, r0
- bls _0813BF0A
- ldr r0, _0813BF18 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813BF1C @ =task_intro_6
- str r0, [r1]
-_0813BF0A:
- pop {r0}
- bx r0
- .align 2, 0
-_0813BF10: .4byte gUnknown_03005ED0
-_0813BF14: .4byte 0x00000402
-_0813BF18: .4byte gTasks
-_0813BF1C: .4byte task_intro_6
- thumb_func_end sub_813BEEC
-
- thumb_func_start task_intro_6
-task_intro_6: @ 813BF20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl intro_reset_and_hide_bgs
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0813BF60 @ =gUnknown_02039358
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0813BF64 @ =gUnknown_0203935A
- strh r1, [r0]
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl load_intro_part2_graphics
- ldr r1, _0813BF68 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BF6C @ =sub_813BF70
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BF60: .4byte gUnknown_02039358
-_0813BF64: .4byte gUnknown_0203935A
-_0813BF68: .4byte gTasks
-_0813BF6C: .4byte sub_813BF70
- thumb_func_end task_intro_6
-
- thumb_func_start sub_813BF70
-sub_813BF70: @ 813BF70
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813BF88 @ =gUnknown_02039318
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813BF90
- ldr r0, _0813BF8C @ =gIntro2BrendanSpriteSheet
- bl LoadCompressedObjectPic
- b _0813BF96
- .align 2, 0
-_0813BF88: .4byte gUnknown_02039318
-_0813BF8C: .4byte gIntro2BrendanSpriteSheet
-_0813BF90:
- ldr r0, _0813BFBC @ =gIntro2MaySpriteSheet
- bl LoadCompressedObjectPic
-_0813BF96:
- ldr r0, _0813BFC0 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _0813BFC4 @ =gIntro2LatiasSpriteSheet, =gIntro2LatiosSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _0813BFC8 @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- ldr r0, _0813BFCC @ =gUnknown_02039318
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813BFD0
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x64
- bl sub_8149310
- b _0813BFDA
- .align 2, 0
-_0813BFBC: .4byte gIntro2MaySpriteSheet
-_0813BFC0: .4byte gIntro2BicycleSpriteSheet
- .ifdef SAPPHIRE
-_0813BFC4: .4byte gIntro2LatiasSpriteSheet
- .else
-_0813BFC4: .4byte gIntro2LatiosSpriteSheet
- .endif
-_0813BFC8: .4byte gIntro2SpritePalettes
-_0813BFCC: .4byte gUnknown_02039318
-_0813BFD0:
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x64
- bl sub_8149368
-_0813BFDA:
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _0813C060 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r2, 0
- adds r5, 0x1C
- adds r3, r0, r5
- ldr r1, _0813C064 @ =sub_813D788
- str r1, [r3]
- adds r2, 0x8
- adds r0, r2
- ldr r1, _0813C068 @ =gUnknown_0840AE80
- str r1, [r0]
- ldr r0, _0813C06C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r6, [r4, 0xA]
- movs r0, 0x40
- negs r0, r0
- movs r1, 0x3C
- .ifdef SAPPHIRE
- bl sapphire_sub_81494A0
- .else
- bl sub_8149424
- .endif
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- ldr r1, _0813C070 @ =sub_813D880
- str r1, [r0]
- strh r6, [r4, 0xC]
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C074 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813C078 @ =sub_813B784
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 7
- .ifdef SAPPHIRE
- movs r0, 0
- movs r2, 0x40
- .else
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x1
- .endif
- movs r3, 0x10
- bl sub_8148EC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl sub_8148C78
- ldr r0, _0813C07C @ =sub_813C080
- str r0, [r4]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C060: .4byte gSprites
-_0813C064: .4byte sub_813D788
-_0813C068: .4byte gUnknown_0840AE80
-_0813C06C: .4byte gTasks
-_0813C070: .4byte sub_813D880
-_0813C074: .4byte 0x0000ffff
-_0813C078: .4byte sub_813B784
-_0813C07C: .4byte sub_813C080
- thumb_func_end sub_813BF70
-
- thumb_func_start sub_813C080
-sub_813C080: @ 813C080
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r5, _0813C1BC @ =gUnknown_03005ED0
- ldr r1, [r5]
- ldr r0, _0813C1C0 @ =0x0000071f
- cmp r1, r0
- bls _0813C0B4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C1C4 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813C1C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813C1CC @ =sub_813C1F4
- str r1, [r0]
-_0813C0B4:
- ldr r1, [r5]
- ldr r0, _0813C1D0 @ =0x00000455
- ldr r3, _0813C1C8 @ =gTasks
- cmp r1, r0
- bne _0813C0D8
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813C0D8:
- ldr r1, [r5]
- ldr r0, _0813C1D8 @ =0x000004be
- cmp r1, r0
- bne _0813C0FA
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
-_0813C0FA:
- ldr r1, [r5]
- ldr r0, _0813C1DC @ =0x00000572
- cmp r1, r0
- bne _0813C11C
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xC
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813C11C:
- ldr r1, [r5]
- ldr r0, _0813C1E0 @ =0x00000576
- cmp r1, r0
- bne _0813C13E
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813C13E:
- ldr r1, [r5]
- ldr r0, _0813C1E4 @ =0x00000632
- cmp r1, r0
- bne _0813C160
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x2E]
-_0813C160:
- ldr r1, [r5]
- ldr r0, _0813C1E8 @ =0x000006bf
- cmp r1, r0
- bne _0813C182
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r4, 0xA
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0, 0x2E]
-_0813C182:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 18
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0x30
- bl Sin
- ldr r1, _0813C1EC @ =gUnknown_0203935A
- strh r0, [r1]
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r1, [r4, r7]
- ldr r0, _0813C1F0 @ =0x000001ff
- cmp r1, r0
- bgt _0813C1AE
- adds r0, r2, 0x1
- strh r0, [r4, 0xE]
-_0813C1AE:
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl sub_8149020
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C1BC: .4byte gUnknown_03005ED0
-_0813C1C0: .4byte 0x0000071f
-_0813C1C4: .4byte 0x0000ffff
-_0813C1C8: .4byte gTasks
-_0813C1CC: .4byte sub_813C1F4
-_0813C1D0: .4byte 0x00000455
-_0813C1D4: .4byte gSprites
-_0813C1D8: .4byte 0x000004be
-_0813C1DC: .4byte 0x00000572
-_0813C1E0: .4byte 0x00000576
-_0813C1E4: .4byte 0x00000632
-_0813C1E8: .4byte 0x000006bf
-_0813C1EC: .4byte gUnknown_0203935A
-_0813C1F0: .4byte 0x000001ff
- thumb_func_end sub_813C080
-
- thumb_func_start sub_813C1F4
-sub_813C1F4: @ 813C1F4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813C220 @ =gUnknown_03005ED0
- ldr r1, [r0]
- ldr r0, _0813C224 @ =0x00000814
- cmp r1, r0
- bls _0813C218
- ldr r0, _0813C228 @ =gTasks
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl DestroyTask
- ldr r0, _0813C22C @ =task_intro_10
- str r0, [r4]
-_0813C218:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C220: .4byte gUnknown_03005ED0
-_0813C224: .4byte 0x00000814
-_0813C228: .4byte gTasks
-_0813C22C: .4byte task_intro_10
- thumb_func_end sub_813C1F4
-
- thumb_func_start task_intro_10
-task_intro_10: @ 813C230
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl intro_reset_and_hide_bgs
- ldr r0, _0813C2C0 @ =gUnknown_08409C04
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0813C2C4 @ =gUnknown_08409AD4
- ldr r1, _0813C2C8 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _0813C2CC @ =gUnknown_084098D4
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadPalette
- ldr r0, _0813C2D0 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x78
- movs r1, 0x50
- movs r2, 0
- movs r3, 0
- bl sub_813CE30
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C2D4 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813C2D8 @ =REG_BG2CNT
- ldr r2, _0813C2DC @ =0x00004883
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r2, _0813C2E0 @ =0x00001441
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813C2E4 @ =task_intro_11
- str r0, [r4]
- ldr r0, _0813C2E8 @ =gUnknown_03005ED0
- str r5, [r0]
- movs r0, 0xDD
- lsls r0, 1
- bl m4aSongNumStart
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C2C0: .4byte gUnknown_08409C04
-_0813C2C4: .4byte gUnknown_08409AD4
-_0813C2C8: .4byte 0x06004000
-_0813C2CC: .4byte gUnknown_084098D4
-_0813C2D0: .4byte gTasks
-_0813C2D4: .4byte 0x0000ffff
-_0813C2D8: .4byte REG_BG2CNT
-_0813C2DC: .4byte 0x00004883
-_0813C2E0: .4byte 0x00001441
-_0813C2E4: .4byte task_intro_11
-_0813C2E8: .4byte gUnknown_03005ED0
- thumb_func_end task_intro_10
-
- thumb_func_start task_intro_11
-task_intro_11: @ 813C2EC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0813C324 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r1, [r3, 0x8]
- adds r0, r1
- strh r0, [r3, 0x8]
- ldrh r4, [r3, 0xA]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- ldr r0, _0813C328 @ =0x000006bf
- cmp r1, r0
- bgt _0813C32C
- ldrh r0, [r3, 0xC]
- adds r1, r4, r0
- strh r1, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- b _0813C330
- .align 2, 0
-_0813C324: .4byte gTasks
-_0813C328: .4byte 0x000006bf
-_0813C32C:
- ldr r0, _0813C378 @ =sub_813C384
- str r0, [r3]
-_0813C330:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r2
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldrh r3, [r4, 0x8]
- movs r0, 0x78
- movs r1, 0x50
- bl sub_813CE30
- ldr r0, _0813C37C @ =gUnknown_03005ED0
- ldr r0, [r0]
- cmp r0, 0x2C
- bne _0813C36E
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C380 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0813C36E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C378: .4byte sub_813C384
-_0813C37C: .4byte gUnknown_03005ED0
-_0813C380: .4byte 0x0000ffff
- thumb_func_end task_intro_11
-
- thumb_func_start sub_813C384
-sub_813C384: @ 813C384
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813C3A4 @ =gUnknown_03005ED0
- ldr r0, [r0]
- cmp r0, 0x3B
- bls _0813C3A0
- ldr r0, _0813C3A8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813C3AC @ =sub_813C3B0
- str r0, [r1]
-_0813C3A0:
- pop {r0}
- bx r0
- .align 2, 0
-_0813C3A4: .4byte gUnknown_03005ED0
-_0813C3A8: .4byte gTasks
-_0813C3AC: .4byte sub_813C3B0
- thumb_func_end sub_813C384
-
- thumb_func_start sub_813C3B0
-sub_813C3B0: @ 813C3B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl intro_reset_and_hide_bgs
- movs r1, 0
- ldr r2, _0813C4E4 @ =0x02000000
- movs r7, 0
- adds r6, r2, 0
- adds r6, 0x20
- adds r5, r2, 0
- adds r5, 0x40
- mov r12, r2
- movs r4, 0x11
- movs r3, 0x22
-_0813C3D4:
- adds r0, r1, r2
- strb r7, [r0]
- adds r0, r1, r6
- strb r4, [r0]
- adds r0, r1, r5
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1F
- bls _0813C3D4
- movs r1, 0xC0
- lsls r1, 19
- ldr r0, _0813C4E8 @ =0x040000d4
- mov r2, r12
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0813C4EC @ =0x80000030
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r1, 0
- ldr r5, _0813C4F0 @ =gPlttBufferUnfaded
- ldr r6, _0813C4F4 @ =gPlttBufferFaded
- mov r0, r8
- lsls r7, r0, 2
- ldr r4, _0813C4F8 @ =0x06003000
- ldr r2, _0813C4FC @ =0x0000f001
- adds r3, r2, 0
- ldr r2, _0813C500 @ =0x0000027f
-_0813C40E:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _0813C40E
- movs r1, 0
- ldr r3, _0813C504 @ =0x06003800
- ldr r0, _0813C508 @ =0x0000f002
- adds r2, r0, 0
-_0813C426:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7F
- bls _0813C426
- movs r1, 0
- ldr r4, _0813C50C @ =0x06003900
- movs r2, 0xF0
- lsls r2, 8
- adds r3, r2, 0
- ldr r2, _0813C510 @ =0x0000017f
-_0813C442:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _0813C442
- movs r1, 0
- ldr r3, _0813C514 @ =0x06003c00
- ldr r0, _0813C508 @ =0x0000f002
- adds r2, r0, 0
-_0813C45A:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7F
- bls _0813C45A
- movs r0, 0xF0
- lsls r0, 1
- adds r2, r5, r0
- movs r4, 0
- ldr r1, _0813C518 @ =0x00007fff
- strh r1, [r2]
- adds r0, r6, r0
- strh r1, [r0]
- movs r0, 0x1
- bl sub_813D084
- movs r0, 0xF2
- lsls r0, 1
- adds r1, r5, r0
- strh r4, [r1]
- adds r0, r6, r0
- strh r4, [r0]
- ldr r0, _0813C51C @ =gUnknown_0840A778
- ldr r1, _0813C520 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _0813C524 @ =gUnknown_0840A7E4
- ldr r1, _0813C528 @ =0x06007000
- bl LZ77UnCompVram
- ldr r0, _0813C52C @ =gUnknown_0840A758
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _0813C530 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0813C534 @ =gUnknown_0840B20C
- bl LoadCompressedObjectPic
- ldr r0, _0813C538 @ =gUnknown_0840B21C
- bl LoadCompressedObjectPic
- ldr r0, _0813C53C @ =gUnknown_0840B22C
- bl LoadCompressedObjectPalette
- ldr r0, _0813C540 @ =gUnknown_0840B23C
- bl LoadSpritePalettes
- ldr r1, _0813C544 @ =gTasks
- mov r2, r8
- adds r0, r7, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813C548 @ =sub_813C54C
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C4E4: .4byte 0x02000000
-_0813C4E8: .4byte 0x040000d4
-_0813C4EC: .4byte 0x80000030
-_0813C4F0: .4byte gPlttBufferUnfaded
-_0813C4F4: .4byte gPlttBufferFaded
-_0813C4F8: .4byte 0x06003000
-_0813C4FC: .4byte 0x0000f001
-_0813C500: .4byte 0x0000027f
-_0813C504: .4byte 0x06003800
-_0813C508: .4byte 0x0000f002
-_0813C50C: .4byte 0x06003900
-_0813C510: .4byte 0x0000017f
-_0813C514: .4byte 0x06003c00
-_0813C518: .4byte 0x00007fff
-_0813C51C: .4byte gUnknown_0840A778
-_0813C520: .4byte 0x06004000
-_0813C524: .4byte gUnknown_0840A7E4
-_0813C528: .4byte 0x06007000
-_0813C52C: .4byte gUnknown_0840A758
-_0813C530: .4byte gReservedSpritePaletteCount
-_0813C534: .4byte gUnknown_0840B20C
-_0813C538: .4byte gUnknown_0840B21C
-_0813C53C: .4byte gUnknown_0840B22C
-_0813C540: .4byte gUnknown_0840B23C
-_0813C544: .4byte gTasks
-_0813C548: .4byte sub_813C54C
- thumb_func_end sub_813C3B0
-
- thumb_func_start sub_813C54C
-sub_813C54C: @ 813C54C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0813C5BC @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x1C
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1D
- strh r0, [r1]
- subs r1, 0x3C
- ldr r2, _0813C5C0 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x6
- adds r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- movs r2, 0xE5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813C5C4 @ =sub_813CAF4
- movs r1, 0
- bl CreateTask
- ldr r5, _0813C5C8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- strh r0, [r1, 0x26]
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r5
- strh r3, [r0, 0x8]
- strh r3, [r1, 0x8]
- ldr r0, _0813C5CC @ =sub_813C5D0
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C5BC: .4byte REG_WIN0H
-_0813C5C0: .4byte 0x00000603
-_0813C5C4: .4byte sub_813CAF4
-_0813C5C8: .4byte gTasks
-_0813C5CC: .4byte sub_813C5D0
- thumb_func_end sub_813C54C
-
- thumb_func_start sub_813C5D0
-sub_813C5D0: @ 813C5D0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C600 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r1, [r3, 0x8]
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- cmp r0, 0x20
- beq _0813C608
- adds r0, r1, 0x4
- strh r0, [r3, 0x8]
- ldr r2, _0813C604 @ =REG_WIN0V
- movs r4, 0x8
- ldrsh r0, [r3, r4]
- lsls r0, 8
- subs r1, 0x9C
- subs r0, r1
- strh r0, [r2]
- b _0813C616
- .align 2, 0
-_0813C600: .4byte gTasks
-_0813C604: .4byte REG_WIN0V
-_0813C608:
- ldr r0, _0813C61C @ =REG_WIN0V
- movs r2, 0x82
- lsls r2, 6
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0813C620 @ =sub_813C624
- str r0, [r3]
-_0813C616:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C61C: .4byte REG_WIN0V
-_0813C620: .4byte sub_813C624
- thumb_func_end sub_813C5D0
-
- thumb_func_start sub_813C624
-sub_813C624: @ 813C624
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C638 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813C63C @ =sub_813C640
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813C638: .4byte gTasks
-_0813C63C: .4byte sub_813C640
- thumb_func_end sub_813C624
-
- thumb_func_start sub_813C640
-sub_813C640: @ 813C640
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C65C @ =gUnknown_0203931A
- movs r1, 0
- strh r1, [r2]
- ldr r2, _0813C660 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813C664 @ =sub_813C668
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813C65C: .4byte gUnknown_0203931A
-_0813C660: .4byte gTasks
-_0813C664: .4byte sub_813C668
- thumb_func_end sub_813C640
-
- thumb_func_start sub_813C668
-sub_813C668: @ 813C668
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813CA24 @ =gUnknown_03005ED0
- mov r8, r0
- ldr r0, [r0]
- cmp r0, 0x50
- bne _0813C6AC
- ldr r0, _0813CA28 @ =0x0000014b
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x5
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0813CA30 @ =sub_813DB9C
- str r2, [r1]
- adds r0, r3
- movs r1, 0
- strh r4, [r0, 0x30]
- strh r1, [r0, 0x32]
-_0813C6AC:
- mov r1, r8
- ldr r0, [r1]
- cmp r0, 0x98
- bne _0813C6E2
- ldr r0, _0813CA34 @ =0x00000169
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0
- movs r2, 0xA0
- movs r3, 0x4
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0813CA30 @ =sub_813DB9C
- str r2, [r1]
- adds r0, r3
- movs r1, 0x2
- strh r1, [r0, 0x30]
- strh r4, [r0, 0x32]
-_0813C6E2:
- mov r3, r8
- ldr r0, [r3]
- cmp r0, 0xDB
- bne _0813C720
- movs r0, 0
- bl sub_813D084
- ldr r0, _0813CA38 @ =gUnknown_02039318
- ldrh r0, [r0]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x60
- movs r3, 0x6
- bl sub_813CFA8
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA3C @ =sub_813DE70
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xA]
-_0813C720:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bne _0813C758
- ldr r3, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r3
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x4
- strh r2, [r0, 0x8]
- ldr r2, _0813CA2C @ =gSprites
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813C758:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC0
- lsls r0, 1
- cmp r1, r0
- bne _0813C790
- ldr r3, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r3
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0
- strh r2, [r0, 0x8]
- ldr r2, _0813CA2C @ =gSprites
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0, 0x2E]
-_0813C790:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC8
- lsls r0, 1
- cmp r1, r0
- bne _0813C7AE
- movs r0, 0xFF
- lsls r0, 16
- ldr r1, _0813CA44 @ =0x00007eff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0813C7AE:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xD8
- lsls r0, 1
- cmp r1, r0
- bne _0813C7D6
- ldr r2, _0813CA2C @ =gSprites
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x2E]
-_0813C7D6:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xE7
- lsls r0, 1
- cmp r1, r0
- bne _0813C80E
- ldr r3, _0813CA2C @ =gSprites
- ldr r4, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r4
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x6
- strh r2, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x8]
-_0813C80E:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA48 @ =0x000001cf
- cmp r1, r0
- bne _0813C854
- movs r0, 0x1
- bl sub_813D084
- ldr r0, _0813CA28 @ =0x0000014b
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xD0
- movs r2, 0x8
- movs r3, 0x5
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA4C @ =sub_813E10C
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xC]
- adds r0, r2, 0
- bl sub_813E7C0
-_0813C854:
- mov r3, r8
- ldr r1, [r3]
- ldr r0, _0813CA50 @ =0x0000021b
- cmp r1, r0
- bne _0813C894
- subs r0, 0xB2
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xF8
- movs r2, 0x10
- movs r3, 0x4
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA4C @ =sub_813E10C
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xE]
- adds r0, r2, 0
- bl sub_813E930
-_0813C894:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA54 @ =0x0000026f
- cmp r1, r0
- bne _0813C8D8
- ldr r4, _0813CA2C @ =gSprites
- ldr r5, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r5
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- movs r3, 0x2
- strh r3, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x3
- strh r1, [r0, 0x8]
-_0813C8D8:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x9C
- lsls r0, 2
- cmp r1, r0
- bne _0813C920
- movs r0, 0
- bl sub_813D084
- ldr r0, _0813CA58 @ =0x0000011b
- movs r1, 0
- str r1, [sp]
- movs r1, 0x20
- movs r2, 0x98
- movs r3, 0
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA5C @ =sub_813E210
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- adds r0, r2, 0
- bl sub_813EDBC
-_0813C920:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xAF
- lsls r0, 2
- cmp r1, r0
- bne _0813C966
- movs r0, 0x8C
- lsls r0, 1
- movs r1, 0x8
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x1
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA5C @ =sub_813E210
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
- adds r0, r2, 0
- bl sub_813EB4C
-_0813C966:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC2
- lsls r0, 2
- cmp r1, r0
- bne _0813C9B2
- ldr r1, _0813CA60 @ =gUnknown_0203931A
- movs r0, 0x1
- strh r0, [r1]
- ldr r4, _0813CA2C @ =gSprites
- ldr r6, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r6
- movs r3, 0x10
- ldrsh r2, [r1, r3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- movs r5, 0
- movs r3, 0x2
- strh r3, [r0, 0x2E]
- movs r0, 0x12
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r5, [r0, 0x8]
-_0813C9B2:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA64 @ =0x0000030d
- cmp r1, r0
- bne _0813CA76
- movs r0, 0x2
- bl sub_813D084
- ldr r4, _0813CA2C @ =gSprites
- ldr r0, _0813CA40 @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r2, r0
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x3
- strh r3, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r0, 0x12
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- ldr r0, _0813CA68 @ =gSpriteTemplate_840B1F4
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0xF
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- b _0813CA6C
- .align 2, 0
-_0813CA24: .4byte gUnknown_03005ED0
-_0813CA28: .4byte 0x0000014b
-_0813CA2C: .4byte gSprites
-_0813CA30: .4byte sub_813DB9C
-_0813CA34: .4byte 0x00000169
-_0813CA38: .4byte gUnknown_02039318
-_0813CA3C: .4byte sub_813DE70
-_0813CA40: .4byte gTasks
-_0813CA44: .4byte 0x00007eff
-_0813CA48: .4byte 0x000001cf
-_0813CA4C: .4byte sub_813E10C
-_0813CA50: .4byte 0x0000021b
-_0813CA54: .4byte 0x0000026f
-_0813CA58: .4byte 0x0000011b
-_0813CA5C: .4byte sub_813E210
-_0813CA60: .4byte gUnknown_0203931A
-_0813CA64: .4byte 0x0000030d
-_0813CA68: .4byte gSpriteTemplate_840B1F4
-_0813CA6C:
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0813CA76:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xC8
- lsls r0, 2
- cmp r1, r0
- bne _0813CA88
- movs r0, 0x67
- bl PlaySE
-_0813CA88:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CAC8 @ =0x00000352
- cmp r1, r0
- bne _0813CAA4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813CACC @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0813CAA4:
- mov r3, r8
- ldr r1, [r3]
- ldr r0, _0813CAD0 @ =0x000003b2
- cmp r1, r0
- bne _0813CABC
- ldr r0, _0813CAD4 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813CAD8 @ =sub_813CADC
- str r0, [r1]
-_0813CABC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CAC8: .4byte 0x00000352
-_0813CACC: .4byte 0x0000ffff
-_0813CAD0: .4byte 0x000003b2
-_0813CAD4: .4byte gTasks
-_0813CAD8: .4byte sub_813CADC
- thumb_func_end sub_813C668
-
- thumb_func_start sub_813CADC
-sub_813CADC: @ 813CADC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _0813CAF0 @ =CB2_813B7EC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813CAF0: .4byte CB2_813B7EC
- thumb_func_end sub_813CADC
-
- thumb_func_start sub_813CAF4
-sub_813CAF4: @ 813CAF4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813CB2C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x26]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0813CB18
- b _0813CC28
-_0813CB18:
- cmp r0, 0x4
- bgt _0813CB30
- cmp r0, 0x2
- beq _0813CB60
- cmp r0, 0x2
- bgt _0813CBC4
- cmp r0, 0
- beq _0813CB46
- b _0813CC8E
- .align 2, 0
-_0813CB2C: .4byte gTasks
-_0813CB30:
- cmp r0, 0x1E
- beq _0813CBEE
- cmp r0, 0x1E
- bgt _0813CB3E
- cmp r0, 0x14
- beq _0813CB8A
- b _0813CC8E
-_0813CB3E:
- cmp r0, 0x28
- bne _0813CB44
- b _0813CC56
-_0813CB44:
- b _0813CC8E
-_0813CB46:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xE5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813CB5C @ =REG_BG2CNT
- strh r6, [r0]
- movs r0, 0xFF
- strh r0, [r4, 0x8]
- b _0813CC8E
- .align 2, 0
-_0813CB5C: .4byte REG_BG2CNT
-_0813CB60:
- ldr r0, _0813CBB0 @ =0x0000ffff
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CBB4 @ =REG_BG2CNT
- ldr r2, _0813CBB8 @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x14
- strh r0, [r4, 0x8]
-_0813CB8A:
- ldr r2, _0813CBBC @ =REG_BG2VOFS
- ldr r0, _0813CBC0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- adds r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- subs r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CBB0: .4byte 0x0000ffff
-_0813CBB4: .4byte REG_BG2CNT
-_0813CBB8: .4byte 0x00000e07
-_0813CBBC: .4byte REG_BG2VOFS
-_0813CBC0: .4byte gTasks
-_0813CBC4:
- ldr r0, _0813CC14 @ =0x0000ffff
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CC18 @ =REG_BG2CNT
- ldr r2, _0813CC1C @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x1E
- strh r0, [r4, 0x8]
-_0813CBEE:
- ldr r2, _0813CC20 @ =REG_BG2VOFS
- ldr r0, _0813CC24 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- subs r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- adds r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CC14: .4byte 0x0000ffff
-_0813CC18: .4byte REG_BG2CNT
-_0813CC1C: .4byte 0x00000e07
-_0813CC20: .4byte REG_BG2VOFS
-_0813CC24: .4byte gTasks
-_0813CC28:
- ldr r0, _0813CC98 @ =0x000037f7
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x5
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813CC9C @ =REG_BG2CNT
- ldr r2, _0813CCA0 @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x8
- strh r0, [r4, 0xE]
- movs r0, 0x28
- strh r0, [r4, 0x8]
-_0813CC56:
- ldr r2, _0813CCA4 @ =REG_BG2VOFS
- ldr r1, _0813CCA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- strh r0, [r2]
- ldr r1, _0813CCAC @ =REG_BG2HOFS
- ldrh r0, [r3, 0xC]
- strh r0, [r1]
- ldrh r0, [r3, 0xA]
- ldrh r2, [r3, 0xE]
- subs r0, r2
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- adds r0, r2, r1
- strh r0, [r3, 0xC]
- ldrh r1, [r3, 0x26]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813CC8E
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813CC8E
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_0813CC8E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CC98: .4byte 0x000037f7
-_0813CC9C: .4byte REG_BG2CNT
-_0813CCA0: .4byte 0x00000e07
-_0813CCA4: .4byte REG_BG2VOFS
-_0813CCA8: .4byte gTasks
-_0813CCAC: .4byte REG_BG2HOFS
- thumb_func_end sub_813CAF4
-
- thumb_func_start intro_reset_and_hide_bgs
-intro_reset_and_hide_bgs: @ 813CCB0
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- thumb_func_end intro_reset_and_hide_bgs
-
- thumb_func_start sub_813CCE8
-sub_813CCE8: @ 813CCE8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813CD0C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813CD28
- lsls r0, 2
- ldr r1, _0813CD10 @ =_0813CD14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813CD0C: .4byte gTasks
-_0813CD10: .4byte _0813CD14
- .align 2, 0
-_0813CD14:
- .4byte _0813CD28
- .4byte _0813CD5C
- .4byte _0813CD8C
- .4byte _0813CDA8
- .4byte _0813CDFC
-_0813CD28:
- ldr r1, _0813CD54 @ =REG_BLDCNT
- ldr r4, _0813CD58 @ =0x00003f50
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r2
- movs r1, 0x40
- strh r1, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CD54: .4byte REG_BLDCNT
-_0813CD58: .4byte 0x00003f50
-_0813CD5C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0813CD78
- subs r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- b _0813CDC2
-_0813CD78:
- ldr r1, _0813CD84 @ =REG_BLDALPHA
- ldr r0, _0813CD88 @ =gUnknown_08393E64
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x80
- b _0813CDEA
- .align 2, 0
-_0813CD84: .4byte REG_BLDALPHA
-_0813CD88: .4byte gUnknown_08393E64
-_0813CD8C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r3, 0xA
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _0813CE0E
- strh r2, [r1, 0xA]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0813CE26
-_0813CDA8:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r0, 0x3D
- bgt _0813CDE0
- adds r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r1, 0xA
- ldrsh r0, [r2, r1]
-_0813CDC2:
- lsrs r1, r0, 31
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 1
- ldr r3, _0813CDD8 @ =REG_BLDALPHA
- ldr r1, _0813CDDC @ =gUnknown_08393E64
- ands r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- b _0813CE26
- .align 2, 0
-_0813CDD8: .4byte REG_BLDALPHA
-_0813CDDC: .4byte gUnknown_08393E64
-_0813CDE0:
- ldr r1, _0813CDF4 @ =REG_BLDALPHA
- ldr r0, _0813CDF8 @ =gUnknown_08393E64
- ldrh r0, [r0, 0x3E]
- strh r0, [r1]
- movs r0, 0x10
-_0813CDEA:
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CDF4: .4byte REG_BLDALPHA
-_0813CDF8: .4byte gUnknown_08393E64
-_0813CDFC:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r4, 0xA
- ldrsh r2, [r1, r4]
- cmp r2, 0
- beq _0813CE14
-_0813CE0E:
- subs r0, 0x1
- strh r0, [r1, 0xA]
- b _0813CE26
-_0813CE14:
- ldr r0, _0813CE2C @ =REG_BLDCNT
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, r3, 0
- bl DestroyTask
-_0813CE26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE2C: .4byte REG_BLDCNT
- thumb_func_end sub_813CCE8
-
- thumb_func_start sub_813CE30
-sub_813CE30: @ 813CE30
- push {r4,lr}
- sub sp, 0x24
- lsls r2, 16
- lsrs r2, 16
- movs r4, 0x80
- lsls r4, 8
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r4, sp
- strh r0, [r4, 0x8]
- mov r0, sp
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- strh r3, [r0, 0x10]
- add r4, sp, 0x14
- adds r1, r4, 0
- movs r2, 0x1
- bl BgAffineSet
- ldr r1, _0813CE84 @ =REG_BG2PA
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x6]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r4, 0x8]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r4, 0xC]
- str r0, [r1]
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE84: .4byte REG_BG2PA
- thumb_func_end sub_813CE30
-
- thumb_func_start sub_813CE88
-sub_813CE88: @ 813CE88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r4, 24
- lsrs r6, r4, 24
- cmp r6, 0
- beq _0813CEF0
- lsls r0, r7, 3
- ldr r1, _0813CEE4 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0813CEE8 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813CEEC @ =gUnknown_0840B5A0
- mov r6, r8
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- b _0813CF1C
- .align 2, 0
-_0813CEE4: .4byte gMonFrontPicTable
-_0813CEE8: .4byte gMonFrontPicCoords
-_0813CEEC: .4byte gUnknown_0840B5A0
-_0813CEF0:
- lsls r0, r7, 3
- ldr r1, _0813CF90 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _0813CF94 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0813CF98 @ =gUnknown_0840B5A0
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- bl sub_800D378
-_0813CF1C:
- ldr r2, _0813CF9C @ =0x0000ffff
- adds r0, r7, 0
- movs r1, 0
- bl species_and_otid_get_pal
- mov r6, r8
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0813CFA0 @ =gUnknown_02024E8C
- mov r3, r9
- lsls r1, r3, 16
- asrs r1, 16
- mov r5, r10
- lsls r2, r5, 16
- asrs r2, 16
- mov r3, r8
- adds r3, 0x1
- lsls r3, 26
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813CFA4 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813CF90: .4byte gMonBackPicTable
-_0813CF94: .4byte gMonBackPicCoords
-_0813CF98: .4byte gUnknown_0840B5A0
-_0813CF9C: .4byte 0x0000ffff
-_0813CFA0: .4byte gUnknown_02024E8C
-_0813CFA4: .4byte gSprites
- thumb_func_end sub_813CE88
-
- thumb_func_start sub_813CFA8
-sub_813CFA8: @ 813CFA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _0813D068 @ =gTrainerBackPicTable
- mov r8, r1
- add r8, r7
- ldr r1, _0813D06C @ =gTrainerBackPicCoords
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813D070 @ =gUnknown_0840B5A0
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _0813D074 @ =gTrainerBackPicPaletteTable
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _0813D078 @ =gUnknown_02024E8C
- ldr r1, _0813D07C @ =gUnknown_0840B064
- str r1, [r0, 0x8]
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813D080 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813D068: .4byte gTrainerBackPicTable
-_0813D06C: .4byte gTrainerBackPicCoords
-_0813D070: .4byte gUnknown_0840B5A0
-_0813D074: .4byte gTrainerBackPicPaletteTable
-_0813D078: .4byte gUnknown_02024E8C
-_0813D07C: .4byte gUnknown_0840B064
-_0813D080: .4byte gSprites
- thumb_func_end sub_813CFA8
-
- thumb_func_start sub_813D084
-sub_813D084: @ 813D084
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813D0A0
- cmp r0, 0x1
- ble _0813D096
- cmp r0, 0x2
- beq _0813D0A8
-_0813D096:
- ldr r2, _0813D09C @ =0x00003ff6
- b _0813D0AA
- .align 2, 0
-_0813D09C: .4byte 0x00003ff6
-_0813D0A0:
- ldr r2, _0813D0A4 @ =0x000031df
- b _0813D0AA
- .align 2, 0
-_0813D0A4: .4byte 0x000031df
-_0813D0A8:
- ldr r2, _0813D0C0 @ =0x0000518c
-_0813D0AA:
- ldr r0, _0813D0C4 @ =gPlttBufferUnfaded
- movs r1, 0xF1
- lsls r1, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0813D0C8 @ =gPlttBufferFaded
- adds r0, r1
- strh r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0813D0C0: .4byte 0x0000518c
-_0813D0C4: .4byte gPlttBufferUnfaded
-_0813D0C8: .4byte gPlttBufferFaded
- thumb_func_end sub_813D084
-
- thumb_func_start sub_813D0CC
-sub_813D0CC: @ 813D0CC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xBF
- ble _0813D148
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813D0EA
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- b _0813D14E
-_0813D0EA:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x32]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 5
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- subs r0, 0xC0
- cmp r0, 0
- bge _0813D12C
- adds r0, 0x7F
-_0813D12C:
- asrs r0, 7
- adds r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0813D13A
- movs r0, 0xF
-_0813D13A:
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- b _0813D14E
-_0813D148:
- adds r0, r4, 0
- bl DestroySprite
-_0813D14E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D0CC
-
- thumb_func_start sub_813D158
-sub_813D158: @ 813D158
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0813D1CC @ =gSprites
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0813D1D4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D1D0 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
- b _0813D200
- .align 2, 0
-_0813D1CC: .4byte gSprites
-_0813D1D0: .4byte sub_813D0CC
-_0813D1D4:
- ldrh r0, [r1, 0x24]
- strh r0, [r4, 0x24]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x26]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
-_0813D200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D158
-
- thumb_func_start sub_813D208
-sub_813D208: @ 813D208
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0813D218
- ldr r0, _0813D21C @ =sub_813D220
- str r0, [r1, 0x1C]
-_0813D218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813D21C: .4byte sub_813D220
- thumb_func_end sub_813D208
-
- thumb_func_start sub_813D220
-sub_813D220: @ 813D220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- ldrh r4, [r7, 0x20]
- movs r1, 0x20
- ldrsh r0, [r7, r1]
- cmp r0, 0x74
- bgt _0813D260
- ldrh r0, [r7, 0x26]
- ldrh r1, [r7, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x26]
- adds r0, r4, 0x4
- strh r0, [r7, 0x20]
- ldr r0, _0813D258 @ =0x0000fffc
- strh r0, [r7, 0x24]
- movs r0, 0x80
- strh r0, [r7, 0x36]
- ldr r0, _0813D25C @ =sub_813D368
- str r0, [r7, 0x1C]
- b _0813D352
- .align 2, 0
-_0813D258: .4byte 0x0000fffc
-_0813D25C: .4byte sub_813D368
-_0813D260:
- ldrh r1, [r7, 0x36]
- ldr r5, _0813D364 @ =gSineTable
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r0, r1, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r3, [r0]
- adds r1, 0x2
- strh r1, [r7, 0x36]
- lsls r2, 16
- asrs r0, r2, 16
- cmp r0, 0
- bge _0813D286
- adds r0, 0x1F
-_0813D286:
- asrs r0, 5
- strh r0, [r7, 0x26]
- subs r0, r4, 0x1
- strh r0, [r7, 0x20]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813D29C
- ldrh r0, [r7, 0x22]
- adds r0, 0x1
- strh r0, [r7, 0x22]
-_0813D29C:
- lsls r0, r3, 16
- asrs r0, 16
- negs r0, r0
- cmp r0, 0
- bge _0813D2A8
- adds r0, 0xF
-_0813D2A8:
- lsls r1, r0, 12
- lsrs r1, 16
- ldrh r4, [r7, 0x32]
- ldrh r3, [r7, 0x34]
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r1, 0x30
- lsls r1, 24
- lsrs r1, 23
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r1, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2D2
- adds r0, 0xFF
-_0813D2D2:
- lsls r0, 8
- lsrs r0, 16
- mov r8, r0
- lsls r0, r2, 16
- asrs r2, r0, 16
- negs r0, r2
- muls r0, r3
- cmp r0, 0
- bge _0813D2E6
- adds r0, 0xFF
-_0813D2E6:
- lsls r0, 8
- lsrs r0, 16
- mov r10, r0
- adds r0, r2, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2F6
- adds r0, 0xFF
-_0813D2F6:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r1, 0
- muls r0, r3
- cmp r0, 0
- bge _0813D304
- adds r0, 0xFF
-_0813D304:
- lsls r6, r0, 8
- lsrs r6, 16
- ldrh r0, [r7, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r3, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r5
- mov r1, r10
- lsls r5, r1, 16
- lsrs r3, r5, 16
- lsls r4, r6, 16
- str r6, [sp]
- mov r1, r8
- mov r2, r9
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 1
- lsrs r5, 16
- lsls r4, 1
- lsrs r4, 16
- str r4, [sp]
- mov r1, r8
- mov r2, r9
- adds r3, r5, 0
- bl SetOamMatrix
-_0813D352:
- 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
-_0813D364: .4byte gSineTable
- thumb_func_end sub_813D220
-
- thumb_func_start sub_813D368
-sub_813D368: @ 813D368
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0x40
- beq _0813D400
- adds r0, r1, 0
- subs r0, 0x8
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x36]
- adds r1, r0, 0
- ldr r2, _0813D3FC @ =gSineTable
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bge _0813D3E2
- adds r0, 0x3F
-_0813D3E2:
- asrs r0, 6
- strh r0, [r4, 0x24]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0813D3F6
- adds r0, 0x3F
-_0813D3F6:
- asrs r0, 6
- strh r0, [r4, 0x26]
- b _0813D408
- .align 2, 0
-_0813D3FC: .4byte gSineTable
-_0813D400:
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r0, _0813D410 @ =sub_813D414
- str r0, [r4, 0x1C]
-_0813D408:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D410: .4byte sub_813D414
- thumb_func_end sub_813D368
-
- thumb_func_start sub_813D414
-sub_813D414: @ 813D414
- push {r4,lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _0813D474
- ldrh r0, [r1, 0x36]
- adds r0, 0x8
- strh r0, [r1, 0x36]
- ldr r3, _0813D470 @ =gSineTable
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D438
- adds r0, 0xF
-_0813D438:
- asrs r0, 4
- adds r0, 0x40
- lsls r0, 16
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D454
- adds r0, 0x3F
-_0813D454:
- asrs r0, 6
- strh r0, [r1, 0x24]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813D468
- adds r0, 0x3F
-_0813D468:
- asrs r0, 6
- strh r0, [r1, 0x26]
- b _0813D478
- .align 2, 0
-_0813D470: .4byte gSineTable
-_0813D474:
- ldr r0, _0813D480 @ =sub_813D484
- str r0, [r1, 0x1C]
-_0813D478:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D480: .4byte sub_813D484
- thumb_func_end sub_813D414
-
- thumb_func_start sub_813D484
-sub_813D484: @ 813D484
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D49C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D4F8
-_0813D49C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D500 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D4F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D500: .4byte sub_813D0CC
- thumb_func_end sub_813D484
-
- thumb_func_start sub_813D504
-sub_813D504: @ 813D504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D51C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D578
-_0813D51C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D580 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D578:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D580: .4byte sub_813D0CC
- thumb_func_end sub_813D504
-
- thumb_func_start sub_813D584
-sub_813D584: @ 813D584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, [sp, 0x34]
- ldr r0, [sp, 0x38]
- mov r8, r0
- lsls r4, 16
- lsls r5, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r6, 16
- lsrs r6, 16
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813D640 @ =gSpriteTemplate_840AE20
- lsrs r2, r4, 16
- mov r10, r2
- asrs r4, 16
- lsrs r1, r5, 16
- str r1, [sp, 0x4]
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0813D644 @ =gSprites
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r5, r0, 2
- adds r4, r5, r2
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x3C]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r4, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r4, 0x34]
- strh r6, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x3A]
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- mov r1, r8
- cmp r1, 0
- bne _0813D64C
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D648 @ =sub_813D208
- b _0813D654
- .align 2, 0
-_0813D640: .4byte gSpriteTemplate_840AE20
-_0813D644: .4byte gSprites
-_0813D648: .4byte sub_813D208
-_0813D64C:
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D774 @ =sub_813D504
-_0813D654:
- str r1, [r0]
- str r7, [sp, 0x10]
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- ldr r0, [sp, 0x4]
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- ldr r0, _0813D778 @ =gSpriteTemplate_840AE20
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0813D77C @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r0, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- mov r9, r2
- strh r2, [r0, 0x30]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r2, r9
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 1
- ldrb r3, [r0, 0x3]
- movs r6, 0x3F
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x3]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r2, _0813D780 @ =gSprites + 0x1C
- adds r4, r2
- ldr r0, _0813D784 @ =sub_813D158
- str r0, [r4]
- ldr r0, _0813D778 @ =gSpriteTemplate_840AE20
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r5, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r5, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x2
- mov r8, r2
- strh r2, [r5, 0x30]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- mov r0, r8
- movs r2, 0x1F
- ands r0, r2
- lsls r0, 1
- ldrb r1, [r5, 0x3]
- ands r6, r1
- orrs r6, r0
- strb r6, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r0, _0813D780 @ =gSprites + 0x1C
- adds r4, r0
- ldr r1, _0813D784 @ =sub_813D158
- str r1, [r4]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x20
- lsls r4, r5, 16
- lsrs r4, 16
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 17
- lsrs r5, 16
- str r5, [sp]
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r0, [sp, 0x10]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813D774: .4byte sub_813D504
-_0813D778: .4byte gSpriteTemplate_840AE20
-_0813D77C: .4byte gSprites
-_0813D780: .4byte gSprites + 0x1C
-_0813D784: .4byte sub_813D158
- thumb_func_end sub_813D584
-
- thumb_func_start sub_813D788
-sub_813D788: @ 813D788
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813D830
- lsls r0, 2
- ldr r1, _0813D7A0 @ =_0813D7A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813D7A0: .4byte _0813D7A4
- .align 2, 0
-_0813D7A4:
- .4byte _0813D7B8
- .4byte _0813D7C6
- .4byte _0813D7E4
- .4byte _0813D80C
- .4byte _0813D816
-_0813D7B8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r0, [r4, 0x20]
- subs r0, 0x1
- b _0813D82E
-_0813D7C6:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldr r0, _0813D7E0 @ =gUnknown_03005ED0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _0813D82E
- .align 2, 0
-_0813D7E0: .4byte gUnknown_03005ED0
-_0813D7E4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _0813D802
- ldr r0, _0813D808 @ =gUnknown_03005ED0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0813D83C
-_0813D802:
- adds r0, r2, 0x1
- b _0813D82E
- .align 2, 0
-_0813D808: .4byte gUnknown_03005ED0
-_0813D80C:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _0813D830
-_0813D816:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _0813D830
- subs r0, r2, 0x2
-_0813D82E:
- strh r0, [r4, 0x20]
-_0813D830:
- ldr r0, _0813D84C @ =gUnknown_03005ED0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
-_0813D83C:
- movs r1, 0x26
- ldrsh r5, [r4, r1]
- cmp r5, 0
- beq _0813D850
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D84C: .4byte gUnknown_03005ED0
-_0813D850:
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x1
- beq _0813D878
- cmp r1, 0x1
- bgt _0813D866
- cmp r1, 0
- beq _0813D86E
- b _0813D87A
-_0813D866:
- cmp r1, 0x3
- bgt _0813D87A
- strh r5, [r4, 0x26]
- b _0813D87A
-_0813D86E:
- ldr r0, _0813D874 @ =0x0000ffff
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D874: .4byte 0x0000ffff
-_0813D878:
- strh r1, [r4, 0x26]
-_0813D87A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813D788
-
- thumb_func_start sub_813D880
-sub_813D880: @ 813D880
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813D89A
- cmp r0, 0x1
- ble _0813D8E2
- cmp r0, 0x2
- beq _0813D8BA
- cmp r0, 0x3
- beq _0813D8D4
- b _0813D8E2
-_0813D89A:
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- ldr r1, _0813D8B0 @ =0x0000012f
- cmp r0, r1
- bgt _0813D8B4
- ldrh r0, [r4, 0x24]
- adds r0, 0x8
- b _0813D8E0
- .align 2, 0
-_0813D8B0: .4byte 0x0000012f
-_0813D8B4:
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8BA:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _0813D8CE
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- b _0813D8E0
-_0813D8CE:
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8D4:
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0813D8E2
- subs r0, r1, 0x2
-_0813D8E0:
- strh r0, [r4, 0x24]
-_0813D8E2:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl Sin
- ldr r1, _0813D904 @ =gUnknown_0203935A
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D904: .4byte gUnknown_0203935A
- thumb_func_end sub_813D880
-
- thumb_func_start sub_813D908
-sub_813D908: @ 813D908
- push {lr}
- adds r3, r0, 0
- ldr r2, _0813D930 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0813D934
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0813D94E
- .align 2, 0
-_0813D930: .4byte gTasks
-_0813D934:
- cmp r0, 0x4
- beq _0813D948
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _0813D94E
-_0813D948:
- adds r0, r3, 0
- bl DestroySprite
-_0813D94E:
- pop {r0}
- bx r0
- thumb_func_end sub_813D908
-
- thumb_func_start sub_813D954
-sub_813D954: @ 813D954
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r5, 0
- ldr r7, _0813DA48 @ =gUnknown_0840AF50
- lsls r0, 16
- mov r9, r0
- lsls r0, r6, 16
- str r0, [sp, 0x4]
- mov r1, r9
- asrs r1, 16
- str r1, [sp]
-_0813D97C:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- ldrh r1, [r0]
- ldr r2, [sp]
- adds r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r3, r2, 16
- mov r10, r3
- ldr r0, _0813DA4C @ =0xfffc0000
- adds r2, r0
- ldr r0, _0813DA50 @ =gSpriteTemplate_840AF94
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813DA54 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x8
- bls _0813D97C
- movs r5, 0
- ldr r7, _0813DA58 @ =gUnknown_0840AF74
- mov r0, r10
- adds r0, 0xC
- lsls r0, 16
- mov r10, r0
-_0813D9D0:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- mov r2, r9
- asrs r1, r2, 16
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0813DA5C @ =gSpriteTemplate_840AFAC
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r6, _0813DA54 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _0813D9D0
- ldr r0, _0813DA60 @ =gSpriteTemplate_840AFC4
- ldr r3, [sp, 0x4]
- ldr r1, _0813DA4C @ =0xfffc0000
- adds r2, r3, r1
- asrs r2, 16
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x2E]
- adds r0, r2, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813DA48: .4byte gUnknown_0840AF50
-_0813DA4C: .4byte 0xfffc0000
-_0813DA50: .4byte gSpriteTemplate_840AF94
-_0813DA54: .4byte gSprites
-_0813DA58: .4byte gUnknown_0840AF74
-_0813DA5C: .4byte gSpriteTemplate_840AFAC
-_0813DA60: .4byte gSpriteTemplate_840AFC4
- thumb_func_end sub_813D954
-
- thumb_func_start sub_813DA64
-sub_813DA64: @ 813DA64
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DA7C
- cmp r0, 0x1
- beq _0813DAC0
-_0813DA7C:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x80
- strh r0, [r4, 0x30]
- ldr r0, _0813DABC @ =0x0000ffe8
- strh r0, [r4, 0x32]
- movs r0, 0
- b _0813DB92
- .align 2, 0
-_0813DABC: .4byte 0x0000ffe8
-_0813DAC0:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x4F
- bgt _0813DAF8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x78
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8C
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- ble _0813DAF8
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_0813DAF8:
- ldr r2, _0813DB60 @ =gSineTable
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r3, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- adds r1, r0, 0
- muls r1, r2
- adds r0, r1, 0
- cmp r1, 0
- bge _0813DB20
- adds r0, 0xFF
-_0813DB20:
- lsls r0, 8
- lsrs r6, r0, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- negs r0, r3
- muls r0, r2
- cmp r0, 0
- bge _0813DB32
- adds r0, 0xFF
-_0813DB32:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r3, 0
- muls r0, r2
- cmp r0, 0
- bge _0813DB40
- adds r0, 0xFF
-_0813DB40:
- lsls r0, 8
- lsrs r2, r0, 16
- adds r1, r6, 0
- adds r3, r5, 0
- str r1, [sp]
- movs r0, 0x1
- bl SetOamMatrix
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bgt _0813DB64
- adds r0, r1, 0
- adds r0, 0x8
- b _0813DB68
- .align 2, 0
-_0813DB60: .4byte gSineTable
-_0813DB64:
- adds r0, r1, 0
- adds r0, 0x20
-_0813DB68:
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x17
- bgt _0813DB78
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
-_0813DB78:
- ldrh r2, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- bgt _0813DB86
- adds r0, r2, 0x2
- b _0813DB92
-_0813DB86:
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813DB94
- adds r0, r2, 0x1
-_0813DB92:
- strh r0, [r4, 0x34]
-_0813DB94:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813DA64
-
- thumb_func_start sub_813DB9C
-sub_813DB9C: @ 813DB9C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813DBCC
- lsls r0, 2
- ldr r1, _0813DBB4 @ =_0813DBB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DBB4: .4byte _0813DBB8
- .align 2, 0
-_0813DBB8:
- .4byte _0813DBCC
- .4byte _0813DBF2
- .4byte _0813DC24
- .4byte _0813DC3E
- .4byte _0813DCAA
-_0813DBCC:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DBE0
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- b _0813DBEC
-_0813DBE0:
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
-_0813DBEC:
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DBF2:
- ldrh r1, [r4, 0x22]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- cmp r0, 0x60
- ble _0813DC18
- subs r0, r1, 0x4
- strh r0, [r4, 0x22]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC10
- ldrh r0, [r4, 0x20]
- adds r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC10:
- ldrh r0, [r4, 0x20]
- subs r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC18:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC24:
- ldrh r0, [r4, 0x34]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _0813DC34
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC34:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x34]
- b _0813DD4E
-_0813DC3E:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC8A
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DC9E
-_0813DC8A:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 1
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DC9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x36]
- b _0813DD4E
-_0813DCAA:
- ldrh r0, [r4, 0x36]
- adds r2, r0, 0x1
- strh r2, [r4, 0x36]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- adds r3, r0, 0
- muls r3, r0
- adds r0, r3, 0
- negs r0, r0
- cmp r0, 0
- bge _0813DCE6
- adds r0, 0x7
-_0813DCE6:
- asrs r0, 3
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0x32]
- cmp r0, 0
- beq _0813DCFA
- ldrh r0, [r4, 0x24]
- adds r0, r2
- b _0813DCFE
-_0813DCFA:
- ldrh r0, [r4, 0x24]
- subs r0, r2
-_0813DCFE:
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bgt _0813DD10
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x34]
-_0813DD10:
- ldrh r0, [r4, 0x34]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 16
- cmp r0, 0
- beq _0813DD34
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r2, [sp]
- b _0813DD3E
-_0813DD34:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
-_0813DD3E:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DD4E
-_0813DD48:
- adds r0, r4, 0
- bl DestroySprite
-_0813DD4E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DB9C
-
- thumb_func_start sub_813DD58
-sub_813DD58: @ 813DD58
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813DDAE
- cmp r0, 0x1
- ble _0813DD72
- cmp r0, 0x2
- beq _0813DE66
- cmp r0, 0x3
- beq _0813DE26
-_0813DD72:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DDAE:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _0813DDEE
- subs r1, 0x80
- strh r1, [r4, 0x34]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DDDA
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0x34]
- str r2, [sp]
- b _0813DDE4
-_0813DDDA:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x34]
- str r1, [sp]
-_0813DDE4:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE66
-_0813DDEE:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DE0C
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE1E
-_0813DE0C:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DE1E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0813DE66
-_0813DE26:
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- cmp r0, 0
- bge _0813DE3C
- adds r0, 0x1F
-_0813DE3C:
- asrs r0, 5
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DE56
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0813DE52
- adds r0, 0x3
-_0813DE52:
- asrs r0, 2
- b _0813DE64
-_0813DE56:
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _0813DE60
- adds r0, 0x3
-_0813DE60:
- asrs r0, 2
- negs r0, r0
-_0813DE64:
- strh r0, [r4, 0x24]
-_0813DE66:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DD58
-
- thumb_func_start sub_813DE70
-sub_813DE70: @ 813DE70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x6
- bhi _0813DEB0
- lsls r0, 2
- ldr r1, _0813DE90 @ =_0813DE94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DE90: .4byte _0813DE94
- .align 2, 0
-_0813DE94:
- .4byte _0813DEB0
- .4byte _0813E0F8
- .4byte _0813DEF4
- .4byte _0813DF2C
- .4byte _0813DF54
- .4byte _0813E0A8
- .4byte _0813E0D0
-_0813DEB0:
- ldrh r1, [r7, 0x20]
- movs r2, 0x20
- ldrsh r0, [r7, r2]
- cmp r0, 0x28
- ble _0813DEC0
- subs r0, r1, 0x4
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DEC0:
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r4, _0813DEF0 @ =gSpriteTemplate_840B084
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x68
- movs r3, 0x64
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3A]
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0x6A
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3C]
- b _0813DF42
- .align 2, 0
-_0813DEF0: .4byte gSpriteTemplate_840B084
-_0813DEF4:
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0813DF28 @ =gSprites
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrh r0, [r7, 0x2E]
- adds r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813DF28: .4byte gSprites
-_0813DF2C:
- ldrh r1, [r7, 0x22]
- movs r2, 0x22
- ldrsh r0, [r7, r2]
- cmp r0, 0xA0
- ble _0813DF48
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0813DF42:
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
-_0813DF48:
- adds r0, r1, 0x2
- strh r0, [r7, 0x22]
- ldrh r0, [r7, 0x20]
- subs r0, 0x1
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DF54:
- ldr r6, _0813E094 @ =gSprites
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- movs r0, 0x8C
- lsls r0, 1
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- movs r3, 0x1
- mov r8, r3
- str r3, [sp]
- movs r3, 0x2
- bl sub_813CE88
- strh r0, [r7, 0x3A]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098 @ =gSprites + 0x1C
- adds r0, r1
- ldr r2, _0813E09C @ =sub_813DD58
- mov r10, r2
- str r2, [r0]
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- mov r9, r2
- mov r3, r9
- orrs r1, r3
- strb r1, [r0]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x30]
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- ldr r0, _0813E0A0 @ =0x0000011b
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- mov r3, r8
- str r3, [sp]
- movs r3, 0x3
- bl sub_813CE88
- strh r0, [r7, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098 @ =gSprites + 0x1C
- adds r0, r1
- mov r2, r10
- str r2, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r9
- orrs r1, r2
- strb r1, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- strh r1, [r0, 0x30]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0xFF
- lsls r0, 16
- ldr r1, _0813E0A4 @ =0x00007eff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r2, r8
- strh r2, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E094: .4byte gSprites
-_0813E098: .4byte gSprites + 0x1C
-_0813E09C: .4byte sub_813DD58
-_0813E0A0: .4byte 0x0000011b
-_0813E0A4: .4byte 0x00007eff
-_0813E0A8:
- ldr r3, _0813E0CC @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x3
- strh r2, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E0CC: .4byte gSprites
-_0813E0D0:
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0813E108 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r7, 0
- bl DestroySprite
-_0813E0F8:
- 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
-_0813E108: .4byte gSprites
- thumb_func_end sub_813DE70
-
- thumb_func_start sub_813E10C
-sub_813E10C: @ 813E10C
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E13C
- lsls r0, 2
- ldr r1, _0813E124 @ =_0813E128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E124: .4byte _0813E128
- .align 2, 0
-_0813E128:
- .4byte _0813E13C
- .4byte _0813E178
- .4byte _0813E1A6
- .4byte _0813E1C2
- .4byte _0813E1D6
-_0813E13C:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r1, [r3, r2]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E158
- adds r0, r4, 0
- subs r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E158:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E208
-_0813E178:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E1A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E19C
- ldr r0, _0813E198 @ =0x0000ffff
- strh r0, [r3, 0x24]
- strh r2, [r3, 0x26]
- b _0813E1A0
- .align 2, 0
-_0813E198: .4byte 0x0000ffff
-_0813E19C:
- strh r0, [r3, 0x24]
- strh r0, [r3, 0x26]
-_0813E1A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E208
-_0813E1A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E208
-_0813E1C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E1D6:
- ldrh r2, [r3, 0x24]
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E1F0
- subs r0, r2, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E1F0:
- ldrh r1, [r3, 0x20]
- adds r0, r2, r1
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E208:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E10C
-
- thumb_func_start sub_813E210
-sub_813E210: @ 813E210
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E240
- lsls r0, 2
- ldr r1, _0813E228 @ =_0813E22C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E228: .4byte _0813E22C
- .align 2, 0
-_0813E22C:
- .4byte _0813E240
- .4byte _0813E278
- .4byte _0813E2A6
- .4byte _0813E2C2
- .4byte _0813E2D6
-_0813E240:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E258
- adds r0, r4, 0
- adds r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E258:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E304
-_0813E278:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E2A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E29C
- strh r2, [r3, 0x24]
- ldr r0, _0813E298 @ =0x0000ffff
- b _0813E29E
- .align 2, 0
-_0813E298: .4byte 0x0000ffff
-_0813E29C:
- strh r0, [r3, 0x24]
-_0813E29E:
- strh r0, [r3, 0x26]
-_0813E2A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E304
-_0813E2A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E304
-_0813E2C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E2D6:
- ldrh r1, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E2EC
- adds r0, r1, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E2EC:
- ldrh r2, [r3, 0x20]
- adds r0, r1, r2
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E304:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E210
-
- thumb_func_start sub_813E30C
-sub_813E30C: @ 813E30C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- bls _0813E322
- b _0813E4AC
-_0813E322:
- lsls r0, 2
- ldr r1, _0813E32C @ =_0813E330
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E32C: .4byte _0813E330
- .align 2, 0
-_0813E330:
- .4byte _0813E4AC
- .4byte _0813E384
- .4byte _0813E41C
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E3A8
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E440
-_0813E384:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E3A8:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x90
- bgt _0813E3D2
- adds r0, r1, 0x4
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E3D2:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E3EE
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E3EE
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E3EE:
- ldr r2, _0813E418 @ =gSineTable
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x1
- adds r2, r4, 0
- bl SetOamMatrix
- b _0813E4AC
- .align 2, 0
-_0813E418: .4byte gSineTable
-_0813E41C:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E440:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x60
- bgt _0813E46A
- adds r0, r1, 0x3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E46A:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E486
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E486
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E486:
- ldr r2, _0813E4B4 @ =gSineTable
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x2
- adds r2, r4, 0
- bl SetOamMatrix
-_0813E4AC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E4B4: .4byte gSineTable
- thumb_func_end sub_813E30C
-
- thumb_func_start sub_813E4B8
-sub_813E4B8: @ 813E4B8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E4DA
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _0813E4E4
-_0813E4DA:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
-_0813E4E4:
- strb r0, [r2]
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- ble _0813E4F8
- adds r0, r5, 0
- bl DestroySprite
- b _0813E574
-_0813E4F8:
- adds r0, r1, 0x2
- strh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x28
- bl Sin
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 29
- lsrs r0, 24
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl Cos
- strh r0, [r5, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- lsls r0, 29
- lsrs r0, 24
- adds r1, r4, 0
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0813E574
- ldrh r0, [r5, 0x34]
- ldrh r2, [r5, 0x30]
- subs r0, r2
- strh r0, [r5, 0x34]
- ldrh r1, [r5, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E550
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E550
- subs r0, r2, 0x1
- strh r0, [r5, 0x30]
-_0813E550:
- ldr r3, _0813E57C @ =gSineTable
- ldrh r1, [r5, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r3
- ldrh r2, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r3
- ldrh r1, [r1]
- negs r3, r2
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x10
- bl SetOamMatrix
-_0813E574:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E57C: .4byte gSineTable
- thumb_func_end sub_813E4B8
-
- thumb_func_start sub_813E580
-sub_813E580: @ 813E580
- push {r4-r7,lr}
- movs r4, 0
- ldr r7, _0813E5D8 @ =gSprites
- lsls r6, r0, 16
- lsls r5, r1, 16
-_0813E58A:
- ldr r0, _0813E5DC @ =gSpriteTemplate_840B0B0
- asrs r1, r6, 16
- asrs r2, r5, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r1, [r2, 0x1]
- movs r3, 0x4
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- subs r3, 0x3B
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r2, 0x3]
- strh r4, [r2, 0x2E]
- movs r0, 0x20
- strh r0, [r2, 0x30]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E58A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E5D8: .4byte gSprites
-_0813E5DC: .4byte gSpriteTemplate_840B0B0
- thumb_func_end sub_813E580
-
- thumb_func_start sub_813E5E0
-sub_813E5E0: @ 813E5E0
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813E5F4 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E5F8
- adds r0, r3, 0
- bl DestroySprite
- b _0813E6B2
- .align 2, 0
-_0813E5F4: .4byte gUnknown_0203931A
-_0813E5F8:
- ldr r2, _0813E6B8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r3, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- cmp r0, 0xB
- bgt _0813E630
- adds r0, r1, 0x1
- strh r0, [r3, 0x3C]
-_0813E630:
- ldrh r0, [r3, 0x3A]
- adds r0, 0x4
- strh r0, [r3, 0x3A]
- ldr r4, _0813E6BC @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E652
- adds r0, 0xFF
-_0813E652:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E674
- adds r0, 0xFF
-_0813E674:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r2, r0, r1
- strh r2, [r3, 0x22]
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813E696
- adds r0, 0xFF
-_0813E696:
- asrs r0, 8
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x32
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _0813E6B2
- adds r0, r3, 0
- bl DestroySprite
-_0813E6B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E6B8: .4byte gSprites
-_0813E6BC: .4byte gSineTable
- thumb_func_end sub_813E5E0
-
- thumb_func_start sub_813E6C0
-sub_813E6C0: @ 813E6C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0813E6E0 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E6E4
- adds r0, r4, 0
- bl DestroySprite
- b _0813E7A8
- .align 2, 0
-_0813E6E0: .4byte gUnknown_0203931A
-_0813E6E4:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r3, _0813E7B8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0813E7A8
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813E7A8
- ldrh r0, [r2, 0x20]
- ldrh r7, [r4, 0x30]
- adds r0, r7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldrh r0, [r2, 0x22]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- mov r8, r3
- ldr r2, [sp]
- lsls r2, 16
- mov r10, r2
- lsls r7, r6, 16
- mov r9, r7
-_0813E73A:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0813E7BC @ =gSpriteTemplate_840B0DC
- mov r2, r10
- asrs r1, r2, 16
- mov r7, r9
- asrs r2, r7, 16
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813E79E
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- add r3, r8
- ldrh r0, [r4, 0x2E]
- strh r0, [r3, 0x2E]
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 18
- movs r0, 0x7
- ands r1, r0
- lsls r1, 5
- lsls r0, r5, 2
- adds r0, r5
- lsls r2, r0, 4
- adds r0, r2
- adds r1, r0
- strh r1, [r3, 0x30]
- ldrh r0, [r4, 0x34]
- strh r0, [r3, 0x32]
- movs r0, 0x68
- strh r0, [r3, 0x34]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r3, 0x36]
- strh r6, [r3, 0x38]
- movs r1, 0
- strh r1, [r3, 0x3A]
-_0813E79E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0813E73A
-_0813E7A8:
- 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
-_0813E7B8: .4byte gSprites
-_0813E7BC: .4byte gSpriteTemplate_840B0DC
- thumb_func_end sub_813E6C0
-
- thumb_func_start sub_813E7C0
-sub_813E7C0: @ 813E7C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813E7F8 @ =gSpriteTemplate_840B0F4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813E7F2
- ldr r1, _0813E7FC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r2, 0
- strh r4, [r0, 0x2E]
- ldr r1, _0813E800 @ =0x0000fff4
- strh r1, [r0, 0x30]
- strh r2, [r0, 0x32]
- movs r1, 0x88
- strh r1, [r0, 0x34]
-_0813E7F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E7F8: .4byte gSpriteTemplate_840B0F4
-_0813E7FC: .4byte gSprites
-_0813E800: .4byte 0x0000fff4
- thumb_func_end sub_813E7C0
-
- thumb_func_start sub_813E804
-sub_813E804: @ 813E804
- push {r4-r7,lr}
- adds r3, r0, 0
- ldr r0, _0813E818 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E81C
- adds r0, r3, 0
- bl DestroySprite
- b _0813E928
- .align 2, 0
-_0813E818: .4byte gUnknown_0203931A
-_0813E81C:
- ldr r6, _0813E904 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r7, r12
- ldrb r2, [r7]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0x27
- bgt _0813E85A
- adds r0, r1, 0x2
- strh r0, [r3, 0x34]
-_0813E85A:
- movs r7, 0x2E
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r2, r1, r0
- ldr r4, _0813E908 @ =gSineTable
- ldrh r5, [r3, 0x30]
- adds r0, r5, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E88A
- adds r0, 0xFF
-_0813E88A:
- asrs r0, 8
- adds r0, r2, r0
- strh r0, [r3, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r1, r0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E8BE
- ldr r1, _0813E90C @ =0x000001ff
- adds r0, r1
-_0813E8BE:
- asrs r0, 9
- adds r0, r2, r0
- strh r0, [r3, 0x22]
- adds r1, r5, 0x2
- strh r1, [r3, 0x30]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r0, [r0, r7]
- cmp r0, 0
- bge _0813E8DC
- adds r0, 0x1F
-_0813E8DC:
- asrs r0, 5
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x32]
- adds r0, 0x8
- strh r0, [r3, 0x32]
- movs r0, 0xFF
- ands r1, r0
- cmp r1, 0x7F
- bgt _0813E910
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- b _0813E922
- .align 2, 0
-_0813E904: .4byte gSprites
-_0813E908: .4byte gSineTable
-_0813E90C: .4byte 0x000001ff
-_0813E910:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
-_0813E922:
- adds r1, r3, 0
- adds r1, 0x43
- strb r0, [r1]
-_0813E928:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813E804
-
- thumb_func_start sub_813E930
-sub_813E930: @ 813E930
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r7, _0813E978 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r7
-_0813E942:
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r0, 0x22
- ldrsh r2, [r5, r0]
- ldr r0, _0813E97C @ =gSpriteTemplate_840B124
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0813E968
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r6, [r0, 0x2E]
- lsls r1, r4, 5
- strh r1, [r0, 0x30]
-_0813E968:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E942
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E978: .4byte gSprites
-_0813E97C: .4byte gSpriteTemplate_840B124
- thumb_func_end sub_813E930
-
- thumb_func_start GetCurrentTrainerHillMapId
-GetCurrentTrainerHillMapId: @ 813E980
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _0813E994 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E998
- adds r0, r3, 0
- bl DestroySprite
- b _0813EA50
- .align 2, 0
-_0813E994: .4byte gUnknown_0203931A
-_0813E998:
- ldr r2, _0813EA58 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r5, r12
- ldrb r2, [r5]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r4, r0, 0
- adds r4, 0x8
- strh r4, [r3, 0x3A]
- ldr r2, _0813EA5C @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813E9EC
- adds r0, 0xFF
-_0813E9EC:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813EA0E
- adds r0, 0xFF
-_0813EA0E:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r0, r1
- strh r0, [r3, 0x22]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0813EA20
- adds r0, 0xF
-_0813EA20:
- asrs r0, 4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _0813EA2C
- movs r0, 0x9
-_0813EA2C:
- adds r1, r0, 0
- adds r1, 0x12
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _0813EA50
- adds r0, r3, 0
- bl DestroySprite
-_0813EA50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EA58: .4byte gSprites
-_0813EA5C: .4byte gSineTable
- thumb_func_end GetCurrentTrainerHillMapId
-
- thumb_func_start sub_813EA60
-sub_813EA60: @ 813EA60
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _0813EA7C @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EA80
- adds r0, r5, 0
- bl DestroySprite
- b _0813EB32
- .align 2, 0
-_0813EA7C: .4byte gUnknown_0203931A
-_0813EA80:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EB40 @ =gSprites
- mov r9, r0
- movs r4, 0x2E
- ldrsh r1, [r5, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r9
- adds r3, r0, r1
- movs r4, 0x2E
- ldrsh r1, [r3, r4]
- cmp r1, 0x1
- bne _0813EB32
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813EB32
- ldrh r1, [r3, 0x20]
- ldrh r0, [r5, 0x30]
- adds r1, r0
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EB44 @ =gSpriteTemplate_840B150
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813EB32
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldr r2, _0813EB48 @ =gUnknown_0840B168
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7
- ands r0, r1
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813EB32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EB40: .4byte gSprites
-_0813EB44: .4byte gSpriteTemplate_840B150
-_0813EB48: .4byte gUnknown_0840B168
- thumb_func_end sub_813EA60
-
- thumb_func_start sub_813EB4C
-sub_813EB4C: @ 813EB4C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EBB0 @ =gSpriteTemplate_840B170
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EB80
- ldr r1, _0813EBB4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0x8
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EB80:
- movs r4, 0
- ldr r5, _0813EBB8 @ =gUnknown_0840B188
-_0813EB84:
- adds r0, r4, 0
- adds r0, 0x12
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0813EB84
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EBB0: .4byte gSpriteTemplate_840B170
-_0813EBB4: .4byte gSprites
-_0813EBB8: .4byte gUnknown_0840B188
- thumb_func_end sub_813EB4C
-
- thumb_func_start sub_813EBBC
-sub_813EBBC: @ 813EBBC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813EBD0 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EBD4
- adds r0, r3, 0
- bl DestroySprite
- b _0813EC80
- .align 2, 0
-_0813EBD0: .4byte gUnknown_0203931A
-_0813EBD4:
- ldr r2, _0813EC88 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r0, 0x8
- strh r0, [r3, 0x3A]
- ldr r2, _0813EC8C @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC26
- adds r0, 0xFF
-_0813EC26:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r4, 0x34
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC48
- adds r0, 0xFF
-_0813EC48:
- asrs r0, 8
- ldrh r4, [r3, 0x38]
- adds r1, r0, r4
- strh r1, [r3, 0x22]
- movs r4, 0x30
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813EC64
- adds r0, 0x3F
-_0813EC64:
- asrs r0, 6
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- movs r4, 0x32
- ldrsh r1, [r3, r4]
- cmp r0, r1
- bge _0813EC80
- adds r0, r3, 0
- bl DestroySprite
-_0813EC80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EC88: .4byte gSprites
-_0813EC8C: .4byte gSineTable
- thumb_func_end sub_813EBBC
-
- thumb_func_start sub_813EC90
-sub_813EC90: @ 813EC90
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _0813ECAC @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813ECB0
- adds r0, r5, 0
- bl DestroySprite
- b _0813EDA0
- .align 2, 0
-_0813ECAC: .4byte gUnknown_0203931A
-_0813ECB0:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EDB0 @ =gSprites
- mov r9, r0
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r4, r9
- adds r3, r0, r4
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- bne _0813ED74
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813ED66
- ldrh r1, [r3, 0x20]
- ldrh r2, [r5, 0x30]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EDB4 @ =gSpriteTemplate_840B1B0
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813ED66
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x22
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 18
- movs r1, 0x7
- ands r0, r1
- lsls r0, 5
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x34]
- strh r0, [r4, 0x32]
- movs r0, 0xE8
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813ED66:
- ldrh r1, [r5, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- cmp r0, 0x6F
- bgt _0813ED74
- adds r0, r1, 0x4
- strh r0, [r5, 0x3A]
-_0813ED74:
- ldr r1, _0813EDB8 @ =gSineTable
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r4, 0
- ldrsh r0, [r0, r4]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x11
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813EDA0:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDB0: .4byte gSprites
-_0813EDB4: .4byte gSpriteTemplate_840B1B0
-_0813EDB8: .4byte gSineTable
- thumb_func_end sub_813EC90
-
- thumb_func_start sub_813EDBC
-sub_813EDBC: @ 813EDBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EDF4 @ =gSpriteTemplate_840B1C8
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EDEE
- ldr r1, _0813EDF8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0xC
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EDEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDF4: .4byte gSpriteTemplate_840B1C8
-_0813EDF8: .4byte gSprites
- thumb_func_end sub_813EDBC
-
- thumb_func_start sub_813EDFC
-sub_813EDFC: @ 813EDFC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0813EE12
- adds r4, r5, 0
- adds r4, 0x3E
- cmp r0, 0x1
- beq _0813EE4A
-_0813EE12:
- adds r4, r5, 0
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
-_0813EE4A:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813EE62
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- b _0813EE7A
-_0813EE62:
- ldrb r0, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- ldrh r1, [r5, 0x30]
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- bgt _0813EE7A
- adds r0, r1, 0x1
- strh r0, [r5, 0x30]
-_0813EE7A:
- ldr r1, _0813EEB0 @ =gSineTable
- ldrh r0, [r5, 0x30]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x12
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EEB0: .4byte gSineTable
- thumb_func_end sub_813EDFC
-
- thumb_func_start FieldInitRegionMap
-FieldInitRegionMap: @ 813EEB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl SetVBlankCallback
- ldr r2, _0813EED8 @ =0x02000000
- ldr r0, _0813EEDC @ =0x00000888
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- str r4, [r2]
- ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EED8: .4byte 0x02000000
-_0813EEDC: .4byte 0x00000888
-_0813EEE0: .4byte CB2_FieldInitRegionMap
- thumb_func_end FieldInitRegionMap
-
- thumb_func_start CB2_FieldInitRegionMap
-CB2_FieldInitRegionMap: @ 813EEE4
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0813EF98 @ =0x02000008
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0
- movs r1, 0
- bl sub_80FBCF0
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBB3C
- ldr r4, _0813EF9C @ =gWindowConfig_81E709C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r1, _0813EFA0 @ =REG_BG0CNT
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x15
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813EFA4 @ =gOtherText_Hoenn
- movs r1, 0x16
- movs r2, 0x1
- movs r3, 0x38
- bl sub_8072BD8
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_813F0C8
- ldr r0, _0813EFA8 @ =CB2_FieldRegionMap
- bl SetMainCallback2
- ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EF98: .4byte 0x02000008
-_0813EF9C: .4byte gWindowConfig_81E709C
-_0813EFA0: .4byte REG_BG0CNT
-_0813EFA4: .4byte gOtherText_Hoenn
-_0813EFA8: .4byte CB2_FieldRegionMap
-_0813EFAC: .4byte VBlankCB_FieldRegionMap
- thumb_func_end CB2_FieldInitRegionMap
-
- thumb_func_start VBlankCB_FieldRegionMap
-VBlankCB_FieldRegionMap: @ 813EFB0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_FieldRegionMap
-
- thumb_func_start CB2_FieldRegionMap
-CB2_FieldRegionMap: @ 813EFC4
- push {lr}
- bl sub_813EFDC
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_FieldRegionMap
-
- thumb_func_start sub_813EFDC
-sub_813EFDC: @ 813EFDC
- push {lr}
- sub sp, 0x4
- ldr r1, _0813EFF8 @ =0x02000000
- ldr r2, _0813EFFC @ =0x00000888
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813F0B8
- lsls r0, 2
- ldr r1, _0813F000 @ =_0813F004
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813EFF8: .4byte 0x02000000
-_0813EFFC: .4byte 0x00000888
-_0813F000: .4byte _0813F004
- .align 2, 0
-_0813F004:
- .4byte _0813F018
- .4byte _0813F030
- .4byte _0813F04C
- .4byte _0813F078
- .4byte _0813F0A0
-_0813F018:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0813F028 @ =0x00001541
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0813F02C @ =0x00000888
- adds r1, r2, r0
- b _0813F08E
- .align 2, 0
-_0813F028: .4byte 0x00001541
-_0813F02C: .4byte 0x00000888
-_0813F030:
- ldr r0, _0813F044 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- ldr r3, _0813F048 @ =0x00000888
- adds r1, r2, r3
- b _0813F08E
- .align 2, 0
-_0813F044: .4byte gPaletteFade
-_0813F048: .4byte 0x00000888
-_0813F04C:
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0813F05E
- bl sub_813F0C8
- b _0813F0B8
-_0813F05E:
- cmp r0, 0x3
- blt _0813F0B8
- cmp r0, 0x5
- bgt _0813F0B8
- ldr r1, _0813F070 @ =0x02000000
- ldr r0, _0813F074 @ =0x00000888
- adds r1, r0
- b _0813F08E
- .align 2, 0
-_0813F070: .4byte 0x02000000
-_0813F074: .4byte 0x00000888
-_0813F078:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813F098 @ =0x02000000
- ldr r2, _0813F09C @ =0x00000888
- adds r1, r2
-_0813F08E:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0813F0B8
- .align 2, 0
-_0813F098: .4byte 0x02000000
-_0813F09C: .4byte 0x00000888
-_0813F0A0:
- ldr r0, _0813F0C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- bl sub_80FAB10
- ldr r0, _0813F0C4 @ =0x02000000
- ldr r0, [r0]
- bl SetMainCallback2
-_0813F0B8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0C0: .4byte gPaletteFade
-_0813F0C4: .4byte 0x02000000
- thumb_func_end sub_813EFDC
-
- thumb_func_start sub_813F0C8
-sub_813F0C8: @ 813F0C8
- push {lr}
- movs r0, 0x11
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _0813F0F0 @ =0x02000000
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _0813F0EA
- adds r0, r1, 0
- adds r0, 0x8
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
-_0813F0EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0F0: .4byte 0x02000000
- thumb_func_end sub_813F0C8
-
- thumb_func_start unref_sub_813F0F4
-unref_sub_813F0F4: @ 813F0F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- ldr r0, _0813F2AC @ =gUnknown_0202F7C8
- ldrb r3, [r0]
- ldr r0, _0813F2B0 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0813F2B4 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _0813F2B8 @ =REG_WININ
- ldr r2, _0813F2BC @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r4, _0813F2C0 @ =0x00003f3d
- adds r0, r4, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r4, 0x80
- lsls r4, 8
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0813F2C4 @ =REG_BLDCNT
- ldr r2, _0813F2C8 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- ldr r2, _0813F2CC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r4, r8
- orrs r0, r4
- strb r0, [r2]
- ldr r0, _0813F2D0 @ =gUnknown_03004340
- adds r3, r0
- ldrb r0, [r3]
- ldr r1, _0813F2D4 @ =gSprites
- mov r10, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r7, [r4, 0x6]
- ldrh r6, [r4, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F2D8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r0, _0813F2D8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- ldrb r1, [r4, 0x5]
- mov r0, r9
- ands r0, r1
- mov r2, r8
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r5, r7, 4
- adds r5, r7
- lsls r5, 2
- add r5, r10
- ldrb r1, [r5, 0x5]
- mov r0, r9
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r10
- ldrb r2, [r1, 0x5]
- mov r0, r9
- ands r0, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [sp, 0x14]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- mov r1, r10
- adds r7, r6, r1
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x44
- bl memcpy
- ldr r2, [sp, 0x18]
- lsls r4, r2, 4
- adds r4, r2
- lsls r4, 2
- adds r0, r4, 0
- add r0, r10
- mov r8, r0
- adds r1, r5, 0
- movs r2, 0x44
- bl memcpy
- ldrb r1, [r7, 0x1]
- mov r0, r9
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x1]
- mov r2, r8
- ldrb r0, [r2, 0x1]
- mov r2, r9
- ands r2, r0
- orrs r2, r1
- mov r0, r8
- strb r2, [r0, 0x1]
- movs r1, 0x1C
- add r10, r1
- add r6, r10
- ldr r2, _0813F2D8 @ =SpriteCallbackDummy
- str r2, [r6]
- add r4, r10
- str r2, [r4]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _0813F2DC @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0813F2E0 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0813F2E4 @ =gUnknown_08D2EE48
- bl LZDecompressVram
- ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0813F2EC @ =gUnknown_08D2E150
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0813F2F0 @ =gUnknown_030042C0
- ldrh r0, [r7, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F4 @ =gUnknown_030041B4
- ldrh r0, [r7, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F8 @ =gTasks
- ldr r4, [sp, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA0
- lsls r1, 2
- strh r1, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0, 0x8]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0xC]
- ldr r1, _0813F2FC @ =sub_813F300
- str r1, [r0]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F2AC: .4byte gUnknown_0202F7C8
-_0813F2B0: .4byte gUnknown_030042C4
-_0813F2B4: .4byte gUnknown_03004240
-_0813F2B8: .4byte REG_WININ
-_0813F2BC: .4byte 0x00003f3f
-_0813F2C0: .4byte 0x00003f3d
-_0813F2C4: .4byte REG_BLDCNT
-_0813F2C8: .4byte 0x00003f42
-_0813F2CC: .4byte REG_BG1CNT
-_0813F2D0: .4byte gUnknown_03004340
-_0813F2D4: .4byte gSprites
-_0813F2D8: .4byte SpriteCallbackDummy
-_0813F2DC: .4byte 0x040000d4
-_0813F2E0: .4byte 0x85000400
-_0813F2E4: .4byte gUnknown_08D2EE48
-_0813F2E8: .4byte gUnknown_08D2EDFC
-_0813F2EC: .4byte gUnknown_08D2E150
-_0813F2F0: .4byte gUnknown_030042C0
-_0813F2F4: .4byte gUnknown_030041B4
-_0813F2F8: .4byte gTasks
-_0813F2FC: .4byte sub_813F300
- thumb_func_end unref_sub_813F0F4
-
- thumb_func_start sub_813F300
-sub_813F300: @ 813F300
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813F34C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- mov r9, r0
- ldr r1, _0813F350 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- movs r3, 0
- strh r1, [r4, 0x22]
- ldr r2, _0813F354 @ =gUnknown_030041B4
- lsls r0, r1, 16
- lsrs r0, 24
- ldrh r5, [r2]
- adds r0, r5
- strh r0, [r2]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x22]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F394
- cmp r0, 0x1
- bgt _0813F358
- cmp r0, 0
- beq _0813F35E
- b _0813F4B2
- .align 2, 0
-_0813F34C: .4byte gUnknown_0202F7C8
-_0813F350: .4byte gTasks
-_0813F354: .4byte gUnknown_030041B4
-_0813F358:
- cmp r0, 0x2
- beq _0813F3AC
- b _0813F4B2
-_0813F35E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0813F36E
- b _0813F4B2
-_0813F36E:
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _0813F390 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _0813F38C
- b _0813F4B2
-_0813F38C:
- b _0813F3A4
- .align 2, 0
-_0813F390: .4byte REG_BLDALPHA
-_0813F394:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- beq _0813F3A4
- b _0813F4B2
-_0813F3A4:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _0813F4B2
-_0813F3AC:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0813F4B2
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r6, _0813F4C0 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r6]
- movs r3, 0x20
- ldrsh r5, [r4, r3]
- cmp r5, 0
- bne _0813F4B2
- movs r0, 0
- bl sub_8076464
- ldr r0, _0813F4C4 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _0813F4C8 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _0813F4CC @ =REG_WININ
- ldr r2, _0813F4D0 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0813F406
- ldr r2, _0813F4D4 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0813F406:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _0813F4D8 @ =REG_BLDCNT
- strh r5, [r0]
- strh r5, [r6]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813F4DC @ =gSprites
- mov r8, r1
- add r0, r8
- bl DestroySprite
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _0813F4E0 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0813F4E4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r2, _0813F4D4 @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _0813F4E8 @ =gUnknown_03004340
- add r0, r9
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r6, [r1, 0x6]
- ldrh r4, [r1, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r5, 0x4
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x5]
- ands r2, r1
- orrs r2, r5
- strb r2, [r0, 0x5]
- adds r0, r7, 0
- bl move_anim_task_del
-_0813F4B2:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F4C0: .4byte REG_BLDALPHA
-_0813F4C4: .4byte gUnknown_030042C4
-_0813F4C8: .4byte gUnknown_03004240
-_0813F4CC: .4byte REG_WININ
-_0813F4D0: .4byte 0x00003f3f
-_0813F4D4: .4byte REG_BG1CNT
-_0813F4D8: .4byte REG_BLDCNT
-_0813F4DC: .4byte gSprites
-_0813F4E0: .4byte 0x040000d4
-_0813F4E4: .4byte 0x85000200
-_0813F4E8: .4byte gUnknown_03004340
- thumb_func_end sub_813F300
-
- thumb_func_start sub_813F4EC
-sub_813F4EC: @ 813F4EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, _0813F5D0 @ =gUnknown_03004340
- ldr r0, _0813F5D4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r7, _0813F5D8 @ =gSprites
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- adds r6, r7
- ldrb r0, [r6, 0x6]
- str r0, [sp, 0x4]
- ldrh r4, [r6, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F5DC @ =0x0000d709
- bl AllocSpritePalette
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813F5E0 @ =0x0000d70a
- bl AllocSpritePalette
- mov r9, r0
- mov r2, r9
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldrb r0, [r6, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r3, r1, 0
- orrs r0, r3
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r7
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- lsls r4, 4
- orrs r4, r3
- lsls r0, 1
- ldr r2, _0813F5E4 @ =gPlttBufferUnfaded
- mov r10, r2
- add r0, r10
- mov r1, r8
- lsls r1, 4
- mov r8, r1
- adds r1, r3, r1
- movs r2, 0x20
- str r3, [sp, 0x8]
- bl LoadPalette
- lsls r4, 1
- add r4, r10
- mov r2, r9
- lsls r2, 4
- mov r9, r2
- ldr r3, [sp, 0x8]
- add r3, r9
- adds r0, r4, 0
- adds r1, r3, 0
- movs r2, 0x20
- bl LoadPalette
- ldrb r1, [r6, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r1
- mov r3, r8
- orrs r0, r3
- strb r0, [r6, 0x5]
- ldr r0, [sp, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5, 0x5]
- ands r2, r0
- mov r0, r9
- orrs r2, r0
- strb r2, [r5, 0x5]
- ldr r0, [sp]
- bl move_anim_task_del
- 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
-_0813F5D0: .4byte gUnknown_03004340
-_0813F5D4: .4byte gUnknown_0202F7C8
-_0813F5D8: .4byte gSprites
-_0813F5DC: .4byte 0x0000d709
-_0813F5E0: .4byte 0x0000d70a
-_0813F5E4: .4byte gPlttBufferUnfaded
- thumb_func_end sub_813F4EC
-
- thumb_func_start sub_813F5E8
-sub_813F5E8: @ 813F5E8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0813F684 @ =gUnknown_03004340
- ldr r0, _0813F688 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0813F68C @ =gSprites
- mov r9, r1
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- add r5, r9
- ldrb r0, [r5, 0x6]
- mov r10, r0
- ldrh r6, [r5, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F690 @ =0x0000d709
- bl FreeSpritePaletteByTag
- ldr r0, _0813F694 @ =0x0000d70a
- bl FreeSpritePaletteByTag
- ldr r0, _0813F698 @ =0x0000d6ff
- bl IndexOfSpritePaletteTag
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F69C @ =0x0000d704
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsls r4, 4
- ldrb r2, [r5, 0x5]
- movs r3, 0xF
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r4
- strb r1, [r5, 0x5]
- mov r1, r10
- lsls r2, r1, 4
- add r2, r10
- lsls r2, 2
- add r2, r9
- ldrb r5, [r2, 0x5]
- adds r1, r3, 0
- ands r1, r5
- orrs r1, r4
- strb r1, [r2, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r9
- lsrs r0, 20
- ldrb r2, [r1, 0x5]
- ands r3, r2
- orrs r3, r0
- strb r3, [r1, 0x5]
- mov r0, r8
- bl move_anim_task_del
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F684: .4byte gUnknown_03004340
-_0813F688: .4byte gUnknown_0202F7C8
-_0813F68C: .4byte gSprites
-_0813F690: .4byte 0x0000d709
-_0813F694: .4byte 0x0000d70a
-_0813F698: .4byte 0x0000d6ff
-_0813F69C: .4byte 0x0000d704
- thumb_func_end sub_813F5E8
-
- thumb_func_start sub_813F6A0
-sub_813F6A0: @ 813F6A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813F6C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0813F6C4 @ =gUnknown_03004B00
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0x1E]
- ldr r0, _0813F6C8 @ =sub_813F6CC
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813F6C0: .4byte gTasks
-_0813F6C4: .4byte gUnknown_03004B00
-_0813F6C8: .4byte sub_813F6CC
- thumb_func_end sub_813F6A0
-
- thumb_func_start sub_813F6CC
-sub_813F6CC: @ 813F6CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F718 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r6, 0
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0813F78C
- strh r6, [r4, 0x8]
- ldr r0, _0813F71C @ =0x0000d709
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- movs r1, 0x2
- cmp r0, 0
- bne _0813F70A
- movs r1, 0x6
-_0813F70A:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0813F720
- cmp r0, 0x1
- beq _0813F75C
- b _0813F78C
- .align 2, 0
-_0813F718: .4byte gTasks
-_0813F71C: .4byte 0x0000d709
-_0813F720:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0813F732
- movs r0, 0x10
- strh r0, [r4, 0xC]
-_0813F732:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F758 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _0813F78C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _0813F78C
- .align 2, 0
-_0813F758: .4byte 0x00007f74
-_0813F75C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bge _0813F76A
- strh r6, [r4, 0xC]
-_0813F76A:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F794 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0813F78C
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F78C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F794: .4byte 0x00007f74
- thumb_func_end sub_813F6CC
-
- thumb_func_start sub_813F798
-sub_813F798: @ 813F798
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813F7C4 @ =gUnknown_02024BE0
- ldr r0, _0813F7C8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r5, [r0]
- ldr r1, _0813F7CC @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F7E6
- cmp r0, 0x1
- bgt _0813F7D0
- cmp r0, 0
- beq _0813F7D6
- b _0813F838
- .align 2, 0
-_0813F7C4: .4byte gUnknown_02024BE0
-_0813F7C8: .4byte gUnknown_0202F7C8
-_0813F7CC: .4byte gTasks
-_0813F7D0:
- cmp r0, 0x2
- beq _0813F818
- b _0813F838
-_0813F7D6:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x1C]
- b _0813F80A
-_0813F7E6:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x30
- strh r0, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- ldr r0, _0813F814 @ =0x000002cf
- cmp r1, r0
- ble _0813F838
-_0813F80A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0813F838
- .align 2, 0
-_0813F814: .4byte 0x000002cf
-_0813F818:
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _0813F840 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl move_anim_task_del
-_0813F838:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F840: .4byte gSprites
- thumb_func_end sub_813F798
-
- thumb_func_start sub_813F844
-sub_813F844: @ 813F844
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F87C @ =gUnknown_02024BE0
- ldr r4, _0813F880 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r1, [r1]
- mov r9, r1
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0813F88C
- ldr r1, _0813F884 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F888 @ =gPlayerParty
- b _0813F89C
- .align 2, 0
-_0813F87C: .4byte gUnknown_02024BE0
-_0813F880: .4byte gUnknown_0202F7C8
-_0813F884: .4byte gUnknown_02024A6A
-_0813F888: .4byte gPlayerParty
-_0813F88C:
- ldr r1, _0813F8CC @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F8D0 @ =gEnemyParty
-_0813F89C:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _0813F8D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r0, 0x8
- ldrsh r7, [r6, r0]
- cmp r7, 0
- beq _0813F8D8
- cmp r7, 0x1
- beq _0813F958
- b _0813F982
- .align 2, 0
-_0813F8CC: .4byte gUnknown_02024A6A
-_0813F8D0: .4byte gEnemyParty
-_0813F8D4: .4byte gTasks
-_0813F8D8:
- ldr r5, _0813F950 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- ldr r2, _0813F954 @ =gSprites
- mov r3, r9
- lsls r0, r3, 4
- add r0, r9
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r0, 0x43
- ldrb r3, [r0]
- movs r0, 0x80
- lsls r0, 22
- adds r1, r0
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- adds r0, r4, 0
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1C]
- str r7, [sp]
- str r7, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r2, r0, 0
- ldrb r1, [r5]
- movs r0, 0
- mov r3, r8
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0813F982
- .align 2, 0
-_0813F950: .4byte gUnknown_0202F7C8
-_0813F954: .4byte gSprites
-_0813F958:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- movs r3, 0x1E
- ldrsh r0, [r6, r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F982:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813F844
-
- thumb_func_start sub_813F990
-sub_813F990: @ 813F990
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9B4 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_80478DC
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9B4: .4byte gUnknown_02024C04
- thumb_func_end sub_813F990
-
- thumb_func_start sub_813F9B8
-sub_813F9B8: @ 813F9B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9DC @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_804794C
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9DC: .4byte gUnknown_02024C04
- thumb_func_end sub_813F9B8
-
- thumb_func_start sub_813F9E0
-sub_813F9E0: @ 813F9E0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813F9F4 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FA00
- ldr r1, _0813F9F8 @ =gUnknown_03004B00
- ldr r0, _0813F9FC @ =0x0000ffff
- b _0813FA04
- .align 2, 0
-_0813F9F4: .4byte 0x02017840
-_0813F9F8: .4byte gUnknown_03004B00
-_0813F9FC: .4byte 0x0000ffff
-_0813FA00:
- ldr r1, _0813FA10 @ =gUnknown_03004B00
- movs r0, 0
-_0813FA04:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0813FA10: .4byte gUnknown_03004B00
- thumb_func_end sub_813F9E0
-
- thumb_func_start ball_number_to_ball_processing_index
-ball_number_to_ball_processing_index: @ 813FA14
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x1
- cmp r0, 0xB
- bhi _0813FA8C
- lsls r0, 2
- ldr r1, _0813FA2C @ =_0813FA30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813FA2C: .4byte _0813FA30
- .align 2, 0
-_0813FA30:
- .4byte _0813FA60
- .4byte _0813FA64
- .4byte _0813FA68
- .4byte _0813FA8C
- .4byte _0813FA6C
- .4byte _0813FA70
- .4byte _0813FA74
- .4byte _0813FA78
- .4byte _0813FA7C
- .4byte _0813FA80
- .4byte _0813FA84
- .4byte _0813FA88
-_0813FA60:
- movs r0, 0x4
- b _0813FA8E
-_0813FA64:
- movs r0, 0x3
- b _0813FA8E
-_0813FA68:
- movs r0, 0x1
- b _0813FA8E
-_0813FA6C:
- movs r0, 0x2
- b _0813FA8E
-_0813FA70:
- movs r0, 0x5
- b _0813FA8E
-_0813FA74:
- movs r0, 0x6
- b _0813FA8E
-_0813FA78:
- movs r0, 0x7
- b _0813FA8E
-_0813FA7C:
- movs r0, 0x8
- b _0813FA8E
-_0813FA80:
- movs r0, 0x9
- b _0813FA8E
-_0813FA84:
- movs r0, 0xA
- b _0813FA8E
-_0813FA88:
- movs r0, 0xB
- b _0813FA8E
-_0813FA8C:
- movs r0, 0
-_0813FA8E:
- pop {r1}
- bx r1
- thumb_func_end ball_number_to_ball_processing_index
-
- thumb_func_start sub_813FA94
-sub_813FA94: @ 813FA94
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0813FB58 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0813FB60 @ =gSprites
- mov r9, r1
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r1
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r2, _0813FB64 @ =gUnknown_0202F7C9
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FB68 @ =sub_813FD90
- str r0, [r4]
- ldr r3, _0813FB6C @ =0x02017840
- ldr r1, _0813FB70 @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 1
- ldrb r2, [r3, 0x9]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x9]
- ldr r1, _0813FB74 @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FB78 @ =sub_813FB7C
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FB58: .4byte gUnknown_02024C04
-_0813FB5C: .4byte gSpriteTemplate_820AAB4
-_0813FB60: .4byte gSprites
-_0813FB64: .4byte gUnknown_0202F7C9
-_0813FB68: .4byte sub_813FD90
-_0813FB6C: .4byte 0x02017840
-_0813FB70: .4byte gUnknown_02024BE0
-_0813FB74: .4byte gTasks
-_0813FB78: .4byte sub_813FB7C
- thumb_func_end sub_813FA94
-
- thumb_func_start sub_813FB7C
-sub_813FB7C: @ 813FB7C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813FBAC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- ldr r2, _0813FBB0 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- ldr r0, _0813FBB4 @ =0x0000ffff
- cmp r1, r0
- bne _0813FBA6
- adds r0, r3, 0
- bl move_anim_task_del
-_0813FBA6:
- pop {r0}
- bx r0
- .align 2, 0
-_0813FBAC: .4byte gTasks
-_0813FBB0: .4byte gSprites
-_0813FBB4: .4byte 0x0000ffff
- thumb_func_end sub_813FB7C
-
- thumb_func_start sub_813FBB8
-sub_813FBB8: @ 813FBB8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813FBD8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0813FBDC
- movs r6, 0x20
- movs r5, 0xB
- b _0813FBE0
- .align 2, 0
-_0813FBD8: .4byte gUnknown_020239F8
-_0813FBDC:
- movs r6, 0x17
- movs r5, 0x5
-_0813FBE0:
- ldr r0, _0813FC9C @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079E90
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0x20
- movs r2, 0x50
- orrs r5, r2
- adds r2, r5, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0813FCA4 @ =gSprites
- mov r9, r0
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r0
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r1, _0813FCA8 @ =gUnknown_0202F7C9
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FCAC @ =SpriteCallbackDummy
- str r0, [r4]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FCB0 @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, _0813FCB4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FCB8 @ =sub_813FCBC
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FC9C: .4byte gUnknown_02024C04
-_0813FCA0: .4byte gSpriteTemplate_820AAB4
-_0813FCA4: .4byte gSprites
-_0813FCA8: .4byte gUnknown_0202F7C9
-_0813FCAC: .4byte SpriteCallbackDummy
-_0813FCB0: .4byte gUnknown_02024BE0
-_0813FCB4: .4byte gTasks
-_0813FCB8: .4byte sub_813FCBC
- thumb_func_end sub_813FBB8
-
- thumb_func_start sub_813FCBC
-sub_813FCBC: @ 813FCBC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD1C @ =gSprites
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FD20 @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813FD16
- movs r0, 0x3D
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r0, _0813FD24 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813FD28 @ =sub_813FD90
- str r1, [r0]
- ldr r0, _0813FD2C @ =sub_813FD34
- movs r1, 0xA
- bl CreateTask
- ldr r0, _0813FD30 @ =sub_813FB7C
- str r0, [r4]
-_0813FD16:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD1C: .4byte gSprites
-_0813FD20: .4byte gUnknown_02024BE0
-_0813FD24: .4byte gTasks
-_0813FD28: .4byte sub_813FD90
-_0813FD2C: .4byte sub_813FD34
-_0813FD30: .4byte sub_813FB7C
- thumb_func_end sub_813FCBC
-
- thumb_func_start sub_813FD34
-sub_813FD34: @ 813FD34
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD88 @ =gSprites
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _0813FD8C @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _0813FD80
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl DestroyTask
-_0813FD80:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD88: .4byte gSprites
-_0813FD8C: .4byte gUnknown_02024BE0
- thumb_func_end sub_813FD34
-
- thumb_func_start sub_813FD90
-sub_813FD90: @ 813FD90
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x32]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r0, _0813FDB8 @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _0813FDBC @ =sub_813FDC0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FDB8: .4byte 0x0000ffd8
-_0813FDBC: .4byte sub_813FDC0
- thumb_func_end sub_813FD90
-
- thumb_func_start sub_813FDC0
-sub_813FDC0: @ 813FDC0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0813FE5A
- ldr r0, _0813FDE0 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FDE8
- ldr r0, _0813FDE4 @ =sub_81407B8
- str r0, [r4, 0x1C]
- b _0813FE5A
- .align 2, 0
-_0813FDE0: .4byte 0x02017840
-_0813FDE4: .4byte sub_81407B8
-_0813FDE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- 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, 0x24]
- strh r1, [r4, 0x26]
- adds r1, r4, 0
- adds r1, 0x2E
- movs r2, 0
- adds r0, r4, 0
- adds r0, 0x3C
-_0813FE10:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0813FE10
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _0813FE64 @ =sub_813FE70
- str r0, [r4, 0x1C]
- ldr r0, _0813FE68 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _0813FE5A
- cmp r5, 0
- blt _0813FE5A
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _0813FE6C @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_0813FE5A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FE64: .4byte sub_813FE70
-_0813FE68: .4byte gUnknown_02024C04
-_0813FE6C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FDC0
-
- thumb_func_start sub_813FE70
-sub_813FE70: @ 813FE70
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0813FEAC
- ldr r0, _0813FEB4 @ =TaskDummy
- movs r1, 0x32
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _0813FEB8 @ =sub_813FEC8
- str r0, [r4, 0x1C]
- ldr r2, _0813FEBC @ =gSprites
- ldr r1, _0813FEC0 @ =gUnknown_02024BE0
- ldr r0, _0813FEC4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
-_0813FEAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FEB4: .4byte TaskDummy
-_0813FEB8: .4byte sub_813FEC8
-_0813FEBC: .4byte gSprites
-_0813FEC0: .4byte gUnknown_02024BE0
-_0813FEC4: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FE70
-
- thumb_func_start sub_813FEC8
-sub_813FEC8: @ 813FEC8
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r1, _0813FF0C @ =gUnknown_02024BE0
- ldr r0, _0813FF10 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r4, [r0]
- ldrh r0, [r7, 0x38]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813FF14 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0813FEFA
- movs r0, 0x3C
- bl PlaySE
-_0813FEFA:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0813FF70
- cmp r0, 0x1
- bgt _0813FF18
- cmp r0, 0
- beq _0813FF1E
- b _0813FFDC
- .align 2, 0
-_0813FF0C: .4byte gUnknown_02024BE0
-_0813FF10: .4byte gUnknown_0202F7C9
-_0813FF14: .4byte gTasks
-_0813FF18:
- cmp r0, 0x2
- beq _0813FFB4
- b _0813FFDC
-_0813FF1E:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x1C]
- ldr r1, _0813FF60 @ =gUnknown_03005F0C
- movs r0, 0x1C
- str r0, [r1]
- ldr r2, _0813FF64 @ =gUnknown_03005F14
- ldr r1, _0813FF68 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- ldrh r0, [r7, 0x26]
- ldrh r7, [r7, 0x22]
- adds r0, r7
- subs r1, r0
- strh r1, [r2]
- ldr r4, _0813FF6C @ =gUnknown_03005F10
- ldrh r0, [r2]
- lsls r0, 8
- movs r1, 0x1C
- bl __udivsi3
- strh r0, [r4]
- strh r0, [r5, 0xC]
- b _0813FFCE
- .align 2, 0
-_0813FF60: .4byte gUnknown_03005F0C
-_0813FF64: .4byte gUnknown_03005F14
-_0813FF68: .4byte gSprites
-_0813FF6C: .4byte gUnknown_03005F10
-_0813FF70:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x20
- strh r0, [r5, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0xC]
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _0813FFAC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r5, r0]
- ldr r0, _0813FFB0 @ =0x0000047f
- cmp r1, r0
- ble _08140004
- b _0813FFCE
- .align 2, 0
-_0813FFAC: .4byte gSprites
-_0813FFB0: .4byte 0x0000047f
-_0813FFB4:
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _0813FFD8 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0813FFCE:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _08140004
- .align 2, 0
-_0813FFD8: .4byte gSprites
-_0813FFDC:
- ldr r0, _0814000C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- ble _08140004
- adds r0, r6, 0
- bl DestroyTask
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r7, 0x38]
- ldr r0, _08140010 @ =sub_8140014
- str r0, [r7, 0x1C]
-_08140004:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814000C: .4byte gTasks
-_08140010: .4byte sub_8140014
- thumb_func_end sub_813FEC8
-
- thumb_func_start sub_8140014
-sub_8140014: @ 8140014
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0814004E
- movs r1, 0
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08140054 @ =sub_8140058
- str r0, [r4, 0x1C]
-_0814004E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140054: .4byte sub_8140058
- thumb_func_end sub_8140014
-
- thumb_func_start sub_8140058
-sub_8140058: @ 8140058
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _0814006E
- cmp r1, 0x1
- beq _081400E2
- b _0814010E
-_0814006E:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _0814010E
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _081400B8 @ =0x00000101
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _081400AA
- movs r5, 0x1
-_081400AA:
- cmp r0, 0x2
- beq _081400CA
- cmp r0, 0x2
- bgt _081400BC
- cmp r0, 0x1
- beq _081400C2
- b _081400DA
- .align 2, 0
-_081400B8: .4byte 0x00000101
-_081400BC:
- cmp r0, 0x3
- beq _081400D2
- b _081400DA
-_081400C2:
- movs r0, 0x38
- bl PlaySE
- b _0814010E
-_081400CA:
- movs r0, 0x39
- bl PlaySE
- b _0814010E
-_081400D2:
- movs r0, 0x3A
- bl PlaySE
- b _0814010E
-_081400DA:
- movs r0, 0x3B
- bl PlaySE
- b _0814010E
-_081400E2:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _0814010E
- strh r5, [r4, 0x38]
- ldr r0, _08140138 @ =0xffffff00
- ands r0, r2
- strh r0, [r4, 0x34]
-_0814010E:
- cmp r5, 0
- beq _0814014E
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- ldr r0, _0814013C @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08140144
- strh r5, [r4, 0x38]
- ldr r0, _08140140 @ =sub_8140410
- str r0, [r4, 0x1C]
- b _0814014E
- .align 2, 0
-_08140138: .4byte 0xffffff00
-_0814013C: .4byte 0x02017840
-_08140140: .4byte sub_8140410
-_08140144:
- ldr r0, _08140154 @ =sub_8140158
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0814014E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140154: .4byte sub_8140158
- thumb_func_end sub_8140058
-
- thumb_func_start sub_8140158
-sub_8140158: @ 8140158
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08140190
- strh r5, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08140198 @ =0x02017840
- strh r5, [r0, 0xC]
- ldr r0, _0814019C @ =sub_81401A0
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_08140190:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140198: .4byte 0x02017840
-_0814019C: .4byte sub_81401A0
- thumb_func_end sub_8140158
-
- thumb_func_start sub_81401A0
-sub_81401A0: @ 81401A0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x6
- bls _081401B0
- b _081403C4
-_081401B0:
- lsls r0, r1, 2
- ldr r1, _081401BC @ =_081401C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081401BC: .4byte _081401C0
- .align 2, 0
-_081401C0:
- .4byte _081401DC
- .4byte _08140226
- .4byte _0814026C
- .4byte _081402C0
- .4byte _08140310
- .4byte _08140368
- .4byte _081403C4
-_081401DC:
- ldr r0, _081401F8 @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _081401FC
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140200
- .align 2, 0
-_081401F8: .4byte 0x02017840
-_081401FC:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140200:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bhi _08140224
- b _0814040A
-_08140224:
- b _081402B4
-_08140226:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081402CC
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140262
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _0814040A
-_08140262:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0814040A
-_0814026C:
- ldr r0, _08140288 @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _0814028C
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140290
- .align 2, 0
-_08140288: .4byte 0x02017840
-_0814028C:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140290:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0xC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bhi _081402B4
- b _0814040A
-_081402B4:
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- b _0814040A
-_081402C0:
- ldrh r0, [r4, 0x38]
- adds r1, r0, 0x1
- strh r1, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _081402DA
-_081402CC:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _0814040A
-_081402DA:
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140308
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08140310
-_08140308:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_08140310:
- ldr r0, _0814032C @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _08140330
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140334
- .align 2, 0
-_0814032C: .4byte 0x02017840
-_08140330:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140334:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _0814040A
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- b _0814040A
-_08140368:
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r1, r0, 24
- ldr r0, _08140394 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r1, r0
- bne _0814039C
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08140398 @ =sub_8140410
- str r0, [r4, 0x1C]
- b _0814040A
- .align 2, 0
-_08140394: .4byte 0x02017840
-_08140398: .4byte sub_8140410
-_0814039C:
- cmp r0, 0x4
- bne _081403B0
- cmp r1, 0x3
- bne _081403B0
- ldr r0, _081403AC @ =sub_8140434
- str r0, [r4, 0x1C]
- b _081403B6
- .align 2, 0
-_081403AC: .4byte sub_8140434
-_081403B0:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_081403B6:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _0814040A
-_081403C4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814040A
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _081403F8 @ =0xffffff00
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _081403FC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08140404
- .align 2, 0
-_081403F8: .4byte 0xffffff00
-_081403FC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08140404:
- movs r0, 0x17
- bl PlaySE
-_0814040A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81401A0
-
- thumb_func_start sub_8140410
-sub_8140410: @ 8140410
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x38]
- adds r0, 0x1
- strh r0, [r1, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814042A
- movs r0, 0
- strh r0, [r1, 0x38]
- ldr r0, _08140430 @ =sub_81405F4
- str r0, [r1, 0x1C]
-_0814042A:
- pop {r0}
- bx r0
- .align 2, 0
-_08140430: .4byte sub_81405F4
- thumb_func_end sub_8140410
-
- thumb_func_start sub_8140434
-sub_8140434: @ 8140434
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08140450 @ =sub_8140454
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08140450: .4byte sub_8140454
- thumb_func_end sub_8140434
-
- thumb_func_start sub_8140454
-sub_8140454: @ 8140454
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _08140484 @ =gUnknown_0202F7C9
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _081404CC
- cmp r1, 0x5F
- bne _08140490
- ldr r0, _08140488 @ =gUnknown_02024E6D
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- bl sub_8043EB4
- bl m4aMPlayAllStop
- ldr r0, _0814048C @ =0x00000173
- bl PlaySE
- b _081404CC
- .align 2, 0
-_08140484: .4byte gUnknown_0202F7C9
-_08140488: .4byte gUnknown_02024E6D
-_0814048C: .4byte 0x00000173
-_08140490:
- ldr r0, _081404D4 @ =0x0000013b
- cmp r1, r0
- bne _081404CC
- ldr r5, _081404D8 @ =gSprites
- ldr r4, _081404DC @ =gUnknown_02024BE0
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0
- strh r0, [r6, 0x2E]
- ldr r0, _081404E0 @ =sub_81404E4
- str r0, [r6, 0x1C]
-_081404CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081404D4: .4byte 0x0000013b
-_081404D8: .4byte gSprites
-_081404DC: .4byte gUnknown_02024BE0
-_081404E0: .4byte sub_81404E4
- thumb_func_end sub_8140454
-
- thumb_func_start sub_81404E4
-sub_81404E4: @ 81404E4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08140550
- cmp r0, 0x1
- bgt _081404FC
- cmp r0, 0
- beq _08140502
- b _08140594
-_081404FC:
- cmp r0, 0x2
- beq _08140580
- b _08140594
-_08140502:
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, _08140548 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, [r4, 0x14]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldr r0, _0814054C @ =0x00007fff
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0814058C
- .align 2, 0
-_08140548: .4byte REG_BLDCNT
-_0814054C: .4byte 0x00007fff
-_08140550:
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _081405B2
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- ldr r3, _0814057C @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081405B2
- b _0814058C
- .align 2, 0
-_0814057C: .4byte REG_BLDALPHA
-_08140580:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814058C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081405B2
-_08140594:
- ldr r0, _081405BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081405B2
- ldr r0, _081405C0 @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- strh r1, [r4, 0x2E]
- ldr r0, _081405C4 @ =sub_81405C8
- str r0, [r4, 0x1C]
-_081405B2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081405BC: .4byte gPaletteFade
-_081405C0: .4byte REG_BLDCNT
-_081405C4: .4byte sub_81405C8
- thumb_func_end sub_81404E4
-
- thumb_func_start sub_81405C8
-sub_81405C8: @ 81405C8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081405E0
- ldr r0, _081405DC @ =0x0000ffff
- strh r0, [r4, 0x2E]
- b _081405EC
- .align 2, 0
-_081405DC: .4byte 0x0000ffff
-_081405E0:
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_081405EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81405C8
-
- thumb_func_start sub_81405F4
-sub_81405F4: @ 81405F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _081406A8 @ =sub_81406BC
- str r0, [r4, 0x1C]
- ldr r0, _081406AC @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _08140646
- cmp r5, 0
- blt _08140646
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _081406B0 @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_08140646:
- ldr r6, _081406B4 @ =gSprites
- ldr r5, _081406B8 @ =gUnknown_02024BE0
- ldr r4, _081406B0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl AnimateSprite
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081406A8: .4byte sub_81406BC
-_081406AC: .4byte gUnknown_02024C04
-_081406B0: .4byte gUnknown_0202F7C9
-_081406B4: .4byte gSprites
-_081406B8: .4byte gUnknown_02024BE0
- thumb_func_end sub_81405F4
-
- thumb_func_start sub_81406BC
-sub_81406BC: @ 81406BC
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081406DA
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_081406DA:
- ldr r4, _08140708 @ =gSprites
- ldr r3, _0814070C @ =gUnknown_02024BE0
- ldr r2, _08140710 @ =gUnknown_0202F7C9
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08140714
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r5, 0x1
- b _08140734
- .align 2, 0
-_08140708: .4byte gSprites
-_0814070C: .4byte gUnknown_02024BE0
-_08140710: .4byte gUnknown_0202F7C9
-_08140714:
- ldr r6, _0814079C @ =0xfffffee0
- adds r0, r6, 0
- ldrh r6, [r1, 0x30]
- adds r0, r6
- strh r0, [r1, 0x30]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08140734:
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08140796
- cmp r5, 0
- beq _08140796
- ldr r4, _081407A0 @ =gSprites
- ldr r3, _081407A4 @ =gUnknown_02024BE0
- ldr r2, _081407A8 @ =gUnknown_0202F7C9
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- movs r5, 0
- strh r5, [r0, 0x26]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _081407AC @ =0x02017840
- ldrb r1, [r0, 0x9]
- lsls r1, 30
- 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]
- strh r5, [r7, 0x2E]
- ldr r0, _081407B0 @ =sub_81405C8
- str r0, [r7, 0x1C]
- ldr r0, _081407B4 @ =gUnknown_02024E6D
- strb r6, [r0]
- movs r0, 0x1
- bl sub_8043EB4
-_08140796:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814079C: .4byte 0xfffffee0
-_081407A0: .4byte gSprites
-_081407A4: .4byte gUnknown_02024BE0
-_081407A8: .4byte gUnknown_0202F7C9
-_081407AC: .4byte 0x02017840
-_081407B0: .4byte sub_81405C8
-_081407B4: .4byte gUnknown_02024E6D
- thumb_func_end sub_81406BC
-
- thumb_func_start sub_81407B8
-sub_81407B8: @ 81407B8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- ldr r4, _081407F0 @ =sub_81407F4
- movs r3, 0
- movs r1, 0x5
- adds r0, r2, 0
- adds r0, 0x38
-_081407DC:
- strh r3, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081407DC
- str r4, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081407F0: .4byte sub_81407F4
- thumb_func_end sub_81407B8
-
- thumb_func_start sub_81407F4
-sub_81407F4: @ 81407F4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 4
- adds r2, r0, 0
- ldrh r1, [r4, 0x2E]
- adds r2, r1
- movs r0, 0xD0
- lsls r0, 3
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- adds r3, r1
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x2E]
- ands r3, r0
- strh r3, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- bgt _0814084A
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0814085E
-_0814084A:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _08140864 @ =sub_81405C8
- str r0, [r4, 0x1C]
- ldr r1, _08140868 @ =gUnknown_02024E6D
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8043EB4
-_0814085E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140864: .4byte sub_81405C8
-_08140868: .4byte gUnknown_02024E6D
- thumb_func_end sub_81407F4
-
- thumb_func_start sub_814086C
-sub_814086C: @ 814086C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r5, r4, 0
- ldr r0, _08140910 @ =gUnknown_0840B258
- lsls r6, r5, 3
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08140914 @ =0xffff0000
- cmp r0, r1
- bne _081408B6
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r0, _08140918 @ =gUnknown_0840B2B8
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_081408B6:
- ldr r1, _0814091C @ =gUnknown_0840B384
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08140920 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- mov r1, r10
- strh r1, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r1, r8
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x10]
- strh r5, [r0, 0x26]
- movs r0, 0xF
- bl PlaySE
- ldr r0, _08140924 @ =gMain
- ldr r1, _08140928 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08140900
- ldr r1, _0814092C @ =0x02017840
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_08140900:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08140910: .4byte gUnknown_0840B258
-_08140914: .4byte 0xffff0000
-_08140918: .4byte gUnknown_0840B2B8
-_0814091C: .4byte gUnknown_0840B384
-_08140920: .4byte gTasks
-_08140924: .4byte gMain
-_08140928: .4byte 0x0000043d
-_0814092C: .4byte 0x02017840
- thumb_func_end sub_814086C
-
- thumb_func_start sub_8140930
-sub_8140930: @ 8140930
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _081409D0 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bgt _081409E4
- ldrb r1, [r7, 0xA]
- ldrb r2, [r7, 0xC]
- ldrb r6, [r7, 0xE]
- ldrb r3, [r7, 0x10]
- mov r4, r8
- lsls r0, r4, 1
- add r0, r8
- lsls r0, 3
- ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4
- adds r0, r4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _081409D8 @ =gSprites
- adds r2, r4, r5
- ldr r0, _081409DC @ =gUnknown_0840B378
- add r0, r8
- ldrb r1, [r0]
- adds r0, r2, 0
- str r2, [sp]
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _081409E0 @ =sub_8140A08
- str r0, [r4]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldr r2, [sp]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r6
- strb r0, [r2, 0x5]
- ldrb r0, [r7, 0x8]
- cmp r0, 0x7
- bls _081409B6
- subs r0, 0x8
- lsls r0, 24
- lsrs r0, 24
-_081409B6:
- lsls r0, 5
- strh r0, [r2, 0x2E]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bne _081409E4
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- mov r0, r9
- bl DestroyTask
- b _081409F6
- .align 2, 0
-_081409D0: .4byte gTasks
-_081409D4: .4byte gSpriteTemplate_840B3B4
-_081409D8: .4byte gSprites
-_081409DC: .4byte gUnknown_0840B378
-_081409E0: .4byte sub_8140A08
-_081409E4:
- ldr r0, _08140A04 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_081409F6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140A04: .4byte gTasks
- thumb_func_end sub_8140930
-
- thumb_func_start sub_8140A08
-sub_8140A08: @ 8140A08
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x30]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08140A20
- ldr r0, _08140A1C @ =sub_8140A28
- str r0, [r1, 0x1C]
- b _08140A24
- .align 2, 0
-_08140A1C: .4byte sub_8140A28
-_08140A20:
- subs r0, r2, 0x1
- strh r0, [r1, 0x30]
-_08140A24:
- pop {r0}
- bx r0
- thumb_func_end sub_8140A08
-
- thumb_func_start sub_8140A28
-sub_8140A28: @ 8140A28
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _08140A5C
- adds r0, r4, 0
- bl sub_8141294
-_08140A5C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140A28
-
- thumb_func_start sub_8140A64
-sub_8140A64: @ 8140A64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140B24 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140B28 @ =gSprites
- mov r8, r3
- ldr r0, _08140B2C @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140AA8:
- ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140B34 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140B38 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- movs r2, 0x1
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140AA8
- ldr r0, _08140B28 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140B24: .4byte gTasks
-_08140B28: .4byte gSprites
-_08140B2C: .4byte gUnknown_0840B378
-_08140B30: .4byte gSpriteTemplate_840B3B4
-_08140B34: .4byte gSprites + 0x1C
-_08140B38: .4byte sub_8140ECC
- thumb_func_end sub_8140A64
-
- thumb_func_start sub_8140B3C
-sub_8140B3C: @ 8140B3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140BFC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140C00 @ =gSprites
- mov r8, r3
- ldr r0, _08140C04 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140B80:
- ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140C0C @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140C10 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r1, 0x1
- strh r1, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140B80
- ldr r0, _08140C00 @ =gSprites
- adds r0, r5, r0
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140BFC: .4byte gTasks
-_08140C00: .4byte gSprites
-_08140C04: .4byte gUnknown_0840B378
-_08140C08: .4byte gSpriteTemplate_840B3B4
-_08140C0C: .4byte gSprites + 0x1C
-_08140C10: .4byte sub_8140ECC
- thumb_func_end sub_8140B3C
-
- thumb_func_start sub_8140C14
-sub_8140C14: @ 8140C14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140CD0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140CD4 @ =gSprites
- mov r8, r3
- ldr r0, _08140CD8 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140C58:
- ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140CE0 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140CE4 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0x4
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140C58
- ldr r0, _08140CD4 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140CD0: .4byte gTasks
-_08140CD4: .4byte gSprites
-_08140CD8: .4byte gUnknown_0840B378
-_08140CDC: .4byte gSpriteTemplate_840B3B4
-_08140CE0: .4byte gSprites + 0x1C
-_08140CE4: .4byte sub_8140ECC
- thumb_func_end sub_8140C14
-
- thumb_func_start sub_8140CE8
-sub_8140CE8: @ 8140CE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140DAC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140DB0 @ =gSprites
- mov r8, r3
- ldr r0, _08140DB4 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140D2C:
- ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140DBC @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140DC0 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- adds r0, r6
- strh r0, [r4, 0x2E]
- movs r0, 0x5
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x9
- bls _08140D2C
- ldr r0, _08140DB0 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140DAC: .4byte gTasks
-_08140DB0: .4byte gSprites
-_08140DB4: .4byte gUnknown_0840B378
-_08140DB8: .4byte gSpriteTemplate_840B3B4
-_08140DBC: .4byte gSprites + 0x1C
-_08140DC0: .4byte sub_8140ECC
- thumb_func_end sub_8140CE8
-
- thumb_func_start sub_8140DC4
-sub_8140DC4: @ 8140DC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140DF0 @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrh r1, [r3, 0x16]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _08140DF4
- subs r0, r1, 0x1
- strh r0, [r3, 0x16]
- b _08140EA4
- .align 2, 0
-_08140DF0: .4byte gTasks
-_08140DF4:
- ldrh r0, [r3, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r3, 0xA]
- str r1, [sp]
- ldrb r4, [r3, 0xC]
- str r4, [sp, 0x4]
- ldrb r1, [r3, 0xE]
- str r1, [sp, 0x8]
- ldrb r3, [r3, 0x10]
- str r3, [sp, 0xC]
- movs r6, 0
- str r2, [sp, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- mov r10, r1
- ldr r3, _08140EB4 @ =gSprites
- mov r8, r3
- ldr r1, _08140EB8 @ =gUnknown_0840B378
- adds r0, r1
- mov r9, r0
-_08140E20:
- ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r3, r9
- ldrb r1, [r3]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _08140EC0 @ =gSprites + 0x1C
- adds r1, r5, r0
- ldr r0, _08140EC4 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r2, 0x8
- strh r2, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140E20
- ldr r0, _08140EC8 @ =gTasks
- ldr r4, [sp, 0x10]
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x16]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08140EA4
- ldr r0, _08140EB4 @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
-_08140EA4:
- 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
-_08140EB4: .4byte gSprites
-_08140EB8: .4byte gUnknown_0840B378
-_08140EBC: .4byte gSpriteTemplate_840B3B4
-_08140EC0: .4byte gSprites + 0x1C
-_08140EC4: .4byte sub_8140ECC
-_08140EC8: .4byte gTasks
- thumb_func_end sub_8140DC4
-
- thumb_func_start sub_8140ECC
-sub_8140ECC: @ 8140ECC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x30]
- adds r0, r2
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08140F1C
- adds r0, r4, 0
- bl sub_8141294
-_08140F1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140ECC
-
- thumb_func_start sub_8140F24
-sub_8140F24: @ 8140F24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140FE0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140FE4 @ =gSprites
- mov r8, r3
- ldr r0, _08140FE8 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140F68:
- ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140FF0 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140FF4 @ =sub_8140FF8
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r6
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xB
- bls _08140F68
- ldr r0, _08140FE4 @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140FE0: .4byte gTasks
-_08140FE4: .4byte gSprites
-_08140FE8: .4byte gUnknown_0840B378
-_08140FEC: .4byte gSpriteTemplate_840B3B4
-_08140FF0: .4byte gSprites + 0x1C
-_08140FF4: .4byte sub_8140FF8
- thumb_func_end sub_8140F24
-
- thumb_func_start sub_8140FF8
-sub_8140FF8: @ 8140FF8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08141050
- adds r0, r5, 0
- bl sub_8141294
-_08141050:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8140FF8
-
- thumb_func_start sub_8141058
-sub_8141058: @ 8141058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, _08141104 @ =gTasks
- lsls r0, 2
- ldr r2, [sp]
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r3, [r0, 0xA]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xC]
- str r2, [sp, 0x8]
- ldrb r3, [r0, 0xE]
- str r3, [sp, 0xC]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0x10]
- movs r0, 0
- mov r8, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [sp, 0x14]
- ldr r0, _08141108 @ =gUnknown_0840B378
- adds r1, r0
- mov r10, r1
-_0814109E:
- movs r7, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_081410A6:
- ldr r0, _0814110C @ =gSpriteTemplate_840B3B4
- ldr r2, [sp, 0x14]
- adds r0, r2, r0
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r3, _08141110 @ =gSprites
- adds r5, r4, r3
- mov r0, r10
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _08141114 @ =gSprites + 0x1C
- adds r4, r1
- ldr r0, _08141118 @ =sub_8140ECC
- str r0, [r4]
- movs r0, 0x3
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r2, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0x8
- strh r0, [r5, 0x36]
- mov r0, r8
- cmp r0, 0
- bne _0814111C
- movs r0, 0x2
- strh r0, [r5, 0x38]
- movs r0, 0x1
- b _08141122
- .align 2, 0
-_08141104: .4byte gTasks
-_08141108: .4byte gUnknown_0840B378
-_0814110C: .4byte gSpriteTemplate_840B3B4
-_08141110: .4byte gSprites
-_08141114: .4byte gSprites + 0x1C
-_08141118: .4byte sub_8140ECC
-_0814111C:
- movs r0, 0x1
- strh r0, [r5, 0x38]
- movs r0, 0x2
-_08141122:
- strh r0, [r5, 0x3A]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _081410A6
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _0814109E
- ldr r0, _08141160 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- ldr r0, [sp]
- bl DestroyTask
- 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
-_08141160: .4byte gSprites
- thumb_func_end sub_8141058
-
- thumb_func_start sub_8141164
-sub_8141164: @ 8141164
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08141218 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _0814121C @ =gSprites
- mov r8, r3
- ldr r0, _08141220 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_081411A8:
- ldr r0, _08141224 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08141228 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _0814122C @ =sub_8141230
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _081411A8
- ldr r0, _0814121C @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08141218: .4byte gTasks
-_0814121C: .4byte gSprites
-_08141220: .4byte gUnknown_0840B378
-_08141224: .4byte gSpriteTemplate_840B3B4
-_08141228: .4byte gSprites + 0x1C
-_0814122C: .4byte sub_8141230
- thumb_func_end sub_8141164
-
- thumb_func_start sub_8141230
-sub_8141230: @ 8141230
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2E]
- movs r0, 0x3F
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _0814128C
- adds r0, r5, 0
- bl sub_8141294
-_0814128C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8141230
-
- thumb_func_start sub_8141294
-sub_8141294: @ 8141294
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _081412B8 @ =gMain
- ldr r1, _081412BC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081412C0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _081412F2
- adds r0, r5, 0
- bl DestroySpriteAndFreeResources
- b _0814130E
- .align 2, 0
-_081412B8: .4byte gMain
-_081412BC: .4byte 0x0000043d
-_081412C0:
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08141308
- ldr r1, _081412FC @ =0x02017840
- ldrb r0, [r1, 0xA]
- subs r0, 0x1
- strb r0, [r1, 0xA]
- lsls r0, 24
- cmp r0, 0
- bne _081412F2
- movs r7, 0
- ldr r6, _08141300 @ =gUnknown_0840B258
- ldr r4, _08141304 @ =gUnknown_0840B2B8
-_081412DC:
- ldrh r0, [r6, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- adds r6, 0x8
- adds r4, 0x8
- adds r7, 0x1
- cmp r7, 0xB
- ble _081412DC
-_081412F2:
- adds r0, r5, 0
- bl DestroySprite
- b _0814130E
- .align 2, 0
-_081412FC: .4byte 0x02017840
-_08141300: .4byte gUnknown_0840B258
-_08141304: .4byte gUnknown_0840B2B8
-_08141308:
- adds r0, r5, 0
- bl DestroySprite
-_0814130E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8141294
-
- thumb_func_start sub_8141314
-sub_8141314: @ 8141314
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- mov r9, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, _08141378 @ =sub_81413DC
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0814137C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- strh r7, [r5, 0x26]
- strh r6, [r5, 0xE]
- mov r0, r9
- strh r0, [r5, 0x1C]
- mov r1, r9
- lsrs r0, r1, 16
- strh r0, [r5, 0x1E]
- cmp r4, 0
- bne _08141384
- lsls r0, r6, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldr r2, _08141380 @ =gUnknown_0840B4D4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- movs r0, 0x1
- strh r0, [r5, 0xA]
- b _081413AA
- .align 2, 0
-_08141378: .4byte sub_81413DC
-_0814137C: .4byte gTasks
-_08141380: .4byte gUnknown_0840B4D4
-_08141384:
- lsls r0, r6, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r2, _081413CC @ =gUnknown_0840B4D4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x10
- bl BlendPalette
- movs r0, 0x10
- strh r0, [r5, 0x8]
- ldr r0, _081413D0 @ =0x0000ffff
- strh r0, [r5, 0xA]
- ldr r0, _081413D4 @ =sub_814146C
- str r0, [r5]
-_081413AA:
- ldr r0, _081413D8 @ =0x00007fff
- str r0, [sp]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r0, r8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081413CC: .4byte gUnknown_0840B4D4
-_081413D0: .4byte 0x0000ffff
-_081413D4: .4byte sub_814146C
-_081413D8: .4byte 0x00007fff
- thumb_func_end sub_8141314
-
- thumb_func_start sub_81413DC
-sub_81413DC: @ 81413DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0814142C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bgt _08141434
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _08141430 @ =gUnknown_0840B4D4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _0814145C
- .align 2, 0
-_0814142C: .4byte gTasks
-_08141430: .4byte gUnknown_0840B4D4
-_08141434:
- ldr r0, _08141464 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0814145C
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _08141468 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r5, 0
- bl DestroyTask
-_0814145C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141464: .4byte gPaletteFade
-_08141468: .4byte 0x00007fff
- thumb_func_end sub_81413DC
-
- thumb_func_start sub_814146C
-sub_814146C: @ 814146C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081414AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081414A4
- ldr r0, _081414B0 @ =gTasks
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _081414B4 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081414B8 @ =sub_81414BC
- str r0, [r4]
-_081414A4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081414AC: .4byte gPaletteFade
-_081414B0: .4byte gTasks
-_081414B4: .4byte 0x00007fff
-_081414B8: .4byte sub_81414BC
- thumb_func_end sub_814146C
-
- thumb_func_start sub_81414BC
-sub_81414BC: @ 81414BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08141508 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bgt _08141510
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _0814150C @ =gUnknown_0840B4D4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _08141516
- .align 2, 0
-_08141508: .4byte gTasks
-_0814150C: .4byte gUnknown_0840B4D4
-_08141510:
- adds r0, r2, 0
- bl DestroyTask
-_08141516:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81414BC
-
- thumb_func_start sub_814151C
-sub_814151C: @ 814151C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _08141550 @ =gUnknown_02024BE0
- ldr r3, _08141554 @ =gUnknown_0202F7C8
- ldrb r2, [r3]
- adds r0, r2, r0
- ldrb r6, [r0]
- ldr r1, _08141558 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _081415F4
- cmp r0, 0x1
- bgt _0814155C
- cmp r0, 0
- beq _08141562
- b _081416B6
- .align 2, 0
-_08141550: .4byte gUnknown_02024BE0
-_08141554: .4byte gUnknown_0202F7C8
-_08141558: .4byte gTasks
-_0814155C:
- cmp r0, 0x2
- beq _08141606
- b _081416B6
-_08141562:
- ldr r0, _0814159C @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r5, 0x1E]
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r4, [r5, 0x8]
- adds r0, r4
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081415A4
- ldr r2, _081415A0 @ =gSprites
- lsls r3, r6, 4
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- adds r4, r3, 0
- b _081415BC
- .align 2, 0
-_0814159C: .4byte gUnknown_03004B00
-_081415A0: .4byte gSprites
-_081415A4:
- ldr r3, _081415EC @ =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
-_081415BC:
- ldr r1, _081415F0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrb r0, [r3, 0x8]
- strh r0, [r3, 0x8]
- adds r0, r4, r6
- lsls r0, 2
- adds r0, r2
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r4, 0x24
- ldrsh r0, [r0, r4]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _081416B6
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- b _081416B6
- .align 2, 0
-_081415EC: .4byte gSprites
-_081415F0: .4byte gTasks
-_081415F4:
- ldrb r1, [r5, 0x1E]
- adds r0, r2, 0
- adds r2, r6, 0
- bl refresh_graphics_maybe
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- b _081416B6
-_08141606:
- movs r1, 0xA0
- lsls r1, 3
- adds r0, r1, 0
- ldrh r2, [r5, 0x8]
- adds r0, r2
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0814163C
- ldr r0, _08141638 @ =gSprites
- lsls r3, r6, 4
- adds r2, r3, r6
- lsls r2, 2
- adds r2, r0
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r4, r3, 0
- b _08141654
- .align 2, 0
-_08141638: .4byte gSprites
-_0814163C:
- ldr r0, _08141688 @ =gSprites
- lsls r2, r6, 4
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- adds r4, r2, 0
-_08141654:
- ldr r1, _0814168C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- strh r1, [r0, 0x8]
- ldr r0, _08141690 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08141694
- ldr r0, _08141688 @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bgt _081416AA
- movs r0, 0
- strh r0, [r1, 0x24]
- b _081416B0
- .align 2, 0
-_08141688: .4byte gSprites
-_0814168C: .4byte gTasks
-_08141690: .4byte gUnknown_0202F7C8
-_08141694:
- ldr r0, _081416C0 @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _081416AA
- strh r2, [r1, 0x24]
- movs r4, 0x1
- mov r8, r4
-_081416AA:
- mov r0, r8
- cmp r0, 0
- beq _081416B6
-_081416B0:
- adds r0, r7, 0
- bl move_anim_task_del
-_081416B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081416C0: .4byte gSprites
- thumb_func_end sub_814151C
-
- thumb_func_start sub_81416C4
-sub_81416C4: @ 81416C4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081416E8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08141744
- cmp r0, 0x1
- bgt _081416EC
- cmp r0, 0
- beq _081416F2
- b _081417B8
- .align 2, 0
-_081416E8: .4byte gTasks
-_081416EC:
- cmp r0, 0x2
- beq _0814177C
- b _081417B8
-_081416F2:
- ldr r0, _08141708 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08141714
- ldr r1, _0814170C @ =REG_BLDCNT
- ldr r2, _08141710 @ =0x00003f42
- b _08141718
- .align 2, 0
-_08141708: .4byte gUnknown_0202F7C8
-_0814170C: .4byte REG_BLDCNT
-_08141710: .4byte 0x00003f42
-_08141714:
- ldr r1, _08141734 @ =REG_BLDCNT
- ldr r2, _08141738 @ =0x00003f44
-_08141718:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0814173C @ =REG_BLDALPHA
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _08141740 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _081417B8
- .align 2, 0
-_08141734: .4byte REG_BLDCNT
-_08141738: .4byte 0x00003f44
-_0814173C: .4byte REG_BLDALPHA
-_08141740: .4byte gTasks
-_08141744:
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081417B8
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r1, 0x1
- strh r1, [r4, 0x8]
- ldr r3, _08141778 @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081417B8
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _081417B8
- .align 2, 0
-_08141778: .4byte REG_BLDALPHA
-_0814177C:
- ldr r1, _081417C0 @ =gUnknown_02024BE0
- ldr r3, _081417C4 @ =gUnknown_0202F7C8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _081417C8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, _081417CC @ =0x06010000
- adds r0, r1
- movs r1, 0
- str r1, [sp]
- ldr r1, _081417D0 @ =0x040000d4
- mov r2, sp
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _081417D4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldrb r0, [r3]
- bl sub_80324E0
- adds r0, r5, 0
- bl move_anim_task_del
-_081417B8:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081417C0: .4byte gUnknown_02024BE0
-_081417C4: .4byte gUnknown_0202F7C8
-_081417C8: .4byte gSprites
-_081417CC: .4byte 0x06010000
-_081417D0: .4byte 0x040000d4
-_081417D4: .4byte 0x85000200
- thumb_func_end sub_81416C4
-
- thumb_func_start sub_81417D8
-sub_81417D8: @ 81417D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081417FC @ =gUnknown_03004B00
- ldr r1, _08141800 @ =gUnknown_0202F7C8
- ldrb r1, [r1]
- lsls r1, 2
- ldr r2, _08141804 @ =0x02017800
- adds r1, r2
- ldr r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r3, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_081417FC: .4byte gUnknown_03004B00
-_08141800: .4byte gUnknown_0202F7C8
-_08141804: .4byte 0x02017800
- thumb_func_end sub_81417D8
-
- thumb_func_start sub_8141808
-sub_8141808: @ 8141808
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141820 @ =gUnknown_0202F7C9
- ldr r1, _08141824 @ =gUnknown_02024C0A
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141820: .4byte gUnknown_0202F7C9
-_08141824: .4byte gUnknown_02024C0A
- thumb_func_end sub_8141808
-
- thumb_func_start sub_8141828
-sub_8141828: @ 8141828
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- mov r8, r0
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _081418E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _081418FC
- lsrs r0, r5, 16
- ldr r7, _081418E4 @ =0x0000ffff
- ands r5, r7
- eors r0, r5
- lsrs r1, r4, 16
- eors r0, r1
- ands r4, r7
- eors r0, r4
- cmp r0, 0x7
- bhi _08141882
- movs r0, 0x1
- mov r8, r0
-_08141882:
- mov r0, r8
- cmp r0, 0
- beq _081418FC
- ldr r0, _081418E8 @ =0x000027f9
- bl GetSpriteTileStartByTag
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bne _081418A2
- ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8)
- bl LoadCompressedObjectPalette
-_081418A2:
- ldr r5, _081418F4 @ =sub_814191C
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081418F8 @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r2, r3
- movs r4, 0
- strh r6, [r2, 0x8]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- strh r6, [r1, 0x8]
- strh r4, [r2, 0xA]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- b _0814190E
- .align 2, 0
-_081418E0: .4byte 0x02017810
-_081418E4: .4byte 0x0000ffff
-_081418E8: .4byte 0x000027f9
-_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
-_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
-_081418F4: .4byte sub_814191C
-_081418F8: .4byte gTasks
-_081418FC:
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _08141918 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_0814190E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141918: .4byte 0x02017810
- thumb_func_end sub_8141828
-
- thumb_func_start sub_814191C
-sub_814191C: @ 814191C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08141944 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- bgt _08141948
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- b _08141AB8
- .align 2, 0
-_08141944: .4byte gTasks
-_08141948:
- ldr r0, _08141998 @ =0x02017840
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _08141952
- b _08141AB8
-_08141952:
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- beq _08141966
- b _08141AB8
-_08141966:
- ldrb r0, [r4, 0x8]
- mov r8, r0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081419A0
- ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- b _08141A02
- .align 2, 0
-_08141998: .4byte 0x02017840
-_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
-_081419A0:
- cmp r0, 0
- blt _081419D4
- cmp r0, 0x3
- bgt _081419D4
- ldr r0, _081419CC @ =gSpriteTemplate_8402500
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081419D0 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x4
- b _081419F4
- .align 2, 0
-_081419CC: .4byte gSpriteTemplate_8402500
-_081419D0: .4byte gSprites
-_081419D4:
- ldr r0, _08141A2C @ =gSpriteTemplate_8402500
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08141A30 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x5
-_081419F4:
- ldr r4, _08141A34 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _08141A38 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08141A02:
- ldr r2, _08141A3C @ =gTasks
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- mov r9, r1
- cmp r0, 0
- bne _08141A44
- ldr r1, _08141A30 @ =gSprites
- lsls r2, r5, 4
- adds r0, r2, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08141A40 @ =sub_8141B20
- str r1, [r0]
- adds r4, r2, 0
- b _08141A8C
- .align 2, 0
-_08141A2C: .4byte gSpriteTemplate_8402500
-_08141A30: .4byte gSprites
-_08141A34: .4byte 0x000003ff
-_08141A38: .4byte 0xfffffc00
-_08141A3C: .4byte gTasks
-_08141A40: .4byte sub_8141B20
-_08141A44:
- ldr r3, _08141AC4 @ =gSprites
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08141AC8 @ =sub_8141B74
- str r2, [r0]
- adds r1, r3
- ldr r0, _08141ACC @ =0x0000ffe0
- strh r0, [r1, 0x24]
- movs r0, 0x20
- strh r0, [r1, 0x26]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08141A8C
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x3F
- cmp r0, 0
- bne _08141A82
- movs r1, 0xC0
-_08141A82:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x66
- bl PlaySE12WithPanning
-_08141A8C:
- ldr r1, _08141AC4 @ =gSprites
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- strh r7, [r0, 0x2E]
- ldr r1, _08141AD0 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r2, r0, r1
- ldrh r1, [r2, 0x1E]
- adds r1, 0x1
- strh r1, [r2, 0x1E]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x5
- bne _08141AB8
- ldr r0, _08141AD4 @ =sub_8141AD8
- str r0, [r2]
-_08141AB8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141AC4: .4byte gSprites
-_08141AC8: .4byte sub_8141B74
-_08141ACC: .4byte 0x0000ffe0
-_08141AD0: .4byte gTasks
-_08141AD4: .4byte sub_8141AD8
- thumb_func_end sub_814191C
-
- thumb_func_start sub_8141AD8
-sub_8141AD8: @ 8141AD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldr r1, _08141B18 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08141B14
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _08141B0E
- ldrb r1, [r1, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141B1C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_08141B0E:
- adds r0, r3, 0
- bl DestroyTask
-_08141B14:
- pop {r0}
- bx r0
- .align 2, 0
-_08141B18: .4byte gTasks
-_08141B1C: .4byte 0x02017810
- thumb_func_end sub_8141AD8
-
- thumb_func_start sub_8141B20
-sub_8141B20: @ 8141B20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xC
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08141B6A
- ldr r2, _08141B70 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141B6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141B70: .4byte gTasks
- thumb_func_end sub_8141B20
-
- thumb_func_start sub_8141B74
-sub_8141B74: @ 8141B74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _08141B88
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08141BCA
-_08141B88:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r1, [r4, 0x24]
- adds r1, 0x5
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x5
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x20
- ble _08141BCA
- ldr r2, _08141BD0 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141BCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BD0: .4byte gTasks
- thumb_func_end sub_8141B74
-
- thumb_func_start sub_8141BD4
-sub_8141BD4: @ 8141BD4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8)
- bl LoadCompressedObjectPalette
- ldr r0, _08141C04 @ =0x0000281d
- bl IndexOfSpritePaletteTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
-_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
-_08141C04: .4byte 0x0000281d
- thumb_func_end sub_8141BD4
-
- thumb_func_start sub_8141C08
-sub_8141C08: @ 8141C08
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08141C2C @ =0x0000281d
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141C2C: .4byte 0x0000281d
- thumb_func_end sub_8141C08
-
- thumb_func_start sub_8141C30
-sub_8141C30: @ 8141C30
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r5, _08141CA4 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _08141CA8 @ =0x0000ffe0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r1, _08141CAC @ =gUnknown_02024BE0
- ldr r0, _08141CB0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141CB4 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08141CB8 @ =sub_8141CBC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141CA4: .4byte gUnknown_03004B00
-_08141CA8: .4byte 0x0000ffe0
-_08141CAC: .4byte gUnknown_02024BE0
-_08141CB0: .4byte gUnknown_0202F7C8
-_08141CB4: .4byte gSprites
-_08141CB8: .4byte sub_8141CBC
- thumb_func_end sub_8141C30
-
- thumb_func_start sub_8141CBC
-sub_8141CBC: @ 8141CBC
- push {lr}
- adds r3, r0, 0
- ldr r2, _08141CE4 @ =gSprites
- ldr r1, _08141CE8 @ =gUnknown_02024BE0
- ldr r0, _08141CEC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08141CE0
- ldr r0, _08141CF0 @ =sub_8141CF4
- str r0, [r3, 0x1C]
-_08141CE0:
- pop {r0}
- bx r0
- .align 2, 0
-_08141CE4: .4byte gSprites
-_08141CE8: .4byte gUnknown_02024BE0
-_08141CEC: .4byte gUnknown_0202F7C8
-_08141CF0: .4byte sub_8141CF4
- thumb_func_end sub_8141CBC
-
- thumb_func_start sub_8141CF4
-sub_8141CF4: @ 8141CF4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08141D16
- movs r0, 0
- 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, _08141D1C @ =sub_8141D20
- str r0, [r4, 0x1C]
-_08141D16:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D1C: .4byte sub_8141D20
- thumb_func_end sub_8141CF4
-
- thumb_func_start sub_8141D20
-sub_8141D20: @ 8141D20
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08141D70 @ =gSprites
- ldr r3, _08141D74 @ =gUnknown_02024BE0
- ldr r2, _08141D78 @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _08141D68
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- ble _08141D68
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl move_anim_8072740
-_08141D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D70: .4byte gSprites
-_08141D74: .4byte gUnknown_02024BE0
-_08141D78: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8141D20
-
- thumb_func_start sub_8141D7C
-sub_8141D7C: @ 8141D7C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08141DA4 @ =gUnknown_0202F7C8
- strb r0, [r1]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _08141DA8 @ =gUnknown_0202F7C9
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141DA4: .4byte gUnknown_0202F7C8
-_08141DA8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141D7C
-
- thumb_func_start sub_8141DAC
-sub_8141DAC: @ 8141DAC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08141DC0 @ =0x02017840
- ldrh r1, [r0]
- cmp r1, 0x53
- bne _08141DC8
- ldr r1, _08141DC4 @ =gUnknown_03004B00
- movs r0, 0x1
- b _08141E00
- .align 2, 0
-_08141DC0: .4byte 0x02017840
-_08141DC4: .4byte gUnknown_03004B00
-_08141DC8:
- cmp r1, 0xFA
- bne _08141DD8
- ldr r1, _08141DD4 @ =gUnknown_03004B00
- movs r0, 0x2
- b _08141E00
- .align 2, 0
-_08141DD4: .4byte gUnknown_03004B00
-_08141DD8:
- cmp r1, 0x80
- bne _08141DE8
- ldr r1, _08141DE4 @ =gUnknown_03004B00
- movs r0, 0x3
- b _08141E00
- .align 2, 0
-_08141DE4: .4byte gUnknown_03004B00
-_08141DE8:
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _08141DFC
- ldr r1, _08141DF8 @ =gUnknown_03004B00
- movs r0, 0x4
- b _08141E00
- .align 2, 0
-_08141DF8: .4byte gUnknown_03004B00
-_08141DFC:
- ldr r1, _08141E0C @ =gUnknown_03004B00
- movs r0, 0
-_08141E00:
- strh r0, [r1]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E0C: .4byte gUnknown_03004B00
- thumb_func_end sub_8141DAC
-
- thumb_func_start sub_8141E10
-sub_8141E10: @ 8141E10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141E2C @ =gUnknown_0202F7C8
- ldr r1, _08141E30 @ =0x02017840
- ldrh r1, [r1]
- strb r1, [r2]
- ldr r2, _08141E34 @ =gUnknown_0202F7C9
- lsrs r1, 8
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E2C: .4byte gUnknown_0202F7C8
-_08141E30: .4byte 0x02017840
-_08141E34: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141E10
-
- thumb_func_start sub_8141E38
-sub_8141E38: @ 8141E38
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8141E38
-
- thumb_func_start sub_8141E4C
-sub_8141E4C: @ 8141E4C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8141E4C
-
- thumb_func_start sub_8141E64
-sub_8141E64: @ 8141E64
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08141E80 @ =gMain
- ldr r1, _08141E84 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08141EA0
- lsls r0, 2
- ldr r1, _08141E88 @ =_08141E8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08141E80: .4byte gMain
-_08141E84: .4byte 0x0000043c
-_08141E88: .4byte _08141E8C
- .align 2, 0
-_08141E8C:
- .4byte _08141EA0
- .4byte _08141EC0
- .4byte _08141EC6
- .4byte _08141F1C
- .4byte _08141F58
-_08141EA0:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08141EB8 @ =gMain
- ldr r2, _08141EBC @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08141F84
- .align 2, 0
-_08141EB8: .4byte gMain
-_08141EBC: .4byte 0x0000043c
-_08141EC0:
- bl sub_8143570
- b _08141F38
-_08141EC6:
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08141F04 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _08141F08 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08141F0C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08141F10 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08141F14 @ =gMain
- ldr r2, _08141F18 @ =0x0000043c
- adds r1, r2
- b _08141F3E
- .align 2, 0
-_08141F04: .4byte sub_8141E38
-_08141F08: .4byte 0x04000208
-_08141F0C: .4byte 0x04000200
-_08141F10: .4byte REG_DISPSTAT
-_08141F14: .4byte gMain
-_08141F18: .4byte 0x0000043c
-_08141F1C:
- ldr r1, _08141F48 @ =REG_BLDCNT
- ldr r2, _08141F4C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- bl sub_81435B8
-_08141F38:
- ldr r1, _08141F50 @ =gMain
- ldr r0, _08141F54 @ =0x0000043c
- adds r1, r0
-_08141F3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08141F84
- .align 2, 0
-_08141F48: .4byte REG_BLDCNT
-_08141F4C: .4byte 0x00003f42
-_08141F50: .4byte gMain
-_08141F54: .4byte 0x0000043c
-_08141F58:
- bl UpdatePaletteFade
- ldr r0, _08141F7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08141F84
- ldr r0, _08141F80 @ =sub_8141E4C
- bl SetMainCallback2
- movs r0, 0xDA
- lsls r0, 1
- bl PlayBGM
- movs r0, 0
- b _08141F86
- .align 2, 0
-_08141F7C: .4byte gPaletteFade
-_08141F80: .4byte sub_8141E4C
-_08141F84:
- movs r0, 0x1
-_08141F86:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8141E64
-
- thumb_func_start sub_8141F90
-sub_8141F90: @ 8141F90
- push {r4,lr}
- bl sub_8141E64
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08141FB6
- ldr r0, _08141FBC @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FC0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08141FB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141FBC: .4byte sub_8141FF8
-_08141FC0: .4byte gTasks
- thumb_func_end sub_8141F90
-
- thumb_func_start sub_8141FC4
-sub_8141FC4: @ 8141FC4
- push {lr}
- bl sub_8141E64
- lsls r0, 24
- cmp r0, 0
- bne _08141FEA
- ldr r0, _08141FF0 @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_08141FEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08141FF0: .4byte sub_8141FF8
-_08141FF4: .4byte gTasks
- thumb_func_end sub_8141FC4
-
- thumb_func_start sub_8141FF8
-sub_8141FF8: @ 8141FF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _081420C8 @ =0x0201c000
- mov r9, r0
- ldr r1, _081420CC @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r7, 0
- ldr r4, _081420D0 @ =0xfffffe00
- mov r10, r4
-_08142024:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _081420D4 @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r3, r0, 0
- cmp r3, 0
- beq _081420DC
- adds r0, r6, 0
- movs r1, 0x41
- bl GetMonData
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 2
- mov r1, r9
- adds r5, r1, r4
- ldr r2, _081420D8 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- ldrh r1, [r5, 0x8]
- mov r2, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5]
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r1, r9
- adds r1, 0x4
- adds r1, r4
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- ldrb r2, [r5, 0x9]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- movs r2, 0
- mov r6, r8
- lsls r5, r6, 2
- mov r3, r9
- adds r3, 0xA
-_081420A0:
- adds r1, r2, r4
- adds r1, r3, r1
- mov r6, sp
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bls _081420A0
- ldr r0, _081420CC @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- b _08142108
- .align 2, 0
-_081420C8: .4byte 0x0201c000
-_081420CC: .4byte gTasks
-_081420D0: .4byte 0xfffffe00
-_081420D4: .4byte gPlayerParty
-_081420D8: .4byte 0x000001ff
-_081420DC:
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 2
- mov r4, r9
- adds r2, r4, r1
- ldrh r0, [r2, 0x8]
- mov r6, r10
- ands r0, r6
- strh r0, [r2, 0x8]
- str r3, [r2]
- mov r0, r9
- adds r0, 0x4
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- strb r0, [r2, 0x9]
- movs r0, 0xFF
- strb r0, [r2, 0xA]
- mov r0, r8
- lsls r5, r0, 2
-_08142108:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142024
- ldr r0, _08142158 @ =gUnknown_0203931C
- movs r3, 0
- str r3, [r0]
- ldr r4, _0814215C @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r2, r1, r4
- strh r3, [r2, 0xA]
- movs r0, 0xFF
- strh r0, [r2, 0x10]
- movs r7, 0
- adds r3, r4, 0
- adds r3, 0x8
- movs r2, 0xFF
-_08142130:
- adds r0, r7, 0x5
- lsls r0, 1
- adds r0, r1
- adds r0, r3
- strh r2, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142130
- mov r6, r8
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r4
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08142164
- ldr r0, _08142160 @ =sub_81422E8
- b _08142166
- .align 2, 0
-_08142158: .4byte gUnknown_0203931C
-_0814215C: .4byte gTasks
-_08142160: .4byte sub_81422E8
-_08142164:
- ldr r0, _08142178 @ =sub_814217C
-_08142166:
- str r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142178: .4byte sub_814217C
- thumb_func_end sub_8141FF8
-
- thumb_func_start sub_814217C
-sub_814217C: @ 814217C
- 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
- ldr r0, _081421C4 @ =0x0201c000
- mov r9, r0
- movs r7, 0x80
- lsls r7, 6
- add r7, r9
- ldr r0, _081421C8 @ =gUnknown_02039324
- ldrb r0, [r0]
- cmp r0, 0
- bne _081421D4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r5, _081421CC @ =0xfffe4000
- add r5, r9
- movs r3, 0xF0
- lsls r3, 9
- movs r2, 0
- ldr r1, _081421D0 @ =0x00001fff
-_081421B2:
- adds r0, r4, r3
- adds r0, r5
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _081421B2
- b _081421E0
- .align 2, 0
-_081421C4: .4byte 0x0201c000
-_081421C8: .4byte gUnknown_02039324
-_081421CC: .4byte 0xfffe4000
-_081421D0: .4byte 0x00001fff
-_081421D4:
- movs r0, 0x3
- bl sub_8125EC8
- mov r0, r8
- lsls r0, 2
- mov r10, r0
-_081421E0:
- movs r4, 0
- ldrh r1, [r7, 0x8]
- ldr r2, _081421E8 @ =0x000001ff
- b _081421FA
- .align 2, 0
-_081421E8: .4byte 0x000001ff
-_081421EC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, 0x78
- cmp r4, 0x31
- bhi _08142206
- ldrh r1, [r7, 0x8]
-_081421FA:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _081421EC
- cmp r4, 0x31
- bls _08142228
-_08142206:
- ldr r5, _08142264 @ =0x0201e000
- adds r6, r5, 0
- adds r5, 0x78
- movs r4, 0
- subs r7, 0x78
-_08142210:
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x78
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, 0x78
- adds r5, 0x78
- cmp r4, 0x30
- bls _08142210
-_08142228:
- adds r0, r7, 0
- mov r1, r9
- movs r2, 0x78
- bl memcpy
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142268 @ =gMenuText_HOFSaving
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0814226C @ =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142270 @ =sub_8142274
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142264: .4byte 0x0201e000
-_08142268: .4byte gMenuText_HOFSaving
-_0814226C: .4byte gTasks
-_08142270: .4byte sub_8142274
- thumb_func_end sub_814217C
-
- thumb_func_start sub_8142274
-sub_8142274: @ 8142274
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _081422A8 @ =gUnknown_03005EBC
- ldr r0, _081422AC @ =sub_8141FC4
- str r0, [r1]
- movs r0, 0x3
- bl sub_8125D44
- movs r0, 0x37
- bl PlaySE
- ldr r1, _081422B0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081422B4 @ =sub_81422B8
- str r1, [r0]
- movs r1, 0x20
- strh r1, [r0, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081422A8: .4byte gUnknown_03005EBC
-_081422AC: .4byte sub_8141FC4
-_081422B0: .4byte gTasks
-_081422B4: .4byte sub_81422B8
- thumb_func_end sub_8142274
-
- thumb_func_start sub_81422B8
-sub_81422B8: @ 81422B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081422D8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _081422DC
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _081422E0
- .align 2, 0
-_081422D8: .4byte gTasks
-_081422DC:
- ldr r0, _081422E4 @ =sub_81422E8
- str r0, [r1]
-_081422E0:
- pop {r0}
- bx r0
- .align 2, 0
-_081422E4: .4byte sub_81422E8
- thumb_func_end sub_81422B8
-
- thumb_func_start sub_81422E8
-sub_81422E8: @ 81422E8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08142314 @ =gWindowConfig_81E7198
- adds r0, r5, 0
- bl SetUpWindowConfig
- adds r0, r5, 0
- bl InitMenuWindow
- ldr r1, _08142318 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814231C @ =sub_8142320
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142314: .4byte gWindowConfig_81E7198
-_08142318: .4byte gTasks
-_0814231C: .4byte sub_8142320
- thumb_func_end sub_81422E8
-
- thumb_func_start sub_8142320
-sub_8142320: @ 8142320
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08142350 @ =0x0201c000
- ldr r0, _08142354 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r6, [r1, 0xA]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r2
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _0814235C
- ldr r1, _08142358 @ =gUnknown_0840B534
- b _0814235E
- .align 2, 0
-_08142350: .4byte 0x0201c000
-_08142354: .4byte gTasks
-_08142358: .4byte gUnknown_0840B534
-_0814235C:
- ldr r1, _081423F0 @ =gUnknown_0840B564
-_0814235E:
- lsls r2, r6, 3
- adds r0, r2, r1
- ldrh r5, [r0]
- adds r0, r1, 0x2
- adds r0, r2, r0
- ldrh r3, [r0]
- adds r0, r1, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- mov r9, r0
- adds r1, 0x6
- adds r2, r1
- ldrh r2, [r2]
- mov r8, r2
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r3, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_81436BC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081423F4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r4, 0
- mov r5, r9
- strh r5, [r2, 0x30]
- mov r5, r8
- strh r5, [r2, 0x32]
- strh r4, [r2, 0x2E]
- adds r3, 0x1C
- adds r1, r3
- ldr r2, _081423F8 @ =sub_81435DC
- str r2, [r1]
- ldr r5, _081423FC @ =gTasks
- adds r1, r6, 0x5
- lsls r1, 1
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r1, r4
- adds r2, r5, 0
- adds r2, 0x8
- adds r1, r2
- strh r0, [r1]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r4, r5
- ldr r0, _08142400 @ =sub_8142404
- str r0, [r4]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081423F0: .4byte gUnknown_0840B564
-_081423F4: .4byte gSprites
-_081423F8: .4byte sub_81435DC
-_081423FC: .4byte gTasks
-_08142400: .4byte sub_8142404
- thumb_func_end sub_8142320
-
- thumb_func_start sub_8142404
-sub_8142404: @ 8142404
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08142470 @ =0x0201c000
- ldr r3, _08142474 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r5, r2, r3
- ldrh r1, [r5, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r4
- ldr r4, _08142478 @ =gSprites
- adds r1, 0x5
- lsls r1, 1
- adds r1, r2
- adds r3, 0x8
- adds r1, r3
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814246A
- ldrh r2, [r6, 0x8]
- ldr r0, _0814247C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142458
- lsls r0, r2, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142458:
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- movs r0, 0x78
- strh r0, [r5, 0xE]
- ldr r0, _08142480 @ =sub_8142484
- str r0, [r5]
-_0814246A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142470: .4byte 0x0201c000
-_08142474: .4byte gTasks
-_08142478: .4byte gSprites
-_0814247C: .4byte 0x000001ff
-_08142480: .4byte sub_8142484
- thumb_func_end sub_8142404
-
- thumb_func_start sub_8142484
-sub_8142484: @ 8142484
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _081424BC @ =0x0201c000
- ldr r1, _081424C0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- adds r4, r6, r1
- ldrh r3, [r4, 0xA]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r2
- mov r9, r0
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r0, [r4, r7]
- mov r12, r1
- cmp r0, 0
- beq _081424C4
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
- b _0814255C
- .align 2, 0
-_081424BC: .4byte 0x0201c000
-_081424C0: .4byte gTasks
-_081424C4:
- ldr r2, _0814253C @ =gUnknown_0203931C
- ldr r0, _08142540 @ =gSprites
- mov r8, r0
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r6
- mov r1, r12
- adds r1, 0x8
- adds r6, r0, r1
- movs r7, 0
- ldrsh r1, [r6, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- ldr r3, [r2]
- orrs r3, r1
- str r3, [r2]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _08142550
- mov r7, r9
- ldrh r1, [r7, 0x1C]
- ldr r0, _08142544 @ =0x000001ff
- ands r0, r1
- cmp r0, 0
- beq _08142550
- adds r0, r2, 0x1
- strh r0, [r4, 0xA]
- ldr r0, _08142548 @ =0x0000735f
- str r0, [sp]
- adds r0, r3, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, _0814254C @ =sub_8142320
- str r0, [r4]
- b _0814255C
- .align 2, 0
-_0814253C: .4byte gUnknown_0203931C
-_08142540: .4byte gSprites
-_08142544: .4byte 0x000001ff
-_08142548: .4byte 0x0000735f
-_0814254C: .4byte sub_8142320
-_08142550:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r12
- ldr r1, _0814256C @ =sub_8142570
- str r1, [r0]
-_0814255C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814256C: .4byte sub_8142570
- thumb_func_end sub_8142484
-
- thumb_func_start sub_8142570
-sub_8142570: @ 8142570
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142604 @ =0xffff0000
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r3, 0
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r5, r0, 3
- ldr r0, _08142608 @ =gTasks + 0x8
- mov r12, r0
- mov r8, r1
- ldr r6, _0814260C @ =gSprites
- movs r7, 0xD
- negs r7, r7
-_0814259E:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- mov r2, r12
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _081425C0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1, 0x5]
-_081425C0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _0814259E
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xF
- bl sub_8143068
- movs r0, 0x69
- bl PlaySE
- ldr r1, _08142610 @ =gTasks
- mov r2, r8
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC8
- lsls r1, 1
- strh r1, [r0, 0xE]
- ldr r1, _08142614 @ =sub_8142618
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142604: .4byte 0xffff0000
-_08142608: .4byte gTasks + 0x8
-_0814260C: .4byte gSprites
-_08142610: .4byte gTasks
-_08142614: .4byte sub_8142618
- thumb_func_end sub_8142570
-
- thumb_func_start sub_8142618
-sub_8142618: @ 8142618
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08142658 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r5, r0, 3
- adds r1, r5, r7
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0814265C
- subs r2, 0x1
- strh r2, [r1, 0xE]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _081426D2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x6E
- ble _081426D2
- bl sub_81438C4
- b _081426D2
- .align 2, 0
-_08142658: .4byte gTasks
-_0814265C:
- movs r3, 0
- mov r9, r4
- ldr r0, _081426E4 @ =gUnknown_0203931C
- mov r10, r0
- adds r4, r5, 0
- adds r7, 0x8
- mov r8, r7
- ldr r7, _081426E8 @ =gSprites
- movs r1, 0xD
- negs r1, r1
- mov r12, r1
- movs r5, 0x4
-_08142674:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r4
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _08142698
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
-_08142698:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142674
- mov r3, r10
- ldr r0, [r3]
- ldr r1, _081426EC @ =0x0000735f
- str r1, [sp]
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _081426F0 @ =gTasks
- mov r2, r9
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0xE]
- ldr r1, _081426F4 @ =sub_81426F8
- str r1, [r0]
-_081426D2:
- 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
-_081426E4: .4byte gUnknown_0203931C
-_081426E8: .4byte gSprites
-_081426EC: .4byte 0x0000735f
-_081426F0: .4byte gTasks
-_081426F4: .4byte sub_81426F8
- thumb_func_end sub_8142618
-
- thumb_func_start sub_81426F8
-sub_81426F8: @ 81426F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08142718 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0xF
- ble _08142720
- ldr r0, _0814271C @ =sub_8142738
- str r0, [r2]
- b _0814272E
- .align 2, 0
-_08142718: .4byte gTasks
-_0814271C: .4byte sub_8142738
-_08142720:
- adds r0, r1, 0x1
- strh r0, [r2, 0xE]
- ldr r1, _08142734 @ =REG_BLDALPHA
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- lsls r0, 8
- strh r0, [r1]
-_0814272E:
- pop {r0}
- bx r0
- .align 2, 0
-_08142734: .4byte REG_BLDALPHA
- thumb_func_end sub_81426F8
-
- thumb_func_start sub_8142738
-sub_8142738: @ 8142738
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08142784 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08142788 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x78
- movs r2, 0x48
- movs r3, 0x6
- bl sub_81437A4
- ldr r2, _0814278C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x10]
- movs r0, 0x78
- strh r0, [r1, 0xE]
- ldr r0, _08142790 @ =sub_8142794
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142784: .4byte gWindowConfig_81E71B4
-_08142788: .4byte gSaveBlock2
-_0814278C: .4byte gTasks
-_08142790: .4byte sub_8142794
- thumb_func_end sub_8142738
-
- thumb_func_start sub_8142794
-sub_8142794: @ 8142794
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081427B4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081427B8
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0814280A
- .align 2, 0
-_081427B4: .4byte gTasks
-_081427B8:
- ldr r2, _081427D8 @ =gSprites
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0xA0
- beq _081427DC
- adds r0, r2, 0x1
- strh r0, [r1, 0x20]
- b _0814280A
- .align 2, 0
-_081427D8: .4byte gSprites
-_081427DC:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0xF
- movs r3, 0x9
- bl MenuDrawTextWindow
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8143300
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142810 @ =gMenuText_HOFCongratulations
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _08142814 @ =sub_8142818
- str r0, [r4]
-_0814280A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142810: .4byte gMenuText_HOFCongratulations
-_08142814: .4byte sub_8142818
- thumb_func_end sub_8142794
-
- thumb_func_start sub_8142818
-sub_8142818: @ 8142818
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142844 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814283E
- movs r0, 0x4
- bl FadeOutBGM
- ldr r0, _08142848 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0814284C @ =sub_8142850
- str r0, [r1]
-_0814283E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142844: .4byte gMain
-_08142848: .4byte gTasks
-_0814284C: .4byte sub_8142850
- thumb_func_end sub_8142818
-
- thumb_func_start sub_8142850
-sub_8142850: @ 8142850
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142890 @ =gPlttBufferFaded
- ldr r1, _08142894 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08142898 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814289C @ =sub_81428A0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142890: .4byte gPlttBufferFaded
-_08142894: .4byte gPlttBufferUnfaded
-_08142898: .4byte gTasks
-_0814289C: .4byte sub_81428A0
- thumb_func_end sub_8142850
-
- thumb_func_start sub_81428A0
-sub_81428A0: @ 81428A0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081428C4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081428BE
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _081428C8 @ =sub_81439D0
- bl SetMainCallback2
-_081428BE:
- pop {r0}
- bx r0
- .align 2, 0
-_081428C4: .4byte gPaletteFade
-_081428C8: .4byte sub_81439D0
- thumb_func_end sub_81428A0
-
- thumb_func_start sub_81428CC
-sub_81428CC: @ 81428CC
- push {r4,r5,lr}
- ldr r0, _081428E4 @ =gMain
- ldr r1, _081428E8 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08142908
- lsls r0, 2
- ldr r1, _081428EC @ =_081428F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081428E4: .4byte gMain
-_081428E8: .4byte 0x0000043c
-_081428EC: .4byte _081428F0
- .align 2, 0
-_081428F0:
- .4byte _08142908
- .4byte _08142928
- .4byte _0814293C
- .4byte _08142980
- .4byte _081429C0
- .4byte _081429EC
-_08142908:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08142920 @ =gMain
- ldr r2, _08142924 @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08142A12
- .align 2, 0
-_08142920: .4byte gMain
-_08142924: .4byte 0x0000043c
-_08142928:
- bl sub_8143570
- ldr r1, _08142934 @ =gMain
- ldr r3, _08142938 @ =0x0000043c
- adds r1, r3
- b _081429DC
- .align 2, 0
-_08142934: .4byte gMain
-_08142938: .4byte 0x0000043c
-_0814293C:
- ldr r0, _08142968 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _0814296C @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08142970 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08142974 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08142978 @ =gMain
- ldr r4, _0814297C @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_08142968: .4byte sub_8141E38
-_0814296C: .4byte 0x04000208
-_08142970: .4byte 0x04000200
-_08142974: .4byte REG_DISPSTAT
-_08142978: .4byte gMain
-_0814297C: .4byte 0x0000043c
-_08142980:
- ldr r0, _081429AC @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_81435B8
- ldr r0, _081429B0 @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _081429B4 @ =gUnknown_0840B57C
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5CD4
- ldr r1, _081429B8 @ =gMain
- ldr r4, _081429BC @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_081429AC: .4byte REG_BLDCNT
-_081429B0: .4byte 0x0201c000
-_081429B4: .4byte gUnknown_0840B57C
-_081429B8: .4byte gMain
-_081429BC: .4byte 0x0000043c
-_081429C0:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08142A12
- ldr r1, _081429E4 @ =gMain
- ldr r5, _081429E8 @ =0x0000043c
- adds r1, r5
-_081429DC:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08142A12
- .align 2, 0
-_081429E4: .4byte gMain
-_081429E8: .4byte 0x0000043c
-_081429EC:
- ldr r1, _08142A18 @ =REG_BLDCNT
- ldr r2, _08142A1C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xE2
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08142A20 @ =sub_8142A28
- movs r1, 0
- bl CreateTask
- ldr r0, _08142A24 @ =sub_8141E4C
- bl SetMainCallback2
-_08142A12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142A18: .4byte REG_BLDCNT
-_08142A1C: .4byte 0x00003f42
-_08142A20: .4byte sub_8142A28
-_08142A24: .4byte sub_8141E4C
- thumb_func_end sub_81428CC
-
- thumb_func_start sub_8142A28
-sub_8142A28: @ 8142A28
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8125EC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08142A54
- ldr r0, _08142A4C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142A50 @ =sub_8142FEC
- str r0, [r1]
- b _08142AEA
- .align 2, 0
-_08142A4C: .4byte gTasks
-_08142A50: .4byte sub_8142FEC
-_08142A54:
- ldr r2, _08142A8C @ =0x0201e000
- movs r3, 0
- ldrh r1, [r2, 0x8]
- ldr r4, _08142A90 @ =0x000001ff
- adds r0, r4, 0
- ands r0, r1
- ldr r7, _08142A94 @ =gTasks
- lsls r6, r5, 2
- cmp r0, 0
- beq _08142A7E
-_08142A68:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x78
- cmp r3, 0x31
- bhi _08142A98
- ldrh r1, [r2, 0x8]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08142A68
-_08142A7E:
- cmp r3, 0x31
- bhi _08142A98
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- subs r1, r3, 0x1
- b _08142AA0
- .align 2, 0
-_08142A8C: .4byte 0x0201e000
-_08142A90: .4byte 0x000001ff
-_08142A94: .4byte gTasks
-_08142A98:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x31
-_08142AA0:
- strh r1, [r0, 0x8]
- movs r0, 0xA
- bl sub_8053108
- ldr r2, _08142AF0 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0xA]
- movs r3, 0
- ldr r7, _08142AF4 @ =0x0600381a
- ldr r4, _08142AF8 @ =0x0600385a
-_08142AB8:
- lsls r1, r3, 1
- adds r2, r1, r7
- adds r0, r3, 0x3
- strh r0, [r2]
- adds r1, r4
- adds r0, 0x11
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _08142AB8
- ldr r4, _08142AFC @ =gWindowConfig_81E7198
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _08142AF0 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142B00 @ =sub_8142B04
- str r1, [r0]
-_08142AEA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142AF0: .4byte gTasks
-_08142AF4: .4byte 0x0600381a
-_08142AF8: .4byte 0x0600385a
-_08142AFC: .4byte gWindowConfig_81E7198
-_08142B00: .4byte sub_8142B04
- thumb_func_end sub_8142A28
-
- thumb_func_start sub_8142B04
-sub_8142B04: @ 8142B04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r3, _08142BB8 @ =0x0201e000
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- ldr r2, _08142BC0 @ =gUnknown_0203931C
- cmp r5, r0
- bge _08142B3E
- adds r1, r0, 0
-_08142B32:
- adds r3, 0x78
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r1
- blt _08142B32
-_08142B3E:
- adds r4, r3, 0
- movs r0, 0
- str r0, [r2]
- mov r5, r8
- lsls r2, r5, 2
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r6
- strh r0, [r1, 0xC]
- strh r0, [r1, 0x10]
- movs r5, 0
- str r2, [sp, 0xC]
- ldr r6, _08142BC4 @ =0x000001ff
- adds r2, r1, 0
-_08142B5A:
- ldrh r1, [r4, 0x8]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08142B6A
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
-_08142B6A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B5A
- adds r4, r3, 0
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r7, r0, 3
- adds r6, r7, r1
- str r6, [sp, 0x8]
- adds r1, 0x8
- mov r9, r1
- ldr r0, _08142BC8 @ =gUnknown_0840B564
- mov r10, r0
-_08142B8E:
- ldrh r1, [r4, 0x8]
- ldr r2, _08142BC4 @ =0x000001ff
- adds r0, r2, 0
- ands r0, r1
- adds r6, r1, 0
- cmp r0, 0
- beq _08142C30
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _08142BD4
- lsls r1, r5, 3
- ldr r0, _08142BCC @ =gUnknown_0840B534
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r0, _08142BD0 @ =gUnknown_0840B53A
- adds r1, r0
- b _08142BE2
- .align 2, 0
-_08142BB8: .4byte 0x0201e000
-_08142BBC: .4byte gTasks
-_08142BC0: .4byte gUnknown_0203931C
-_08142BC4: .4byte 0x000001ff
-_08142BC8: .4byte gUnknown_0840B564
-_08142BCC: .4byte gUnknown_0840B534
-_08142BD0: .4byte gUnknown_0840B53A
-_08142BD4:
- lsls r1, r5, 3
- mov r0, r10
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r2, _08142C28 @ =gUnknown_0840B56A
- adds r1, r2
-_08142BE2:
- ldrh r2, [r1]
- lsls r0, r6, 23
- lsrs r0, 23
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r5, 0
- bl sub_81436BC
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08142C2C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r2, r6, 0
- ands r3, r2
- movs r2, 0x4
- orrs r3, r2
- strb r3, [r1, 0x5]
- adds r1, r5, 0x5
- lsls r1, 1
- adds r1, r7
- add r1, r9
- strh r0, [r1]
- b _08142C3C
- .align 2, 0
-_08142C28: .4byte gUnknown_0840B56A
-_08142C2C: .4byte gSprites
-_08142C30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- movs r1, 0xFF
- strh r1, [r0]
-_08142C3C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B8E
- ldr r0, _08142CB0 @ =0xffff0000
- ldr r2, _08142CB4 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettes
- ldr r3, _08142CB8 @ =gStringVar1
- ldr r1, _08142CBC @ =gMenuText_HOFNumber
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r5, 0xFC
- strb r5, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- ldr r0, _08142CC0 @ =gTasks
- ldr r4, [sp, 0xC]
- add r4, r8
- lsls r4, 3
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- strb r5, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0xF0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r0, _08142CB8 @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- ldr r0, _08142CC4 @ =sub_8142CC8
- str r0, [r4]
- 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
-_08142CB0: .4byte 0xffff0000
-_08142CB4: .4byte 0x0000735f
-_08142CB8: .4byte gStringVar1
-_08142CBC: .4byte gMenuText_HOFNumber
-_08142CC0: .4byte gTasks
-_08142CC4: .4byte sub_8142CC8
- thumb_func_end sub_8142B04
-
- thumb_func_start sub_8142CC8
-sub_8142CC8: @ 8142CC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142DD0 @ =0x0201e000
- mov r8, r0
- movs r3, 0
- ldr r1, _08142DD4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r3, r0
- bge _08142CFE
- adds r1, r0, 0
-_08142CF0:
- movs r0, 0x78
- add r8, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- blt _08142CF0
-_08142CFE:
- movs r3, 0
- lsls r6, r4, 2
- adds r0, r6, r4
- lsls r5, r0, 3
- ldr r1, _08142DD8 @ =gTasks + 0x8
- mov r10, r1
- ldr r2, _08142DDC @ =gSprites
- mov r12, r2
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- movs r7, 0x4
-_08142D16:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- add r0, r10
- ldrh r1, [r0]
- cmp r1, 0xFF
- beq _08142D36
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x5]
- mov r1, r9
- ands r1, r2
- orrs r1, r7
- strb r1, [r0, 0x5]
-_08142D36:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142D16
- adds r1, r6, r4
- lsls r1, 3
- ldr r2, _08142DD4 @ =gTasks
- adds r5, r1, r2
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- adds r0, 0x5
- lsls r0, 1
- adds r0, r1
- ldr r1, _08142DD4 @ =gTasks
- adds r1, 0x8
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08142DDC @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r1
- ldr r1, _08142DE0 @ =0xffff0000
- eors r0, r1
- ldr r2, _08142DE4 @ =gUnknown_0203931C
- str r0, [r2]
- ldr r2, _08142DE8 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettesUnfaded
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r1, r8
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- ldr r0, _08142DEC @ =0x000001ff
- ands r0, r1
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142DB2
- bl StopCryAndClearCrySongs
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142DB2:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- ldr r0, _08142DF0 @ =sub_8142DF4
- str r0, [r5]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142DD0: .4byte 0x0201e000
-_08142DD4: .4byte gTasks
-_08142DD8: .4byte gTasks + 0x8
-_08142DDC: .4byte gSprites
-_08142DE0: .4byte 0xffff0000
-_08142DE4: .4byte gUnknown_0203931C
-_08142DE8: .4byte 0x0000735f
-_08142DEC: .4byte 0x000001ff
-_08142DF0: .4byte sub_8142DF4
- thumb_func_end sub_8142CC8
-
- thumb_func_start sub_8142DF4
-sub_8142DF4: @ 8142DF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08142E88 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r2
- adds r3, r1, 0
- cmp r0, 0
- beq _08142EC4
- ldr r7, _08142E8C @ =gTasks
- lsls r0, r6, 2
- adds r1, r0, r6
- lsls r3, r1, 3
- adds r4, r3, r7
- ldrh r2, [r4, 0x8]
- movs r5, 0x8
- ldrsh r1, [r4, r5]
- mov r8, r0
- cmp r1, 0
- beq _08142E98
- subs r0, r2, 0x1
- strh r0, [r4, 0x8]
- movs r5, 0
- adds r7, 0x8
- mov r9, r7
- adds r7, r3, 0
-_08142E30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- ldrb r1, [r0]
- cmp r1, 0xFF
- beq _08142E5E
- ldr r0, _08142E90 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroySprite
-_08142E5E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08142E30
- ldr r0, _08142E8C @ =gTasks
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08142E80
- subs r0, r2, 0x1
- strh r0, [r1, 0xA]
-_08142E80:
- ldr r0, _08142E94 @ =sub_8142B04
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142E88: .4byte gMain
-_08142E8C: .4byte gTasks
-_08142E90: .4byte gSprites
-_08142E94: .4byte sub_8142B04
-_08142E98:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EB2
- bl StopCryAndClearCrySongs
- ldr r0, _08142EB8 @ =gMPlay_BGM
- ldr r1, _08142EBC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EB2:
- ldr r0, _08142EC0 @ =sub_8142F78
- str r0, [r4]
- b _08142F64
- .align 2, 0
-_08142EB8: .4byte gMPlay_BGM
-_08142EBC: .4byte 0x0000ffff
-_08142EC0: .4byte sub_8142F78
-_08142EC4:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08142F08
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EE6
- bl StopCryAndClearCrySongs
- ldr r0, _08142EF8 @ =gMPlay_BGM
- ldr r1, _08142EFC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EE6:
- ldr r0, _08142F00 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142F04 @ =sub_8142F78
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142EF8: .4byte gMPlay_BGM
-_08142EFC: .4byte 0x0000ffff
-_08142F00: .4byte gTasks
-_08142F04: .4byte sub_8142F78
-_08142F08:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08142F38
- ldr r0, _08142F30 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08142F38
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- ldr r0, _08142F34 @ =sub_8142CC8
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142F30: .4byte gTasks
-_08142F34: .4byte sub_8142CC8
-_08142F38:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08142F64
- ldr r1, _08142F70 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- movs r5, 0xC
- ldrsh r1, [r2, r5]
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- cmp r1, r0
- bge _08142F64
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ldr r0, _08142F74 @ =sub_8142CC8
- str r0, [r2]
-_08142F64:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142F70: .4byte gTasks
-_08142F74: .4byte sub_8142CC8
- thumb_func_end sub_8142DF4
-
- thumb_func_start sub_8142F78
-sub_8142F78: @ 8142F78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142FB4 @ =gPlttBufferFaded
- ldr r1, _08142FB8 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- ldr r0, _08142FBC @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _08142FC0 @ =gUnknown_0840B57C
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5E38
- ldr r1, _08142FC4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142FC8 @ =sub_8142FCC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142FB4: .4byte gPlttBufferFaded
-_08142FB8: .4byte gPlttBufferUnfaded
-_08142FBC: .4byte 0x0201c000
-_08142FC0: .4byte gUnknown_0840B57C
-_08142FC4: .4byte gTasks
-_08142FC8: .4byte sub_8142FCC
- thumb_func_end sub_8142F78
-
- thumb_func_start sub_8142FCC
-sub_8142FCC: @ 8142FCC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08142FE6
- adds r0, r4, 0
- bl DestroyTask
- bl ReturnFromHallOfFamePC
-_08142FE6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8142FCC
-
- thumb_func_start sub_8142FEC
-sub_8142FEC: @ 8142FEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08143020 @ =gMenuText_HOFCorrupt
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08143024 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143028 @ =sub_814302C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143020: .4byte gMenuText_HOFCorrupt
-_08143024: .4byte gTasks
-_08143028: .4byte sub_814302C
- thumb_func_end sub_8142FEC
-
- thumb_func_start sub_814302C
-sub_814302C: @ 814302C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08143056
- ldr r0, _0814305C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08143056
- ldr r0, _08143060 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143064 @ =sub_8142F78
- str r0, [r1]
-_08143056:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814305C: .4byte gMain
-_08143060: .4byte gTasks
-_08143064: .4byte sub_8142F78
- thumb_func_end sub_814302C
-
- thumb_func_start sub_8143068
-sub_8143068: @ 8143068
- push {lr}
- lsls r2, r1, 24
- ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating
- movs r1, 0x80
- lsls r1, 17
- adds r2, r1
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
- thumb_func_end sub_8143068
-
- thumb_func_start sub_8143088
-sub_8143088: @ 8143088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r7, _08143188 @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x28
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- mov r0, r9
- ldrh r2, [r0, 0x8]
- ldr r0, _0814318C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081430EA
- lsls r0, r2, 23
- lsrs r0, 23
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08143190 @ =0x0000ffff
- cmp r6, r0
- beq _081430EA
- ldr r1, _08143194 @ =gOtherText_Number2
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_081430EA:
- ldr r5, _08143188 @ =gStringVar1
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r4, r10
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r7, r5, 0
- movs r3, 0
- mov r1, r9
- ldrb r0, [r1, 0xA]
- str r4, [sp]
- mov r2, r8
- adds r2, 0x9
- str r2, [sp, 0xC]
- mov r6, r10
- adds r6, 0x3
- str r6, [sp, 0x8]
- cmp r0, 0xFF
- beq _0814313A
- mov r2, r9
- adds r2, 0xA
-_08143120:
- adds r1, r7, r3
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _0814313A
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08143120
-_0814313A:
- adds r7, r3
- movs r2, 0xFF
- strb r2, [r7]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814318C @ =0x000001ff
- ands r1, r0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08143198
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- strb r2, [r7, 0x3]
- ldr r0, _08143188 @ =gStringVar1
- ldr r2, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- bl MenuPrint
- ldr r6, [sp, 0x8]
- lsls r1, r6, 24
- lsrs r1, 24
- mov r3, r10
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r2, 0x1D
- bl MenuZeroFillWindowRect
- b _081432E4
- .align 2, 0
-_08143188: .4byte gStringVar1
-_0814318C: .4byte 0x000001ff
-_08143190: .4byte 0x0000ffff
-_08143194: .4byte gOtherText_Number2
-_08143198:
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x3E
- strb r0, [r7, 0x2]
- adds r7, 0x3
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- movs r3, 0
- ldr r2, _08143238 @ =gSpeciesNames
- mov r1, r9
- ldrh r0, [r1, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0xB
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0]
- mov r6, r8
- adds r6, 0x7
- str r6, [sp, 0x4]
- mov r1, r8
- adds r1, 0xD
- str r1, [sp, 0x10]
- cmp r0, 0xFF
- beq _08143204
- adds r5, r2, 0
- movs r4, 0xB
-_081431D4:
- adds r1, r7, r3
- mov r6, r9
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _08143204
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081431D4
-_08143204:
- adds r7, r3
- movs r0, 0
- strb r0, [r7]
- adds r7, 0x1
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814323C @ =0x000001ff
- ands r1, r0
- cmp r1, 0x20
- beq _0814324A
- cmp r1, 0x1D
- beq _0814324A
- lsls r0, 23
- lsrs r0, 23
- mov r2, r9
- ldr r1, [r2, 0x4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08143240
- cmp r0, 0xFE
- beq _08143244
- b _0814324A
- .align 2, 0
-_08143238: .4byte gSpeciesNames
-_0814323C: .4byte 0x000001ff
-_08143240:
- movs r0, 0xB5
- b _08143246
-_08143244:
- movs r0, 0xB6
-_08143246:
- strb r0, [r7]
- adds r7, 0x1
-_0814324A:
- movs r4, 0xFC
- strb r4, [r7]
- movs r3, 0x13
- mov r8, r3
- strb r3, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- movs r6, 0xFF
- mov r10, r6
- strb r6, [r7, 0x3]
- ldr r5, _081432F4 @ =gStringVar1
- ldr r0, [sp, 0xC]
- lsls r1, r0, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- mov r6, r9
- ldrb r0, [r6, 0x9]
- lsrs r6, r0, 1
- ldr r1, _081432F8 @ =gOtherText_Level3
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x14
- strb r0, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r7, r0, 0
- strb r4, [r7]
- mov r0, r8
- strb r0, [r7, 0x1]
- movs r0, 0x30
- strb r0, [r7, 0x2]
- mov r1, r10
- strb r1, [r7, 0x3]
- ldr r2, [sp, 0x4]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp, 0x8]
- lsls r4, r3, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r9
- ldrh r6, [r0]
- ldr r1, _081432FC @ =gOtherText_IDNumber
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r2, [sp, 0x10]
- lsls r1, r2, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
-_081432E4:
- 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
-_081432F4: .4byte gStringVar1
-_081432F8: .4byte gOtherText_Level3
-_081432FC: .4byte gOtherText_IDNumber
- thumb_func_end sub_8143088
-
- thumb_func_start sub_8143300
-sub_8143300: @ 8143300
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsls r4, 24
- ldr r0, _081433CC @ =gOtherText_Name
- lsrs r1, r5, 24
- mov r8, r1
- movs r2, 0x80
- lsls r2, 17
- adds r5, r2
- lsrs r5, 24
- lsrs r6, r4, 24
- adds r4, r2
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- ldr r0, _081433D0 @ =gSaveBlock2
- mov r10, r0
- movs r1, 0xE
- add r8, r1
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433D4 @ =gOtherText_IDNumber2
- adds r4, r6, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r10
- ldrb r1, [r0, 0xA]
- ldrb r0, [r0, 0xB]
- lsls r0, 8
- orrs r1, r0
- ldr r2, _081433D8 @ =gStringVar1
- mov r9, r2
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, r9
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433DC @ =gMainMenuString_Time
- adds r6, 0x5
- lsls r6, 24
- lsrs r6, 24
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- mov r0, r10
- ldrh r1, [r0, 0xE]
- mov r0, r9
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2]
- movs r0, 0xF0
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- adds r2, 0x3
- mov r0, r10
- ldrb r1, [r0, 0x10]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- bl MenuPrint_RightAligned
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081433CC: .4byte gOtherText_Name
-_081433D0: .4byte gSaveBlock2
-_081433D4: .4byte gOtherText_IDNumber2
-_081433D8: .4byte gStringVar1
-_081433DC: .4byte gMainMenuString_Time
- thumb_func_end sub_8143300
-
- thumb_func_start sub_81433E0
-sub_81433E0: @ 81433E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x8
- strh r1, [r0]
- adds r0, 0xA
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xA
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- strh r1, [r0]
- adds r0, 0xE
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _0814354C @ =gHallOfFame_Gfx
- mov r9, r1
- mov r2, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08143444:
- 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 _08143444
- 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, _08143550 @ =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 r1, 0xC0
- lsls r1, 19
- mov r0, r9
- bl LZ77UnCompVram
- movs r1, 0
- ldr r3, _08143558 @ =0x06003800
- movs r2, 0x1
-_081434B2:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081434B2
- movs r1, 0
- ldr r5, _0814355C @ =0x02000000
- ldr r3, _08143560 @ =0x06003b80
- movs r2, 0x1
-_081434CA:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xBF
- bls _081434CA
- movs r1, 0
- ldr r4, _08143564 @ =0x06003000
- movs r3, 0x2
- ldr r2, _08143568 @ =0x000003ff
-_081434E2:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _081434E2
- adds r2, r5, 0
- movs r3, 0x80
- lsls r3, 7
- mov r4, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0814350A:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _0814350A
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _0814356C @ =gHallOfFame_Pal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814354C: .4byte gHallOfFame_Gfx
-_08143550: .4byte 0x040000d4
-_08143554: .4byte 0x81000800
-_08143558: .4byte 0x06003800
-_0814355C: .4byte 0x02000000
-_08143560: .4byte 0x06003b80
-_08143564: .4byte 0x06003000
-_08143568: .4byte 0x000003ff
-_0814356C: .4byte gHallOfFame_Pal
- thumb_func_end sub_81433E0
-
- thumb_func_start sub_8143570
-sub_8143570: @ 8143570
- push {r4,lr}
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _081435A8 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _081435AC @ =gUnknown_0840B514
- bl LoadCompressedObjectPic
- ldr r0, _081435B0 @ =gUnknown_0840B524
- bl LoadCompressedObjectPalette
- ldr r4, _081435B4 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081435A8: .4byte gReservedSpritePaletteCount
-_081435AC: .4byte gUnknown_0840B514
-_081435B0: .4byte gUnknown_0840B524
-_081435B4: .4byte gWindowConfig_81E71B4
- thumb_func_end sub_8143570
-
- thumb_func_start sub_81435B8
-sub_81435B8: @ 81435B8
- ldr r1, _081435D8 @ =REG_BG1CNT
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- subs r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xDA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081435D8: .4byte REG_BG1CNT
- thumb_func_end sub_81435B8
-
- thumb_func_start sub_81435DC
-sub_81435DC: @ 81435DC
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, [r2, 0x20]
- ldr r0, [r2, 0x30]
- cmp r1, r0
- beq _08143632
- ldrh r3, [r2, 0x20]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r4, 0x30
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _081435FC
- adds r0, r3, 0
- adds r0, 0xF
- strh r0, [r2, 0x20]
-_081435FC:
- ldrh r3, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814360C
- adds r0, r3, 0
- subs r0, 0xF
- strh r0, [r2, 0x20]
-_0814360C:
- ldrh r3, [r2, 0x22]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r4, 0x32
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _08143620
- adds r0, r3, 0
- adds r0, 0xA
- strh r0, [r2, 0x22]
-_08143620:
- ldrh r3, [r2, 0x22]
- movs r4, 0x22
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814363A
- adds r0, r3, 0
- subs r0, 0xA
- strh r0, [r2, 0x22]
- b _0814363A
-_08143632:
- movs r0, 0x1
- strh r0, [r2, 0x2E]
- ldr r0, _08143640 @ =nullsub_81
- str r0, [r2, 0x1C]
-_0814363A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143640: .4byte nullsub_81
- thumb_func_end sub_81435DC
-
- thumb_func_start nullsub_81
-nullsub_81: @ 8143644
- bx lr
- thumb_func_end nullsub_81
-
- thumb_func_start sub_8143648
-sub_8143648: @ 8143648
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _08143670 @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _08143674 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _08143678 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143670: .4byte gUnknown_02024E8C
-_08143674: .4byte gUnknown_0840B6B8
-_08143678: .4byte gUnknown_0840B69C
-_0814367C: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end sub_8143648
-
- thumb_func_start sub_8143680
-sub_8143680: @ 8143680
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _081436AC @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _081436B0 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _081436B4 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _081436B8 @ =gUnknown_081EC2A4
- ldr r0, [r0]
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081436AC: .4byte gUnknown_02024E8C
-_081436B0: .4byte gUnknown_0840B6B8
-_081436B4: .4byte gUnknown_0840B69C
-_081436B8: .4byte gUnknown_081EC2A4
- thumb_func_end sub_8143680
-
- thumb_func_start sub_81436BC
-sub_81436BC: @ 81436BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- mov r10, r2
- mov r8, r3
- ldr r7, [sp, 0x34]
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r1, r10
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- mov r2, r8
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r0, r6, 3
- ldr r1, _08143790 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08143794 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08143798 @ =gUnknown_0840B5A0
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- adds r0, r6, 0
- ldr r1, [sp, 0x30]
- adds r2, r7, 0
- bl species_and_otid_get_pal
- lsls r4, r5, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r5, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0814379C @ =gUnknown_02024E8C
- mov r5, r9
- lsls r5, 16
- asrs r5, 16
- mov r9, r5
- mov r1, r10
- lsls r1, 16
- asrs r1, 16
- mov r10, r1
- movs r3, 0xA
- mov r2, r8
- subs r3, r2
- lsls r3, 24
- lsrs r3, 24
- mov r1, r9
- mov r2, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081437A0 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143790: .4byte gMonFrontPicTable
-_08143794: .4byte gMonFrontPicCoords
-_08143798: .4byte gUnknown_0840B5A0
-_0814379C: .4byte gUnknown_02024E8C
-_081437A0: .4byte gSprites
- thumb_func_end sub_81436BC
-
- thumb_func_start sub_81437A4
-sub_81437A4: @ 81437A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _08143854 @ =gTrainerFrontPicTable
- mov r8, r1
- add r8, r7
- ldr r1, _08143858 @ =gTrainerFrontPicCoords
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0814385C @ =gUnknown_0840B5A0
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _08143864 @ =gUnknown_02024E8C
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08143868 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143854: .4byte gTrainerFrontPicTable
-_08143858: .4byte gTrainerFrontPicCoords
-_0814385C: .4byte gUnknown_0840B5A0
-_08143860: .4byte gTrainerFrontPicPaletteTable
-_08143864: .4byte gUnknown_02024E8C
-_08143868: .4byte gSprites
- thumb_func_end sub_81437A4
-
- thumb_func_start sub_814386C
-sub_814386C: @ 814386C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x78
- ble _08143882
- adds r0, r5, 0
- bl DestroySprite
- b _081438BA
-_08143882:
- adds r0, r1, 0x1
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, 0x8
- ldr r1, _081438C0 @ =gSineTable
- lsls r4, 1
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- muls r0, r1
- cmp r0, 0
- bge _081438B0
- adds r0, 0xFF
-_081438B0:
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x4
- strh r0, [r5, 0x2E]
-_081438BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081438C0: .4byte gSineTable
- thumb_func_end sub_814386C
-
- thumb_func_start sub_81438C4
-sub_81438C4: @ 81438C4
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x7
- ands r2, r0
- negs r2, r2
- ldr r0, _08143934 @ =gSpriteTemplate_840B7A4
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r4, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08143938 @ =gSprites
- adds r4, r1, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _0814393C
- movs r0, 0
- b _0814393E
- .align 2, 0
-_08143934: .4byte gSpriteTemplate_840B7A4
-_08143938: .4byte gSprites
-_0814393C:
- movs r0, 0x1
-_0814393E:
- strh r0, [r4, 0x30]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81438C4
-
- thumb_func_start sub_8143948
-sub_8143948: @ 8143948
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8143948
-
- thumb_func_start sub_814395C
-sub_814395C: @ 814395C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081439B8 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081439B2
- ldr r0, _081439BC @ =gUnknown_02039324
- ldrb r0, [r0]
- cmp r0, 0
- beq _081439B2
- ldr r2, _081439C0 @ =gTasks
- ldr r0, _081439C4 @ =gUnknown_02039322
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _081439C8 @ =sub_8143B68
- cmp r1, r0
- bne _081439B2
- bl sub_8143948
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r1, _081439CC @ =gUnknown_02039325
- movs r0, 0x1
- strb r0, [r1]
-_081439B2:
- pop {r0}
- bx r0
- .align 2, 0
-_081439B8: .4byte gMain
-_081439BC: .4byte gUnknown_02039324
-_081439C0: .4byte gTasks
-_081439C4: .4byte gUnknown_02039322
-_081439C8: .4byte sub_8143B68
-_081439CC: .4byte gUnknown_02039325
- thumb_func_end sub_814395C
-
- thumb_func_start sub_81439D0
-sub_81439D0: @ 81439D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- bl sub_8144130
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetTasks
- ldr r0, _08143AF0 @ =sub_8143B38
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08143AF4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
- movs r1, 0x1
- strh r1, [r0, 0x22]
-_08143A0E:
- movs r0, 0
- adds r1, r7, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143A0E
- ldr r6, _08143AF4 @ =gTasks
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r5, r6
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- mov r9, r1
- movs r2, 0
- mov r8, r2
- movs r1, 0x28
- strh r1, [r0, 0x8]
- ldr r4, _08143AF8 @ =gWindowConfig_81E7208
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08143AFC @ =gUnknown_0840B7BC
- movs r1, 0x80
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08143B00 @ =gUnknown_0840B7FC
- ldr r1, _08143B04 @ =0x0600bee0
- movs r2, 0x20
- bl CpuSet
- ldr r1, _08143B08 @ =REG_BG0VOFS
- ldr r2, _08143B0C @ =0x0000fffc
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08143B10 @ =sub_81441B8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- strh r7, [r1, 0xA]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- negs r0, r0
- mov r1, r8
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143B14 @ =0x04000208
- ldrh r2, [r3]
- mov r0, r8
- strh r0, [r3]
- ldr r4, _08143B18 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143B1C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143B20 @ =sub_8143948
- bl SetVBlankCallback
- ldr r0, _08143B24 @ =0x000001c7
- bl m4aSongNumStart
- ldr r0, _08143B28 @ =sub_814395C
- bl SetMainCallback2
- ldr r0, _08143B2C @ =gUnknown_02039325
- mov r1, r9
- strb r1, [r0]
- ldr r4, _08143B30 @ =0x0201c000
- bl sub_81458DC
- adds r0, r4, 0
- adds r0, 0x88
- mov r2, r8
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- ldr r0, _08143B34 @ =gUnknown_02039322
- strh r7, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143AF0: .4byte sub_8143B38
-_08143AF4: .4byte gTasks
-_08143AF8: .4byte gWindowConfig_81E7208
-_08143AFC: .4byte gUnknown_0840B7BC
-_08143B00: .4byte gUnknown_0840B7FC
-_08143B04: .4byte 0x0600bee0
-_08143B08: .4byte REG_BG0VOFS
-_08143B0C: .4byte 0x0000fffc
-_08143B10: .4byte sub_81441B8
-_08143B14: .4byte 0x04000208
-_08143B18: .4byte 0x04000200
-_08143B1C: .4byte REG_DISPSTAT
-_08143B20: .4byte sub_8143948
-_08143B24: .4byte 0x000001c7
-_08143B28: .4byte sub_814395C
-_08143B2C: .4byte gUnknown_02039325
-_08143B30: .4byte 0x0201c000
-_08143B34: .4byte gUnknown_02039322
- thumb_func_end sub_81439D0
-
- thumb_func_start sub_8143B38
-sub_8143B38: @ 8143B38
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08143B5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143B58
- ldr r0, _08143B60 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143B64 @ =sub_8143B68
- str r0, [r1]
-_08143B58:
- pop {r0}
- bx r0
- .align 2, 0
-_08143B5C: .4byte gPaletteFade
-_08143B60: .4byte gTasks
-_08143B64: .4byte sub_8143B68
- thumb_func_end sub_8143B38
-
- thumb_func_start sub_8143B68
-sub_8143B68: @ 8143B68
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143B9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08143BA4
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1E
- strh r1, [r0, 0x8]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x20]
- ldr r0, _08143BA0 @ =sub_8143EBC
- b _08143BEE
- .align 2, 0
-_08143B9C: .4byte gTasks
-_08143BA0: .4byte sub_8143EBC
-_08143BA4:
- ldr r0, _08143BCC @ =gUnknown_02039320
- strh r1, [r0]
- ldrh r2, [r4, 0x1E]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _08143BD4
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BD0 @ =sub_8143BFC
- b _08143BEE
- .align 2, 0
-_08143BCC: .4byte gUnknown_02039320
-_08143BD0: .4byte sub_8143BFC
-_08143BD4:
- cmp r0, 0x2
- bne _08143BF0
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BF8 @ =sub_8143CC0
-_08143BEE:
- str r0, [r4]
-_08143BF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143BF8: .4byte sub_8143CC0
- thumb_func_end sub_8143B68
-
- thumb_func_start sub_8143BFC
-sub_8143BFC: @ 8143BFC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143C34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143C2C
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143C38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143C3C @ =c2_080C9BFC
- str r1, [r0]
-_08143C2C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143C34: .4byte gPaletteFade
-_08143C38: .4byte gTasks
-_08143C3C: .4byte c2_080C9BFC
- thumb_func_end sub_8143BFC
-
- thumb_func_start c2_080C9BFC
-c2_080C9BFC: @ 8143C40
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _08143CA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r0, [r5, 0x16]
- adds r1, r4, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143CA0
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143CAC @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143CB0 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143CB4 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143CB8 @ =sub_8143948
- bl SetVBlankCallback
- ldr r0, _08143CBC @ =sub_8143B38
- str r0, [r5]
-_08143CA0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CA8: .4byte gTasks
-_08143CAC: .4byte 0x04000208
-_08143CB0: .4byte 0x04000200
-_08143CB4: .4byte REG_DISPSTAT
-_08143CB8: .4byte sub_8143948
-_08143CBC: .4byte sub_8143B38
- thumb_func_end c2_080C9BFC
-
- thumb_func_start sub_8143CC0
-sub_8143CC0: @ 8143CC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143CF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143CF0
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143CFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143D00 @ =sub_8143D04
- str r1, [r0]
-_08143CF0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CF8: .4byte gPaletteFade
-_08143CFC: .4byte gTasks
-_08143D00: .4byte sub_8143D04
- thumb_func_end sub_8143CC0
-
- thumb_func_start sub_8143D04
-sub_8143D04: @ 8143D04
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08143DC8 @ =gMain
- ldr r1, _08143DCC @ =0x0000043c
- adds r1, r0
- mov r8, r1
- ldrb r7, [r1]
- cmp r7, 0
- beq _08143D24
- cmp r7, 0x1
- beq _08143E0C
-_08143D24:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08143DD0 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _08143DD4 @ =gUnknown_083F66F0
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08143DD8 @ =gBirchGrassTilemap
- ldr r1, _08143DDC @ =0x06003800
- bl LZ77UnCompVram
- ldr r0, _08143DE0 @ =gUnknown_083F62EC + 0x2
- movs r1, 0x1
- movs r2, 0x3E
- bl LoadPalette
- movs r1, 0
- ldr r4, _08143DE4 @ =0x0201e000
- movs r3, 0x11
- ldr r2, _08143DE8 @ =0x000007ff
-_08143D56:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08143D56
- movs r1, 0
- ldr r2, _08143DEC @ =0x0201f800
- ldr r6, _08143DF0 @ =gUnknown_0840CAA0
- ldr r0, _08143DF4 @ =0xfffff000
- adds r5, r2, r0
- movs r4, 0x22
- ldr r3, _08143DE8 @ =0x000007ff
-_08143D72:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D72
- movs r1, 0
- ldr r5, _08143DF8 @ =0x0201f000
- movs r4, 0x33
- ldr r3, _08143DE8 @ =0x000007ff
-_08143D88:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D88
- movs r0, 0
- strh r0, [r2]
- ldr r1, _08143DFC @ =0x000053ff
- adds r0, r1, 0
- strh r0, [r2, 0x2]
- ldr r1, _08143E00 @ =0x0000529f
- adds r0, r1, 0
- strh r0, [r2, 0x4]
- ldr r1, _08143E04 @ =0x00007e94
- adds r0, r1, 0
- strh r0, [r2, 0x6]
- adds r0, r6, 0
- bl LoadSpriteSheet
- ldr r0, _08143E08 @ =gUnknown_0840CAB0
- bl LoadSpritePalette
- ldr r1, _08143DC8 @ =gMain
- ldr r2, _08143DCC @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08143E90
- .align 2, 0
-_08143DC8: .4byte gMain
-_08143DCC: .4byte 0x0000043c
-_08143DD0: .4byte gReservedSpritePaletteCount
-_08143DD4: .4byte gUnknown_083F66F0
-_08143DD8: .4byte gBirchGrassTilemap
-_08143DDC: .4byte 0x06003800
-_08143DE0: .4byte gUnknown_083F62EC + 0x2
-_08143DE4: .4byte 0x0201e000
-_08143DE8: .4byte 0x000007ff
-_08143DEC: .4byte 0x0201f800
-_08143DF0: .4byte gUnknown_0840CAA0
-_08143DF4: .4byte 0xfffff000
-_08143DF8: .4byte 0x0201f000
-_08143DFC: .4byte 0x000053ff
-_08143E00: .4byte 0x0000529f
-_08143E04: .4byte 0x00007e94
-_08143E08: .4byte gUnknown_0840CAB0
-_08143E0C:
- ldr r0, _08143EA0 @ =sub_8144514
- movs r1, 0
- bl CreateTask
- ldr r2, _08143EA4 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- movs r5, 0
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r7, [r0, 0x8]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r6, [r0, 0xA]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r4, 0x16]
- strh r1, [r0, 0xC]
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08143EA8 @ =REG_BG3HOFS
- strh r5, [r0]
- ldr r1, _08143EAC @ =REG_BG3VOFS
- movs r0, 0x20
- strh r0, [r1]
- subs r1, 0x10
- ldr r2, _08143EB0 @ =0x00000703
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- mov r1, r9
- mov r0, r8
- strb r1, [r0]
- ldr r0, _08143EB4 @ =gUnknown_0203935C
- strh r5, [r0]
- ldr r0, _08143EB8 @ =sub_8143B38
- str r0, [r4]
-_08143E90:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143EA0: .4byte sub_8144514
-_08143EA4: .4byte gTasks
-_08143EA8: .4byte REG_BG3HOFS
-_08143EAC: .4byte REG_BG3VOFS
-_08143EB0: .4byte 0x00000703
-_08143EB4: .4byte gUnknown_0203935C
-_08143EB8: .4byte sub_8143B38
- thumb_func_end sub_8143D04
-
- thumb_func_start sub_8143EBC
-sub_8143EBC: @ 8143EBC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143EE0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x20]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08143EE4
- subs r0, 0x1
- strh r0, [r4, 0x20]
- b _08143EF8
- .align 2, 0
-_08143EE0: .4byte gTasks
-_08143EE4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0xC
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143F00 @ =sub_8143F04
- str r0, [r4]
-_08143EF8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F00: .4byte sub_8143F04
- thumb_func_end sub_8143EBC
-
- thumb_func_start sub_8143F04
-sub_8143F04: @ 8143F04
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143F30 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143F2A
- adds r0, r4, 0
- bl sub_81450AC
- ldr r0, _08143F34 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143F38 @ =sub_8143F3C
- str r0, [r1]
-_08143F2A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F30: .4byte gPaletteFade
-_08143F34: .4byte gTasks
-_08143F38: .4byte sub_8143F3C
- thumb_func_end sub_8143F04
-
- thumb_func_start sub_8143F3C
-sub_8143F3C: @ 8143F3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8144130
- bl ResetPaletteFade
- movs r1, 0xE0
- lsls r1, 6
- movs r0, 0
- movs r2, 0
- bl sub_8145128
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08143FC4 @ =REG_BG0CNT
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _08143FC8 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143FCC @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143FD0 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08143FD4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x8]
- ldr r1, _08143FD8 @ =sub_8143FDC
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143FC4: .4byte REG_BG0CNT
-_08143FC8: .4byte 0x04000208
-_08143FCC: .4byte 0x04000200
-_08143FD0: .4byte REG_DISPSTAT
-_08143FD4: .4byte gTasks
-_08143FD8: .4byte sub_8143FDC
- thumb_func_end sub_8143F3C
-
- thumb_func_start sub_8143FDC
-sub_8143FDC: @ 8143FDC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08144000 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08144004
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _08144018
- .align 2, 0
-_08144000: .4byte gTasks
-_08144004:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0x6
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08144020 @ =sub_8144024
- str r0, [r4]
-_08144018:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08144020: .4byte sub_8144024
- thumb_func_end sub_8143FDC
-
- thumb_func_start sub_8144024
-sub_8144024: @ 8144024
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08144074 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0814406A
- movs r0, 0xE0
- lsls r0, 6
- movs r1, 0
- bl sub_81452D0
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08144078 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE1
- lsls r1, 5
- strh r1, [r0, 0x8]
- ldr r1, _0814407C @ =sub_8144080
- str r1, [r0]
-_0814406A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08144074: .4byte gPaletteFade
-_08144078: .4byte gTasks
-_0814407C: .4byte sub_8144080
- thumb_func_end sub_8144024
-
- thumb_func_start sub_8144080
-sub_8144080: @ 8144080
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081440CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144104
- ldr r1, _081440D0 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _081440AE
- ldr r0, _081440D4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _081440E0
-_081440AE:
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- ldr r1, _081440D8 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081440DC @ =sub_8144114
- str r0, [r4]
- b _08144104
- .align 2, 0
-_081440CC: .4byte gPaletteFade
-_081440D0: .4byte gTasks
-_081440D4: .4byte gMain
-_081440D8: .4byte 0x0000ffff
-_081440DC: .4byte sub_8144114
-_081440E0:
- ldr r0, _0814410C @ =0x00001be8
- cmp r1, r0
- bne _081440EC
- movs r0, 0x8
- bl FadeOutBGM
-_081440EC:
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- ldr r0, _08144110 @ =0x00001ab8
- cmp r1, r0
- bne _081440FE
- movs r0, 0xE4
- lsls r0, 1
- bl m4aSongNumStart
-_081440FE:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
-_08144104:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814410C: .4byte 0x00001be8
-_08144110: .4byte 0x00001ab8
- thumb_func_end sub_8144080
-
- thumb_func_start sub_8144114
-sub_8144114: @ 8144114
- push {lr}
- ldr r0, _0814412C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144128
- movs r0, 0xFF
- bl SoftReset
-_08144128:
- pop {r0}
- bx r0
- .align 2, 0
-_0814412C: .4byte gPaletteFade
- thumb_func_end sub_8144114
-
- thumb_func_start sub_8144130
-sub_8144130: @ 8144130
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _081441A4 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441A8 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441AC @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _081441B0 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _081441B4 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x8
- bx lr
- .align 2, 0
-_081441A4: .4byte 0x040000d4
-_081441A8: .4byte 0x8100c000
-_081441AC: .4byte 0x85000100
-_081441B0: .4byte 0x05000002
-_081441B4: .4byte 0x810001ff
- thumb_func_end sub_8144130
-
- thumb_func_start sub_81441B8
-sub_81441B8: @ 81441B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081441E4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0xA
- bhi _08144218
- lsls r0, 2
- ldr r1, _081441E8 @ =_081441EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081441E4: .4byte gTasks
-_081441E8: .4byte _081441EC
- .align 2, 0
-_081441EC:
- .4byte _08144218
- .4byte _08144258
- .4byte _08144278
- .4byte _08144358
- .4byte _0814438C
- .4byte _081443F8
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144428
-_08144218:
- ldr r0, _08144250 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0814422A
- b _08144446
-_0814422A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x8]
- movs r1, 0x58
- strh r1, [r0, 0xE]
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r2, [r0, 0x24]
- ldr r0, _08144254 @ =gUnknown_02039320
- strh r2, [r0]
- b _08144446
- .align 2, 0
-_08144250: .4byte gPaletteFade
-_08144254: .4byte gUnknown_02039320
-_08144258:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144270
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _08144446
-_08144270:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144446
-_08144278:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08144320 @ =0x0000feff
- ands r0, r1
- strh r0, [r2]
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r6
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r6
- ldr r1, [r4]
- ldr r0, _08144324 @ =sub_8143B68
- mov r8, r2
- cmp r1, r0
- bne _08144352
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x33
- bgt _0814434C
- movs r4, 0
- ldr r7, _08144328 @ =gCreditsEntryPointerTable
- adds r6, r3, 0
-_081442B0:
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r4
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r2, r4, 25
- movs r3, 0x90
- lsls r3, 20
- adds r2, r3
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _081442B0
- ldr r3, _0814432C @ =gTasks
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x24]
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08144334
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144330 @ =0x0000328d
- b _0814433A
- .align 2, 0
-_08144320: .4byte 0x0000feff
-_08144324: .4byte sub_8143B68
-_08144328: .4byte gCreditsEntryPointerTable
-_0814432C: .4byte gTasks
-_08144330: .4byte 0x0000328d
-_08144334:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144348 @ =0x00001967
-_0814433A:
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_08144348: .4byte 0x00001967
-_0814434C:
- movs r0, 0xA
- strh r0, [r3, 0x8]
- b _08144446
-_08144352:
- movs r0, 0
- strh r0, [r4, 0x24]
- b _08144446
-_08144358:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08144388 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x82
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08144446
- .align 2, 0
-_08144388: .4byte gPaletteFade
-_0814438C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081443A4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08144446
-_081443A4:
- ldrb r0, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- bl sub_8144454
- lsls r0, 24
- cmp r0, 0
- beq _081443BA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08144446
-_081443BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _081443E0
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443DC @ =0x0000328d
- b _081443E6
- .align 2, 0
-_081443DC: .4byte 0x0000328d
-_081443E0:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443F4 @ =0x00001967
-_081443E6:
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_081443F4: .4byte 0x00001967
-_081443F8:
- ldr r0, _08144420 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08144424 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- b _08144446
- .align 2, 0
-_08144420: .4byte gPaletteFade
-_08144424: .4byte gTasks
-_08144428:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x10]
- adds r0, r5, 0
- bl DestroyTask
-_08144446:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81441B8
-
- thumb_func_start sub_8144454
-sub_8144454: @ 8144454
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- lsls r1, 24
- lsrs r2, r1, 24
- adds r5, r2, 0
- ldr r4, _08144508 @ =gTasks
- cmp r3, 0x6
- bne _08144474
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144474:
- cmp r3, 0xC
- bne _08144486
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
-_08144486:
- cmp r3, 0x12
- bne _08144496
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144496:
- cmp r3, 0x18
- bne _081444AA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444AA:
- cmp r3, 0x1E
- bne _081444BA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444BA:
- cmp r3, 0x23
- bne _081444CE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444CE:
- cmp r3, 0x28
- bne _081444DE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444DE:
- cmp r6, 0x2E
- bne _081444F2
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x4
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444F2:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0814450C
- movs r0, 0
- b _0814450E
- .align 2, 0
-_08144508: .4byte gTasks
-_0814450C:
- movs r0, 0x1
-_0814450E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144454
-
- thumb_func_start sub_8144514
-sub_8144514: @ 8144514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _08144548 @ =0x0201c000
- ldr r3, _0814454C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r3
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08144550
- cmp r0, 0x1
- bgt _0814453C
- b _08144658
-_0814453C:
- cmp r0, 0x2
- beq _08144584
- cmp r0, 0x3
- bne _08144546
- b _08144644
-_08144546:
- b _08144658
- .align 2, 0
-_08144548: .4byte 0x0201c000
-_0814454C: .4byte gTasks
-_08144550:
- adds r0, r6, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- cmp r0, 0
- bne _0814456E
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08144658
-_0814456E:
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- b _08144656
-_08144584:
- adds r0, r6, 0
- adds r0, 0x88
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0x44
- beq _08144658
- movs r4, 0xA
- ldrsh r1, [r2, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r0]
- ldr r0, _081445EC @ =sub_8143B68
- cmp r1, r0
- bne _08144658
- adds r7, r6, 0
- adds r7, 0x8C
- ldrh r0, [r7]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- ldr r4, _081445F0 @ =gUnknown_0840CA00
- adds r5, r6, 0
- adds r5, 0x8A
- ldrh r3, [r5]
- lsls r2, r3, 1
- adds r1, r2, r4
- ldrb r1, [r1]
- adds r4, 0x1
- adds r2, r4
- ldrb r2, [r2]
- bl sub_81456B4
- lsls r0, 24
- lsrs r2, r0, 24
- ldrh r1, [r7]
- adds r0, r6, 0
- adds r0, 0x8E
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bge _081445F8
- adds r0, r1, 0x1
- strh r0, [r7]
- ldr r1, _081445F4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x32
- b _0814460A
- .align 2, 0
-_081445EC: .4byte sub_8143B68
-_081445F0: .4byte gUnknown_0840CA00
-_081445F4: .4byte gSprites
-_081445F8:
- movs r0, 0
- strh r0, [r7]
- ldr r1, _08144620 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x80
- lsls r1, 2
-_0814460A:
- strh r1, [r0, 0x34]
- mov r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrh r0, [r5]
- cmp r0, 0x2
- bne _08144624
- movs r0, 0
- b _08144626
- .align 2, 0
-_08144620: .4byte gSprites
-_08144624:
- adds r0, 0x1
-_08144626:
- strh r0, [r5]
- ldr r0, _08144640 @ =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x32
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144658
- .align 2, 0
-_08144640: .4byte gTasks
-_08144644:
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08144654
- subs r0, r1, 0x1
- strh r0, [r2, 0xE]
- b _08144658
-_08144654:
- movs r0, 0x1
-_08144656:
- strh r0, [r2, 0x8]
-_08144658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144514
-
- thumb_func_start sub_8144664
-sub_8144664: @ 8144664
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0814468C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0x32
- bls _08144680
- b _0814492C
-_08144680:
- lsls r0, 2
- ldr r1, _08144690 @ =_08144694
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814468C: .4byte gTasks
-_08144690: .4byte _08144694
- .align 2, 0
-_08144694:
- .4byte _08144760
- .4byte _08144784
- .4byte _081447D8
- .4byte _081447F0
- .4byte _0814482C
- .4byte _08144850
- .4byte _0814489C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448A8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448C8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448EC
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _08144920
-_08144760:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- ldr r1, _08144780 @ =gUnknown_0203935A
- strh r0, [r1]
- b _081447A8
- .align 2, 0
-_08144780: .4byte gUnknown_0203935A
-_08144784:
- ldr r7, _081447B0 @ =gUnknown_0203935A
- movs r3, 0
- ldrsh r4, [r7, r3]
- cmp r4, 0
- beq _081447B4
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- strh r0, [r7]
-_081447A8:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _0814492C
- .align 2, 0
-_081447B0: .4byte gUnknown_0203935A
-_081447B4:
- ldr r3, _081447D4 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- strh r2, [r0, 0x2E]
- strh r4, [r1, 0x12]
- b _08144848
- .align 2, 0
-_081447D4: .4byte gSprites
-_081447D8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x12]
- movs r3, 0x12
- ldrsh r0, [r1, r3]
- cmp r0, 0x3F
- bgt _08144848
- adds r0, r2, 0x1
- strh r0, [r1, 0x12]
- b _08144866
-_081447F0:
- ldr r3, _08144828 @ =gSprites
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x78
- strh r0, [r2, 0x10]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_08144828: .4byte gSprites
-_0814482C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144844
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- b _0814492C
-_08144844:
- movs r0, 0x40
- strh r0, [r1, 0x12]
-_08144848:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0814492C
-_08144850:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0x12]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0814487C
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
-_08144866:
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0x14
- bl Sin
- ldr r1, _08144878 @ =gUnknown_0203935A
- strh r0, [r1]
- b _0814492C
- .align 2, 0
-_08144878: .4byte gUnknown_0203935A
-_0814487C:
- ldr r2, _08144898 @ =gSprites
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0814492C
- .align 2, 0
-_08144898: .4byte gSprites
-_0814489C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x32
- b _0814492A
-_081448A8:
- ldr r3, _081448C4 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- b _081448E0
- .align 2, 0
-_081448C4: .4byte gSprites
-_081448C8:
- ldr r3, _081448E8 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x4
-_081448E0:
- strh r2, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r1, 0x8]
- b _0814492C
- .align 2, 0
-_081448E8: .4byte gSprites
-_081448EC:
- ldr r3, _0814491C @ =gSprites
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_0814491C: .4byte gSprites
-_08144920:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
-_0814492A:
- strh r1, [r0, 0x8]
-_0814492C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144664
-
- thumb_func_start sub_8144934
-sub_8144934: @ 8144934
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08144958 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _08144974
- lsls r0, 2
- ldr r1, _0814495C @ =_08144960
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144958: .4byte gTasks
-_0814495C: .4byte _08144960
- .align 2, 0
-_08144960:
- .4byte _08144974
- .4byte _081449B8
- .4byte _081449C4
- .4byte _08144A0C
- .4byte _08144A5C
-_08144974:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- ldr r5, _081449C0 @ =0x00007fff
- cmp r0, r5
- beq _081449B8
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _081449B8
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x14
- strh r0, [r1, 0x8]
- strh r5, [r2, 0xA]
-_081449B8:
- movs r0, 0
- bl sub_8149020
- b _08144A62
- .align 2, 0
-_081449C0: .4byte 0x00007fff
-_081449C4:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- ldr r5, _08144A08 @ =0x00007fff
- cmp r0, r5
- beq _08144A54
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- ldrh r1, [r3, 0x12]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- movs r1, 0xA0
- lsls r1, 2
- cmp r0, r1
- bne _08144A54
- movs r0, 0x1
- strh r0, [r3, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A08: .4byte 0x00007fff
-_08144A0C:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- ldrh r3, [r2, 0xA]
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- ldr r5, _08144A48 @ =0x00007fff
- cmp r1, r5
- beq _08144A54
- ldr r0, _08144A4C @ =0x000001f3
- cmp r1, r0
- bne _08144A50
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A48: .4byte 0x00007fff
-_08144A4C: .4byte 0x000001f3
-_08144A50:
- adds r0, r3, 0x1
- strh r0, [r2, 0xA]
-_08144A54:
- movs r0, 0x1
- bl sub_8149020
- b _08144A62
-_08144A5C:
- movs r0, 0x2
- bl sub_8149020
-_08144A62:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8144934
-
- thumb_func_start sub_8144A68
-sub_8144A68: @ 8144A68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r0, 0x4
- bls _08144A7E
- b _08144DFC
-_08144A7E:
- lsls r0, 2
- ldr r1, _08144A88 @ =_08144A8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144A88: .4byte _08144A8C
- .align 2, 0
-_08144A8C:
- .4byte _08144AA0
- .4byte _08144B48
- .4byte _08144BF4
- .4byte _08144CA0
- .4byte _08144D50
-_08144AA0:
- ldr r5, _08144B40 @ =gSprites
- ldr r0, _08144B44 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r2, 0x88
- lsls r2, 1
- strh r2, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144B40: .4byte gSprites
-_08144B44: .4byte gTasks
-_08144B48:
- ldr r5, _08144BEC @ =gSprites
- ldr r0, _08144BF0 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144BEC: .4byte gSprites
-_08144BF0: .4byte gTasks
-_08144BF4:
- ldr r5, _08144C98 @ =gSprites
- ldr r0, _08144C9C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144C98: .4byte gSprites
-_08144C9C: .4byte gTasks
-_08144CA0:
- ldr r5, _08144D44 @ =gSprites
- ldr r0, _08144D48 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08144D4C @ =0x0000ffe0
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144D44: .4byte gSprites
-_08144D48: .4byte gTasks
-_08144D4C: .4byte 0x0000ffe0
-_08144D50:
- ldr r5, _08144EBC @ =gSprites
- ldr r0, _08144EC0 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x58
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x98
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x2
-_08144DF0:
- movs r3, 0x8
- bl sub_8148EC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
-_08144DFC:
- ldr r0, _08144EC4 @ =sub_8144934
- movs r1, 0
- bl CreateTask
- ldr r6, _08144EC0 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r5, r1, r6
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- strh r0, [r5, 0xC]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x8]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0xA]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xC]
- ldr r0, _08144EC8 @ =sub_8144664
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x8]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x12]
- strh r1, [r0, 0xC]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x14]
- strh r1, [r0, 0xE]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x10]
- mov r1, r8
- cmp r1, 0x2
- bne _08144EB0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- movs r0, 0x45
- strh r0, [r1, 0x12]
-_08144EB0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08144EBC: .4byte gSprites
-_08144EC0: .4byte gTasks
-_08144EC4: .4byte sub_8144934
-_08144EC8: .4byte sub_8144664
- thumb_func_end sub_8144A68
-
- thumb_func_start sub_8144ECC
-sub_8144ECC: @ 8144ECC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _08144F28 @ =gMain
- ldr r1, _08144F2C @ =0x0000043c
- adds r6, r0, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08144F38
- cmp r0, 0x1
- ble _08144EF0
- cmp r0, 0x2
- beq _08144F5C
- cmp r0, 0x3
- bne _08144EF0
- b _0814508C
-_08144EF0:
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08144F30 @ =REG_BG3HOFS
- movs r0, 0x8
- strh r0, [r2]
- ldr r0, _08144F34 @ =REG_BG3VOFS
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3A
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F28: .4byte gMain
-_08144F2C: .4byte 0x0000043c
-_08144F30: .4byte REG_BG3HOFS
-_08144F34: .4byte REG_BG3VOFS
-_08144F38:
- ldr r1, _08144F54 @ =gUnknown_02039358
- movs r0, 0x22
- strh r0, [r1]
- ldr r1, _08144F58 @ =gUnknown_0203935A
- movs r0, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8148CB0
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F54: .4byte gUnknown_02039358
-_08144F58: .4byte gUnknown_0203935A
-_08144F5C:
- ldr r0, _08144FBC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08144FE0
- ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08144FC4 @ =gUnknown_08416E34
- bl LoadCompressedObjectPic
- ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08144FCC @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl sub_8149310
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08144FD0 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08144FD4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08144FD8 @ =sub_8145378
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08144FDC @ =gUnknown_0840CA54
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl sub_8149368
- b _08145034
- .align 2, 0
-_08144FBC: .4byte gSaveBlock2
-_08144FC0: .4byte gIntro2BrendanSpriteSheet
-_08144FC4: .4byte gUnknown_08416E34
-_08144FC8: .4byte gIntro2BicycleSpriteSheet
-_08144FCC: .4byte gIntro2SpritePalettes
-_08144FD0: .4byte gTasks
-_08144FD4: .4byte gSprites
-_08144FD8: .4byte sub_8145378
-_08144FDC: .4byte gUnknown_0840CA54
-_08144FE0:
- ldr r0, _0814505C @ =gIntro2MaySpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08145060 @ =gUnknown_08416E24
- bl LoadCompressedObjectPic
- ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08145068 @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl sub_8149368
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0814506C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08145070 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08145074 @ =sub_8145378
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08145078 @ =gUnknown_0840CA54
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl sub_8149310
-_08145034:
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r4, 0x14]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r5
- ldr r1, _0814507C @ =sub_8145420
- str r1, [r5]
- adds r0, r6
- ldr r1, _08145080 @ =gUnknown_0840CA94
- str r1, [r0]
- ldr r1, _08145084 @ =gMain
- ldr r0, _08145088 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081450A2
- .align 2, 0
-_0814505C: .4byte gIntro2MaySpriteSheet
-_08145060: .4byte gUnknown_08416E24
-_08145064: .4byte gIntro2BicycleSpriteSheet
-_08145068: .4byte gIntro2SpritePalettes
-_0814506C: .4byte gTasks
-_08145070: .4byte gSprites
-_08145074: .4byte sub_8145378
-_08145078: .4byte gUnknown_0840CA54
-_0814507C: .4byte sub_8145420
-_08145080: .4byte gUnknown_0840CA94
-_08145084: .4byte gMain
-_08145088: .4byte 0x0000043c
-_0814508C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8144A68
- adds r0, r4, 0
- bl sub_8148E90
- movs r0, 0
- strb r0, [r6]
- movs r0, 0x1
- b _081450A4
-_081450A2:
- movs r0, 0
-_081450A4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144ECC
-
- thumb_func_start sub_81450AC
-sub_81450AC: @ 81450AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08145120 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450D2
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0x8]
-_081450D2:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450E8
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xA]
-_081450E8:
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450FE
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xC]
-_081450FE:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08145114
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xE]
-_08145114:
- ldr r1, _08145124 @ =gUnknown_0203935C
- movs r0, 0x1
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08145120: .4byte gTasks
-_08145124: .4byte gUnknown_0203935C
- thumb_func_end sub_81450AC
-
- thumb_func_start sub_8145128
-sub_8145128: @ 8145128
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r4, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r4, 16
- lsrs r5, r4, 16
- ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx
- movs r6, 0xC0
- lsls r6, 19
- adds r3, r6
- adds r1, r3, 0
- bl LZ77UnCompVram
- ldr r0, _081451F0 @ =gIntroCopyright_Pal
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- lsrs r4, 20
- lsls r4, 28
- lsrs r4, 16
- movs r2, 0
- adds r1, r4, 0x1
- ldr r3, _081451F4 @ =0x000003ff
-_0814515E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r6
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _0814515E
- movs r2, 0
- adds r0, r4, 0x2
- adds r6, r4, 0
- adds r6, 0x17
- movs r1, 0x2B
- adds r1, r4
- mov r12, r1
- adds r4, 0x42
- ldr r5, _081451F8 @ =0x060001c8
- adds r3, r0, 0
-_08145184:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x14
- bls _08145184
- movs r2, 0
- ldr r5, _081451FC @ =0x06000248
- adds r3, r6, 0
-_0814519E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x13
- bls _0814519E
- movs r2, 0
- ldr r5, _08145200 @ =0x060002c8
- mov r3, r12
-_081451B8:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x16
- bls _081451B8
- movs r2, 0
- ldr r3, _08145204 @ =0x06000348
-_081451D0:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r3
- adds r1, r2, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xB
- bls _081451D0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081451EC: .4byte gCreditsCopyrightEnd_Gfx
-_081451F0: .4byte gIntroCopyright_Pal
-_081451F4: .4byte 0x000003ff
-_081451F8: .4byte 0x060001c8
-_081451FC: .4byte 0x06000248
-_08145200: .4byte 0x060002c8
-_08145204: .4byte 0x06000348
- thumb_func_end sub_8145128
-
- thumb_func_start sub_8145208
-sub_8145208: @ 8145208
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- movs r0, 0x3F
- ands r0, r2
- adds r1, r0, 0
- adds r1, 0x50
- cmp r2, 0xFF
- bne _08145220
- movs r0, 0x1
- b _08145246
-_08145220:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08145230
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08145230:
- movs r0, 0x40
- ands r3, r0
- cmp r3, 0
- beq _08145244
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- orrs r1, r0
- lsls r0, r1, 16
- lsrs r1, r0, 16
-_08145244:
- adds r0, r1, 0
-_08145246:
- pop {r1}
- bx r1
- thumb_func_end sub_8145208
-
- thumb_func_start sub_814524C
-sub_814524C: @ 814524C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x8]
- lsls r0, 16
- lsrs r0, 20
- lsls r0, 28
- lsrs r0, 16
- mov r9, r0
- movs r5, 0
-_0814527A:
- movs r4, 0
- lsls r7, r5, 1
- ldr r1, [sp, 0x4]
- adds r0, r1, r5
- adds r2, r5, 0x1
- mov r8, r2
- lsls r0, 6
- ldr r1, [sp, 0x8]
- adds r6, r0, r1
-_0814528C:
- adds r0, r7, r5
- adds r0, r4
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- bl sub_8145208
- mov r2, r10
- adds r1, r2, r4
- lsls r1, 1
- adds r1, r6
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- add r0, r9
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0814528C
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0814527A
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_814524C
-
- thumb_func_start sub_81452D0
-sub_81452D0: @ 81452D0
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsrs r1, 20
- lsls r1, 28
- lsrs r1, 16
- movs r2, 0
- ldr r7, _08145360 @ =gUnknown_0840B83C
- movs r4, 0xC0
- lsls r4, 19
- adds r1, 0x1
- ldr r3, _08145364 @ =0x000003ff
-_081452EE:
- lsls r0, r2, 1
- adds r0, r5
- adds r0, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _081452EE
- str r6, [sp]
- adds r0, r7, 0
- movs r1, 0x3
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145368 @ =gUnknown_0840B84B
- str r6, [sp]
- movs r1, 0x7
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r4, _0814536C @ =gUnknown_0840B85A
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145370 @ =gUnknown_0840B869
- str r6, [sp]
- movs r1, 0x14
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145374 @ =gUnknown_0840B878
- str r6, [sp]
- movs r1, 0x18
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08145360: .4byte gUnknown_0840B83C
-_08145364: .4byte 0x000003ff
-_08145368: .4byte gUnknown_0840B84B
-_0814536C: .4byte gUnknown_0840B85A
-_08145370: .4byte gUnknown_0840B869
-_08145374: .4byte gUnknown_0840B878
- thumb_func_end sub_81452D0
-
- thumb_func_start sub_8145378
-sub_8145378: @ 8145378
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145390 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08145394
- adds r0, r4, 0
- bl DestroySprite
- b _08145418
- .align 2, 0
-_08145390: .4byte gUnknown_0203935C
-_08145394:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _08145418
- lsls r0, 2
- ldr r1, _081453A8 @ =_081453AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081453A8: .4byte _081453AC
- .align 2, 0
-_081453AC:
- .4byte _081453C4
- .4byte _081453CE
- .4byte _081453D4
- .4byte _081453DE
- .4byte _081453E8
- .4byte _081453FE
-_081453C4:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453CE:
- adds r0, r4, 0
- movs r1, 0x1
- b _08145402
-_081453D4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453DE:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453E8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- ble _08145418
- subs r0, r1, 0x1
- b _08145416
-_081453FE:
- adds r0, r4, 0
- movs r1, 0
-_08145402:
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145418
- subs r0, r2, 0x1
-_08145416:
- strh r0, [r4, 0x20]
-_08145418:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145378
-
- thumb_func_start sub_8145420
-sub_8145420: @ 8145420
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145438 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814543C
- adds r0, r4, 0
- bl DestroySprite
- b _081454D8
- .align 2, 0
-_08145438: .4byte gUnknown_0203935C
-_0814543C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08145464
- cmp r0, 0x1
- bgt _0814544E
- cmp r0, 0
- beq _08145458
- b _081454D8
-_0814544E:
- cmp r0, 0x2
- beq _081454A0
- cmp r0, 0x3
- beq _081454BE
- b _081454D8
-_08145458:
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _081454D8
-_08145464:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- ble _08145476
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- b _0814547E
-_08145476:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
-_0814547E:
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145490
- subs r0, r2, 0x2
- strh r0, [r4, 0x20]
-_08145490:
- ldr r0, _0814549C @ =gUnknown_0203935A
- ldrh r0, [r0]
- negs r0, r0
- strh r0, [r4, 0x26]
- b _081454D8
- .align 2, 0
-_0814549C: .4byte gUnknown_0203935A
-_081454A0:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081454D8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _081454D6
-_081454BE:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _081454D8
- subs r0, r2, 0x1
-_081454D6:
- strh r0, [r4, 0x20]
-_081454D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145420
-
- thumb_func_start sub_81454E0
-sub_81454E0: @ 81454E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _081454F8 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081454FC
- adds r0, r5, 0
- bl DestroySprite
- b _081456A6
- .align 2, 0
-_081454F8: .4byte gUnknown_0203935C
-_081454FC:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0xA
- bhi _08145544
- lsls r0, 2
- ldr r1, _08145514 @ =_08145518
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08145514: .4byte _08145518
- .align 2, 0
-_08145518:
- .4byte _08145544
- .4byte _0814559E
- .4byte _08145620
- .4byte _08145660
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145696
-_08145544:
- ldrb r1, [r5, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- movs r0, 0x10
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 9
- movs r1, 0x10
- bl __divsi3
- adds r1, r0, 0
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
-_0814559E:
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- bgt _081455D4
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _081455DA
-_081455D4:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_081455DA:
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- cmp r1, 0x2
- beq _081456A6
- cmp r1, 0x2
- bgt _081455EC
- cmp r1, 0x1
- beq _081455F2
- b _081456A6
-_081455EC:
- cmp r1, 0x3
- beq _0814560A
- b _081456A6
-_081455F2:
- ldrh r1, [r5, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08145602
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145602:
- ldrh r0, [r5, 0x20]
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_0814560A:
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- cmp r1, 0
- bne _08145618
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145618:
- ldrh r0, [r5, 0x20]
- adds r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_08145620:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145630
- subs r0, r1, 0x1
- strh r0, [r5, 0x34]
- b _081456A6
-_08145630:
- ldr r1, _0814565C @ =REG_BLDCNT
- movs r2, 0xF4
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
- .align 2, 0
-_0814565C: .4byte REG_BLDCNT
-_08145660:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145684
- subs r1, 0x1
- strh r1, [r5, 0x34]
- ldr r3, _08145680 @ =REG_BLDALPHA
- movs r0, 0x34
- ldrsh r2, [r5, r0]
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- adds r1, r0
- strh r1, [r3]
- b _081456A6
- .align 2, 0
-_08145680: .4byte REG_BLDALPHA
-_08145684:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r5, 0x2E]
- b _081456A6
-_08145696:
- ldr r0, _081456B0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r5, 0
- bl DestroySprite
-_081456A6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081456B0: .4byte REG_BLDCNT
- thumb_func_end sub_81454E0
-
- thumb_func_start sub_81456B4
-sub_81456B4: @ 81456B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x10]
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- adds r0, r6, 0
- bl NationalPokedexNumToSpecies
- adds r6, r0, 0
- cmp r6, 0xC9
- beq _081456F8
- movs r0, 0x9A
- lsls r0, 1
- cmp r6, r0
- beq _081456EE
- movs r7, 0
- b _081456FC
-_081456EE:
- ldr r0, _081456F4 @ =gSaveBlock2
- ldr r7, [r0, 0x20]
- b _081456FC
- .align 2, 0
-_081456F4: .4byte gSaveBlock2
-_081456F8:
- ldr r0, _081457E8 @ =gSaveBlock2
- ldr r7, [r0, 0x1C]
-_081456FC:
- lsls r0, r6, 3
- ldr r1, _081457EC @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _081457F0 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _081457F4 @ =gUnknown_0840B5A0
- mov r8, r4
- mov r5, r9
- lsls r4, r5, 2
- add r4, r8
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- ldr r2, _081457F8 @ =0x0000ffff
- adds r0, r6, 0
- movs r1, 0
- bl species_and_otid_get_pal
- lsls r5, 4
- mov r8, r5
- movs r1, 0x80
- lsls r1, 1
- add r1, r8
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r7, r9
- lsls r6, r7, 24
- lsrs r6, 24
- mov r0, r9
- adds r1, r6, 0
- bl sub_8143648
- ldr r0, _081457FC @ =gUnknown_02024E8C
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldr r3, [sp, 0x10]
- lsls r2, r3, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08145800 @ =gSprites
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r3, r2, r5
- ldrb r1, [r3, 0x5]
- movs r0, 0xF
- ands r0, r1
- mov r7, r8
- orrs r0, r7
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- mov r0, r9
- adds r0, 0x1
- strh r0, [r3, 0x30]
- movs r0, 0x3E
- adds r0, r3
- mov r8, r0
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x1C
- adds r2, r0
- ldr r0, _08145804 @ =sub_81454E0
- str r0, [r2]
- ldr r0, _08145808 @ =gSpriteTemplate_840CAEC
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- movs r7, 0x22
- ldrsh r2, [r3, r7]
- movs r3, 0x1
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r4, [r0, 0x2E]
- adds r1, r6, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 0
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081457E8: .4byte gSaveBlock2
-_081457EC: .4byte gMonFrontPicTable
-_081457F0: .4byte gMonFrontPicCoords
-_081457F4: .4byte gUnknown_0840B5A0
-_081457F8: .4byte 0x0000ffff
-_081457FC: .4byte gUnknown_02024E8C
-_08145800: .4byte gSprites
-_08145804: .4byte sub_81454E0
-_08145808: .4byte gSpriteTemplate_840CAEC
- thumb_func_end sub_81456B4
-
- thumb_func_start sub_814580C
-sub_814580C: @ 814580C
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _08145838 @ =gSprites
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- beq _08145830
- ldr r0, _0814583C @ =gUnknown_0203935C
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _08145840
-_08145830:
- adds r0, r3, 0
- bl DestroySprite
- b _081458D4
- .align 2, 0
-_08145838: .4byte gSprites
-_0814583C: .4byte gUnknown_0203935C
-_08145840:
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r0, 0xC
- ands r0, r1
- ldrb r2, [r3, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r2, 0x4
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- movs r1, 0x3E
- ands r1, r0
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r3, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r3, 0x22]
-_081458D4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814580C
-
- thumb_func_start sub_81458DC
-sub_81458DC: @ 81458DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r7, _0814597C @ =0x0201c000
- ldr r0, _08145980 @ =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r4, 0x1
- movs r5, 0
- ldr r0, _08145984 @ =0x00000181
- mov r8, r0
-_0814590E:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- adds r6, r7, 0
- adds r6, 0x90
- cmp r0, 0
- beq _0814592C
- lsls r0, r5, 1
- adds r0, r6, r0
- strh r4, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0814592C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bls _0814590E
- adds r4, r5, 0
- ldr r0, _08145984 @ =0x00000181
- lsls r1, r4, 16
- mov r9, r1
- movs r2, 0x8E
- adds r2, r7
- mov r8, r2
- adds r1, r7, 0
- adds r1, 0x86
- str r1, [sp]
- cmp r4, r0
- bhi _08145964
- adds r1, r6, 0
- movs r3, 0
- adds r2, r0, 0
-_08145954:
- lsls r0, r4, 1
- adds r0, r1, r0
- strh r3, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bls _08145954
-_08145964:
- movs r2, 0xE5
- lsls r2, 2
- adds r0, r7, r2
- strh r5, [r0]
- mov r1, r9
- lsrs r0, r1, 16
- cmp r0, 0x43
- bhi _08145988
- mov r2, r8
- strh r5, [r2]
- b _0814598E
- .align 2, 0
-_0814597C: .4byte 0x0201c000
-_08145980: .4byte 0x00004023
-_08145984: .4byte 0x00000181
-_08145988:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
-_0814598E:
- movs r5, 0
- movs r2, 0xE5
- lsls r2, 2
- adds r4, r7, r2
- mov r9, r5
- b _0814599E
-_0814599A:
- cmp r5, 0x43
- bhi _081459EE
-_0814599E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r3, r6, r0
- ldrh r0, [r3]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r9
- strh r0, [r3]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- beq _081459E8
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r0, [r0]
- strh r0, [r3]
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- mov r1, r9
- strh r1, [r0]
-_081459E8:
- ldrh r0, [r4]
- cmp r0, 0
- bne _0814599A
-_081459EE:
- mov r2, r8
- ldrh r0, [r2]
- cmp r0, 0x43
- bhi _08145A26
- adds r5, r0, 0
- movs r2, 0
- cmp r5, 0x43
- bhi _08145A5C
- mov r3, r8
-_08145A00:
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r3]
- cmp r2, r0
- bne _08145A1A
- movs r2, 0
-_08145A1A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x43
- bls _08145A00
- b _08145A5C
-_08145A26:
- movs r4, 0
- ldrh r0, [r7]
- cmp r0, r10
- beq _08145A42
-_08145A2E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- cmp r0, r10
- beq _08145A42
- cmp r4, 0x43
- bls _08145A2E
-_08145A42:
- mov r1, r8
- ldrh r0, [r1]
- subs r0, 0x1
- cmp r4, r0
- bge _08145A5C
- lsls r0, r4, 1
- adds r0, r7, r0
- ldr r2, [sp]
- ldrh r1, [r2]
- strh r1, [r0]
- mov r0, r10
- strh r0, [r2]
- b _08145A62
-_08145A5C:
- mov r2, r10
- ldr r1, [sp]
- strh r2, [r1]
-_08145A62:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81458DC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/roulette.s b/asm/roulette.s
index 01ff3ac8f..0704caf7f 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -2555,7 +2555,7 @@ sub_811659C: @ 811659C
cmp r0, 0
beq _08116624
movs r0, 0x1D
- bl sub_8053108
+ bl GetGameStat
ldrh r1, [r4, 0x1E]
adds r1, 0x1
strh r1, [r4, 0x1E]
@@ -2566,7 +2566,7 @@ sub_811659C: @ 811659C
movs r0, 0x1E
ldrsh r1, [r4, r0]
movs r0, 0x1D
- bl sav12_xor_set
+ bl SetGameStat
_081165E4:
ldr r1, _081165F8 @ =sub_811677C
ldr r2, _081165FC @ =0x0000ffff
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s
deleted file mode 100644
index a114bbea3..000000000
--- a/asm/save_failed_screen.s
+++ /dev/null
@@ -1,779 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start fullscreen_save_activate
-fullscreen_save_activate: @ 8146E10
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08146E30 @ =sub_8146E50
- bl SetMainCallback2
- ldr r0, _08146E34 @ =gUnknown_0203933C
- strh r4, [r0]
- ldr r1, _08146E38 @ =gUnknown_0203933E
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146E30: .4byte sub_8146E50
-_08146E34: .4byte gUnknown_0203933C
-_08146E38: .4byte gUnknown_0203933E
- thumb_func_end fullscreen_save_activate
-
- thumb_func_start sub_8146E3C
-sub_8146E3C: @ 8146E3C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8146E3C
-
- thumb_func_start sub_8146E50
-sub_8146E50: @ 8146E50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r0, _08146FB0 @ =gMain
- ldr r1, _08146FB4 @ =0x0000043c
- adds r7, r0, r1
- ldrb r0, [r7]
- cmp r0, 0
- beq _08146E6C
- cmp r0, 0x1
- bne _08146E6C
- b _0814701C
-_08146E6C:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- mov r9, r0
- movs r1, 0
- strh r1, [r0]
- ldr r6, _08146FB8 @ =REG_BG3CNT
- strh r1, [r6]
- adds r0, 0xC
- mov r8, r0
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- ldr r5, _08146FBC @ =REG_BG0CNT
- strh r1, [r5]
- adds r0, 0x12
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add r0, sp, 0x4
- strh r1, [r0]
- ldr r2, _08146FC0 @ =0x040000d4
- str r0, [r2]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r2, 0x4]
- ldr r0, _08146FC4 @ =0x8100c000
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r2]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08146FC8 @ =0x85000100
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r2]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08146FCC @ =0x81000200
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _08146FD0 @ =gUnknown_083F66F0
- bl LZ77UnCompVram
- ldr r0, _08146FD4 @ =gBirchBagTilemap
- ldr r1, _08146FD8 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08146FDC @ =gBirchGrassTilemap
- ldr r1, _08146FE0 @ =0x06003800
- bl LZ77UnCompVram
- ldr r0, _08146FE4 @ =gUnknown_08411980
- ldr r1, _08146FE8 @ =0x06010020
- bl LZ77UnCompVram
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- ldr r0, _08146FEC @ =gUnknown_083F62EC
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08146FF0 @ =gUnknown_08411960
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08146FF4 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _08146FF8 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- .if REVISION >= 1
- movs r0, 0xD
- movs r1, 0x6
- movs r2, 0x10
- movs r3, 0x9
- .else
- movs r0, 0xD
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0xB
- .endif
- bl MenuDrawTextWindow
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08146FFC @ =gSystemText_SaveFailedBackupCheck
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08147000 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08147004 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08147008 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0814700C @ =sub_8146E3C
- bl SetVBlankCallback
- ldr r1, _08147010 @ =0x00000703
- adds r0, r1, 0
- strh r0, [r6]
- ldr r1, _08147014 @ =0x00000602
- adds r0, r1, 0
- mov r1, r8
- strh r0, [r1]
- ldr r1, _08147018 @ =0x00001f08
- adds r0, r1, 0
- strh r0, [r5]
- movs r1, 0xEA
- lsls r1, 5
- adds r0, r1, 0
- mov r1, r9
- strh r0, [r1]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _08147032
- .align 2, 0
-_08146FB0: .4byte gMain
-_08146FB4: .4byte 0x0000043c
-_08146FB8: .4byte REG_BG3CNT
-_08146FBC: .4byte REG_BG0CNT
-_08146FC0: .4byte 0x040000d4
-_08146FC4: .4byte 0x8100c000
-_08146FC8: .4byte 0x85000100
-_08146FCC: .4byte 0x81000200
-_08146FD0: .4byte gUnknown_083F66F0
-_08146FD4: .4byte gBirchBagTilemap
-_08146FD8: .4byte 0x06003000
-_08146FDC: .4byte gBirchGrassTilemap
-_08146FE0: .4byte 0x06003800
-_08146FE4: .4byte gUnknown_08411980
-_08146FE8: .4byte 0x06010020
-_08146FEC: .4byte gUnknown_083F62EC
-_08146FF0: .4byte gUnknown_08411960
-_08146FF4: .4byte gWindowConfig_81E6C3C
-_08146FF8: .4byte gWindowConfig_81E6CE4
-_08146FFC: .4byte gSystemText_SaveFailedBackupCheck
-_08147000: .4byte 0x04000208
-_08147004: .4byte 0x04000200
-_08147008: .4byte REG_DISPSTAT
-_0814700C: .4byte sub_8146E3C
-_08147010: .4byte 0x00000703
-_08147014: .4byte 0x00000602
-_08147018: .4byte 0x00001f08
-_0814701C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08147032
- ldr r0, _08147040 @ =sub_8147048
- bl SetMainCallback2
- ldr r0, _08147044 @ =sub_8147218
- bl SetVBlankCallback
-_08147032:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147040: .4byte sub_8147048
-_08147044: .4byte sub_8147218
- thumb_func_end sub_8146E50
-
- thumb_func_start sub_8147048
-sub_8147048: @ 8147048
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _081470C8 @ =gUnknown_0203933E
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _081470CC @ =gUnknown_03005EA8
- ldr r0, [r1]
- cmp r0, 0
- beq _081470A6
- adds r5, r1, 0
-_0814705C:
- ldr r0, [r5]
- bl sub_814737C
- lsls r0, 24
- cmp r0, 0
- bne _0814710C
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _081470D0 @ =gSystemText_CheckCompleteSaveAttempt
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _081470D4 @ =gUnknown_0203933C
- ldrb r0, [r0]
- bl sub_8125C3C
- ldr r0, [r5]
- cmp r0, 0
- beq _08147096
- ldr r0, _081470D8 @ =gSystemText_SaveFailedBackupCheck
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
-_08147096:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [r5]
- cmp r0, 0
- beq _081470A6
- cmp r4, 0x2
- bls _0814705C
-_081470A6:
- cmp r4, 0x3
- bne _081470E4
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _081470DC @ =gSystemText_BackupDamagedGameContinue
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _081470E0 @ =sub_81471A4
- bl SetMainCallback2
- b _0814713E
- .align 2, 0
-_081470C8: .4byte gUnknown_0203933E
-_081470CC: .4byte gUnknown_03005EA8
-_081470D0: .4byte gSystemText_CheckCompleteSaveAttempt
-_081470D4: .4byte gUnknown_0203933C
-_081470D8: .4byte gSystemText_SaveFailedBackupCheck
-_081470DC: .4byte gSystemText_BackupDamagedGameContinue
-_081470E0: .4byte sub_81471A4
-_081470E4:
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08147104 @ =gUnknown_03005EBC
- ldr r0, [r0]
- cmp r0, 0
- bne _08147134
- ldr r0, _08147108 @ =gSystemText_SaveCompletedGameEnd
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- b _0814713E
- .align 2, 0
-_08147104: .4byte gUnknown_03005EBC
-_08147108: .4byte gSystemText_SaveCompletedGameEnd
-_0814710C:
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _0814712C @ =gSystemText_BackupDamagedGameContinue
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _08147130 @ =sub_8147154
- bl SetMainCallback2
- b _08147144
- .align 2, 0
-_0814712C: .4byte gSystemText_BackupDamagedGameContinue
-_08147130: .4byte sub_8147154
-_08147134:
- ldr r0, _0814714C @ =gSystemText_SaveCompletedPressA
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
-_0814713E:
- ldr r0, _08147150 @ =sub_81471A4
- bl SetMainCallback2
-_08147144:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814714C: .4byte gSystemText_SaveCompletedPressA
-_08147150: .4byte sub_81471A4
- thumb_func_end sub_8147048
-
- thumb_func_start sub_8147154
-sub_8147154: @ 8147154
- push {lr}
- ldr r1, _08147190 @ =gUnknown_0203933E
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08147194 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814718A
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08147198 @ =gSystemText_GameplayEnded
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _0814719C @ =sub_8146E3C
- bl SetVBlankCallback
- ldr r0, _081471A0 @ =sub_81471A4
- bl SetMainCallback2
-_0814718A:
- pop {r0}
- bx r0
- .align 2, 0
-_08147190: .4byte gUnknown_0203933E
-_08147194: .4byte gMain
-_08147198: .4byte gSystemText_GameplayEnded
-_0814719C: .4byte sub_8146E3C
-_081471A0: .4byte sub_81471A4
- thumb_func_end sub_8147154
-
- thumb_func_start sub_81471A4
-sub_81471A4: @ 81471A4
- push {lr}
- sub sp, 0x4
- ldr r0, _081471DC @ =gUnknown_0203933E
- movs r2, 0
- strh r2, [r0]
- ldr r0, _081471E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081471D4
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081471E4 @ =sub_8146E3C
- bl SetVBlankCallback
- ldr r0, _081471E8 @ =sub_81471EC
- bl SetMainCallback2
-_081471D4:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081471DC: .4byte gUnknown_0203933E
-_081471E0: .4byte gMain
-_081471E4: .4byte sub_8146E3C
-_081471E8: .4byte sub_81471EC
- thumb_func_end sub_81471A4
-
- thumb_func_start sub_81471EC
-sub_81471EC: @ 81471EC
- push {r4,r5,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08147212
- ldr r5, _08147208 @ =gUnknown_03005EBC
- ldr r0, [r5]
- cmp r0, 0
- bne _0814720C
- bl DoSoftReset
- b _08147212
- .align 2, 0
-_08147208: .4byte gUnknown_03005EBC
-_0814720C:
- bl SetMainCallback2
- str r4, [r5]
-_08147212:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81471EC
-
- thumb_func_start sub_8147218
-sub_8147218: @ 8147218
- push {r4,r5,lr}
- ldr r0, _08147290 @ =gMain
- mov r12, r0
- ldr r0, [r0, 0x24]
- lsrs r4, r0, 3
- movs r0, 0x7
- ands r4, r0
- ldr r0, _08147294 @ =gUnknown_08411940
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- mov r2, r12
- str r0, [r2, 0x3C]
- str r1, [r2, 0x40]
- ldrh r1, [r2, 0x3E]
- ldr r0, _08147298 @ =0xfffffe00
- ands r0, r1
- movs r1, 0x70
- orrs r0, r1
- strh r0, [r2, 0x3E]
- mov r1, r12
- adds r1, 0x3C
- .if REVISION >= 1
- movs r0, 0x38
- .else
- movs r0, 0x48
- .endif
- strb r0, [r1]
- ldr r0, _0814729C @ =gUnknown_0203933E
- ldrh r0, [r0]
- cmp r0, 0
- beq _081472A8
- ldr r3, _081472A0 @ =gUnknown_08411948
- lsls r2, r4, 1
- adds r2, r4
- adds r0, r2, r3
- mov r4, r12
- adds r4, 0x40
- ldrb r5, [r0]
- ldrh r1, [r4]
- ldr r0, _081472A4 @ =0xfffffc00
- ands r0, r1
- orrs r0, r5
- strh r0, [r4]
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r1, 4
- adds r3, 0x1
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 3
- orrs r1, r0
- mov r3, r12
- adds r3, 0x3F
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _081472B8
- .align 2, 0
-_08147290: .4byte gMain
-_08147294: .4byte gUnknown_08411940
-_08147298: .4byte 0xfffffe00
-_0814729C: .4byte gUnknown_0203933E
-_081472A0: .4byte gUnknown_08411948
-_081472A4: .4byte 0xfffffc00
-_081472A8:
- mov r2, r12
- adds r2, 0x40
- ldrh r1, [r2]
- ldr r0, _081472D8 @ =0xfffffc00
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
-_081472B8:
- ldr r0, _081472DC @ =gMain + 0x3C
- movs r1, 0xE0
- lsls r1, 19
- movs r2, 0x1
- bl CpuFastSet
- ldr r1, _081472E0 @ =gUnknown_0203933E
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _081472D0
- subs r0, 0x1
- strh r0, [r1, 0x2]
-_081472D0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081472D8: .4byte 0xfffffc00
-_081472DC: .4byte gMain + 0x3C
-_081472E0: .4byte gUnknown_0203933E
- thumb_func_end sub_8147218
-
- thumb_func_start sub_81472E4
-sub_81472E4: @ 81472E4
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08147308 @ =0x02000000
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- adds r2, r4, 0
- bl ReadFlash
- movs r1, 0
- ldr r2, _0814730C @ =0x000003ff
-_081472FC:
- ldr r0, [r4]
- cmp r0, 0
- beq _08147310
- movs r0, 0x1
- b _0814731E
- .align 2, 0
-_08147308: .4byte 0x02000000
-_0814730C: .4byte 0x000003ff
-_08147310:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r4, 0x4
- cmp r1, r2
- bls _081472FC
- movs r0, 0
-_0814731E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81472E4
-
- thumb_func_start sub_8147324
-sub_8147324: @ 8147324
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0
- ldr r1, _08147374 @ =0x00000fff
- mov r8, r1
- ldr r7, _08147378 @ =ProgramFlashByte
-_08147336:
- movs r4, 0
- adds r5, r0, 0x1
-_0814733A:
- ldr r3, [r7]
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- bl _call_via_r3
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bls _0814733A
- adds r0, r6, 0
- bl sub_81472E4
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r5, 16
- lsrs r0, 16
- cmp r1, 0
- beq _08147366
- cmp r0, 0x81
- bls _08147336
-_08147366:
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08147374: .4byte 0x00000fff
-_08147378: .4byte ProgramFlashByte
- thumb_func_end sub_8147324
-
- thumb_func_start sub_814737C
-sub_814737C: @ 814737C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
-_08147382:
- movs r4, 0x1
- lsls r4, r6
- adds r0, r5, 0
- ands r0, r4
- cmp r0, 0
- beq _0814739C
- adds r0, r6, 0
- bl sub_8147324
- lsls r0, 24
- cmp r0, 0
- bne _0814739C
- bics r5, r4
-_0814739C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _08147382
- cmp r5, 0
- beq _081473AE
- movs r0, 0x1
- b _081473B0
-_081473AE:
- movs r0, 0
-_081473B0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_814737C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index bd6180940..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,1237 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80B5054
-sub_80B5054: @ 80B5054
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B5098 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B50A4
- ldr r1, _080B509C @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B50A0 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B50A6
- .align 2, 0
-_080B5098: .4byte sub_80B52B4
-_080B509C: .4byte gScriptResult
-_080B50A0: .4byte gMultichoiceLists
-_080B50A4:
- movs r0, 0
-_080B50A6:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B5054
-
- thumb_func_start sub_80B50B0
-sub_80B50B0: @ 80B50B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B5100 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B510C
- ldr r1, _080B5104 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B5108 @ =gMultichoiceLists
- lsls r0, r5, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r0, r8
- adds r1, r7, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B510E
- .align 2, 0
-_080B5100: .4byte sub_80B52B4
-_080B5104: .4byte gScriptResult
-_080B5108: .4byte gMultichoiceLists
-_080B510C:
- movs r0, 0
-_080B510E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B50B0
-
- thumb_func_start GetStringWidthInTilesForScriptMenu
-GetStringWidthInTilesForScriptMenu: @ 80B511C
- push {lr}
- adds r1, r0, 0
- ldr r0, _080B5134 @ =gWindowConfig_81E6CE4
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r0, r1, 3
- pop {r1}
- bx r1
- .align 2, 0
-_080B5134: .4byte gWindowConfig_81E6CE4
- thumb_func_end GetStringWidthInTilesForScriptMenu
-
- thumb_func_start sub_80B5138
-sub_80B5138: @ 80B5138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r3
- ldr r3, [sp, 0x34]
- ldr r4, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- mov r1, r10
- ldr r0, [r1]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0x1
- cmp r4, r8
- bcs _080B5198
-_080B517A:
- lsls r0, r4, 3
- add r0, r10
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- bcs _080B518E
- adds r5, r0, 0
-_080B518E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _080B517A
-_080B5198:
- lsls r0, r5, 24
- lsrs r7, r0, 24
- mov r1, r9
- adds r0, r7, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1D
- bls _080B51B8
- mov r0, r9
- adds r0, 0x1D
- subs r0, r7
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0x1D
-_080B51B8:
- mov r1, r8
- lsls r0, r1, 1
- adds r0, 0x1
- ldr r1, [sp, 0x8]
- lsls r4, r1, 24
- asrs r4, 24
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- adds r2, r7, 0
- adds r3, r4, 0
- bl MenuDrawTextWindow
- mov r6, r9
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r10
- bl PrintMenuItems
- ldr r0, [sp, 0x10]
- str r0, [sp]
- mov r1, r9
- subs r0, r7, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- adds r1, r6, 0
- adds r2, r5, 0
- mov r3, r8
- bl InitMenu
- ldr r0, [sp, 0xC]
- str r0, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- adds r2, r7, 0
- adds r3, r4, 0
- bl sub_80B5230
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5138
-
- thumb_func_start sub_80B5230
-sub_80B5230: @ 80B5230
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x1C]
- mov r8, r0
- ldr r0, [sp, 0x20]
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080B5298 @ =sub_80B52B4
- movs r1, 0x50
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B529C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- ldr r3, [sp]
- strh r3, [r1, 0xE]
- mov r0, r8
- strh r0, [r1, 0x10]
- mov r0, r9
- cmp r0, 0x3
- bls _080B52A0
- movs r0, 0x1
- b _080B52A2
- .align 2, 0
-_080B5298: .4byte sub_80B52B4
-_080B529C: .4byte gTasks
-_080B52A0:
- movs r0, 0
-_080B52A2:
- strh r0, [r1, 0x12]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5230
-
- thumb_func_start sub_80B52B4
-sub_80B52B4: @ 80B52B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B52E0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B534E
- ldr r2, _080B52E4 @ =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0
- bne _080B52E8
- bl ProcessMenuInputNoWrap
- b _080B52EC
- .align 2, 0
-_080B52E0: .4byte gPaletteFade
-_080B52E4: .4byte gTasks
-_080B52E8:
- bl ProcessMenuInput
-_080B52EC:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B534E
- adds r0, 0x1
- cmp r1, r0
- bne _080B5328
- ldr r0, _080B5320 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B534E
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5324 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B532C
- .align 2, 0
-_080B5320: .4byte gTasks
-_080B5324: .4byte gScriptResult
-_080B5328:
- ldr r0, _080B5354 @ =gScriptResult
- strh r1, [r0]
-_080B532C:
- bl sub_8072DEC
- ldr r0, _080B5358 @ =gTasks
- adds r3, r5, r4
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B534E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5354: .4byte gScriptResult
-_080B5358: .4byte gTasks
- thumb_func_end sub_80B52B4
-
- thumb_func_start Multichoice
-Multichoice: @ 80B535C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B539C @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B53A8
- ldr r1, _080B53A0 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B53A4 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B53B4
- movs r0, 0x1
- b _080B53AA
- .align 2, 0
-_080B539C: .4byte sub_80B52B4
-_080B53A0: .4byte gScriptResult
-_080B53A4: .4byte gMultichoiceLists
-_080B53A8:
- movs r0, 0
-_080B53AA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end Multichoice
-
- thumb_func_start sub_80B53B4
-sub_80B53B4: @ 80B53B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r3, 0
- ldr r3, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- ldr r0, [r7]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0x1
- cmp r5, r6
- bcs _080B5408
-_080B53EA:
- lsls r0, r5, 3
- adds r0, r7
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _080B53FE
- adds r4, r0, 0
-_080B53FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _080B53EA
-_080B5408:
- lsls r4, 24
- lsrs r4, 24
- add r4, r8
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r6, 1
- adds r0, 0x1
- mov r1, r9
- lsls r5, r1, 24
- asrs r5, 24
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- mov r0, r8
- adds r2, r6, 0
- adds r3, r7, 0
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- mov r1, r8
- subs r0, r4, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r2, r9
- adds r3, r6, 0
- bl InitMenu
- mov r0, r10
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B53B4
-
- thumb_func_start yes_no_box
-yes_no_box: @ 80B546C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r6, _080B54B4 @ =task_yes_no_maybe
- adds r0, r6, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B54C0
- ldr r1, _080B54B8 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl DisplayYesNoMenu
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B54BC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r4, [r1, 0xA]
- movs r0, 0x1
- b _080B54C2
- .align 2, 0
-_080B54B4: .4byte task_yes_no_maybe
-_080B54B8: .4byte gScriptResult
-_080B54BC: .4byte gTasks
-_080B54C0:
- movs r0, 0
-_080B54C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end yes_no_box
-
- thumb_func_start unref_sub_80B54C8
-unref_sub_80B54C8: @ 80B54C8
- push {lr}
- ldr r0, _080B54D8 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080B54DC
- movs r0, 0x1
- b _080B54DE
- .align 2, 0
-_080B54D8: .4byte gScriptResult
-_080B54DC:
- movs r0, 0
-_080B54DE:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80B54C8
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80B54E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080B5504 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _080B5508
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080B556A
- .align 2, 0
-_080B5504: .4byte gTasks
-_080B5508:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080B552C
- cmp r1, r0
- bgt _080B5524
- subs r0, 0x1
- cmp r1, r0
- beq _080B556A
- b _080B5542
-_080B5524:
- cmp r1, 0
- beq _080B553C
- cmp r1, 0x1
- bne _080B5542
-_080B552C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5538 @ =gScriptResult
- movs r0, 0
- b _080B5540
- .align 2, 0
-_080B5538: .4byte gScriptResult
-_080B553C:
- ldr r1, _080B5570 @ =gScriptResult
- movs r0, 0x1
-_080B5540:
- strh r0, [r1]
-_080B5542:
- ldr r0, _080B5574 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- ldrb r1, [r1, 0xA]
- adds r2, r0, 0x6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x5
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B556A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5570: .4byte gScriptResult
-_080B5574: .4byte gTasks
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start sub_80B5578
-sub_80B5578: @ 80B5578
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r5, r4, 24
- movs r7, 0
- ldr r0, _080B55B8 @ =sub_80B5684
- mov r10, r0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B55BC
- movs r0, 0
- b _080B5670
- .align 2, 0
-_080B55B8: .4byte sub_80B5684
-_080B55BC:
- ldr r1, _080B5620 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _080B5624 @ =gMultichoiceLists
- lsls r4, r6, 3
- adds r0, r4, r0
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r7, [sp, 0x8]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0
- bl sub_807274C
- mov r0, r10
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, r6, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- cmp r0, r5
- bcc _080B55FE
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _080B5606
-_080B55FE:
- cmp r5, 0x1
- beq _080B5606
- cmp r1, r5
- bne _080B5628
-_080B5606:
- ldr r0, _080B5624 @ =gMultichoiceLists
- adds r0, r4, r0
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x1
- mov r2, r8
- lsls r1, r2, 24
- b _080B563A
- .align 2, 0
-_080B5620: .4byte gScriptResult
-_080B5624: .4byte gMultichoiceLists
-_080B5628:
- adds r0, r6, 0
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x3
- mov r3, r8
- lsls r1, r3, 24
-_080B563A:
- asrs r1, 24
- adds r1, r0
- lsls r1, 24
- lsrs r7, r1, 24
- adds r0, r5, 0
- bl sub_807288C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B5680 @ =gTasks
- mov r3, r10
- lsls r1, r3, 2
- add r1, r10
- lsls r1, 3
- adds r1, r2
- mov r2, r9
- strh r2, [r1, 0x8]
- mov r3, r8
- strh r3, [r1, 0xA]
- add r0, r9
- adds r0, 0x2
- strh r0, [r1, 0xC]
- strh r7, [r1, 0xE]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r1, 0x10]
- movs r0, 0x1
-_080B5670:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B5680: .4byte gTasks
- thumb_func_end sub_80B5578
-
- thumb_func_start sub_80B5684
-sub_80B5684: @ 80B5684
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80727CC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B56F4
- adds r0, 0x1
- cmp r1, r0
- bne _080B56CC
- ldr r2, _080B56C4 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0x10
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _080B56F4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B56C8 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B56D2
- .align 2, 0
-_080B56C4: .4byte gTasks
-_080B56C8: .4byte gScriptResult
-_080B56CC:
- ldr r0, _080B56FC @ =gScriptResult
- strh r1, [r0]
- lsls r4, r5, 2
-_080B56D2:
- bl sub_8072DEC
- ldr r0, _080B5700 @ =gTasks
- adds r3, r4, r5
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B56F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B56FC: .4byte gScriptResult
-_080B5700: .4byte gTasks
- thumb_func_end sub_80B5684
-
- thumb_func_start sp109_CreatePCMenu
-sp109_CreatePCMenu: @ 80B5704
- push {lr}
- ldr r0, _080B5724 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B572C
- ldr r1, _080B5728 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080B572E
- .align 2, 0
-_080B5724: .4byte sub_80B52B4
-_080B5728: .4byte gScriptResult
-_080B572C:
- movs r0, 0
-_080B572E:
- pop {r1}
- bx r1
- thumb_func_end sp109_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80B5734
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080B5758 @ =gPCText_PlayersPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080B575C @ =gPCText_SomeonesPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bls _080B5760
- lsls r0, r4, 24
- lsrs r5, r0, 24
- b _080B5762
- .align 2, 0
-_080B5758: .4byte gPCText_PlayersPC
-_080B575C: .4byte gPCText_SomeonesPC
-_080B5760:
- movs r5, 0x8
-_080B5762:
- ldr r0, _080B5798 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57A4
- movs r7, 0x4
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r0, _080B579C @ =gPCText_HallOfFame
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _080B57A0 @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x7
- bl MenuPrint
- b _080B57C0
- .align 2, 0
-_080B5798: .4byte 0x00000804
-_080B579C: .4byte gPCText_HallOfFame
-_080B57A0: .4byte gPCText_LogOff
-_080B57A4:
- movs r7, 0x3
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x7
- bl MenuDrawTextWindow
- ldr r0, _080B57DC @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
-_080B57C0:
- adds r6, r4, 0
- ldr r0, _080B57E0 @ =0x0000084b
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57E8
- ldr r0, _080B57E4 @ =gPCText_LanettesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- b _080B57F2
- .align 2, 0
-_080B57DC: .4byte gPCText_LogOff
-_080B57E0: .4byte 0x0000084b
-_080B57E4: .4byte gPCText_LanettesPC
-_080B57E8:
- ldr r0, _080B5830 @ =gPCText_SomeonesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
-_080B57F2:
- ldr r0, _080B5834 @ =gPCText_PlayersPC
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- movs r4, 0
- str r4, [sp]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- adds r3, r7, 0
- bl InitMenu
- lsls r2, r6, 24
- lsrs r2, 24
- lsls r3, r7, 1
- adds r3, 0x1
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5830: .4byte gPCText_SomeonesPC
-_080B5834: .4byte gPCText_PlayersPC
- thumb_func_end CreatePCMenu
-
- thumb_func_start sub_80B5838
-sub_80B5838: @ 80B5838
- push {lr}
- bl MenuDisplayMessageBox
- ldr r0, _080B584C @ =gUnknown_081A0A01
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080B584C: .4byte gUnknown_081A0A01
- thumb_func_end sub_80B5838
-
- thumb_func_start task_picbox
-task_picbox: @ 80B5850
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B5874 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B58BE
- cmp r0, 0x1
- bgt _080B5878
- cmp r0, 0
- beq _080B5894
- b _080B58BE
- .align 2, 0
-_080B5874: .4byte gTasks
-_080B5878:
- cmp r0, 0x2
- beq _080B5882
- cmp r0, 0x3
- beq _080B58A0
- b _080B58BE
-_080B5882:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B589C @ =gSprites
- adds r0, r1
- bl FreeResourcesAndDestroySprite
-_080B5894:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B58BE
- .align 2, 0
-_080B589C: .4byte gSprites
-_080B58A0:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080B58BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start sub_80B58C4
-sub_80B58C4: @ 80B58C4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, _080B595C @ =task_picbox
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080B596C
- adds r2, r6, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B5960 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r7, [r4, 0xA]
- lsls r1, r6, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r5, 19
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateMonSprite_PicBox
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- strh r6, [r4, 0xE]
- strh r5, [r4, 0x10]
- ldr r3, _080B5964 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080B5968 @ =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _080B596E
- .align 2, 0
-_080B595C: .4byte task_picbox
-_080B5960: .4byte gTasks
-_080B5964: .4byte gSprites
-_080B5968: .4byte SpriteCallbackDummy
-_080B596C:
- movs r0, 0
-_080B596E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B58C4
-
- thumb_func_start picbox_close
-picbox_close: @ 80B5974
- push {lr}
- ldr r0, _080B5998 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080B59A4
- ldr r0, _080B599C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, _080B59A0 @ =sub_80B59AC
- b _080B59A6
- .align 2, 0
-_080B5998: .4byte task_picbox
-_080B599C: .4byte gTasks
-_080B59A0: .4byte sub_80B59AC
-_080B59A4:
- movs r0, 0
-_080B59A6:
- pop {r1}
- bx r1
- thumb_func_end picbox_close
-
- thumb_func_start sub_80B59AC
-sub_80B59AC: @ 80B59AC
- push {lr}
- ldr r0, _080B59C0 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B59C4
- movs r0, 0
- b _080B59C6
- .align 2, 0
-_080B59C0: .4byte task_picbox
-_080B59C4:
- movs r0, 0x1
-_080B59C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80B59AC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_movement.s b/asm/script_movement.s
new file mode 100644
index 000000000..72523c639
--- /dev/null
+++ b/asm/script_movement.s
@@ -0,0 +1,596 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start exec_movement
+exec_movement: @ 80A20D4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A20F6
+ movs r0, 0x1
+ b _080A211E
+_080A20F6:
+ ldr r0, _080A2128 @ =sub_80A244C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2108
+ movs r0, 0x32
+ bl sub_80A2198
+_080A2108:
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ ldrb r1, [r1]
+ adds r2, r4, 0
+ bl sub_80A21F4
+ lsls r0, 24
+ lsrs r0, 24
+_080A211E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2128: .4byte sub_80A244C
+ thumb_func_end exec_movement
+
+ thumb_func_start sub_80A212C
+sub_80A212C: @ 80A212C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A216E
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x10
+ beq _080A216E
+ adds r0, r4, 0
+ bl sub_80A2370
+ lsls r0, 24
+ lsrs r0, 24
+ b _080A2170
+_080A216E:
+ movs r0, 0x1
+_080A2170:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A212C
+
+ thumb_func_start sub_80A2178
+sub_80A2178: @ 80A2178
+ push {r4,lr}
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _080A2192
+ adds r0, r4, 0
+ bl sub_80A2408
+ adds r0, r4, 0
+ bl DestroyTask
+_080A2192:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2178
+
+ thumb_func_start sub_80A2198
+sub_80A2198: @ 80A2198
+ push {r4,r5,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080A21D4 @ =sub_80A244C
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r3, r1, 3
+ ldr r5, _080A21D8 @ =gTasks + 0x8
+ ldr r0, _080A21DC @ =0x0000ffff
+ adds r4, r0, 0
+_080A21B8:
+ lsls r0, r2, 1
+ adds r0, r3
+ adds r0, r5
+ ldrh r1, [r0]
+ orrs r1, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080A21B8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A21D4: .4byte sub_80A244C
+_080A21D8: .4byte gTasks + 0x8
+_080A21DC: .4byte 0x0000ffff
+ thumb_func_end sub_80A2198
+
+ thumb_func_start sub_80A21E0
+sub_80A21E0: @ 80A21E0
+ push {lr}
+ ldr r0, _080A21F0 @ =sub_80A244C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A21F0: .4byte sub_80A244C
+ thumb_func_end sub_80A21E0
+
+ thumb_func_start sub_80A21F4
+sub_80A21F4: @ 80A21F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r8, r6
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x10
+ beq _080A2230
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2370
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2250
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ b _080A2246
+_080A2230:
+ adds r0, r7, 0
+ movs r1, 0xFF
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x10
+ beq _080A2250
+ adds r0, r7, 0
+ adds r1, r4, 0
+ mov r2, r8
+_080A2246:
+ mov r3, r9
+ bl sub_80A23C8
+ movs r0, 0
+ b _080A2252
+_080A2250:
+ movs r0, 0x1
+_080A2252:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A21F4
+
+ thumb_func_start sub_80A2260
+sub_80A2260: @ 80A2260
+ 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, _080A2284 @ =gTasks + 0x8
+ adds r1, r0
+ adds r1, 0x2
+ movs r2, 0
+_080A2278:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _080A2288
+ adds r0, r2, 0
+ b _080A2296
+ .align 2, 0
+_080A2284: .4byte gTasks + 0x8
+_080A2288:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+ cmp r2, 0xF
+ bls _080A2278
+ movs r0, 0x10
+_080A2296:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2260
+
+ thumb_func_start sub_80A229C
+sub_80A229C: @ 80A229C
+ 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, _080A22CC @ =gTasks + 0x8
+ adds r1, r0
+ adds r1, 0x2
+ str r1, [r2]
+ movs r0, 0
+ cmp r0, r3
+ bcs _080A22C8
+_080A22BA:
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, 0x1
+ cmp r0, r3
+ bcc _080A22BA
+ str r1, [r2]
+_080A22C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A22CC: .4byte gTasks + 0x8
+ thumb_func_end sub_80A229C
+
+ thumb_func_start sub_80A22D0
+sub_80A22D0: @ 80A22D0
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r2, sp
+ bl sub_80A229C
+ ldr r0, [sp]
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A22D0
+
+ thumb_func_start sub_80A22F4
+sub_80A22F4: @ 80A22F4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r2, sp
+ bl sub_80A229C
+ ldr r0, [sp]
+ ldrb r0, [r0]
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A22F4
+
+ thumb_func_start sub_80A2318
+sub_80A2318: @ 80A2318
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r2, _080A2340 @ =gBitTable
+ lsrs r1, 22
+ adds r1, r2
+ ldr r2, [r1]
+ mvns r2, r2
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r3, _080A2344 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldrh r0, [r1, 0x8]
+ ands r2, r0
+ strh r2, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_080A2340: .4byte gBitTable
+_080A2344: .4byte gTasks
+ thumb_func_end sub_80A2318
+
+ thumb_func_start sub_80A2348
+sub_80A2348: @ 80A2348
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _080A2368 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r0, _080A236C @ =gBitTable
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r2, 0x8]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_080A2368: .4byte gTasks
+_080A236C: .4byte gBitTable
+ thumb_func_end sub_80A2348
+
+ thumb_func_start sub_80A2370
+sub_80A2370: @ 80A2370
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _080A2398 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r0, _080A239C @ =gBitTable
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r2, 0x8]
+ ands r0, r1
+ cmp r0, 0
+ bne _080A23A0
+ movs r0, 0
+ b _080A23A2
+ .align 2, 0
+_080A2398: .4byte gTasks
+_080A239C: .4byte gBitTable
+_080A23A0:
+ movs r0, 0x1
+_080A23A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2370
+
+ thumb_func_start npc_obj_offscreen_culling_and_flag_update
+npc_obj_offscreen_culling_and_flag_update: @ 80A23A8
+ lsls r0, 24
+ ldr r2, _080A23B4 @ =gUnknown_020384F8
+ lsrs r0, 22
+ adds r0, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080A23B4: .4byte gUnknown_020384F8
+ thumb_func_end npc_obj_offscreen_culling_and_flag_update
+
+ thumb_func_start sub_80A23B8
+sub_80A23B8: @ 80A23B8
+ lsls r0, 24
+ ldr r1, _080A23C4 @ =gUnknown_020384F8
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080A23C4: .4byte gUnknown_020384F8
+ thumb_func_end sub_80A23B8
+
+ thumb_func_start sub_80A23C8
+sub_80A23C8: @ 80A23C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ 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
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2318
+ adds r0, r4, 0
+ mov r1, r8
+ bl npc_obj_offscreen_culling_and_flag_update
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80A22D0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A23C8
+
+ thumb_func_start sub_80A2408
+sub_80A2408: @ 80A2408
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A2444 @ =gTasks + 0x8
+ adds r1, r0
+ adds r4, r1, 0x2
+ movs r5, 0
+_080A241C:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080A2432
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A2448 @ =gMapObjects
+ adds r0, r1
+ bl UnfreezeMapObject
+_080A2432:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x1
+ cmp r5, 0xF
+ bls _080A241C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2444: .4byte gTasks + 0x8
+_080A2448: .4byte gMapObjects
+ thumb_func_end sub_80A2408
+
+ thumb_func_start sub_80A244C
+sub_80A244C: @ 80A244C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ mov r6, sp
+_080A2458:
+ adds r0, r7, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl sub_80A22F4
+ ldrb r0, [r6]
+ cmp r0, 0xFF
+ beq _080A247C
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_80A23B8
+ adds r3, r0, 0
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80A2490
+_080A247C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080A2458
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A244C
+
+ thumb_func_start sub_80A2490
+sub_80A2490: @ 80A2490
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r3, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r8, r6
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080A24E0 @ =gMapObjects
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24C8
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24FA
+_080A24C8:
+ ldrb r1, [r5]
+ cmp r1, 0xFE
+ bne _080A24E4
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80A2348
+ adds r0, r4, 0
+ bl FreezeMapObject
+ b _080A24FA
+ .align 2, 0
+_080A24E0: .4byte gMapObjects
+_080A24E4:
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A24FA
+ adds r5, 0x1
+ mov r0, r8
+ adds r1, r5, 0
+ bl npc_obj_offscreen_culling_and_flag_update
+_080A24FA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2490
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80C4BF0.s b/asm/script_pokemon_util_80C4BF0.s
index dd4c18d96..6777ca135 100644
--- a/asm/script_pokemon_util_80C4BF0.s
+++ b/asm/script_pokemon_util_80C4BF0.s
@@ -10,7 +10,7 @@
sub_80C4BF0: @ 80C4BF0
push {r4,lr}
ldr r2, _080C4C1C @ =gSaveBlock1
- ldr r1, _080C4C20 @ =gUnknown_02038570
+ ldr r1, _080C4C20 @ =gContestMons
ldrb r3, [r1, 0x15]
movs r4, 0x9B
lsls r4, 5
@@ -32,7 +32,7 @@ sub_80C4BF0: @ 80C4BF0
bx r0
.align 2, 0
_080C4C1C: .4byte gSaveBlock1
-_080C4C20: .4byte gUnknown_02038570
+_080C4C20: .4byte gContestMons
_080C4C24: .4byte 0x00001364
thumb_func_end sub_80C4BF0
@@ -161,7 +161,7 @@ sub_80C4CEC: @ 80C4CEC
sub_80C4CF8: @ 80C4CF8
push {lr}
ldr r0, _080C4D28 @ =gUnknown_02038690
- ldr r1, _080C4D2C @ =gUnknown_02038695
+ ldr r1, _080C4D2C @ =gContestPlayerMonIndex
ldrb r2, [r1]
adds r0, r2, r0
ldrb r0, [r0]
@@ -184,7 +184,7 @@ sub_80C4CF8: @ 80C4CF8
b _080C4D44
.align 2, 0
_080C4D28: .4byte gUnknown_02038690
-_080C4D2C: .4byte gUnknown_02038695
+_080C4D2C: .4byte gContestPlayerMonIndex
_080C4D30: .4byte gScriptContestRank
_080C4D34: .4byte gUnknown_02038678
_080C4D38: .4byte 0x0000031f
@@ -370,7 +370,7 @@ _080C4E78:
lsrs r1, 24
mov r0, r9
bl sub_80C4698
- ldr r0, _080C4EAC @ =gUnknown_0203869A
+ ldr r0, _080C4EAC @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -388,7 +388,7 @@ _080C4E78:
_080C4EA0: .4byte gUnknown_02038670
_080C4EA4: .4byte gSpecialVar_0x8006
_080C4EA8: .4byte gStringVar1
-_080C4EAC: .4byte gUnknown_0203869A
+_080C4EAC: .4byte gIsLinkContest
_080C4EB0: .4byte gStringVar2
_080C4EB4: .4byte gLinkPlayers + 0x8
_080C4EB8:
@@ -486,7 +486,7 @@ _080C4F6C: .4byte ShowContestWinnerCleanup
sub_80C4F70: @ 80C4F70
push {r4,lr}
ldr r0, _080C4FA8 @ =0x00004010
- ldr r4, _080C4FAC @ =gUnknown_02038570
+ ldr r4, _080C4FAC @ =gContestMons
ldrb r1, [r4, 0x15]
bl VarSet
ldr r0, _080C4FB0 @ =0x00004011
@@ -509,7 +509,7 @@ sub_80C4F70: @ 80C4F70
bx r0
.align 2, 0
_080C4FA8: .4byte 0x00004010
-_080C4FAC: .4byte gUnknown_02038570
+_080C4FAC: .4byte gContestMons
_080C4FB0: .4byte 0x00004011
_080C4FB4: .4byte 0x00004012
_080C4FB8: .4byte 0x00004013
@@ -534,7 +534,7 @@ GiveMonArtistRibbon: @ 80C4FBC
cmp r0, 0
bne _080C5038
ldr r0, _080C5024 @ =gUnknown_02038690
- ldr r1, _080C5028 @ =gUnknown_02038695
+ ldr r1, _080C5028 @ =gContestPlayerMonIndex
ldrb r2, [r1]
adds r0, r2, r0
ldrb r0, [r0]
@@ -567,7 +567,7 @@ GiveMonArtistRibbon: @ 80C4FBC
_080C501C: .4byte gUnknown_02038694
_080C5020: .4byte gPlayerParty
_080C5024: .4byte gUnknown_02038690
-_080C5028: .4byte gUnknown_02038695
+_080C5028: .4byte gContestPlayerMonIndex
_080C502C: .4byte gScriptContestRank
_080C5030: .4byte gUnknown_02038678
_080C5034: .4byte 0x0000031f
@@ -611,7 +611,7 @@ ShowContestEntryMonPic: @ 80C5050
movs r2, 0x13
movs r3, 0xD
bl MenuDrawTextWindow
- ldr r2, _080C5140 @ =gUnknown_02038570
+ ldr r2, _080C5140 @ =gContestMons
ldr r0, _080C5144 @ =gSpecialVar_0x8006
ldrh r1, [r0]
lsls r1, 6
@@ -654,7 +654,7 @@ ShowContestEntryMonPic: @ 80C5050
str r6, [sp, 0x4]
mov r4, r8
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r6, 0
mov r1, r9
mov r2, r8
@@ -703,7 +703,7 @@ _080C512A:
bx r0
.align 2, 0
_080C513C: .4byte sub_80C5190
-_080C5140: .4byte gUnknown_02038570
+_080C5140: .4byte gContestMons
_080C5144: .4byte gSpecialVar_0x8006
_080C5148: .4byte gTasks
_080C514C: .4byte gMonFrontPicTable
@@ -821,7 +821,7 @@ _080C5222:
thumb_func_start ScriptGetMultiplayerId
ScriptGetMultiplayerId: @ 80C5228
push {r4,lr}
- ldr r0, _080C5244 @ =gUnknown_0203869A
+ ldr r0, _080C5244 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -834,7 +834,7 @@ ScriptGetMultiplayerId: @ 80C5228
strh r0, [r4]
b _080C5252
.align 2, 0
-_080C5244: .4byte gUnknown_0203869A
+_080C5244: .4byte gIsLinkContest
_080C5248: .4byte gScriptResult
_080C524C:
ldr r1, _080C5258 @ =gScriptResult
@@ -851,7 +851,7 @@ _080C5258: .4byte gScriptResult
thumb_func_start ScriptRandom
ScriptRandom: @ 80C525C
push {r4,lr}
- ldr r0, _080C5280 @ =gUnknown_0203869A
+ ldr r0, _080C5280 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -868,7 +868,7 @@ ScriptRandom: @ 80C525C
ldr r4, _080C5290 @ =gScriptResult
b _080C529E
.align 2, 0
-_080C5280: .4byte gUnknown_0203869A
+_080C5280: .4byte gIsLinkContest
_080C5284: .4byte gUnknown_03005D28
_080C5288: .4byte 0x41c64e6d
_080C528C: .4byte 0x00006073
@@ -1311,7 +1311,7 @@ SetBattleTowerPlayerParty: @ 80C55C8
ldrb r4, [r0]
cmp r4, 0
bne _080C55E4
- bl copy_player_party_from_sav1
+ bl LoadPlayerParty
ldr r0, _080C55E0 @ =gScriptResult
strh r4, [r0]
b _080C55EE
diff --git a/asm/script_pokemon_util_80F99CC.s b/asm/script_pokemon_util_80F99CC.s
index af550f47e..d107902ae 100644
--- a/asm/script_pokemon_util_80F99CC.s
+++ b/asm/script_pokemon_util_80F99CC.s
@@ -183,7 +183,7 @@ _080F9B14:
muls r2, r3
ldr r3, _080F9B44 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _080F9BF0
.align 2, 0
_080F9B3C: .4byte 0x00000266
@@ -197,14 +197,14 @@ _080F9B48:
adds r1, r4, r0
b _080F9BBC
_080F9B54:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _080F9BB4
_080F9B5A:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -231,10 +231,10 @@ _080F9B6E:
.align 2, 0
_080F9B94: .4byte 0x00000266
_080F9B98:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _080F9BB4
_080F9B9E:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _080F9BAC @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -450,7 +450,7 @@ _080F9D30:
muls r2, r3
ldr r3, _080F9D60 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _080F9E0C
.align 2, 0
_080F9D58: .4byte 0x00000266
@@ -464,14 +464,14 @@ _080F9D64:
adds r1, r4, r0
b _080F9DD8
_080F9D70:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _080F9DD0
_080F9D76:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -498,10 +498,10 @@ _080F9D8A:
.align 2, 0
_080F9DB0: .4byte 0x00000266
_080F9DB4:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _080F9DD0
_080F9DBA:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _080F9DC8 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 72c467e70..139375998 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -2058,7 +2058,7 @@ _080BC460: .4byte 0x00001a16
SecretBasePC_PackUp: @ 80BC464
push {lr}
movs r0, 0x14
- bl sav12_xor_increment
+ bl IncrementGameStat
bl sub_80BC440
pop {r0}
bx r0
@@ -2149,7 +2149,7 @@ sub_80BC50C: @ 80BC50C
push {r4,r5,lr}
bl sub_80BC474
movs r0, 0x14
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r4, _080BC530 @ =gSaveBlock1
ldr r0, _080BC534 @ =0x00001a16
adds r4, r0
diff --git a/asm/shop.s b/asm/shop.s
index 94ee3c867..d59f9584e 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -1820,7 +1820,7 @@ sub_80B3B80: @ 80B3B80
lsls r4, 24
lsrs r4, 24
movs r0, 0x26
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r5, _080B3BC0 @ =gSaveBlock1 + 0x490
ldr r0, _080B3BC4 @ =gUnknown_020386A0
ldr r1, [r0]
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index ee176211f..32abb287d 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -1254,7 +1254,7 @@ sub_81021FC: @ 81021FC
cmp r0, 0
beq _08102220
movs r0, 0x1C
- bl sav12_xor_increment
+ bl IncrementGameStat
_08102220:
ldrh r1, [r4, 0x8]
movs r0, 0x4
@@ -7609,14 +7609,14 @@ sub_81050C4: @ 81050C4
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
- ldr r1, _081050FC @ =gUnknown_083ED704
+ ldr r1, _081050FC @ =gSubspriteTables_83ED704
bl SetSubspriteTables
pop {r0}
bx r0
.align 2, 0
_081050F4: .4byte gSpriteTemplate_83ED444
_081050F8: .4byte gSprites
-_081050FC: .4byte gUnknown_083ED704
+_081050FC: .4byte gSubspriteTables_83ED704
thumb_func_end sub_81050C4
thumb_func_start sub_8105100
@@ -7764,7 +7764,7 @@ sub_81051C0: @ 81051C0
mov r3, r8
orrs r0, r3
strb r0, [r1]
- ldr r1, _08105274 @ =gUnknown_083ED73C
+ ldr r1, _08105274 @ =gSubspriteTables_83ED73C
adds r0, r2, 0
bl SetSubspriteTables
ldr r6, _08105278 @ =0x02000000
@@ -7795,7 +7795,7 @@ sub_81051C0: @ 81051C0
mov r3, r8
orrs r0, r3
strb r0, [r1]
- ldr r1, _08105280 @ =gUnknown_083ED75C
+ ldr r1, _08105280 @ =gSubspriteTables_83ED75C
adds r0, r2, 0
bl SetSubspriteTables
adds r6, 0x4A
@@ -7810,10 +7810,10 @@ sub_81051C0: @ 81051C0
.align 2, 0
_0810526C: .4byte gSpriteTemplate_83ED474
_08105270: .4byte gSprites
-_08105274: .4byte gUnknown_083ED73C
+_08105274: .4byte gSubspriteTables_83ED73C
_08105278: .4byte 0x02000000
_0810527C: .4byte gSpriteTemplate_83ED48C
-_08105280: .4byte gUnknown_083ED75C
+_08105280: .4byte gSubspriteTables_83ED75C
thumb_func_end sub_81051C0
thumb_func_start sub_8105284
@@ -7850,7 +7850,7 @@ sub_8105284: @ 8105284
movs r2, 0x2
orrs r1, r2
strb r1, [r3]
- ldr r1, _081052E4 @ =gUnknown_083ED78C
+ ldr r1, _081052E4 @ =gSubspriteTables_83ED78C
bl SetSubspriteTables
ldr r0, _081052E8 @ =0x02000000
adds r0, 0x42
@@ -7862,7 +7862,7 @@ sub_8105284: @ 8105284
_081052D8: .4byte gSpriteTemplate_83ED4A4
_081052DC: .4byte gSpriteCoordOffsetX
_081052E0: .4byte gSprites
-_081052E4: .4byte gUnknown_083ED78C
+_081052E4: .4byte gSubspriteTables_83ED78C
_081052E8: .4byte 0x02000000
thumb_func_end sub_8105284
@@ -7997,7 +7997,7 @@ sub_81053A0: @ 81053A0
mov r3, r8
orrs r0, r3
strb r0, [r2, 0x5]
- ldr r0, _08105454 @ =gUnknown_083ED7B4
+ ldr r0, _08105454 @ =gSubspriteTables_83ED7B4
mov r9, r0
adds r0, r2, 0
mov r1, r9
@@ -8045,7 +8045,7 @@ sub_81053A0: @ 81053A0
.align 2, 0
_0810544C: .4byte gSpriteTemplate_83ED4D4
_08105450: .4byte gSprites
-_08105454: .4byte gUnknown_083ED7B4
+_08105454: .4byte gSubspriteTables_83ED7B4
_08105458: .4byte 0x02000000
thumb_func_end sub_81053A0
@@ -8079,7 +8079,7 @@ sub_810545C: @ 810545C
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x5]
- ldr r1, _081054B0 @ =gUnknown_083ED7D4
+ ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4
bl SetSubspriteTables
ldr r0, _081054B4 @ =0x02000000
adds r0, 0x40
@@ -8090,7 +8090,7 @@ sub_810545C: @ 810545C
.align 2, 0
_081054A8: .4byte gSpriteTemplate_83ED4EC
_081054AC: .4byte gSprites
-_081054B0: .4byte gUnknown_083ED7D4
+_081054B0: .4byte gSubspriteTables_83ED7D4
_081054B4: .4byte 0x02000000
thumb_func_end sub_810545C
@@ -10258,7 +10258,7 @@ _08106468:
movs r1, 0
movs r2, 0xA0
bl LoadPalette
- ldr r0, _081064B4 @ =gUnknown_083EDE24
+ ldr r0, _081064B4 @ =gPalette_83EDE24
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
@@ -10271,7 +10271,7 @@ _081064A4: .4byte 0x02010000
_081064A8: .4byte 0x040000d4
_081064AC: .4byte 0x80000800
_081064B0: .4byte gUnknown_08E95A18
-_081064B4: .4byte gUnknown_083EDE24
+_081064B4: .4byte gPalette_83EDE24
thumb_func_end sub_8106448
thumb_func_start sub_81064B8
diff --git a/asm/smokescreen.s b/asm/smokescreen.s
new file mode 100644
index 000000000..7f4aee269
--- /dev/null
+++ b/asm/smokescreen.s
@@ -0,0 +1,226 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8046234
+sub_8046234: @ 8046234
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r5, _0804636C @ =gUnknown_081FAEA4
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08046370 @ =0xffff0000
+ cmp r0, r1
+ bne _08046266
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08046374 @ =gUnknown_081FAEAC
+ bl LoadCompressedObjectPalette
+_08046266:
+ ldr r0, _08046378 @ =sub_8046388
+ bl CreateInvisibleSpriteWithCallback
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r5, r0
+ strh r4, [r5, 0x30]
+ ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C
+ mov r9, r0
+ lsls r6, 16
+ asrs r0, r6, 16
+ mov r10, r0
+ ldr r0, _08046384 @ =0xfff00000
+ adds r6, r0
+ asrs r6, 16
+ lsls r4, r7, 16
+ asrs r7, r4, 16
+ adds r4, r0
+ asrs r4, 16
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r1, r0
+ mov r0, r8
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804636C: .4byte gUnknown_081FAEA4
+_08046370: .4byte 0xffff0000
+_08046374: .4byte gUnknown_081FAEAC
+_08046378: .4byte sub_8046388
+_0804637C: .4byte gSprites
+_08046380: .4byte gSpriteTemplate_81FAF0C
+_08046384: .4byte 0xfff00000
+ thumb_func_end sub_8046234
+
+ thumb_func_start sub_8046388
+sub_8046388: @ 8046388
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463C0
+ ldr r0, _080463B4 @ =gUnknown_081FAEA4
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r0, _080463B8 @ =gUnknown_081FAEAC
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463BC
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080463C0
+ .align 2, 0
+_080463B4: .4byte gUnknown_081FAEA4
+_080463B8: .4byte gUnknown_081FAEAC
+_080463BC:
+ ldr r0, _080463C8 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080463C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463C8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8046388
+
+ thumb_func_start sub_80463CC
+sub_80463CC: @ 80463CC
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080463F6
+ ldr r2, _080463FC @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ subs r1, 0x1
+ strh r1, [r0, 0x2E]
+ adds r0, r3, 0
+ bl DestroySprite
+_080463F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463FC: .4byte gSprites
+ thumb_func_end sub_80463CC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index ae857d1c3..d1fe82d6c 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -604,7 +604,7 @@ _080481BA:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080482AC @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x34
@@ -661,7 +661,7 @@ _0804822C:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080482AC @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x3A
@@ -689,14 +689,14 @@ _080482A8: .4byte 0xfff40000
_080482AC: .4byte sub_809D62C
_080482B0: .4byte gEnemyParty
_080482B4:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r0, _080482D0 @ =gUnknown_03004824
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x42
adds r1, 0x34
movs r2, 0
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _080482D4 @ =gMain
ldr r0, _080482D8 @ =0x0000043c
adds r1, r0
@@ -712,7 +712,7 @@ _080482DC:
adds r0, 0x42
adds r1, 0x34
movs r2, 0x1
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _080482F8 @ =gMain
ldr r2, _080482FC @ =0x0000043c
adds r1, r2
@@ -1176,7 +1176,7 @@ _080486DE:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080487D8 @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x34
@@ -1233,7 +1233,7 @@ _08048752:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080487D8 @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x3A
@@ -1266,14 +1266,14 @@ _080487DC: .4byte gEnemyParty
_080487E0: .4byte gMain
_080487E4: .4byte 0x0000043c
_080487E8:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r0, _08048804 @ =gUnknown_03004824
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x42
adds r1, 0x34
movs r2, 0
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _08048808 @ =gMain
ldr r5, _0804880C @ =0x0000043c
adds r1, r5
@@ -1289,7 +1289,7 @@ _08048810:
adds r0, 0x42
adds r1, 0x34
movs r2, 0x1
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _0804882C @ =gMain
ldr r0, _08048830 @ =0x0000043c
adds r1, r0
@@ -3475,7 +3475,7 @@ sub_804997C: @ 804997C
ldr r3, _080499C0 @ =sub_80484F4
movs r4, 0x4
str r4, [sp]
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
b _080499E0
.align 2, 0
_080499B4: .4byte gPaletteFade
@@ -3495,7 +3495,7 @@ _080499C4:
ldr r3, _080499EC @ =sub_80484F4
movs r4, 0x4
str r4, [sp]
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
_080499E0:
add sp, 0x4
pop {r4}
@@ -6137,7 +6137,7 @@ _0804AE5C:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x69
adds r1, r6
@@ -6182,7 +6182,7 @@ _0804AEBC:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x6F
adds r1, r6
@@ -6539,7 +6539,7 @@ sub_804B128: @ 804B128
ldrh r0, [r0]
str r0, [sp, 0xC]
add r0, sp, 0x10
- bl sub_8040F34
+ bl DoBgAffineSet
ldr r1, _0804B1B8 @ =REG_BG2PA
add r0, sp, 0x10
ldrh r0, [r0]
@@ -6805,7 +6805,7 @@ _0804B330:
str r5, [sp, 0x4]
mov r4, r9
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
mov r0, r10
bl sub_8040990
bl LoadCompressedObjectPalette
@@ -7591,7 +7591,7 @@ sub_804BA64: @ 804BA64
lsls r0, 8
cmp r1, r0
bne _0804BA8C
- bl sub_80690F0
+ bl EnableNationalPokedex
_0804BA8C:
pop {r0}
bx r0
@@ -10676,11 +10676,11 @@ _0804D5A4: .4byte 0x0000043c
_0804D5A8:
movs r0, 0x4
strb r0, [r1]
- ldr r1, _0804D5B4 @ =gUnknown_3001BB4
+ ldr r1, _0804D5B4 @ =gSoftResetDisabled
movs r0, 0x1
b _0804D612
.align 2, 0
-_0804D5B4: .4byte gUnknown_3001BB4
+_0804D5B4: .4byte gSoftResetDisabled
_0804D5B8:
ldr r0, _0804D5F4 @ =gUnknown_03005E94
ldr r1, _0804D5F8 @ =sub_804DC88
@@ -11765,9 +11765,9 @@ _0804DF48: .4byte 0x0000043c
_0804DF4C: .4byte gUnknown_03004828
_0804DF50: .4byte gSystemText_Saving
_0804DF54:
- bl sub_8047A1C
+ bl SetSecretBase2Field_9_AndHideBG
movs r0, 0x15
- bl sav12_xor_increment
+ bl IncrementGameStat
bl sub_8125D80
ldr r1, _0804DF74 @ =gMain
ldr r2, _0804DF78 @ =0x0000043c
@@ -11803,7 +11803,7 @@ _0804DF9C:
lsrs r1, r0, 24
cmp r1, 0
beq _0804DFC0
- bl sub_8047A34
+ bl ClearSecretBase2Field_9_2
ldr r0, _0804DFB8 @ =gMain
ldr r1, _0804DFBC @ =0x0000043c
adds r0, r1
@@ -11886,7 +11886,7 @@ _0804E04C:
cmp r0, 0
beq _0804E11A
bl sub_8125E04
- ldr r1, _0804E06C @ =gUnknown_3001BB4
+ ldr r1, _0804E06C @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
ldr r0, _0804E070 @ =gMain
@@ -11896,7 +11896,7 @@ _0804E04C:
strb r1, [r0]
b _0804E11A
.align 2, 0
-_0804E06C: .4byte gUnknown_3001BB4
+_0804E06C: .4byte gSoftResetDisabled
_0804E070: .4byte gMain
_0804E074: .4byte 0x0000043c
_0804E078:
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
deleted file mode 100644
index e46113132..000000000
--- a/asm/trainer_card.s
+++ /dev/null
@@ -1,2755 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8093110
-sub_8093110: @ 8093110
- push {lr}
- bl sub_80932AC
- ldr r0, _08093128 @ =sub_8093174
- bl SetMainCallback2
- ldr r0, _0809312C @ =0x02000000
- adds r0, 0x9C
- movs r1, 0x2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08093128: .4byte sub_8093174
-_0809312C: .4byte 0x02000000
- thumb_func_end sub_8093110
-
- thumb_func_start sub_8093130
-sub_8093130: @ 8093130
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80932E4
- ldr r0, _08093164 @ =sub_8093174
- bl SetMainCallback2
- ldr r2, _08093168 @ =0x02000000
- ldr r3, _0809316C @ =gLinkPlayers
- ldr r0, _08093170 @ =gLinkPlayerMapObjects
- lsls r4, 2
- adds r4, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x1A]
- adds r2, 0x9C
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093164: .4byte sub_8093174
-_08093168: .4byte 0x02000000
-_0809316C: .4byte gLinkPlayers
-_08093170: .4byte gLinkPlayerMapObjects
- thumb_func_end sub_8093130
-
- thumb_func_start sub_8093174
-sub_8093174: @ 8093174
- push {lr}
- ldr r0, _0809318C @ =gMain
- ldr r1, _08093190 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _08093232
- lsls r0, 2
- ldr r1, _08093194 @ =_08093198
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809318C: .4byte gMain
-_08093190: .4byte 0x0000043c
-_08093194: .4byte _08093198
- .align 2, 0
-_08093198:
- .4byte _080931BC
- .4byte _080931C6
- .4byte _080931CC
- .4byte _080931D2
- .4byte _080931DC
- .4byte _080931EC
- .4byte _08093200
- .4byte _08093206
- .4byte _08093220
-_080931BC:
- bl sub_8093534
- bl sub_8093688
- b _0809320A
-_080931C6:
- bl sub_8093598
- b _0809320A
-_080931CC:
- bl sub_80935EC
- b _0809320A
-_080931D2:
- bl sub_8093610
- bl sub_80937A4
- b _0809320A
-_080931DC:
- bl sub_80937BC
- ldr r1, _080931F8 @ =gMain
- ldr r0, _080931FC @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080931EC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _08093232
- b _0809320A
- .align 2, 0
-_080931F8: .4byte gMain
-_080931FC: .4byte 0x0000043c
-_08093200:
- bl sub_80937F0
- b _0809320A
-_08093206:
- bl sub_80937D8
-_0809320A:
- ldr r1, _08093218 @ =gMain
- ldr r0, _0809321C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08093232
- .align 2, 0
-_08093218: .4byte gMain
-_0809321C: .4byte 0x0000043c
-_08093220:
- bl nullsub_15
- bl sub_8093800
- bl sub_8093550
- ldr r0, _08093238 @ =sub_809323C
- bl SetMainCallback2
-_08093232:
- pop {r0}
- bx r0
- .align 2, 0
-_08093238: .4byte sub_809323C
- thumb_func_end sub_8093174
-
- thumb_func_start sub_809323C
-sub_809323C: @ 809323C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809323C
-
- thumb_func_start sub_8093254
-sub_8093254: @ 8093254
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r2, _0809329C @ =0x02000000
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- strb r0, [r2, 0x6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0809327E
- movs r0, 0
- strb r0, [r2, 0x6]
- ldrb r0, [r2, 0x5]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2, 0x5]
-_0809327E:
- ldrb r0, [r2, 0x4]
- cmp r0, 0
- beq _08093298
- ldr r1, _080932A0 @ =0x040000d4
- ldr r0, _080932A4 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _080932A8 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08093298:
- pop {r0}
- bx r0
- .align 2, 0
-_0809329C: .4byte 0x02000000
-_080932A0: .4byte 0x040000d4
-_080932A4: .4byte gUnknown_03004DE0
-_080932A8: .4byte 0x800000a0
- thumb_func_end sub_8093254
-
- thumb_func_start sub_80932AC
-sub_80932AC: @ 80932AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080932DC @ =nullsub_60
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080932E0 @ =gTasks
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- adds r0, 0xC
- adds r1, r4, 0
- bl StoreWordInTwoHalfwords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080932DC: .4byte nullsub_60
-_080932E0: .4byte gTasks
- thumb_func_end sub_80932AC
-
- thumb_func_start sub_80932E4
-sub_80932E4: @ 80932E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809331C @ =nullsub_60
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08093320 @ =gTasks
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r4, [r0, 0xA]
- adds r0, 0xC
- adds r1, r5, 0
- bl StoreWordInTwoHalfwords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809331C: .4byte nullsub_60
-_08093320: .4byte gTasks
- thumb_func_end sub_80932E4
-
- thumb_func_start sub_8093324
-sub_8093324: @ 8093324
- push {r4,r5,lr}
- ldr r0, _0809336C @ =nullsub_60
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08093370 @ =gTasks
- adds r4, r1, r0
- ldr r5, _08093374 @ =0x02000000
- ldrh r0, [r4, 0x8]
- strb r0, [r5, 0x1]
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r5, 0
- adds r1, 0x60
- bl LoadWordFromTwoHalfwords
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0809337C
- ldr r2, _08093378 @ =gUnknown_0202FFC0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- adds r0, r5, 0
- adds r0, 0x64
- movs r2, 0x38
- bl memcpy
- b _08093384
- .align 2, 0
-_0809336C: .4byte nullsub_60
-_08093370: .4byte gTasks
-_08093374: .4byte 0x02000000
-_08093378: .4byte gUnknown_0202FFC0
-_0809337C:
- adds r0, r5, 0
- adds r0, 0x64
- bl sub_8093390
-_08093384:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8093324
-
- thumb_func_start nullsub_60
-nullsub_60: @ 809338C
- bx lr
- thumb_func_end nullsub_60
-
- thumb_func_start sub_8093390
-sub_8093390: @ 8093390
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _080934A4 @ =gSaveBlock2
- ldrb r0, [r6, 0x8]
- strb r0, [r5]
- ldrh r0, [r6, 0xE]
- strh r0, [r5, 0x10]
- ldrb r0, [r6, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0x1
- bl sub_8053108
- adds r4, r0, 0
- movs r0, 0xA
- bl sub_8053108
- cmp r0, 0
- bne _080933B6
- movs r4, 0
-_080933B6:
- lsrs r0, r4, 16
- strh r0, [r5, 0x6]
- lsrs r0, r4, 8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x8]
- ands r4, r1
- strh r4, [r5, 0xA]
- ldr r0, _080934A8 @ =0x00000801
- bl FlagGet
- strb r0, [r5, 0x2]
- bl sub_8090FC0
- strb r0, [r5, 0x3]
- bl GetPokedexSeenCount
- strh r0, [r5, 0xC]
- ldrb r1, [r6, 0xB]
- lsls r1, 8
- ldrb r0, [r6, 0xA]
- orrs r0, r1
- strh r0, [r5, 0xE]
- ldr r7, _080934AC @ =0x0000270f
- movs r0, 0x17
- adds r1, r7, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x14]
- movs r0, 0x18
- adds r1, r7, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x16]
- ldr r1, _080934B0 @ =0x000003e7
- movs r0, 0x23
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x1C]
- ldr r4, _080934B4 @ =0x0000ffff
- movs r0, 0x22
- adds r1, r4, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x1E]
- movs r0, 0x15
- adds r1, r4, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x20]
- movs r1, 0xAE
- lsls r1, 3
- adds r0, r6, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x18]
- ldr r2, _080934B8 @ =0x00000572
- adds r1, r6, r2
- ldrh r1, [r1]
- strh r1, [r5, 0x1A]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bls _08093436
- strh r7, [r5, 0x18]
-_08093436:
- ldrh r0, [r5, 0x1A]
- cmp r0, r7
- bls _0809343E
- strh r7, [r5, 0x1A]
-_0809343E:
- movs r4, 0
- bl sub_80C4D50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0809344E
- movs r4, 0x1
-_0809344E:
- strb r4, [r5, 0x4]
- ldr r0, _080934BC @ =gSaveBlock1
- movs r2, 0x92
- lsls r2, 3
- adds r1, r0, r2
- ldr r1, [r1]
- str r1, [r5, 0x24]
- movs r2, 0
- adds r6, r5, 0
- adds r6, 0x30
- adds r3, r5, 0
- adds r3, 0x28
- ldr r1, _080934C0 @ =0x00002b1c
- adds r4, r0, r1
-_0809346A:
- lsls r0, r2, 1
- adds r1, r3, r0
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0809346A
- movs r2, 0
- adds r3, r6, 0
- ldr r4, _080934A4 @ =gSaveBlock2
-_08093484:
- adds r1, r3, r2
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _08093484
- adds r0, r5, 0
- bl sub_80934F4
- strb r0, [r5, 0x1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080934A4: .4byte gSaveBlock2
-_080934A8: .4byte 0x00000801
-_080934AC: .4byte 0x0000270f
-_080934B0: .4byte 0x000003e7
-_080934B4: .4byte 0x0000ffff
-_080934B8: .4byte 0x00000572
-_080934BC: .4byte gSaveBlock1
-_080934C0: .4byte 0x00002b1c
- thumb_func_end sub_8093390
-
- thumb_func_start sub_80934C4
-sub_80934C4: @ 80934C4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080934D8 @ =gUnknown_0202FFC0
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080934D8: .4byte gUnknown_0202FFC0
- thumb_func_end sub_80934C4
-
- thumb_func_start sav12_xor_get_clamped_above
-sav12_xor_get_clamped_above: @ 80934DC
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8053108
- cmp r0, r4
- bls _080934EE
- adds r0, r4, 0
-_080934EE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sav12_xor_get_clamped_above
-
- thumb_func_start sub_80934F4
-sub_80934F4: @ 80934F4
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- ldrh r0, [r1, 0x6]
- cmp r0, 0
- bne _08093506
- ldr r0, [r1, 0x8]
- cmp r0, 0
- beq _08093508
-_08093506:
- movs r2, 0x1
-_08093508:
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- beq _08093514
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08093514:
- ldrh r0, [r1, 0x1A]
- cmp r0, 0x31
- bls _08093520
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08093520:
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809352C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_0809352C:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80934F4
-
- thumb_func_start sub_8093534
-sub_8093534: @ 8093534
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end sub_8093534
-
- thumb_func_start sub_8093550
-sub_8093550: @ 8093550
- push {r4,lr}
- ldr r0, _08093588 @ =sub_8093254
- bl SetVBlankCallback
- ldr r3, _0809358C @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08093590 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08093594 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093588: .4byte sub_8093254
-_0809358C: .4byte 0x04000208
-_08093590: .4byte 0x04000200
-_08093594: .4byte REG_DISPSTAT
- thumb_func_end sub_8093550
-
- thumb_func_start sub_8093598
-sub_8093598: @ 8093598
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _080935E4 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080935E8 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080935B6:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _080935B6
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080935E4: .4byte 0x040000d4
-_080935E8: .4byte 0x81000800
- thumb_func_end sub_8093598
-
- thumb_func_start sub_80935EC
-sub_80935EC: @ 80935EC
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08093608 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809360C @ =0x81000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08093608: .4byte 0x040000d4
-_0809360C: .4byte 0x81000200
- thumb_func_end sub_80935EC
-
- thumb_func_start sub_8093610
-sub_8093610: @ 8093610
- push {r4,r5,lr}
- ldr r5, _08093664 @ =REG_BG0CNT
- movs r1, 0
- strh r1, [r5]
- ldr r2, _08093668 @ =REG_BG1CNT
- strh r1, [r2]
- ldr r3, _0809366C @ =REG_BG2CNT
- strh r1, [r3]
- ldr r4, _08093670 @ =REG_BG3CNT
- strh r1, [r4]
- ldr r0, _08093674 @ =REG_BG0HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08093678 @ =0x00001e08
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _0809367C @ =0x00000801
- adds r0, r1, 0
- strh r0, [r2]
- ldr r1, _08093680 @ =0x00000902
- adds r0, r1, 0
- strh r0, [r3]
- ldr r1, _08093684 @ =0x00000a03
- adds r0, r1, 0
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08093664: .4byte REG_BG0CNT
-_08093668: .4byte REG_BG1CNT
-_0809366C: .4byte REG_BG2CNT
-_08093670: .4byte REG_BG3CNT
-_08093674: .4byte REG_BG0HOFS
-_08093678: .4byte 0x00001e08
-_0809367C: .4byte 0x00000801
-_08093680: .4byte 0x00000902
-_08093684: .4byte 0x00000a03
- thumb_func_end sub_8093610
-
- thumb_func_start sub_8093688
-sub_8093688: @ 8093688
- push {r4-r6,lr}
- bl sub_8093324
- ldr r2, _080936D0 @ =0x02000000
- movs r1, 0
- strb r1, [r2]
- strb r1, [r2, 0x3]
- strb r1, [r2, 0x4]
- adds r0, r2, 0
- adds r0, 0x65
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- strb r1, [r2, 0x5]
- strb r1, [r2, 0x6]
- movs r4, 0
- adds r6, r2, 0
- adds r6, 0x20
- adds r5, r2, 0
- adds r5, 0x8C
-_080936AE:
- lsls r0, r4, 4
- adds r0, r6
- lsls r1, r4, 1
- adds r1, r5, r1
- ldrh r1, [r1]
- bl sub_80EB3FC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080936AE
- bl sub_80936D4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080936D0: .4byte 0x02000000
- thumb_func_end sub_8093688
-
- thumb_func_start sub_80936D4
-sub_80936D4: @ 80936D4
- push {r4-r6,lr}
- ldr r4, _08093798 @ =0x02000000
- movs r0, 0
- strb r0, [r4, 0x7]
- strb r0, [r4, 0x8]
- strb r0, [r4, 0x9]
- strb r0, [r4, 0xA]
- strb r0, [r4, 0xB]
- strb r0, [r4, 0xC]
- strb r0, [r4, 0xD]
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r4, 0
- adds r0, 0x66
- ldrb r0, [r0]
- cmp r0, 0
- beq _08093704
- ldrb r0, [r4, 0x7]
- adds r0, 0x1
- strb r0, [r4, 0x7]
-_08093704:
- adds r0, r4, 0
- adds r0, 0x6A
- ldrh r0, [r0]
- cmp r0, 0
- bne _08093714
- ldr r0, [r4, 0x6C]
- cmp r0, 0
- beq _0809371A
-_08093714:
- ldrb r0, [r4, 0x8]
- adds r0, 0x1
- strb r0, [r4, 0x8]
-_0809371A:
- ldr r1, _08093798 @ =0x02000000
- ldr r0, [r1, 0x78]
- cmp r0, 0
- beq _08093728
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
-_08093728:
- ldr r0, [r1, 0x7C]
- cmp r0, 0
- beq _08093734
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_08093734:
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093744
- ldrb r0, [r1, 0xB]
- adds r0, 0x1
- strb r0, [r1, 0xB]
-_08093744:
- adds r0, r1, 0
- adds r0, 0x82
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093754
- ldrb r0, [r1, 0xC]
- adds r0, 0x1
- strb r0, [r1, 0xC]
-_08093754:
- adds r0, r1, 0
- adds r0, 0x84
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093764
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
-_08093764:
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08093792
- movs r5, 0
- ldr r4, _0809379C @ =0x00000807
- adds r6, r1, 0
- adds r6, 0xE
-_08093772:
- lsls r0, r4, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08093788
- adds r1, r5, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08093788:
- adds r4, 0x1
- adds r5, 0x1
- ldr r0, _080937A0 @ =0x0000080e
- cmp r4, r0
- bls _08093772
-_08093792:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08093798: .4byte 0x02000000
-_0809379C: .4byte 0x00000807
-_080937A0: .4byte 0x0000080e
- thumb_func_end sub_80936D4
-
- thumb_func_start sub_80937A4
-sub_80937A4: @ 80937A4
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- thumb_func_end sub_80937A4
-
- thumb_func_start sub_80937BC
-sub_80937BC: @ 80937BC
- push {r4,lr}
- ldr r4, _080937D4 @ =gWindowConfig_81E6DC4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl MultistepInitMenuWindowBegin
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080937D4: .4byte gWindowConfig_81E6DC4
- thumb_func_end sub_80937BC
-
- thumb_func_start sub_80937D8
-sub_80937D8: @ 80937D8
- push {lr}
- bl sub_8093E04
- bl sub_8093E28
- bl sub_8093F64
- bl sub_8093DAC
- pop {r0}
- bx r0
- thumb_func_end sub_80937D8
-
- thumb_func_start sub_80937F0
-sub_80937F0: @ 80937F0
- push {lr}
- bl sub_8093EF8
- pop {r0}
- bx r0
- thumb_func_end sub_80937F0
-
- thumb_func_start nullsub_15
-nullsub_15: @ 80937FC
- bx lr
- thumb_func_end nullsub_15
-
- thumb_func_start sub_8093800
-sub_8093800: @ 8093800
- push {lr}
- bl sub_809380C
- pop {r0}
- bx r0
- thumb_func_end sub_8093800
-
- thumb_func_start sub_809380C
-sub_809380C: @ 809380C
- push {r4,lr}
- ldr r4, _08093828 @ =sub_809382C
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093828: .4byte sub_809382C
- thumb_func_end sub_809380C
-
- thumb_func_start sub_809382C
-sub_809382C: @ 809382C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08093858 @ =gUnknown_083B5EBC
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _0809385C @ =0x02000000
- ldr r5, _08093860 @ =gTasks
-_0809383E:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0809383E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093858: .4byte gUnknown_083B5EBC
-_0809385C: .4byte 0x02000000
-_08093860: .4byte gTasks
- thumb_func_end sub_809382C
-
- thumb_func_start sub_8093864
-sub_8093864: @ 8093864
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _080938A0 @ =0x02000000
- ldr r2, _080938A4 @ =gSaveBlock2
- ldrb r1, [r2, 0x11]
- movs r0, 0x1
- ands r0, r1
- movs r5, 0
- strb r0, [r4, 0x5]
- ldrb r0, [r2, 0x12]
- strb r0, [r4, 0x6]
- bl sub_80939A4
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080938A0: .4byte 0x02000000
-_080938A4: .4byte gSaveBlock2
- thumb_func_end sub_8093864
-
- thumb_func_start sub_80938A8
-sub_80938A8: @ 80938A8
- push {lr}
- ldr r0, _080938C4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080938BE
- ldr r1, _080938C8 @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080938BE:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080938C4: .4byte gPaletteFade
-_080938C8: .4byte 0x02000000
- thumb_func_end sub_80938A8
-
- thumb_func_start sub_80938CC
-sub_80938CC: @ 80938CC
- push {lr}
- ldr r0, _080938E4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080938EC
- ldr r1, _080938E8 @ =0x02000000
- movs r0, 0x5
- strb r0, [r1]
- movs r0, 0x1
- b _08093914
- .align 2, 0
-_080938E4: .4byte gMain
-_080938E8: .4byte 0x02000000
-_080938EC:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093912
- ldr r2, _08093900 @ =0x02000000
- ldrb r1, [r2, 0x3]
- cmp r1, 0
- beq _08093904
- movs r0, 0x5
- b _0809390C
- .align 2, 0
-_08093900: .4byte 0x02000000
-_08093904:
- movs r0, 0x1
- eors r0, r1
- strb r0, [r2, 0x3]
- movs r0, 0x3
-_0809390C:
- strb r0, [r2]
- movs r0, 0x1
- b _08093914
-_08093912:
- movs r0, 0
-_08093914:
- pop {r1}
- bx r1
- thumb_func_end sub_80938CC
-
- thumb_func_start sub_8093918
-sub_8093918: @ 8093918
- push {lr}
- bl sub_8093A28
- movs r0, 0x36
- bl PlaySE
- ldr r1, _08093934 @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093934: .4byte 0x02000000
- thumb_func_end sub_8093918
-
- thumb_func_start sub_8093938
-sub_8093938: @ 8093938
- push {lr}
- bl sub_8093A48
- lsls r0, 24
- cmp r0, 0
- beq _0809394A
- ldr r1, _08093950 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1]
-_0809394A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093950: .4byte 0x02000000
- thumb_func_end sub_8093938
-
- thumb_func_start sub_8093954
-sub_8093954: @ 8093954
- push {lr}
- sub sp, 0x4
- bl sub_80939C0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809397C @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_0809397C: .4byte 0x02000000
- thumb_func_end sub_8093954
-
- thumb_func_start sub_8093980
-sub_8093980: @ 8093980
- push {lr}
- ldr r0, _0809399C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08093996
- ldr r0, _080939A0 @ =0x02000000
- ldr r0, [r0, 0x60]
- bl SetMainCallback2
-_08093996:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809399C: .4byte gPaletteFade
-_080939A0: .4byte 0x02000000
- thumb_func_end sub_8093980
-
- thumb_func_start sub_80939A4
-sub_80939A4: @ 80939A4
- push {lr}
- ldr r0, _080939B8 @ =sub_80939DC
- movs r1, 0
- bl CreateTask
- ldr r0, _080939BC @ =gWindowConfig_81E6DC4
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080939B8: .4byte sub_80939DC
-_080939BC: .4byte gWindowConfig_81E6DC4
- thumb_func_end sub_80939A4
-
- thumb_func_start sub_80939C0
-sub_80939C0: @ 80939C0
- push {lr}
- ldr r0, _080939D8 @ =sub_80939DC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080939D4
- bl DestroyTask
-_080939D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080939D8: .4byte sub_80939DC
- thumb_func_end sub_80939C0
-
- thumb_func_start sub_80939DC
-sub_80939DC: @ 80939DC
- push {lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08093A20 @ =gTasks
- adds r2, r1, r0
- ldr r0, _08093A24 @ =0x02000000
- ldrb r1, [r0, 0x5]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r1, r0
- beq _08093A04
- strh r1, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r2, 0x8]
-_08093A04:
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- mov r0, sp
- bl sub_8094250
- mov r0, sp
- movs r1, 0xA
- movs r2, 0xC
- bl MenuPrint
- add sp, 0x20
- pop {r0}
- bx r0
- .align 2, 0
-_08093A20: .4byte gTasks
-_08093A24: .4byte 0x02000000
- thumb_func_end sub_80939DC
-
- thumb_func_start sub_8093A28
-sub_8093A28: @ 8093A28
- push {r4,lr}
- ldr r4, _08093A44 @ =sub_8093A68
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093A44: .4byte sub_8093A68
- thumb_func_end sub_8093A28
-
- thumb_func_start sub_8093A48
-sub_8093A48: @ 8093A48
- push {lr}
- ldr r0, _08093A5C @ =sub_8093A68
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08093A60
- movs r0, 0
- b _08093A62
- .align 2, 0
-_08093A5C: .4byte sub_8093A68
-_08093A60:
- movs r0, 0x1
-_08093A62:
- pop {r1}
- bx r1
- thumb_func_end sub_8093A48
-
- thumb_func_start sub_8093A68
-sub_8093A68: @ 8093A68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08093A98 @ =gUnknown_083B5ED8
- ldr r2, _08093A9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08093A7A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08093A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08093A98: .4byte gUnknown_083B5ED8
-_08093A9C: .4byte gTasks
- thumb_func_end sub_8093A68
-
- thumb_func_start sub_8093AA0
-sub_8093AA0: @ 8093AA0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08093AE0 @ =0x02000000
- movs r1, 0
- strb r1, [r0, 0x4]
- bl dp12_8087EA4
- movs r1, 0
- ldr r0, _08093AE4 @ =gUnknown_03004DE0
- ldr r2, _08093AE8 @ =0x0000fffc
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
-_08093ABA:
- strh r2, [r0]
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- bls _08093ABA
- ldr r0, _08093AEC @ =sub_8093D7C
- bl SetHBlankCallback
- ldr r1, _08093AE0 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08093AE0: .4byte 0x02000000
-_08093AE4: .4byte gUnknown_03004DE0
-_08093AE8: .4byte 0x0000fffc
-_08093AEC: .4byte sub_8093D7C
- thumb_func_end sub_8093AA0
-
- thumb_func_start sub_8093AF0
-sub_8093AF0: @ 8093AF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- ldr r1, _08093BFC @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x4]
- mov r2, r8
- ldrh r0, [r2, 0xA]
- adds r0, 0x3
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _08093B18
- movs r0, 0x4F
- strh r0, [r2, 0xA]
-_08093B18:
- mov r4, r8
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r0, 0xA0
- subs r0, r7
- mov r9, r0
- subs r4, r0, r7
- negs r0, r7
- lsls r6, r0, 16
- movs r0, 0xA0
- lsls r0, 16
- adds r1, r4, 0
- bl __udivsi3
- adds r5, r0, 0
- ldr r1, _08093C00 @ =0xffff0000
- adds r5, r1
- adds r0, r5, 0
- muls r0, r4
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl __udivsi3
- str r0, [sp]
- lsls r5, 1
- movs r3, 0
- cmp r3, r7
- bcs _08093B74
- ldr r2, _08093C04 @ =gUnknown_03004DE0
- mov r12, r2
- ldr r0, _08093C08 @ =0x0000fffc
- adds r4, r0, 0
-_08093B5C:
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, r0, 1
- add r1, r12
- subs r2, r4, r0
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, r7
- bcc _08093B5C
-_08093B74:
- lsls r2, r3, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r4, r10
- lsrs r7, r4, 16
- cmp r2, r0
- bge _08093BAE
- ldr r0, _08093C04 @ =gUnknown_03004DE0
- mov r9, r0
- ldr r4, _08093C08 @ =0x0000fffc
- mov r12, r4
- adds r4, r1, 0
-_08093B8E:
- lsrs r1, r6, 16
- adds r6, r5
- ldr r0, [sp]
- subs r5, r0
- asrs r2, 16
- lsls r0, r2, 1
- add r0, r9
- add r1, r12
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _08093B8E
-_08093BAE:
- adds r1, r7, 0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x9F
- bgt _08093BD4
- ldr r4, _08093C04 @ =gUnknown_03004DE0
- ldr r0, _08093C08 @ =0x0000fffc
- adds r2, r1, r0
-_08093BBE:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x9F
- ble _08093BBE
-_08093BD4:
- movs r0, 0x1
- ldr r1, _08093BFC @ =0x02000000
- strb r0, [r1, 0x4]
- mov r2, r8
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r0, 0x4A
- ble _08093BEA
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08093BEA:
- movs r0, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08093BFC: .4byte 0x02000000
-_08093C00: .4byte 0xffff0000
-_08093C04: .4byte gUnknown_03004DE0
-_08093C08: .4byte 0x0000fffc
- thumb_func_end sub_8093AF0
-
- thumb_func_start sub_8093C0C
-sub_8093C0C: @ 8093C0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80939C0
- bl sub_8093DAC
- ldr r0, _08093C34 @ =0x02000000
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- bne _08093C24
- bl sub_80939A4
-_08093C24:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08093C34: .4byte 0x02000000
- thumb_func_end sub_8093C0C
-
- thumb_func_start sub_8093C38
-sub_8093C38: @ 8093C38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- ldr r1, _08093D40 @ =0x02000000
- movs r2, 0
- strb r2, [r1, 0x4]
- ldrh r0, [r0, 0xA]
- subs r0, 0x3
- mov r3, r8
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _08093C5C
- strh r2, [r3, 0xA]
-_08093C5C:
- mov r4, r8
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r0, 0xA0
- subs r0, r7
- mov r9, r0
- subs r4, r0, r7
- negs r0, r7
- lsls r6, r0, 16
- movs r0, 0xA0
- lsls r0, 16
- adds r1, r4, 0
- bl __udivsi3
- adds r5, r0, 0
- ldr r1, _08093D44 @ =0xffff0000
- adds r5, r1
- adds r0, r5, 0
- muls r0, r4
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl __udivsi3
- str r0, [sp]
- lsrs r5, 1
- movs r3, 0
- cmp r3, r7
- bcs _08093CB8
- ldr r2, _08093D48 @ =gUnknown_03004DE0
- mov r12, r2
- ldr r0, _08093D4C @ =0x0000fffc
- adds r4, r0, 0
-_08093CA0:
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, r0, 1
- add r1, r12
- subs r2, r4, r0
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, r7
- bcc _08093CA0
-_08093CB8:
- lsls r2, r3, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r4, r10
- lsrs r7, r4, 16
- cmp r2, r0
- bge _08093CF2
- ldr r0, _08093D48 @ =gUnknown_03004DE0
- mov r9, r0
- ldr r3, _08093D4C @ =0x0000fffc
- mov r12, r3
- adds r4, r1, 0
-_08093CD2:
- lsrs r1, r6, 16
- adds r6, r5
- ldr r0, [sp]
- adds r5, r0
- asrs r2, 16
- lsls r0, r2, 1
- add r0, r9
- add r1, r12
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _08093CD2
-_08093CF2:
- adds r1, r7, 0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x9F
- bgt _08093D18
- ldr r4, _08093D48 @ =gUnknown_03004DE0
- ldr r0, _08093D4C @ =0x0000fffc
- adds r2, r1, r0
-_08093D02:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x9F
- ble _08093D02
-_08093D18:
- movs r0, 0x1
- ldr r1, _08093D40 @ =0x02000000
- strb r0, [r1, 0x4]
- mov r2, r8
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bgt _08093D2E
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08093D2E:
- movs r0, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08093D40: .4byte 0x02000000
-_08093D44: .4byte 0xffff0000
-_08093D48: .4byte gUnknown_03004DE0
-_08093D4C: .4byte 0x0000fffc
- thumb_func_end sub_8093C38
-
- thumb_func_start sub_8093D50
-sub_8093D50: @ 8093D50
- push {lr}
- ldr r1, _08093D74 @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x4]
- bl SetHBlankCallback
- bl sub_8093E04
- ldr r0, _08093D78 @ =sub_8093A68
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093D74: .4byte 0x02000000
-_08093D78: .4byte sub_8093A68
- thumb_func_end sub_8093D50
-
- thumb_func_start sub_8093D7C
-sub_8093D7C: @ 8093D7C
- ldr r1, _08093DA0 @ =gUnknown_03004DE0
- ldr r0, _08093DA4 @ =REG_VCOUNT
- ldrh r2, [r0]
- movs r0, 0xFF
- ands r0, r2
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08093DA8 @ =REG_BG0VOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08093DA0: .4byte gUnknown_03004DE0
-_08093DA4: .4byte REG_VCOUNT
-_08093DA8: .4byte REG_BG0VOFS
- thumb_func_end sub_8093D7C
-
- thumb_func_start sub_8093DAC
-sub_8093DAC: @ 8093DAC
- push {lr}
- ldr r0, _08093DBC @ =0x02000000
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _08093DC0
- bl sub_8093DEC
- b _08093DC4
- .align 2, 0
-_08093DBC: .4byte 0x02000000
-_08093DC0:
- bl sub_8093DC8
-_08093DC4:
- pop {r0}
- bx r0
- thumb_func_end sub_8093DAC
-
- thumb_func_start sub_8093DC8
-sub_8093DC8: @ 8093DC8
- push {lr}
- bl MenuZeroFillScreen
- bl sub_80940E4
- bl sub_8093F14
- bl sub_8093F80
- bl sub_8093FD0
- bl sub_8094038
- bl sub_8094140
- pop {r0}
- bx r0
- thumb_func_end sub_8093DC8
-
- thumb_func_start sub_8093DEC
-sub_8093DEC: @ 8093DEC
- push {lr}
- bl MenuZeroFillScreen
- bl sub_80940E4
- bl sub_8093F48
- bl sub_8094188
- pop {r0}
- bx r0
- thumb_func_end sub_8093DEC
-
- thumb_func_start sub_8093E04
-sub_8093E04: @ 8093E04
- ldr r0, _08093E20 @ =REG_BG0VOFS
- ldr r2, _08093E24 @ =0x0000fffc
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- movs r2, 0
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08093E20: .4byte REG_BG0VOFS
-_08093E24: .4byte 0x0000fffc
- thumb_func_end sub_8093E04
-
- thumb_func_start sub_8093E28
-sub_8093E28: @ 8093E28
- push {r4-r7,lr}
- bl sub_8093EA0
- ldr r0, _08093E84 @ =gUnknown_083B5F6C
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r3, _08093E88 @ =gMenuTrainerCard_Gfx
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0xA4
- lsls r5, 5
- ldr r1, _08093E8C @ =0x040000d4
- ldr r6, _08093E90 @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08093E4E:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08093E4E
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08093E94 @ =gBadgesTiles
- ldr r2, _08093E98 @ =0x06001480
- ldr r0, _08093E8C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08093E9C @ =0x80000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093E84: .4byte gUnknown_083B5F6C
-_08093E88: .4byte gMenuTrainerCard_Gfx
-_08093E8C: .4byte 0x040000d4
-_08093E90: .4byte 0x80000800
-_08093E94: .4byte gBadgesTiles
-_08093E98: .4byte 0x06001480
-_08093E9C: .4byte 0x80000200
- thumb_func_end sub_8093E28
-
- thumb_func_start sub_8093EA0
-sub_8093EA0: @ 8093EA0
- push {r4,lr}
- ldr r1, _08093EE4 @ =gUnknown_083B5EF8
- ldr r4, _08093EE8 @ =0x02000000
- ldrb r0, [r4, 0x2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08093EEC @ =gBadgesPalette
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08093EF0 @ =gUnknown_083B5F4C
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x64
- ldrb r0, [r4]
- cmp r0, 0
- beq _08093EDC
- ldr r0, _08093EF4 @ =gUnknown_083B5F0C
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
-_08093EDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093EE4: .4byte gUnknown_083B5EF8
-_08093EE8: .4byte 0x02000000
-_08093EEC: .4byte gBadgesPalette
-_08093EF0: .4byte gUnknown_083B5F4C
-_08093EF4: .4byte gUnknown_083B5F0C
- thumb_func_end sub_8093EA0
-
- thumb_func_start sub_8093EF8
-sub_8093EF8: @ 8093EF8
- push {lr}
- ldr r0, _08093F0C @ =0x02000000
- adds r0, 0x64
- ldrb r0, [r0]
- ldr r2, _08093F10 @ =0x06001880
- movs r1, 0x50
- bl LoadTrainerGfx_TrainerCard
- pop {r0}
- bx r0
- .align 2, 0
-_08093F0C: .4byte 0x02000000
-_08093F10: .4byte 0x06001880
- thumb_func_end sub_8093EF8
-
- thumb_func_start sub_8093F14
-sub_8093F14: @ 8093F14
- push {lr}
- sub sp, 0x8
- ldr r0, _08093F3C @ =gUnknown_083B5EEC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _08093F40 @ =0x02000000
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, _08093F44 @ =0x06004800
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08093F3C: .4byte gUnknown_083B5EEC
-_08093F40: .4byte 0x02000000
-_08093F44: .4byte 0x06004800
- thumb_func_end sub_8093F14
-
- thumb_func_start sub_8093F48
-sub_8093F48: @ 8093F48
- push {lr}
- ldr r0, _08093F5C @ =gUnknown_08E8CFC0
- ldr r1, _08093F60 @ =0x06004800
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08093F5C: .4byte gUnknown_08E8CFC0
-_08093F60: .4byte 0x06004800
- thumb_func_end sub_8093F48
-
- thumb_func_start sub_8093F64
-sub_8093F64: @ 8093F64
- push {lr}
- ldr r0, _08093F78 @ =gUnknown_08E8D9C0
- ldr r1, _08093F7C @ =0x06005000
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08093F78: .4byte gUnknown_08E8D9C0
-_08093F7C: .4byte 0x06005000
- thumb_func_end sub_8093F64
-
- thumb_func_start sub_8093F80
-sub_8093F80: @ 8093F80
- push {r4-r7,lr}
- movs r5, 0xC4
- ldr r7, _08093FCC @ =0x06004000
- movs r1, 0x5
- movs r0, 0xA0
- lsls r0, 7
- adds r6, r0, 0
-_08093F8E:
- movs r0, 0x13
- lsls r3, r1, 16
- asrs r4, r3, 11
-_08093F94:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- adds r1, r7
- adds r0, r5, 0
- orrs r0, r6
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1A
- ble _08093F94
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _08093F8E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093FCC: .4byte 0x06004000
- thumb_func_end sub_8093F80
-
- thumb_func_start sub_8093FD0
-sub_8093FD0: @ 8093FD0
- push {r4-r6,lr}
- ldr r4, _0809402C @ =0x06004000
- movs r2, 0xF
- ldr r0, _08094030 @ =0x02000000
- ldrb r0, [r0, 0x2]
- adds r0, 0xF
- cmp r2, r0
- bge _08094002
- movs r6, 0xC0
- lsls r6, 1
- ldr r1, _08094034 @ =0x0000408f
- adds r5, r1, 0
- adds r3, r0, 0
-_08093FEA:
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- adds r0, r6
- strh r5, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r2, r1, 16
- asrs r1, 16
- cmp r1, r3
- blt _08093FEA
-_08094002:
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x12
- bgt _08094024
- movs r3, 0xC0
- lsls r3, 1
- movs r2, 0
-_08094010:
- asrs r0, r1, 16
- lsls r1, r0, 1
- adds r1, r4
- adds r1, r3
- strh r2, [r1]
- adds r0, 0x1
- lsls r1, r0, 16
- asrs r0, r1, 16
- cmp r0, 0x12
- ble _08094010
-_08094024:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809402C: .4byte 0x06004000
-_08094030: .4byte 0x02000000
-_08094034: .4byte 0x0000408f
- thumb_func_end sub_8093FD0
-
- thumb_func_start sub_8094038
-sub_8094038: @ 8094038
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _080940D0 @ =0x02000000
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080940C2
- ldr r0, _080940D4 @ =0x06004000
- mov r9, r0
- movs r0, 0
- movs r2, 0x4
- adds r1, 0xE
- mov r8, r1
- ldr r7, _080940D8 @ =gUnknown_083B5F8C
- movs r1, 0xC0
- lsls r1, 6
- adds r6, r1, 0
- adds r1, r7, 0x6
- mov r12, r1
-_08094060:
- lsls r0, 16
- asrs r4, r0, 16
- mov r1, r8
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r5, r2, 16
- cmp r0, 0
- beq _080940AE
- asrs r1, r5, 15
- add r1, r9
- movs r2, 0xF0
- lsls r2, 2
- adds r3, r1, r2
- lsls r2, r4, 3
- adds r0, r2, r7
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- ldr r0, _080940DC @ =0x000003c2
- adds r3, r1, r0
- adds r0, r7, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- adds r3, r1, r0
- adds r0, r7, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- ldr r0, _080940E0 @ =0x00000402
- adds r1, r0
- add r2, r12
- ldrh r0, [r2]
- orrs r0, r6
- strh r0, [r1]
-_080940AE:
- adds r1, r4, 0x1
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r5, r2
- lsrs r2, r0, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- ble _08094060
-_080940C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080940D0: .4byte 0x02000000
-_080940D4: .4byte 0x06004000
-_080940D8: .4byte gUnknown_083B5F8C
-_080940DC: .4byte 0x000003c2
-_080940E0: .4byte 0x00000402
- thumb_func_end sub_8094038
-
- thumb_func_start sub_80940E4
-sub_80940E4: @ 80940E4
- push {r4,lr}
- movs r2, 0
- ldr r1, _08094108 @ =0x06004000
- movs r4, 0
- ldr r3, _0809410C @ =0x000003ff
-_080940EE:
- strh r4, [r1]
- lsls r0, r2, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- adds r1, 0x2
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r3
- ble _080940EE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094108: .4byte 0x06004000
-_0809410C: .4byte 0x000003ff
- thumb_func_end sub_80940E4
-
- thumb_func_start sub_8094110
-sub_8094110: @ 8094110
- push {r4-r6,lr}
- ldr r6, _0809413C @ =0x06004800
- movs r2, 0x3
- movs r5, 0xA0
- lsls r5, 2
- movs r3, 0x1
- movs r4, 0xB0
- lsls r4, 2
-_08094120:
- lsls r0, r2, 1
- adds r0, r6
- adds r1, r0, r5
- strh r3, [r1]
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x10
- bls _08094120
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809413C: .4byte 0x06004800
- thumb_func_end sub_8094110
-
- thumb_func_start sub_8094140
-sub_8094140: @ 8094140
- push {r4,r5,lr}
- ldr r0, _0809417C @ =gWindowConfig_81E6DC4
- bl BasicInitMenuWindow
- ldr r4, _08094180 @ =gStringVar1
- ldr r5, _08094184 @ =0x02000094
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl ConvertInternationalString
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x5
- bl MenuPrint
- bl sub_80941D8
- bl sub_8094200
- bl sub_8094218
- bl sub_809429C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809417C: .4byte gWindowConfig_81E6DC4
-_08094180: .4byte gStringVar1
-_08094184: .4byte 0x02000094
- thumb_func_end sub_8094140
-
- thumb_func_start sub_8094188
-sub_8094188: @ 8094188
- push {lr}
- ldr r0, _080941D0 @ =gWindowConfig_81E6DC4
- bl BasicInitMenuWindow
- bl sub_80942F8
- bl sub_8094334
- bl sub_80943C4
- bl sub_8094428
- bl sub_8094498
- bl sub_80944E8
- bl sub_8094538
- ldr r0, _080941D4 @ =gWindowConfig_81E6DE0
- bl BasicInitMenuWindow
- bl sub_8094354
- bl sub_80943E4
- bl sub_8094448
- bl sub_80944B8
- bl sub_8094508
- bl sub_8094558
- pop {r0}
- bx r0
- .align 2, 0
-_080941D0: .4byte gWindowConfig_81E6DC4
-_080941D4: .4byte gWindowConfig_81E6DE0
- thumb_func_end sub_8094188
-
- thumb_func_start sub_80941D8
-sub_80941D8: @ 80941D8
- push {lr}
- sub sp, 0x8
- ldr r0, _080941FC @ =0x02000000
- adds r0, 0x72
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x14
- movs r2, 0x2
- bl MenuPrint
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080941FC: .4byte 0x02000000
- thumb_func_end sub_80941D8
-
- thumb_func_start sub_8094200
-sub_8094200: @ 8094200
- push {lr}
- ldr r0, _08094214 @ =0x02000000
- adds r0, 0x88
- ldr r0, [r0]
- movs r1, 0x10
- movs r2, 0x8
- bl sub_80B7AEC
- pop {r0}
- bx r0
- .align 2, 0
-_08094214: .4byte 0x02000000
- thumb_func_end sub_8094200
-
- thumb_func_start sub_8094218
-sub_8094218: @ 8094218
- push {lr}
- sub sp, 0x10
- ldr r1, _0809422C @ =0x02000000
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- bne _08094230
- bl sub_8094110
- b _0809424A
- .align 2, 0
-_0809422C: .4byte 0x02000000
-_08094230:
- adds r0, r1, 0
- adds r0, 0x70
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x10
- movs r2, 0xA
- bl MenuPrint_RightAligned
-_0809424A:
- add sp, 0x10
- pop {r0}
- bx r0
- thumb_func_end sub_8094218
-
- thumb_func_start sub_8094250
-sub_8094250: @ 8094250
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r0, _08094294 @ =gSaveBlock2
- ldrh r4, [r0, 0xE]
- ldrb r2, [r0, 0x10]
- ldr r1, _08094298 @ =0x02000000
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _08094272
- adds r0, r1, 0
- adds r0, 0x74
- ldrh r4, [r0]
- adds r0, 0x2
- ldrh r2, [r0]
-_08094272:
- lsls r3, 16
- asrs r3, 16
- mov r0, sp
- adds r1, r4, 0
- bl FormatPlayTime
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C74
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094294: .4byte gSaveBlock2
-_08094298: .4byte 0x02000000
- thumb_func_end sub_8094250
-
- thumb_func_start sub_809429C
-sub_809429C: @ 809429C
- push {r4-r6,lr}
- ldr r6, _080942F0 @ =0x02000000
- ldrb r0, [r6, 0x1]
- cmp r0, 0
- beq _080942EA
- ldr r0, _080942F4 @ =gStringVar1
- adds r1, r6, 0
- adds r1, 0x20
- bl StringCopy
- movs r5, 0
- strb r5, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- adds r1, 0x30
- bl StringCopy
- ldr r4, _080942F4 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xE
- bl MenuPrint
- adds r1, r6, 0
- adds r1, 0x40
- adds r0, r4, 0
- bl StringCopy
- strb r5, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- adds r1, 0x50
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x10
- bl MenuPrint
-_080942EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080942F0: .4byte 0x02000000
-_080942F4: .4byte gStringVar1
- thumb_func_end sub_809429C
-
- thumb_func_start sub_80942F8
-sub_80942F8: @ 80942F8
- push {r4,r5,lr}
- ldr r4, _08094328 @ =gStringVar1
- ldr r5, _0809432C @ =0x02000094
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r1, _08094330 @ =gOtherText_TrainersTrainerCard
- adds r0, r4, 0
- bl StringAppend
- adds r0, r4, 0
- movs r1, 0x1C
- movs r2, 0x2
- bl MenuPrint_RightAligned
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094328: .4byte gStringVar1
-_0809432C: .4byte 0x02000094
-_08094330: .4byte gOtherText_TrainersTrainerCard
- thumb_func_end sub_80942F8
-
- thumb_func_start sub_8094334
-sub_8094334: @ 8094334
- push {lr}
- ldr r0, _0809434C @ =0x02000000
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _08094348
- ldr r0, _08094350 @ =gOtherText_FirstHOF
- movs r1, 0x3
- movs r2, 0x5
- bl MenuPrint
-_08094348:
- pop {r0}
- bx r0
- .align 2, 0
-_0809434C: .4byte 0x02000000
-_08094350: .4byte gOtherText_FirstHOF
- thumb_func_end sub_8094334
-
- thumb_func_start sub_8094354
-sub_8094354: @ 8094354
- push {r4,r5,lr}
- ldr r5, _080943B8 @ =0x02000000
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- beq _080943B0
- ldr r2, _080943BC @ =gStringVar1
- adds r0, r5, 0
- adds r0, 0x6A
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- ldr r4, _080943C0 @ =gUnknown_083B5EF4
- adds r1, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r5, 0
- adds r0, 0x6C
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- adds r1, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r5, 0
- adds r0, 0x6E
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080943BC @ =gStringVar1
- movs r1, 0x1C
- movs r2, 0x5
- bl MenuPrint_RightAligned
-_080943B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080943B8: .4byte 0x02000000
-_080943BC: .4byte gStringVar1
-_080943C0: .4byte gUnknown_083B5EF4
- thumb_func_end sub_8094354
-
- thumb_func_start sub_80943C4
-sub_80943C4: @ 80943C4
- push {lr}
- ldr r0, _080943DC @ =0x02000000
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _080943D8
- ldr r0, _080943E0 @ =gOtherText_LinkCableBattles
- movs r1, 0x3
- movs r2, 0x7
- bl MenuPrint
-_080943D8:
- pop {r0}
- bx r0
- .align 2, 0
-_080943DC: .4byte 0x02000000
-_080943E0: .4byte gOtherText_LinkCableBattles
- thumb_func_end sub_80943C4
-
- thumb_func_start sub_80943E4
-sub_80943E4: @ 80943E4
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08094424 @ =0x02000000
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809441C
- adds r0, r4, 0
- adds r0, 0x78
- ldrh r1, [r0]
- mov r0, sp
- bl ConvertIntToDecimalString
- mov r0, sp
- movs r1, 0x16
- movs r2, 0x7
- bl MenuPrint_RightAligned
- adds r0, r4, 0
- adds r0, 0x7A
- ldrh r1, [r0]
- mov r0, sp
- bl ConvertIntToDecimalString
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0x7
- bl MenuPrint_RightAligned
-_0809441C:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094424: .4byte 0x02000000
- thumb_func_end sub_80943E4
-
- thumb_func_start sub_8094428
-sub_8094428: @ 8094428
- push {lr}
- ldr r0, _08094440 @ =0x02000000
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0809443C
- ldr r0, _08094444 @ =gOtherText_BattleTowerWinRecord
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
-_0809443C:
- pop {r0}
- bx r0
- .align 2, 0
-_08094440: .4byte 0x02000000
-_08094444: .4byte gOtherText_BattleTowerWinRecord
- thumb_func_end sub_8094428
-
- thumb_func_start sub_8094448
-sub_8094448: @ 8094448
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08094494 @ =0x02000000
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _0809448C
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- mov r0, sp
- movs r1, 0x70
- movs r2, 0x78
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r4, 0
- adds r0, 0x7E
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- mov r0, sp
- movs r1, 0x95
- movs r2, 0x78
- movs r3, 0
- bl MenuPrint_PixelCoords
-_0809448C:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094494: .4byte 0x02000000
- thumb_func_end sub_8094448
-
- thumb_func_start sub_8094498
-sub_8094498: @ 8094498
- push {lr}
- ldr r0, _080944B0 @ =0x02000000
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- beq _080944AC
- ldr r0, _080944B4 @ =gOtherText_ContestRecord
- movs r1, 0x3
- movs r2, 0xD
- bl MenuPrint
-_080944AC:
- pop {r0}
- bx r0
- .align 2, 0
-_080944B0: .4byte 0x02000000
-_080944B4: .4byte gOtherText_ContestRecord
- thumb_func_end sub_8094498
-
- thumb_func_start sub_80944B8
-sub_80944B8: @ 80944B8
- push {lr}
- sub sp, 0x8
- ldr r1, _080944E4 @ =0x02000000
- ldrb r0, [r1, 0xB]
- cmp r0, 0
- beq _080944DE
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0xD
- bl MenuPrint_RightAligned
-_080944DE:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080944E4: .4byte 0x02000000
- thumb_func_end sub_80944B8
-
- thumb_func_start sub_80944E8
-sub_80944E8: @ 80944E8
- push {lr}
- ldr r0, _08094500 @ =0x02000000
- ldrb r0, [r0, 0xC]
- cmp r0, 0
- beq _080944FC
- ldr r0, _08094504 @ =gOtherText_MixingRecord
- movs r1, 0x3
- movs r2, 0xB
- bl MenuPrint
-_080944FC:
- pop {r0}
- bx r0
- .align 2, 0
-_08094500: .4byte 0x02000000
-_08094504: .4byte gOtherText_MixingRecord
- thumb_func_end sub_80944E8
-
- thumb_func_start sub_8094508
-sub_8094508: @ 8094508
- push {lr}
- sub sp, 0x8
- ldr r1, _08094534 @ =0x02000000
- ldrb r0, [r1, 0xC]
- cmp r0, 0
- beq _0809452E
- adds r0, r1, 0
- adds r0, 0x82
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0xB
- bl MenuPrint_RightAligned
-_0809452E:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08094534: .4byte 0x02000000
- thumb_func_end sub_8094508
-
- thumb_func_start sub_8094538
-sub_8094538: @ 8094538
- push {lr}
- ldr r0, _08094550 @ =0x02000000
- ldrb r0, [r0, 0xD]
- cmp r0, 0
- beq _0809454C
- ldr r0, _08094554 @ =gOtherText_TradeRecord
- movs r1, 0x3
- movs r2, 0x9
- bl MenuPrint
-_0809454C:
- pop {r0}
- bx r0
- .align 2, 0
-_08094550: .4byte 0x02000000
-_08094554: .4byte gOtherText_TradeRecord
- thumb_func_end sub_8094538
-
- thumb_func_start sub_8094558
-sub_8094558: @ 8094558
- push {lr}
- sub sp, 0x8
- ldr r1, _08094584 @ =0x02000000
- ldrb r0, [r1, 0xD]
- cmp r0, 0
- beq _0809457E
- adds r0, r1, 0
- adds r0, 0x84
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0x9
- bl MenuPrint_RightAligned
-_0809457E:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08094584: .4byte 0x02000000
- thumb_func_end sub_8094558
-
- thumb_func_start unref_sub_8094588
-unref_sub_8094588: @ 8094588
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r4, _080945B4 @ =gOtherText_Boy
- ldr r0, _080945B8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0809459E
- ldr r4, _080945BC @ =gOtherText_Girl
-_0809459E:
- lsls r1, r3, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080945B4: .4byte gOtherText_Boy
-_080945B8: .4byte gSaveBlock2
-_080945BC: .4byte gOtherText_Girl
- thumb_func_end unref_sub_8094588
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/tv.s b/asm/tv.s
index f30663f93..fd5fdeeac 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -1,4 +1,5 @@
.include "constants/gba_constants.inc"
+ .include "constants/misc_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
@@ -637,7 +638,7 @@ sub_80BDC14: @ 80BDC14
adds r4, r1
strb r0, [r4]
movs r0, 0x6
- bl sav12_xor_increment
+ bl IncrementGameStat
pop {r4-r6}
pop {r0}
bx r0
@@ -940,7 +941,7 @@ _080BDEA6:
sub_80BDEAC: @ 80BDEAC
push {lr}
adds r1, r0, 0
- movs r2, 0x2
+ movs r2, GAME_LANGUAGE
ldrb r0, [r1]
cmp r0, 0xFC
bne _080BDEC0
@@ -1104,7 +1105,7 @@ _080BDFDE:
strh r0, [r5, 0x10]
adds r0, r5, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r5, 0x2]
adds r0, r6, 0
bl sub_80BDEAC
@@ -1135,7 +1136,7 @@ sub_80BE028: @ 80BE028
movs r1, 0x18
bl sub_80BF55C
movs r0, 0x5
- bl sub_8053108
+ bl GetGameStat
strh r0, [r4, 0x6]
movs r0, 0x19
strb r0, [r4]
@@ -1237,7 +1238,7 @@ _080BE0A2:
bl StringCopy
adds r0, r4, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0x2]
_080BE112:
pop {r4-r7}
@@ -1258,7 +1259,7 @@ _080BE134: .4byte gSaveBlock2
sub_80BE138: @ 80BE138
push {r4,lr}
adds r4, r0, 0
- bl sub_80BFB94
+ bl GetPlayerTrainerId
strb r0, [r4, 0x1E]
lsrs r2, r0, 8
strb r2, [r4, 0x1F]
@@ -1281,7 +1282,7 @@ sub_80BE138: @ 80BE138
sub_80BE160: @ 80BE160
push {r4,lr}
adds r4, r0, 0
- bl sub_80BFB94
+ bl GetPlayerTrainerId
adds r1, r4, 0
adds r1, 0x20
strb r0, [r1]
@@ -1367,7 +1368,7 @@ sub_80BE188: @ 80BE188
strb r0, [r4, 0x13]
adds r0, r4, 0
bl sub_80BE160
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0x1E]
adds r0, r5, 0
bl sub_80BDEAC
@@ -1558,7 +1559,7 @@ _080BE39E:
strb r0, [r6, 0x1B]
adds r0, r6, 0
bl sub_80BE160
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r6, 0x1D]
pop {r4-r6}
pop {r0}
@@ -1639,7 +1640,7 @@ _080BE420:
bl StringCopy
adds r0, r5, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r5, 0x3]
_080BE458:
pop {r4-r7}
@@ -1654,544 +1655,8 @@ _080BE470: .4byte gMapHeader
_080BE474: .4byte gSaveBlock2
thumb_func_end sub_80BE3BC
- thumb_func_start sub_80BE478
-sub_80BE478: @ 80BE478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_80BF478
- ldr r0, _080BE554 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BE548
- ldr r0, _080BE558 @ =gSpecialVar_0x8004
- mov r8, r0
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r6, _080BE55C @ =gPlayerParty
- adds r0, r6
- ldr r4, _080BE560 @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r1, _080BE564 @ =gSaveBlock2
- mov r9, r1
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- ldr r0, _080BE568 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x5
- strb r0, [r4]
- movs r5, 0x1
- strb r5, [r4, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- strb r0, [r4, 0x1A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- strb r0, [r4, 0x1B]
- ldrh r0, [r4, 0x2]
- bl sub_80BF674
- strh r0, [r4, 0x1C]
- adds r0, r4, 0
- adds r0, 0xF
- mov r1, r9
- bl StringCopy
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- adds r5, r4, 0x4
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl StripExtCtrlCodes
-_080BE548:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE554: .4byte gScriptResult
-_080BE558: .4byte gSpecialVar_0x8004
-_080BE55C: .4byte gPlayerParty
-_080BE560: .4byte gStringVar1
-_080BE564: .4byte gSaveBlock2
-_080BE568: .4byte gUnknown_03005D38
-_080BE56C: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BE478
-
- thumb_func_start StartMassOutbreak
-StartMassOutbreak: @ 80BE570
- push {r4,lr}
- ldr r0, _080BE5F0 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738
- adds r0, r2
- ldrh r3, [r0, 0xC]
- movs r4, 0xF1
- lsls r4, 2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x10]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x11]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x14]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x2]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrh r3, [r0, 0xE]
- adds r4, 0x1
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x4]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x6]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x8]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0xA]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x3]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r1, [r0, 0x13]
- ldr r3, _080BE5F8 @ =0x000003d5
- adds r0, r2, r3
- strb r1, [r0]
- adds r4, 0x2
- adds r2, r4
- movs r0, 0x2
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE5F0: .4byte gSpecialVar_0x8004
-_080BE5F4: .4byte gSaveBlock1 + 0x2738
-_080BE5F8: .4byte 0x000003d5
- thumb_func_end StartMassOutbreak
-
- thumb_func_start sub_80BE5FC
-sub_80BE5FC: @ 80BE5FC
- push {r4,lr}
- ldr r0, _080BE64C @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE654 @ =gSaveBlock2
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BE658 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE64C: .4byte gUnknown_03005D38
-_080BE650: .4byte gSaveBlock1 + 0x2738
-_080BE654: .4byte gSaveBlock2
-_080BE658: .4byte gPlayerParty
- thumb_func_end sub_80BE5FC
-
- thumb_func_start sub_80BE65C
-sub_80BE65C: @ 80BE65C
- push {r4-r6,lr}
- ldr r0, _080BE694 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r6, 0
- movs r5, 0x2
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE69C @ =gSaveBlock2
- bl StringCopy
- strh r6, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- strb r5, [r4, 0x18]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE694: .4byte gUnknown_03005D38
-_080BE698: .4byte gSaveBlock1 + 0x2738
-_080BE69C: .4byte gSaveBlock2
- thumb_func_end sub_80BE65C
-
- thumb_func_start sub_80BE6A0
-sub_80BE6A0: @ 80BE6A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080BE760 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BE768 @ =gPlayerParty
- adds r0, r6
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsrs r0, 4
- movs r1, 0xF
- ands r0, r1
- ldrb r2, [r4, 0x4]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- ldr r0, _080BE76C @ =gSpecialVar_0x8007
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- adds r0, r4, 0x5
- ldr r1, _080BE770 @ =gSaveBlock2
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r5, r4, 0
- adds r5, 0x10
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0xD]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- bl StripExtCtrlCodes
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE760: .4byte gUnknown_03005D38
-_080BE764: .4byte gSaveBlock1 + 0x2738
-_080BE768: .4byte gPlayerParty
-_080BE76C: .4byte gSpecialVar_0x8007
-_080BE770: .4byte gSaveBlock2
- thumb_func_end sub_80BE6A0
-
- thumb_func_start nullsub_21
-nullsub_21: @ 80BE774
- bx lr
- thumb_func_end nullsub_21
- thumb_func_start sub_80BE778
-sub_80BE778: @ 80BE778
- push {r4-r6,lr}
- ldr r0, _080BE83C @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BE836
- movs r1, 0
- ldr r3, _080BE840 @ =gSaveBlock1
- ldr r2, _080BE844 @ =0x00002738
-_080BE78C:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- beq _080BE836
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x17
- bls _080BE78C
- ldr r0, _080BE848 @ =0x00000147
- bl sub_80BF77C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080BE836
- ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF720
- ldr r4, _080BE850 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE836
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r4, r1, 3
- adds r4, r1
- lsls r4, 2
- adds r4, r6
- movs r1, 0x29
- strb r1, [r4]
- movs r3, 0x1
- strb r3, [r4, 0x1]
- ldr r2, _080BE854 @ =gUnknown_083D13F8
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0xA]
- strb r0, [r4, 0x14]
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x3]
- ldrh r0, [r1]
- movs r2, 0
- strh r0, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x6]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0xA]
- ldrb r0, [r1, 0xB]
- strb r0, [r4, 0x10]
- strb r2, [r4, 0x11]
- strb r2, [r4, 0x12]
- movs r0, 0x32
- strb r0, [r4, 0x13]
- strb r2, [r4, 0x15]
- strh r3, [r4, 0x16]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
-_080BE836:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE83C: .4byte 0x00000804
-_080BE840: .4byte gSaveBlock1
-_080BE844: .4byte 0x00002738
-_080BE848: .4byte 0x00000147
-_080BE84C: .4byte gSaveBlock1 + 0x2738
-_080BE850: .4byte gUnknown_03005D38
-_080BE854: .4byte gUnknown_083D13F8
- thumb_func_end sub_80BE778
-
- thumb_func_start EndMassOutbreak
-EndMassOutbreak: @ 80BE858
- push {r4,lr}
- ldr r0, _080BE8B4 @ =gSaveBlock1
- ldr r2, _080BE8B8 @ =0x00002afc
- adds r1, r0, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r1]
- ldr r4, _080BE8BC @ =0x00002afe
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- ldr r1, _080BE8C0 @ =0x00002b0e
- adds r0, r1
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE8B4: .4byte gSaveBlock1
-_080BE8B8: .4byte 0x00002afc
-_080BE8BC: .4byte 0x00002afe
-_080BE8C0: .4byte 0x00002b0e
- thumb_func_end EndMassOutbreak
-
- thumb_func_start sub_80BE8C4
-sub_80BE8C4: @ 80BE8C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80BE8EC
- adds r0, r4, 0
- bl UpdateMassOutbreakTimeLeft
- adds r0, r4, 0
- bl sub_80BEE84
- adds r0, r4, 0
- bl sub_80BEA5C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8C4
+ .section .text_80BE8EC
thumb_func_start sub_80BE8EC
sub_80BE8EC: @ 80BE8EC
@@ -2368,7 +1833,7 @@ sub_80BE9D4: @ 80BE9D4
bl StringCopy
adds r0, r4, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0x6]
_080BEA36:
pop {r4,r5}
@@ -2456,7 +1921,7 @@ sub_80BEA88: @ 80BEA88
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x2]
movs r0, 0x5
- bl sub_8053108
+ bl GetGameStat
ldrh r1, [r5, 0x6]
subs r0, r1
strh r0, [r4, 0x6]
@@ -2472,7 +1937,7 @@ sub_80BEA88: @ 80BEA88
bl StringCopy
adds r0, r4, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0xB]
_080BEB04:
pop {r4-r7}
@@ -2760,7 +2225,7 @@ _080BED00:
asrs r0, 24
cmp r0, 0x13
bgt _080BED40
- ldr r1, _080BED3C @ =gUnknown_083D1444
+ ldr r1, _080BED3C @ =gTVNewsTextGroup2
subs r2, 0x1
b _080BED44
.align 2, 0
@@ -2768,9 +2233,9 @@ _080BED2C: .4byte gSaveBlock1
_080BED30: .4byte 0x00002abe
_080BED34: .4byte 0x00002abd
_080BED38: .4byte gLocalTime
-_080BED3C: .4byte gUnknown_083D1444
+_080BED3C: .4byte gTVNewsTextGroup2
_080BED40:
- ldr r1, _080BED54 @ =gUnknown_083D1454
+ ldr r1, _080BED54 @ =gTVNewsTextGroup3
ldr r2, _080BED58 @ =0x00002abc
_080BED44:
adds r0, r4, r2
@@ -2781,7 +2246,7 @@ _080BED44:
bl ShowFieldMessage
b _080BED82
.align 2, 0
-_080BED54: .4byte gUnknown_083D1454
+_080BED54: .4byte gTVNewsTextGroup3
_080BED58: .4byte 0x00002abc
_080BED5C:
ldrh r1, [r1]
@@ -2793,7 +2258,7 @@ _080BED5C:
adds r1, r4, r0
movs r0, 0
strb r0, [r1]
- ldr r1, _080BED98 @ =gUnknown_083D1434
+ ldr r1, _080BED98 @ =gTVNewsTextGroup1
ldr r2, _080BED9C @ =0x00002abc
adds r0, r4, r2
ldrb r0, [r0]
@@ -2812,7 +2277,7 @@ _080BED86:
.align 2, 0
_080BED90: .4byte gStringVar1
_080BED94: .4byte 0x00002abd
-_080BED98: .4byte gUnknown_083D1434
+_080BED98: .4byte gTVNewsTextGroup1
_080BED9C: .4byte 0x00002abc
_080BEDA0: .4byte gScriptResult
thumb_func_end sub_80BECE8
@@ -3367,7 +2832,7 @@ sub_80BF1B4: @ 80BF1B4
lsls r0, 24
lsrs r6, r0, 24
ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738
- bl sub_80BFB94
+ bl GetPlayerTrainerId
adds r5, r0, 0
movs r4, 0x5
_080BF1C4:
@@ -3780,46 +3245,7 @@ _080BF4EC: .4byte gUnknown_03005D38
_080BF4F0: .4byte gSaveBlock1 + 0x2738
thumb_func_end sub_80BF4BC
- thumb_func_start sub_80BF4F4
-sub_80BF4F4: @ 80BF4F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080BF530 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080BF534 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r0, r1
- ldr r1, _080BF538 @ =gSpeciesNames
- adds r0, r1
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF53C
- movs r0, 0x1
- b _080BF53E
- .align 2, 0
-_080BF530: .4byte gPlayerParty
-_080BF534: .4byte gStringVar1
-_080BF538: .4byte gSpeciesNames
-_080BF53C:
- movs r0, 0
-_080BF53E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF4F4
+.section .text_80BF544
thumb_func_start sub_80BF544
sub_80BF544: @ 80BF544
@@ -4628,7 +4054,7 @@ _080BFB0C: .4byte gStringVar1
thumb_func_start sub_80BFB10
sub_80BFB10: @ 80BFB10
push {r4,lr}
- bl sub_80BFB94
+ bl GetPlayerTrainerId
adds r4, r0, 0
ldr r0, _080BFB38 @ =gSpecialVar_0x8004
ldrh r1, [r0]
@@ -4701,8 +4127,8 @@ _080BFB90:
bx r1
thumb_func_end sub_80BFB54
- thumb_func_start sub_80BFB94
-sub_80BFB94: @ 80BFB94
+ thumb_func_start GetPlayerTrainerId
+GetPlayerTrainerId: @ 80BFB94
ldr r2, _080BFBAC @ =gSaveBlock2
ldrb r0, [r2, 0xD]
lsls r0, 24
@@ -4717,7 +4143,7 @@ sub_80BFB94: @ 80BFB94
bx lr
.align 2, 0
_080BFBAC: .4byte gSaveBlock2
- thumb_func_end sub_80BFB94
+ thumb_func_end GetPlayerTrainerId
thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
@@ -6686,7 +6112,7 @@ _080C0B74:
_080C0B78:
strb r0, [r1]
_080C0B7A:
- ldr r0, _080C0B98 @ =gUnknown_083D1524
+ ldr r0, _080C0B98 @ =gTVBravoTrainerTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -6698,7 +6124,7 @@ _080C0B7A:
_080C0B8C: .4byte gStringVar1
_080C0B90: .4byte gSpeciesNames
_080C0B94: .4byte gUnknown_020387E8
-_080C0B98: .4byte gUnknown_083D1524
+_080C0B98: .4byte gTVBravoTrainerTextGroup
thumb_func_end DoTVShowBravoTrainerPokemonProfile
thumb_func_start DoTVShowBravoTrainerBattleTowerProfile
@@ -6959,7 +6385,7 @@ _080C0DC0:
bl StringCopy
bl TVShowDone
_080C0DDE:
- ldr r0, _080C0DFC @ =gUnknown_083D1548
+ ldr r0, _080C0DFC @ =gTVBravoTrainerBattleTowerTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -6971,7 +6397,7 @@ _080C0DDE:
_080C0DF0: .4byte gStringVar1
_080C0DF4: .4byte gStringVar2
_080C0DF8: .4byte gSpeciesNames
-_080C0DFC: .4byte gUnknown_083D1548
+_080C0DFC: .4byte gTVBravoTrainerBattleTowerTextGroup
thumb_func_end DoTVShowBravoTrainerBattleTowerProfile
thumb_func_start DoTVShowTodaysSmartShopper
@@ -7214,7 +6640,7 @@ _080C1004:
bl TVShowConvertInternationalString
bl TVShowDone
_080C1014:
- ldr r0, _080C102C @ =gUnknown_083D14F0
+ ldr r0, _080C102C @ =gTVSmartShopperTextGroup
lsls r1, r6, 2
adds r1, r0
ldr r0, [r1]
@@ -7224,7 +6650,7 @@ _080C1014:
bx r0
.align 2, 0
_080C1028: .4byte gStringVar1
-_080C102C: .4byte gUnknown_083D14F0
+_080C102C: .4byte gTVSmartShopperTextGroup
thumb_func_end DoTVShowTodaysSmartShopper
thumb_func_start DoTVShowTheNameRaterShow
@@ -7598,7 +7024,7 @@ _080C1370:
bl TVShowConvertInternationalString
bl TVShowDone
_080C138A:
- ldr r0, _080C13A8 @ =gUnknown_083D1584
+ ldr r0, _080C13A8 @ =gTVNameRaterTextGroup
lsls r1, r7, 2
adds r1, r0
ldr r0, [r1]
@@ -7610,7 +7036,7 @@ _080C138A:
.align 2, 0
_080C13A0: .4byte gStringVar1
_080C13A4: .4byte gStringVar2
-_080C13A8: .4byte gUnknown_083D1584
+_080C13A8: .4byte gTVNameRaterTextGroup
thumb_func_end DoTVShowTheNameRaterShow
thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
@@ -7854,7 +7280,7 @@ _080C15D4: .4byte gUnknown_020387E8
_080C15D8:
bl TVShowDone
_080C15DC:
- ldr r0, _080C15F0 @ =gUnknown_083D14C0
+ ldr r0, _080C15F0 @ =gTVPokemonTodayTextGroup
lsls r1, r6, 2
adds r1, r0
ldr r0, [r1]
@@ -7863,7 +7289,7 @@ _080C15DC:
pop {r0}
bx r0
.align 2, 0
-_080C15F0: .4byte gUnknown_083D14C0
+_080C15F0: .4byte gTVPokemonTodayTextGroup
thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
thumb_func_start DoTVShowPokemonTodayFailedCapture
@@ -8011,7 +7437,7 @@ _080C1734: .4byte gUnknown_020387E8
_080C1738:
bl TVShowDone
_080C173C:
- ldr r0, _080C1750 @ =gUnknown_083D15D0
+ ldr r0, _080C1750 @ =gTVPokemonTodayFailedCaptureTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8020,7 +7446,7 @@ _080C173C:
pop {r0}
bx r0
.align 2, 0
-_080C1750: .4byte gUnknown_083D15D0
+_080C1750: .4byte gTVPokemonTodayFailedCaptureTextGroup
thumb_func_end DoTVShowPokemonTodayFailedCapture
thumb_func_start DoTVShowPokemonFanClubLetter
@@ -8223,7 +7649,7 @@ _080C193C:
_080C1958: .4byte gStringVar4
_080C195C: .4byte gUnknown_020387E8
_080C1960:
- ldr r0, _080C1974 @ =gUnknown_083D1470
+ ldr r0, _080C1974 @ =gTVFanClubTextGroup
lsls r1, r7, 2
adds r1, r0
ldr r0, [r1]
@@ -8233,7 +7659,7 @@ _080C196C:
pop {r0}
bx r0
.align 2, 0
-_080C1974: .4byte gUnknown_083D1470
+_080C1974: .4byte gTVFanClubTextGroup
thumb_func_end DoTVShowPokemonFanClubLetter
thumb_func_start DoTVShowRecentHappenings
@@ -8370,7 +7796,7 @@ _080C1ACC:
_080C1AE8: .4byte gStringVar4
_080C1AEC: .4byte gUnknown_020387E8
_080C1AF0:
- ldr r0, _080C1B04 @ =gUnknown_083D1490
+ ldr r0, _080C1B04 @ =gTVRecentHappeningsTextGroup
lsls r1, r6, 2
adds r1, r0
ldr r0, [r1]
@@ -8380,7 +7806,7 @@ _080C1AFC:
pop {r0}
bx r0
.align 2, 0
-_080C1B04: .4byte gUnknown_083D1490
+_080C1B04: .4byte gTVRecentHappeningsTextGroup
thumb_func_end DoTVShowRecentHappenings
thumb_func_start DoTVShowPokemonFanClubOpinions
@@ -8474,7 +7900,7 @@ _080C1BC0:
bl sub_80EB3FC
bl TVShowDone
_080C1BD6:
- ldr r0, _080C1BF0 @ =gUnknown_083D14A8
+ ldr r0, _080C1BF0 @ =gTVFanClubOpinionsTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8485,7 +7911,7 @@ _080C1BD6:
.align 2, 0
_080C1BE8: .4byte gStringVar1
_080C1BEC: .4byte gStringVar3
-_080C1BF0: .4byte gUnknown_083D14A8
+_080C1BF0: .4byte gTVFanClubOpinionsTextGroup
thumb_func_end DoTVShowPokemonFanClubOpinions
thumb_func_start nullsub_22
@@ -8493,48 +7919,7 @@ nullsub_22: @ 80C1BF4
bx lr
thumb_func_end nullsub_22
- thumb_func_start DoTVShowPokemonNewsMassOutbreak
-DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
- push {r4,lr}
- ldr r0, _080C1C40 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldr r0, _080C1C48 @ =gStringVar1
- ldrb r1, [r4, 0x10]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1C4C @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1C50 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- bl StartMassOutbreak
- ldr r1, _080C1C54 @ =gUnknown_083D14BC
- ldr r0, _080C1C58 @ =gUnknown_020387E8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1C40: .4byte gSpecialVar_0x8004
-_080C1C44: .4byte gSaveBlock1 + 0x2738
-_080C1C48: .4byte gStringVar1
-_080C1C4C: .4byte gStringVar2
-_080C1C50: .4byte gSpeciesNames
-_080C1C54: .4byte gUnknown_083D14BC
-_080C1C58: .4byte gUnknown_020387E8
- thumb_func_end DoTVShowPokemonNewsMassOutbreak
+.section .text_80C1C5C
thumb_func_start DoTVShowInSearchOfTrainers
DoTVShowInSearchOfTrainers: @ 80C1C5C
@@ -8723,7 +8108,7 @@ _080C1DB6:
strb r0, [r1]
bl TakeTVShowInSearchOfTrainersOffTheAir
_080C1DF8:
- ldr r0, _080C1E34 @ =gUnknown_083D1600
+ ldr r0, _080C1E34 @ =gTVGabbyAndTyTextGroup
lsls r1, r7, 2
adds r1, r0
ldr r0, [r1]
@@ -8742,7 +8127,7 @@ _080C1E24: .4byte gStringVar3
_080C1E28: .4byte 0x00002b12
_080C1E2C: .4byte gScriptResult
_080C1E30: .4byte gUnknown_020387E8
-_080C1E34: .4byte gUnknown_083D1600
+_080C1E34: .4byte gTVGabbyAndTyTextGroup
thumb_func_end DoTVShowInSearchOfTrainers
thumb_func_start DoTVShowPokemonAngler
@@ -8824,7 +8209,7 @@ _080C1EBC:
bl sub_80BF088
bl TVShowDone
_080C1EE4:
- ldr r0, _080C1F04 @ =gUnknown_083D15EC
+ ldr r0, _080C1F04 @ =gTVFishingGuruAdviceTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8836,7 +8221,7 @@ _080C1EE4:
_080C1EF8: .4byte gStringVar1
_080C1EFC: .4byte gStringVar2
_080C1F00: .4byte gSpeciesNames
-_080C1F04: .4byte gUnknown_083D15EC
+_080C1F04: .4byte gTVFishingGuruAdviceTextGroup
thumb_func_end DoTVShowPokemonAngler
thumb_func_start DoTVShowTheWorldOfMasters
@@ -8920,7 +8305,7 @@ _080C1F8C:
bl StringCopy
bl TVShowDone
_080C1FB6:
- ldr r0, _080C1FD8 @ =gUnknown_083D15F4
+ ldr r0, _080C1FD8 @ =gTVWorldOfMastersTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8933,45 +8318,8 @@ _080C1FC8: .4byte gStringVar1
_080C1FCC: .4byte gStringVar2
_080C1FD0: .4byte gStringVar3
_080C1FD4: .4byte gSpeciesNames
-_080C1FD8: .4byte gUnknown_083D15F4
+_080C1FD8: .4byte gTVWorldOfMastersTextGroup
thumb_func_end DoTVShowTheWorldOfMasters
- thumb_func_start TVShowDone
-TVShowDone: @ 80C1FDC
- ldr r1, _080C2000 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C2004 @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- ldr r2, _080C2008 @ =gSaveBlock1
- ldr r0, _080C200C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080C2010 @ =0x00002739
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080C2000: .4byte gScriptResult
-_080C2004: .4byte gUnknown_020387E8
-_080C2008: .4byte gSaveBlock1
-_080C200C: .4byte gSpecialVar_0x8004
-_080C2010: .4byte 0x00002739
- thumb_func_end TVShowDone
-
- thumb_func_start sub_80C2014
-sub_80C2014: @ 80C2014
- ldr r1, _080C201C @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C201C: .4byte gUnknown_020387E8
- thumb_func_end sub_80C2014
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/unknown_debug_menu.s b/asm/unknown_debug_menu.s
new file mode 100644
index 000000000..138fdb876
--- /dev/null
+++ b/asm/unknown_debug_menu.s
@@ -0,0 +1,133 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_814A414
+unref_sub_814A414: @ 814A414
+ push {lr}
+ sub sp, 0x8
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r3, _0814A458 @ =gUnknown_0842C29C
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x8
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x8
+ bl InitMenu
+ ldr r1, _0814A45C @ =gCallback_03004AE8
+ ldr r0, _0814A460 @ =sub_814A464
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A458: .4byte gUnknown_0842C29C
+_0814A45C: .4byte gCallback_03004AE8
+_0814A460: .4byte sub_814A464
+ thumb_func_end unref_sub_814A414
+
+ thumb_func_start sub_814A464
+sub_814A464: @ 814A464
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _0814A480
+ movs r0, 0
+ b _0814A4B2
+_0814A480:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0814A4AC
+ ldr r0, _0814A4A0 @ =gUnknown_02024D1E
+ strb r2, [r0]
+ ldr r2, _0814A4A4 @ =gCallback_03004AE8
+ ldr r0, _0814A4A8 @ =gUnknown_0842C29C
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r0, 0
+ b _0814A4B2
+ .align 2, 0
+_0814A4A0: .4byte gUnknown_02024D1E
+_0814A4A4: .4byte gCallback_03004AE8
+_0814A4A8: .4byte gUnknown_0842C29C
+_0814A4AC:
+ bl CloseMenu
+ movs r0, 0x1
+_0814A4B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814A464
+
+ thumb_func_start sub_814A4B8
+sub_814A4B8: @ 814A4B8
+ push {r4,lr}
+ ldr r2, _0814A4FC @ =gSaveBlock2
+ ldr r1, _0814A500 @ =0x00000556
+ adds r0, r2, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r3, _0814A504 @ =0x00000557
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _0814A508 @ =gUnknown_02024D1E
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r4, _0814A50C @ =0x0000055c
+ adds r1, r2, r4
+ strh r0, [r1]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r3, _0814A510 @ =0x0000055e
+ adds r1, r2, r3
+ strh r0, [r1]
+ subs r4, 0x4
+ adds r0, r2, r4
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _0814A514 @ =0x0000055a
+ adds r2, r0
+ strh r1, [r2]
+ bl CloseMenu
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A4FC: .4byte gSaveBlock2
+_0814A500: .4byte 0x00000556
+_0814A504: .4byte 0x00000557
+_0814A508: .4byte gUnknown_02024D1E
+_0814A50C: .4byte 0x0000055c
+_0814A510: .4byte 0x0000055e
+_0814A514: .4byte 0x0000055a
+ thumb_func_end sub_814A4B8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unknown_task.s b/asm/unknown_task.s
new file mode 100644
index 000000000..39f1497ef
--- /dev/null
+++ b/asm/unknown_task.s
@@ -0,0 +1,645 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start remove_some_task
+remove_some_task: @ 8089578
+ push {r4,lr}
+ ldr r4, _080895A8 @ =gUnknown_03004DC0
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _080895AC @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x18]
+ cmp r0, 0xFF
+ beq _080895A2
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r4, 0x18]
+_080895A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895A8: .4byte gUnknown_03004DC0
+_080895AC: .4byte 0x040000b0
+_080895B0: .4byte 0x0000c5ff
+_080895B4: .4byte 0x00007fff
+ thumb_func_end remove_some_task
+
+ thumb_func_start dp12_8087EA4
+dp12_8087EA4: @ 80895B8
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ movs r4, 0
+ strh r4, [r0]
+ ldr r1, _080895EC @ =gUnknown_03004DE0
+ ldr r2, _080895F0 @ =0x01000780
+ bl CpuSet
+ ldr r0, _080895F4 @ =gUnknown_03004DC0
+ movs r1, 0
+ str r1, [r0]
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ strb r4, [r0, 0x14]
+ strb r4, [r0, 0x15]
+ strb r4, [r0, 0x16]
+ strb r4, [r0, 0x17]
+ movs r1, 0xFF
+ strb r1, [r0, 0x18]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895EC: .4byte gUnknown_03004DE0
+_080895F0: .4byte 0x01000780
+_080895F4: .4byte gUnknown_03004DC0
+ thumb_func_end dp12_8087EA4
+
+ thumb_func_start sub_80895F8
+sub_80895F8: @ 80895F8
+ push {lr}
+ sub sp, 0xC
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ ldr r0, _0808961C @ =0xa2600001
+ cmp r1, r0
+ bne _0808962C
+ ldr r0, _08089620 @ =gUnknown_03004DC0
+ ldr r1, _08089624 @ =gUnknown_03004DE2
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089628 @ =sub_80896F4
+ b _0808963C
+ .align 2, 0
+_0808961C: .4byte 0xa2600001
+_08089620: .4byte gUnknown_03004DC0
+_08089624: .4byte gUnknown_03004DE2
+_08089628: .4byte sub_80896F4
+_0808962C:
+ ldr r0, _0808965C @ =gUnknown_03004DC0
+ ldr r1, _08089660 @ =gUnknown_03004DE4
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089664 @ =sub_8089714
+_0808963C:
+ str r1, [r0, 0x10]
+ adds r1, r0, 0
+ ldr r0, [sp, 0x4]
+ str r0, [r1, 0xC]
+ ldr r0, [sp]
+ str r0, [r1, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ strb r0, [r1, 0x15]
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ strb r0, [r1, 0x16]
+ strb r0, [r1, 0x17]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808965C: .4byte gUnknown_03004DC0
+_08089660: .4byte gUnknown_03004DE4
+_08089664: .4byte sub_8089714
+ thumb_func_end sub_80895F8
+
+ thumb_func_start sub_8089668
+sub_8089668: @ 8089668
+ push {r4,lr}
+ ldr r4, _08089698 @ =gUnknown_03004DC0
+ ldrb r0, [r4, 0x15]
+ cmp r0, 0
+ beq _080896E2
+ cmp r0, 0x3
+ bne _080896AC
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _0808969C @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r1, _080896A8 @ =gUnknown_0202FFA4
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080896E2
+ .align 2, 0
+_08089698: .4byte gUnknown_03004DC0
+_0808969C: .4byte 0x040000b0
+_080896A0: .4byte 0x0000c5ff
+_080896A4: .4byte 0x00007fff
+_080896A8: .4byte gUnknown_0202FFA4
+_080896AC:
+ ldr r1, _080896E8 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896EC @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896F0 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x14]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r4, 0x8]
+ str r0, [r1, 0x4]
+ ldr r0, [r4, 0xC]
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, [r4, 0x10]
+ bl _call_via_r0
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4, 0x14]
+_080896E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080896E8: .4byte 0x040000b0
+_080896EC: .4byte 0x0000c5ff
+_080896F0: .4byte 0x00007fff
+ thumb_func_end sub_8089668
+
+ thumb_func_start sub_80896F4
+sub_80896F4: @ 80896F4
+ ldr r0, _0808970C @ =gUnknown_03004DC0
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089710 @ =gUnknown_03004DE0
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0808970C: .4byte gUnknown_03004DC0
+_08089710: .4byte gUnknown_03004DE0
+ thumb_func_end sub_80896F4
+
+ thumb_func_start sub_8089714
+sub_8089714: @ 8089714
+ ldr r0, _0808972C @ =gUnknown_03004DC0
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089730 @ =gUnknown_03004DE0
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_0808972C: .4byte gUnknown_03004DC0
+_08089730: .4byte gUnknown_03004DE0
+ thumb_func_end sub_8089714
+
+ thumb_func_start task00_for_dp12
+task00_for_dp12: @ 8089734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ ldr r0, _0808975C @ =gUnknown_0202FFA4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08089764
+ mov r0, r12
+ bl DestroyTask
+ ldr r1, _08089760 @ =gUnknown_03004DC0
+ movs r0, 0xFF
+ strb r0, [r1, 0x18]
+ b _080898E4
+ .align 2, 0
+_0808975C: .4byte gUnknown_0202FFA4
+_08089760: .4byte gUnknown_03004DC0
+_08089764:
+ ldr r1, _08089790 @ =gTasks
+ mov r0, r12
+ lsls r2, r0, 2
+ adds r0, r2, r0
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ mov r10, r1
+ mov r9, r2
+ cmp r0, 0
+ beq _08089810
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ bhi _08089810
+ lsls r0, 2
+ ldr r1, _08089794 @ =_08089798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08089790: .4byte gTasks
+_08089794: .4byte _08089798
+ .align 2, 0
+_08089798:
+ .4byte _080897D4
+ .4byte _08089810
+ .4byte _080897DC
+ .4byte _08089810
+ .4byte _080897E4
+ .4byte _08089810
+ .4byte _080897EC
+ .4byte _08089810
+ .4byte _080897F4
+ .4byte _08089810
+ .4byte _080897FC
+ .4byte _08089810
+ .4byte _08089804
+ .4byte _08089810
+ .4byte _0808980C
+_080897D4:
+ ldr r0, _080897D8 @ =gUnknown_030042A4
+ b _0808980E
+ .align 2, 0
+_080897D8: .4byte gUnknown_030042A4
+_080897DC:
+ ldr r0, _080897E0 @ =gUnknown_030042A0
+ b _0808980E
+ .align 2, 0
+_080897E0: .4byte gUnknown_030042A0
+_080897E4:
+ ldr r0, _080897E8 @ =gUnknown_030042C0
+ b _0808980E
+ .align 2, 0
+_080897E8: .4byte gUnknown_030042C0
+_080897EC:
+ ldr r0, _080897F0 @ =gUnknown_030041B4
+ b _0808980E
+ .align 2, 0
+_080897F0: .4byte gUnknown_030041B4
+_080897F4:
+ ldr r0, _080897F8 @ =gUnknown_03004288
+ b _0808980E
+ .align 2, 0
+_080897F8: .4byte gUnknown_03004288
+_080897FC:
+ ldr r0, _08089800 @ =gUnknown_03004280
+ b _0808980E
+ .align 2, 0
+_08089800: .4byte gUnknown_03004280
+_08089804:
+ ldr r0, _08089808 @ =gUnknown_030041B0
+ b _0808980E
+ .align 2, 0
+_08089808: .4byte gUnknown_030041B0
+_0808980C:
+ ldr r0, _08089870 @ =gUnknown_030041B8
+_0808980E:
+ ldrh r6, [r0]
+_08089810:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r2, r10
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0808987C
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898E4
+ ldr r5, _08089874 @ =gUnknown_03004DE0
+ ldr r0, _08089878 @ =gUnknown_03004DC0
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+_0808984A:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _0808984A
+ b _080898E4
+ .align 2, 0
+_08089870: .4byte gUnknown_030041B8
+_08089874: .4byte gUnknown_03004DE0
+_08089878: .4byte gUnknown_03004DC0
+_0808987C:
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x10]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898C4
+ ldr r5, _080898F4 @ =gUnknown_03004DE0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+ ldr r0, _080898F8 @ =gUnknown_03004DC0
+ mov r8, r0
+_080898A2:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _080898A2
+_080898C4:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r3, r10
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bne _080898E4
+ movs r0, 0
+ strh r0, [r2, 0xE]
+_080898E4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080898F4: .4byte gUnknown_03004DE0
+_080898F8: .4byte gUnknown_03004DC0
+ thumb_func_end task00_for_dp12
+
+ thumb_func_start sub_80898FC
+sub_80898FC: @ 80898FC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0
+ movs r2, 0
+ ldr r0, _08089940 @ =gSineTable
+ mov r12, r0
+_08089910:
+ lsls r0, r1, 1
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ add r0, r12
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ muls r0, r4
+ cmp r0, 0
+ bge _08089924
+ adds r0, 0xFF
+_08089924:
+ asrs r0, 8
+ strh r0, [r3]
+ adds r0, r2, r5
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _08089910
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089940: .4byte gSineTable
+ thumb_func_end sub_80898FC
+
+ thumb_func_start sub_8089944
+sub_8089944: @ 8089944
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r5, r0, 0
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x40]
+ mov r8, r0
+ ldr r1, [sp, 0x44]
+ mov r9, r1
+ ldr r0, [sp, 0x48]
+ mov r10, r0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, [sp, 0x10]
+ lsls r1, 24
+ str r1, [sp, 0x14]
+ lsrs r0, r1, 24
+ str r0, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r3, r9
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl dp12_8087EA4
+ ldr r0, _08089A50 @ =REG_BG0HOFS
+ add r0, r9
+ str r0, [sp]
+ ldr r0, _08089A54 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _08089A58 @ =task00_for_dp12
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08089A5C @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ strh r5, [r4, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ldr r1, [sp, 0x18]
+ bl __divsi3
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ mov r1, r8
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ mov r3, r9
+ strh r3, [r4, 0x14]
+ mov r0, r10
+ strh r0, [r4, 0x16]
+ ldr r0, _08089A60 @ =gUnknown_03004DC0
+ strb r7, [r0, 0x18]
+ ldr r0, _08089A64 @ =gUnknown_0202FFA4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r4, _08089A68 @ =gUnknown_03005060
+ ldr r3, [sp, 0xC]
+ subs r6, r3, r5
+ lsls r3, r6, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ ldr r1, [sp, 0x18]
+ ldr r2, [sp, 0x1C]
+ bl sub_80898FC
+ ldr r0, [sp, 0xC]
+ cmp r5, r0
+ bge _08089A3E
+ ldr r1, _08089A6C @ =0xfffffd80
+ adds r2, r4, r1
+ lsls r1, r5, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r1, r3
+ adds r3, r0, r2
+ adds r1, r2
+ adds r2, r4, 0
+ adds r5, r6, 0
+_08089A2A:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08089A2A
+_08089A3E:
+ adds r0, r7, 0
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08089A50: .4byte REG_BG0HOFS
+_08089A54: .4byte 0xa2600001
+_08089A58: .4byte task00_for_dp12
+_08089A5C: .4byte gTasks
+_08089A60: .4byte gUnknown_03004DC0
+_08089A64: .4byte gUnknown_0202FFA4
+_08089A68: .4byte gUnknown_03005060
+_08089A6C: .4byte 0xfffffd80
+ thumb_func_end sub_8089944
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8040EB4.s b/asm/util.s
index cf7780f78..f204eac43 100644
--- a/asm/rom_8040EB4.s
+++ b/asm/util.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start object_new_hidden_with_callback
-object_new_hidden_with_callback: @ 8040EB4
+ thumb_func_start CreateInvisibleSpriteWithCallback
+CreateInvisibleSpriteWithCallback: @ 8040EB4
push {r4-r6,lr}
adds r6, r0, 0
ldr r0, _08040EE8 @ =gSpriteTemplate_82087AC
@@ -35,7 +35,7 @@ object_new_hidden_with_callback: @ 8040EB4
.align 2, 0
_08040EE8: .4byte gSpriteTemplate_82087AC
_08040EEC: .4byte gSprites
- thumb_func_end object_new_hidden_with_callback
+ thumb_func_end CreateInvisibleSpriteWithCallback
thumb_func_start StoreWordInTwoHalfwords
StoreWordInTwoHalfwords: @ 8040EF0
@@ -56,8 +56,8 @@ LoadWordFromTwoHalfwords: @ 8040EF8
bx lr
thumb_func_end LoadWordFromTwoHalfwords
- thumb_func_start sub_8040F08
-sub_8040F08: @ 8040F08
+ thumb_func_start SetBgAffineStruct
+SetBgAffineStruct: @ 8040F08
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -79,10 +79,10 @@ sub_8040F08: @ 8040F08
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8040F08
+ thumb_func_end SetBgAffineStruct
- thumb_func_start sub_8040F34
-sub_8040F34: @ 8040F34
+ thumb_func_start DoBgAffineSet
+DoBgAffineSet: @ 8040F34
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -107,7 +107,7 @@ sub_8040F34: @ 8040F34
str r5, [sp, 0x8]
str r6, [sp, 0xC]
add r0, sp, 0x10
- bl sub_8040F08
+ bl SetBgAffineStruct
add r0, sp, 0x10
mov r1, r8
movs r2, 0x1
@@ -118,10 +118,10 @@ sub_8040F34: @ 8040F34
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_8040F34
+ thumb_func_end DoBgAffineSet
- thumb_func_start sub_8040F80
-sub_8040F80: @ 8040F80
+ thumb_func_start CopySpriteTiles
+CopySpriteTiles: @ 8040F80
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -357,10 +357,10 @@ _08041136:
bx r0
.align 2, 0
_08041148: .4byte 0x84000008
- thumb_func_end sub_8040F80
+ thumb_func_end CopySpriteTiles
- thumb_func_start sub_804114C
-sub_804114C: @ 804114C
+ thumb_func_start CountTrailingZeroBits
+CountTrailingZeroBits: @ 804114C
push {lr}
adds r2, r0, 0
movs r1, 0
@@ -383,10 +383,10 @@ _08041160:
_0804116E:
pop {r1}
bx r1
- thumb_func_end sub_804114C
+ thumb_func_end CountTrailingZeroBits
- thumb_func_start sub_8041174
-sub_8041174: @ 8041174
+ thumb_func_start CalcCRC16
+CalcCRC16: @ 8041174
push {r4-r7,lr}
adds r7, r0, 0
adds r4, r1, 0
@@ -435,10 +435,10 @@ _080411C0:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8041174
+ thumb_func_end CalcCRC16
- thumb_func_start unref_sub_80411CC
-unref_sub_80411CC: @ 80411CC
+ thumb_func_start CalcCRC16WithTable
+CalcCRC16WithTable: @ 80411CC
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
@@ -473,6 +473,6 @@ _080411FA:
.align 2, 0
_08041208: .4byte 0x00001121
_0804120C: .4byte gCrc16Table
- thumb_func_end unref_sub_80411CC
+ thumb_func_end CalcCRC16WithTable
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/weather.s b/asm/weather.s
index fbcc61b6f..01190c75e 100644
--- a/asm/weather.s
+++ b/asm/weather.s
@@ -1,858 +1,10 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
- thumb_func_start sub_807C828
-sub_807C828: @ 807C828
- push {r4-r6,lr}
- ldr r0, _0807C8EC @ =sub_807CA34
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0807C8E4
- movs r0, 0x90
- lsls r0, 5
- bl AllocSpritePalette
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807C8F0 @ =gUnknown_083970E8
- lsls r1, r5, 5
- ldr r2, _0807C8F4 @ =gPlttBufferUnfaded + 0x200
- adds r1, r2
- ldr r2, _0807C8F8 @ =REG_BG0CNT
- bl CpuSet
- bl sub_807CB10
- ldr r4, _0807C8FC @ =gUnknown_0202F7E8
- ldr r1, _0807C900 @ =0x000006d5
- adds r0, r4, r1
- strb r5, [r0]
- ldr r0, _0807C904 @ =0x00001201
- bl AllocSpritePalette
- ldr r2, _0807C908 @ =0x000006d4
- adds r1, r4, r2
- strb r0, [r1]
- ldr r1, _0807C90C @ =0x000006da
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x4
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x4
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0xC
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x22
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x17
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x24
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x1B
- adds r0, r4, r2
- strb r6, [r0]
- subs r1, 0xD
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x18
- adds r0, r4, r2
- strb r6, [r0]
- subs r1, 0x1D
- adds r0, r4, r1
- strb r6, [r0]
- movs r0, 0x10
- movs r1, 0
- bl sub_807DB64
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r4, r2
- strb r6, [r0]
- ldr r0, _0807C910 @ =0x000006c6
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x3
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807C914 @ =sub_807C9E4
- movs r1, 0x50
- bl CreateTask
- ldr r1, _0807C918 @ =0x000006c9
- adds r4, r1
- strb r0, [r4]
-_0807C8E4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C8EC: .4byte sub_807CA34
-_0807C8F0: .4byte gUnknown_083970E8
-_0807C8F4: .4byte gPlttBufferUnfaded + 0x200
-_0807C8F8: .4byte REG_BG0CNT
-_0807C8FC: .4byte gUnknown_0202F7E8
-_0807C900: .4byte 0x000006d5
-_0807C904: .4byte 0x00001201
-_0807C908: .4byte 0x000006d4
-_0807C90C: .4byte 0x000006da
-_0807C910: .4byte 0x000006c6
-_0807C914: .4byte sub_807C9E4
-_0807C918: .4byte 0x000006c9
- thumb_func_end sub_807C828
-
- thumb_func_start DoWeatherEffect
-DoWeatherEffect: @ 807C91C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- beq _0807C932
- cmp r4, 0x5
- beq _0807C932
- cmp r4, 0xD
- beq _0807C932
- bl PlayRainSoundEffect
-_0807C932:
- ldr r1, _0807C974 @ =gUnknown_0202F7E8
- ldr r2, _0807C978 @ =0x000006d1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r4
- beq _0807C956
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0807C956
- ldr r0, _0807C97C @ =gUnknown_08396FC8
- lsls r1, r4, 4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0807C956:
- ldr r1, _0807C974 @ =gUnknown_0202F7E8
- ldr r2, _0807C980 @ =0x000006d3
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _0807C978 @ =0x000006d1
- adds r0, r1, r3
- strb r4, [r0]
- ldr r0, _0807C984 @ =0x000006ce
- adds r1, r0
- strh r2, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C974: .4byte gUnknown_0202F7E8
-_0807C978: .4byte 0x000006d1
-_0807C97C: .4byte gUnknown_08396FC8
-_0807C980: .4byte 0x000006d3
-_0807C984: .4byte 0x000006ce
- thumb_func_end DoWeatherEffect
-
- thumb_func_start sub_807C988
-sub_807C988: @ 807C988
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl PlayRainSoundEffect
- ldr r0, _0807C9AC @ =gUnknown_0202F7E8
- movs r2, 0xDA
- lsls r2, 3
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _0807C9B0 @ =0x000006d1
- adds r0, r1
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C9AC: .4byte gUnknown_0202F7E8
-_0807C9B0: .4byte 0x000006d1
- thumb_func_end sub_807C988
-
- thumb_func_start sub_807C9B4
-sub_807C9B4: @ 807C9B4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl PlayRainSoundEffect
- ldr r1, _0807C9E0 @ =gUnknown_0202F7E8
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r1, r2
- strb r4, [r0]
- adds r2, 0x1
- adds r0, r1, r2
- strb r4, [r0]
- movs r0, 0xD9
- lsls r0, 3
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C9E0: .4byte gUnknown_0202F7E8
- thumb_func_end sub_807C9B4
-
- thumb_func_start sub_807C9E4
-sub_807C9E4: @ 807C9E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0807CA24 @ =gUnknown_0202F7E8
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807CA1C
- ldr r1, _0807CA28 @ =gUnknown_08396FC8
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _0807CA2C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807CA30 @ =sub_807CA34
- str r1, [r0]
-_0807CA1C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CA24: .4byte gUnknown_0202F7E8
-_0807CA28: .4byte gUnknown_08396FC8
-_0807CA2C: .4byte gTasks
-_0807CA30: .4byte sub_807CA34
- thumb_func_end sub_807C9E4
-
- thumb_func_start sub_807CA34
-sub_807CA34: @ 807CA34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _0807CA90 @ =gUnknown_0202F7E8
- movs r0, 0xDA
- lsls r0, 3
- adds r6, r5, r0
- ldr r1, _0807CA94 @ =0x000006d1
- adds r7, r5, r1
- ldrb r0, [r6]
- ldrb r2, [r7]
- cmp r0, r2
- beq _0807CAA8
- ldr r0, _0807CA98 @ =gUnknown_08396FC8
- mov r8, r0
- ldrb r0, [r6]
- lsls r0, 4
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807CAB8
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _0807CA9C @ =0x000006c3
- adds r0, r5, r1
- strb r4, [r0]
- ldr r2, _0807CAA0 @ =0x000006c6
- adds r0, r5, r2
- strb r4, [r0]
- ldrb r0, [r7]
- strb r0, [r6]
- ldr r0, _0807CAA4 @ =0x000006d3
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- b _0807CAB8
- .align 2, 0
-_0807CA90: .4byte gUnknown_0202F7E8
-_0807CA94: .4byte 0x000006d1
-_0807CA98: .4byte gUnknown_08396FC8
-_0807CA9C: .4byte 0x000006c3
-_0807CAA0: .4byte 0x000006c6
-_0807CAA4: .4byte 0x000006d3
-_0807CAA8:
- ldr r0, _0807CAD8 @ =gUnknown_08396FC8
- ldrb r1, [r6]
- lsls r1, 4
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0807CAB8:
- ldr r1, _0807CADC @ =gUnknown_083970B8
- ldr r0, _0807CAE0 @ =gUnknown_0202F7E8
- ldr r2, _0807CAE4 @ =0x000006c6
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CAD8: .4byte gUnknown_08396FC8
-_0807CADC: .4byte gUnknown_083970B8
-_0807CAE0: .4byte gUnknown_0202F7E8
-_0807CAE4: .4byte 0x000006c6
- thumb_func_end sub_807CA34
-
- thumb_func_start sub_807CAE8
-sub_807CAE8: @ 807CAE8
- ldr r0, _0807CAFC @ =gUnknown_0202F7E8
- ldr r2, _0807CB00 @ =0x000006c1
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0807CB04 @ =0x000006c2
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0807CAFC: .4byte gUnknown_0202F7E8
-_0807CB00: .4byte 0x000006c1
-_0807CB04: .4byte 0x000006c2
- thumb_func_end sub_807CAE8
-
- thumb_func_start nullsub_38
-nullsub_38: @ 807CB08
- bx lr
- thumb_func_end nullsub_38
-
- thumb_func_start sub_807CB0C
-sub_807CB0C: @ 807CB0C
- movs r0, 0
- bx lr
- thumb_func_end sub_807CB0C
-
- thumb_func_start sub_807CB10
-sub_807CB10: @ 807CB10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _0807CB50 @ =gUnknown_030006DC
- ldr r0, _0807CB54 @ =gUnknown_083970C8
- str r0, [r1]
- movs r0, 0
- mov r12, r0
- ldr r1, _0807CB58 @ =gUnknown_0202FC48
- mov r10, r1
-_0807CB28:
- mov r7, r10
- mov r0, r12
- cmp r0, 0
- bne _0807CB34
- ldr r1, _0807CB5C @ =0xfffffda0
- adds r7, r1
-_0807CB34:
- movs r5, 0
- movs r0, 0x1
- add r0, r12
- mov r9, r0
-_0807CB3C:
- lsls r1, r5, 8
- lsls r0, r5, 24
- lsrs r2, r0, 16
- mov r0, r12
- cmp r0, 0
- bne _0807CB60
- adds r0, r1, 0
- lsls r0, 12
- lsrs r4, r0, 16
- b _0807CB62
- .align 2, 0
-_0807CB50: .4byte gUnknown_030006DC
-_0807CB54: .4byte gUnknown_083970C8
-_0807CB58: .4byte gUnknown_0202FC48
-_0807CB5C: .4byte 0xfffffda0
-_0807CB60:
- movs r4, 0
-_0807CB62:
- movs r3, 0
- adds r1, r5, 0x1
- mov r8, r1
-_0807CB68:
- subs r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _0807CB68
- adds r6, r2, 0
- movs r0, 0xF8
- lsls r0, 5
- subs r0, r2
- cmp r0, 0
- bge _0807CB90
- adds r0, 0xF
-_0807CB90:
- lsls r0, 12
- lsrs r4, r0, 16
- cmp r5, 0xB
- bhi _0807CBDA
- cmp r3, 0x12
- bhi _0807CC00
-_0807CB9C:
- adds r0, r2, r4
- lsls r0, 16
- lsrs r2, r0, 16
- subs r0, r2, r6
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0807CBB8
- lsrs r0, 31
- adds r0, r1, r0
- asrs r0, 1
- subs r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
-_0807CBB8:
- lsls r0, r3, 5
- adds r0, r7
- adds r1, r0, r5
- lsrs r0, r2, 8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _0807CBCE
- movs r0, 0x1F
- strb r0, [r1]
-_0807CBCE:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _0807CB9C
- b _0807CC00
-_0807CBDA:
- cmp r3, 0x12
- bhi _0807CC00
- movs r6, 0x1F
-_0807CBE0:
- adds r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- cmp r1, 0x1F
- bls _0807CBF6
- strb r6, [r0]
-_0807CBF6:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _0807CBE0
-_0807CC00:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0807CB3C
- mov r1, r9
- lsls r0, r1, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x1
- bls _0807CB28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807CB10
-
- thumb_func_start sub_807CC24
-sub_807CC24: @ 807CC24
- push {r4-r7,lr}
- ldr r0, _0807CC50 @ =gUnknown_0202F7E8
- movs r1, 0xD8
- lsls r1, 3
- adds r4, r0, r1
- ldr r2, _0807CC54 @ =0x000006c1
- adds r1, r0, r2
- ldrb r7, [r4]
- mov r12, r7
- movs r6, 0
- ldrsb r6, [r4, r6]
- movs r5, 0
- ldrsb r5, [r1, r5]
- adds r3, r0, 0
- cmp r6, r5
- bne _0807CC5C
- ldr r0, _0807CC58 @ =0x000006c6
- adds r1, r3, r0
- movs r0, 0x3
- strb r0, [r1]
- b _0807CCA4
- .align 2, 0
-_0807CC50: .4byte gUnknown_0202F7E8
-_0807CC54: .4byte 0x000006c1
-_0807CC58: .4byte 0x000006c6
-_0807CC5C:
- ldr r1, _0807CC84 @ =0x000006c3
- adds r2, r3, r1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r7, _0807CC88 @ =0x000006c2
- adds r1, r3, r7
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0807CCA4
- movs r0, 0
- strb r0, [r2]
- mov r0, r12
- cmp r6, r5
- bge _0807CC8C
- adds r0, 0x1
- b _0807CC90
- .align 2, 0
-_0807CC84: .4byte 0x000006c3
-_0807CC88: .4byte 0x000006c2
-_0807CC8C:
- mov r0, r12
- subs r0, 0x1
-_0807CC90:
- strb r0, [r4]
- movs r1, 0xD8
- lsls r1, 3
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
-_0807CCA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807CC24
-
- thumb_func_start sub_807CCAC
-sub_807CCAC: @ 807CCAC
- push {lr}
- ldr r2, _0807CCE4 @ =gUnknown_0202F7E8
- ldr r0, _0807CCE8 @ =0x000006cb
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0807CCCA
- ldr r3, _0807CCEC @ =0x000006ca
- adds r1, r2, r3
- movs r0, 0
- strb r0, [r1]
-_0807CCCA:
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0807CD94
- lsls r0, 2
- ldr r1, _0807CCF0 @ =_0807CCF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807CCE4: .4byte gUnknown_0202F7E8
-_0807CCE8: .4byte 0x000006cb
-_0807CCEC: .4byte 0x000006ca
-_0807CCF0: .4byte _0807CCF4
- .align 2, 0
-_0807CCF4:
- .4byte _0807CD20
- .4byte _0807CD20
- .4byte _0807CD20
- .4byte _0807CD6C
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD20
- .4byte _0807CD48
- .4byte _0807CD20
-_0807CD20:
- bl sub_807CDC4
- lsls r0, 24
- cmp r0, 0
- bne _0807CDB4
- ldr r0, _0807CD40 @ =gUnknown_0202F7E8
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0x3
- strb r2, [r1]
- ldr r3, _0807CD44 @ =0x000006c6
- adds r0, r3
- strb r2, [r0]
- b _0807CDB4
- .align 2, 0
-_0807CD40: .4byte gUnknown_0202F7E8
-_0807CD44: .4byte 0x000006c6
-_0807CD48:
- bl sub_807CE24
- lsls r0, 24
- cmp r0, 0
- bne _0807CDB4
- ldr r1, _0807CD64 @ =gUnknown_0202F7E8
- movs r0, 0xD8
- lsls r0, 3
- adds r2, r1, r0
- movs r0, 0xFA
- strb r0, [r2]
- ldr r2, _0807CD68 @ =0x000006c6
- adds r1, r2
- b _0807CDB0
- .align 2, 0
-_0807CD64: .4byte gUnknown_0202F7E8
-_0807CD68: .4byte 0x000006c6
-_0807CD6C:
- bl sub_807CE7C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0807CDB4
- ldr r0, _0807CD8C @ =gUnknown_0202F7E8
- movs r3, 0xD8
- lsls r3, 3
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0807CD90 @ =0x000006c6
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- b _0807CDB4
- .align 2, 0
-_0807CD8C: .4byte gUnknown_0202F7E8
-_0807CD90: .4byte 0x000006c6
-_0807CD94:
- ldr r0, _0807CDB8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0807CDB4
- ldr r3, _0807CDBC @ =0x000006c1
- adds r0, r2, r3
- ldrb r1, [r0]
- subs r3, 0x1
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0807CDC0 @ =0x000006c6
- adds r1, r2, r0
-_0807CDB0:
- movs r0, 0x3
- strb r0, [r1]
-_0807CDB4:
- pop {r0}
- bx r0
- .align 2, 0
-_0807CDB8: .4byte gPaletteFade
-_0807CDBC: .4byte 0x000006c1
-_0807CDC0: .4byte 0x000006c6
- thumb_func_end sub_807CCAC
-
- thumb_func_start sub_807CDC4
-sub_807CDC4: @ 807CDC4
- push {r4,lr}
- sub sp, 0x4
- ldr r2, _0807CE00 @ =gUnknown_0202F7E8
- ldr r0, _0807CE04 @ =0x000006c7
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807CE1A
- adds r1, r0, 0x1
- strb r1, [r4]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807CE0C
- movs r3, 0x10
- subs r3, r1
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _0807CE08 @ =0x000006c4
- adds r0, r2, r1
- ldrh r0, [r0]
- str r0, [sp]
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807D1BC
- movs r0, 0x1
- b _0807CE1C
- .align 2, 0
-_0807CE00: .4byte gUnknown_0202F7E8
-_0807CE04: .4byte 0x000006c7
-_0807CE08: .4byte 0x000006c4
-_0807CE0C:
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807CEBC
- movs r0, 0x10
- strb r0, [r4]
-_0807CE1A:
- movs r0, 0
-_0807CE1C:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807CDC4
-
- thumb_func_start sub_807CE24
-sub_807CE24: @ 807CE24
- push {r4,lr}
- ldr r2, _0807CE58 @ =gUnknown_0202F7E8
- ldr r0, _0807CE5C @ =0x000006c7
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807CE74
- adds r3, r0, 0x1
- strb r3, [r4]
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807CE64
- movs r0, 0x6
- negs r0, r0
- movs r1, 0x10
- subs r1, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807CE60 @ =0x000006c4
- adds r2, r3
- ldrh r2, [r2]
- bl sub_807D304
- movs r0, 0x1
- b _0807CE76
- .align 2, 0
-_0807CE58: .4byte gUnknown_0202F7E8
-_0807CE5C: .4byte 0x000006c7
-_0807CE60: .4byte 0x000006c4
-_0807CE64:
- movs r2, 0x6
- negs r2, r2
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
- movs r0, 0x10
- strb r0, [r4]
-_0807CE74:
- movs r0, 0
-_0807CE76:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807CE24
-
- thumb_func_start sub_807CE7C
-sub_807CE7C: @ 807CE7C
- push {lr}
- ldr r2, _0807CEA4 @ =gUnknown_0202F7E8
- ldr r1, _0807CEA8 @ =0x000006c7
- adds r0, r2, r1
- ldrb r1, [r0]
- cmp r1, 0x10
- beq _0807CEB0
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0807CEAC @ =0x000006c4
- adds r1, r2, r3
- ldrh r1, [r1]
- bl sub_807D424
- movs r0, 0x1
- b _0807CEB2
- .align 2, 0
-_0807CEA4: .4byte gUnknown_0202F7E8
-_0807CEA8: .4byte 0x000006c7
-_0807CEAC: .4byte 0x000006c4
-_0807CEB0:
- movs r0, 0
-_0807CEB2:
- pop {r1}
- bx r1
- thumb_func_end sub_807CE7C
-
- thumb_func_start nullsub_39
-nullsub_39: @ 807CEB8
- bx lr
- thumb_func_end nullsub_39
-
thumb_func_start sub_807CEBC
sub_807CEBC: @ 807CEBC
push {r4-r7,lr}
@@ -2728,43 +1880,43 @@ _0807DCD0:
.4byte _0807DD40
_0807DCF8:
movs r0, 0x1
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD00:
movs r0, 0x2
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD08:
movs r0, 0x3
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD10:
movs r0, 0x4
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD18:
movs r0, 0x5
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD20:
movs r0, 0x6
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD28:
movs r0, 0x9
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD30:
movs r0, 0x7
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD38:
movs r0, 0x8
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD40:
movs r0, 0xB
- bl sub_808070C
+ bl SetWeather
_0807DD46:
pop {r0}
bx r0
@@ -8235,8 +7387,8 @@ _08080704: .4byte gSaveBlock1
_08080708: .4byte gMapHeader
thumb_func_end sub_80806E4
- thumb_func_start sub_808070C
-sub_808070C: @ 808070C
+ thumb_func_start SetWeather
+SetWeather: @ 808070C
push {lr}
bl SetSav1Weather
bl GetSav1Weather
@@ -8245,10 +7397,10 @@ sub_808070C: @ 808070C
bl DoWeatherEffect
pop {r0}
bx r0
- thumb_func_end sub_808070C
+ thumb_func_end SetWeather
- thumb_func_start sub_8080724
-sub_8080724: @ 8080724
+ thumb_func_start SetWeather_Unused
+SetWeather_Unused: @ 8080724
push {lr}
bl SetSav1Weather
bl GetSav1Weather
@@ -8257,10 +7409,10 @@ sub_8080724: @ 8080724
bl sub_807C988
pop {r0}
bx r0
- thumb_func_end sub_8080724
+ thumb_func_end SetWeather_Unused
- thumb_func_start sub_808073C
-sub_808073C: @ 808073C
+ thumb_func_start DoCurrentWeather
+DoCurrentWeather: @ 808073C
push {lr}
bl GetSav1Weather
lsls r0, 24
@@ -8268,7 +7420,7 @@ sub_808073C: @ 808073C
bl DoWeatherEffect
pop {r0}
bx r0
- thumb_func_end sub_808073C
+ thumb_func_end DoCurrentWeather
thumb_func_start sub_8080750
sub_8080750: @ 8080750
@@ -8418,7 +7570,7 @@ UpdateRainCounter: @ 8080854
bne _0808086E
_08080868:
movs r0, 0x28
- bl sav12_xor_increment
+ bl IncrementGameStat
_0808086E:
pop {r0}
bx r0